开发者的思维

前言

之前我们提及过,一名计算机学生应有的必修课

其中提及到了: 努力、视野、职业规划

但这远远不够,怎么去努力?所谓的计算机思维是什么? 这是今天我们要说的主题。



如何学习

对于编程学习者,我决定最应该普及的,不是什么理论知识,而是思维的蜕变,这个至关重要。昨晚听了一个知乎大佬的live之后,我收益匪浅,决定将一些心得写下来。

那么对于思维的转变是这样的:不要把自己当学生,而是要把自己当开发者。

学生们刚从高中的学习进入到大学,潜意识的沿用了高中的学习方法,这很不利于计算机的学习

如果你懂计算机思维的话,就知道抱着书照啃是多么糟糕的一种事情,有些同学,就想着一本书从头到尾理解透彻,其实计算机的理论知识的递归性的东西,而不是线性的。高中的知识,学校已经为我们安排好了每一章,每一个知识点。而对于计算机,没有一种固定的学习路线,导致了学生们前期迷茫的感觉。


记笔记

笔记的重要性不言而喻,当你学完一定的知识点之后,大部分所内化的东西就是你的笔记内容。但是,记笔记也是有方法可循的,不是我夸大,大部分人连技术型笔记都不会写。

我赞成使用电脑记笔记,因为纸质版并不方便,还有一点就是:你确定你记在书上的东西,会再去翻吗


下图是我记笔记的方式


大脑是有遗忘机制的,如果想着把所有东西都弄懂并完整的记下来,几乎是不可能的。

那么这时候,笔记就成了你的第三方库,你随时可以上面查阅你已经弄懂的内容,开发者的工作并不是考试,你完全可以利用网上的资源,只要你找得到

当你学习一个东西的时候, 如果学完马上用语言讲给别人听, 你会学的更好, 而且会发现新问题,还有没发现过的知识点。

费曼学习理论都指出, 知识的学习, 输入固然重要, 输出更为重要.

几乎所有优秀的程序员, 都有攥写技术文章的习惯, 很多时候, 并不是他们什么都懂, 而是他们刚学会了什么, 然后就围绕着这个刚学会的东西, 用自己的语言讲出来, 久而久之, 就会被别人觉得是大牛, 但是他和你的区别, 有可能仅仅是是否输出的区别.

我们可以在笔记上写平时学习的东西,然后再使用博客之类的东西,将笔记的内容用自己的话写出来,这样一来,就是输入以及输出了

1
除了会记笔记之外,思维层面的东西,更为重要


开发者思维

开发者思维是计算机思维典型的一种。

开发者思维是指, 从学习编程第一天起, 你的目标, 你所做的事, 永远不是以要学会XX为目标, 而是以开发出XX为目标, 深刻意识到你学习的一切, 最终是为了你的开发而服务的。

具有开发者思维的人,会这么学习: 先确定好要学习的理论知识,比如python,然后大体了解一下python语言在哪些领域比较强势,在网上搜索一番之后,他会下定一个我要做出 xx 的项目这样的目标。

目的性很强的人,学习能力往往也很强。

与开发者思维相反的是:学生思维


学生思维

读教材, 听课, 记笔记, 追求把这个语言的每个知识点都记得很清楚, 追求一种”内功”的修炼, 在这个过程中, 从来不想着用它去”创造”什么,比如在学习的第一天起,给自己定下的目标是这样的:

“我这个学期一定要把这个语言的基础打牢,并且为以后的学习提供更坚实的基础.”

NO!!! 这就是为什么很多学生虽然在校学习成绩很好,但毕业后找不到工作的根本原因。

拥有学生思维,总是会陷入焦虑:“我下一阶段应该学什么、学的东西以后忘掉了怎么办、学这些东西有用吗?”等等这些思想,然后学习曲线非常平缓,甚至待在舒适区久了,你就无法跨越自己了。


这两种思维所导致的结果往往是, 后者无论是知识熟练度还是实用性都会超过前者, 而且整个学习过程会有源源不断地动力。

如果你具备开发者精神, 你开发出的东西, 你做出的产品, 它就是永久存在在这个世界上的, 你的成就感来源于真实的, 具体的, 可持久延续的项目中, 而不是来源于”我学会了什么”.

一切不谈成就感, 不谈反馈的学习, 都是空谈。



一份优秀的简历

当你面聘工作时,好的简历上面写着的,应该是 “用xxx语言开发出xxx的项目”,而不是苍白的“精通xx语言”

如果你有记博客的习惯,当你面聘时,拿给考官一个博客 或 github 链接,一目了然。

这就是开发者思维带来的,最直接的影响。



写在最后

以上就是我的一些心得体会,在以后的日子里,望君共勉!

这是最好的时代,这是最坏的时代,我们一无所有,我们巍然矗立