Showcase your skills

The difference between student programmers and professional programmers

Programming in a job and programming as a student are very different. Here are the things you should start doing as a student if you want to stand out from the other students (because these are the things that you'll be taught as soon as you join):

  • Use source control. Give yourself 1 point for familiarity with CVS, 2 points for familiarity with SVN, and 3 points for familiarity with a DVCS like git or hg or bzr.
  • Write tests for your programs. Give yourself 1 point if you write automated tests to test parts of your programs, 2 points if you write automated tests that test all the code of your programs, and 3 points for writing the tests before writing any program.
  • Handle failures in your programs. Check all inputs for boundary conditions or garbage data. (Will your 'factorial' program work if someone gives an input of -1?) Check error return codes or exceptions for all library/external calls. Check for errors on file or network I/O. Unlike student projects, in professional programs, a very large fraction of code exists to deal with error conditions
  • Rewrite bad code. Most students will never touch a piece of code if it is working. Replacing bad code with good code on a regular basis (refactoring) is one of the most important activities in programming
  • Automate repetitive tasks. A real programmer who finds himself (or herself) doing similar things over and over again, will quickly write a script or a program to automate this. It is painful to watch students typing the same long and complex commands over and over again while demoing their projects.
  • Learn typing. Again, it is painful to watch students hunt and peck for keys while typing things. You're going to spend a lot of your time typing with a keyboard. Increasing your typing speed will pay rich dividends for the next 40 years.
  • Stick to deadlines. That's called professionalism. So stick to a deadline even if you have to work without sleep for 48 hours to hit the deadline. (The second part of the rule is that you should not agree to such deadlines.)

These tips were inspired by Joel Spolsky's 12 Steps To Better Code and the book: The New Programmer's Survival Manual. The book contains a lot of other advice too - some related to programming, but also covers more general people skills. Baishampayan Ghose CTO of Infinitely Beta, an internet products startup in Pune, wants every new-joinee programmer to read this whole book.

Comments

Amit :

Another very important one... Don't write code until you have clearly understood the requirements! Ideally, these requirements should be in form of a detailed requirements document, and supporting use-cases.

New Year’s Resolutions & :

[...] CS assignments, but for papers as well.  As both Joel Spolsky (Fog Creek, Stack Overflow) and the guys at Reliscore described, the use of version control is one of the things that sets apart the good programmers [...]

To comment, you must login