一位非科班出身的渣渣程序员的笔记
个人建议:
刚从培训班出来或者是刚刚看完视频自学出来的同学:
1.其实刚出来的时候,你可能会写一些简单的接口了已经,但是数据库理解的肯定不是很深,所以个人建议 刚出来的时候好好学一下mysql,然后学学表之间的关系,其实一些查询sql更加需要注意,然后一些比较高级 的什么索引之类的,或者触发器,存储过程这些东西都可以以后在说
2.学习深入理解java虚拟机(在这个过程中好好理解一些cpu-寄存器-内存-以及硬盘)这些调用之间的关系, 如果公司不忙的话,可以在看看MMU和DMA以及LINUX系统的体系架构,看看IO栈,了解一下用户态和内核态 当然个人觉着阿里的码处高效也是相当不错,可以配合深入理解java虚拟机一起来看,效果会更好的
3.搞完虚拟机,你就会对类的加载,以及类在内存中的一些分布,然后个人觉着可以多理解一下业务需求了, 然后看看设计模式(个人推荐清华大学出版社的那本设计模式通俗易懂,而且觉着看完之后能用的地方比较多) 比如桥接模式,组合模式,简单工厂,以及工厂方法模式,模板方法以及策略和状态都感觉实用性比较高
4.其实这个时候你已经差不多了蛮牛逼了,然后个人建议拔高自己的话,学一下数据结构和算法(时间复杂度和 空间复杂度),然后常用的排序算法,归并排序,快排..
5.数据结构和算法搞完之后,可以学一下一次http请求从客户端到服务器,从客户端的用户态数据到内核态数据的复制, 到达服务器之后,tcp的三次握手,以及半连接队列和全连接队列,然后再从队列拿出数据从内核态到用户态的也就是 当前jvm所处进程的数据,然后能够理解到每个接口都是一层一层栈帧调用,是一个java方法栈...
6.个人感觉后面还可以在从后到前在实践一下,然后反复推理...就这样..我自己也是在慢慢摸索..