The Codist - Programmerthink

All I Need To Know To Be A Better Programmer I Learned In Kindergarten

Posted: 04/05/2007, Perm Link Readers: 53737


Programming is complicated stuff, but a lot of what makes a good programmer isn't all that different from the earliest learning we did in school.

The inspiration for this list came from the essay "All I Really Need to Know I Learned in Kindergarten" by Robert Fulghum at http://www.robertfulghum.com/.

1. Share everything.

Use open source where possible, and contribute to it when you are able. The collective wisdom of the entire community is better than the limited vision of a few large companies.

2. Play fair.

Give other technologies, frameworks, methodologies and opinions a chance. Don't think your choices are the only ones that work. The other choices may very well be better than yours; it doesn't hurt to check them out with an open mind.

3. Don't hit people.

Like #2, don't attack people just because they happen to use .Net or Java or PHP (I learned my lesson there!). Sometimes they might be more usable and useful than you think. You can learn a lot more from someone when you are not pounding them to a pulp.

4. Clean up your own mess.

Strive to deliver code that works. Never expect QA to find all of your bugs for you. Test your code often, both narrowly and broadly.

5. Don't take things that aren't yours.

Follow the licenses for stuff you use, don't just steal it and claim innocence later.

6. Say you're sorry when you hurt somebody.

Code reviews are a good but rarely used idea. Mentoring programmers with less experience than you helps the entire team. Just don't criticize people openly. Learning is not belittling people. Sometimes people will listen and sometimes they won't. Sometimes you might learn a lot from people you think are inferior to you.

7. Wash your hands before you eat.

Try to understand things before you set out to write code. Do prototyping, check out examples on the web, talk with other folks who do it, or even just play around. Architecting something you've never done before or worked with is tough cold turkey. The end result will work much better if you start with a clue.

8. Flush.

Don't be afraid to replace, rewrite, refactor or give up on something that is crap. Sometimes "when in doubt throw it out" is the best philosophy. Never fall in love with your code.

9. Warm cookies and cold milk are good for you.

Yes, programmers should be well supported in their work environment. A good chair, a quiet place to work, a decent computer and tools that make coding better and easier are essential. Managers should act as umbrellas to keep the crap from flowing down to the programmers. As a programmer, don't accept a life of lowly servitude. If the employer treats you poorly then find one who treats you better.

10. Live a balanced life - learn some and think some and draw and paint and sing and dance and play and work every day some.

I like Google's deal where 20% of your time is devoted to whatever you think it worth working on. Employers should (discretely) offer nap rooms or game rooms or some kind of chillout environment. Programming is hard mental work; sometimes you really need to give your brain a rest. Refuse to routinely work 80 hour weeks as the quality of your work will wipe out any gains in hours.

11. Take a nap every afternoon.

Working 24 hours a day doesn't make you more productive. Take breaks, go home, take a real nap. Often I have solved nasty problems by going home, and the solution came to me as I was driving away, or the next morning.

12. When you go out in the world, watch out for traffic, hold hands and stick together.

Community is good for the soul; read blogs, learn about new languages or frameworks, participate in discussions and see what other people are doing. Just doing your job isn't going to make you a better programmer. Keeping your head down means you will eventually be obsolete.

13. Be aware of wonder. Remember the little seed in the Styrofoam cup: the roots go down and the plant goes up and nobody really knows how or why, but we are all like that.

Every day something new and wonderful appears in the programming (and technology in general) world. Check it out. Be amazed. Learn something new everyday. It keeps your mind fresh, your options open, and your skills up to date. If you think programming is boring or dead then you may need a new career.

14. Goldfish and hamsters and white mice and even the little seed in the Styrofoam cup - they all die. So do we.

Code goes stale and dies. Sometimes you just have to bury it and do it again. Fight against keeping terrible code bases around just to save money.

15. And then remember the Dick-and-Jane books and the first word you learned - the biggest word of all - LOOK.

You won't learn anything at all if you don't try. Everything I learned in programming came from trying new stuff and generally playing around. Every morning I read a lot of sites to see what is happening in the programming world; I have been doing this since my first job in the early 80's (when it meant reading catalogs and magazines).

See, programming is easy when you look at it through 5-year-old eyes.

Hassan Omar 04/06/2007 11:41

Good article ,,, Specially 7,8.

Thanks..

Shawn the Rock 04/06/2007 13:42

It's good.I agree with you even Im a newbie programmer.Bible taught us all of you mentioned but we get lost day by day.Dont let us dead inside.

