(本图为:成为高级程序员的 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 年时间才能成为一名可靠的高级开发人员。你付出的各种投资最后必将给你带来巨大的回报。软件工程师的钱途很美好,其就业市场的需求一直居高不下,薪资水平 也根据经验程度在提高。这是一个快速增长且相对较新的领域。软件工程师的每一天都在面临挑战:挑战改变人们的生活。来吧,各位软件工程师,首先挑战成为一 名高级软件工程师吧!
以上内容呢相当于写给所有软件程序员的一封2015年鼓励信,也是写给所给在职场努力着的小伙伴们,你们的努力一定会有相对应的回报,加油2015!!!!
文章来源于:http://www.alqsoft.com/xinwenzixun/qitaruanjiankaifazixun/2015/0114/186.html
相关推荐
理解如何使用Task和async/await进行异步操作是成为高级C#程序员的关键步骤。 再者,泛型是C#中的一个强大工具,它允许我们编写可重用的类型安全代码,而无需知道具体的数据类型。通过定义泛型类、接口和方法,我们...
《Linux C高级程序员指南1》是一本面向有基础的C语言开发者,旨在深入探索在Linux环境下进行C编程的专业书籍。本书涵盖了多个关键知识点,旨在帮助读者掌握Linux系统下的C编程技巧,提高软件开发效率和质量。 一、...
教程包括了面向对象编程、多线程技术以及设计模式等多个核心主题,这些都是C++高级程序员在实际工作和面试中必须掌握的知识点。 首先,"C++面向对象多线程编程.pdf"可能涵盖了C++的面向对象特性,如类、对象、封装...
【成为一个成功Jsp程序员的九步】是一个详细的指南,旨在帮助初学者逐步掌握JSP(JavaServer Pages)技术。JSP并非简化的Java,而是基于Servlets的一种网页开发技术,用于动态生成HTML或其他Web内容。以下是对每个...
在C#编程的世界里,掌握各种典型模块的开发是成为高级程序员的关键步骤。"C# 开发典型模块(17-20) 高级程序员必备"这一资源提供了四个核心模块的实例,包括17 电话客服管理模块、20 EXE文件加密器、18 多媒体播放器...
学习C语言的高级特性是成为高效程序员的关键步骤之一。以下将详细介绍一些高级C语言的知识点: 1. **指针与内存管理**:在C语言中,指针是其核心特性之一,能够直接操作内存。理解指针的运算、指针数组、指向指针的...
在C++编程中,成为一位高级程序员不仅意味着掌握基本语法,还需要熟悉一系列高效的方法和技巧。本资料包“C++高级程序员常用方法和技巧”旨在为深入学习和开发的人员提供实用的知识点,帮助提升代码质量和效率。以下...
### Java高级程序员必读:掌握分层策略,深入理解大型系统开发 在IT行业,特别是Java领域,分层策略被视...通过深入理解并熟练掌握分层策略,Java开发者能够在面对复杂项目时更加游刃有余,从而成为真正的高级程序员。
本资料“C++编程惯用法——高级程序员常用方法和技巧”深入探讨了这些关键点。 首先,我们要理解C++的核心特性,包括面向对象编程(OOP)和泛型编程。在OOP中,类、对象、封装、继承和多态是核心概念。熟练运用这些...
Java编程是IT行业中广泛应用的一种高级程序设计语言,对于Java程序员来说,不断学习和提升技能是非常重要的。本压缩包“Java程序员的推荐阅读书籍.rar”提供了一份针对Java开发者的书单,旨在帮助他们拓宽知识视野,...
这些知识对于成为熟练的C/C++程序员至关重要。 总之,“C_C++程序员大全 代码+学习软件”是一个全面的资源,旨在帮助学习者深入理解C/C++语言,通过实例学习和实用工具的使用,逐步成长为一名精通这两种语言的专业...
2. **职业规划:**清晰地描述未来几年的职业目标和发展路径,如希望成为一名高级软件工程师或架构师等。 3. **解决方案:**在讨论职业规划时,提供具体的步骤或计划,以证明自己对未来的认真思考。 #### 五、薪酬...
### 如何成为一个优秀的JSP程序员 #### JSP简介与学习路径 JSP(Java Server Pages)是一种基于Java的服务器端脚本技术,用于创建动态网页。它能够将静态页面和动态内容结合在一起,使得开发人员可以更方便地构建...
这份指南旨在帮助读者从基础知识到高级技巧,全方位掌握Python编程,从而成为一名熟练的Python程序员。 在Python编程的世界里,理解其核心概念至关重要。这包括变量、数据类型(如整型、浮点型、字符串、列表、元组...
【标题】: "IT程序员如何成为架构师" 这个主题是关于软件开发人员如何转型为高级技术角色——架构师的指南。在这个过程中,程序员需要掌握的不仅仅是编程技能,更包括系统设计、技术选型、团队协作以及业务理解等多...
#### 成为一名优秀JSP程序员所需学习的内容和步骤: ### 一、熟悉Java基础 **学习目标:** 1. 掌握Java语言的基本语法。 2. 理解面向对象编程的概念。 3. 学会使用Java进行基本的GUI设计(Swing)。 **学习建议:**...
了解并遵循编程规范,学会使用调试工具,是成为优秀程序员的必备技能。 通过对以上各个知识点的深入学习和实践,考生不仅可以应对程序员资格认证考试,还能在实际工作中提升自己的编程能力。解答详尽的试题集是检验...
### 如何成为一个优秀的JSP程序员 在探讨如何成为一名出色的JSP程序员之前,我们先来了解一下JSP(JavaServer Pages)的基础概念。JSP是一种基于Java技术的动态网页开发技术,它允许开发者在标准的HTML页面中嵌入...