一、自我修养路线图

如图,这是笔者所走的路。且不论这路走的对不对,这个过程中行业环境会影响到你,大可不必钻牛角尖。附上这张图的目的是为了说,如果你想成为一个优秀的程序员,那么你一定要有规划。当然,别想着一毕业就能规划的很远,很难,而且也不可能。因为这个过程中行业环境会影响到你。有一点是要做到的,毕业一年左右,一定要有一个相对远一点的规划,这时候你已经对行业环境和一些常用技能有了相应的积累。规划一下接下来1-2个阶段(或者更多)要达到的水平和时间点,然后倒排期(尽量详细),一步一步走下去,水到渠成。再往下,你肯定就有自己的想法了。一般,关注几个时间点是:毕业3年、毕业5年。再往后笔者也要摸索。总之,一定要有规划,循序渐进的规划。附录中有些文章也许对你我有帮助。

二、程序员知识图谱

不管你用什么方式(思维导图、图表、文档等)一定要有自己的知识图谱。为什么?

  1. 知识网络:知识之间发生反应,有利于更快的利用知识解决问题;
  2. 良性循环:知识体系->知识漏洞->知识学习->知识体系...

注:Java工程师知识图谱

三、优秀程序员的几个特质

  1. 自学能力强,互联网行业知识的更迭速度快,没有很强的学习能力和主动学习能力,会越来越力不从心,最终...
  2. 逻辑思维能力强
    • 同样的业务逻辑,别人用50行代码实现,你却用100行,为什么?
    • 知识面相同,为什么别人可以借助这些知识找到问题的解决方法,而你却不可以?

    训练方法:

    • 技能实践,一项技能,不单单只是学会就行了。多实践,工作中无法体现,也要构造场景来实践。印证其使用场景、优势和劣势。
    • 问题复盘,别人用你知道的知识解决了问题,而你没有,想他请教。复盘,走一遍他的思维过程。另外,查询资料,思考下有没有更好的方案。
    • 知识碾压,你的知识比别人高出一个层面,及时逻辑思维弱点也能够用很好的解决问题的方案。
    • 逻辑训练,有事没事多做一些算法题和一些逻辑推理题,做的多了,思路就广了。
  3. 搜索+综合运用能力强,能快速查到的知识,只有能很好的综合运用即可,减少学习成本。
  4. 执行力强,想好了就去做,拖拖拉拉,终将蹉跎岁月。
  5. 抗压能力强,好的公司,工作强度大,而且不允许犯错,一旦出现线上事故,是你不能承受的。
  6. 善于总结,一个需求不是做完了就完了。总结一些收获和教训,这都是难得的经验积累。一个问题从出现到解决,复盘,整理出文档。坚决不要在一个坑里跌倒两次。
  7. 分工合作,或许一个人走的很快,但一群人能走的更远。

四、如何保持技术的先进性?

  1. 经常浏览招聘网站;
  2. 关注一些行业和技术公众号。

五、如何快速学习一项技能?

  1. 百度或谷歌科普 -> 是什么、场景、用途等;
  2. HelloWorld很重要,去官网,先写出一个demo;
  3. 结合官方文档或者优秀的中文教程针对性(你要用它来干什么)学习;
  4. 实现原理,甚至源码。

六、为何而编程?

使命

难道只是因为你是计算机相关专业出身吗?不然,既然从事软件行业,还是要有使命感的。国内软件行业的蓬勃发展,对你我而言赶上好时候了。在这个浪潮中,何不学有所用,为中国的软件行业做些贡献呢?为中华软件之崛起而编程,共勉。这是态度,也是使命。也许一开始可以影响一个人,渐渐的能影响更多的人,更多的人影响更多的人,我们国内的软件环境才能呈现可持续的正向发展。

愿景

但愿程序员皆因喜欢而编程。不然你得多痛苦。另外,程序员这个职业是可以做很久的,不是吃青春饭的

七、附录

Codelife不止代码

