程序员自我修养之效率与原理抉择

一 追求效率
    第一份码农是在一家传统的通讯it公司,虽然是一家股份制公司,但是我所在的地方,福州只是个小分部,而且我所在的小组只有寥寥几人,一只手即可数的过来,除非是有新项目,才有从其他产品线调人过来。所以我呢,需求,测试,运维,维护和开发都有涉及,开发有涉及后台和前台,前台包括web和app.五线程工作的我,十分注重效率,因为白天要维护微信群、QQ群、邮件和地市的电话,还要和客户谈需求,只有晚上和白天间隙才能做开发工作,况且需求接连不断,无论怎么做都做不完。任务繁重,那一年多10点下班是常有的事,奋命工作的我终于得到领导的认可,夸赞我的工作效率高。
为啥效率高呢,类似的功能就是复制过来,修修改改,功能完成就行,比如App接口,照着一个格式,修改出入参就行。对于底层原理从来不关注,因为我觉得工作是结果导向,只要出结果就行,不管你过程。可是单纯的追求效率是正确的吗?
 

二 追求原理
    从效率转向对底层原理关注,主要有两个原因。第一个是找第二份工作的过程,前后陆陆续续面试了十几家公司,由于之前的工作主要是当业务程序员,而且使用的是公司自己封装的框架,而面试的主要内容就是ssh等主流框架、多线程、设计模式、hashmap以及微服务等几乎答不上来,深受打击。这也让我思考我之前的工作模式是否正确,效率是否是第一位。第二个是学大数据的过程,最直接的是那些算法听不懂,其次是使用python是做的一些数据处理,因为数据处理都有涉及到一些数据结构的内容。这两个原因让我想到十分恐怖的一句话,所谓的十年经验就是将一年经验重复使用十年。对于就算资深的业务程序员,只会增删改查,35岁后如果再找工作是十分困难痛苦的,因为你的年龄上去了,而能力却没有上去。招式牛逼只能领先一阵,内容厉害才能大幅领先对手。程序员的内功就是数据结构和算法,虽然很多程序员在日常工作中用不上数据结构和算法,但是如果你在一家成熟的公司,或者BAT这样的大公司,面对的是千万级别或者亿级别的用户,开发的是TB、PB级别数据的处理系统。性能开发几乎是开发工程中时刻要考虑的问题。一个简单的Arraylist、LinkList的选择问题,就可能产生成千上万倍的性能差别。这个时候,数据结构和算法的意思就会完全凸显出来。

三 总结
    愈发觉得自己的基础不够牢固,就算建再高的楼,都随时有倒塌的风险,基础才是能决定我上限的根本,仅以此篇勉励自己,学好数据结构与算法。以下几点是以后在工作中需要注意的点。

 1),适当放缓需求进度,在不影响整体需求的情况下,多加注意平常代码的执行效率,只是完成功能那是远远不够的。

  2),每一周都要总结,每周末要对之前作的功能模块进行评估,看看是否有能改进的地方。

  3),将《数据结构和算法之美》课程吃透,打扰地基 。

 

阅读更多

没有更多推荐了,返回首页