1. Anyone can become a star programmer, it just takes some longer than others.

  2. Your keyboard matters, Good typing habits matter.

  3. Be balanced, don’t believe everything you hear or read, including this. Come to your own conclusions, know that nothing is ever black and white. Don’t dismiss the bad ideas, and don’t trust the good ideas.

  4. Process can be a “good thing” ( Agile, Extreme, Scrum, etc.. ) But it doesn’t make or break your project. People make or break your project.

  5. Don’t choose a language based on how fast it is but instead, how fast you can develop with it.

  6. Don’t choose a language because there is a large pool of developers familiar with that language. The larger the pool of developers the more likely you will be temped by a fancy resume and hire a mediocre programmer. However if you dip into a smaller pool of developers you know the developers in the smaller pool are there, not because it will look good on their resume, but because they enjoy working in the language. This increases the chance you will get a star programmer.

  7. The programmer is greater than the language. This means you can give any language to a great programmer and you will get great code. The opposite is not true, you can’t give a great language to a mediocre programmer and expect great code.

  8. Your Language matters. Giving the right language to the right programmer can have a huge impact on the success of your project.

  9. Not all languages are created equal. Some languages are more powerful than others. The problem is not with the languages, but the people that use them. If we see a language that is less powerful than our favorite language X, we know it’s less powerful because is doesn’t have feature Y. But if we see a language that is more powerful we don’t recognize it as more powerful. We just see a language with some strange syntax and some extra cruft added on. We reckon that it’s just as powerful as our language X, but nothing more.

    This is partly because we are creatures of habit, but mostly because we have trained our brains to think in our language of choice. People don’t think in terms of feature Y if their language doesn’t support it. hence its not necessary nor needed. This means you could stumble upon the language equivalent of a super weapon, but never know it.

  10. Don’t think your so special. Don’t get me wrong, every one needs to think they are special, but programmers take it to the next level. It’s not enough for us to think we are special, we have to display that individuality in the programs we write. Hence we write tools tailored to only our special needs and tend to write our programs in a style that is uniquely ours.

    Perl allows the programmer to write their code and tools in the most beautiful or bizarre fashion. This only fuels the idea that we are special because we wrote this thing in such a way as only we easily comprehend it. We create these incredibly complex 1 liners or beautifully efficient terse code and we pat ourselves on the back for creating this code that takes any other programmer 20+ minutes to comprehend, We are proud of this because it means we are special and more intelligent than the other guy. Because we get it and they don’t.

    Although this allows us to show off our individuality and show how clever we can be. It makes collaboration difficult if the other programmer gets a head ache deciphering our code. In the end, he won’t want to work with us, and will routinely suggest the code should be re-written. Sometimes even naming conventions such as CamelCase or under score will cause other programmers to request a re-factor. Because it doesn’t match the style which defines their individuality. Which leads me into Number 11.

  11. Never stop learning. Once you stop learning you can die. Seriously… Programmers are like trees. Trees are always growing, they never stop. If a tree stops growing it dies, becomes stiff, brittle and collapses. Programmers are the same, once you reach a point where there are no new ideas that can effect you and your programmer experience. ( AKA you know it all, been there done that ) you become stiff and un-movable. You become the guy no one wants to work with, the OLD guy set in his ways with no room for improvement. Avoid these people at all cost, their poor attitude is infectious.

  12. Sleep. There is a myth among programmers that the guy who pulls the all nighter is the programmer equivalent of a bad ass. In the short term you may make significant progress in a 24 hour span, but that is not going to make up for the productivity you will lose recovering from sleep deprivation during the next few days and weeks. A good night sleep is good for your brain and your arteries, especially as you get older.

  13. Do something else besides program.Preforming other activities besides programming exercise different sections of the brain. This not only makes you a more rounded individual but also a better programmer.