从零开始——互联网学习路线”。这本书口碑不错,适合初学者,通俗易懂。Linux主要考察常用命令、文件权限、虚拟内存、软硬链接等等。在解释本书应该阅读哪些章节之前,强烈建议读者自行安装一个linux虚拟机。教程找度娘:“ubuntu虚拟机安装”或者“centos虚拟机安装”,搜索上面两个关键词就可以了。建议初学者使用Centos,因为推荐的书是按照centos系统讲解的,所以安装centos可以减少初学者一些不必要的麻烦。在安装linux虚拟机时,您可能会看到解释如何配置虚拟机内存分区等内容的教程。其实默认值就够了。至少,你不应该花太多时间担心分区的数量和大小。网络上有很多安装虚拟机的教程,网络也很简单。安装后,先看书或者先看书的第0、1、2章。至于第三章分区,可以看看,不过安装虚拟机的时候用默认分区配置就好了~。初学者不必纠结于此。
想看这本书可以看:第0、1、2、3章,第5章是最基本的命令,第6章是考察的重点,第7、8、9、10、11章是建议,20.1节可以看,其他没提到的部分可以忽略~

另外,看书的时候最好结合linux虚拟机。看书的时候可以把命令敲在一起,会更深刻,也能直观的看到命令的作用。其实linux系统和windows系统是一样的,不用怕。多使用就好了。开始肯定不是很熟练,不用太担心。主要是多使用,多动手。
计算机:“计算机网络”。最常见的计算机问题:OSI七层模型,各层做什么或者五层协议栈各层做什么,TCP和UDP的区别,拥塞控制和流量控制,TCP三次握手和四波等。对于书籍,博主读的是第六版,所以根据这个版本推荐读哪几章:推荐读前六章。1.7章是重点,剩下的是为了理解和准备知识。随便翻翻,有个了解就好。第二章:建议2.1、2.2、2.4,2.6为补充。第三章:可以跳过前三节和后两节。第4章:看前五小节和第4.7小节。整个第五章都需要看,重点。第六章:从6.1开始,看完6.4.3和6.6,第六章主要讲应用层协议。协议有很多,最好通读一下,了解一下协议的大致功能。
操作系统:博主是通信专业的,所以没有专门看过操作系统的书,他的同学也没有专门看过。当被问到面试的问题时,你可以坦率地说你对操作系统不熟悉。另外,你可以在网上查一下面试经典,操作系统经常问的面试问题,然后找到答案,自己去理解。对于书籍,身边的兄弟同学推荐的是《计算机操作系统深度理解》或者《现代操作系统》,两本都很厚。博主当时看不懂,周围的同学当时也没看过这两本书。主要原因是要学的东西太多,操作系统的书很厚。.....
基于以上两点,博主和身边的朋友并没有专门阅读操作系统相关的书籍。所以,我不能给你太多建议。操作系统重要吗?肯定重要,面试的时候一定要问。你想看吗?听着,不要鼓励博主的这种冒险行为。
02
或者java++
C++和java的选择应该是世纪之争,不在博主的讨论范围之内。以下是博主们关于自己和同学对这个问题的看法:
一个
博主了解了java和C++就业形式:今年C++找工作应该比java好,这也是实验室同学的看法;C++待遇比java好;总的来说,就业上并不是说谁比谁强谁弱,就是两种语言都是求职的主流语言。
2
如何选择?我从我的博友那里学到了一些关于C++的东西:C++学的比java少:C++基础,网络和linux好像差不多;和java: Java基础,linux,网络,SSM等框架,分布式框架和消息中间件。java面试中的Linux和network比C++浅,但是javaEE的那些框架足够你喝几壶了,更不用说了解框架源代码了。此外,你不仅要会使用分布式和面向消息的中间件,更重要的是,你要知道底层的原理:如何实现高可用性,如果消息不丢失,等等。当然,不要被我吓到。不是很难,但是东西很多~
三
java的优势呢?根据以上,java是没用的。关于java有很多东西需要学习,但这也意味着java的选择范围很广。java可以做web后台,客户端,分布式,大数据等。,而且javaEE也应用广泛,各种网站就不用说了。阿里主要是java。C++就业比较“窄”,C++处于底层,所以对操作系统和网络的这些要求更高。底层的就业选择相对狭窄。这里的相对指的是压倒性优势。
四

