Professionals train themselves
来源:互联网 发布:先锋网络电视vip账号 编辑:程序博客网 时间:2024/05/16 15:16
Kevin, an engineering manager, was frustrated. Good projects do not come to his engineers. If there are no projects, there will be no accomplishments, and no advancements. China will feel like the high-tech colony of the 21st century and get only menial works and be stuck in the "low wage" end of the industry.
I felt for Kevin's despair. At the same time, I was astronished on how his young engineers have missed the basics and focused on the wrong things.
Like atheletes, good software engineers move up the career ladder will skills. It is quite simple, choose the arena, suit up and compete. The winners move on. The question is, "Are you training yourself everyday?"
The general categories for a software engineer evaluation are:
- Credential:
The pieces of paper that prove you qualified for certain tasks. The most basic ones are the diplomas. Then we have those issued by various institutes. These paper give the boss various degree of confidence that you can accomplish the tasks she needs you for. If the task has a commensurate higher job level, you may get the promotion tegether with the assignment.
Credentials, particularly diplomas, also show your tenacity and conformity. You may not have learned much, but you stuck it out for years and met all requirements. If you can go through that, you must have what it will take to finish this project.
- Experience:
Young engineers hate to compete on experience. You are not qualified because you have never done this before. But how can you get the 1st project then?
- Skills:
Skills are easy. Although hard to describe precisely, an engineer know how skilled she is. Software, after all, is a craft. Within few minutes, an engineer would have sized up others and a pecking order is formed.
These basic three are part of all promotion considerations. The weights of them differ as career progresses. In general, Sun values credential the least, skills most, and experience a very close second. Ask. "Am I the most skilled and experienced among my peers?" Like atheletic competitions, software career is meritocratic. Do not waste efforts on anything before mastering the basics.
Next time, when you have finished the project, try do a bit extra:
- Testability:
How is the code testable? Is there test programs that automate the process? When problems surface in the system, how easy it is to isolate the bug?
Along the same line is demo. How would you show someone your proud achievement? Did you write another piece of program to show it off?
- Usability:
Is there a web-based interface? Is there a tool to make it easier? How is the user experience? Do not hide behind areas of technology. A kernel module or a device driver can have user interfaces just like a Java application. As long as a human being can use it, you need to consider usability.
- Elegance:
Is the code efficient and pretty? Nicely modulized, neatly formated, appropriately named, cleanly inferfaced? How did you treat the global state variables? How much you rely on side-effect to accomplish works? Are you proud of this piece of work like a poet?
- Documentation:
Did you comment the code well? Did you write the design document? Did you let the next person who is unfortunately stuck with your code know where to pay attention?
These are where you gain experience without the assigned project. There is always something extra you can do to make your project better. When you are doing that extra amount of work, you gain experience on areas you do not normally practice in. Choose what you need to practice and do the extra work there.
And you would have done something wonderful to yourself. When you are doing those, your manager will notice that you walked the extra mile and did the extra-currriculum work. That shows your diligence, willingness to learn, and potential.
Most importantly, you gain control of your own career by doing these. Those extra works make you a better software engineer. An accomplished software engineer write his/her own ticket. You will name the next project you want to work on. Opportunities will come knocking on your door.
Lastly, wherever you look, there are bugs to be fixed and source code to be read. Pick an area of interest, read the source code, try to fix few bugs that seems trivial, talk to the owner of the code and ask him/her to review or integrate what you have done. They will appreciate it and you get the experience. This is the power of Sun's openness. Don't squander. Train yourself.- Professionals train themselves
- Professionals train themselves
- appreciate themselves
- train
- train
- train
- train
- Bolster their spirits,distracted themselves.
- Advanced PHP for Web Professionals
- Advanced PHP for Web Professionals
- Applied Mathematics for Database Professionals
- 178.God helps those who help themselves. 自助者天助
- Shareware Amateurs vs. Shareware Professionals (ZT)
- Visual Studio Team Edition for Database Professionals
- Visual Studio Team Edition for Database Professionals
- Microsoft Vista for It Security Professionals
- Night Train
- 网易train
- 汇编语言超浓缩教程
- [JS]详尽解析window.event对象
- my dream of 14-Apr-2006
- 关注话题
- 词律表-词牌大全
- Professionals train themselves
- 词律表-长调
- 词律表-中调
- blog点击率
- 词律表-小令
- 词律表-小令
- DBGRIDEH 组件在Borland开发工具中应用全攻略 (转)
- Sybase SQL Server索引的使用和优化
- 在打印报表时,如何知道用户是真的打印了,还是点击了取消按钮而没有打印?