为什么要成为高级程序员

程序员到高级程序员的职业生涯要经历以下几个阶段:初级程序员、中级程序员、最后是高级程序员。
为什么要成为高级程序员?其实,很简单。为了生活下去和日常生活开销。人生下来就离不开,衣食住行,这些都离不开消费。因为你的薪水会随着你水平的提高而增加提升你的职业生涯。成为了高级程序员之后,就可以朝着架构师、团队负责人、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年的时间才能成为一名可靠的高级开发人员。你付出的各种投资最后必将给你带啦巨大的回报。软件工程师的前途很美好,其就业市场的需求一直居高不下,薪资水平也根据经验程度在提高。这是一个快速增长且相对较新的领域。软件工程师的每一天都在面临挑战:挑战改变人们的生活。

视频监控进入数据爆炸时代 安防厂商抢占赛道
如何用Arduinos和NRF24L01模块创建发射器和接收器
基于base test如何来构造测试用例
5G信号如何覆盖 5G基站的概念是什么
关于YK-AD系列通信电源的基本常识
为什么要成为高级程序员
实施功能安全的 RTD 系统:RTD 设计
输出端12V改为18V的稳压电源电路
FPGA业者营收攀升 带动庞大的LTE设备购置及基础建设投资潮
如何利用AD批量修改原理图元件符号
vlookup使用后怎么让数值固定
劳动力管理厂商Kronos签约艾默生过程控制
继三星Note7爆炸后,惠普也因电池存在安全隐患,召回全球部分笔记本电脑
RAS(二)Intel MCA初探
经纬仪的使用方法和步骤 经纬仪的用途有哪些
NVIDIA公布未来绘图芯片的发展路线图 7纳米制程芯片将由台积电代工
PCIM Asia 2022将重返上海举办
车企的共享出行模板:柏林体验宝马DriveNow感受详解
捷高即将为全球用户提供完整的前后端视频产品解决方案
超高频RFID读写器的几大实用场景及解决方案