大多数人,都低估了编程学习的难度,而高估了自己的学习能力和毅力。
当前系列: 野生程序猿入坑指南 修改讲义

聊一聊学习方法

没有捷径

曾经有相当长的一段时间,我痴迷于“英语学习方法”,尝试(甚至可以说是坚持)过n种世面上流行的学习方法。

然并卵。

直到我老婆学日语,没有听歌、没有看电影、没有背单词、没有洗耳朵、没有订报纸……啥方法都没有,最后日语一级考了西南片区第七名。我的脑子里飘过四个字:名门正派!真的不一样……

她的学习方法,如果有的话,就四个字:老老实实。老师怎么教,她就怎么学。唯一的特点,我觉得,就是胆子小。

谈恋爱,我给她说:“不要读了,happy……”

“不行,明天老师要‘’……”

我笑了她好久,最后才知道:小丑居然就是我自己。

我的听力真正的突破是10年我在上海,每天地铁上下班2个小时,听VOA,听坏了好几个耳塞,最后大概能达到凡是一遍能看懂的我就能听懂,听不懂的大概也看不懂

深刻的体会到:“日积月累,水滴石穿”的力量

但有弯路

我们把太多的力量用于内耗。这多半发生在入栈之前:要不要学,学什么好,究竟怎么学,三天打鱼两天晒网……

入栈之后:自个儿瞎琢磨!比如:先看一遍(不做作业),是不是因为“底层知识”不够,……

我最怕听到的三个字:我觉得。“你为什么不来问我呢?”“我觉得,……

学不动了,类似于你生病了;生病了看医生,就只能听医生的:你必须克服你的本能(相信自己),学会相信别人。

沟通和交流,灰常灰常重要!几乎所有转行失败的同学,必备的症状:停止沟通。


你不是学知识

更重要的(矫枉必须过正)是锻炼、提高能力

还是可以用学车做例子:(其他例子:)

  • 知道踩油门汽车就会往前跑,这就是知识
  • 能在恰当的时候给油门恰当的力度,这就是能力

最好把编程想象成:学开车、学游泳、学打乒乓球……

编程是门手艺活。

拳不离手,曲不离口。必须要“练”!“练”!!“练”!!!

是学历史(要背)学物理(要懂)……

一定要摆脱应试教育的巢窠/惯性思维。

不明白这一点

最大的问题,学习的时候:

  • 上课抄着手“听”,听着听着就开始打瞌睡……
  • 下课不做作业。或者拖延,我先看……:这是一个非常非常非常危险的信号!你要废了。必须赶紧的,悬崖勒马,还来得及。
混进公司之后,没法干活:面试聊天用的就是知识,干活coding用的就是能力

选培训班的时候:比知识点,感觉是按知识点收费的,多教了一个知识点,你就赚了一笔,是吧?


加深理解:重要和不重要

不重要:大纲(体系化)、讲义

重要:电脑、网线、作业(目标)


傻瓜学习法

