周末话题
每个周末Cheers都将为大家带来一篇多唯独探索的系列话题,包括人物专访或者高校探访等,看这些学长学姐眼中的学校和专业,并分享他们的精彩故事和观点。
毕业于Hamilton College,曾在全球最大的财经服务提供商Bloomberg公司, 以及通信业巨头Ericsson工作, 现在在美国现正热火的度假屋出租公司Airbnb继续从事软件工程。
Software Engineer
了解一下软件工程师
Q:作为一个已经有五年工作经验的软件工程师,你每天的日常是怎样的呢?
01
日常的话,基本就是每天上午花一小时查看和回复邮件,因为我们做项目都是以小组为单位,所以每天要看看有没有新任务,同时也要及时和teammates沟通各个过程出现的问题。每个成员都有自己的expertise,所以每日例会是必不可少的,有什么情况可以通过会议迅速解决,而不是拖到最后再推翻重来。我们这个工作并不像很多人以为的就是坐在电脑前不停的写code,各方面事务我们都要参与。写code当然在我们的生活中也占一部分,不过不是全部,且每天的工作都会有变化。
Q:那么软件工程师通常的职业发展是什么样的呢?
03
软件工程师的职业发展通常有两个方向,一个是晋级到管理层,而另一个是不断积累经验成为资深工程师。第一条的走向是team leader—director—vice president—head of engineering—CTO。但成为管理层后,工作重心就会从项目研发转移到管理上面。对于真心热爱software engineering本身的毕业生来说,第二种选择可能更好,即专心于项目研究与开发,不断积累经验,成为业内评级高的资深工程师,这样可以一直实践。但无论是哪条路,人才价值都是逐渐上升的,薪水也会越来越高。相对来说,software engineering整体行业忠诚度较低,频繁跳槽也不少见,所以个人发展的自由度很大。一般从一家公司跳到另一家之后职位和薪水都会上升,但也有例外,比如跳到Facebook就会降级,除非你原先公司是Google,这就关系到行业内对于各个公司软件工程师的专业评价了。所以跳槽的时候谨慎选择是非常重要的。
说到薪水,公司不同,起薪也大有不同。如果本科毕业后能进大公司如Facebook,Google这种,那么年薪加股票分红会有十三万美元。而小公司则会低上不少,而在创业型公司startup则是最低。一般来说,在硅谷的软件工程师工作三年后的平均年薪加股票也会有十五万。
04
Q:很多同学对这个职业可能还是不太了解,你可以讲讲大家可能不知道的职业要求是什么样子的吗?
软件工程师有别于大家所想的程序员,可以说是艺术家和工匠的区别,一个是创造,而另一个只是纯粹的复制或生产。对于我们来说,工作所需要的不只要coding skill,还要有全局观,在开始项目之前能构画出蓝图,所以还要设计和规划。coding就好像学语文时要认字,是最为基础也是必需的技能,但只有这一项是不足以成为一个好的软件工程师,我想其实我们行业最看重的还是创造力和执行力吧。既要有好的想法,又要能把好点子变成现实。
另外一个很重要的能力是在根据不同的项目要求做出取舍的能力。因为在互联网的环境下往往没有完美或者一劳永逸的解决方案,时常需要根据条件变化、开发成本以及时间限制,做出最合理的决策。每一个项目开始后都紧接着计划,执行和测试。每一步都可能出现棘手的问题。
解决问题的时候团队合作也是要的,所以每个人必须要能及时报告自己遇到的问题,或者帮其他成员解决问题。而最好的是要有预见问题的能力,发现问题越早,损失就越小,最后的成果也就更好。
Software Engineer
关于这个专业的建议
01
Q:那么对于想要从事这一行业的同学,你有什么建议呢?
选学校的话,首选Standford,然后UCB,因为都在硅谷附近,在这两个学校读computer science专业后,本科就能找到很好的实习机会,资源和机会都很多。因为地理位置很方便,有空的时候可以亲自去各个公司里面了解和体验各个公司文化,这样就能找到最适合自己的地方。UCLA,华盛顿大学都是位于IT公司很多的地区。洛杉矶的gaming industry对软件工程师的需求量较大,所以UCLA毕业后就业有优势;华盛顿大学在西雅图,那里有Amazon和Microsoft,也是software engineering需求大的公司,所以这两所学校也不错。在纽约就业情况,工程师大多都是为金融分析服务,地位不如在其他地方高。
另外想要从事我们这一行,最好是在本科就开始规划。因为行业涉及到数学和分析,所以我推荐本科直接修computer science或statistics。CMU, MIT,CIT都是computer science专业很强的学校,但如果从在硅谷就业的工程师数量来看的话,密歇根安娜堡,伊利诺伊香槟分校也都还算是有一定存在感的。
除了学校本身的资源,以及在自己努力范围内拿到最高的GPA,实习积累的经验同样重要,所以如果学校能提供相关实习最好,即使没有,自己也要主动找机会实习,或者参与side project,经验越多,人才价值会越高。
Software Engineer
你能符合这个行业的人设吗?
Q:那软件工程师这个行业在美国的地位如何呢?工作压力大吗?
01
在不同的公司,对于软件工程师的要求不同,所以给出的待遇也有差别。在Apple,因为公司高层对于产品的性能以及发布的时间有着相当严格的要求,通常工程师们要在根据既定的框架内工作,自由发挥的空间相对较小。
Facebook 工程师压力普遍比较大,据说是因为与他们对工程师的评级考核有关。很多公司都会对工程师进行分级,这不是职位,而有点类似国内所谓的职称,例如大学毕业生进入Facebook一般是评为三级。我听说如果在两三年内不能升至五级的话就会被Facebook劝退,而另一方面,许多人的共识是Facebook在提拔工程师级别方面是比较慷慨的,只要你的贡献符合条件,就很快会被认可。从这个角度讲,一分耕耘一分收获也不失为公平。
与之对应的是Google,公司鼓励每位软件工程师每周拿出20%的时间进行常规工作以外的开发创造,很多工程师就利用这段时间来实现自己的点子,比如Gmail就是几个工程师闲时鼓捣出来的产品,结果一举成为最受欢迎的邮件应用。
工作压力就和公司大小关系更大,在startup的话,一般工程师本身也是创始人之一,所以工作基本就是生活的全部,每天都会很忙,在中型公司的话,一般是以项目为主,有项目的时候会忙,但是空闲下来也很自由,大型公司的话因为竞争压力大,晋升比较难,像Facebook还有淘汰机制,所以工作压力也很大。
02
Q:从你的工作和个人经验来看,你觉得什么样的人适合从事这一行业?
想成为软件工程师的话,最重要的是要对coding感兴趣,因为每天的生活都会和code打交道,不喜欢的话会很痛苦。第二得有除了computer science之外的兴趣,因为IT行业最后的产品都是针对性的,比如你对sports感兴趣,那么你在这一块就会比别人有更多的知识和信息,这就是每个人独特的优势。而且个人兴趣对选择公司有指导性作用,喜欢sports就去做这一方面的公司,这样做事也会更有激情。
再者自律和有时间观念也很重要。作为软件工程师,很多时候是多个项目同时进行,并且是处于不同阶段的项目,所以时间要自己安排。分得清轻重缓急,还要能有条不紊的完成工作。有的时候你不只能会做,还要能解释得清楚,或者做出来的产品别人能看懂。比如我们有时候会互相测试code,那么能把code写得清楚明了或者解释得条理清晰就会省下很多时间。
还要有强大的求知欲,我们行业的信息更新很快,要一直不断的学习才能往上走,保持技术的娴熟以及工作的效率。
除此之外还要能注意到细节,能够查出自己或者别人code里的bug,有的时候一个bug影响了整个程序,粗心的人可能一直都没有办法发现问题所在。其他的品质比如逻辑性要强应该是各行各业都需要的,就不用多说了。
翰林课程体验,退费流程快速投诉邮箱: yuxi@linstitute.net 沪ICP备2023009024号-1