• 程序员到高级程序员的职业生涯


    程序员到高级程序员的职业生涯要经历以下几个阶段:初级程序员、中级程序员、最后是高级程序员。
    为什么要成为高级程序员?其实,很简单。为了生活下去和日常生活开销。人生下来就离不开,衣食住行,这些都离不开消费。因为你的薪水会随着你水平的提高而增加提升你的职业生涯。成为了高级程序员之后,就可以朝着架构师、团队负责人、CTO等职位前进。历经更大的挑战。随着你的成长,各种影响力也会提高。

    怎样才能成为一名高级的程序员,这个值得去思考?想到解决问题的办法是关键。软件开发过程中是很难的。这一行业在不断变化中,所以你必须跟紧他的步伐。你必须不断地投入时间和精力,因为你需要学习的东西总是比你吸收的多。很多新手工程师甚至都不曾意识到他们如果想要攀登行业的高峰,要学习的东西、要付出的努力得有多少。不过,不用担心,下面我将指出一条“明路”有助于你成为一名软件工程师。

    选择你的道路,坚持下去!
    做一件事,就把它做好。——Doug Mcllroy《Unix Philosophy》
    关于这一点,我真的是强调得不能在强调了。选择好你将与之并肩作战的专业和技术堆栈非常重要。坚持下去,不要分心。至于应该怎么做请看下面:
    选择专业。也就是你想做的事情。例如:Web开发、移动开发、DevOps等。
    选择专业中的实用技术。例如:如果你选择了Web开发,那你就需要在Ruby on Rails、Python、Django,JavaScript和MEAN等之间做斟酌。如果你选择的是移动开发,则需要在ios和Android等之间做出选择。坚持下去,直到掌握这门技术。我的意思并不是说除了你的主要专业以外,你就不必熟悉其他的了。那种首屈一指的软件工程师通常对其他的编程语言和技术都非常了解,当然首先他们对他们自己的主要专业了解得非常剔透。当你确定好主要专业之后,接下来要做的就是学习,阅读所有相关的书籍、练习各种必要的技能,这可能需要很多年的时间。但是不要气馁,一步一个脚印,一个一个攻克难关,量变才能达到质变。关于技术,我的推荐是:Ruby on Rails之于web开发,ios之于移动开发。这是我是以一个过来人的身份告诉你的宝贵经验。不过我还是想补充一句,可能每个人的口味不同,我的经验也许并不适合你,你可以完全选择其他的技术,不过这样的话,你要阅读的书籍可能和我的推荐不一样了。

    奠定基础
    《The Pragmatic Programmer》对于我们掌握软件是一个很好的起点。该书总结了高水平的实践探索。这与我们使用的是什么语言、什么技术无关。无论你选择的是哪种技术堆栈,其主要的原理都是一样的。

    掌握你的编程语言
    你以后每天需要面对那种编程语言取决于你今天选择的技术。但是编程语言总有主次之分。
    例如,Ruby on Raily开发人员主要使用Ruby,AngularJS开发人员大多数时间用的是JavaScript。
    确定编程语言,掌握编程语言对你的职业生涯发展至关重要。因为以后你每天都会使用它!推荐你先阅读有关书籍。
    《The Swift Programming Language》之于Ruby开发人员,以及《Programming Ruby》之于ios开发人员。

    学习框架
    选一个,好好学习。
    对于Rails开发人员——《Rails Tutorial》by Michael Hartl
    对于ios开发人员——《ios programming:The Big Nerd Ranch Guide》

    掌握文本编辑器、IDE
    选择一个,然后坚持不懈地掌握这个工具。如果你选择的是VIM,那将要成为它的主人,让它往东就往东。使用版本控制系统
    我建议使用Git。下面是我喜欢的资源:Pro git——免费在线电子书,详细讲解了git的各个方面。

    做好测试驱动开发
    将TDD添加到你的技术堆栈中。,每天养成TDD的习惯。高质量的代码源于良好的测试。
    对于Ruby on Rails开发人员——《Rail Test Prescriptions》
    对于ios开发人员——《Test Driven ios Development》

    将重构养成习惯
    随着你不断添加更多的功能,代码库也会原来越复杂。为了保证代码库的可管理化,你需要重构。如果你不重构的话,你很跨就会陷入两年境地——即使是做很小的改动都很苦难、bug没法避免、没人愿意处理这个凌乱的代码库。重构能让你的工作更加轻松。至于怎么重构代码。我之前看过的一片博客:3000行代码可以重构成15行,http://9534381.blog.51cto.com/9524381/1602363,以及下面这本好书能教你该怎么做:《Refactoring: Improving the Design of Existing Code》by Martin Fowler

    学习软件架构
    根据你上面选择的堆栈,在学习相关的架构。我推荐Martin Fowler写的《Patterns of Enterprise Application Architecture》一书。

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

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

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

    读后感触:我认为这篇文章写的很好,给我指明了方向。我按照文章自己抄了一遍。我发这篇文章放在我的博客里面有时间自己看看,看看自己该走那步了。不想一直迷茫,希望自己可以坚持下来,成为一个简简单单的程序员。

  • 相关阅读:
    [笔记].怎样给μC/OSII的任务传递参数
    [原创].怎样在WPS上实现代码语法高亮
    [笔记].Nios II 9.1的sys/alt_irq.h与之前版本的区别
    [原创].使用Nios II 9.1中的Flash Programmer无法固化程序到EPCS上
    [笔记].浅析在Nios II中的两种寄存器映射方法的异同
    [原创].怎样在Nios II上跑μC/OSII
    [转载].基于Nios II的DMA传输
    [转载].SSRAM、SDRAM和Flash简要介绍
    [笔记].一种独立键盘消抖的Verilog写法
    [笔记].I2C札记
  • 原文地址:https://www.cnblogs.com/liubeimeng/p/4255766.html
Copyright © 2020-2023  润新知