这些年读过很多的文章,绝大部分看了就忘记了,其中这三篇对我启发很大,这里分享给大家。
十年学会编程
这篇文章是 Peter Norvig 发表于二十年前。现在和二十年前都一样,很多人学习编程都会浮躁,渴望 21 天甚至是 7 天 就能学会编程,这篇文章很好的解释了为什么不行。甚至是,初学者理解的编程和一个高手理解的编程可能都不是一回事。
对我的启发是,永远不要妄想有什么捷径,不要浮躁,编程不是一门科学,更像是一种技艺,如同绘画、音乐一样的技能,只有通过长时间的砺练才会有所成。
另外不要拘泥于单一技术,因为技术可能会过时,这样年纪越大越容易被淘汰。需要不断加基础知识和核心能力,因为技术原理相通,无论适应学习新技术、还是发挥经验优势,都是比年轻人强很多的。
学习编程这么多年后,反而更加觉得自己渺小和无知,看着那些后浪做出的漂亮东西有时候会感叹,这十年可荒废了不少,想再上一台阶再花十年吧。
Learn in Public
我之前写了 10 来年的博客,但我基本是当作自己的一个私人记录在写,我甚至不希望身边的朋友、同事发现我写的东西,因为我会觉得不舒服,后来我才知道这其实类似冒名顶替综合症。我的域名也丢了两次,所以最终导致我写的东西除了自己看没有什么很多人看过。
这会有什么问题?
其实也没什么大问题,只是我丧失了很多提高自己的机会。
写出来的东西并没有其他人看,就相当于我只是在消费,实际并没有产出。因为没有得到太多的反馈、激励,即使我写了 10 年,这也是断断续续写的,兴致来了写上一篇,通常每年十篇左右,这样没有形成写作的习惯,而且我丧失了启发他人,以及从他人学习的机会。
我认为 Learn In Public 是费曼学习法的加强版,能在公共场合传授我们所学,这是更高的标准。
具体执行起来可能是在 Github 上通过做贡献,或者是建立一个持久的开源的知识库,或者去做公开的技术分享等等。长久来说,人们会注意到真正的学习者和生产者,然后会向其提供帮助或者寻求帮助,这个过程就能产生价值。
我正在实践这个理念,比如我正在写的这个公众号,我想让自己变得更自信和开放,推广自己的想法,让自己成为生产者,同时还能和更多人交流。
别让自己“墙”了自己
CoolShell 上有很多不错的文章,其中这篇我会时不时再看。
偏见和不开放,对一个人的限制是真正有毁灭性的。
持有强烈偏见是技术人员经常会出现的问题,大概是因为我们在编程的时候其实是在构建一个简单的世界,所以自认为一切都可控,自己擅长的就是最好的。
比如有的人认为 C++ 是最强的,所以鄙视其他语言;比如我之前认为 Emacs 是最好的,所以排斥一些现代先进的编辑器;比如自认为是后端开发,所以前端的东西不想碰。行业里这样的偏见到处可见,能形成各种鄙视链。这种不开放的心态就是作茧自缚。
这篇文章还谈了很多其他的方面:
- 站在更高维度上思考和学习
整天在焦虑那些低维度的事(比如自己的薪水、工作的地点、稳不稳定、有没有户口……),只会让你变得越来越平庸,只要你站在更高的维度(比如:眼界有没有扩大、可能性是不是更多、竞争力是不是更强、能不能解决更大更难的问题、能创造多大的价值……),时间会让你明白那些低维度的东西全都不是事儿。
技术学习上也一样,站在学习编程语法特性的维度和站在学习编程范式、设计模式的维度是两种完全不一样的学习方式。
- 扩大眼界
英文语言能力对你能不能融入世界是起决定性的作用,所以我也还在提高英语写作和口语。