Java程序员的自我修养的更多相关文章

  1. 程序员的自我修养(2)——计算机网络(转) good

    相关文章:程序员的自我修养——操作系统篇 几乎所有的计算机程序,都会牵涉到网络通信.因此,了解计算机基础网络知识,对每一个程序员来说都是异常重要的. 本文在介绍一些基础网络知识的同时,给出了一些高质量 ...

  2. gcc ld 链接器相关知识,调试指令(程序员的自我修养----链接、装载与库)

    最近解决一个动态链接上的问题,因为以前从来没有接触过这方面的知识,所以恶补了一下,首先要了解gcc编译指令(makefile),ld链接器的选项(还有连接脚本section指定内存位置),熟悉查看连接 ...

  3. 第八周读书笔记(人月神话X月亮与六便士)——到底什么才是一个程序员的自我修养?

    写了这么久的读书笔记,涉及到问题大多是一些如何把软件工程做好,如何把自己的职业生涯做好.但总感觉逻辑链上缺了一环,亦即:我们为什么要把软件工程做好,我们成为一名优秀的职业生涯的意义到底在于什么?我觉得 ...

  4. pwn学习日记Day21 《程序员的自我修养》读书笔记

    Linux内核装载ELF过程 (1)bash进程调用fork()系统调用创建一个新的进程 (2)新的进程调用execve()系统调用执行指定的ELF文件,原先的bash进程继续返回等待刚才启动的新进程 ...

  5. pwn学习日记Day20 《程序员的自我修养》读书笔记

    可执行文件的装载与进程 覆盖装入和页映射是两种典型的动态装载方法 进程建立的三步 1.创建一个独立的虚拟地址空间 2.读取可执行文件头,并且建立虚拟空间与可执行文件的映射关系. 3.将CPU的指令寄存 ...

  6. pwn学习日记Day19 《程序员的自我修养》读书笔记

    windows PE/COFF章总结 本章学习了windows下的可执行文件和目标文件格式PE/COFF.PE/COFF文件与ELF文件非常相似,它们都是基于段的结构的二进制文件格式.Windows下 ...

  7. pwn学习日记Day18 《程序员的自我修养》读书笔记

    知识杂项 obj文件:当前源代码编译成二进制目标文件 exe文件:将.obj文件与库文件.lib等文件链接生成的可执行文件 一个现代编译器的主要工作流程如下: 源程序(source code)→ 预处 ...

  8. iOS程序员的自我修养之道

    新技术的了解渠道 WWDC开发者大会视频 官方文档 General -> Guides -> iOS x.x API Diffs 程序员的学习 iOS技术的学习 官当文档 Sample C ...

  9. 读书笔记一 Java程序员的基本修养(数组及其内存管理)

    1.1 数组初始化 1.1.1 java数组是静态的 java数组被初始化之后,该数组所占的内存空间.数组长度都是不可变的. java程序中的数组必须经过初始化才可使用. 数组的初始化有两种方式: 1 ...

随机推荐

  1. Dart介绍和环境搭建

    /* Dart介绍: Dart是由谷歌开发的计算机编程语言,它可以被用于web.服务器.移动应用 和物联网等领域的开发. Dart诞生于2011年,号称要取代JavaScript.但是过去的几年中一直 ...

  2. 【转载】 tf.split函数的用法

    原文地址: https://blog.csdn.net/uestc_c2_403/article/details/73350457 由于tensorflow 版本更新问题   用法略有修改 ----- ...

  3. ISO/IEC 9899:2011 条款6.8.1——标签语句

    6.8.1 标签语句 语法 1.labeled-statement: identifier    :    statement default    :    statement case    co ...

  4. 品优购商城项目(三)安全框架SpringSecurity

    品优购商城项目第三阶段 1.springSecurity的基本用法与shiro类似. 2.BCrypt加密算法比MD5更加智能和安全,能自动加盐再加密,生成的密码是60位比md5的32位更占空间(可以 ...

  5. netty5服务端检测心跳超时断连

    客户端每5秒发送一次心跳给服务端,服务端记录最后一次心跳时间,通过定时任务每10秒检测一下,如果当前时间与最后一次收到的心跳时间之差超过某个阈值,断开与客户端的连接.基于之前的例子(netty5心跳与 ...

  6. hppts的理解

    参考: https://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

  7. [Scikit-learn] 1.4 Support Vector Regression

    SVM算法 既可用于回归问题,比如SVR(Support Vector Regression,支持向量回归) 也可以用于分类问题,比如SVC(Support Vector Classification ...

  8. LeetCode_349. Intersection of Two Arrays

    349. Intersection of Two Arrays Easy Given two arrays, write a function to compute their intersectio ...

  9. Python第一阶段02

    1.模块: import sys print(sys.path) # 打印环境变量 print(sys.argv) # 打印当前文件绝对路径 # print(sys.argv[]) import os ...

  10. CF1228D Complete Tripartite

    思路: 任选一点a,和a没有边直接相连的点一定和a在同一个集合,由此构造得到一个集合A.用类似的方法再构造一个集合B,并将剩下的点放在集合C中,就得到了三个集合A,B,C.再检查A,B,C是否符合要求 ...