内容简介
《大话程序员:从入门到优秀全攻略》分为选择、修炼、面试和职场基本功四部分。
第一部分有3章,分别是软件开发工程师一览,你适合做软件开发吗,选择适合你的方向。从职业规划和发展的角度,提供了一些工具、方法和模型,帮助我们解答是否要从事软件开发、干什么岗位、在什么样的行业和公司工作等问题。
第二部分有2章。开发者的职场成长路径一章介绍了开发者的未来发展方向,让大家对自己的职场发展路径有所认识;技术成长指北一章提供了一种技术修炼的模板方法论,每个人都可以将其用到自己身上,变成自己的技术修炼道路。
第三部分,讲述了如何打好面试这场硬仗,分澄清、准备、面试、复盘四个阶段,系统介绍了如何准备一次求职面试,善用之,能够大幅提高面试的成功率。
第四部分,我们跳出开发者的技术性工作,精选了日常职场中频繁用到的10种职场基本功,包括结果导向的工作思维,结论先行的汇报策略,沟通中如何区分事实和判断,如何请求帮助,怎样给别人反馈,如何追随上司,怎样超上司的期待,如何坚持计划实现目标,怎样突破成长困境,以及职业规划的3个锦囊。这些思维、方法、意识和工具,能够为技术之路保驾护航,让我们走得更高、更远。
目录
第一部分选择
第1章软件开发工程师一览
1.1什么是软件开发工程师/2
1.2程序员小雷的一天/3
1.3软件开发工程师的收入现状/6
1.4软件开发工程师未来十年
还会有这么高的收入吗/10
1.4.1行业趋势/11
1.4.2国家规划/12
1.4.3结论/15
1.5你为什么想成为一名软件开发工程师?/15
第2章你适合做软件开发吗?
2.1工作的三种维度/19
2.2MBTI性格测评/19
2.2.1外向(E)—内向(I)/20
2.2.2实感(S)—直觉(N)/21
2.2.3思考(T)—情感(F)/22
2.2.4判断(J)—认知(P)/23
2.3五大职能定位/25
2.3.1专业技术者/25
2.3.2自由职业者/25
2.3.3管理者/26
2.3.4创业者/27
2.3.5投资者/27
2.4HBDI模型/28
2.5程序开发者必备的性格特征/34
2.6优秀开发者的必备能力/36
第3章选择适合你的方向
3.1通用逻辑:选择大于努力/45
3.2个人倾向大于通用逻辑/48
3.3根据场景对开发者的分类/49
3.4根据应用层次对开发者分类/52
3.5研究型与应用型开发者/54
3.6自顶向下的机会选择模型/57
第二部分修炼
第4章开发者的职场成长路径
4.1全路径图/61
4.2普通程序员/64
4.3熟练开发者/65
4.4精通技术和业务的高级开发者/65
4.5混日子的“老司机”/67
4.6技术专家/68
4.7架构师/70
4.8技术管理者/78
4.8.1管理者必须要外向吗?/78
4.8.2管理者没那么轻松/79
4.8.3常见的技术管理岗位/81
4.8.4技术管理者的职责/81
4.9技术Leader:技术和管理哪个重要/83
4.9.1技术咖/84
4.9.2管理者/84
4.10开发者的两种修炼/84
第5章技术成长指北
5.1技术成长三阶段/89
5.1.1初级阶段:专项能力的提升/90
5.1.2中级阶段:技能体系的构建/91
5.1.3融合创新/92
5.2专项能力修炼/95
5.2.1基础层/98
5.2.2进阶层/101
5.2.3改造层/103
5.2.4专项能力和知识体系的关系/104
5.3构建知识体系/105
5.3.1定位/106
5.3.2场景辐射/108
5.3.3知识关联/111
5.3.4梳理整合/113
5.3.5知识体系的进化/115
5.4成为技术专家或架构师/116
5.4.1技术和业务/117
5.4.2技术专家和架构师的区别/120
5.4.3成为技术专家/121
5.4.4成为架构师/128
第三部分面试
第6章如何打好面试这场硬仗
6.1澄清阶段/137
6.1.1明确自己的职业价值观/137
6.1.2盘点自我价值/138
6.1.3筛选公司/139
6.1.4分析职位/142
6.1.5寻找亮点/144
6.1.6设定期望/145
6.2准备阶段/147
6.2.1简历优化/147
6.2.2练习自我介绍/150
6.2.3温习掌握的知识、技能、做过的项目/151
6.2.4储备目标职位需要的知识和技能/152
6.2.5多做笔试题/152
6.2.6准备常见的非技术问题/152
6.2.7备好要向面试官提问的问题/155
6.3面试过程/156
6.3.1外在形象/156
6.3.2心态/157
6.3.3理解题目要点/157
6.3.4结构化表达/158
6.3.5应对不会的问题/161
6.4复盘/163
第四部分职场基本功
第7章开发者的职场基本功
7.1结果导向/166
7.1.1先有结果,再论过程/166
7.1.2行动前明确目标/167
7.1.3公司结果决定个人的结果/169
7.1.4选择工作机会的通用逻辑/170
7.2结论先行/171
7.2.1先提供对方最关注的信息/171
7.2.2前因后果沟通习惯的背后/173
7.2.3怎样才能做到结论先行/177
7.3区分事实和判断/179
7.3.1不说事实,只作判断/179
7.3.2不带评论的描述事实/180
7.3.3如何做到区分事实和判断/181
7.4如何请求帮助/183
7.4.1为什么没人愿意帮小倩/183
7.4.2找到那个对的人/185
7.4.3说出你的具体请求/186
7.4.4有效表达你的感激/189
7.5通过反馈帮助别人/190
7.5.1表面反馈与深度反馈/192
7.5.2感谢他人/193
7.5.3提出建议,帮助别人提高技能/195
7.6追随上司/198
7.6.1赞成上司的提议/198
7.6.2帮助上司实现目标/201
7.7超越上司的期待/204
7.7.1小周和小齐的在线音乐播放器/204
7.7.2超越期待的螺旋与让人失望的螺旋/208
7.7.3怎样超越上司的期待/211
7.7.4沟通与反馈/214
7.8怎样坚持计划,实现目标/215
7.8.1两步滚动法/215
7.8.2具体化你的目标/218
7.8.3下一步行动/220
7.8.4任务清单法/221
7.8.5持续成长的关键代码/226
7.9引入变量,突破成长困境/227
7.9.1引入变量,4步跳出死循环/228
7.9.2我开发者生涯中引入的一个关键变量/230
7.9.313个方法帮你发现变量/232
7.9.4选择变量的原则/240
7.10程序员职业规划的3个锦囊/241
7.10.1程序员职业发展的四个阶段/242
7.10.2公司内的下一个职级/243
7.10.3榜样/244
7.10.4职业规划图/245
附录
A.1程序员必去的技术社区与网站/248
A.1.1专业技术社区/248
A.1.2资讯/250
A.1.3工具/251
A.1.4在线教育平台/251
A.1.5招聘/253
A.2《大话程序员:从入门到优秀全攻略》提到的46《大话程序员:从入门到优秀全攻略》/254
前言/序言
前言
这《大话程序员:从入门到优秀全攻略》的“种子”,在我2005年初决定从事软件开发的那一刻就埋下了,经历了十几年岁月的滋养,现在才破土而出。因此,我们要回到最初,从我的职业路线图说起。粗线箭头代表工作的主线剧情,细线箭头代表发展出的支线从上图可以看出,我从2005年到2018年,先后经历了6个主线剧情,完成了5次转型,下面简要回顾一下。
2005年年初,我决定告别程控交换设备的售后技术支持工作,转型从事软件开发工作。在这个过程中,经历了技术选择、自学、跨行找工作、漫长的面试与被鄙视等跨行进入软件开发领域会必然遇见的问题,最终转型为开发宽带接入产品的软件工程师。
对职业选择与个人发展相关问题的探索,从这个时期的各种“切肤之痛”开始。
2008年下半年至2009年年初,从开发者转型为研发部门经理,同时还负责部分软件架构设计和核心模块的编码工作。这样的状态持续了将近6年,一直到2014年9月。
在这个过程中,从零开始从事智能机顶盒产品开发并且持续6年不断打磨、反复迭代,我的技术能力在软件架构、程序设计、编码实现等方面都发生了跃迁。同时,因长时间使用Qt,在Qt应用开发方面也有了比较深的积淀,出版了《QtonAndroid核心编程》和《QtQuick核心编程》两本技术图书。
也是在这个时期,我完成了从“自己单干”到“带团队一起干”的转变,从技术角色转向了管理角色,对技术、项目、管理等有了较为全面的经验和思考。
2014年下半年,接受朋友邀请,加入创业者行列。这算是很多程序员都会做的一道附加题,它让我深刻体会到什么是“无路可退、无人可靠”。
2015年年底,解散创业团队。
这时我已经系统地学习了职业规划技术,于是对自己做了深入挖掘和分析,发现自己的成就感还是来源于技术性工作,所以果断选择了回归开发岗位。
还是在2015年,考虑到我独特的“软件开发+职业规划”背景,可以更好地帮助从事开发的小伙伴规划自己的职业生涯,我开通了微信公众号“程序视界”,分享我对职业的理解。
2016年年初,很多小伙伴开始在公众号后台问我各种问题,所以决定开通“有问有答”栏目,免费回答“程序视界”关注者的提问,希望能帮到更多的有缘人。
2017年7月,我对自我支配的渴望强烈到难以再忍受组织束缚的地步,于是主动离队,成为自由职业者。
经过几次生涯探索和规划,我决定专注于开发者的职场成长领域,将自己定位为程序员的成长顾问,以写作、课程、职业咨询等方式养活自己。
成为自由职业者后,我有了更多的时间思考IT职场的问题,公众号“程序视界”的“有问有答”栏目经过两年多的运营,回答的问题已经涵盖了技术选择、跳槽策略、职场适应、生涯规划、上下级沟通、怎么转型从事软件开发、如何快速提升自己等各个方面。
在这些问题中,有两类问题出现了周期性,反反复复、持续不断地被提出来。
一类是薪水方面的问题,例如,选择什么样的公司会有高薪?如何面试能拿到高薪职位?Java后台服务开发和前端哪个薪水更高更有前途?公司好久没涨薪水了该怎么办?该不该发展副业赚点外快?
一类是能力提升方面的问题,例如,工作两年多感觉技术很菜该怎么办、想学新东西总是坚持不下来怎么办?要学的技术好多,时间不够用怎么办?公司的技术氛围不好,我成长得太慢要不要跳槽?做开发好痛苦,还要不要坚持下去?
这些问题以各种形式反复出现,让我意识到,那些刚从事软件开发工作没几年,还没走过初、中级阶段,尚未建立自己的知识体系形成优势的小伙伴们的普遍问题,于是我就萌生了“写一《大话程序员:从入门到优秀全攻略》系统回答这些问题”的想法。
经过分析,我发现这些问题通常是由下面几种原因造成的。
不了解自己的个性和职业倾向,行差踏错进入软件开发领域。
不懂职场选择的通用逻辑。
不知道什么样的岗位更适合自己。
不了解技术修炼的一般性方法和框架。
不懂怎么系统地为面试做准备。
不具备必要的职场基本功(软能力)。
于是,我就面对着这些问题和潜在的原因,不断追问自己,梳理、整合、抽象、重构,慢慢地把自身的职场经历与体验、职业规划技术、超过500小时的开发者职业规划咨询,以及凝结在“有问有答”栏目的近两年的思考融汇在了一起,形成了现在的答案,并以书的形式为大家呈现。
假如你:想知道自己是否适合从事软件开发工作。想知道如何在诸多软件开发岗位中做选择。想知道怎样才能在技术之路上更有效地“升级打怪”。想知道开发者的职场发展到底有哪些方向。想知道那些可以助力开发者走得更远的职场基本功。
那么,这《大话程序员:从入门到优秀全攻略》可以提供一些方法、思维和工具给你,帮助你更好地探索自己,更快地走向你想要的未来。
安晓辉
2019年3月