程序员进阶攻略
胡峰
京东成都研究院技术专家
33679 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 65 讲
蜕变:破茧成蝶 (3讲)
结束语 (1讲)
程序员进阶攻略
15
15
1.0x
00:00/00:00
登录|注册

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

源码管理工具
5. 源码管理
敏捷开发方法论
4. 开发流程
代码风格
代码结构
代码规范
3. 工程规范
测试驱动开发(TDD)
流行的开发方法论
2. 测试方法
Cache缓存
NoSQL非关系型数据库
SQL关系型数据库
1. 数据存储
树和图
基础和常用的数据结构
3. 数据结构
时空复杂度
目的
学校学习的算法
2. 常用算法
技术框架和解决方案
平台生态
编程语言
1. 开发平台
蓝色区域(需要了解的部分,需要广度)
红色区域(需要掌握的部分,要求深度)
二、了解
一、掌握
需要具备的基础技能图
边界扩大了很多倍
基础技能图
总结
程序世界是一片广阔的大地
别着急,带上你的技能地图再赶路!
参考文章

该思维导图由 AI 生成,仅供参考

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

一、掌握

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

1. 开发平台

开发平台,它包括一种编程语言、附带的平台生态及相关的技术。在如今这个专业化分工越来越细的时代,开发平台决定了你会成为什么类型和方向的程序员。比如:服务端、客户端或前端开发等。其中进一步细分客户端还可以有 Windows、Mac、iOS 和 Android 等不同的平台。
编程语言
语言的选择基本决定了开发平台的性质,但有些语言可能例外,如:C++、JS、C# 等,这些语言都可以跨多个平台。但即使你选的是这些语言,基本也会归属到某一类平台上。好比你选了 C++,如果你去做了客户端开发,就很少可能再去用 C++ 写服务端程序了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

程序员的基础技能图中,源码管理是至关重要的一环。文章强调了对Git的了解和运用,以及源码管理的基本诉求:并行开发、协作编写和版本切换。作者总结了技能图的红色区域需要深度掌握,蓝色区域需要广度了解。这张技能图是程序员在广阔的程序世界中立足、生存和发展的基本技能地图,为程序员未来的发展奠定基础。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《程序员进阶攻略》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(33)

  • 最新
  • 精选
  • third
    看着地图很安心,感谢老师的分享 有一个小想法 即使疯狂努力,也并不是每个人都有机会成为顶级程序员, 在文章中看到了许多生态字眼,经常被提到的可读和健壮。我个人的理解和感受是,随着计算机发展,趋势是越来越强调协作。 据说程序员内向居多(不知道是不是真的,求证一下老师) 那么擅长于沟通和协作,技术能力在上流水平,是不是也是一条程序员成长可选择之路呢?

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

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

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

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

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

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

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

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

    作者回复: 😊

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

    作者回复: 恩,才开始

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

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

    2018-08-10
    4
  • hinzer
    按照10000小时定律,如果每天8个小时计算,每周有效时间40小时,需要250周,算下来竟然需要5年左右的时间

    作者回复: 是的,大部分人成长为专业且熟练的工程师需要这么久

    2020-01-01
    3
  • wanums
    老师好,平台生态都包括哪些内容?

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

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

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

    2018-08-09
    3
收起评论
显示
设置
留言
33
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部