`
tomcat_oracle
  • 浏览: 317450 次
社区版块
存档分类
最新评论

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

    博客分类:
  • Java
阅读更多

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

10
14
分享到:
评论
3 楼 mahai5058575 2015-01-18  
程序员应先学好数学,特别是数数
2 楼 bonait 2015-01-17  
同意,www.zipin168.com
1 楼 511039003 2015-01-17  

相关推荐

    C#高级程序员培训1

    理解如何使用Task和async/await进行异步操作是成为高级C#程序员的关键步骤。 再者,泛型是C#中的一个强大工具,它允许我们编写可重用的类型安全代码,而无需知道具体的数据类型。通过定义泛型类、接口和方法,我们...

    Linux C高级程序员指南1

    《Linux C高级程序员指南1》是一本面向有基础的C语言开发者,旨在深入探索在Linux环境下进行C编程的专业书籍。本书涵盖了多个关键知识点,旨在帮助读者掌握Linux系统下的C编程技巧,提高软件开发效率和质量。 一、...

    C++高级程序员必备教程

    教程包括了面向对象编程、多线程技术以及设计模式等多个核心主题,这些都是C++高级程序员在实际工作和面试中必须掌握的知识点。 首先,"C++面向对象多线程编程.pdf"可能涵盖了C++的面向对象特性,如类、对象、封装...

    成为一个成功Jsp程序员的九步

    【成为一个成功Jsp程序员的九步】是一个详细的指南,旨在帮助初学者逐步掌握JSP(JavaServer Pages)技术。JSP并非简化的Java,而是基于Servlets的一种网页开发技术,用于动态生成HTML或其他Web内容。以下是对每个...

    C# 开发典型模块(17-20) 高级程序员必备

    在C#编程的世界里,掌握各种典型模块的开发是成为高级程序员的关键步骤。"C# 开发典型模块(17-20) 高级程序员必备"这一资源提供了四个核心模块的实例,包括17 电话客服管理模块、20 EXE文件加密器、18 多媒体播放器...

    C语言高级程序员编程指南.rar

    《C语言高级程序员编程指南》是一本专门为有一定基础的C语言程序员设计的进阶教程,旨在帮助读者深入理解和掌握C语言的高级特性和编程技巧。在这个压缩包中,包含的资源可能包括章节文本、示例代码、练习题及解答等...

    C++高级程序员常用方法和技巧

    在C++编程中,成为一位高级程序员不仅意味着掌握基本语法,还需要熟悉一系列高效的方法和技巧。本资料包“C++高级程序员常用方法和技巧”旨在为深入学习和开发的人员提供实用的知识点,帮助提升代码质量和效率。以下...

    -一个程序员走过的路

    综上所述,“一个程序员走过的路”是一个关于程序员如何从入门到精通的全面指南。它不仅涵盖了C语言和C++这两种关键的编程语言,还深入讲解了文件操作与算法设计,旨在帮助程序员在技术领域取得深入发展,并在职业...

    C++编程惯用法(高级程序员常用方法和技巧)

    本资料“C++编程惯用法——高级程序员常用方法和技巧”深入探讨了这些关键点。 首先,我们要理解C++的核心特性,包括面向对象编程(OOP)和泛型编程。在OOP中,类、对象、封装、继承和多态是核心概念。熟练运用这些...

    程序员的十层楼

    高级程序员通常会专注于某一特定领域,如大数据、人工智能、区块链等。他们不仅精通相关技术,还能将这些技术应用到实际业务场景中,创造价值。 第十层:领导力与创新 到达这一层的程序员可能已经晋升为技术领导者...

    程序员考试辅导电子书

    随着科技的发展和数字化时代的到来,软件开发已成为推动社会进步的关键力量,而程序员作为软件开发的主力军,其专业素养和技能水平直接关系到项目的成功与否。因此,对于有志于从事程序员职业的人员来说,通过专业...

    C_C++程序员大全 代码+学习软件

    这些知识对于成为熟练的C/C++程序员至关重要。 总之,“C_C++程序员大全 代码+学习软件”是一个全面的资源,旨在帮助学习者深入理解C/C++语言,通过实例学习和实用工具的使用,逐步成长为一名精通这两种语言的专业...

    VC++程序员如何面试

    2. **职业规划:**清晰地描述未来几年的职业目标和发展路径,如希望成为一名高级软件工程师或架构师等。 3. **解决方案:**在讨论职业规划时,提供具体的步骤或计划,以证明自己对未来的认真思考。 #### 五、薪酬...

    如何成为一个优秀的JSP程序员

    ### 如何成为一个优秀的JSP程序员 #### JSP简介与学习路径 JSP(Java Server Pages)是一种基于Java的服务器端脚本技术,用于创建动态网页。它能够将静态页面和动态内容结合在一起,使得开发人员可以更方便地构建...

    python程序员指南

    这份指南旨在帮助读者从基础知识到高级技巧,全方位掌握Python编程,从而成为一名熟练的Python程序员。 在Python编程的世界里,理解其核心概念至关重要。这包括变量、数据类型(如整型、浮点型、字符串、列表、元组...

    (翻译)如何成为一个优秀的jsp程序员

    ### 如何成为一个优秀的JSP程序员 在探讨如何成为一名优秀的JSP程序员之前,我们先来了解一下JSP(JavaServer Pages)的基础知识。JSP是一种基于Java技术的动态网页开发技术,它允许开发者在标准的HTML页面中嵌入...

    程序员考试试题及答案详解

    了解并遵循编程规范,学会使用调试工具,是成为优秀程序员的必备技能。 通过对以上各个知识点的深入学习和实践,考生不仅可以应对程序员资格认证考试,还能在实际工作中提升自己的编程能力。解答详尽的试题集是检验...

Global site tag (gtag.js) - Google Analytics