1.多练习,代码是手艺
2.初级工程师会记忆很多很多非常精确绝不能错的细节,并以记忆从不出错为傲。中级工程师知道很多指导性极强的设计原则/思想方法/推理规则,借助这些规则他就能推理出无穷无尽的细节——你觉得他是随便说说,但他的话却总是比初级工程师背下来东西更精确、更贴合实际。高级工程师只知道很少几条一般性原则,这些原则模棱两可、让人摸不着头脑;但他却总可以随心所欲的选择要不要用这些原则、用上几条、各占几分。中级工程师记忆的原则/方法/规则、初级工程师记忆的海量条条框框,全都是高级工程师借助这些模糊的一般性原则推理/制造出来的。把海量细节收束到少量极强指导性的方法/规则、把少量极强指导性的方法/规则收束到寥寥几条提纲挈领的“思路”,这才是真正的“基础”,才是学习中真正的难点所在。
3.关于计算机专业知识
1.数据结构与算法
2.计算机操作系统:文件管理,处理器管理,存储管理,设备管理,并发设计
3.计算机网络:
4.数据库系统:MySQL+SQL+安全管理)
5.计算机组成原理:硬件系统,由CPU(控制器与运算器,输入输出系统,存储器组成
存储有关计算机原理及数据库系统,计算有关数据结构与算法,传输有关计算机网络。构成不可能三角。
计算机组成原理是上述的物理实现,或者说上述是对物理计算机的模拟。
4.编程的本质是通过数据与方法对现实建模,难点就在于通过几行代码,把具体的现实世界抽象到数学中。
5.编程的难度就在于编程没有模糊,你必须十分清晰整个流程,想象一下你教一个只会0和1的"弱智"教数学,虽然这个"弱智"计算能力非常强,但是你有一点模糊,他就不会了,0和1的世界骗不了人。
6.商业成功和科学成功是两回事,可能一个语言非常好,但是对不起,它出现的太晚了,如果学习的成本高于收益,它永远不会流行,除非有一天一个万亿级领域只能够由这一种语言才能够开发。
7.无论学习什么技术都好,在学习该项技术的细节之前都得知道:这项技术是什么,为什么我要学习这项技术,学习了这项技术有什么好处。
8.什么是基础好,就是能够运用已有知识理解所谓的新知识,或者说能够把所谓的复杂系统还原成已知的基本原理。
9.理论知识:还原论,系统论,控制论(爆炸图与整体图)
10.寻找根源,隔离问题,混沌才是常态
11.一开始就对,否则随着时间链延长为了弥补错误所造成的损失越大。
12.懒加载思想:不需要的就不要去使用,避免效率降低,浪费内存。
13.随着数据量增加,技术会发生极大的改变,需要越来越多的组件去完成crud。或者说后端许多技术就是为了crud的更好.
13.不要重复造轮子,语言只是很小的一部分,库,开源社区等等语言之外的东西构成了广义上的语言。