原标题:零基础如何自学编程?

对于所有编程学习者,尤其是零基础的同学们,在学习的初期,一定要给自己做一个思想上的转在我的编程学习理论中,这个思想的转变至关重要,什么时候你把这个思维转换过来了,你就是真正上道的那一天。

这个思维转换就是:不要把自己当学生,而是要把自己当开发者。

不同的身份认同感,最后会导致不同的行为模式,而这行为模式,会对你的编程学习造成非常大的影响。

区别一:记笔记VS写技术文章

学生有一个特点,就是他们喜欢记笔记,但是开发者不怎么记笔记,而是会把自己学会的东西写成技术文章、教程的形式发表在技术博客或者知乎等网站上。

一个很有名的学习法叫做费曼学习法,这个学习方法简单地说,就是在学完一个东西之后,去给别人讲明白,注意,是讲给别人听,当你写成文章发表在网上的时候,你自然会去用更通俗的语言,更清晰的逻辑去讲述这个事物背后的逻辑,这个过程,是对自己学习的一个检验,也是加深映像,整理思路的重要过程。

那么如果你是去记笔记的话,很有可能,你不会去试图讲清楚这个东西,而是倾向于去照抄,或是不完全照抄,以“提纲”或是“知识点”的形式抄在本子上,说句实话,照抄的笔记,真的没用,因为现在搜索引擎的能力已经可以让你把大多数东西快速找到,你为什么还要照抄到笔记本上呢?从功利的角度考虑,技术文章的写作,别人可以直接访问,也可以逐渐累积你的影响力,一个好的个人技术博客,会给你的简历加分很多,而一个厚厚的笔记本,没有人会管你记了什么。

区别二:以学会XX为目标VS以做出XX为目标

你会发现,学生思维里面有一个重要的特点,就是他们总是特别关注自己“学会了什么”,不仅如此,他给自己定的目标,定的计划,永远都是”学会XX书第XX章内容"。

学生永远在准备,而开发者早已动手。

如果你还在上学,学生思维是“这个学期我要学会XX课程”,而开发者思维是“这个学期我要做出XX"。

如果学Python,学生思维会拿起一本教材,开始从头到尾看,我不知道你们发现没有,几乎所有那种编程语言教材,长得都差不多,上来先是基本的语法,基本的整型变量,浮点型变量之类的,然后伴随着几个小的教学例子。

开发者学Python,他第一步绝对不是去书店买教材,而是先去了解,Python适合做什么,然后他了解到,Python适合做爬虫,数据分析,AI,还能很轻松地搭建Web后端,之后他逛了一下午Github,看了看那些Python高星项目都是做啥的,于是他给自己定下了这个目标:

半年时间内,我要用Python和Python周边的库搭建出一个网站,这个网站服务端运用爬虫技术爬取一些数据,可以提供知乎粉丝性别比例分析功能。

学生继续看书,一个个的知识点去记忆,拿着他的小本本去总结知识点,而开发者上言网简单的看了下Reference Doc的简单交互式语法教程后,便马上开始了变做边学的过程,有了一个实际的项目目标,朝着这个目标走,不断地发现自己不会这,不会那,然后有目的性的去补足知识,他了解到了beatuiful soup作为爬虫主库,flask作为后端web服务主库,然后会去看一些简单的教程,在这个过程中,基础语法得到了熟练,也训练了工程能力。

学生的成就感来源于学会了什么,开发者的成就感来源于做出来什么开发者很功利,他们深知他们学会的所有东西都是为了开发出伟大的产品而服务的,所以他们绝对不会出现“在学一个东西,但是也不知道学这个用来干嘛”的窘境。

区别三:厌恶不确定性VS接受不确定性

学生们总是对“确定性”有一种几乎疯狂的追求,他们总问,“C语言学到什么程度就一定能被大厂录取?”,“掌握XX要几个月?”,“上课认真听讲,认真做笔记,考试是否一定能上80分?”

