I get a lot of request from a lot of people who see my works and
 get inspired and ask me how can they do the same? The questions I
 generally get are following:
- How can I develop projects like you did?
- What do I need to learn in C# to become like you?
- Does Microsoft Certifications help? Should I go for the
 exams?
- What did you do to become MVP? I want to become MVP too.
- I am 23 (or 24), fresh graduate and I want to become like you. What do I need
 to do?
Generally the questions are like this. Everyone asks me for a
 “shortcut” way to becoming a really good developer. So, here’s the
 magical secret for becoming a really good developer and achieve
 everything I have achieved:
Work 16 hours per day, 7 days a week, 360 days a year for
13 years.
Yes! That’s the secret. It’s pretty easy. The only thing you
 need to do is “work” and do nothing else and you will achieve
 everything that I have achieved. Pretty easy. I did that, so you
 can do it too! Piece of cake.
If you want to go for the “long” way then here’re the things you
 can try:
- Take part in open source projects or make several yourselve.
 This is the best way to learn really useful things.
- If you can, try setting up your own company. I have setup 3
 companies so far. 2 were not that succesful, 1 is very
 successful. It helped me learn so many things that I would have
 never learnt by working in other’s companies as an employee. The best lessons are learnt from the failures. I learnt a long list of “What not to do in a software development project”, which came very handy when I did my later projects. The more I failed in my earlier projects, the less mistakes I made in my later projects. The key is not to give up even if you fail to deliver 10 projects successfully in a row. Keep an open eye, do a retrospective and find out what made it fail, and especially what *you* did wrong.
- Read articles everyday. There are thousands of articles to read
 from www.codeproject.com and
 msdn.microsoft.com. I use my Pageflakes page www.pageflakes.com/omar to keep in touch with the technology world everyday. I still read almost all the articles that get
 published in codeproject every week. If you read 10 articles per
 week and do it for a year weeks, you have the knowledge
 of 480 articles! Who can beat you then?
- Not only read articles, but try out the attached source codes.
 Make similar projects yourselves and use the ideas presented in the
 articles in your own project. I spend everyday at least 1 hour in
 trying out new technologies. This not only increases my knowledge
 but also makes me more experienced in doing things better and helps
 me do my office work better and faster.
- Get into companies which gives you exciting projects to work on
 and you get to do something in everything. For example, join a
 company which gives you the freedom to design your modules, develop
 it, test it, document it etc. The idea is to gain experience from
 all stages of development. Make sure the company has enough bright
 stars to learn from. If you just become another cow in a big dairy
 farm, no benefit.
- Don’t leave a company if you are underpaid but you do a lot for
 the company. Have patience. Build yourself up and you will one day
 get what you deserve. I used to get $250/mo in my first
 company, which used to do outsourced projects for a really big
 company in US. I worked day and night in that company and worked in
 8 projects in 7 years. I did not leave the company because of
 the technologies I could learn and apply and the variety of things
 I could do there besides just coding. Best of all, I could work on many outsourced
 projects myself from various countries which exposed me to a wide
 variety of technologies, culture, and business. So, when I left the company and
 joined another one, with the vast experience I had gathered from my
 previous underpaid company, my salary became $200/day in the new
 company. See the difference. If I had left earlier seeking higher
 salary instead of technologies, I would not have learned all the
 cool things and I would not become so expensive as I am
 now.
- This is very important for those who cost $200/day now. Don’t
 change yourself once you start earning this much. Be the same
 person as you were when you used to get $200/month. Remember, it
 was the attitude and the burning desire to learn and grow that
 made you become what you are now. If the burning sun inside you
 becomes a dying candle, you lose.
- Don’t start your career in a company where you are given nice
 specs to read on, you have lead developers to decide all
 input/output/pseudocodes, you have a solid QA team to test
 your work, you have managers and administrators to take care of
 every management and administrative issues etc. In such a company,
 the only thing you become is a “smart typist”. You basically
 translate English to C#. The right side of your brain does not
 develop at all. Start your career with small companies which deal
 with lots of challenges and you get the chance to burn your brain
 and fingers out. The sweet smell of your roasted brain is far
 better than the sweet scent of your polished cubicle inside a
 decorated corporate office.
- I have seen the following evolutionary cycle of developers and
 see where you fit in:
- 
- Beginner: Does not wear shoes, comes to office on sandles.
 Looks very sober. Shirt is outside pant. When you ask them,
 do you know .NET events and delegates? They say, “uh, ummm, no I
 don’t think so. Is it birthday events?”
- Beginner+: Gives you “I know it all” look whenever you talk
 about programming. Wears shiny shoes, full sleve shirt is
 nicely put inside dockers pants. Back brushed hair wtih
 “Set Wet” gel and always on 300 sunglasses. When you ask them, “do
 you know .NET events and delegates?” They say, “Events and
 delegates are coooool man! You can do anything with them and mark
 my word man, “anything”. I haved used them in sooooo many
 projects. Did you just learn about .NET events and
 delegates?”
