I found this great post on Three Things I Learned About Software WHILE NOT in College, a response to another blogger’s Three Things I Learned About Software in College. It sounded fun, so I thought I’d chime in with my own observations.

Three things I learned while in college

  1. You can spend hours getting a really neato-keen solution working and not finish in time, or you do something the obvious and easy way. Guess which gets the better grade?
  2. College professors are full of “back in my day” stories. Many haven’t seen the real world in years.
  3. You get a lot more out of things (in this case, college) when you pay for them yourself.

Three things I learned while NOT in college

  1. The health and success of the project is more important than your ego. You can argue for your way until you’re blue in the face, then go home and celebrate your victory alone, or concede that other people have good ideas too and celebrate a successful project together.
  2. The perfect is the enemy of the good. If you have two options, A and B, and B will take an hour longer to do, and you spend half an hour successfully arguing to do A, you have gained nothing. If you have an algorithm that takes 15 minutes to implement and will save 2 minutes of CPU time over the next five years, you have gained nothing. *
  3. 25% of your time should be spent planning what to do for the next 75%. This includes design after design after design until you get it right.

* If I weren’t trying to stick to the limit of three things, I’d add another item here that ties into #2: CPU time is infinitely cheaper than programmer time.

Now, some of my favorites from other people:

In college

  1. Operating systems aren’t elegant. They are a glorious heap of performance hacks piled one upon the other. (Dare Obasanjo)
  2. Testing is the difference between a program you think works and one you know works. (Matthew Cuba)
  3. 1+1=0. Two students can get the productivity of zero students if the communication/organization isn’t right or one of the students isn’t up to the task at hand. (Finnsson)
  4. Telling people you are the manager of the local bar is a lot more likely to win you friends than telling people what your major is. (Martin Woodward)
  5. Strangely, all of this really low-level crap i’m doing in school isn’t at all what I need to learn in the field. (Robert)
  6. how to build a bong out of an old mouse, some masking tape, and a bic pen. (fz)
  7. I suck at math (hectore)

Not in college

  1. Software is not about computers, it is about people (Casey Charlton)
  2. People don’t like software or computers (Casey Charlton)
  3. There is always going to be a better mousetrap that can be built, but do you have the time, money and backing to build it? (Philip)
  4. It’s all about strings and ints. — Really, isn’t 90% of all programs just messing around with strings and ints? (John)
  5. Code for Now. As developers we love to code for that future when we may need to add another database back-end or swap out a different rendering engine or port to a different platform. Guess what, unless those things are actually on some roadmap or written on a stone tablet they will either never happen or will happen in such a way that you’ll end up rewriting your code anyway. (Shawn Oster)
  6. You will never ‘add the comments later’ (Andrew Butel)
  7. If you take on board one concept from Agile, take YAGNI. If you have room for another, DRY. (Mike Woodhouse)
  8. You have to leave to get a real raise (marcel marceau)
  9. My ego is my enemy (Joe)
  10. My “software engineering design” teacher from college seemed totally unenthused to be teaching us the waterfall process for a reason: because it sucks for software development in the modern business environment. (Waterbreath)
  11. You spend 4 years getting a CompSci degree, but then you get out and you still have to learn how to write software. (Aaron Prenot)
  12. If the inhouse libraries cover everything you could ever need, either climb in the box and make a nest or climb out and RUN!!! (Jonathon)
  13. If the master copy is stored in more then one place, one of the places will eventually be different. What are you going to do then? (Paul Hounshell)
  14. 99.9% of CS graduates don’t know the first thing about programming. (Ryan SMith)
  15. Software involves sending more emails that writing code. (Ryan SMith)
  16. People, not computers, are what software engineering is all about. (projectshave)
  17. that simple last minute line of code that couldn’t possibly introduce any new bugs will bring down the entire system every time. (lb)
  18. Your job does not end at 5 o’clock each day. Many days it will not end until well into the wee hours of the morning. I don’t mean that you’ll always be doing billable work during these hours…this is a career that requires more self training than most others, and as such if you’re not willing to devote a substantial amount of your own time and money making yourself more marketable, then this isn’t the right career path for you. (Jayson Knight)