今天在网上搜工作机会,找到了Uber官网。有一个招聘广告(可能很快网址就过期了)讲了他们对全栈工程师的要求,看完当然觉得自己能力还不够,于是从我这里就把自己拒了。不过他们写的内容很中肯,我认为这确实是一个程序猿应有的素质。趁着这几天加速成长,我决定把它们好好解读一下,然后向这些能力迈进。
这篇文章的框架是根据Uber招聘要求展开的,一共8条,每条的结构都是“原文-翻译-解读”。翻译不以准确为目标,以理解为目标。
原文
Core Skills. You straddle the line between front-end and back-end development with advanced knowledge in multiple frameworks such Javascript, React/Redux, Node.js, and Python, to name a few.
翻译
核心技能。你在团队中的角色会在前端和后端之间切换,常用到的语言或框架有:JavaScript、React/Redux,Node.js,Python等等。
解读
作为一个全栈工程师,前端后端都要会搞,以上4种技能确实应该是主要的技能树。React和NodeJS跟JavaScript渊源颇深,虽然暂时还没有涉猎,但JavaScript是一门需要花精力好好学的技能。而Python,我一直对它挺有好感,而且现在也在学习Udacity的一门Web Development的课程,以Python为基础,GAE为引擎,Jinja2为框架搭建一个博客的框架。保持学习!
原文
Bonus Skills. If you happen to have skills in the following areas, we can use these as well: WebGL, SVG, Docker, AWS, ECMAScript, Flask, Redis, relational or NoSQL databases, etc.
翻译
加分项。如下技能会让你在我们这里鹤立鸡群:WebGL,SVG,Docker,AWS,ECMAScript,Flask,Redis,相关数据库知识等。
解读
- 我听都没听过的:WebGL,Redis;
- 我只是听过但不知道到底是啥的:AWS(Amazon服务器?),Flask(听过,但不记得是什么了。是Python框架?);
- 我听过、知道是啥、但还没开始学的:SVG,Docker,ECMAScript(这个严格说我学了,但是新特性确实没开始学)。
总结一下,这一行涉及的技能,我都不会。但是,忌心浮气躁,还是先把基础做好。这些等我找到工作,以工作特点按需学习吧。Less is better.
原文
Fast learner. We’re looking for software engineers who thrive on learning new technologies and don’t believe in one-size-fits-all solutions. You should be able to adapt easily to meet the needs of our massive growth and rapidly evolving business environment.
翻译
快速学习者。我们希望能找到哪些一直能保持学习最新技术,且不相信万金油解决方案的工程师。对于我们的大规模发展产生的需求,和迭代迅捷的商业环境,你能够轻松应对。
解读
李笑来有句名言:“一辈子只有一个职业:学生”。学习的本事太重要了。况且前端领域发展这么超光速,我要做的有这几点:
- 遇到不懂的问题就尽全力把它弄懂,弄懂后还要记笔记,写博客,巩固知识。其实问题都是纸老虎,没研究它就是因为被它吓到了,其实不难;
- 查问题用Google,用英文,不当二等公民;
- 打好基础,然后继续打基础。JavaScript怎么学都不嫌多。什么时候我也能写个框架并且把它搞火,我就学成了。
原文
Fearlessness. You think a working proof-of-concept is the best way to make a point. You strive on proving that speed and quality are not conflicting; that you can achieve both at the same time.
翻译
知难而进。你认为实践出真知。你认为速度和质量并不相斥,你也能用行动告诉我们你做得到。
解读
实践出真知,就事论事,这是我一直以来非常认同的理念。没有一个事实做基础,我不能踏实;没有练习就没有掌握。纸上得来终觉浅,绝知此事要躬行。速度怎么能来?多练;质量怎么能来?认真对待每次练习。
原文
Versatility. In addition to having an intimate knowledge of the whole web stack, you understand how all the pieces fit together (front-end, database, network layer, etc.) and how they impact the performance of your application.
翻译
多面手。在熟悉全栈领域技能树的同时,你还能懂得其中原理,知道前端、后端、数据库、网络请求、渲染等方面是如何相互配合、如何影响网站的性能的。
解读
全栈工程师也叫做“全干工程师”。一开始我看到“versatility”,还以为Uber的意思是他们想要一个除了敲代码之外,还会唱歌、摄像、做视频的多才多艺的家伙呢,哈哈。看来这一点说的是,能够站在山顶看问题,能够像个领导一样合理地对代码进行分工,让它们能发挥各自的长处。
原文
Strong architecture chops. You know how to build highly scalable, robust, and fault-tolerant services that support our unique rate-of-growth requirements. You stay up-to-date with the latest architectural trends. Passion. You feel ownership over everything you ship; you’d never call code “released” until you’re confident it’s correct. You pride yourself on efficient monitoring, strong documentation, and proper test coverage.
翻译
能工巧匠。你能造出适合我们独特的发展需求的轮子,这轮子还是个变形金刚,不充电,高效率,能打怪,还可靠。你还能保持轮子处在流行前线。你充满激情。你对你做的轮子无比负责,但凡发布了它,你就对它有足够的自信。你对自己高效审查、文档写作和测试技术很满意。
解读
对自己高标准、严要求,且有一颗负责任的心。这一点是我的写照,我会继续践行。
原文
A team player. You believe that you can achieve more on a team — that the whole is greater than the sum of its parts. You rely on others’ candid feedback for continuous improvement.
翻译
有团队精神。你相信在团队里能学到更多 —— 三人行必有我师。你能通过其他成员的反馈得到提升。
解读
这一点很同意。我分3点看:
- 我还是一个初级前端工程师。到了公司里,无论是整体环境还是其他成员的水平,都会对我有很大帮助;
- 在帮助别人的时候,其实也是让自己更明白这个问题的机会。“能想到”和“能说出来”差的不是一个数量级;
- 我在团队精神上的锻炼其实还很缺乏。但意识决定行动,等我真正融入公司后,相信会有很大提升。这其实也是工作经验的一部分。
原文
Design and business acumen. You understand requirements beyond the written word. Whether you’re working on an API used by other developers, an internal tool consumed by our operation teams, or a feature used by millions of riders, your attention to details leads to a delightful user experience.
翻译
在意细节。你能对需求文档有深入的理解。无论你是给其他程序猿写API,给内部成员造工具,还是给用户添加一个新特性,你对细节的把控都能极大改善用户体验。
解读
用户的意思是使用你做出来的东西的人。能在做这个东西的时候,设身处地想到用户的需求,解决用户的痛点,这一点很难也很重要。我从小比较敏感,对周边人们的感受和想法往往很容易感知到。但如果我在一个陌生的环境,更容易先关注自己的状态,无暇顾及其他。这就导致我是一个慢热选手,但热了之后会保持很久。同时,我其实更喜欢通过视频学习知识,因为这样更有代入感;这也侧面说明我的阅读能力还需要提升。
总结
我的性格特点不能全盘认可,也不能全盘否定;它也很难改变。顺着它发挥就好。我现在的路径和想法也不需要修正,需要的是继续保持每天都有收获的状态,把基础夯实到能够找到靠谱工作的程度,然后和小伙伴一起起飞。
回国前要做的事情:
- 把Udacity的Web Development课程学完、项目做完;
- 阅读Vue官方英文文档,结合Vue的examples学习;
- 用Vue做Pomodoro项目、五子棋项目和倒计时项目。