程序员进阶攻略
胡峰
京东成都研究院技术专家
立即订阅
7529 人已学习
课程目录
已完结 65 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 程序行知:走在同样的路上,遇见自己的风景
免费
征途:启程之初 (4讲)
01 | 初心:为什么成为一名程序员?
02 | 初惑:技术方向的选择
03 | 初程:带上一份技能地图
04 | 初感:别了校园,入了江湖
修炼:程序之术 (10讲)
05 | 架构与实现:它们的连接与分界?
06 | 模式与框架:它们的关系与误区?
07 | 多维与视图:系统设计的思考维度与展现视图
08 | 代码与分类:工业级编程的代码分类与特征
09 | 粗放与精益:编程的两种思路与方式
10 | 炫技与克制:代码的两种味道与态度
11 | 三阶段进化:调试,编写与运行代码
12 | Bug的空间属性:环境依赖与过敏反应
13 | Bug的时间属性:周期特点与非规律性
14 | Bug的反复出现:重蹈覆辙与吸取教训
修行:由术入道 (24讲)
15 | 根源:计划的愿景——仰望星空
16 | 方式:计划的方法——脚踏实地
17 | 检视:计划的可行——时间与承诺
18 | 评估:计划的收获——成本与收益
19 | 障碍:从计划到坚持,再到坚持不下去的时候
20 | 执行:从坚持到持续,再到形成自己的节奏
21 | 信息:过载与有效
22 | 领域:知识与体系
23 | 转化:能力与输出
24 | 并行:工作与学习
25 | 时间:塑造基石习惯(上)——感知与测量
26 | 时间:塑造基石习惯(下)——切割与构建
27 | 试试:一种“坏”习惯
28 | 提问:从技术到人生的习惯
29 | 偏好:个人习惯的局限与反思
30 | 写作:写字如编码
31 | 画图:一图胜千言
32 | 演讲:表达的技术
33 | 定义:阶梯与级别
34 | 晋升:评定与博弈
35 | 关系:学徒与导师
36 | 核心:安全与效率——工程技术的两个核心维度
37 | 过程:规模与协作——规模化的过程方法
38 | 思维:科学与系统——两类问题的两种思维解法
徘徊:道中彷徨 (15讲)
39 | 职业倦怠:如何面对?
40 | 局部最优:如何逃离?
41 | 沟通之痛:如何改变?
42 | 技术停滞:如何更新?
43 | 无法实现:困扰与反思
44 | 完成作品:理想与现实
45 | 代码评审:寄望与哀伤
46 | 人到中年:失业与恐惧
47 | 该不该去创业公司?
48 | 该不该接外包?
49 | 技术干货那么多,如何选?
50 | 技术分歧,如何决策?
51 | 技术债务,有意或无意的选择?
52 | 选择从众,还是唯一?
53 | 选择工作,还是生活?
寻路:路在何方 (7讲)
54 | 侠客行:一技压身,天下行走
55 | 江湖路:刀剑相接,战场升级
56 | 御剑流:一击必杀,万剑归心
57 | 三维度:专业、展现与连接
58 | 三人行:前辈、平辈与后辈
59 | 三角色:程序员、技术主管与架构师
60 | 三视角:定位、自省与多维
蜕变:破茧成蝶 (3讲)
61 | 工作之余,专业之外
62 | 跨越断层,突破边界
63 | 成长蓝图,进化跃迁
结束语 (1讲)
尾声 | 始于知,终于行
程序员进阶攻略
登录|注册

03 | 初程:带上一份技能地图

胡峰 2018-08-08
程序世界是一片广阔的大地,相比我十多年前进入这个世界时,这片大地的边界又扩大了很多倍。初入程序世界难免迷茫,要在这个世界立足、生存,并得到很好的发展,应首要具备怎样的技能呢?未来的程序之路,先给自己准备一份基本的技能地图,先有图,再上路。
在程序的技能地图中,需要先开启和点亮哪些部分呢?回顾我过去的经历并结合现实的需要,可以从如下两个不同程度的维度来说明:
掌握
了解
掌握,意味着是一开始就要求熟练掌握的硬技能,这是生存之本。而至于掌握的深度,是动态的,倒是可以在行进过程中不断去迭代加深。了解,相对掌握不是必需,但也需要达到知其然的程度,甚至知其所以然更好。

一、掌握

上路之初,需要掌握的核心生存技能有哪些呢?

1. 开发平台

