I am a software engineer, database developer, web developer, social media user, programming geek, avid reader, sports fan, data geek, and statistics geek. I do not care if something is new and shiny. I want to know if it works, if it is better than what I use now, and whether it makes my job or my life easier. I am also the author of RegularGeek.com and Founder of YackTrack.com, a social media monitoring and tracking tool. Robert is a DZone MVB and is not an employee of DZone and has posted 87 posts at DZone. You can read more from them at their website. View Full User Profile

12 Things A Programmer Really Needs To Know

  • submit to reddit

How do you answer the question, “what do I need to learn to be a good programmer?” I have written posts trying to answer that question, typically focusing on the languages that you should learn or the algorithms and other techniques you need to know. What about the rest of a programmer’s life? This is a less serious look at the life of a programmer. So, what does a programmer really need to know?

  1. Caffeine – You need to find your preferred caffeine delivery system. Mine is black coffee, early and often. Others may prefer diet soda throughout the day. There are always the classics as well, Mountain Dew and Jolt.
  2. Logic – As a programmer, you deal with logic constantly. Your true mettle will be defined by how you deal with the insanity (real or perceived) of the customer. The customer could be your project manager, the business analyst or the users. For any given project, you can count on someone sounding completely insane.
  3. Hours – Expect to be working a lot of them. Programming is one of those jobs that refuses to follow the 9 to 5 path. As you get closer to your deadline, the hours you work will increase quickly. Just hope that you can work from home sometimes. Also, weekends and time off are for management, and you need to be available at all times.
  4. Corporate Leash –  You may not have any power to make decisions, but that does not mean the company cannot give you a leash. The ability of constant communication is too much for companies to pass on so you will likely get a crackberry, a pager (people still use them), or some other company provided cell phone. No, your leash will not be an iPhone, this is not meant for fun this is business.
  5. Blame – As a programmer, you are the low man (or woman) on the totem poll. Just remember that shit rolls downhill, the buck stops with you and if there is a defect it is obviously the programmer’s fault.
  6. Sleep – More importantly it is the lack of sleep that you need to be concerned with. As your hours increase, you will find there is less time to sleep. You will have to call into a conference call at 7AM with your offshore team, or support a 5AM deployment on Saturday.
  7. Skills – Your skills typically do not matter in the corporate environment. There are plenty of programmers that do not have jobs and could fill your position. Your expertise in the business domain is not important because there are business analysts that are supposed to be the experts in the business. You are replaceable, you are just a part in the corporate machine.
  8. Odors – As the hours get longer and management reads something about the productivity of team rooms, the odors start to get worse. We are not talking about someone heating up their lunch. We are talking about the stereotypical, unkempt programmer sitting in a room full of other unkempt programmers. After some time, the room starts to smell like a camel, and it is not pretty.
  9. 24/7 support – Yes, you will be pulled into support at various times, even for something like a customer service site. The application may not be life threatening or revenue threatening, it is just job threatening. So, your corporate leash will ring at the worst possible moment and you will have to get on a conference call with 10 people who have no idea how to fix the problem but need to be involved from the management perspective and one other person that might be able to help you.
  10. Stress – Project failure is never an option. You cannot miss the deadline even though it was not the deadline you proposed. No, you cannot remove features from the application in order to make the deadline either. You need to deliver the entire application by the deadline, or the entire team could be fired. Nothing like a little pressure with your morning coffee.
  11. Non technical managers – These people are considered the bane of most programmer’s existence. They need to manage a group of programmers, but they do not understand what they do for a living besides “they write code”. They typically overpromise, underdeliver and treat their programmers like cattle or “resources”.
  12. Political battles – This is one of those things that programmers are rarely directly involved in. However, your project and even the whole team could become the casualty of some political war. You have no power to prevent any of it, but you are definitely involved. Keep listening to the rumors so that you have some warning that something bad could happen.

Obviously, these ideas will not happen everywhere and are much more of a worst-case scenario. If you see several of these things at your current employer or even a prospective employer, you may want to run the other way. Given that you already carry a cell phone anyway, don’t worry about the corporate leash, they will just want your current cell phone number.

From http://regulargeek.com/2010/08/07/12-things-a-programmer-really-needs-to-know/

Published at DZone with permission of Robert Diana, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Adedayo Ominiyi replied on Mon, 2010/08/09 - 3:45am

Right on the money. I almost laughed myself to death. Good job

