Dare Obasanjo has a post on the “Three Things I Learned About Software in College,” to which Scott Hanselman followed up with Three Things I Learned About Software WHILE NOT in College.
So here are my 3 from each category:
Learned in college:
1) A lot of people getting a CS degree will never be able to write a real program (as I was getting my degree in structural engineering (CE)).
2) New features and scope creep can cause projects to be never ending, and end up not being released at all.
3) How to really work hard, really study hard, and really focus on a task with a fast approaching deadline.
Learned OUT of college:
1) Just because someone has “Sr.” in their title doesn’t MEAN they know anything, but they might. If their logic sounds flawed, don’t assume it is because they are “Sr” and you are “Entry”: you are probably right.
2) “Expert” can mean different things to different people. You can be in the top 2% of one company, but a middle of the pack guy in another. Avoid calling yourself an “expert” (or acting like one) unless you know who you are talking to, and you actually are the expert.
3) There is no “Best” way to do most things. I had thought that if I looked hard enough and studied enough examples, I would know the “best” way to do things when I arrived at them. But one groups “best practice” is something another group will not touch. See the current OR/M arguments for a perfect example, or if you prefer just look at divide over using Datasets.
That being said, there are definitely some agreed upon “Worst Practices”, so avoid these at all costs.