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

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
年时间才能成为一名可靠的高级开发人员。你付出的各种投资最后必将给你带来巨大的回报。软件工程师的钱途很美好,其就业市场的需求一直居高不下,薪资水平

也根据经验程度在提高。这是一个快速增长且相对较新的领域。软件工程师的每一天都在面临挑战:挑战改变人们的生活。来吧,各位软件工程师,首先挑战成为一
名高级软件工程师吧!

作者:程序员人生

来源:51CTO

时间: 2024-11-01 03:51:30

成为高级程序员的 10 个步骤的相关文章

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

英文原文:10 Steps to become a Senior Software Engineer What 软件工程师的职业生涯要历经以下几个阶段:初级.中级,最后才是高级.这篇文章主要是讲如何通过 10 个步骤助你成为一名高级软件工程师. Why 得到更多的报酬!因为你的薪水会随着你水平的提高而增加 提升你的职业生涯.成为了高级软件工程师之后,就可以朝着架构师.团队负责人.CTO 等职位前进 历经更大的挑战.随着你的成长,各种影响力也会提高. How 软件工程是很难的.这一行业在不断变化中

高级程序员应该具备什么能力

  互联网,创造了很多神话,也造就了很多传奇色彩的人物,而这些传奇色彩人物绝大多数从技术,甚至可以讲从程序员起步,所以说:科技改变未来,程序重塑人生,一点都也不为过.从我一个多年从事IT行业的老程序员来讲,我对程序员是充满敬意的. 可是,我今年出来创业,做 金融堂 项目,接触过不少"高级程序员"后,似乎改变了这种看法,为啥呢?我先说几种现象: 1. 小李,4年IT从业经验,来我司求职高级程序员(SE)一职,要其设计一个"网上支付方案",1个小时过去后,交了白卷给我,

高级程序员考试时间安排和参考书推荐

文章来源于网络,参考以下! 高级程序员考试(以下简称高程考试)是计算机软件资格与水平考试中难度比较大的一级,也是许多在校大学生热衷参与的一项考试.下面是笔者参加高程考试的一点体会,希望对那些正在准备高程考试的朋友有所帮助. 复习时间安排 高程考试分上午考试和下午考试,上午考基础知识, 考试时间为150分钟:下午考软件设计和程序编制能力,考试时间也为150分钟. 要想顺利通过高级程序员考试,那么就应该有一个完备的复习计划.报考高级程序员考试应该尽早准备,把工夫下在平时,尤其是像程序设计语言和汇编语

我的2013,beyond高级程序员

一句话总结2013,就是挣脱了高级程序员的桎梏,看到了更高层次的职业形态,或者说我对自己的目标定位更清晰了.简单来说,就是要做更多的管理工作,无论是要做技术架构师.需求分析师.行业分析师.技术顾问.CTO.创业.培训师,都要.这里说的管理不仅仅是带团队,还有管自己.   1.职业规划:技术能力发展终得做管理 按照自己的职业规划,近年都不关注管理,全力锻炼技术.这种"一边倒"的做法有其成效,就是技术能力提升快.但技术能力强也就意味着要承担更有挑战的任务,而这些任务通常又不可能由一个人完成

C#中级,高级程序员评定所需要的职业技能

问题描述 给位大神给个中级和高级所需技能的说法:开发经验两年半,做过cs/bs架构的项目,ERP,OA等语言C#,java精通w3c服务器脚本,浏览器脚本,xml,html触发器,事件,多线程,委托想知道中级是什么水平?高级是什么水平?还需要知道那些技能方面的?望各位大神给我指明方向.分不多了不好意思. 解决方案 解决方案二:不太明白???中高级程序员是有国家的考试吧这个意义不大了,又恐就考一个解决方案三:竟然有一样精通,那自然比高级还要厉害解决方案四:能做高级我想必然有它的理由,我感觉自己还没

高级程序员装逼指南,是高级哦!

下面这个才是高级版本 ;; 这是注释 ;; 0.9版本 ;; 2011年8月22日   ** 前言 ** 最近网上出了一个<程序员装逼指南>,觉得这个东西其实图样图森破 然后在下跟微博上的一些程序大牛讨论了一下如何装逼,深有感触 程序员嘛,外行人看起来已经是不可理解的奇怪生物了,自然也没必要跟他们再装逼 所以呢,如何对其他程序员装逼就是一门很有学问的事了 于是乎在下手痒写了个<高级程序员装逼指南>,请大家指正   ** 编程语言 ** 千万千万千万千万不要说自己是Java/C#/C

程序员的10句跟字面意思完全不同的常用语

你是否听到过同事说"这段代码不言自明"?你的同事的这句话的实际意思是这段代码不需要写注释. 你也许注意到了,很多时候,程序员所说的话的字面意思和其真实的意思是完全不同的.不用惊异,下面你将很快知道这些暧昧的短语和其深层次的意思都是什么. 最近Imgur上出现了一张图片,里面列举的程序员的一些专业术语和其含义,它能很好的帮助你理解这些话的真实意思.这里是对其中的精华进行的总结. 典型的程序员之间的对话 当程序员说"这代码写的可真烂",他们的意思是"这烂代码不

程序设计考试大纲(高级程序员级)

一.考试说明 1.考试要求: (1)熟练掌握面向对象编程技术,用C/C++语言熟练编制程序: (2)了解CASL汇编语言的程序编制: (3)掌握软件设计的方法和技术: (4)掌握数据结构.程序语言.操作系统.数据库和软件工程的基础知识: (5)了解多媒体和网络的基础知识: (6)掌握计算机体系结构和主要部件的基础知识. 2.通过本级水平考试的合格人员能按照软件需求规格说明书进行软件设计和编制程序,具有相当于工程师的实际工作能力和业务水平. 3.本级水平考试范围包括两个模块: 模块1--软件设计和

广州高级程序员薪水是多少

问题描述 在广州一家小公司做了半年了,因为种种原因吧,现在想提薪,转高级程序员,大家给点意见,薪水叫多少好?我喊了5000/月. 解决方案 解决方案二:5000在天河区中等偏上吧6000是个坎儿解决方案三:半年...如果1年的话倒是可以解决方案四:我也觉得有点难了.解决方案五:1.半年就可以算高级吗?2.高级是转的?不是考水平吗?解决方案六:呵呵,不算高级吧,只是咱们经理叫我转的.解决方案七:不算高级吧,解决方案八:应该还可以解决方案九:5000左右解决方案十:广州5500差不多解决方案十一:该