Manuel Jordan replied on Mon, 2010/08/09 - 8:19am

Sadly our work produce a lot of stress, which after of many years exists a high probability to produce cancer, abuse of caffeine and even energizer drinks is not well to the health

Philopator Ptolemy replied on Mon, 2010/08/09 - 11:31am

Excellent list!

I'm sure there is no programmer that has not experienced many of these evils.

I have one question though, the author wrote:

If you see several of these things at your current employer or even a prospective employer, you may want to run the other way.

I wonder whether this means that we should look for places that don't have such problems or that there is mo point to "run the other way" since any place has some of it?


Loren Kratzke replied on Mon, 2010/08/09 - 1:39pm


Shekhar Gulati replied on Mon, 2010/08/09 - 9:49pm

Made sense.

ronaldo martinez replied on Mon, 2010/08/09 - 10:52pm

Well said.:)

Cosmin Mutu replied on Tue, 2010/08/10 - 12:35am

nice post ;)

Florin Botis replied on Tue, 2010/08/10 - 2:19am

So TRUE! :)

Yaozong Zhu replied on Wed, 2010/08/18 - 11:31am

Dead right!:)

Abhel Bejerano replied on Mon, 2011/08/08 - 12:51am

its hard to know about this :(( i hope somebody to help me about this :( im only student and i cant to learn about proggmming :(

Gar Labs replied on Tue, 2011/08/23 - 10:47am

Your right! Aspiring programmers should read and learn from this post. -GAR Labs

Gautam Dev replied on Wed, 2011/08/24 - 11:00pm

Excellent. Will also add the latest buzzword e.g. TDD, MVC or whatever.

Waldemar Janzen replied on Thu, 2011/08/25 - 2:45am

@Abhel:There are well organized companies, where most of these points are not true.

James Murphy replied on Thu, 2011/08/25 - 6:36am

If more people weren't prepared to put up with long hours, performing what is effectively a 24/7 support role and were instead intent on delivering software that is rock solid then maybe we wouldn't have so many long hours and sleepless nights. I've jacked in my previous jobs before now because they simply demanded too much and didn't compensated me in kind.

Continuous Integration, load and performance testing running in a push button pipeline are key to making sure you never go beyond the 8-hour burn they'll allow you to deliver top notch bug free software...

Thankfully where I currently work I get to leave on time 98% of the time and only do 9-5pm. If you have to work longer than 8 hours there are several things I can say about that...

1) You're not working efficiently enough

2) Your company isn't working in the right way they rely too much on developers to perform tasks that others should be performing (only in the case of small start-ups should you ever have to perform multiple roles...)

 Most importantly don't be exploited and remember you work to live, you don't live to work! Make sure that you're receiving the plaudets you deserve when you deserve them - if you don't... leave.

Peter Perhac replied on Thu, 2011/08/25 - 6:48am

I down-voted this article, and I'd like to tell you why: First of all, a lot of this stuff is just nurturing the old stereotype - my colleagues do not stink like camels and don't suffer from lack of sleep. Another thing is, you can be a programmer without drinking lots of caffeine. I have colleagues that drink nothing but water (which I can't fully understand but still - it is highly commendable).

Furthermore, I'd like to point out that you either suck don't excel at what you're doing, or you should change your job, as the company you work for is, from what I gather, no good. Why do I say this? Well, you mention you need to deliver the entire application on time or the whole team could be sacked. Not if the team is any good, not if the management is sane.

Programmers don't need to be caffeine-infused smelly unkempt zombies that get no sleep and are always blamed for everything and stressed out. This is the stereotype I think no one needs to promote and publish under the title "12 Things A Programmer Really Needs To Know". Disappointing that so many people like this stuff...

Javin Paul replied on Thu, 2011/08/25 - 8:40am

simply amazing , would have been much better if you could share experience how to deal with those day 2 day issue, that will really help many people or probably write how to effectively deal with your project manager etc

10 example of find command in  Unix

Hassan Turhal replied on Sun, 2012/09/16 - 3:09am

It’s these kinds of articles that are keeping “programmers” less professionals, and more laborers. This is a self-fulfilling prophecy. If you need to constantly work crazy hours, hop yourself up on caffeine, deal with terrible managers, than that will be your life’s work.

On the other hand, if you value your work as a professional, in the way that other professions do, you will be treated that way.

Advanced Java Examples 

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.