一个码农的牢骚

高能预警:文章有点啰嗦,做为一个理工科的直男,文笔确实不怎么样。但是字字都是自己码上去的。希望对大家有帮助。

 

       大二上学期开始的时候,在新辅导员的的介绍下以兼职生的身份加入了一家外包公司.辅导员向我推荐了在阿里待了10年的资明老师,资明老师属于业务厉害的人,在资明老师的指点下加入他的个人项目,在此期间主要在数据库设计方面有所提高。之后在公司将近8个月期间参与过三个项目的开发 微信群控, 就位网, 喵喵返利.微信群控主要负责对大批量的手机进行无人值守控制,主要负责给外包的产品导流,我的主要职责是负责后台的CMS以及API接口的提供。就位网是一个大型的爬虫系统,主要负责爬取启信包,企查查,IT桔子,职友集等一些企业信息网站的数据,然后通过hadoop进行离线分析,利用elasticsearch索引,期间主要参与了数据的爬取与清洗。 

       在做群控系统的CMS 的时候主要由我和另外两位女生一同负责.波哥(公司负责人)将这个项目直接交给我来负责。当时没有注意站在整个系统的架构上来思考问题,也没有仔细去发觉每个人身上的特点,专心于自己的事情,在他们遇到问题我没有引导他们去思考,而是自己把这个问题diss了。当时自己从学校刚出来,在业务方面不是很强(当然现在对自己也不满意),有一次波哥找我谈话,说我在注重技术的同时也应该多学习业务。没有理解业务需求就开始coding,确实是在写bug。在回学校的公交上想了很久,技术本来就是用来解决问题的,业务与技术两者需要均衡,我们不是做科研开发,需要学习业务.web系统就是业务系统,或许当时对这个还没有那么深刻的体会.如果没有理解业务的需求,怎么做一个令用户满意的产品呢? 波哥一直在强调多站在产品经理的角度上思考问题,我想就是这个原因吧。在学校的时候仔细阅读他们写的代码,逻辑非常缜密。 期间公司有来过几个湖大研究生,与他们交流的过程中发现了自己身上许多的不足之处。虽然他们比我后来几个月,有些功能上的实现确实没有我熟练。但是他们思考问题的方式,思考问题的深度确实让我佩服。上手项目也非常快。后面我仔细分析了一下:基础确实非常重要。 后面利用间隙时间补充了一些基础知识:

     数据结构:

        专科学校没有开过这门课,课堂上老师只是简单的提及过一些.由于当时工作的时间的原因,我就去看JDK的源码,Java集合的实现原理,常见的算法(LRU算法,b位图算法等)并手动实现。

    JVM:

        《深入理解JAVA虚拟机》与《Javase技术规范》啃完了这两本书,啃了34遍。期间手动实现过一个简单的JVM,主要就是分析JAVA字节码的结构.

    操作系统:

        为了更加了解多进程,多线程的原理与常见的几种I/O模型,啃了《深入理解操作系统》几个比较重要的章节.

  设计模式

        看了《敏捷软件开发》,Spring的源码.JDK中的设计模式.自己手动实现了一个具有AOPIOC思想的web框架.

1.png

       学习这些理论的过程确实非常枯燥,但是我感觉这些东西才是计算机的核心,如果只会简单的实现一个功能或者是一个模块.不能站在更高的层次上去思考问题背后的本质.新技术层出不穷。注重基础,站在更大的视角上去思考问题,写一行代码知道它在内存中的运作状态,以及有没有更好的实现方式,变量的命名.抽象类的提取,工具类的封装.数据库的设计也是一种非常重要的能力,数据库设计的好坏将会起到影响数据库性能最关键的

       到了大三上学期,开始准备参加面试。想去看看外面的公司到底是什么情况,同时掂量一下自己。所以就在各大招聘网站海投简历。同时去长沙各大高校参加校招。记得印象最深刻的是在中南大学参加某一家公司的校招,由于学历的限制。第一轮就被Pass掉了,完全没有任何展示自己专业知识的机会,当时确实挺沮丧的。好在自己没有受此多大的影响。有一周同时拿到5家公司的offer,当时确实挺受鼓舞的。在面试过程中找出了自己知识的短板之处,以及企业需要什么样的人才。当时发现自己最大的问题就是在沟通方面存在很大的不足之处。在参加福米科技的面试中,第三轮在与技术总监面试的时候,有个技术点心里明白,但是当时没描述出来,结果可想而知。事后想了想可能自己在该该技术点上可能存在不足,没有更加深层次的去学习,同时自己的表达能力有待提高。

      一个周末在别人的介绍下去贴吧看到琼姐发布的一则招聘启示。说来惭愧,当时女朋友和我的关系很僵,同时母亲在外面摆摊很忙。于是当时毫不犹豫推掉了所有的offer并拒绝了辅导员的邀请。回到一家离自己加比较近的公司实习。后面加了琼姐的QQ,说公司使用的PHP开发。而我当时主要使用的Java语言,但是我想程序猿不应该只局限于那几门编程语言。可能刚开始有点水土不服,但是渐渐的我发现JAVAPHP有很多思想都是互通的,它们两者互相印证他们适合处理什么样的技术场景。  加入了哈希表大家庭。之前身边的朋友都说干我们这行应该去大城市发展,当时确实有一些一些小顾虑吧,怕自己待在三线城市,磨灭了自己的斗志。现在想想多虑了,工作处处留心,我想在哪里都会学到东西. 

