Tenacious Creations

Use your creativity and make a dent in the universe!

Tenacious Creations header image 2

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

December 26th, 2007 · No Comments



 
 

Captian Crunch

 I recently came across this blog post and it got me to thinking how true it is. The author of this original post did a great job bought I thought I could add and expand on a few points. I would urge you to read the original post.

 
 
 
 

  1. Share Everything - Open source is a good thing, and it can help a coder immensely. If you get stuck somewhere along the way it is always nice to be able to look at some one else’s source code and gain ideas from it. But it is just bad karma to always be taking and never giving anything back. Get involved with an open source project, devote what time you can afford. There are huge benefits for you. You get established programmers to review your code, you get to participate in other facets of a project that wouldn’t normally get too. It looks good on a resume and gets your name out there.
  2. Play Fair - Give other ideas a chance, your way is not the only way! I hate to tell you this, but it also may not be the best way either. In the same manner the other way may not be the best, but a combination of the two might just be exactly what you are looking for. Do not forget to give credit where credit is due. In my eyes and in many others eyes, I think more of the guy who gives the proper credit than the guy who says it was all him. These people who steal and claim the credit themselves are always found out. It is just a matter of time.
  3. Do not hit people! — Don’t go on the war path just because some one is programming in visual basic, or using what you consider an inferior operating system. They still may have some thing to contribute. There are many things you can learn from some one doing something different than you, if you take the time to stop beating them and just listen. Who knows you just may end up as their mentor. Let me tell you, being a mentor is a good thing and you get an even greater sense of accomplishment when your protégé surpasses you.
  4. Clean up your own mess - Before you take a look around at your desk and get scared because you realize you cannot see your desk this is only part of it. Believe it or not an organized work space does help more than one thinks in getting things done. Now before you say well all the coders I see have stuff piled everywhere (I am included in this portion of coders). Just because there are piles of things does not mean I am not organized. I truthfully am and know what is in those piles, when it gets to a point where I don’t know what is in those piles then its time for an office restructuring. I used to do this about once a month, now however I do it once a week as that way I a more organized and efficient.
     This also applies to your code however. Strive to keep your source code neat and following some sort of flow. Add comments, even if you are the only one who will ever see this code. Trust me years later when you look at it you’ll have no idea of your thought process unless you took the few seconds to add comments. How do I know this? Well in a lot of code I wrote when first starting I didn’t use comments at all, looking back on it now what I once thought of as elegant code is a mess of spaghetti.
  5. Don’t take things that are not yours - Follow the GNU license or the other licenses that are attached to the code you are using. How can you expect some one else to pay for that nifty application your poured your heart in soul into if you don’t pay for the software that others put their heart and soul into? You have more than likely heard the saying “What goes around, comes around.”, well guess what it is absolutely true. Again give credit where credit is due. For example the idea for this post came from this blogs post.
  6. Say you’re sorry when you hurt somebody - Reviewing someones code is a great idea. It helps you by allowing you to see new approaches, and it helps the codes author. But this can be tricky, don’t let your ego get in the way. Use constructive criticism, don’t just point out the flaws, give suggestions on how to fix them. Before you say something negative, take a step back and think about how you’d respond to the comment. That should at least allow you to craft you statement in a productive way and not a purely negative way. However be careful not to coddle the author and don’t just give out the answers. A good mentor knows when to show the answer and when to just point the direction of the answer. If you don’t know the answer, admit it and then you and your protégé can go about finding the answer.
  7. Wash your hands before you eat - Remember the 7 P’s to success. Proper Prior Planning Prevents Piss Poor Performance. Plan out your project, prototype it, research it on the web, talk to people about, get a good perspective on it. make a flow chart or pseudocode. And if my grade 11 computer science teacher is reading this - “No I still stand behind the fact that you do not need to flow chart a simple PASCAL black jack program that does not even use suits.” (yes I am still bitter about that even though it was more than a decade ago)
  8. Flush - Like it says in the post I got the inspiration from. Do not be afraid to replace, refactor, or rewrite something that is crap. Now this is harder than it sounds, it can be very difficult to give up on something that you have worked hard on. But deep down you know when something you have done is crap, you have to admit to yourself that it is crap and have the guts to ditch it.

  9.  

     

  10. Warm cookies and cold milk are good for you - You need to have a good work environment. If you work from home make sure your office is a distraction free zone, print up a sign or something to hang on your door to warn other house hold members that you are coding and should be left alone. Make sure you like the space you work in. hang pictures of things you like if you are into that. Maybe include a plant (Unless you are in some gloomy dungeon where no light can get in). Try to be in a place where some natural light can be seen. I used to love to work in absolute darkness but I have learned I am actually more productive if some natural sunlight or moon light can get in (contrary to my own beliefs I might add). Try to use an incandescent light in a lamp and point it at the ceiling. This diffuses the light a bit and makes it easier on the eyes.
  11. Live a balanced life - learn some and think some and draw and paint and sing and dance and play and work every day some. - This is probably the most important advice I can give. Working 24 hours a day IS NOT good for you and hampers your creativity. Googles program is to allow its employees to spend 20% of their time at work devoted to whatever they think they should be working on. You need to have other outlets that gets you away from the code, draw, skate board, build a battle bot, finger paint, or just bake cookies. You’ll be amazed at how rejuvenated your mind will be after a short break. Solutions you were struggling with will just seem to come to you. In fact when you get really stumped - take a break away from the computer and go for a walk. It really does help.
  12. Take a nap every afternoon - I have a kitchen timer stuck to my filing cabinet next to my work station set with a 20 minute count down timer. When it goes off, I take a two minute break. I get up and stretch, close and rub my eyes. You might see it as a wasted two minutes but man has it increased my productivity. Now I’ll admit sometimes I am involved in something and can’t take that little break. In that case I reset the timer and try to take a break before it goes off. But after it goes off the second time I make myself take a break. If I am in the middle of an idea I write it down in my note pad. At first I was afraid I would lose my train of thought. But in reality it allows to me to focus more precisely on that train of thought. My reasoning behind this is as such - Your subconscious brain processes way more information and way faster than your conscious brain and a sort of lag develops. When you take that break it allows for your conscious brain to catch up. That ca also explain why I seem to be able to solve things while I nap or sleep.
  13. Be Positive - This is the chant of many self help guru but it really does have an effect. You have to strive to be the glass is half full person and not the glass is half empty person. Being positive takes a lot more work than being negative, and you have to always watch yourself to make sure you are not sliding to the negative side. Once you start approaching problems positively you’ll find the solutions come a lot easier. Instead of thinking ” Crap another bug this sucks!”. Try and approach it by thinking ” Hmm another bug, lets find and see how I can make this code a work of art!”. As goofy and new age as this might sound it does do wonders.

  The author of the post where I got my inspiration has a few more points listed but this covers pretty much what I wanted to say. I really hope you enjoyed this post and possibly came away with something that can benefit you from it.

Rate this:
2.5

If you enjoyed this post, make sure you subscribe to my RSS feed!

Tags: Creativity · Programming

0 responses so far ↓

  • There are no comments yet...Kick things off by filling out the form below.

Leave a Comment