当今这个时代,没有网络简直无法生存,哪怕是在电梯里的一分钟,我都受不了那种手机没有网络的状态。我们所学的编程知识,如果脱离了网络,将变得毫无意义,因为没有哪个编程语言是要在单机环境下运行的。
计算机网络这门课实在是太重要,几乎是面试必问的内容,什么 TCP/IP 三次握手,四次挥手,TCP 和 UDP 的区别,HTTP 协议等等。
一开始学 Java 的话,可能会觉得计算机网络没什么用武之地,等到你开始接触 Tomcat,接触 Nginx,接触网络编程,比如 BIO 和 NIO,以及网络编程框架 Netty,你就会感慨,要是劳资当初把计算机网络这块的知识打牢该多好呀。
入门书有《图解 HTTP》、《图解 TCP/IP》、《网络是怎样链接的》,再深入的话推荐《计算机网络:自顶向下》。
五、操作系统
为什么要学习操作系统呢?
第一,面试要考;
第二,无论学习哪门子编程语言,比如说 Java、C/C++,都需要和操作系统打交道,像 Java 中的多线程技术,其实是由操作系统来负责进程和线程管理的;
第三,学习操作系统,还能学到内存分配方面的知识。
可以先看一看《现代操作系统》,知道 OS 的大概;然后再看《操作系统—精髓与设计原理》、《Linux内核设计与实现》,达到这样一个水平:
-
知晓 OS 的四大模块:进程和线程、内存管理、IO 和文件系统、设备管理
-
了解 Linux 内核的部分实现,比如说虚拟文件系统。
-
了解操作系统由哪些构成
-
进程间的通信方式
-
互斥与同步
-
为什么需要虚拟内存
-
文件系统是如何组织的
- 等等
Linux 的话,推荐《鸟哥的 Linux 私房菜》。
六、数据库
学习一门编程语言,如果不去操作下数据,就感觉这门编程语言空有皮囊却没有灵魂,对吧?要想学好数据,首先要学习一下 SQL,推荐《SQL 必知必会》,然后是 MySQL,推荐《高性能 MySQL》。
再拓展的话,还有 Redis,互联网技术领域中使用最广泛的存储中间件,推荐《Redis 深度历险:核心原理与应用实战》。
还有 MongoDB,非关系型数据库,推荐《MongoDB权威指南》。
七、设计模式
我认为设计模式是初中级程序员迈向高级程序员的必经之路。有不少程序员,前期冲劲十足,但后继乏力,都是吃了设计模式的亏。在工作的前几年,大部分程序员都处于熟悉编程语言的阶段,也就是处于“技”的阶段,随后就要进入“术”的阶段了。在编程领域,“术”的典型代表就是“设计模式”。
大家都听说过,学习设计模式非常的重要,那么为什么这么重要呢,设计模式到底是什么?打个比喻学编程就像学武功一样。
武功要练得很牛逼,有两样东西不能丢。第一,是内功;第二,是武功秘籍。内功对应到编程就是我们编程基础能力,那编程的设计模式就可以想象成武术中的武功秘籍。
推荐《设计模式之禅》,我认为是设计模式领域 3 本经典著作之一,也是我们国内程序员写的一本书,趣味化十足,读起来也非常容易理解。
往期精彩内容:
转载自:https://blog.csdn.net/qing/_gee/article/details/115282904
最后分享一波我的面试宝典——一线互联网大厂Java核心面试题库
以下是我个人的一些做法,希望可以给各位提供一些帮助:
点击《一线互联网大厂Java核心面试题库》即可免费领取,整理了很长一段时间,拿来复习面试刷题非常合适,其中包括了Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等,且还会持续的更新…可star一下!
283页的Java进阶核心pdf文档
Java部分:Java基础,集合,并发,多线程,JVM,设计模式
数据结构算法:Java算法,数据结构
开源框架部分:Spring,MyBatis,MVC,netty,tomcat
分布式部分:架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等
微服务部分:SpringBoot,SpringCloud,Dubbo,Docker
还有源码相关的阅读学习
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/122456.html