这种对确定性的追求,直接导致学生有一种下意识的举动:

干什么都等准备好了再去做,但是却“永远在准备”。

因为他们害怕那种不太会还要硬上带来的各种不确定性,他们渴求一种内功的修炼,寄希望于”把基础夯实了,就能顺畅的开发,所以还是先夯实基础吧!”

开发者选择接受这种不确定性,他们愿意”边学变做",因为他们知道,最初学习敲键盘的时候,他们就是这么做的,边看某个按键在哪,边打字,做和学交叉进行,他们始终抱有疑问,他们又始终试图通过学习的延伸拓展去解决疑问,他们仿佛就像是拿着烛火在迷言中行走的侠客,在游戏的一开始,对迷言的结构一无所知,通过不断地摸索和碰壁,逐渐建立起对整个地图的认知。

区别四:线性学习VS递归学习

学生喜欢线性的学习,因为线性的学习(拿本教材从头到尾慢慢看)正是符合了他们对确定性的追求,可惜这违背了学习的本来面目。

开发者知道,人脑最不擅长的就是线性枚举,即便我们认识几千个汉字,但是我们无法去线性地去将所有认识的汉字枚举出来,我们的大脑,本就不是用来进行线性思考的,而复杂度上了一定程度的知识,线性的掌握,基本不可能。

有难度的知识,往往是这样的:为了搞懂A,而去学B,为了学会B,而去学C,这叫递归学习,递归虽深,但有回溯,它最终会回溯到我们的起点。

所以开发者的学习更偏向于递归式的学习,而且可能会以一个知识点为起点,去完成树状知识外围的遍历。(有点像搜索引擎去爬虫)

知识是树状结构,或者网状结构。

当我们试图遍历一个树的时候,最简单直接的方式就是递归,如果你非要去”线性”的学,那就你是把编程学习当成了链表,还是“单向”的,这种算法怎么可能用来遍历树呢?

区别五:拿会XX定义自己VS拿XX项目作者定义自己

linus从来不说自己精通c语言,与其说他不需要,不如说他不关心,因为他是linux和git的作者。

linus 这个程序员之神就是一个典型的开发者思维的人。

我希望所有计算机专业的同学们,等你们毕业了之后,你的github应该是绿油油的,而不是贫痛的一片白。

我希望你们用你们的简历里写的是“用c语言实现了一个XX引擎,github链接github.com/xxxxxx”,而不是”精通c"。

我希望学生们明白,任何一个像样子的项目,制作周期至少是按月计,你的大学有四年时间,哪怕一个项目做一年,你也能拿出两三个好项目,不一定有多少star,但是要完整,文档,测试,一应俱全。

我希望学生们知道,做项目和写课后习题不一样,课后习题一个小时,而项目是长期不断努力,不断学习突破的过程,需要你每天都搞,善始善终,最终拿出成果来。

我希望学生们明白,这个世界衡量一个人的成就,从来都是“他做了什么”,而不是“他学会了什么”,不要总用修炼内功去感动自己,必要时,也请你为开源世界贡献一点自己的力量。

我希望学生们明白,考上985,拿奖学金,这都不叫成就,因为和别人没关系,只有真正影响到别人的东西,让这个世界变得更好的东西,才是值得去“秀”的。

最后送给学生们一句话:愿你早日忘记学生的身份,以开发者的姿态,面对这个世界。

责任编辑:

