获得徽章 0
- 掌握任何技能的快速路径,其实可以用几个简单的步骤概括:先停止无意义的知识堆砌,然后用一个项目把技能框架搭起来,接着动手去做。
过程中必然会遇到难题,这时就针对性地去查资料、学方法,解决一个问题就往前迈进一步,直到完成整个项目。
很多人之所以在技能学习上停滞不前,总说“一直在学但没成果”,其实是陷入了“教程陷阱”。
就像我们看了很多烹饪视频,却从未真正下过厨炒菜;学了很多编程教程,却没写过一个完整的小工具。知识本身没有价值,只有用起来才有意义。
真正的学习发生在解决问题的过程中。
当你带着明确的目标去动手做一个项目时,遇到的每个坎儿都是学习的契机。
比如学写作,与其读十本写作理论书,不如先写一篇短文,写完后发现逻辑不通,再去研究怎么调整结构;
学设计,与其刷大量设计案例,不如先试着做一个简单的海报,遇到配色问题再去学色彩原理。
项目就像一座桥梁,连接着理论和实践。
它能帮你过滤掉无关的知识,聚焦最核心的部分。而且完成项目本身就是一种反馈,你会知道自己哪里做得好、哪里需要改进,这种“完成感”会让你更有动力继续深入。
所以,别再纠结“学够不够”,先找个小项目开始吧。哪怕一开始做得很粗糙,只要动手去做,就已经赢过了那些只停留在“学习”阶段的人。解决一个实实在在的问题,比读一百本理论书更能让你快速成长。展开评论2 - 2009年的时候,Joe Armstrong出了一本书《Programming Erlang》,那个时候我对函数式编程非常感兴趣,就学了Erlang。
我拿Erlang做了很多有意思的事,比如在自己的计算机上模拟swarm computing,也做了很多探索性的研究,比如研究BEAM的底层实现。但是这一切都没什么结果。我用Erlang做的最大的项目,是2014年创业项目的一个手游后端。
用Erlang可以非常快地加一个高效稳定的实时平台,然而在带有大量状态的时候就变得不给力了,状态必须得以函数参数的形式传入,所以你必须得实现状态机,而不是状态。此外Erlang是个非常弱类型的语言,类型检查必须得通过运行时传入tuple和模式匹配来实现。这使得快速编写可复用的代码变得非常困难,因为编译器几乎帮不上什么忙,你必须得亲自写出所有错误该怎么处理。
我仍然非常喜欢Erlang精巧的设计和概念,这让它非常强大,但是这种强大来自于强大的约束,这种强大的约束让很多事情变得不方便。所以后来渐渐用不上Erlang了,但是今天流行的的JavaScript和Rust很多地方都受到Erlang的影响。
顺便一提,那个时候知道了研究Erlang的余锋老师,后来他的花名褚霸变得更有名。
Joe Armstrong也是我很敬仰的程序员,他写的书深入浅出,然而他对复杂实时系统有着非常清晰的认识,以及不遗余力地批判现今OOP掌控的世界到处充满的过度设计。Joe在2019年4月20日去世了。2018年底他的博客换成了TiddlyWiki,还写了不少研究TiddlyWiki的文章。展开111
![[呲牙]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_2.cd1e2bd.png)