梁胜博士对全程序猿的建议
梁胜博士是Rancher Labs Inc. 公司联合创始人及CEO。创立Rancher Labs之前,早期在全球知名的他Sun Microsystems公司担任核心主任级工程师期间,梁胜博士是Java语言J2SE平台核心组件JNI(Java Native Interface)的作者,并随后领导设计和开发了Java语言最为核心的JVM(Java虚拟机)。他于2008年创立全球*的云计算公司cloud.com并担任CEO,推出著名的云计算管理软件CloudStack,也因而被誉为CloudStack之父。2011年cloud.com被 Citrix 以 2 亿美金购入旗下,梁胜博士出任 Citrix云平台首席技术官,也是 Citrix 公司首位华人CTO。早期,梁博士作为创始人之一,创立了Teros网络安全公司,该公司之后也被Citrix公司并购。梁胜博士早年还担任过SEVEN网络公司的工程副总裁,以及Openwave System技术总监。梁胜博士毕业于中国科技大学少年班,并拥有耶鲁大学计算机博士学位。
从学生时代,到研发工程师,到一路创业,到如今成为硅谷云计算领域泰斗级的人物,梁胜博士以自己的人生履历及经验感悟,为各位身为程序员的你,写下了这些话。
纵观当今各行各业,我们可能很难再找到一个像程序员这样的职业了。在云计算、移动互联网、以及人工智能这样的新技术的发展浪潮不断催生出新的商业机会的今天,IT行业对程序员似乎有无止无尽的需求。作为一个程序员,想到职业规划,一方面我们觉得有太多的机会,另一方面我们也会感到迷茫,甚至畏惧。
如果你在一个大公司工作,如何跟上新技术发展的步伐?如何避免在同事得到升职时,自己陷入死胡同,无成长空间?如果你已经决定自主创业,你如何在成百上千的创业竞争对手中脱颖而出?这些竞争对手中的很多人或许拥有比你更多的资金,更有经验。在新技术不断颠覆的今天,我们能否对未来的10年、20年乃至30年的职业发展做出一些计划,让我们面对未来的行业发展游刃有余呢?
有人说编程序已经不是一个好的职业了,因为程序员只能吃青春饭。在我看来,这种观点大错特错。实际上,绝对没有任何其它职业比编程序更能体现个人创造力和技能的价值。程序员像艺术家。编程的确是一个辛苦的劳动过程,但不重复。世上不会有两个人写出完全一样的代码。正如一个艺术家一样,程序员能够持续很长的职业生涯。我就认识很多程序员,他们虽然已经四五十岁以上仍然保持高效。程序员的薪酬比艺术家好得多,因为编程的工作为社会创造了直接的经济价值。
说到职业发展,很多人认为要成功只要找对机会。对这类人来说,职业规划就像买彩票一样。他们不断从一个项目换到另一个项目,从一个公司跳槽到另一个公司并乐此不疲。他们不关心自己在做什么,只关心是否站对了队。事实上,这些人并不能找到财富*,而是得到一份有污点的简历和败坏的声誉。而在我们的IT行业,一个人的声誉决定了一切。在整个职业生涯中,声誉的积累与技能和财富的积累同样重要。当你有良好的声誉时,机会自然会来找上门来。
因此,仅仅关注新的技术发展和新的商业机会是不够的。无论你在手上执行什么工作任务,你都应该在努力交付一流工作结果,以此来积累你的声誉。风险投资家 Ann Miura-Ko 简单地将这一做法概括为“成为世界一流”。在 Ann 的思想中,“世界一流”适用于任何一项工作任务,从简单的用复印机复印一份文件到编写代码,做一个PPT演讲,或大到做出一个产品。据我观察,这世界上平庸的东西太多。如果你能够尽力把每一件小事都做得最好,长期积累下去,您将成为最耀眼的明星。
许多人认为编程仅仅是一个重复性的工作。但实际上作画、做音乐也一样都是重复性的工作。是什么让一幅画或一段曲成为世界一流的呢?无疑是激情、创造力以及对完美的追求。而事实上伟大的程序员能在最普通的任务中找到激情把程序写得最好。在 Google 诞生之前,网页搜索的问题被业界公认为是毫无意义而且已解决完毕的问题。Eric Yuan 曾经在 Webex 任工程副总裁,而他坚信 Webex 发明的网络会议系统仍然可以改进,继而他创立了当下全球最成功的 Zoom 视频会议服务。像乔布斯和马斯克这样的传奇人物,他们的成功也以激情、创造力和追求完美做为基础。对我们普通人来说,我们可以从每天的工作做起,从小事做起:
当你在做一个设计或实现,即使只是某一个简单的功能点,你能不能把这个功能做成全世界最好的?不要在乎事情小,越小越容易冒尖。
你多半不能一次就把设计做得最好。就像绘画和音乐一样,你要反复尝试,不断提高,总有一天会被认可。
开源软件是一个向全世界展示你自己的工作成果的机会。在弄懂你为什么喜欢某些开源项目后,你是否也可以创造一个有名的开源项目?
如果你有机会要做一个PPT演讲,千万不要照搬照抄别人的PPT。尽量去理解你的听众的喜好,然后从头开始自己写一个PPT。你的目标应该是:如何把这个PPT做成全世界最好的?
如果有机会再做同一个演讲,你能不能把它做得更好一点?绝对不要把一样的PPT讲2次,每次都要有提高。
在大机会上门之前,你能为自己的职业规划最好的准备就是把你每天从事的本职工作做得尽善尽美。如果保持这种工作态度,你的努力终将得到你整个团队和整个公司的认可。如果你是从事一个开源项目的话,那你将会得到全世界的认可。以这种态度工作,你将会找到脱颖而出的成就感,你会迅速变的更优秀,更快得到升职。如果你哪天决定自主创业,你的声誉能让你很快地得到投资,很快地吸引人才。最重要的是,你会明白怎样才能创建一家世界一流的公司!
本文原文由梁胜博士以英文撰写,特此贴上原文,供您欣赏英文文法上的另一种美妙。
There’re probably few professions that are as dynamic and exciting as a programmer today. New technologies like cloud, mobile, and AI lead to new business opportunities, and with that our industry seems to have an insatiable demand for programming talent. For a programmer, all this could feel quite confusing and daunting. If you work in a large company, how do you make sure you keep up with the development of the latest technology and do not get stuck in a dead end project while others get promoted? If you decide to take the plunge and become an entrepreneur yourself, how do you shine through hundreds of other people–many of them are better funded, better connected and more experienced–who are trying to do exactly the same? In today’s rapidly changing industry, is there anything you can plan to better position yourself in the next 10, 20, and 30 years, regardless of what new technology and business disruptions may come?
Before we discuss what you can do, let’s first take a look at what does not work. People say programming is no longer an attractive career opportunity. It’s at best a Young Person’s Career. I cannot disagree more. There’s not another profession that values individual’s creativity and skills as much as programming. Programming is an art: it is a laborious process, and no two person produces exactly the same code. Just like an artist, programming careers can last a long time. I know many programmers who remained productive well into their 40s and 50s. Programming is of course a much more lucrative career choice than art. Programmers are compensated much better than artists because their work creates economic value for the society.
Some people believe the key to success is to find the right opportunity. To these people career planning is like playing the lottery. They jump from project to project and jump from company to company hoping to find that one big opportunity. They are restless. They don’t care about what they do. They only care about what it leads. In reality, instead of finding financial freedom, they more often end up with a tarnished resume, no useful skills, and a bad reputation. Reputation is everything in our industry. Throughout your career, accumulating reputation is just as important as accumulating skills and wealth. Opportunity knocks when you have a good reputation.
It is therefore not sufficient to keep our eyes and ears out to keep up with new technological development and new business opportunities. You should be accumulating your reputation by consistently delivering superb work for whatever task you have at hand. Venture Capitalist Ann Miura-Ko captures this idea in one simple term “be world class.” In Ann’s mind, “be world class” applies to any task, from something as simple as making a Xerox copy to writing code, making a presentation, or building a product. I can speak from my experience that the world consists of largely mediocre work. By going an extra mile and producing the best work, you will be the brightest star in your organization.
Many people find programming a repetitive task. So is painting. So is music. What makes a world-class painting or music? Passion, creativity, and the quest for perfection. Great programmers find passion in the most mundane problems. Before Google, the problem of web search was considered uninteresting and solved. Eric Yuan ran engineering at Webex. He believed the web meeting experience pioneered by Webex could be improved and went on to create the Zoom video conferencing service. Legends like Steve Jobs and Elon Musk are also built on the passion, creativity, and the quest for perfection. For the rest of us, we can start small with what we work on every day.
If you are presenting a design, even just for a feature or a component, why not make it the best possible design in the world for that feature or component? Impress the heck out of your colleagues. The less important a task is, the easier it is to do a better job and impress.
Most likely you won’t be able to achieve some amount of greatness in one try. Like a painter or musician, work on the next piece. Then next. You will get better and get noticed.
Open source offers an opportunity to show your work to the whole world. Figure out why you like a great open source project. Can you do the same?
If you get an opportunity to make a Powerpoint presentation, do not borrow slides from other. Understand what your audience might want and create the presentation from scratch yourself. How do you make it the greatest presentation there is for this topic?
Next time you are asked to make the same presentation, can you make it even better? Never give the same presentation twice. You can always do better with every practice.
Until you find that great opportunity or have a great opportunity knock on your door, the best thing you can do to prepare for your own career development is to focus on delivering superb results of things you already do every day. Your efforts will be noticed by your team, in the whole company, and if you work on an open source project, by the whole world. You will get a sense of what it takes to stand out and win. You will get better quickly. You will get promoted quickly. And if someday you decided to start a business on your own, your reputation will prepare you to get funding and attract talent. More importantly you will also know what it takes to build a world-class company.
推荐阅读