What
软件工程师的职业生涯要历经以下几个期间:初级、中级,最终才是高档。这篇文章首要是讲怎么经过 10 个过程助你变成一名高档软件工程师。
Why
得到更多的酬劳!由于你的薪水会跟着你水平的进步而增加
进步你的职业生涯。变成了高档软件工程师今后,就可以朝着架构师、团队负责人、CTO 等职位行进
历经更大的应战。跟着你的生长,各种影响力也会进步。
How
软件工程是很难的。这一职业在不断改动中,所以你有必要紧跟它的脚步。你有必要不断地投入时刻和精力,由于你需求学习的东西老是比你能吸收的多。许多新 手工程师甚至都不曾意识到他们假如想要攀登职业的顶峰,要学习的东西、要支付的尽力得有多少。不过,不用担心,下面我将指出一条“明路”有助于你变成一名 高档软件工程师。
过程0:挑选你的路途,坚持下去!
做一件事,就要把它做好。——Doug McIlroy《Unix Philosophy》
关于这一点,我真的是着重得不能再着重了。挑选好你将与之并肩作战的专业和技能仓库十分重要。持之以恒,不要分神。至于应当怎么做请看下面:
挑选专业。也即是你想做的事情。例如:Web 开发、移动开发、DevOps 等。
挑选专业中的实用技能。例如:假如你挑选了 Web 开发,那你就需求在 Ruby on Rails、Python、Django,JavaScript 和 MEAN 等之间做酌量。假如你挑选的是移动开发,则需求在 iOS 和 Android 等之间做出挑选。
坚持下去,直到把握这门技能。
我的意思并不是说除了你的首要专业以外,你就不用了解别的的了。那种名列前茅的软件工程师一般对别的的编程言语和技能都十分了解,当然首要他们对他 们自个的首要专业了解得十分剔透。当你断定好首要专业今后,接下来要做的即是学习,阅览一切相关的书本、操练各种必要的技能,这也许需求许多年的时刻。但 是千万不要泄气,一步一个脚印,一个一个攻克难关,质变才干到达质变。关于技能,我的引荐是:Ruby on Rails 之于 web 开发,iOS 之于移动开发。这是我是以一个过来人的身份通知你的名贵经历。不过我还是想弥补一句,也许每个人的口味不相同,我的经历也许并不合适你,你完全可以挑选别的 的技能,不过这么的话,你要阅览的书本也许就和我的引荐不相同了。
过程1:奠定根底
《The Pragmatic Programmer 》关于咱们把握软件是一个很好的起点。该书总结了高水平的实习探究。这与咱们运用的是什么言语/技能无关。无论你挑选的是哪种技能仓库,其首要原理都是相同的。
过程2:把握你的编程言语
你今后天天需求面对哪种编程言语取决于你今日挑选的技能。可是编程言语总有主次之分。例如,Ruby on Rails 开发人员首要运用 Ruby,AngularJS 开发人员大多数时刻用的是 JavaScript。断定编程言语、把握编程言语对你的职业生涯开展至关重要。由于今后你天天都会运用它!引荐你先阅览有关书本。
《The Swift Programming Language》之于 Ruby 开发人员,以及《Programming Ruby 》之于 iOS 开发人员。
过程3:学习结构
选一个,然后好好学习:
关于 Rails 开发人员——《Rails Tutorial 》by Michael Hartl
关于 iOS 开发人员——《iOS programming: The Big Nerd Ranch Guide》
过程4:把握文本编辑器/ IDE
再选一个,然后持之以恒地把握这个东西。假如你挑选的是 VIM,那就要变成它的主人,让它往东就往东。
过程5:运用版别控制系统
我主张运用 Git。下面是我喜欢的资本:Pro git——免费的在线电子书,详细讲解了 git 的各个方面。
过程6:做好测验驱动开发
将 TDD 增加到你的技能仓库中。养成天天 TDD 的习气。高质量的代码源于杰出的测验。
关于 Ruby on Rails 开发人员——《Rails Test Prescriptions》
关于 iOS 开发人员——《Test Driven iOS Development》
过程7:将重构养成习气
跟着你不断增加更多的功能,代码库也会越来越杂乱。为了保持代码库的可管理化,你需求重构。假如你不重构的话,你很快就会进入两难地步——即使是做 很小的改动都很艰难、bug 无法防止、没有人愿意处理这个凌乱的代码库。重构能让你的作业更加轻松。刻不容缓,从速养成重构的习气吧。下面这本好书能教你该怎么做: 《Refactoring: Improving the Design of Existing Code》by Martin Fowler
过程8:学习软件架构
依据你上面挑选的仓库,再学习相关的架构。我引荐 Martin Fowler 写的《Patterns of Enterprise Application Architecture》一书。
过程9:展现命令行的力量
刚开始触摸命令行的榜首感受即是望而生畏。可是,一旦你学会怎么运用,这将大大进步你履行一些基本使命的功率。而这自身就能让你变成一名十分好的开发 人员,由于你能在更短的时刻里实现目标。然后你就能进入下一个水平。运用 shell 主动履行多见使命,树立自个的 dotfiles。假如你运用的 mac 或者 Linux 发行版,那么学会 shell。下面这本书由 Mark Bates 所写的书挺不错:《Conquering the Command Line》
过程 10:code code code!
只要不断地操练学到的知识,你才干真实把握它。
总结
尽人皆知,变成一名高档软件工程师是十分难的。这需求很多的时刻和精力。不相同的人他们的学习速度也不尽相同,可是均匀来说,大概需求 10 年时刻才干变成一名牢靠的高档开发人员。你支付的各种出资最终必将给你带来巨大的报答。软件工程师的钱途很夸姣,其就业商场的需求一直居高不下,薪资水平 也依据经历程度在进步。这是一个快速增长且相对较新的领域。软件工程师的每一天都在面对应战:应战改动大家的生活。来吧,各位软件工程师,首要应战变成一 名高档软件工程师吧!