What I Wish My College Had Taught Better
I think the college I went to for my Computer Science degree largely did a good job of preparing me for the working world. My college experience stressed learning the programming concepts above language itself, which has allowed me to learn many new languages as needed with ease. Still though, there are a few things I think they could have done better.
I do a massive amount of debugging in my day to day work, as I expect most of you do. It's one thing to understand what your program should do, but you also need to understand what it actually does do. It's not uncommon to spend several hours debugging for every hour of writing actual code. My college really glossed over debugging. My junior year we did a program that simulated the operations of a multithreaded operating system. I spent hours looking at code and walking through it in my head trying to grasp why things weren't working as intended. A little more emphasis on debugging techniques and I would have know how to walk through the code as it ran and saved myself some major headaches. I think now I'm good at debugging but I still feel like there are techniques that could make me even better that I simply never learned because what I do know about debugging is primarily self-taught.
More emphasis on object oriented programming
Sure they taught us how to do object oriented programming (primarily my school used C++), but they never really emphasis the advantages of using it and the programming assignments we had to do rarely benefited from using a class based design (nor did was it ever required, which at least would have gotten me more familiar with OOP). It wasn't until I started doing a lot of coding on my own that I realized the full potential of object orientation.
Better code review
My professors reviewed all the code for our assignments, but sometimes it felt like they were more concerned about if the result was correct rather than the path to that result being correct. I would have liked a harsher critique on my code (I know it wasn't perfect) and also it would have been nice to see some more examples of how other people in the class tackled the problem with a discussion of pros and cons of each approach.
More emphasis on working in a team
We did three or four projects in college where we worked in teams and none accurately reflects working as a member of a team in the real world. We would either collaborate together or be assigned different parts of a project (for instance one person created the functions while another created the UI that ran them) but we never dealt with things like having to merge code together, working on code that was created by someone else, and making sure changes that you made didn't affect other aspects of the program.
This isn't so much something I wish they would have taught me but rather something I wish they had not. While there are advantages to learning different languages, I see little gained from learning something as archaic as Cobol. My college's justification was that some places (primarily banks) still used it in legacy systems. After spending a semester learning this language though, I can safely say that I would never take a job that had me doing Cobol.
This article has been view 934 times.