如何选择?在和C++方向的同学聊天的过程中,我了解到C++的项目基本都来自实验室,网上找的项目很少,主要是不好找...C++做图像和深度学习相关的实验室有很多,他们的项目大多来源于此。就是如果你的实验室没有很好的C++项目背景,建议走java方向,除非你解决C++项目问题。另一方面看java:应该没有几个实验室说是面向java的,但是java自学比较简单。重要的是,如果实验室没有“可用”的项目,选择java的同学可以在网上找。而且网上找Java项目的同学也不在少数,因为网上到处都是javaEE项目。当然,有时候这也带来了选择的问题。但是如果你的实验室有C++相关的项目,那么你可以考虑选择C++。
五
最后,以上都是我身边同学的普遍看法,不一定对。最终还是要选择自己的方向。最好的办法就是和你实验室/周围的兄弟姐妹聊天,向他们学习。这是具有“实验室特色”的职业方向的合理选择。实验室之间差异很大,但是你的师兄师姐对求职的看法,在他们秋招之后,对你有很大的参考价值。我希望你能注意这个建议。无论你选择java还是C++,可以肯定的是它们是主流语言;秋季需求量很大,可以放心。
03
学习目标
做一件事,首先要明白自己的目标,就是要把它做好,最终需要做什么,而不仅仅是求职,因为目标可以给你方向和动力。下面列出的考点都是面试的重点,你会在面试中遇到90%以上的以下问题。不信请邀请评论区明年秋天面对你:
基础篇里说的基础到底包括什么?注:先看看下面就好了。不太正常,但是7月中旬你一定要知道以下几个问题。
一个
使用java语言的基本能力;面向对象的特性;类、接口和抽象类的区别;重载和重写的区别;JDK8的新特性,JDK容器源代码:HashMap,ArrayList,linkedList,AQS,ConcurrentHashMap等。JDK并发包下的源代码;Java虚拟机:内存模型、gc、类加载、异常分类和故障排除;设计模式;排序算法;对象中的方法;如何排除OOM故障;;如何判断无限循环;违反父母授权模式的案例;java反射和CGLIB的原理、异同;阻塞的队列源代码;创建对象的四种方法,等等。
2
多线程:同步特性、易变特性、JMM、countDownLatch和CyclicBarrier中原子操作的异同;螺纹参数和类型;如何让多线程有序运行;消费者等。;创建线程的三种方法:以及进程和线程的区别;看流程之间的沟通方式;能写简单的sock通信代码;IO操作;如何让多线程顺序执行等等。
三
数据库:mysql索引底层实现:B+树;索引失败场景/原因;SQL的优化;SQL注入和其他相关的网络安全问题;主从式MySQL复制;Redis公共数据结构;Redis集群;Redis分布式锁;执着的AOF和RDB;;Redis应用场景,解决了哪些问题,秒杀系统;基本SQL语句、ACID、隔离级别、MVCC、行锁和表锁等。

四
Java:GET和post的区别;请求头;响应头;这个问题和你在大川的项目有关。会话与cookie、SSM框架和spring源代码相关。spring解决了什么问题,IOC,AOP,spring transactions,spring的春豆?SpringMVC生命周期,一个完整的http请求和https访问过程包括哪些过程:加密和解密;Servlet生命周期。如何考虑项目中的分布式问题?
五
Linux:虚拟内存,检查一个进程使用的内存,cpu,找一个文件,找一个大文件中关键字的位置;检查磁盘使用情况;users 空和kernel 空的区别;常见的linux命令;Chmod,ps,top,grep,linux软硬链接,权限等。另外,有些公司还会问:select,poll,epoll的异同。
六
系统设计:给定一个现实场景,让你完成对应系统的设计。keep:如何实现360的开机时间、:实现QQ通信,问的很细,包括协议;度小满:秒杀系统设计。后面会有