1.    一直以来我对自己的基础都不是很满意。所以就很尴尬,自己有项目经验,但是基础不够牢固。纠结于学习新技能,但是又想深挖基础。目前能想到的解决方案是:热爱自己的工作(已做到),同时将工作中用到的知识挖掘的更加深入一些。

2.    工作中使用到的知识不够系统化,只是暂时解决了某一类的问题。所有还是需要系统化的学习,这个时候可以利用下班之余,每天抽出一点时间去学习。之前自学东西总是会一会儿看数据结构,一会儿看操作系统。这样其实是很不好。最后什么都没有学好。后面尝试了一下,专门花几个月主要搞一个技术大点。比如这个季度我专门学习数据库优化方面的知识,下一个月专门学习网络请求相关的知识。

3.    之前在做功能的时候有完美主义情节,导致做一个功能拖欠很久,最终在老板的监督下完成了。虽然完成了,但是影响其他事情的进度,也消耗自己的工作精力。现在做功能前我会先考虑写注释,然后想有哪些解决方案,哪种最优,最后实现。实现之后重构代码。最棘手的事情最先做。

4.    关于公司写博客。写作可以锻炼自己的写作能力,打造自己的个人品牌。通过一篇文章让更多的人了解你。

5.    之前与别人交谈总是插嘴,有时候确实不合时宜。空杯精神,每个人身上都有优点.有善于发现别人优点的心.别人说话不要去插嘴,仔细听取别人的意见.如果过分相信自己的东西,或许别人说啥什么你也听不进了.

6.    不要炫技:如果有个人向你提一些你不熟悉行业的专有名词,是不是一脸懵.有时候我们可能要向别人介绍某个东西,根据对方的知识面与专业领域去向他们介绍,用最浅显易懂的方式去说明它.这也不正好说明你对这个知识的了解程度吗?

7.    单位活动,聚餐。通过团体活动能锻炼大家的沟通能力,狼人杀是一个比较适合锻炼人说话能力的一个游戏,同时也增加大家之间的了解程度。

8.    公司鼓励大家锻炼身体。工作的高效是高效能(结果)加高效率,人的精力有限,通过锻炼能使人精力更加旺盛。

9.    善于总结,之前在公司做一个功能点的时候,由于之前没有接触过这方面的知识,所以搜索了很多资料,最终完成了这个功能。但是只停留在完成工作的层面,下次遇到类似问题变通一下,又得找半天。如果事后总结了相关知识点,做了系统的学习。当然这个时间是工作之余做的。如果后面的遇到类似的问题,我们可以直接上手,时间是不是又节省了许多呢?工作效率是一个慢慢提高的过程,如果知识点容易忘记的话大家可以借助外部工具,我用的是印象笔记。

2.png

10.大脑是单线程的,一个时间点只能处理一件事情把分神的事情交给外部提醒工具 可以选择在某一个时间清空自己的大脑想想自己一天要干嘛,然后将要做的事情记录下来。根据事情的轻重缓急来做。通常我会选择在每天上班之前看看公司邮件与zendhub将自己要做的事情记录到云清单中(手机与电脑可以同步)。

3.png

 

另外工作中可能遇到这样一个问题,工作中被打断。比如PM发现一个新的bug,需要与你沟通。这时你可以将当前的工作进度记录下来。

4.png

最后将PM报的BUG放入时间清单根据任务优先级选择星标。如果完成请及时划去,并记下解决这个问题花费的时间,这样对自己的工作效率心中有数。

希望对大家有帮助,另外如果有任何建议可以评论出来哦。

日记本

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

赞赏支持
被以下专题收入,发现更多相似内容