开发平台,它包括一种编程语言、附带的平台生态及相关的技术。在如今这个专业化分工越来越细的时代,开发平台决定了你会成为什么类型和方向的程序员。比如:服务端、客户端或前端开发等。其中进一步细分客户端还可以有 Windows、Mac、iOS 和 Android 等不同的平台。
编程语言
语言的选择基本决定了开发平台的性质,但有些语言可能例外,如:C++、JS、C# 等,这些语言都可以跨多个平台。但即使你选的是这些语言,基本也会归属到某一类平台上。好比你选了 C++,如果你去做了客户端开发,就很少可能再去用 C++ 写服务端程序了。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《程序员进阶攻略》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(26)

  • 艾尔欧唯伊
    其实掌握就是招聘上的精通,了解就是招聘上的熟悉。。。
    2018-08-08
    15
  • third
    看着地图很安心,感谢老师的分享



    有一个小想法

    即使疯狂努力,也并不是每个人都有机会成为顶级程序员,

    在文章中看到了许多生态字眼,经常被提到的可读和健壮。我个人的理解和感受是,随着计算机发展,趋势是越来越强调协作。

    据说程序员内向居多(不知道是不是真的,求证一下老师)

    那么擅长于沟通和协作,技术能力在上流水平,是不是也是一条程序员成长可选择之路呢?

    作者回复: 我感觉擅长沟通的并不多,沟通协作和技术都在上流水平的,这是稀缺人才,这是很好的路线

    2018-08-08
    14
  • AdmaBoy
    老师,最近感觉到很迷惘,本人已经26了,在银行从事后台工作,主要语言C语言,跟接近底层开发,不能说精通但应该说熟练吧,数据结构和算法能用C手写,熟悉网络编程,但我感觉C想出来的范围限制的很死,想要从事互联网行业,但感觉互联网行业基本木有用C进行开发的,就像你说的得等你语言融会贯通的时候,才能说语言只是工具。如果从事网络开发,要求会涉及到更低层的2,3协议开发,这个要求就高了。如果我出去找互联网工作,我觉得能找到,但薪资可能还达不到现在的薪资(税前30w),但是如果继续呆在这里的话,感觉以后差不多就这样了,很矛盾。感觉就像围城一样,里面的人想出去,外面的人想进来。希望老师解惑一下。

    作者回复: 如果是我,我会在业务上多上心积累一些;技术上参考同业其他用的什么技术栈,可以先扩展一下。金融科技行业很有潜力啊,也很互联网啊,找到你的独特优势去发展路线,做业务开发纯技术路线,天花板太低

    2018-08-14
    7
  • 爪哇夜未眠
    这些技能具体怎么学习掌握,老师有推荐吗

    作者回复: 一般都在实践中学,辅以书本课程吧

    2018-08-08
    7
  • monkeyking
    老师,工作中用到的技术想要精通它,但是要做到精通它的话就要去搞懂其他底层技术,但底层技术平常工作用不到,所以我要不要下班后花精力去研究这些底层技术,然后去达到我想要精通某项技术的目的

    作者回复: 通常你只需要往下深一层基本足够,比如做Java应用开发,往下深一层就是JVM的原理。而不用一直深到操作系统内部去,大概有个框架性的理解就够了。毕竟不是直接依赖和需要应用的

    2018-08-10
    5
  • 山上有只马
    最后一张图,干货,正是我需要的。
    编程的路上有很多知识,虽然我知道哪些为主,哪些为辅。但是,我始终看得不清晰。现在清晰了

    作者回复: 😊

    2018-08-10
    5
  • 很大气
    最后一句,感觉很心安。努力,才是开始而已。

    作者回复: 恩,才开始

    2018-08-08
    4
  • wanums
    老师好,平台生态都包括哪些内容?

    作者回复: 我觉得这个问题需要你自己去搞清楚呀?你属于哪个开发平台,有些什么库,框架,解决方案,软件系统等等

    2018-08-14
    3
  • monkeyking
    工作中实际用到的技术与想学的技术有冲突,该怎么分配精力啊?

    作者回复: 除非实际中用到的技术是历史遗留产物,否则没必要分散精力,技术没有实践的应用环境,单纯学起来也会事倍功半

    2018-08-10
    3
  • AT
    老师,我现在在做wince系统和Android系统开发,但发现涉及的知识太广泛,感觉无从下手,需工作三年有余,但扪心自问,感觉自己好像什么都没积累到什么知识,更像是在虚度光阴,有时在想叫我换个公司都没信心去换。

    作者回复: 以客户端开发和操作系统为骨干去连接聚拢你的广泛知识

    2018-08-09
    3
  • 马牧
    最近正在面试,看到老师这个图再对照自己这几天的面试经历,感觉很多都是面试会考察的基础,对照下来发现还是自己的基础知识欠缺的有点多,还是静下心来好好刷刷题,再去面会比较好,也有底气去面一些比较好的公司。谢谢老师分享。对今后的分享越来越期待了。
    2018-08-08
    3
  • HellloWorld
    峰哥,针对Java的数据结构和算法,请求您推荐一些实用教程或者书籍。

    作者回复: 看看Java的经典书,然后再看看相关源码,足够了

    2018-08-08
    3
  • 满古德·拉克
    对于python,我想学其数据结构和算法应用场景,这个老师有推荐吗
    2018-08-13
    2
  • daydayup
    测试方法这块完全没有了解过,看来应该去补习一番,受教了

    作者回复: 平时工作中就会和测试同学接触,多交流

    2018-08-08
    2
  • 绣眼
    1. 解决问题的工程师思维,这一点好想没提到;2. 最后的程序员基础技能图,没有预览。

    作者回复: 工程思维后面会有单独讲这个主题的文章😄

    2018-08-08
    2
  • 全世界都失眠😈
    本人28,做了几年java 后面偏技术管理,但是觉得目前的公司的任务 和 技术上面没什么前途,辞职准备学下大数据,有点迷茫的是出来还能继续好好干开发吗

    作者回复: 干嘛辞职学习,边干边学嘛

    2019-08-12
    1
  • 刘晓林
    计算机系统和网络是不是也应该是了解的重要内容啊

    作者回复: 嗯,这两个内容算是基础中的基础了

    2019-04-24
    1
  • 葛曦
    一图解千虑啊

    作者回复: 哈哈,改的好

    2018-08-17
    1
  • AdmaBoy
    业务纯开发技术路线真的是到后面都形成一套很规范的流程了,购买没啥技术含量可言了,你说技术扩展,行里面对新技术真的持一种很很谨慎的态度,不轻易引进新技术,基本学习肯定没多大问题,但需要深入一点贯通的话,还是得靠做项目啊,基本木有机会
    2018-08-14
    1
  • Jiantao
    我的一万小时可以开始了,加油💪

    作者回复: 加油哈

    2018-08-12
    1
收起评论
26
返回
顶部