本文不讲 "时间就是生命" 之类的套话, 而是会量化地直观地描述时间对程序员的价值. 在高效利用时间的方法方面, 也不会讲 "合理制定计划, 然后再执行" 之类的对每类人都适用的方法, 而会专门讲述针对程序员的时间管理方案.
1 对初级 Java 开发而言, 学习能带来的其实收益不多, 但必须得学
一般而言, 本科有 1 年经验, 可以算得上初级开发, 再做个 2 到 3 年, 一般就能达到高级开发的工作年限要求, 但是!
最终完成升级, 不能仅凭工作经验的积累, 还得通过升级认证(即成功通过高级开发的 Java 面试). 本人一直在做技术面试官, 也经常帮助初级程序员升级通过面试.
根据社会上普遍的实践经验, 初级程序员估计最少需要 150 个小时的学习积累, 即可掌握高级开发的面试技巧,(Java Core 估计 30 个小时, 数据库估计 30 个小时, Java web 估计 30 个小时, 优化类估计 30 个小时, 准备简历总结面试经验估计 30 个小时), 这况且还是最低标准, 如果总结再充分些, 各方面条件也再好些, 估计累计准备个 200 小时, 就能直接进到大公司了. 这些我倒不是拍脑袋想出来了, 根据我的实践经验, 我整理出一本书, java web 轻量级开发面试教程 http://www.broadview.com.cn/book/4843 , 不少技术面试官和技术讲师都能认可这个观点.
我找了份工资统计数值, 目前 (2018 年 5 月),1 年 java 开发(初级水平) 工资大概是 10k, 而完成升级后的高级开发, 工资在 13 到 15k 左右.
也就是说, 按平均水准, 初级程序员用了 150 个小时学习后, 涨的工资哪怕按一年来算, 一年能多拿 3600, 平摊到 150 小时的学习时间, 大约每小时的收益是 24 元.(看似不多.)
但话说回来, 如果不用这 150 小时学习, 那么该程序员也就一直停留在 3 年经验的能力水准上, 从上图来看, 初级开发的工作年限的上限是 3 年, 工资上限是 12k, 哪怕工作了 5 年以上, 如果能力不达标, 依然是初级开发, 而 5 年经验高级开发的工资能将近 20k, 这一来一去的差距就大了.
2 对高级 Java 开发而言, 学习带来的收益就不可计量了
工作经验满 3 年的 java 高级开发, 其实工资差距并不多, 一个月的差距估计也就在 5k 左右, 但是!
5 年左右经验的高级开发, 工资差距就有可能拉开了, 均价是 20k, 如果有些程序员特别卖力, 学习时间比较长(估计也就 200 小时), 工资能达到 30k 左右, 这样一年的差距就 12w, 按此计算, 每小时的学习收益是 600.
7 年开发经验的平均工资估计在 25k, 但如果能升级到架构师(学习时间在 300 小时左右), 工资就能达到至少 50k, 这样一年的差距就 25w 了. 每小时的学习收益将近有 850.
这都是按平均水准来算的, 如果学习效率再高些, 一年学和不学的差距甚至能到 35w, 这绝不是夸大, 在职场中这些案例比比皆是.
3 高级 Java 开发升级到架构师的学习明细账
刚才我们提到了高级开发升级所需要的具体时间, 这里我们列个明细账.
1 用大约 10 小时的时间, 了解架构师所需要的技术点, 以及常规的学习路线.
2 用 50 个小时的时间, 学习 Spring Cloud 各组件, 因为这是个微服务架构, 通过学习这部分的内容, 能感性地认识架构师要干的活, 比如负载均衡, 容错保护等.
3 用大概 40 到 50 小时, 了解基于 Dubbo 或其它架构的框架实现, 比如怎么实现模块间通讯, 如何实现秒杀系统.
4 最后再用 50 小时, 了解一个真实的案例(如果找不到就看书, 或者干脆上网上买), 吃透了, 就可以准备面试了.
5 随后就不断面试, 在面试后花时间不断总结和提升.
4 时间价值方面的总结 & 举例说明(不是结尾)
学习能带来收益, 这点毋庸置疑, 但大家在计算时, 应当同时把 "不学习造成的损失" 考虑在内.
比如某程序员工作 4 年, 但不上心, 能力始终停留在初级开发阶段, 工资是 1.3w, 看似达到初级开发的高点了, 但别人 4 年经验的, 或许已经升级到高级开发了, 工资能到 16k 了, 一来一去的损失就是 3k 了, 更何况, 这位程序员同时还失去了进一步升级的基础, 如果停留在初级阶段, 工资升级到 2w 以及以上的可能性基本没有, 这同样是损失.
这里, 再根据我切身体会和我看到的情况, 说下合理利用时间能带来的收益.
1 java web 轻量级开发面试教程 http://www.broadview.com.cn/book/4843 这本书, 写了 6 个月, 大概用时 360 小时, 账面收益 1.5w, 间接收益 (比如名气, 写作能力的提升以及能进一步帮我提升能力) 不可限量.
2 我目前在写 spring cloud 的书, 估计也是用时 360 小时, 但能帮我夯实架构师的基础.
3 在博客园里, 写一篇能进 48 小时排行榜的文章, 估计需要 1 个小时, 如果要写篇能上推荐榜的, 估计得 3 个小时, 时间用上去了, 能提升知名度.
4 我见过一个 java 培训师, 从 0 基础 (上讲台磕磕巴巴) 到资深(被别人抢着要), 他也就最多也就 100 小时练习讲课技巧和归纳讲课内容.
5 再啰嗦一下, 我见过大量初级开发, 也就用 3 个月时间学习(有效学习时间 150 小时左右), 然后面试进更好的公司.
6 高级开发层面, 哪怕技术没提升, 也就用 50 到 100 个小时看面试技巧和不断面试总结, 大多都能成功跳槽, 工资至少提升 20%.
5 如何高效利用时间学习(早起篇)
一日之计在于晨, 这句话绝不是白说, 大家一定有切身体会, 同样是学习, 晚上 10 点到 11 点和早上 7 点到 8 点的学习效率绝不相同. 那我们能早起吗? 绝对能, 只不过现在不肯了.
早上 6 点半, 学生们 (祖国的花朵) 大多起床了, 开始洗漱, 准备上学. 此时程序员们估计大多还在梦见周公.
早上 7 点到 8 点, 路上见到的大多是背着书包上学的孩子们, 而此时, 估计程序员的闹钟开始响第一次了.(估计不少会被直接忽视)
早上 8 点到 8 点半, 学生们都已经开始上课了, 而程序员可能就不得不起来了, 然后早饭也来不及吃, 直接往公司赶.
早上 8 点半到 9 点, 一些老油子, 不对, 是老法师, 开始出门了, 这些人可以 10 点前到公司.
这样一算, 早上哪有学习时间? 好的剧本应该是这样: 6 点到 6 点半起床, 7 点洗漱完毕吃好早饭, 用半小时到 1 小时学习, 8 点出门, 这样身体也好, 学习效率也高. 其实我们读书时也都这样过来的.
怎么做到这点:
1 晚上尽量 10 点半前睡觉, 如果可以 10 点最好.
2 如果确实有必要, 比如公司开会要加班, 那没办法, 如果可以, 免去些看连续剧和刷手机的时间, 当然不是不放松, 而是不能沉迷.
3 睡前如何放松, 有专门的文章, 这就不说了.
4 关键是毅力, 如果没, 就想下做到的好处 (能涨工资) 和做不到的坏处(钱会少).
6 如何高效利用时间学习(利用碎片时间)
我们每天都会用足量的时间刷手机, 我也会.
现在我会每天带本书, 地铁上, 工作之余看会.
总结下来比较好的经验是, 路上以及上班闲暇, 看书, 同时摘录要点, 晚上到家后, 用 1 个小时运行代码, 如果可以, 边接本书, 边学边写, 这样学习也就有出版社卖单了.
7 利用周末, 更为高效的学习, 同时可以变现学习的收益
我们没有必要用头悬梁的学习方法, 但得好好利用周末.
周末可以放松, 也可以偶尔开启混吃等死模式, 比如 10 点起来, 看个新闻, 吃午饭了, 睡个午觉, 玩游戏, 到晚上了, 再出门逛一圈, 又睡觉. 但不能长久.
我们周末可以这样安排:
1 看各大招聘网站, 看下我的升级目标, 同时看下这些职位的具体要求.
2 对此找些学习资料, 指定学习规划, 或者可以看些视频资料.
3 周末的时间比平时晚上要多很多, 所以可以到网上下个项目来学.
当达到一定水准后, 就可以利用周末时间找点活干挣点外快. 比如出去讲课, 到各网站上接点活, 或者干脆接本书来写或者翻译.
8 总结
本文提到的合理利用时间, 有个前提是勤奋: 在这基础上, 才肯花时间学习, 才能进一步谈 "合理利用". 换句话说, 不少程序员不是不知道时间的重要性, 也不是不知道合理利用时间的方法, 而是不肯, 说穿了就是不勤奋. 虽说世艰不拆, 但毕竟良药苦口.
如果说头悬梁锥刺股的勤奋度是 100 分, 而不工作啃老算 0 分, 下面列些各种勤奋度的标准.
1 还能找工作养活自己, 哪怕是工作中一直得过且过, 敷衍工作, 不及格, 但能给到 50 分.
2 能在工作中, 主观上想把事情干好, 比如积极防治空指针, 但工作之余不积极学习, 能给到 60 分. 这种人的公司水平会远低于行业标准.
3 工作之余能学习, 有一定的上进心, 能给到 60 到 70 分. 这些人一般能完成准时升级, 比如 3 年后能升级到高级开发, 6 年后能升到架构师. 这些人的工资会和平均标准差不多, 但不会高多少.
4 平时积极学习, 能力优于行业平均, 能给到 70 到 80 分, 比如某人 3 年后, 不仅能达到高级开发, 而且还能进大公司, 或者虽然只有 3 年经验, 但能力看上去有 5 年.
5 不仅能积极学习, 而且能通过不断总结和实践, 学习很有成效, 在某一领域成为技术大牛, 比如能在 6 年左右就能玩转高并发架构或大数据架构, 这些人的勤奋程度能达到 80 到 90 分, 这些人的工资估计能是平均工资的 n 倍(n 至少是 3).
6 至于 90 分以上, 这些本人没机会膜拜, 想象下, 如果在国内高考, 达到这种勤奋度的人能考上清华吧.
按此标准, 本人的勤奋度估计是 75 分, 和大牛相比, 依然有差距.
大家也可以参照下自己的分数, 还可以进一步采取措施提升勤奋度.
其实, 本文提到的勤奋, 学习方法和学习态度都是虚的, 真正做到了收益的是自己, 本人写这篇文章的动机也是时时提醒自己不忘初心, 如果还能让勤奋的读者进一步提升勤奋度, 那么也算额外的收获了.
来源: https://www.cnblogs.com/JavaArchitect/p/8975724.html