程序员人生 网站导航

程序员到高级程序员,只需要10个步骤!

栏目:综合技术时间:2015-01-21 08:56:36

What

软件工程师的职业生涯要历经以下几个阶段:低级、中级,最后才是高级。这篇文章主要是讲如何通过 10 个步骤助你成为1名高级软件工程师。


Why

  • 得到更多的报酬!顺带问1句,你的年终奖有着落了吗?由于你的薪水会随着你水平的提高而增加

  • 提升你的职业生涯。成了高级软件工程师以后,就能够朝着架构师、团队负责人、CTO 等职位前进

  • 历经更大的挑战。随着你的成长,各种影响力也会提高。


How

软件工程是很难的。这1行业在不断变化中,所以你必须紧跟它的步伐。你必须不断地投入时间和精力,由于你需要学习的东西总是比你能吸收的多。很多新 手工程师乃至都不曾意想到他们如果想要攀登行业的高峰,要学习的东西、要付出的努力得有多少。不过,不用担心,下面我将指出1条“明路”有助于你成为1名 高级软件工程师。


步骤0:选择你的道路,坚持下去!

做1件事,就要把它做好。――Doug McIlroy《Unix Philosophy》


关于这1点,我真的是强调得不能再强调了。选择好你将与之并肩作战的专业和技术堆栈非常重要。坚持不懈,不要分心。至于应当怎样做请看下面:

  • 选择专业。也就是你想做的事情。例如:Web 开发、移动开发、DevOps 等。

  • 选择专业中的实用技术。例如:如果你选择了 Web 开发,那你就需要在 Ruby on Rails、Python、Django,JavaScript 和 MEAN 等之间做考虑。如果你选择的是移动开发,则需要在 iOS 和 Android 等之间做出选择。

  • 坚持下去,直到掌握这门技术。


我的意思其实不是说除你的主要专业之外,你就没必要熟习其他的了。那种数一数二的软件工程师通常对其他的编程语言和技术都非常了解,固然首先他们对他们自己的主要专业了解得非常剔透。当你肯定好主要专业以后,接下来要做的就是学习,浏览所有相干的书籍、练习各种必要的技能,这可能需要很多年的时间。但是千万不要气馁,1步1个脚印,1个1个攻克难关,量变才能到达质变。关于技术,我的推荐是:Ruby on Rails 之于 web 开发,iOS 之于移动开发。这是我是以1个过来人的身份告知你的宝贵经验。不过我还是想补充1句,可能每一个人的口味不同,我的经验或许其实不合适你,你完全可以选择其他 的技术,不过这样的话,你要浏览的书籍可能就和我的推荐不1样了。


步骤1:奠定基础

The Pragmatic Programmer 》对我们掌握软件是1个很好的出发点。该书总结了高水平的实践探索。这与我们使用的是甚么语言/技术无关。不管你选择的是哪一种技术堆栈,其主要原理都是1样的。


步骤2:掌握你的编程语言

你以后每天需要面对哪一种编程语言取决于你今天选择的技术。但是编程语言总有主次之分。例如,Ruby on Rails 开发人员主要使用 Ruby,AngularJS 开发人员大多数时间用的是 JavaScript。肯定编程语言、掌握编程语言对你的职业生涯发展相当重要。由于以后你每天都会使用它!推荐你先浏览有关书籍。

The Swift Programming Language》之于 Ruby 开发人员,和《Programming Ruby 》之于 iOS 开发人员。


步骤3:学习框架

选1个,然后好好学习:

对 Rails 开发人员――《Rails Tutorial 》by Michael Hartl

对 iOS 开发人员――《iOS programming: The Big Nerd Ranch Guide


步骤4:掌握文本编辑器/ IDE

再选1个,然后坚持不懈地掌握这个工具。如果你选择的是 VIM,那就要成为它的主人,让它往东就往东。


步骤5:使用版本控制系统

我建议使用 Git。下面是我喜欢的资源:Pro git――免费的在线电子书,详细讲授了 git 的各个方面。


步骤6:做好测试驱动开发

将 TDD 添加到你的技术堆栈中。养成每天 TDD 的习惯。高质量的代码源于良好的测试。

对 Ruby on Rails 开发人员――《Rails Test Prescriptions》

对 iOS 开发人员――《Test Driven iOS Development》


步骤7:将重构养成习惯

随着你不断添加更多的功能,代码库也会愈来愈复杂。为了保持代码库的可管理化,你需要重构。如果你不重构的话,你很快就会进入两难地步――即便是做很小的改动都很困难、bug 没法避免、没有人愿意处理这个混乱的代码库。重构能让你的工作更加轻松。至于怎样重构代码,我之前的1篇博客:3000行代码可以重构成15行,http://blog.csdn.net/lz201234/article/details/42638399,和下面这本好书能教你该怎样做: 《Refactoring: Improving the Design of Existing Code》by Martin Fowler


步骤8:学习软件架构

根据你上面选择的堆栈,再学习相干的架构。我推荐 Martin Fowler 写的《Patterns of Enterprise Application Architecture》1书。


步骤9:展现命令行的气力

刚开始接触命令行的第1感觉就是望而生畏。但是,1旦你学会如何使用,这将大大提高你履行1些基本任务的效力。而这本身就可以让你成为1名更好的开发人员,由于你能在更短的时间里实现目标。然后你就可以进入下1个水平。使用 shell 自动履行常见任务,建立自己的 dotfiles。如果你使用的 mac 或 Linux 发行版,那末学会 shell。下面这本书由 Mark Bates 所写的书挺不错:《Conquering the Command Line》


步骤 10:code code code!

只有不断地练习学到的知识,你才能真正掌握它。


总结

尽人皆知,成为1名高级软件工程师是非常难的。这需要大量的时间和精力。编码的同时还要注意代码的安全性,如果能事前就知道1些有效靠谱的解决办法,1定可以省下很多时间,推荐多了解下源码保护。不同的人他们的学习速度也不尽相同,但是平均来讲,大约需要 10 年时间才能成为1名可靠的高级开发人员。你付出的各种投资最后势必给你带来巨大的回报。软件工程师的钱途很美好,其就业市场的需求1直居高不下,薪资水平也根据经验程度在提高。这是1个快速增长且相对较新的领域。软件工程师的每天都在面临挑战:挑战改变人们的生活。来吧,各位软件工程师,首先挑战成为1名高级软件工程师吧!

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