- Intermediate: Clothing turns a bit pale. Sunglass is
 old-school. No hair gel. Anytime you speak about some terms like
 EJB, Spring, Design Patterns, their eyes sparkle like the brightest
 star in the November sky. They start doing a lot of off-the-record
 work inside office. They start going to online groups, start
 working with friends on open source projects, start reading MSDN
 Magazines etc. If you ask them, “Can you make it?” They always
 reply, “Sure, you will get it tomorrow.” But usually you get it
 after a month.
- Intermediate+: Generally you get it within 1 or 2 weeks overdue
 schedule.
- Advanced: They wear the same “I am a Geek”
 or “Microsoft Windows XP” logo T-shirts everyday (until it
 stinks and you can smell it as soon as they enter the
 office) and shiny sports shoes. They start talking about
 software development processes, RUP, Extreme Programming,
 Agile Development etc. If you ask them to do something, they
 reply “Give me a functional specification, a technical
 specification, test plans, milestones, release plans, mockups and N
 number of developers and I will get it done.”
- Very advanced: Does not wear shoes, comes to office on sandles.
 Looks very sober. Shirt is outside pant. When you ask them,
 do you know .NET events and delegates? They say, “They seem to
 suffer from bi-directional strong reference problem which
 prevents garbage collectors from collecting the listener properly
 and the only way to release the reference is to bring down the app
 domain”
 
- Beginner: Does not wear shoes, comes to office on sandles.
- Do take Microsoft Certifications without cheating. You will
 learn a lot.
- Write articles & blogs. Share everything you learn. Someone
 out there will benefit from it someday. Don’t hesitate thinking
 that you don’t know much to write about.
Thank You For These Advices And I Hope To be Like You
Thanks for sharing, I like this article very much!
Gonsalez music
MSN SpaceOmar.
Nice post !
-Reza
Nice! very Nice! Cutting edge article.
Just an example of how brilliant and Inspirational an article can be!
hi,
actually we have no words to say !!!!!!!!!
-RaJu
18 hrs a day, 7 days a week…!
Bro, you might scare people off…is it really that demanding?
Its Awesome!. thanks to Srinivas also to recommend ths to us.
Good posting. and i always used to read your articles.
But every one may not get enough oppurtunity atlast we have to maintain certain other things too
I am not a professional Developer.
After reading your article I wish I become a good programmer
Lovely article!
Kudos Mr.Zabir!! The way u analyzed the psychology of software engineers is extremely awesome! Its simply a software engineer's lifestyle on a blog. It helped me to learn how foolish i am indeed! Thanks for the help.
well, im intrigued with your genuine sharing. i want to work hard too.
its a really good post for new developer like me.
hi. another trick to becoming a great programmer is to start when you are 13 years old on a TRS-80 Model I and to have fun doing it.
Working 18 hours per day might make you a little lop-sided. What will you think on your deathbed? How can you raise children or philosophize? Is man no different than machine?
I think it is better to earn my high salary by working smarter, not harder. People who work 18 hours a day make it a sweat-shop.
What if I am 25 years old and want to become like you? Does your formula work only for those who are 23 (or 24) ?
Its a really good post for all developer.
Thanks for the excellent post. please keep it up
I am a student in NIIT,
You wrote all the things that are needed to guide a student in his green horned stage.
Keep UP the good work! 🙂
was surfing, found this article…
Actually, what written is 100% perfect… I myself work 20 hrs a day and 7 days a week.. do take a few days off per months to other activities… In less than 2 years, i am one of the eperts in my field. I am underpaid in my current company, but it really does not matter.. i get to work on loads of new stuff and the best part is, if no one can solve stuff, they call me..
So, all i can say is “Overnight success takes years”…
Excellent article which should be read by evry software engr of a MNC. I exactly came to know what I am in software industry after reading this.
Siva
hi ,
Im finished ma engg 2nd year .. wen i asked ma bro(wrking in software) about wat should i do next he didnt say nythin . latr i gt this link to ma mail..
u guided me for ma future.. 🙂
you are really grt .. i hav all ma respect for you ..
thank you ..
may ‘allah’ bless you and take good care of you ..
Thanks for the nice post. Every smallest part of this post is a damn true and I feel it right inside me. Btw, I liked the developer psychological analysis of developers. Simply great.
thanks ,
the article is printed and hanged on my wall …
hope one day someone would do the same with an article i wrote.
big regards,
Ahmad
“16 hours per day, 7 days a week, 360 days a year for”?!!
Are you serious?
And there is another one with an issue:
“I myself work 20 hrs a day and 7 days a week”.
Are you guys still healthy? This post worried me a bit.
Sounds like Monty Python’s show…
In the end you should work 40 hours per day, 16 days a week and even pay your employer.
To whom it may concern: You can be Supper Dupper Very advanced ++ software engineer in much more relaxed way if you LOVE what you do! Please enjoy life, so many rules you obsess about here could seriously harm someone. Don’t trust this! You CAN be good and enjoy life. If you’re torturing yourself what’s the point? Than be lawnmower, drink a beer! Unless you’re new Einstein.
Cheers!