看着录播,同时打开IDE:

  • 我敲一行代码,你也跟着敲一行。建议记笔记(前面刚批了一个“要源代码”的,又冒出一个把代码“写纸上”的
  • 我跑出来是个什么结果,你就应该是什么结果

唯一需要注意的是:要边写边想。

进阶:不是完全一模一样,而是稍作修改……

这个过程中,就完全有可能:

  • 编译错误,代码跑不起来
  • 运行结果错误

首先,自己想办法解决;解决不了,马上就问。

傻瓜都会,而且解决你所谓“问不出来问题”的毛病。及时反馈:没听懂,一定是飞哥的问题

这一步踏踏实实的做完了做成了,再去写作业。(或者,作业做不出来了,就要倒回去做演示)

本质/道理

我们教室和寝室的墙上都贴着一句标语:键盘敲烂,月薪过万!——这不是飞哥发明的,是我们业界公认然后流行起来的。

学习阶段,再加一句:作业没做,等于没学

先把代码跑起来再说!

帮助你理解

代码可以帮助你理解。

举个反例:某同学电脑都不开,搬个板凳过来坐在我旁边,

  • “你再给我讲一下嘛,就简单讲一下嘛”。一节课讲了你都不明白,我还简单给你讲两句你就明白了!?
  • “我给你讲你听一下,是不是这样?”他吧啦吧啦说了一通,我脑补他明白了,结果看到他写的代码,惊了,“你怎么这么写?”他扭过头:“上次你说的呀……
但不管怎样:沟通总比不沟通好!

飞哥上课:

  • 只要能用代码演示的,我就会觉得很轻松;
  • 不能用代码演示的,我就会非常痛苦。想方设法的组织语言,做类比、画PPT……效果怎么样,还心里没底。

通过自然/人类语言传达信息,是有局限/损耗的。

理解就是剥洋葱的

从“面向对象”开始,很多同学就开始懵:


但最这些(抽象)知识的理解,是一个不断深入的过程。需要你

在漫长的职业生涯中,一点一滴的不断领会。

那些算“抽象”知识?没有布置作业的,就算抽象。

证明你的思路

一个知识点,你掌握得对不对,怎么检验?(你在网上查到的资料:不一定都是对的!要敢于怀疑,勤于验证。

  • 在源栈,你可以问飞哥;不知道谁才是“权威”:不是飞哥呀,IDE才是权威。
  • 但出栈了之后呢?(复习:终身学习)
就像做物理/化学实验(是做题)一样……

#体会#

  • Talking is cheap, show me your code.
  • code is everything

加深你的记忆

不要死记硬背。

喜欢背的,去背英语单词!

你的记忆,应该是“练”出来的,是“肌肉”记忆。

我们的大脑存储的应该是“索引”(目录/线索)

学了记不住怎么办?记不住就去查呗,只要你能查出来也算。

语法规则:最好是能知其所以然。为什么有这么一个语法规则,这么一个语法规则可以干什么……(前提:选一门“优雅”一点的语言入门,比如C#,强烈不建议JavaScript)






作业点评

我们有作业点评,这是一个让你把代码写“好”的过程。比如:命名规范、分支循环整理、函数封装、面向对象组织……

注意:作业点评完成之后一定要

有时候点评的不是你的作业,这个时候你咋办?

有的同学就在天上飞(完全懵逼)……为什么?一种原因:作业你根本就没做,这种直接拖出去打死!

另外一个原因:

读别人的代码,比自己写还难。

必须要练习读别人的代码:看起来像个“老鸟”的样子。

作业点评一样有录播,一样要看;甚至可以把别人的代码(用git)“拉”出来跑……

怎么攒工作经验?在工作环境中写代码,和在源栈写代码有什么不同?除了代码规模更大、业务逻辑更复杂,很重要的一点:

  1. 你要首先看懂别人的代码
  2. 你要保证别人能很容易的看懂你的代码

要有更高的追求,就要学会融入团队、带领团队,主动的帮助其他同学。


模拟面试

既然你是“面向就业”学习编程,……

要等到快出栈了,甚至出栈了才开始准备面试!

随着课程的进度,准备应付这些面试题目:

一定要有意识的锻炼自己的表达能力,“茶壶倒汤圆——有货倒不出”,这是最亏的。

https://imgconvert.csdnimg.cn/aHR0cHM6Ly91cGxvYWQtaW1hZ2VzLmppYW5zaHUuaW8vdXBsb2FkX2ltYWdlcy8xNDE0MDI0OC04ZjEzNjJkYzIzMjUwYzgwLnBuZw?x-oss-process=image/format,png


英语单词

即使英语单词,也不建议“死记硬背”

发音 => 拼音文字

词根 => 偏旁部首

  • 前缀:un/im/de/ex……
  • 后缀:tion/ment/ity……
  • 其他:log/lude/prim/nav……

软件APP:查了之后就自动添加到单词本

最后,穷尽一切可能,多接触!(但很多同学恰恰相反,能躲多远躲多远……)

总结:每日四件事:课程 / 作业 / 英语 / 模拟面试










做好心理准备

哪怕我不断的重复:大多数人都低估了编程学习的难度……,估计你仍然还是会低估它的难度。

尤其是学历不够的、年纪偏大的、自己觉得脑子不好使的……(复习:编程,我能不能学会/找到工作?

逆天改命,就得脱胎换骨,就得扒皮抽筋!

一定要有“过五关斩六将”的心理准备:

启动

世界上最远的距离,就是的距离。

强调:先自学……

但千万不要因为自学学不动就放弃,因为这才是正常的。

学习

内容多:理论基础、前端(HTML+CSS+JavaScript)、后端(Java/C#语言,各种框架类库)、数据库、开发用工具软件……

时间紧:

  • 线下集训标准时间1750个小时(25周x7天x10小时),天赋异禀可缩到1000个小时;
  • 线上,哈哈,翻个倍吧,再长大多数人都扛不住

理解难:需要经历数次思维转变:

  • 分支循环:数据结构和算法
  • 面向对象:封装/继承/多态
  • 函数式编程:Lambda
  • SQL指令式语句:把最难的那几个知识点给我拿出来
  • 学习到框架的时候还需要:脑补
实践难:所以反复强调“做作业”,代码都给你,跑起来算我输!
  • 搭建环境的问题
  • debug的能力


优秀文章汇集

请问各位程序员,是我的思维方式有错误吗?



工作经验和学习方法

引子:最恨工作经验……

  • 为什么需要经验?
  • 经验究竟有什么用?
  • 怎么来攒经验?

从A地到B地,百度地图一搜,知道了:这就是知识(现代社会,知识是越来越不值钱的!)

但你从来没走过,所以……:没有经验。

  • 没经验,第一次走,会不会一路上东看西看,很有可能绕来绕去,如果是偏远一点的地方……
  • 有经验,上下班天天走的,地铁上哪一节车厢最快都知道

经验:够让你做得更快更好,让你拥有一种能力

经验,将知识转化成能力“飞哥快别说了,我都快哭了……这些我都知道,关键是怎么办?”

等等,你真的知道?

你以为你懂了

其实你没懂。

一句话总结:飞哥,你视频/讲义里面的代码我搬到我的项目里面跑不起来呀……

好吧,我承认,(讲义)我故意的!给你源代码,想得美。

复习:别人劝学我劝退……

这就是:学编程的难度在哪儿?

代码都给你,跑起来算我输!

能不能降低学习的难度?问问招聘企业了哟……

复习:

  • 我们是一个面向就业的培训
  • 提高能力,而不仅仅是增长知识

@想一想@:什么是能力,能力从哪里来?

解决一个又一个的问题(报错)嘛:

  • 错误提示有没有去看?
  • 脑子里该过一遍的知识有没有去过?
  • 资料有没有去查?
  • 该问的有没有去问?
  • ……

不要怕浪费时间,你花时间就是来做这些事情的!

这些坑一定要你自己踩,这些坎一定要你自己翻。—— 这就是在“攒经验”呀,童鞋。

这些暴露的问题,都是你成长的契机:我讲的那些东西你有没有真的懂?没有嘛……

复习:键盘敲烂,月薪过万

新学(?):作业没做,等于没学

还有一个,我以前有没有讲过:那些老鸟,是怎么看出你是一个菜鸟的?



学习笔记
源栈学历
大多数人,都低估了编程学习的难度,而高估了自己的学习能力和毅力。

作业

觉得很 ,不要忘记分享哟!

任何问题,都可以直接加 QQ群:273534701

在当前系列 野生程序猿入坑指南 中继续学习:

多快好省!前端后端,线上线下,名师精讲

  • 先学习,后付费;
  • 不满意,不要钱。
  • 编程培训班,我就选源栈

更多了解 加:

QQ群:273534701

答疑解惑,远程debug……

B站 源栈-小九 的直播间

写代码要保持微笑 (๑•̀ㅂ•́)و✧

公众号:源栈一起帮

二维码