程序员练级攻略:编程语言
0x1 前言
编程语言
JAVA > C\C++ > Go:Go 语言、Docker 和新技术html
理论学科
程序员的荒谬之言仍是至理名言?java
系统知识
系统知识是理论知识的工程实践,这里面有不少不少的细节。好比像 Unix/Linux、TCP/IP、C10K 挑战等这样专业的系统知识。这些知识是你能不能把理论应用到实际项目当中,能不能搞定实际问题的重要知识。git
0x2 Java
入门级的书:
进阶级别:
- 如何编写高效的代码《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 多页,认为其中最不错的是在分析原理,不足之处就是内容太多了,因此致使很厚,但这并不影响它是一本不错的工具书。
面向对象的设计模式程序员
遵照两个原则:github
- Program to an ‘interface’, not an 'implementation’
- 使用者不须要知道数据类型、结构、算法的细节。
- 使用者不须要知道实现细节,只须要知道提供的接口。
- 利于抽象、封装,动态绑定,多态。符合面向对象的特质和理念。
- Favor ‘object composition’ over 'class inheritance’
- 继承须要给子类暴露一些父类的设计和实现细节。
- 父类实现的改变会形成子类也须要改变。
- 咱们觉得继承主要是为了代码重用,但实际上在子类中须要从新实现不少父类的方法。
- 继承更多的应该是为了多态。
0x3 C/C++
要了解C语言中的坑golang
C++ 是目前世界上范式最多的语言了,其作得最好的范式就是 " 泛型编程 ",这在静态语言中,是绝对地划时代的一个事。算法
0x4 GO
C 语言太原始了,C++ 太复杂了,Go 语言是不二之选。有了 C/C++ 的功底,学习 Go 语言很是简单。shell