这里有一份软件开发菜鸟成长必备资源,请查收。
作者
ValeriAlexiev
译者
苏本如
责编
仲培艺
我职业生涯的前几年是一段紧张的学习期。
我有幸成为了一名软件工程师,需要掌握许多我不曾具备的技能。回首往事,我为自己掌握了这么多的技能感到高兴。
希望这份指南对其他人有所帮助,指南中包括了我和我的同事作为软件开发专业人士从指导那些菜鸟开发工程师中获得的经验。
下面我将介绍:
如何在面试中充分展现自己;如何作为软件工程师生存下来,并获得很好的成长合发展;持续改进所需的资源。
面试
当你选择投身软件工程这个行业时,就必须面对一个无法逃避的问题——糟糕的面试。
面试对每个参与者都很不友好。我曾做过面试官也曾经被面试过,我的经历可以证明,面试要消耗巨量的时间,且让人极度紧张,还会成为衡量你未来工作的指标。然而,面试是一种“必要的邪恶”,你和你的简历都要做好准备。
准备战斗
如果你正在考虑从事进入软件开发行业,一定要了解一些最常见的编程面试问题,比如“FizzBuzz”:
写一个程序,它将print1到这些数字。但是遇到3的倍数时,用“Fizz”替代数字,5的倍数时用“Buzz”代替,既是3的倍数又是5的倍数时则print“FizzBuzz。
看起来很简单,对吧?
然而,绝大多数面试者都在这个简单的问题上栽了跟头,更不用说更复杂的问题了。
我个人见过许多高级职位的应试者在可以上网查询的情况下依然做不出这道题。所以,如果你想在简历中列出一种编程语言,那么你至少有能力回答类似FizzBuzz这样简单的问题。否则你只是在浪费所有人的时间,这其中也包括你自己的。
当然,仅仅会FizzBuzz这样简单的问题并不能保证你能通过面试。你还需要了解更多,包括:
基本数据结构和算法:如链表、数组、树和排序;在你选择的编程语言中常见的陷阱问题,例如字符串是否不可变,以及内存是如何管理的;面向对象编程概念,如类、对象和继承。在软件开发生涯早期,你需要