专栏名称: java一日一条
主要是讲解编程语言java,并且每天都推送一条关于java编程语言的信息
目录
相关文章推荐
芋道源码  ·  项目终于用上了 Spring 状态机,太优雅了! ·  2 小时前  
ImportNew  ·  被微软裁员后,3 人自杀! ·  2 天前  
芋道源码  ·  很严重了,大家极限搞钱吧 ·  昨天  
芋道源码  ·  告警:MyBatis-Plus中慎用@Tra ... ·  2 天前  
51好读  ›  专栏  ›  java一日一条

​【文末送书】Google工程师:如何看待程序员普遍缺乏数据结构和算法知识

java一日一条  · 公众号  · Java  · 2018-09-18 08:20

正文

请到「今天看啥」查看全文


业务开发工程师,你真的愿意做一辈子CRUD boy吗?

如果你是一名业务开发工程师,你可能要说,我整天就是做数据库CRUD(增删改查),哪里用得到数据结构和算法啊?


是的,对于大部分业务开发来说,我们平时可能更多的是利用已经封装好的现成的接口、类库来堆砌、翻译业务逻辑,很少需要自己实现数据结构和算法。但是, 不需要自己实现,并不代表什么都不需要了解。


如果不知道这些类库背后的原理,不懂得时间、空间复杂度分析,你如何能用好、用对它们?存储某个业务数据的时候,你如何知道应该用ArrayList,还是LinkedList呢?调用了某个函数之后,你又该如何评估代码的性能和资源的消耗?

基础架构研发工程师,写出达到开源水平的框架才是你的目标!

现在互联网上的技术文章、架构分享、开源项目满天飞,照猫画虎做一套基础框架并不难。 高手之间的竞争反而在细节。 这些细节就包括,你用的算法是不是够优化,数据存取的效率是不是够高,内存是不是够节省等等,这些累积起来,就决定了一个框架是不是优秀。

对编程还有追求?不想被社会淘汰?就不要只是能写出凑合能用的代码!

为什么说初级程序员才比招式,高级程序员只看内功呢?


何为编程能力强?是代码的可读性好、健壮?还是扩展性好?我觉得没法列,也列不全。但是,

如果你在一个成熟的公司,或者像BAT这样的大公司,面对的是千万级甚至亿级的用户,开发的是TB、PB级别数据的处理系统。性能几乎是开发过程中时刻都要考虑的问题。


一个简单的ArrayList、Linked List的选择问题,就可能会产生成千上万倍的性能差别。这个时候,数据结构和算法的意义就完全凸显出来了。 一旦掌握数据结构和算法,你就会常常被它的强大威力所折服。 之前你可能需要费很大劲来优化的代码,需要花很多心思设计的架构,现在很容易就可以解决了。







请到「今天看啥」查看全文