程序员成长之路

本文出于本人职业迷茫期。目前距离身边的各路大神有着很大的差距,但是总体水平还算勉强合格,看网上普通的教程已经没什么大的收获,又不知如何拉近和大神的距离。

所以写下此文,一边梳理思路,总结目前认为如果再给我一次机会重头再来,进步的最优解是什么,一边反思总结使用这些方法,能否让我的职业生涯的技术深度再进一步。

本文适合1-5年Java从业经验的人看。

为什么程序员要持续学习,靠经验累积不行么?

业务领域可以,技术领域不行

举个例子:

20年从业经验的骨科医生 VS 20年从业经验的Spring + struts2 + hibernate + JSP开发的IT技术人员

现在还用JSP做企业开发说一句没什么技术追求应该不算过分吧

所以,由于IT技术行业日新月异的发展,不跟上时代的脚步是不行的,很快就会被淘汰

如何高效的学习

我认为要从熟练使用工具、多听、多看、多读、多写、定周计划几方面入手

熟练使用工具

工欲善其事,必先利其器

人类区别于动物的标志之一是制作和使用工具

磨刀不误砍柴工

一下摆了3个名言来佐证我把这条放在第一的重要性。

工具能极大的提升你的效率,举个例子:不会还有人用记事本写大型项目吧?

以下是我认为比较重要的,需要掌握的工具:

1、笔记类:

人都是会忘的,学了又忘,基本等同于不会。并且如果一味的输入知识,不会输出,也基本等同于不会。“一听就会,一做就错”,都上过学吧,这句话简直太有道理了,听懂了跟你能简洁而准确的表达出来这是两个概念

所以提炼你掌握的技能,输出成文档,有利于构建你的知识体系,便于以后捡起来复习,同时也造福于社会

这里需要掌握三种笔记类工具:

文字类:notion、飞书、语雀、onenote等

思维导图类:知犀、gitmind、xmind、飞书、幕布等

各种画图工具:dram.io、Visual Paradigm、processon、亿图图示等

2、开发工具类

idea是不是只会写代码,运行,debug?

idea那么多菜单、选项、快捷键都知道是干嘛的么?

idea有哪些插件能进一步提升效率?

linux命令会多少?只会cd ls grep?

出了线上问题,别人可能3分钟就定位到问题了,你对这些开发常用的工具都不熟的话,你要多久?

3、语言工具类

Spring、SpringBoot、SpringCloud都掌握了么?

Java自己的stream流、lambda表达式、还有其他的第三方工具包:guava、Apache的工具包等,避免重复造轮子的工具包会用么?

以上不是说要求看源码,要能自己实现一个的要求,就是熟练使用,有做到么?当然,能精通自然是最好的

多听

多跟身边大牛聊天,多听一些讲座,听人吹牛逼

起码你知道有这么个东西,要是更进一步,能听到这人在说什么,再进一步,听出来这人有没有错,错在哪,更好的解决方案是什么

多看

看视频、看新闻、站在巨人的肩膀上

视频网站:YouTube、Pluralsight
新闻:Hacker News、thenewstack.io、medium.com

多读

读书,书单网上一搜就有很多,不再赘述

多写

定期刷题、时不时写点小的项目demo

定周计划

计划要结合自身情况,定一个能长期坚持下去的计划,都完成了下周可以加,完不成下周就减。长期坚持比短期做了很多,心理很抗拒周计划来的强。

这是我在阿里995情况下的周计划:

两篇技术文档——1小时

产出一篇学习文档——2小时

leetcode一到2道题——1小时

新闻、视频——1小时

写小项目——2小时

每周共计7小时(2小时输入5小时输出),就这都完成的很困难,唉,在阿里真是忙,感觉提升速度慢了好多好多,所以这也是我迷茫期的原因之一吧,唉。。。

共勉吧大家

Comments

You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.