三年代码生活总结
0.前言
七月过去就算正式毕业三年零一个月了,从毕业到现在,写了三年代码,走了不少弯路,今天就是写个非正式的总结吧。
1.大学
我在上大学的初期其实对代码没什么兴趣,我也不知道自己将来要干点什么(可能这是大部分大学生的写照),这种状态其实非常不好,我们在高中时盼望自由,在得到自由时才发现无所事事才是最大的地狱。所以我尽可能让自己稍稍有些与众不同,我决定锻炼,减掉那一身肥肉,效果很好,一年瘦了40斤,以至于回家后我妈以为我吸毒了;我去泡妞,后来这个妞就成了我老婆;去考各种证,什么计算机二三四级,英语4、6级,我想过考研,想过跨专业考研,(因为那阵对中医还挺感兴趣);想过去搞金融,还去考了一个会计证,这个过程,我度过了大学三年,但是我依然迷茫,我不知道我想干什么,将来要去干什么。直到大三下学期还是大四上学期,记不清了,开了一门android课,然后我找到了自己真正的兴趣。
我在大学毕业的时候有段反思,如果知道当初要干这一行,我就应该将更多的经历放在设计模式,算法和数据结构上,这样也不至于在刚进行工作的时候那么狼狈。很多时候人是迷茫的,你不知道自己真正想要的是什么,你的兴趣是什么,很多人穷其一生都在做自己不感兴趣的事,走着别人设计的道路,这是一种对精神的损耗和折磨。越早试错,越早找到自己的兴趣点,对一个人的发展越有利,所以现在有些理解为什么家长会为孩子报那么多兴趣班了。
2.工作
今年2月份我离开了第一家公司,我对第一家公司一直心怀感激,不仅公司同事都人很好,而且我得到了很多帮助,尤其是在如何写代码上。刚入职的时候我发现我就是个菜鸡,因为大学的时候虽然对android感兴趣,但是也没怎么正经写过项目,对java也不是那么了解,什么泛型啊,什么正则啊,全不了解,可以说刚开始工作的时候是横拢地拉车,一步一个坎。好在当时组长和经理耐心,没有开了我。但是面子是别人给的,脸是自己丢的,领导已经给了面子,那就不能不要脸,知道不足就要努力,然后就是对基础的恶补,一本java编程思想,翻来覆去4、5遍,android开发艺术探索,翻来覆去4、5遍,学习加项目实践,慢慢的也算知道怎么写了。
这期间有两件事对我影响很大,一是当时去解析一个非常复杂的json数据,经理写了ios端代码,然后带着我仿写android端代码,我记得当时问了一个比较二逼的问题,为什么要用递归,怎么想到用递归的,经理笑笑没说什么,这件事我看到了我在算法和具象化思维上的不足。二是初次做一个购买流程,因为涉及到任务绑定和权限认证等一些列问题,比较繁琐,然后我这里来来回回改,害的经理陪我加班,当时经理说,逻辑想清楚你再写,就会很简单。其实写代码,大部分人没想好怎么写就开始动手了,导致写的过程中就会丢三落四,磕磕碰碰,如果整个编码过程占十成,那么思考可以占到四成,想好再写,这是我现在的行为准则。
还有一个重要的问题就是什么的代码才是好代码,我记得雷军说他在大学时写的代码第二年就被选入教程了,老师说他写的代码像诗一样。一开始觉得他在吹牛逼,随着工作时间的加长,源码阅读的越来越多,发现以前的自己就是井底之蛙,好的代码不仅命名规范,方法简明,而且设计合理,我也意识到设计模式是多么的重要。
3.面试
关于面试,我觉得美团的面试题是最好的,从设计模式,算法,到android原理,项目经验,一环套一环,很能体现一个面试者的基本素养,传说中的手写算法确实是地狱,一个面试官问两道,当时第三面的时候就是因为有道算法题没答上被pass了。。。
4.总结
做个小总结吧:
4.1
找到自己的兴趣点,干自己喜欢的事,不然人生很长,会很累。
4.2
设计模式和算法,每天都要学,每天都要练,老一代程序员说的程序=设计模式+算法+数据结构,诚不欺我。
4.3
没事多读读源码,拆拆轮子,你会有所裨益。
4.4
计算法的方向太多了,找准一个主要方向,当深度足够深的时候,再去发展其他方向,不然什么都想学,最后反而什么都得不到,而且当某一方面深度足够时,你会发现在其他方面是相通的。
4.5
写代码,想比动手更重要,画个UML图,虽然有些小麻烦,但是须知磨刀不误砍柴工。
4.6
这个世界牛逼人很多,不要急着去否认别人的想法,两种对比,找出最好的,程序员要兼容并包兼收并蓄,对新技术也要勇于尝试。
qrcode_for_gh_075c7cccc4a0_344.jpg关注我的公众号