Shortcut for chapter specific information

Saturday, June 4, 2011

Our lifes as programmers.

Sometimes you feel that you are going no where.  Sometimes you feel you hit blocks which cannot be resolved.   It is not because you haven't tried.  No, I did, you try to be maximally capable, friendly and cooperative.   The response is indifferent, cold and condescending.   This is a disappointment.  Because sometimes, no matter you tried, you will still have moment of bad lucks.   Or simply bad beats as poker players called it.  Those are the moments you have done the best you can do, but bad things just come to you.
  • Your algorithm is all correct but the input just keep on changing.  You become a programmer with a lot of bugs.   
  • In a programming task, your decision was correct but your boss said no to your decision and insist his.  You gain bad reputation in the process.  
  • You investigated a certain problem lower than the bottom.   Your boss heard someone else without carefully considering your arguments.   Not only you need to use a useless method to work on a problem you know how to work out again, you also waste the time of the first investigation.  
  • Your colleagues need your help.  You help them.  But your boss said you are not being putting your A-game into your tasks.   
  • At the end of the cycle, you were suddenly asked to implement brand new features which are all brainstormy in nature.   There is no time to test them.   If you don't do it, your job is at risk.  If you do it, you are killing your colleagues.
  • Your boss to use a college friend of his or a relative of a director.   He asked you to "manage" the guy.  If something good happens, the merit belong to that guy.   If something bad happens, you need to be responsible.
Sounds familiar?  Some people called it Dilbertesque.  In our world though, it is actually a reality.  This is simply what happens when there is a hierarchical structure of a programming work place.   Believe it or not, these kind of workplace still exist. Unfair judgments come from the top and bad decisions propagate through out the group or the company.  You, as a programmer,  has done what you can do to minimize the chance something bad happens.    What can you do?

The first thing you should do is to understand that this is not your fault.   A pair of AA can get beat by Ax in Texas Holdem which every players know, it is a 93 to 7 shot.   Sometimes you play well but you don't get pay well.  That's just the way life is.   Your boss, your peers as imperfect human beings, sometimes just make mistake.   It is you to decide how to deal with this imperfect future. 

The second thing is to make sure you still play well in the game.   Don't go to drink because you are not happy for the day.   Don't go to take drugs, smoke because you feel those are relieving things to do.   They are counter-productive.   Don't get emotional about these issues.   If your boss or your colleague are obnoxious, eschew them.  Make sure you make sure everything is correct in your domain.   Control the outcome you can control.

The third thing to do is to keep on learning.  There is always a better job waiting for you.  Our discipline favor smart and hard-working people.   There is always a better life outside the job you are working on.   Every time you can get such a chance, you should ask for a salary adjustment.   Why? Because we are hot.  If you don't have a reason to stay in a place, leaving is not a bad idea.  The best people in this country (also outside U.S.) move around.  In that way, you can get benefit out of your jobs.

But remember, moving around different companies are not easy in our industry.  You need to be good.  So study, learn.   Here the things I recommend you to learn:
1, Languages, Communications, Writing,
2, Math and basic computer science subjects.  Top 10: Algorithms, Operating Systems, Compiler Design, Database, Discrete Mathematics, Probability and Random Process,  Linear Algebra, Complexity Theory, Calculus,  Machine Learning. 
3, Management and Interpersonal Skill. 
4, Musical Instruments,
5, Art, 
6, Martial Arts.

1 and 2 are essential.  All of them, when learn seriously, can open your mind.  Being able to impress other people means a lot.  3 are accumulative.  You just need to work and reflect some time.  4-6 will open your eyes.

The final thing to do is to treat yourself well.   Enjoy the situation.   You have only 1 life.  So live happily,  see the adversity you are facing as a challenge, as a problem solving opportunity.   You just need to get 1 good chance, if you are smart and hardworking, your work will get paid off one day.

No comments:

Post a Comment