Becoming a pale, pasty programmer

Becoming a better programmer is not for the faint of heart. It’s easy to succumb to boredom, the sunny outdoors, and women (or men) but if you’re up for the challenge, the real deal, then this is for you. Why are all master programmers pale, pasty, and afraid of women? Because they did not succumb.

Secret to life #1: Java for breakfast, Shell for lunch, Python for dinner

This one is obvious. You must program. Above all else, you need to do this. Whether it be for a class, a side project, or a job, practice really does make perfect. As Malcolm Gladwell makes clear in his book Outliers, it takes roughly 10000 hours to master something. Make it a point to start a side programming project. If you’re not one to come up with ideas then clone someone else’s idea. I wanted to learn how to make an Android game; I didn’t know what game to make so I simply replicated Frogger except with a dog instead of frog (the game is called Dogger). This is about as unoriginal as you can get, but I had fun making it and learned a lot in the process. I’d even say that it might be better to clone an idea first, this way you’re not caught up in the design/ideas – just straight codin’.

Secret to life #2: Have a strong forehead

What does it mean to have a strong forehead? It means that it is resilient to banging – whether it be from your hand, your computer or some other object. Programming is hard. There’s no way around it – you’re going to come across problems you don’t know how to solve and you will end up slapping yourself on the forehead time and time again. The persistence to get through them is essential. If you can persist, learn to solve problems, then this will make you better than even the prodigal  programmers whose first word was integer.

The ability to overcome obstacles is a much more valuable skill than unparalleled brain power. In the real world, problems need to get solved and often times whoever comes up with the quickest viable solution wins (obviously not always the case). Even the smartest find themselves humbled when faced with a problem one time or another; if they don’t have the wits or the experience to plow through, then all those smarts are a waste.

One last point on strong foreheads. Like everything else in life, a strong forehead can be acquired. It doesn’t necessarily have to come from programming either. Problems arise every day and every day you are presented with the choice to solve the problem or give-up. There are obvious times when giving up is necessary, but the vast majority of problems can be solved with a little perseverance and going the extra mile. That being said, take it to heart next time you find yourself in a pickle and work to get yourself out.

Secret to life #3: No shortcuts

In order to become a great coder you need to practice great coding (yes, I’ve read All code is crap, but there are definitely varying degrees of crap and you want to be on the less crappy side). If you realize you messed up your class hierarchy in some program and find yourself making quick hacks to make the system work, stop what you are doing and rewrite the class structure properly. This will give you invaluable experience on creating great object oriented structure and the next time you do it, you’ll make fewer and fewer mistakes. Some say the best software engineers are approximately 10-100x more productive than their lesser counterparts. Part of this productivity is their intuition to see the problem as a whole, design a solution that fits the problem and allows for expansion. This isn’t some inherited skill, it comes from making mistakes and learning from them. So, yes, make your mistakes, but fix them or at the very least understand what went wrong and where you can be better.

Secret to life #4: Become a codeworm

How do you know what sub-optimal code looks like? Reading other people’s code is a great way to see some great examples of what your code should look like. Now-a-days there is no excuse for not being able to find code (github, sorceforge, etc). Be warned though there are also very bad examples of code on the web as well, but you can learn just as much from those. I’ll admit it’s hard to straight up read someone else’s code and that it’s much more fun to write your own, but if you find some program you want to extend/fix, it makes it much more enjoyable.

Books and papers are also great resources for learning to code well. In case you haven’t seen this post, it points you to some good papers to start on. As important as it is to read and learn other people’s code, don’t spend too much time reading – focus more on the doing.

—–

So there it is, 4 easy-peasy secrets to becoming the next Don Knuth or Mark Zuckerberg. These are things that I’ve learned throughout my struggles in the programming world as well as in everyday life. The only hard part is actually doing it.

About these ads

