极客时间-左耳听风-程序员攻略-编程语言

程序员练级攻略:编程语言

0x1 前言

编程语言

JAVA > C\C++ > Go:Go 语言、Docker 和新技术

理论学科

程序员的荒谬之言还是至理名言?

系统知识

系统知识是理论知识的工程实践,这里面有很多很多的细节。比如像 Unix/Linux、TCP/IP、C10K 挑战等这样专业的系统知识。这些知识是你能不能把理论应用到实际项目当中,能不能搞定实际问题的重要知识。

0x2 Java

入门级的书:

  • Java 核心技术:卷 1 基础知识》,这本书本来是 Sun 公司的官方用书,是一本 Java 的入门参考书。
  • 有了上述的入门后,Java 的 Spring 框架是你玩 Java 所无法回避的东西,所以接下来是两本 Spring 相关的书,《Spring 实战》和《Spring Boot 实战》。前者是传统的 Spring,后者是新式的微服务的 Spring。如果你只想看一本的话,那么就看后者吧。

进阶级别:

  • 如何编写高效的代码《Effective Java》(注意,这里我给的引用是第三版的,也是 2017 年末出版的书)Effective 这种书基本上都是各种经验之谈。
  • Google Guava 库 ,这个库不但是 JDK 的升级库,其中有如:集合(collections)、缓存(caching)、原生类型支持(primitives support)、并发库(concurrency libraries)、通用注解(common annotations)、字符串处理(string processing)、I/O 等库,其还是 Effective Java 这本书中的那些经验的实践代表。
  • Java 并发编程实战》,是一本完美的 Java 并发参考手册。
  • 如何优化 Java 的性能,《Java 性能权威指南》。
  • 底层细节《深入理解 Java 虚拟机》。
  • Java 编程思想》,真是一本透着编程思想的书。上面的书让你从微观角度了解 Java,而这本书则可以让你从一个宏观角度了解 Java。这本书和 Java 核心技术的厚度差不多,但这本书的信息密度比较大。所以,读起来是非常耗大脑的,因为它会让你不断地思考。对于想学好 Java 的程序员来说,这是一本必读的书。
  • 精通 Spring 4.x》,一共有 800 多页,认为其中最不错的是在分析原理,不足之处就是内容太多了,所以导致很厚,但这并不影响它是一本不错的工具书。

面向对象的设计模式

遵守两个原则:

  • Program to an ‘interface’, not an 'implementation’
    • 使用者不需要知道数据类型、结构、算法的细节。
    • 使用者不需要知道实现细节,只需要知道提供的接口。
    • 利于抽象、封装,动态绑定,多态。符合面向对象的特质和理念。
  • Favor ‘object composition’ over 'class inheritance’
    • 继承需要给子类暴露一些父类的设计和实现细节。
    • 父类实现的改变会造成子类也需要改变。
    • 我们以为继承主要是为了代码重用,但实际上在子类中需要重新实现很多父类的方法。
    • 继承更多的应该是为了多态。

0x3 C/C++

要了解C语言中的坑

C++ 是目前世界上范式最多的语言了,其做得最好的范式就是 " 泛型编程 ",这在静态语言中,是绝对地划时代的一个事。

0x4 GO

C 语言太原始了,C++ 太复杂了,Go 语言是不二之选。有了 C/C++ 的功底,学习 Go 语言非常简单。

posted @ 2019-03-24 17:33  17bdw  阅读(2330)  评论(0编辑  收藏  举报