人生的感悟会有很多吗?并不会。

从第一次的强烈感触,到习以为常越来越淡,能够被具象化的部分,就那么多。

问题的难易取决于看待问题的角度。

编程 2

看似简单的东西,离简单挺远的。

对于学习编程的难度,我想从理解难度和实现难度这两个方面来划分。

越接近底层的语言,理解难度越低,更贴近物理模型,不确定性更多。就像是对于C 而言的指针,到了汇编层面只有间接寻址,对于C而言,for,while,goto, 到了汇编层面只有jmp。

而高级语言则是实现难度越低。比如对于不同的CPU指令集可能是不同的,但是可以用同一套API去实现,至于内部的实现逻辑,在追求功能实现的角度而言,则是并不需要,即不需要明白这些结构是怎么实现的,只需要知道这么做能够实现。

补充:因为两个方向完全相反,所以理论上可以说他们都很简单,也可以说他们都很复杂,可以根据现实需要,制定其难易程度。

越是底层,实现复杂的逻辑,越繁琐,但是因为这个领域也经历过非常长时间的发展,C++ 也有许多底层库,有的是功能库,像是ffmpeg, 也有一些模仿上层语言设计出的例如QT。

从某种意义上说,编程只是一种堆叠的游戏,先后顺序,输入输出,指针在不同的模块之间流转、切换。


C# 因为对于其等级的划分是我自行划分的,我简单的描述一下,我划分的依据。

初级-可以根据搜索引擎实实现特定业务,(我不懂,但我可以做)

中级-了解相关的API,可以根据API在搜索引擎的辅助下实现特定业务。(我知道用这个可以实现)

高级-懂得一些底层逻辑,比如指针的流转。开始关注一些抽象层的部分,不在拘泥于业务。(实现这个话,应该这样做就可以了)


因为编程技巧和功底其实是一个整体,但从某一个语言,某个架构来看,其实挺Low的,就像是对于编程,我感觉现在好像才真正的入门。

但是好像,这种入门的感觉,我体验过很多次了。从爬下来教务系统的一些数据,到后来重构一个C#的项目,到后来对于XML的深入理解,到现在对于指针的理解。


大致概括一下,我对于编程的入门之后的逻辑路线图,Python - C# - C++ -(java/go/sql/lua....)

没什么依据,就是简单的认为,如果想要变得更强,基础必须要扎实,C++ 算是溯源的一步,懂了C++ 之后,才能够理解,为什么C#、JAVA会存在,而他们又是怎么样去实现他们认为的C++做的不够好的地方,封锁了哪些“危险”的操作。

特殊分工存在的必要性等,以及之后自己能做什么,要做什么。