大多数小公司都是创业公司,所以它们有着非常独特的“创业心态”。所谓创业心态通常表现为关注快速增长,竭尽所能让公司盈利,或者达成其他一些迫切目标。
在这样一家公司工作的软件开发人员,你极有可能要身兼多职,不能只写代码。因为员工数量不多,角色不固定,所以你需要更加灵活多变。如果你只是想坐在桌边写代码,你可能就不喜欢设置服务器或者协助测试。但是,如果你精力充沛、活力四射,喜欢迎接新挑战,那你就会对这种环境着迷。
在一家小公司,你做的事情可能影响更大,可以说是好坏参半。如果你希望寂寂无闻,做好自己的本职工作,那你可能不会喜欢在小公司工作——那就像在雷达的监视下飞行。但是,如果你乐于看到自己的工作成效,那么小公司无疑是最佳场所。因为小公司员工很少,每个人的作用都能被注意到,甚至直接影响到公司收入。这意味着不仅你的功劳会被放大,要是搞砸了也同样如此。
小公司通常没有大公司稳定,但是长远来看,潜在的回报更大。小公司极有可能面临倒闭,或者发不出工资,不得不裁员。但是,如果你能安然度过这些风暴,作为这个成长显著的小公司的第一批员工,回报是巨大的。在大公司里,通过晋升到达总监级别是非常难的,但在小公司你的上升概率要高很多,新进员工都会在你手下。
许多开发人员都在为创业型公司工作,薪水低廉、上班时间长得令人觉得荒唐,就是指望公司上市或被收购,能够靠期权股票发财。但是,我认为这个赌注风险极高。我不建议你为了“中彩票”而选择去创业公司。一旦选择了那条路,你可能耗尽心力却一无所获。选择为小公司或初创公司工作的一个更好的理由是,你喜欢那种快节奏的、令人兴奋的工作环境,也希望构建伟大的产品并见证它的成长。
〓● 角色灵活,拥有多个头衔。
〓● 拥有很高的影响力。
〓● 高回报潜力。
〓● 可能无法安安静静坐下来全身心编写代码。
〓● 工作在众目睽睽之下,工作绩效一目了然。
〓● 稳定性差。
软技能:代码之外的生存指南
本书献给所有自强不息、孜孜不倦地持续 自我改进的开发人员。他们具备下列素质: 永远不会对“不错”感到心满意足 永远寻求每一个机会来拓展自己的视野,探索未知事物 对知识的渴求永远不会熄灭 笃信软件开发并不仅仅意味着编写代码 知道失败不是结束,失败只是人生旅程上的小小一步 有过挣扎,有过失败,但仍然会爬起来继续战斗 拥有强烈意愿和决心,在人生的道路上不畏艰难 最重要的是,愿意一路上帮助他人 |
如果你想真正成为一个更好的软件开发人员(或者其他真正优秀的人才),你需要把重点放在整个“人”上,而不只是你生活中的一两个领域。
在这本书里,你会发现不少看似无关的主题串联在一起,但这种无序的背后其实另有深意。本书共分为七篇,每一篇都聚焦在软件开发人员生活的不同方面。如果你想为这些内容分类和分组,最简易的方法是将它们看成是事业、思想、身体和精神四个方面。
这是一本真正从“人”(而非技术也非管理)的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的各种“软技能”。
本书聚焦于软件开发人员生活的方方面面,从揭秘面试的流程,到精心做出一份杀手级简历,到制作脍炙人口的视频内容,到打造你的个人品牌,到提高自己工作效率,到与职业倦怠做斗争,甚至到投资房地产和关注自己的健康。本书共分为职业篇、自我营销篇、学习篇、生产力篇、理财篇、健身篇、心态篇等七篇,概括了软件行业从业人员所需的各种“软技能”。通过阅读本书,软件工程人员、编程人员和其他技术人员能够积极思考自己的职业生涯,丰富自己的生活,让自己更接近成功。
重构 改善既有代码的设计(第2版 平装版)
所谓重构(refactoring)是这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。重构是一种经千锤百炼形成的有条不紊的程序整理方法,可以最大限度地减小整理过程中引入错误的概率。本质上说,重构就是在代码写好之后改进它的设计。
“在代码写好之后改进它的设计”这种说法有点儿奇怪。在软件开发的大部分历史时期,大部分人相信应该先设计而后编码:首先得有一个良好的设计,然后才能开始编码。但是,随着时间流逝,人们不断修改代码,于是根据原先设计所得的系统,整体结构逐渐衰弱。代码质量慢慢沉沦,编码工作从严谨的工程堕落为胡砍乱劈的随性行为。
“重构”正好与此相反。哪怕手上有一个糟糕的设计,甚至是一堆混乱的代码,我们也可以借由重构将它加工成设计良好的代码。重构的每个步骤都很简单,甚至显得有些过于简单:只需要把某个字段从一个类移到另一个类,把某些代码从一个函数拉出来构成另一个函数,或是在继承体系中把某些代码推上推下就行了。但是,聚沙成塔,这些小小的修改累积起来就可以根本改善设计质量。这和一般常见的“软件会慢慢腐烂”的观点恰恰相反。
有了重构以后,工作的平衡点开始发生变化。我发现设计不是在一开始完成的,而是在整个开发过程中逐渐浮现出来。在系统构筑过程中,我学会了如何不断改进设计。这个“构筑-设计”的反复互动,可以让一个程序在开发过程中持续保有良好的设计。
本书是一本为专业程序员编写的重构指南。我的目的是告诉你如何以一种可控且高效的方式进行重构。你将学会如何有条不紊地改进程序结构,而且不会引入错误,这就是正确的重构方式。
本书是经典著作《重构》出版20年后的更新版。书中清晰揭示了重构的过程,解释了重构的原理和实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了60多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助开发人员一次一小步地修改代码,从而减少了开发过程中的风险。
代码整洁之道
鲍勃大叔作品,程序员,汇聚编程数十年编程生涯的心得体会,阐释如何解决软件开发人员、项目经理及软件项目领导们所面临的棘手的问题。
学写整洁代码很难。它可不止于要求你掌握原则和模式。你得在这上面花工夫。你须自行实践,且体验自己的失败。你须观察他人的实践与失败。你须看看别人是怎样蹒跚学步,再转头研究他们的路数。你须看看别人是如何绞尽脑汁做出决策,又是如何为错误决策付出代价。
阅读本书要多用心思。这可不是那种降落前就能读完的“感觉不错”的飞机书。本书要让你用功,而且是非常用功。如何用功?阅读代码——大量代码。而且你要去琢磨某段代码好在什么地方、坏在什么地方。在我们分解,而后组合模块时,你得亦步亦趋地跟上。这得花些工夫,不过值得一试。
本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称“启示”),并辅以来自现实项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。
本书阅读对象为一切有志于改善代码质量的程序员及技术经理。书中介绍的规则均来自作者多年的实践经验,涵盖从命名到重构的多个编程方面,虽为一“家”之言,然诚有可资借鉴的价值。