怎么自学python编程-零基础如何自学编程?相关推荐

  1. 如何自学python编程-零基础如何自学编程?

    如果你正在自学编程和代码,并苦于没有优质资源,那么我就找对了地方. 接下来给你介绍21个免费学习写代码的网站,在办公室里或在家里即可轻松学编程. 编程初学者必必必必必必!看! 马!上!打包收藏这21个 ...

  2. 如何自学python爬虫-零基础入门Python爬虫不知道怎么学?这是入门的完整教程

    这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬 ...

  3. 零基础自学python教程-零基础5个月快速学会Python的秘诀

    点击蓝字"python教程"关注我们哟! 零基础该怎么快速学习Python呢?如何用5个月快速学会Python? 1 这里主要讲一下python基础与爬虫 个人认为可以分为两步走: ...

  4. 零基础自学python教程-零基础人员可以学习python吗?|Python培训基础教程

    python是目前市场上比较流行的一种语言,个人认为也是比较有发展前途的编程语言,如果你既然决定想要好好去学习python,那么一定要做好准备,下定决心,制定合适的计算. 相信对于很多基础的小白来说, ...

  5. 零基础自学python教程-零基础入门学习Python_Python教程

    教程名称:零基础入门学习Python 课程目录: [易源码www.pnp8.com]000愉快的开始 [易源码www.pnp8.com]001我和Python的第一次亲密接触 [易源码www.pnp8 ...

  6. 零基础自学python教程-零基础学Python不迷茫——基本学习路线及教程

    什么是Python? 在过去的2018年里,Python成功的证明了它自己有多火,它那"简洁"与明了的语言成功的吸引了大批程序员与大数据应用这的注意,的确,它的实用性的确是配的上它 ...

  7. 自学python方法-零基础初学Python人工智能的四种学习方法

    机器学习有很多方法,大多数人选择从理论开始. 如果你是个程序员,那么你已经掌握了把问题拆分成相应组成部分及设计小项目原型的能力,这些能力能帮助你学习新的技术.类库和方法.这些对任何一个职业程序员来说都 ...

  8. 零基础新手自学Python编程教程入门精通学习资料网站大全

    零基础新手自学Python编程教程入门精通学习资料网站大全 今天说下关于Python的一些普及知识,以及学习资料,这一节我来跟大家分享下. 1 为什么要学习Python? 1 Python是一个脚本语 ...

  9. python零基础怎么学-零基础如何自学成为Python高手?

    原标题:零基础如何自学成为Python高手? 很多想从事python行业的朋友都会问到,零基础如何自学成为Python高手?根据小北多年教育的经验,我总结了几个小建议,想看干货的请看下文! 1.如何克 ...

最新文章

  1. CoordinatorLayout 和 AppBarLayout 实现的局部点击按钮实现折叠和展开
  2. linux内核添加c代码,如何从C代码加载Linux内核模块?
  3. 汇编:ZF(zero flag)标志位
  4. ppt插入相对路径视频
  5. ThinkPHP3.2 常量参考
  6. 详解 Solidity 事件Event
  7. processon画图软件
  8. 如何使用ARCHART XGantt表示无工作日的日历
  9. 驱动开发:BSOD 0x7E(8000003)或命中断点卡住,__security_init_cookie导致
  10. 4.1-4.30推荐文章汇总
  11. (一)Activiti 数据库25张表——一般数据1 (ACT_GE_BYTEARRAY)
  12. 阿里巴巴icon font导入CSS
  13. Bsgrid表格插入日期表头
  14. mysql横竖表转换
  15. Android模拟器的使用
  16. 快手2019校招笔试题
  17. VS2019直接编译cmake项目
  18. java获取ip地址以及获取浏览器信息工具
  19. am335x+wm8960音频基于linux 4.9.41移植
  20. APEX论坛 给出的解决方案- APEX闪退问题

热门文章

  1. 左转待转区----当同向直行信号灯绿灯亮时,左转弯的车辆进入左转待转区等候放行信号(即使此时左转弯灯是红色的) 注意:当直行红灯时候禁止进入...
  2. Python Inotify 监视LINUX文件系统事件
  3. 学习webpack记录(一)
  4. (三) Angular2项目框架搭建心得
  5. Qt控制台输出QString
  6. VS2012+LUA环境搭建
  7. C#中String对象转换为Font对象的方法
  8. 2011年7个最佳的Linux发行版
  9. 软件开发模型之优缺点
  10. node+ejs模板引擎的应用