天赋异禀的大佬毕竟是少数人。对于我们大多数普通人来说,想要实现“逆袭”都不是一蹴而就的,需要不断提升、不断积淀,最终达到厚积薄发的效果,薪资只是能力的结果体现。在此跟大家分享一个普通程序员提升自己的过程。
一、分阶段,根据不同需求按需提升
对于多数程序员来说,40岁之前赚到别人60岁的钱是普遍目标,不过职业的进阶也印证着人生的进阶,所以何时开始思考未来的职业规划,都不算早。
我们基于华为云各个产品线技术专家多年工作经验和心得体会,再经过层层筛选整理,推出了这份程序员进阶必读书单。
无论你是1年小白、5年资深还是10年技术专家,或者更高阶的CTO,都可以在书单中找到适合自己目前阶段的书,清晰化未来要走的方向,让你的路越走越宽,财富累积/技能累积/经验累积也会愈发顺利。
程序员的第一阶段:初级程序员(0-3年)
初级程序员工作经验在3年以下,处于打基础、定方向的阶段,这时候建议主要精力用于夯实基础,规范编程上,将会终身受益。
- 了解自己所在的领域,对吃饭的工具有清晰的认知
- 代码是一个程序员的灵魂,每个优秀的程序员都应该认真对待亲手写出的代码
- 从实际问题出发,让自己的编程语言和思维更上一层楼
- 多学点算法和数据结构,提高编程水平
- 初级程序员必备的软技能,学习做好职业规划、自我营销
程序员的第二阶段:中高级程序员(3-5年)
- “代码有很多种坏味道,重复是最坏的一种”,先让你的代码更优雅
- 总有不合理的软件项目存在,如何避免犯一些经典错误
- 技术能力之外,提高工作效率很重要
- 程序员职业生涯到了一定阶段,系统地思考职业发展
- 培养专业的软件开发素养,具备良好的编程实践
程序员的第三阶段:全栈工程师/软件设计师(5-10年)
- 全栈工程师必备技能之协调客户、管理好项目
- 全栈工程师培养可用性思维
- 软件设计模式领域的里程碑著作
- 转变一下程序员的思维,认识交互设计的重要性
- 面对漫长的职业生涯,静下心来追求“良质”
程序员的第四阶段:架构师、CTO(10年以上)
- 为解决架构设计模式中的“疑难杂症”打开思路
- 跟着国外技术大佬学团队管理
- 带领团队完成敏捷转型
- 从技术人员转型为领导者,系统提高技术领导力
- 架构师也好,CTO也罢,管理团队有时候比技术能力更重要
二、不同阶段必读书单
程序员的第一阶段:初级程序员(0-3年)
初级程序员工作经验在3年以下,处于打基础、定方向的阶段,这时候建议主要精力用于夯实基础,规范编程上,将会终身受益。
一、了解自己所在的领域,对吃饭的工具有清晰的认知
《编码:隐匿在计算机软硬件背后的语言》 豆瓣评分:9.2分
这本书常年排在程序员必读书单TOP5内,作者用丰富的想象将看似繁杂的计算机工作原理阐述得通俗易懂。
二、代码是一个程序员的灵魂,每个优秀的程序员都应该认真对待亲手写出的代码
《代码整洁之道》 豆瓣评分:8.6分
阅读这本书有两种原因:第一,你是个程序员;第二,你想成为更好的程序员。
作者Bob大叔给出了一系列整洁代码操作实践,并用实际项目的正、反案例,说明只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。
而干净的代码,既容易理解、质量可靠,而且让项目更容易启动和延续,也为后期维护、升级奠定了良好基础。
三:从实际问题出发,让自己的编程语言和思维更上一层楼
《编程珠玑》 豆瓣评分:9.1
作者Jon Bentley可以说是计算机科学大家培养专业户,Java之父James Gosling就是他的学生。
他选取了典型的复杂编程和算法问题,生动描绘大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。比如和Bob Martin讨论密西西比河一天流出多少水,用这样一个小问题引出粗略估算的技巧。
四、多学点算法和数据结构,提高编程水平
《数据结构和算法分析(套书)》 豆瓣均分:8.7分
国内外很多大学都拿它当作教材,这套书非常系统、全面、严谨,适合对数据结构和算法有些基本了解,并且掌握了至少一门编程语言的程序员。而且,作者用了C\C++\Java三种语言分别写了三个版本。
被众多程序员选为最好的算法入门书,看完了这本书再看其它算法书,会很有底气。
五、初级程序员必备的软技能,学习做好职业规划、自我营销
《软技能—代码之外的生存指南》 豆瓣评分:8.0分
概括了软件行业从业人员所需的“软技能”,从揭秘面试的流程到精耕细作出一份杀手级简历,从创建大受欢迎的博客到打造个人IP,从提高自己工作效率到与如何与“拖延症”做斗争,甚至包括如何投资不动产,如何关注自己的健康,堪称程序员的生活百科全书。
程序员的第二阶段:中高级程序员(3-5年)
从部门新人变为老人后,需要对自己的职业规划有明确方向,如果选择专攻技术,必然要多学习,进一步提高业务能力和技术能力,积累优质的项目经验。
一、“代码有很多种坏味道,重复是最坏的一种”,先让你的代码更优雅
《重构:改善既有代码的设计》 豆瓣评分:9.0分
重构,就是在不改变外部行为的前提下,有条不紊地改善代码。本书凝聚了软件开发社区专家多年实践经验,解释重构的原理和最佳实践方式,并指出何时何地应该开始挖掘你代码以求改善。
整本书第三章“代码坏味”,写的很有用。什么是代码的坏味道,如何消除这些坏味道,这是一本关于代码美学的一本书,培养码农那高贵的code taste的不二选择。
二、总有不合理的软件项目存在,如何避免犯一些经典错误
《快速软件开发》 豆瓣评分:8.4分
软件开发处处都是陷阱,作者告诉你前人都踩了哪些坑。本书总结了以微软为代表的美国软件业的项目实践经验,并列出了可以提高项目开发速度的方法和技巧。
比如,过紧或不合理的进度计划可能是软件开发唯一最具破坏力的杀手,所以开发人员要提高谈判能力,合理规划项目进度。
三、技术能力之外,提高工作效率很重要
《高效程序员的45个习惯》 豆瓣评分:8.2分
总结高效程序员在开发过程中的45个个人习惯、思想观念和方法,有助于开发人员在开发进程、编码工作、开发者态度、项目和团队管理,以及持续学习等方面积极修炼。
养成这些好的习惯,可以极大地提升自己的编程实力,更快速、更可靠地交付更高质量的软件,从而成为真正的高效程序员。
四、程序员职业生涯到了一定阶段,系统地思考职业发展
《软技能2:软件开发者职业生涯指南》 豆瓣评分:9.0分
了解软件开发从业者需要具备的各种“软技能”,包括如何选择工作岗位、如何选择技术方向、如何拓展技术技能、如何与团队和领导融洽相处等等。
五、培养专业的软件开发素养,具备良好的编程实践
《程序员修炼之道:通向务实的最高境界(第2版)》 豆瓣评分:9.2分
理解身为一名程序员到底意味着什么,本书通过许多富有娱乐性的奇闻轶事、有思想性的例子以及有趣的类比,全面阐释了软件开发的最佳实践和重大陷阱。
书中有一章的标题是“我的源码被猫吃了”,其实说的是当你发现问题时,重要的是解决它,而不是把错误推给“猫”。
华为云资深架构师董老师在“云享读书会”领读过这本书,拆解书中精华知识,学练结合,拒绝纸上谈兵。
程序员的第三阶段:全栈工程师/软件设计师(5-10年)
这个时期的程序员,或多或少要开始思考职业拐点:是继续做一名底层码农,还是往前走两步,成为一个优秀的全栈工程师或者软件设计师。
无论是前后端技术一把手的全栈工程师,还是有程序设计能力的软件设计师,都得精通多门编程语言,有系统性的技术能力。前几年打好技术基础后,此时更要注重技术之外的软件开发细节,让自己的工作更胜一筹。
一、全栈工程师必备技能之协调客户、管理好项目
《人月神话》 豆瓣评分:8.4分
软件领域的圣经,内容源于作者在IBM公司System/360家族和OS/360中的项目管理经验。书名中的“人月”指的是一个人在一个月内完成的工作,“神话”指通过人手来缩短项目实践是神话。
虽然书里很多概念、例子、技术都属于上古时期的遗迹了,但是书里介绍的软件开发的困难、管理的思路,仍然可以在今天的软件开发中找到对应的场景。
二、全栈工程师培养可用性思维
《点石成金 : 访客至上的Web和移动可用性设计秘笈》 豆瓣评分:8.2分
一本关于Web设计原则而不是Web设计技术的书,作者用幽默的语言揭示Web设计中重要但却容易被忽视的问题,只需几个小时,便能对照书中讲授的设计原则找到网站设计的症结所在,常看常新。
三、软件设计模式领域的里程碑著作
《设计模式》 豆瓣评分:9.1分
设计模式不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性以及安全性的解决方案,一般的大型项目开发或者框架设计,都会用设计模式来组织代码。
本书从面向对象的设计中精选出23个设计模式,面向对象开发必读,虽然随着动态语言的发展,很多模式都已经融入到语言当中,但是作为一个好的开发者,这本书讲的不是模式本身,而是模式的轨迹。
四、转变一下程序员的思维,认识交互设计的重要性
《交互设计之路》 豆瓣评分:7.9分
虽然书中不乏“黑”程序员的桥段,但却是程序员很好的交互设计启蒙书。作者通过列举真实案例,讨论由于产品设计中存在“认知摩擦”引起的“难用”问题,讲述如何创建更好的、高客户忠诚度的软件产品和基于软件的高科技产品。
五、面对漫长的职业生涯,静下心来追求“良质”
《禅与摩托车维修艺术》 豆瓣评分:8.3分
一本非典型的适合程序员阅读的哲学书,霍金、乔布斯都曾推荐过。书中讲述作者和儿子 骑摩托车旅游路途所悟到的“禅”,其中最关键的就是“良质”。
举个例子,写程序跟维修摩托车一样,有时候会枯燥、机械且乏味,但如果用“良质”的境界用心去对待这件事,找到内心的平衡,最好能达到“物我两忘”的境界,最终的结果就是另一番局面了。
程序员的第四阶段:架构师、CTO(10年以上)
恭喜你,已经进阶到程序员的金字塔顶端了!入行有10多年经验的你,有过项目开发经历,精通多门编程语言且熟悉数据库,对行业、技术、产品都有了深层次的认识,带好团队成为更关键的业务能力。
一、为解决架构设计模式中的“疑难杂症”打开思路
《企业应用架构模式》 豆瓣评分:8.3分
将40多种常见的解决方案转化成模式,每个模式都给出使用方法和实现信息,并配以详细的Java代码或C#代码示例。
虽然书中有些内容放在现在有点过时,但如网友所言,在今天的开发思想环境下,也许再也不会出来这样一本重量级的企业架构模式的书,甚至其中的很多模式会被觉得太重,太Java/.NET,但这才是真正的大型软件项目应有的架构模式,值得每一个程序员细细品味。
二、跟着国外技术大佬学团队管理
《极客与团队》豆瓣评分:8.3分
程序员办公室政治指南,谷歌技术大佬以自身的经历为基础,阐明了团队合作的重要性,提出了加强合作的具体方法,并辅以实例进行了深入分析。全文主要从三个角度介绍了团队合作的方法:如何处理团队中有关人的方面;如何在良好或不佳的公司中工作;如何与用户合作创造更出众的产品。
三、带领团队完成敏捷转型
《敏捷转型:打造VUCA时代的高效能组织》 豆瓣评分:9.2分
为了帮助更多期待转型或者处于转型过程中的企业走出误区、突破阻碍,本书重点阐述了敏捷转型的步骤、方法和策略,用大量真实的案例,生动还原敏捷转型容易走入的误区,以及企业在转型过程中常见的疑惑。
四、从技术人员转型为领导者,系统提高技术领导力
《成为技术领导者》 豆瓣评分:8.3分
很多技术人员固有思维会阻碍真正的交流,甚至忽略真正的问题,这本书能够清晰的指出这些事情。
作为一名成功领导者所必须掌握的领导方法与技巧——创新、激励和组织(MOI模型)。本书提出了一些方法,供技术人员分析自己在这三个方面的领导技巧,并提供了开发这些技巧所需的实践步骤。
五、架构师也好,CTO也罢,管理团队有时候比技术能力更重要
《人件》 豆瓣评分:8.2分
从管理人力资源、创建健康的办公环境、雇用并留用正确的人、高效团队形成、改造企业文化和快乐工作等多个角度,阐释了如何思考和管理软件开发的最大问题——人(而不是技术),以得到高效的项目和团队。
本书的一个基本出发点就是,管理者不应该把员工看作冷冰冰的机器或可随时替换的零件,而应尊重他们的生物、社会属性,当成有血有肉的“人件”来管理。
结语:
以上列举的20本书,虽然不能做到面面俱到,但可以从“术”的层面,为想要摆脱焦虑、走上技术进阶之路的程序员指点迷津,钻研出职业进阶的“道”。
欢迎大家收藏本书单,阅读计划安排起来!
程序员升级之路:
lv1:复制粘贴代码级,号称it民工,独立编写代码能力较差,代码冗余,机器执行效率低,bug多,工作可替代性强。
lv2:代码优化级,能够深入理解所使用编程语言的内核原理,在硬件和软件的接口层,优化代码,提高机器执行效率。编写的代码简洁优雅,bug较少。
比如使用java语言的优化级程序员,能够掌握理解java运行容器JVM的运行机制,在JVM虚拟机的层面做代码优化,提高诸如垃圾回收,多线程的执行效率。
lv3:汇编级,全面掌握硬件运行底层原理,能够熟练使用汇编语言直接控制计算机硬件。由于汇编语言相对复杂枯燥,这个领域的专业人才还是比较稀缺的,在单片机和嵌入式系统的开发中,有很大的发展空间。再加上国家大力发现芯片产业,能够做到精通的话,还是有很好的前景的。
lv4:架构级,举个简单的例子,庙里的和尚只专注于手里的木鱼,而殿堂上的罗汉菩萨就是从天入地,包括万象世界了。不同于编码的程序员,架构级程序员能够在程序开发的生命周期内,对整个系统的技术结构进行设计,调整和规范。比如数据库接口层用什么,采用什么框架,高并发如何控制等等问题,都需要架构师来掌控。
架构师不光要精通编程语言,还要旁通各类技术,是标准的技术大拿,普通程序员只是在架构师的规范下工作而已。如果能成长为架构级程序员,相信已经是公司不可或缺的一部分了。
lv5:行业规范级,这种程序员当属凤毛麟角,能够编写出解决某一领域编程技术的框架结构,并成为行业领域的主流标准。框架就是一个小的操作系统,能够为程序员提供丰富的api接口,封装各类功能函数,大大优化开发过程,比如java领域的spring系列。如果能成为这样重量级的程序员,稍微一动手指,便能在整个领域掀起巨浪了。
综上,如果程序员年薪想要达到50万,在我看来,综合能力至少要达到架构级水准。
先介绍自己,普通二本计算机专业毕业,手机软件开发,三年工作经验,二线城市,年薪十万左右
作为程序员,来分析一下需求????,年薪五十万,不计五险一金扣除,不计缴税,不计年终奖,平均每月4.17万。
现在正式进入答题(开发)阶段
- 第一位的相信大家已经猜到了, 勇敢闯进北上广深 吧,二线城市以下直接不用想,即使创业自己当老板这个目标也很难实现,一线城市自己创业也许可以。
- 那就是老套那一些, 拥有一颗热爱编程,喜欢代码的心,保持一个仅次于高考时候学习的动力。 即使你博士毕业,没有这几点,也很难保持住年薪五十万的水平,除非你爸是李刚。
- 虽然很多程序员不愿意承认,但是 学历 对于想要年薪五十万的程序员来说一定是必不可少的,除非你有比尔盖茨那样的头脑和机遇
- 第三条也说到了, 头脑和机遇和机遇来临时能够抓得住的能力 。看看众多互联网大佬的发展史,不难发现,他们除了努力,头脑和能力之外,运气与机遇更是必不可少。时势造英雄,不用时代造就不同英雄
- 最后一条也是最重要的一条, 拓宽眼界,拓展知识面 。有人会说我只会一门语言也可以年薪五十万,我只想说:如果单纯写代码,纯属扯淡。不要局限于你做的语言代码,多去了解其他语言,多学习更深一层的底层逻辑,多拓展知识层次。架构师、CTO才是程序员的目标,也才是达成目标的途径之一
- 补充一个时间途径,那就是 发挥不怕苦不怕累的精神,接私活 ,两周做一个,不间断地做,年薪五十万也不是梦,友情提示:注意身体与家庭和谐
最后声明一点: 以上措施仅局限于程序员这条线,如果说技术转管理不在讨论范围之内。 也不应该在讨论范围之内
最后的最后,趁新年之际……祝所有程序员兄弟姐妹们新年快乐,不出Bug,都能年薪百万,走上人生巅峰迎娶白富美。共同用代码改变世界
说实话,做技术开发想要达到年薪五十万很困难,即使是在一线城市,除非你是超级大牛,能够开发现象级的产品,或者在一线公司做资深技术专家,做编程必须要亲力亲为,你的时间精力有限,要拿五十万年薪可以想象一下你的工作强度,得码多少代码?加班应该是家常便饭。我坐标重庆,前几天约了一个技术团队谈定制开发,五个人的团队,老大比我大一岁,41了,老码农了,聊了一下,他们一年的业绩是100万左右,天天加班。他问我做的怎么样,我说我做运营,一句代码也写不了,一个人在家办公九年了,2017年挣了100万,他觉得非常不可思议。2018年我要发包给他们一个约10万块的开发业务,主要是Web与微信的整合方面的,打通网站与9亿微信用户快速登录通道,网站内容自动同步公众号和微博、朋友圈分享销售返佣等功能,我只负责提需求并把成型的产品运营好。
但老实说我去年只用了五六成的力,因为我下午基本上不工作,主要是运动、学习,去年旅行时间不少于两个月。
这就是运营和开发的根本区别,运营的收入可以跟业绩挂钩,只需要对业绩负责,运营可以整合资源、技术外包,编程必须亲力亲为,想实现财务自由难度要大得多!除非你厚积薄发,一鸣惊人,开发一个类似于头条、微信这样的现象级产品,或者你能做出有大量用户需求且可重复销售的产品,而且你还得具有较强的策划、营销和运营能力,把开发出来的产品销售出去,否则你只能销售时间,哪怕你单位时间单价很高,但时间总是有限的,不可复制!
2018年我相信自己的收入会实现大幅度增长,二月份被动收入见下图
三月份截止到今天收入16万,不过消费也大了,提车用了18万。
不过这都不是事,重点是要开源,要有源源不断的钱进来,才敢消费,之前将个人年收入从三十万提到六十万花了好几年时间,而去年从六十万提到一百万,只花了几个月时间,今年从100万提到200万,我相信会更快,这个和竹子生长是一样的。
不管你是做编程也好、运营也罢,首先想要靠挣工资拿年薪50万都很难,即使是在北上广,做自由职业者相对要容易一些,但也会有很大的天花板,年收入100万基本到顶了,必须要研发一个产品,能持续的变现,打破时间换钱的商业模式,才有可能实现财务自由!
看到这么多答主说一个普通程序员想要年薪50万不可能,这点我是不认同的,只能证明自己没有找准位置。
当然想要年薪50万并非易事,首先肯定是个大牛。怎样从一个普通的程序员变成一个行业资深的大牛,我是又一些建议的。张小龙能年薪3个亿,我们为什么不能年薪50万?
我花了4个月时间,2万块钱培训了PHP网页开发,刚培训完两个星期我就收到了美团网的offer。我承认我不是班里学习最好的,但我却是班里第一个找到工作的,而且还是个大厂,我也期待着自己能有飞跃式的发展,梦想不应该只是说说而已。
我一直相信勤能补拙,只要有决心,什么事都是可以做到的。今天入职一个星期了,公司的人对我都很好,还给我配了电动车和头盔,还有大衣,不说了,又接了个急单