作者; YouCii
链接; https://juejin.im/post/5cabf8a1e51d456e6f45c6b4
反思
昨晚去北京大望路阿里面试, 产生了严重的挫败感, 羞愧难当.
比不得从大学就有目标有理想, 一直在为目标努力学习技术的同学, 在大学唯一能拿得出手的就是参加了电子设计大赛, 学了点嵌入式的知识.
毕业后开始做 Android, 说得好听点叫做项目, 实际上就是搬代码, 真正记到脑子里的有多少呢? 从百度 Google 搬到自己的代码里, 同一个问题要遇到好几次才能记住, 很多问题搬完了还不知道为什么这么做. ReactNative 都做完一个项目了, 生命周期都记不清楚, 这样的工作有什么意义呢?
进步太慢, 毕业后的前两年自学 Android, 现在想来基本都是在爬, 两年之后自认为很厉害, 什么业务都做得了了, 其实只是井底之蛙, 甚至连 hybird 都不知道. 面试官问一句 "都是原生开发吧", 支支吾吾回答了一句 "就是在 Eclipse 里写 java 和 xml...", 真是可笑至极! 一如昨天回答 "intent 如何突破传参大小限制": "不太清楚可以突破..". 我可以找借口说平时做的项目不大, 不需要这些操作, 其实用到 intent 的时候也应该深入看一下, 不是吗? 自认为工作这五年, 理论知识还不如 BAT 招的应届生, 也许在其内部工作了一年的新手掌握的基础知识都比我扎实吧?
稍微开点窍是在 2018 年初, 终于开始不满足于 API 调用了, 开始学习一些目前小项目中还用不到的东西, 比如 JMM / 深入点的多线程 / 各类数据结构, 也写了些博客, 自认为感觉良好. 殊不知浮于应用之上的深层理论知识只是华而不实的空中楼阁, 连 Thread.join() 有带有超时参数的重载方法都不知道, 就算精通了 synchronize 优化的偏向锁轻量锁又有什么意义呢? 先不说实际项目中毫无作用, 甚至只是用于应付面试都问不到那一步, 只稍微问下基础的应用就捉襟见肘漏洞百出, 基础不牢谁还有兴趣深入的问.
与前几年的呆傻相比, 这两年又太浮躁了, 自知欠的技术债太多, 开始病急乱投医, 一味为了面试去学习些面试题的星星点点, 或者接受各个技术群 / 博客 / 资讯网站关于技术的 / 关于人生的狂轰滥炸, 却积攒不到扎实的深入的技术知识或者应用经验, 这样下去只会越来越焦虑而毫无真正意义上的技术提高.
计划
以人为镜可以明得失, 看到了自己的不足就要针对性地做一些改变.
以下思路转变要切记:
1. 核心思想, 从项目出发, 打牢基础, 逐步深入;
2. 上班期间不再惦记其他知识的学习, 专心研究项目上需要的知识 / 碰见的问题, 否则只会三心二意, 项目上的技术点做不深入, 其他知识点也看不踏实;
3. 下班后, 除了陪家人朋友 / 做家务之外的个人时间, 要抽出大半来学习, 比如没其他事的话可以玩游戏 / 逛吃的时间, 这个比较笼统, 没有具体衡量标准, 所以要时刻提醒自己;
4. 学习时切忌不要急于求成, 以深入学习 / 学会应用为目标, 写博客是为了总结记录, 而不是为了花里胡哨的标榜什么. 比如写了一个算法, 尽量联系下应用场景; 看了一段源码, 想一下对应用层调用有什么影响, 这样才能学以致用.
具体的学习目标
1. 周一到周五晚上只有一个半小时的小段时间, 用来学习小节点的算法知识, 周末大段的时间用于研究源码或者 JVM 等较深入的知识, 周六周天相加至少要 6 小时, 其余时间与媳妇商量来定;
2. 算法知识先看完 < 剑指 offer>, 然后刷 LeetCode; 源码和 JVM 先看 < Android 源码设计模式解析与实战 >, 然后看下 < 深入理解 Java 虚拟机 >, 这三本书是今年的目标.
前瞻
人与人的目标各不相同, 有时候也羡慕可以踏踏实实开开心心养老的人, 可是更多的时候还是想要更进一步, BAT 是我的目标.
现在已经老大不小了, 27 周岁, 工作五年, 还是条只能混过简历筛选的咸鱼, 后面要更加努力了.
来源: http://www.jianshu.com/p/0f4e92088dec