杂谈 印度导师给中国程序员的建议

Prakash Sundaresan是图灵奖获得者Gim Gary的弟子,曾任微软服务器和开发工具事业部中国研发中心的总经理以及微软亚太区CTO。

有幸在微软共事将近三年,Prakash是我在职业生涯里见过的真正睿智的人。2007年微软在中国成立SQL Server研发中心的时候,他写了一篇很长的关于职业生涯的发展建议的文章,我把其中的一部分节选出来。

真正的好文章,经得起时间检验,再次阅读,还是回味无穷。

1. Knowthyself:

If you’re an engineer, what discipline(s) do you want to build expertise in –Development, Testing, Program Management, User Experience or Product Planning?Do you want to follow an individual contributor track or the people managementtrack? What kind of technology do you want to work on – consumer or business,platform or applications, hardware or software or service? Do you want to workon a start-up project or on a more established product?

“Are you atechnology guy with a business interest, or are you a business guy with atechnology interest?”

认识你自己。

作为一个工程师,你希望更多地面向服务端还是业务端,应用开发还是基础研发,更喜欢做创业型项目还是大型工程,往哪个技术栈走?无人能代替你回答,小马过河,走过才知道。

当面对选择取舍的时候,问自己正确的问题,会更有帮助。Prakash有一次跟我说,他在做技术lead的时候,遇到了选择上的疑惑,他既对业务感兴趣,也对技术感兴趣,于是跟他的主管沟通。他的主管问了他一个问题,他立刻发现了自己应该做出的选择:你认为你自己是一个技术人同时对业务有兴趣呢?还是你认为你是一个业务型选手,同时对技术有兴趣?

2. Make a plan – andkeep it up-to-date:

Here’s an idea thatmight make it easier. Find a mentor, or at least a role model – someone in theorganization you can look to and say ‘I want to be like that person’. Go talkto that person, find out how they got to where they are, and see how you can adaptthat experience to your own situation.

制定计划,执行计划,调整计划

Always have a plan。

一个小技巧是,找到公司里或者身边的一个你可以学习的对象。对方是你希望能够成为的样子。多向对方学习和请教,遇到问题的时候,把他的思路和自己的思路做一个对比,把人家的经验智慧变成自己的。在成长的路上给自己找一个role model。世界那么大,这样的人总有许许多多,找到Ta,发现Ta。

3. Develop goodhabits:

I’ve seen many folksdevelop damaging habits and thinking “I know this is not a good habit, but whenthe real opportunity comes, I know I’ll be different”. Wrong. There is anEnglish-language saying – “we’re all creatures of our habits” – meaning who we areand how we respond to a situation is determined to a great extent by the habitswe have developed.

形成好习惯

开发人员的一个坏习惯是,我知道这么搞有问题(可维护性、健壮性、性能问题等),等后面有时间再来优化。人是习惯动物,写着写着,我们就让自己成为了二流程序员、二流算法工程师。即使上线时间再紧迫,也总是有更系统的、更好的方法来看待或者解决一个问题。

如果你的工作经验只有两三年,也许能把主要经历过的问题都记在心里,走的路越长,就会发现,善于记录和总结,是在旅程上自己能给自己的最好的礼物。

4. Be an expert - onbeing an expert:

It doesn’t reallymatter as much what particular subject matter you become an expert in, whatmatters more is that you become an expert in becoming an expert.

成为 “成为专家” 的专家

锻炼和发展出一个学习系统,这个学习系统有它内在的逻辑和方法,帮助你在希望投入的任何一个领域都能成为专家。通过学习,能做好软件项目开发管理,也能学会成为游泳的高手,学会如何学习,专业背后的道,是相通的。

5. Help your managerand your team:

They often come totheir manager to discuss what they can do to get that next promotion. I’vealways found these conversations somewhat strange. Of course, depending on thecircumstances there may be a variety of things that you need to do that wouldhelp you advance in your career. However, one consistent way I’ve found thatemployees can help both themselves as well as their team is to ask a simplequestion – what does my manager worry about and how can I help him or her?

帮助你的主管,帮助你的团队

在职业生涯中,见过许多向他们的主管提升职或者加薪计划的同学。大部分人是这么想的,两年或者至多三年以后升一级,他们的主管也会帮助他们制定一个计划,做这个或做那个。这么想也无可厚非。 有一个更好的利己也利人的方法是: 多问一问自己,让我的主管头疼的事情是什么?我做什么能够更好地帮助他,帮助这个团队? 人总是在成就他人的过程中,成就自己。

6. Drive your career,but don’t be obsessed with it

So, while we allhave our goals and we work towards them, it is important to take your time andsmell the roses along the way.

我们都要工作很长的时间,对这个很长的时间要有足够的认识,才不致于在这个过程中经常有心力或者精力被燃尽的感觉。工作很重要,个人兴趣也要保持。

tag: 学习 方法