反思
昨晚去北京大望路阿里面试,产生了严重的挫败感,羞愧难当。
比不得从大学就有目标有理想,一直在为目标努力学习技术的同学,在大学唯一能拿得出手的就是参加了电子设计大赛,学了点嵌入式的知识。
毕业后开始做an droid,说得好听点叫做项目,实际上就是搬代码,真正记到脑子里的有多少呢?从百度Google搬到自己的代码里,同一个问题要遇到好几次才能记住,很多问题搬完了还不知道为什么这么做.ReactNative都做完一个项目了,生命周期都记不清楚,这样的工作有什么意义呢?
进步太慢,毕业后的前两年自学an droid,现在想来基本都是在爬,两年之后自认为很厉害,什么业务都做得了了,其实只是井底之蛙,甚至连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周岁,工作五年,还是条只能混过简历筛选的咸鱼,后面要更加努力了。