成为优秀高级程序员的10个要点(转)

英文原文:10 Steps to become a Senior Software Engineer

  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 年时间才能成为一名可靠的高级开发人员。你付出的各种投资最后必将给你带来巨大的回报。软件工程师的钱途很美好,其就业市场的需求一直居高不下,薪资水平也根据经验程度在提高。这是一个快速增长且相对较新的领域。软件工程师的每一天都在面临挑战:挑战改变人们的生活。来吧,各位软件工程师,首先挑战成为一名高级软件工程师吧!

  译文链接:http://www.codeceo.com/article/10-steps-to-become-a-senior-software-engineer.html

http://news.cnblogs.com/n/512952/

时间: 2024-11-02 23:40:17

成为优秀高级程序员的10个要点(转)的相关文章

成为优秀Java程序员的10个要点

如果你是一个热衷于技术的Java程序员, 那么下面的10个要点可以让你在众多Java开发人员中脱颖而出. 1. 拥有扎实的基础和深刻理解OO原则 对于Java程序员,深刻理解Object Oriented Programming(面向对象编程)这一概念是必须的.没有OOPS的坚实基础,就领会不了像Java这些面向对象编程语言的美.光学习OO原则的定义用处不大,关键是要学会如何应用这些原则用一种OO的方式去设计解决方案.因此,我们应该对对象建模.继承.多态.设计模式有一个很好的认识. 2. 掌握核

成为高级程序员的10个步骤

成为高级程序员的10个步骤 步骤1:奠定基础 <The Pragmatic Programmer >对于我们掌握软件是一个很好的起点.该书总结了高水平的实践探索.这与我们使用的是什么语言/技术无关.无论你选择的是哪种技术堆栈,其主要原理都是一样的. 步骤2:掌握你的编程语言 你以后每天需要面对哪种编程语言取决于你今天选择的技术.但是编程语言总有主次之分.例如,Ruby on Rails 开发人员主要使用 Ruby,AngularJS 开发人员大多数时间用的是 JavaScript.确定编程语言

成为伟大程序员的 10 个要点

最近我在接受采访时被问到我关于成为一名伟大程序员的见解.这是一个有趣的问题,我认为我们都可以是伟大的程序员,无论我们的天赋如何,如果我们遵循一些规则的话--我相信--这应该是常识.实际上,这些规则并不只适用于编程领域,也适合任何专业. 当然,这10个要点中的所有内容并不都是完全正儿八经的,有些事情只是我的看法,你的情况可能会有所不同,所以如果出现矛盾的话,不要耿耿于怀. 这些要点是: 1.学习如何提问 提问题的程序员基本上有这些类型: 完美主义者:特别是在询问关于某些开源工具的问题时,他们可能已

成为一个伟大程序员的 10 个要点

最近我在接受采访时被问到我关于成为一名伟大程序员的见解.这是一个有趣的问题,我认为我们都可以是伟大的程序员,无论我们的天赋如何,如果我们遵循一些规则的话--我相信--这应该是常识.实际上,这些规则并不只适用于编程领域,也适合任何专业. 当然,这10个要点中的所有内容并不都是完全正儿八经的,有些事情只是我的看法,你的情况可能会有所不同,所以如果出现矛盾的话,不要耿耿于怀. 这些要点是: 1.学习如何提问 提问题的程序员基本上有这些类型: 完美主义者:特别是在询问关于某些开源工具的问题时,他们可能已

成为高级程序员的 10 个步骤

What 软件工程师的职业生涯要历经以下几个阶段:初级.中级,最后才是高级.IT专业教育扣丁学堂教你如何通过 10 个步骤助你成为一名高级软件程序员. Why 得到更多的报酬!因为你的薪水会随着你水平的提高而增加 提升你的职业生涯.成为了高级软件工程师之后,就可以朝着架构师.团队负责人.CTO 等职位前进 历经更大的挑战.随着你的成长,各种影响力也会提高. How 软件工程是很难的.这一行业在不断变化中,所以你必须紧跟它的步伐.你必须不断地投入时间和精力,因为你需要学习的东西总是比你能吸收的多.

10条建议分享:帮助你成为与硅谷工程师一样优秀的程序员

成为一名硅谷的工程师可能是很多中国程序员的梦想.硅谷被公认是目前世界上云集了最多优秀工程师和知名科技公司.创业公司的地方,吸引了全球无数投资者.创业者和工程师的目光.在那里工作的工程师,有着令人羡慕的职业发展前景,薪酬待遇.此外,他们出众的教育背景,扎实的专业能力,创新的思维,专注的敬业精神也成为了其他工程师们学习的标杆. 下面总结的10条建议,来自一些有关编程的网站.社交平台和博客,给出这些建议的人大多数也是工程师(当中包括在硅谷工作的),以及一些专门研究计算机科学的学者.如果你有志成为一名出

成为优秀程序员的10个有效方法

一个优秀的程序员就是那种即使是过单行道都要往两边看的人.——Doug Linder 作为一个在IT行业的软件程序员,每天促使我去上班的动力就是对编程的乐趣和激情.但是为了激发乐趣并获得永恒的快感,我们需要学习和遵守一些基础知识以成为一名优秀的程序员. 当然我总结的这些东西没有那么神,你说你要想学了之后就一定可以成为优秀程序员,那是不可能的.这只是从我的经验角度出发提供的一些捷径.对于优秀程序员的定义,此处可以理解为能开发出超棒的IT解决方案并且能促进行业整体发展的程序员. 1.掌握基础知识 不管

[转载]成为优秀程序员的10个有效方法

下文转载自http://news.cnblogs.com/n/511465/,作者是 码农网 – 小峰 . 一个优秀的程序员就是那种即使是过单行道都要往两边看的人.——Doug Linder 作为一个在 IT 行业的软件程序员,每天促使我去上班的动力就是对编程的乐趣和激情.但是为了激发乐趣并获得永恒的快感,我们需要学习和遵守一些基础知识以成为一名优秀的程序员. 当然我总结的这些东西没有那么神,你说你要想学了之后就一定可以成为优秀程序员,那是不可能的.这只是从我的经验角度出发提供的一些捷径.对于优

成为优秀程序员的10个有效途径

一个优秀的程序员就是那种即使是过单行道都要往两边看的人.——Doug Linder 作为一个在IT行业的PHP程序员,每天促使我去上班的动力就是对编程的乐趣和激情.但是为了激发乐趣并获得永恒的快感,我们需要学习和遵守一些基础知识以成为一名优秀的程序员. 当然我总结的这些东西没有那么神,你说你要想学了之后就一定可以成为优秀程序员,那是不可能的.这只是从我的经验角度出发提供的一些捷径.对于优秀程序员的定义,此处可以理解为能开发出超棒的IT解决方案并且能促进行业整体发展的程序员. 1.掌握基础知识 不