主页 > 工程师回车巷人才网

亚马逊硬件工程师真实经历?

212 2024-01-10 17:19

Q1:一句话简单介绍自己?

D:我叫Desmond Zhou,现在在温哥华亚马逊做高级工程师。我小的时候一直在国内,99年来到温哥华,读中学和大学,之后就一直在温哥华了。

我大学的专业不是计算机,是生物化学。我准备开始找实习的时候,发现这个专业不是一个很好掌握未来的专业,加上我从小对计算机很感兴趣,就把专业换成了计算机。

毕业之后找工作,我花了1年的时间才找到,是一个西人的Startup,然后在里面工作了一年,学到了很多东西,之后亚马逊在温哥华开了办公室,然后我就去亚马逊,当时在里面当初级的工程师,距今已经五年了,我现在就是高级工程师了。我喜欢交朋友,也挺活跃的,而且我在专业,找工作这方面走了不少弯路,有不少困难,所以希望自己的经历对同行或是学弟学妹们有帮助。

Q2:是如何走上编程的道路的?

D:我从小就喜欢电脑,玩游戏,网游啊这些,玩着玩着自己对脚本这些也很感兴趣了,就在想有没有更节省时间的办法。因为自己越来越觉得人的能力是有限的,包括我的之前的专业也是,做实验为什么非要人来做呢?就算之后你当上了Lead,活还是由人来做的。但是计算机不一样,不仅成本低,还可以带来上亿倍的利润,把自动化这个技术放大,这也是社会未来所在。我小时候有想过做一个游戏,但是做游戏很累,工作量巨大,比如说让游戏中的人物做一个动作,都需要很大的工作量,所以比起做游戏,我更喜欢用电脑做些有效率的事情,平时放松的时候玩游戏就好了。

Q3:你是否认为数学/物理对于编程来说是很重要的技能?

D:我觉得物理是数学的另外一种运用。数学是物理和编程计算机的基础,所以肯定超级重要,包括编程模拟做游戏等等。数学不一定决定所有,刚入行的工程师不仅会用到数学的思维,还有严谨的定义,逻辑上严密的推理,语言的精确运用。但是高等数学和你对数学的理解,决定你在这个行业走多远。我个人数学基础不是很好,现在越来越发现,要深入这个行业,AI,Machine learning等等,就发现数学成了个瓶颈,这个提高很难很慢。对于CS学生来讲,之后想有提高的,一定要学好数学,数学思维是最重要的。

物理就和编程关系较远了,物理是数学在自然科学中的应用,物理的知识对编程没有什么实质的用途,物理是数学的另一种用途,学物理的数学基础应该都不差。

Q4:你认为每个程序员需要掌握的最重要的技能是什么?

D:我认为一个程序员有两件事情是最重要的。

第一个是学习能力,这个学习能力,不是不断地跟着最新的概念走,更多的是战略上对自己职业的规划。什么时候要学新东西,什么时候要去了解这个东西,还有就是在这个时候这个东西到底要不要学,是不是可以跳过的。工程师要有专注力、执行力和好奇心,有对各种各样的东西的好奇心,但是重点要放在自己的专业和领域上。有专注力和执行力,才会把自己的想法付诸实践,去真正的学习这个东西。

第二个是对商业、问题和沟通的理解,一个程序员肯定要有技术,但也要会沟通,自己可以理解当下的趋势,我们都说程序员的三维是Technical,你的技术怎么样,看你是否能拿到工作;第二个是Direction,你的方向,你有了技术,那你能解决什么呢?第三个就是People,看你能否把好技术好经验分享给大家,能不能说服大家,找工作的时候能否拿到offer,你的团队是不是有战斗力和竞争力的。

Q5:到现在有换过工作吗?每份工作分别收获什么,有什么感触特别深的东西?

D:到现在就换过一次,我刚刚讲的,从那个西人的Startup换到了亚马逊。大公司小公司都各有各的好处和坏处,都可以得到经验学到东西。我在Startup最大收获就是,环境好,而且是在创业阶段,我有一个很好的mentor lead,帮助我在技术上打下了基础。

第二份工作就是亚马逊,为什么要换呢,其实就是我觉得自己要把自己当做一个Startup来经营,工作是项目,老板是客户和投资人,同事是上下游的合作者。这样围绕着自己的职业来思考和行动。除了主动性,这种商业思维的另一个关键是取舍。一件事是亲历亲为来锻炼技术深度,还是带团队来扩展影响力?专注于完成现有工作的质量和速度,还是去做一些高风险高回报的创新和引进?要用心去投资有限的精力来最大化价值。我有空的时候都在想这些事情。现在亚马逊我很满意。但是我对其他机会的待遇和行业发展方向,都要保持一份了解。

Q6:你最喜爱用的编程语言有哪些?为什么会喜爱?

D:其实编程就是来解决问题,要对架构有了解,算法细节也要了解。语言和实现的方法可以是不重要的。我喜欢用的JavaScript,Java,Ruby和Scala。这几个语言的共同点的话是都是有很深厚的基础,有现成的库来使用,不需要自己进行再次开发。Java的特性就是,我放弃了效率来求稳,一个大团队也能开发出一个稳定的软件。然后JavaScript就是速度快效率高,但是如果是大团队来开发,可能会有混乱。好的语言不用做所有事情,但要有亮点,所以才会去学习。

Q7:关于编程,你们认为接下来的大事是什么?

D:我觉得人工智能AI,就是接下来的大事了。有了AI,我不不需要再一步一步的用编程解释我们需要什么,什么是对是错。AI就是更抽象的一个框架让计算机来自己获取信息,生产和创新也放大了。所以我觉得AI就是下一步,有一个自我优化的功能,而且表现的越来越有智能的苗头。之后的话,编程也许会被淘汰,类似算盘吧,很早就被淘汰了。然后也许每个人都要成为一个高层次的程序员,指挥者啊,机器会替代我们初级工程师或者中级工程师。

Q8:如果你有三个月的时间去学习一个相对较新的技术(任何领域),你会选择什么?

D:我会去学习一些硬件和工程方面的东西,简单的机器人技术这些东西。我是软件工程师所以我对软件很熟悉,但是要有一个东西来更大的影响现实生活,能够去发力,去改变物理世界。这个更伟大的未来就要用到机械工程或电子工程的技术了。

Q9:你平时都有哪些休闲娱乐?

D:有时候看看知乎,里面有些并不是硬的科学,只是网友们的分享,有偏见和局限性。但就是各个人分享自己的想法,自己也可以从不同的想法里找到有启发的东西。

然后平时就玩玩游戏,看看新闻,会更关注IT和互联网界的新闻。然后听听纯音乐,在那个喜马拉雅听听有声书,和有趣的广播,滑雪啊爬山玩水的也很喜欢。

Q10:没有编程基础的人该如何学习编程?

D:不论是集体上课培训,还是在大学里学习CS专业,还是自己在网上找免费的课程,没有基础的话,最难的不是语言,而是编程的思维方式。语句没有什么,但难在思维。一个语句,如果有漏洞的话,电脑会用最愚蠢的方式来理解,你可能会花好几个小时试,甚至一晚上,但是懂的人可能几分钟就弄好了。所以我觉得没有编程基础的人要是学习编程的话,最好有一个老手带,然后结合实践,做project也好,给高级工程师打打下手也好,这样都是学习方式而且都可以提升自己的能力。