Jason 04/06/2007 17:53

Refreshing post thanks. I wish more people were as positive.

Matt Blodgett 04/06/2007 21:09

Great post. It's nice to see positive stuff like this. Thank you.

mirko¸ 04/07/2007 00:33

Fantastic. This is post from experience men.Specially 11 - non stop work killing people.

ESN 04/07/2007 00:43

Good one!

hafizan 04/07/2007 01:14

Yes,Thats true,Just be fun like kids,or like lego but sometimes you need remember

this.Idea like non programmer like me are no limit vs u programmer too technical detail and spoil.

If i a boss i do the same things as google.Get a life ma.Problem come with real life and situation.

JoeBlow 04/07/2007 01:26

Hey, I got to number 15, and I thought to myself I should probably be reading more. Can any of you suggest any good sites and blogs for the programming world?

Thank you!

Jack 04/07/2007 02:55

I worked for 20 years for a company that does everything the wrong way. It employs thousands of programmers and serves some of the largest companies in the world. It makes a lot of money and pays quite well. The code produced there is pure crap and a programmer's life there is hell on earth. That's why everybody wants to get ahead, stop coding, become managers and scare the shit out of coders. There are some people there who think coding can be fun though, and that's because they do open source on their free time.

well done and read 04/07/2007 03:57

well expressed

David J. Smith 04/07/2007 04:08

I like it.

pat 04/07/2007 04:35

Thanks for that, a pick me up at the end of an all nighter.

JoshC 04/07/2007 05:23

Really appreciate all the helpful insights and reminders provided here - I hope to use it as a guide to my starting career as a software programmer. Thanks.

erik 04/07/2007 05:54

nice article and good ideology...

Matt Jaynes 04/07/2007 08:40

Woohoo! Awesome article. You really put together some awesome points here. Kudos.

UserError 04/07/2007 10:19

great list you've got here. can't say i've anything to add ;)

@JoeBlow, i've found www.thedailywtf.com to be a nice dose of daily programming mojo

flavin 04/07/2007 13:56

Waooo very good article, thanks for tips.

Friedbeef 04/08/2007 01:59

Excellent piece!

lucifer_v 04/08/2007 05:49

good idea, i go to sleep now..

Daniel 04/09/2007 13:13

Very nice job. Every programmer should read these.

Anand Muthu 04/11/2007 06:02

Looks more Concrete Stuff. Thanks.

mihai 04/11/2007 07:38

You have some good points there, really simple and important to keep in mind.

Thank you.

Sanket 04/12/2007 06:05

Really good

Thanks

Nenad Ristic 04/12/2007 07:17

This is brilliant

HT 04/13/2007 16:09

Super!

Invincible 04/15/2007 03:17

Good article...will help a lot.

Gk 04/16/2007 00:58

A very simple and perfect article

Will help a lot for .....Programmers

Manish Bharucha 04/16/2007 01:13

A very good article. Motivating. Thanks

engtech 04/16/2007 14:07

Yup, that just got me to subscribe to your feed.

Joao Inacio 04/21/2007 06:23

I can see myself in some of these points!

Brilliant indeed

Surendra 04/22/2007 23:48

Brilliant and inspiring . I like it

Vanderleun 04/25/2007 13:01

I know for a fact that Fulghum really likes this article.

Motorcycle Guy 04/25/2007 18:54

I've seen titles like this alot lately lol. I wonder which one was the original. I remember my gf wrote a piece similarly titled talking about how pluto isn't a planet now. Anyway good article.

MVp 05/05/2007 01:28

TOO GOOOOOOOOOOOOOOD

THanks

Manish 10/22/2007 00:53

Really nice article.

Thanks

Steve McGrath 12/25/2007 13:50

Came from ProBlogger and was worth the read.

Great post!

Steve McGrath 12/25/2007 13:51

I forgot: Merry Christmas to all!

Ben 12/25/2007 17:51

Great post, I also came over here from Problogger and I am glad I did. In fact your post has inspired me to write one similar to yours and expand on the points a little bit.

Thanks

abby, the hacker chick blog 07/19/2009 07:07

you are just a treasure! I don't know how I never saw your blog before. But how wonderful you are reminding us of the joy in programming. And if I could add one more...

  1. Imagination rules. We were so good at this in kindergarten! Technology only improves by those of us who dare to imagine a better way that others haven't thought of - or been able to make work - before us. Never stop looking for ways that we can make our software better at helping it's users.
Sebastien 07/19/2009 16:26

Thank you, refreshing for the mind of every programmer !