让自己不要迷失方向 -- "How to become a really experienced developer overnight "
2007-01-23 19:34
519 查看
为了让自己在迷惘的时候做出正确的选择,我转载了它:
How to become a really experienced developer overnight --Omar AL Zabir
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 become a developer like you?
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) 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 18 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.
Read articles everyday. There are thousands of articles to read from www.codeproject.com and msdn.microsoft.com. 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 per month 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 only because of the technologies I could learn and apply and the variety of things I could do there. Best of all, I could work on many outsourced projects myself from various countries which exposed me to a wide variety of technologies. 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"
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.
How to become a really experienced developer overnight --Omar AL Zabir
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 become a developer like you?
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) 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 18 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.
Read articles everyday. There are thousands of articles to read from www.codeproject.com and msdn.microsoft.com. 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 per month 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 only because of the technologies I could learn and apply and the variety of things I could do there. Best of all, I could work on many outsourced projects myself from various countries which exposed me to a wide variety of technologies. 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"
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.
相关文章推荐
- [share]How to Become a Lazy but Productive Android Developer
- 5 Tips for creating good code every day; or how to become a good software developer
- 一个对自己负责的软件开发人员该怎么做(How to do for one qualified developer)
- 5 Tips for creating good code every day; or how to become a good software developer
- 7 TIPS ON HOW TO BECOME A FULL STACK DEVELOPER!
- How to become a better Android developer: 30+ bite-sized pro tips
- 【翻译】How To Become A Blockchain Developer: Crash Course! 区块链开发指南!
- How to become an iPhone developer in eight easy steps
- How to become an embedded software developer?
- 5 Tips for creating good code every day; or how to become a good software developer
- 10 Steps To Become Better .NET Developer
- How To Become An Outstanding Person In Twelve Weeks
- HowtoBecomeAhacker[转]
- How to quickly become effective when joining a new company
- How to Become a Hacker
- How to become a proficient Python programmer
- 想弄清楚LIBEVENT和EPOLL之类的关系,不要因为走得太急而迷失了方向
- How to Become an Exceptional DBA(如何成为一个优秀的DBA)
- Things you need to remember to become a successful developer
- 《How to become a hacker》(怎样成为一名黑客?)翻译(2)