当我看到代码家的分享一些自己的学习过程和学习方法这篇文章时,引起了一些值得记录的共鸣,于是就有了这篇文章。
ps:原文可点击链接观看,本文只摘录了一部分。
学习的三个阶段
第一阶段:消费者阶段
漫漫买书求学路。
一旦开始买书,就进入了学习的第一个阶段:消费者阶段。当个消费者其实是个挺轻松的事情,对着书本照猫画虎,一会儿就能跑起来一个看着很有趣的程序。
第二阶段:实践者阶段
学完一些基础知识后,就进入了学习的第二个阶段 实践者阶段 阶段。所谓实践者,就是开始用自己所学,去开发程序,成为一名专业或非专业的码农,很多人的职业生涯,也就停留在了这个阶段,过上了小富即安的程序员的日子。
第三阶段:创造者阶段
实践者阶段之后,自己开始尝试创造。也是我认为学习的第三个阶段 — 创造者阶段,这个阶段是没有结束节点,就一直这么存在着。
创造者阶段,就是努力创造那些没有的,源自你脑海里的东西,而不是别人安排给你的。努力做到让更多的人用到,可以是一个 App,可以是一个帮助人们提高效率的 Chrome 插件,也可以是一个简单的组件。创造是最挑战你对一个行业的热爱程度的。
我从来不反对重复发明轮子。每一个轮子即便有一些小的改进,都是适应自然法则,优胜劣汰的。
就我身边而言,我最崇拜的创造者是尤小右,将一个小的 Framework,一点点的做大,再到做出国际影响力,真是个不得了的事情,也是很多技术人梦寐以求的事情。
总而言之
如果你忽然觉得自己这几年一直处在一个很稳定的状态中,觉得自己没有提升,那你得想想是不是我卡在了某个阶段,一直无法突破,你是否需要做些什么,突破到下一阶段去。随后的文章我也总结了一些误区和突破方法。
一些误区和突破方法。
被误以为的学习
当年,有一本书刊特别流行,叫《故事会》。《故事会》后来销声匿迹了,在我眼里,取代《故事会》的是知乎。对,就是那个知乎。
我其实一直很反对一个论调:“上知乎,学知识”。醒醒吧。知乎明显就是现代版的故事会好吗?!
我不否认知乎存在有价值的知识,但,根本不值得你花那么多时间,去发现那少的可怜的知识。去读书吧。用最系统的逻辑,去学会一项技能,哪怕你去《硅谷百年史》里去读那些振奋人心的仙童半导体的故事,也比你不断的知乎看着水的一笔的帖子要强的多。现在,最可怕的是大家在知乎上消费着垃圾,却依然觉得自己在吃着奶酪,学习的过程都是伴随着思考和痛苦的,如果你边笑边学习,那你真的得醒醒了。
目标和激励很重要
对于很多初学者来说,总是抱着书学,其实也是同样的后果,你无法获得任何的反馈和激励,以至于觉得一件事情越做越难。学习的过程,最好能定一个简单的目标,比如:“我即便现在什么都不会,我就要做个小游戏出来,这个游戏应该是这样的一个玩儿法,blablabla。”,做出来后,快些去找用户,可以是你的朋友,也可以是你的父母,最好是那些不吝惜赞美的朋友们,让他们无形之中给你一些动力。
你永远无法一步达到完美
我认识的朋友中,他们都有各种稀奇古怪的想法亟待实现,但最后,以信誓旦旦开始 Side projects,最后却都销声匿迹了,这是不无原因的。因为很多的开发者在刚开始的时候,缺乏清晰的计划,却想一步登顶完美的境地。这是很可怕的想法。就好比,我一个很少登山的人,却在第一次的时候,就决定登顶珠峰,结果自然可想而知。在实践自己想法的时候,最好能考虑以最低成本去展现你想法的核心部分,而非一个大而全的方案。
从最小成本的想法核心,一步步的去验证自己的想法,去收集反馈,调整策略。最终抵达一个正确的目标。
赶在兴趣消失之前,去学习新知
不得不承认懒惰是人的共性,当你看到别的朋友做出来很酷的小游戏的时候,你是否也有几分钟冲动的想要去学习游戏制作。不要等!快去买两本书抓紧学起来,哪怕你知道你这个热情的苗头很快会熄灭,但请不要放弃任何发现新大陆的机会,在学习冲动消失之前,去入个门先。
我每次跟人互相分享初高中生涯的时候,我总是能想起来我初中时候的一位语文老师,微胖,性格和蔼。
她在一次自由复习准备期末考试的时候给我说: “你复习,不要局限在课本上,你背会 24 节气都是很有意义的,想看什么书,就去看,不要等,不要担心自己学不会。”
这话对我学习新东西影响特别深,现在我基本上想学习什么东西,立马去学,即便可能一周后气馁了,放弃了,但是从来不会怀疑学这些零碎知识的意义。
我学过吉他,写过毛笔字,写过 Delphi,用 Sketch 画过 icon,用 Blender 画过 3D 保龄球,写过 Unity 小游戏⋯⋯ 很多我都没坚持下来,但给我带来的最大改变就是我不会惧怕去接受新事物,思考问题的时候总是能把很多场景考虑到。也能慢慢的找到自己最爱做的那件事情,更清楚的定位自己。
所以,当你忽然对某件事情有兴趣的时候,抓住那几分钟,那几天,赶紧去学点新东西。
毕竟,点总是会串成线的。
少看别人写的文章,多看优秀的代码
我做 Gank 以来,很多开发者都投稿过,以至于现在后台还挤压着 2000 多个投稿没有处理。看过这么一圈而后,我开始不主张去看别人写的技术类文章。看别人的文章,你看到的是他想讲给你的,而这些可能只是他在自己的项目里用到的,而不是一个客观全面的角度。时间一长,以至于你只知道这个东西的一两种用法,更可怕的是你可能已经对思考丧失兴趣,总想走捷径,可能这样前期学习效果显著,但是后期会很快到达瓶颈。我想如果你经常读各种语言的官方文档,总是会有 “啊哈!这样都可以,我以前都不知道还有这种方法存在。” 的感叹,但你看别人的文章,却很少有这种感觉。
至于主张看优秀的代码,其实是希望学习一个技术细节,是伴随着思考的。其实,评价某一种方案好与不好,是没有意义的。只有多积累其他人解决同一问题的方法,才能在下一次做决策的时候,找到适合当前场景的最优解,很多时候,也能触类旁通,给解决其他问题提供思路。
慢慢减少对二手知识的依赖
技术提升这个过程,其实是你对二手知识减少依赖的过程。二手知识是什么?就是那些经过别人翻译,总结的文章。一开始入门,大家看到的都是二手知识(也可能是三手,四手的知识),但,想要提升自己的能力,强迫自己多去看些更官方的文档,体系化去学习。这个过程是很消耗体力和脑力的,但多坚持,一定会有明显改善的。
收藏的意义不大,收藏也不能改变什么
很多人看到不错的文章,总要 @我的印象笔记⋯⋯ 我之前也会这么干,经常把一些不错的文章,存到 Pocket 或者 Readability 里,但,真的回顾去看那些文章的机会太少了,而收藏这些文章给我带来不少压力。有的文章,我只是浅显的读了读,脑子里总是得记着有时间了再去读完剩下部分,正如大多数人一样,再也不会去读了。久而久之,拖延症也就变得理所应当。
有可能你会说万一哪天用到呢?其实我觉得再 Google 一次就好啦,可能会找到比这篇文章更好的。就这样。
现在,看到一篇不错的文章,首先从标题推测下内容,再扫一眼,如果跟我猜测的八九不离十,我基本就关掉了。如果有跟我的推测大相径庭,我一定会一口气读完,而不是收藏起来以后再读。
之所以我说收藏什么也改变不了,是因为读别人的东西,思考的过程是别人的。努力去减少从别人文章里阅读学习的频率,多去读一手资料然后自己总结。
培养一些对产品的感觉
你有没有在 PM 说了要实现某个效果或者功能的时候,你站出来反对,说这样并不合理。如果你有过,那么我想你也是一个有理想的开发者,而不是一个“码农”。聪明人喜欢跟聪明人合作,大家一开口就互相明白了。没有人是天生聪明的,只是看的多了,想的多了,就显得聪明了。
看些什么呢?看看一个优秀的 App 早起的冷启动是怎么做的,看看 Apple Store 或者 Google Play 上最近有没有什么新奇的 App 出现,看看 Tech Crunch 上最近又有什么天马行空的项目融到了钱。
想些什么呢?想想一个产品功能的存在有没有意义,他的下个阶段又会怎么发展,想想某段文案是否会降低产品某个功能的转换率,想想某个动画效果是否是很恼人的存在,如果你可以对微信加一个功能,减一个功能,你又会作何选择。
每个人都应该有个 idea list
我在西安读大学那会儿开始,就有一个小本子,记录着突然冲入自己脑海的一些靠谱或是离谱小想法。上面会写着类似:
- 做个 Every big moment,用手机记录自己的每个值得纪念的瞬间,然后打印 成相册发给我或者放在网上当做自己的 Profile。
- 狗狗出门便便,主人打扫很不方便,有没有更好的方案?
- 程序一旦崩溃,直接发送操作记录和堆栈信息到 Dashboard,而不要让测试人员- 努力重现,写个 SDK,搭建一套服务,一定会很好用。
- 很多的 Bug 追踪服务,为什么不在错误堆栈旁边,展示出来这个 Bug 的解决方案,哪怕是一个 StackOverflow 的链接也好,这样我就不用去自己搜索了。
那个小本上记录了自己好多做产品的想法,有不少,后来市面上都出来了相应的产品。也有一些现在看来很可笑,有的想法今天再翻看的时候,仍然会冲动的想要组团队去实现。
Idea list 总是能激发你去创造的欲望,有空,就去不断的记录自己的 Idea list 吧。
另外,不要把自己的 idea 当做一个秘密,多和人去讨论自己的想法,在不断的否认和肯定中,完善自己的想法,idea 是不值钱的,只有实现它才是有价值的。
争取去更优秀的地方
这句话可能大家都懂,但我的体会却比大家都深刻。
我在西安一个叫西北大学的地方读的大学,是一个普通的 211。计算机专业客观来说比较一般,在来北京师范大学读研究生之前,我甚至没听说过 ACM。
Python、Ruby、Node 这种编程语言在我们的计算机系,根本连影子都没有,所以正统的计算机技能点基本都是 C,C++这样,这并没有什么错⋯⋯ 但路子就变窄了很多,学长毕业去个腾讯、阿里,已经能被大家推上神坛。
本科学校大二会给计算机系开一门日语课。为什么会给计算机系开日语课呢?因为很多外包来自日本。这个逻辑我一直都接受不能。这都什么年代了,我们早都不需要用外包支撑我国的 IT 产业了。
学校给学生的定位更多是一个学校展示就业率的棋子,你会什么不重要啦,只要你最后有个工作就好了,不要拖累了学校的名声。
来师大后,感受到了前所未有的转变。学校整体的气氛相当自由,很多老师们,都是各自领域的专家,你问一个问题,他们能给你引导出很多有意思的点。久而久之,你也会被这些感染到。有时候,我也会想,以后稳定下来之后,要不要去申请个美国名校读一读。
结尾
目前能想到的一些学习的技巧和陷阱,大致都列了出来。都是我个人的一些学习的经验,如果对你有帮助,想必也是极好的,如果你觉得我写的有不合理的地方也欢迎指出。坚持着去实施提及的一些方法,一定会对你的生活和职业带来改变。