- 找到适合自己的方法
- 多实践
- 对于某个库的学习,更重要的是学习它的思维方式,每看一个例子,就先想一想如果自己写,会把代码写成怎样,再与真实的例子进行对照,举一反三,这样的学习会是很快的过程
- 学编程,不要在基础阶段停留太多时间,边学边做是成长最快的;先把内容快速都顺一遍,了解完整体情况再针对攻克问题,要尽快上手实战项目(我以前的思维模式更多是“基础要打牢”,喜欢缓慢、一本正经地学习,学完了再接触实战项目。这种思维导致了我的“开头难”,因为总觉得学习编程需要全心投入,觉得自己目前恐怕时间不够啊,再等等,空余时间一鼓作气再学啊。然而生活中,很多东西都需要穿插着进行,没有那种“专门的时间”,太把新知识当回事儿,就很难开头……)所以,最小行动单元这个技巧真的很好用,满足基本条件能运行就先干起来,在过程中调整
- 编程语言没有优劣,只有更合适的应用场景
- 写代码以前,可以试着画流程图
You only need 26 customers paying you $99/mo to make an average U.S. income.
or
- 做一个优质小众的服务是可行的。做好值得用户花大价钱的服务,对独立开发者或者小型开发团队是一种选择
- 一项价值$99/mo 的服务,需要关注产品本身,只需要 26 人说明并不需要太大的流量,而是精准的受众群体
- 另外:付费周期和数额非常灵活,也可以年付费$99,订阅人数要达到 312 人
取法其上,得乎其中,取法其中,得乎其下,取法其下,法不得也。——孔子教育弟子时说
学习之道:读书学习不能「死」学,如果生搬硬套,则只有形体而缺乏神韵。
读一本好书,如若无法领悟其精髓,又如何能够应用于自己的生活中呢?
所以,要辩证地学习,同时要学习创新。
所有技术成长过程中必须坚持的优良品质:
- lifelong learnin 终身学习
- hands-on practice 上手实践
- learn to think 学会思考
- master the basics, buy old books 掌握基础,阅读经典书籍
- Review history
约翰·乌歇尔从小就对数学有兴趣,在他还打球的 2015 年,就在学术杂志上发表过论文《用于计算图拉普拉斯算子的 Fiedler 向量的级联多重网格算法》,这种题目一看就属于专业数学家的范畴,说明那时他的数学水平已经不低了。
因此,外界对这件事情的看法就是,他具有数学天才,所以改行去读数学也很正常。
在一次采访中,他回应了这种看法。说得真好,推荐给大家。
"在别人眼里,数学对于数学家是很容易的。错了, 那是一场斗争,艰苦而孤独,不确定能得到成果,而且需要很长时间的奋斗。数学家是热爱斗争的人。"
他的意思是,即使他真心热爱数学,依然觉得数学研究非常艰苦。(注意,一个真心热爱的人还说艰苦,如果换成普通人,感受可想而知。)他能够坚持下去,并不是因为他觉得很容易,而是因为他可以忍受这些痛苦。
这段话对我很有启发。大家往往只看到成功时的荣耀,而忽视成功之前那个痛苦的过程。英国著名作家奥威尔就说过:"一个人如果将他自己描述得很好的话,他十有八九是在撒谎,因为任何生命从内部审视都只不过是一系列的失败。"
实际上,一个人能够成功,仅有热爱是不够的,还必须有强大的忍受能力,能够吃苦。
很多人建议,寻找人生方向时,你应该听从自己的内心,寻找真正热爱的事情。我现在觉得,更现实的建议应该是,寻找你愿意忍受的痛苦。 你在哪一个方向上,愿意心甘情愿地、经年累月地吃苦,具有最大的忍耐,"虽九死其尤未悔",那就是你应该选择的方向。
你能在某件事上赢过别人,原因很可能不是你比他强,也不是你比他更热爱这个事业,而是你比他更抗打击。生活虐你千百遍,等到别人都放弃的时候,你还没有放弃。
我不了解我使用过的任一语言、框架、系统。我学过计算机体系结构、系统编程和分布式系统,但对他们一知半解。我完全不懂数据库、网络、编译原理和编程语言。我几乎不能完成力扣中等以上的算法题。我没有写过任何一个独创工具或是想出任何一种优化的思路,我只会拙劣地模仿。我觉得我不适合学计算机……
通过软件学习科学技术,软件的安装过程中,会有诸多问题,解决这些问题不是主要目的,这些问题只是铺垫。之后,要进行的才是真正重要的。
知识是思考的根基
根据一次和北京一个公司的 HR 小姐姐聊天,得出结论:我对自己的技术并没有本质的信心,我总觉得自己学习得还不够多,了解得还不够多,所以不敢承认自己有能力完成交付的工作
Fake it till you become it. Do it enough until you actually become it and internalize.
— Amy Cuddy, Professor at Harvard Business School
我依然可以被替代吗?