技术路线、学习计划

写在最前面

总是这样,一次次的开始制定学习计划,又一次次舍弃心中的激情,放纵放弃自己,随波逐流,苟延残喘,对!对于一个对自己期望很高的人来讲,现在或者以往大多数的经历,用苟延残喘来形容,完全不为过;新一次的开始,应该以新的flag来激励自己,eg.不再说狠话,保持学习认知的状态就行;下面就直接去写写今年去面试和面试别人,这个过程中对技术路线的一些想法,以此作为下个阶段的学习方向。

打个kb的图,勉励!
技术路线、学习计划

一、计算机基础

1.操作系统

一直觉得自己对操作系统比较熟悉,进程、线程、物理内存、虚拟内存、文件系统、设备驱动、设备句柄、环境变量…
面试一轮后,只遇到一个“老人”具体问了操作系统的相关知识,其实很多人都是对操作系统的知识比较含糊,可能还没我知道的多,所以很少问的很细的,但是这“老人”问题都很关键,进程和线程,驱动,物理地址和逻辑地址的概念,*(int *)(0) 表示什么意思,如果这样执行得到的是什么结果,或者 *(int *)(1000)呢,又是什么结果,物理内存、运行内存、虚拟内存的概念,cashe知道吗,从软件、硬件上讲一讲;面试的东西不难,但是你平常不积累概念的东西,回答的效果不会太好,(面试应聘就应该拿出你最好的状态,巩固你知道的知识,完整的讲出来,附加自己的思想更好,这样的过程才能帮助你更好的拿到这份工作,而并不是去撞大运碰运气,问到的问题,都是你熟悉的问题,其实你自己面试自己都过不了,手动滑稽);自己没有针对的复习,经过几周的面试,得到的offer也只是需要实干派的,应用知识较多的岗位;综合素质要求较强的岗位,基本没有希望,所有这里不得不提的操作系统的知识,任何一个编码工作者,操作系统的知识都是应该十分熟悉。

先贴个图,学习方式主要是看书和免费网课;
技术路线、学习计划

2.编译原理

编译原理是计算机学科中最难的学科之一了,学好编译原理,吹牛的技术都上升一个档次,你面试中自信的说,编译原理比较了解,面试官可能都不敢问你具体的问题,只能问问你无关紧要的一些事,因为这些问题不是随随便便一个技术面试都搞得懂的;我自己因为项目写过有限状态机,算编译原理中的一个作业;对于解决疑难问题来讲,这些知识会给你更多的思路。

我自己觉得自己是很多概念和数字知识都需要补,编译原理正好是个硬骨头,啃一啃吧,适时装个逼撒的。

3.windows内核

本人大学学的linux,工作后转了windows;刚才说到操作系统,内核的知识和操作系统是分不开的,学习内核,不少时候时候

4.汇编

学习内核的必要知识,大学时搞单片机,微机原理课时,为了做作业,做东西,汇编看了一些,课本知识知道个60%,进入工作后,除了_asm,其他详细知识也都忘完了;

5.计算机组成原理

组成原理是我觉得最难掌握的,很多知识可能单独立一个模块学习更好,贴了个图。
技术路线、学习计划

二、计算机语言

1.C++

本人就是从事C++开发工作的,大学也主要是C,说几个需要注意的知识点,C++11的知识点,的确面试问的很多,我说一个17的特性,面试官也不知道,以为是以前出的…归根结底11是个坎,move、右值、lamdba,…总之,熟练运用11大部分知识,让你成功一大半,我后续要整理一个单独的模块,写11的知识,和自己运用的示例,巩固学习。

2.lua

主要是写dota2地图要这个,写个地图玩玩是我的愿望,但是平时基本没有这么一个较好的时间长度,来做这个事,先学基础语法,然后写地图过程中,熟悉。

3.python

应用太广泛了,反正简单,又是一项技能。

4.JAVA

想学点基本技术,和网络框架,了解其中的思想。

5.C#

工作中有可能会用到。

三、其他

1.数据库

mysql,

2.设计模式

最初想法,学JAVA和C#时,用JAVA写设计模式的典型示例,感觉工作量也不大,的确也是个装逼的点。

暂语

先写个思路,中午了,有点热,晚上把****的学习类别建好,学习方式和计划安排再补充上。

ps.一直在看《良许Linux》的文章,思维导图的图片都是源自其文章,如有不妥,必改正。