46 thoughts on “Becoming a pale, pasty programmer

    • Details, look at it this way. You work 8 hours a day for lets say 45 weeks a year. Thats 1800 hours per year at work which is ~5.5 years of programming. But you still do other things when you work, you do testing, documenting etc. So those 10000 hours will more or less be 10 years as a programmer in a working environment

      • Standard metric is 2000 hours in a year for business calculations and project estimation. If you’re a good at billing, that’s more like 2500-3000 ; ) (read: joke)

  1. Becoming a pale, pasty programmer « TalkTrend!

  2. Excellent points. I’d like to add one more. Not everyone has the potential to be a Don Knuth or a Mark Zukerberg. In the same way that not everyone can look like Jack LaLane no matter how much you work out (some people won the genetic lottery, most did not), most people will not become gifted programmers (the key concept here being “gift”). Most people have the potential to be competent programmers. The secret is to continually strive to improve.

  3. Becoming a pale, pasty programmer « kojexconsult

    • Monday to Friday – work hard. Friday to Sunday – party hard.

      *Of course once you are competent enough in your craft, then Monday to Friday you don’t really have to work all that hard and still achieve excellent results :D

  4. Great Article !! For novice programmers like me advice like these are immensely valuable!! Hope I’d be able to follow them. (I’m a very lazy programmer :p )

  5. Ironically I have been using this info for years. Great to read it and know I am on the right path :) I have heard programming referred to both as gift and art. Many times it seems the art of programming is what I enjoy.

    Any new programmer that thinks maintaining legacy code is evil should read into this article “learn from others mistakes” I inherited a program that made me change code in 5 places every time the client added a field and I learned Reflection out of self defense.

    I build apps that load objects from datasets with only minimal hard coded field names (usually to ignore certain properties). Now I can grow a my code with minimal fuss.

    Yes I know there is a performance hit but I am not past 190,000 records so I prefer the trade off.

  6. I LOVE the “strong forehead” comment! Made me laugh!!!! TOOOOOO many times have I done that, but having dev friends who you can ask for reliefe also helps too (geeks version of tylenol haha).

    I’m a c# who thinks he’s good…but then I realize I still need to look at more code AND DO more code! Back to dev now! :>

    PS Another possible suggestion would be to start your own blog to show your own tips’n'tricks.

  7. As a beginning developer, I truly appreciate your insight. After watching so many programmers lose (or never develop) the ability to engage in conversation (real time..not Skype), my resolve is to NOT follow in the path of the pasty.

    I am, however, developing a pretty tough forehead, and when last at the hairdresser I asked her for something wild, like Albert Einstein’s hairstyle. Having a hairstyle that is supposed to be messy makes me feel better when I have to leave the computer to answer the door. Instead of pounding my forehead, I ruffle my locks in frustration or confusion (yes…I am female…forgive the fluffy descriptives).

    After 20 years teaching, learning C# and HTML 5 provides hours of obsession, and so much more fulfilling that grading papers where little effort has been demonstrated. Nope..don’t miss it at all. But I do wish editing was a part of some of the Apress books (once an English teacher, always an English teacher).

    Thank you again…

    An elusive error awaits.

    • Thanks for the feedback (especially coming from an english teacher – my most feared class throughout high school). You are right; communication is an invaluable skill for everyone. Best of luck with the coding!

      • You are quite welcome.

        As I read through the other posts, my resolve today is to get off of my fanny and get outside, and walk.

        English teachers are a rough lot. If it makes you feel better, I taught writing as a process, and my students did not spend endless hours diagramming sentences or worrying about strikethroughs or eraser marks. I saw too many students destroyed by anal retentive teachers who marked off for a letter outside of the red margin; However, I do wish more people would introduce themselves to the paragraph break. Something that was obviously foreign to author Henry James, but I digress.

        I am living #4, and am looking at others’ code. It’s a valuable learning tool, but I don’t make recommendations (that would be much too cheeky right now).

        Taking care of the physical is proving difficult, and too many programmers (and teachers) do not. We seem to be (yes, especially women) fanny heavy. I simply must get outside today, but ohhhhh..all of that code at which to look…so tempting, and a chocolate bar in the fridge.

        Best

  8. Another price you pay for being a programmer is the toll it takes on your body. All those hours of physical inactivity can really add up quick, making your physique feel like 62 when you are only 32.

    Do some aerobic exercise (such as running or bicycling) regularly. You will find yourself re-designing and refining your work while you exercise (if you don’t, you are not exercising long enough to enter the zone). Your mind will be more focused and your code will be higher quality.

    Most importantly, you will have more stamina with which to endure the occasional all-night coding session, which tends to happen in this business from time to time.

  9. Thanks for the advise in the article and everyone’s comments. I work full-time as a Tech Writer and have been going to college to change to programming. I just finished this semester as the graduating one (Associate’s degree). I’m excited but realize that there is so much to learn. The piece of paper just shows that I’m trainable and dedicated, but I wonder how this transition will be. Feeling anxious and excited as well as scared to make sure that I can live up to the expectations when I find the new job in programming. It is great to get find the advice on here….Thanks from a newbie!

  10. Becoming a pale, pasty programmer | Jesus Was Rasta

  11. I loved what you said about copying success. I am an entrepreneur and after reading this post I realized that my best business idea/ website was modeled from a compilation of what I have found on other sites and businesses with similar obstacles! I think that this is a good a good formula for success. :)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s