Categories:
为什么代码写得多?为什么写软件不够快?
- MIT 手脑并用 - 多写代码,少看书
- 秦通 AVP-SLAM - 工程能力
- 稚晖君 - 工程能力
- 如何学得更快? - 做项目
- 最快可以有多快?
- 从临摹到原创 + 囫囵吞枣
- Don’t Reinvent the Wheel
MIT 手脑并用 - 多写代码,少看书
这个错误你已经犯过 3 次了。希望你不要再犯
- 第一次,在 Nao 底下分析数据,却一直在看 Rebecca 、Thomas 、Nao 的论文。论文看了一堆,你写了多少代码?
- 第二次,在 Akansel 底下写 FYP , 论文看了一堆,教材也看了不少,请问你看懂了吗?还不如老老实实去写代码。
- 第三次,在 Shujie 底下写 LLVM Pass,论文和教材看了一堆,在网上找了几个月,请问那么简单的 Pass 你写好了吗? 为什么不能老老实实单独地写代码?
秦通 AVP-SLAM - 工程能力
京东的算法工程师李柏说:没有两行万代码的经验不要找我。
你看完论文能不能复现秦大佬的这个算法?
- 如果不能,那你就没有工程能力。
- 实际上班了,必须由你来亲自实现,领导只会给你任务,同事也能帮你太多。
如果你学生时代做不到,更别提上班了能做到。所以在学生时代尝试做点惊艳的东西吧!
稚晖君 - 工程能力
稚晖君用了2周就完成了自动驾驶的自行车,平时他在华为还有工作呢。
这就是工程能力。
如何学得更快? - 做项目
先做, 后学
比如高中的时候其实不用听课,花时候做练习册和看教材。语法书可以先做题,做完再学语法理论。编程可以尝试先写出来,再系统地学习理论。
MIT 的课手搓操作系统、编译器,设计 Git 软件。斯坦福的课写 HTTP 服务器。CMU 手搓数据库。Berkley 的课也是偏重写 project 。这些名校都是 “先做,后学” 的践行者。
左边在打铁,右边在读书。
MIT 的校徽 和 校训 一直都在强调 “动手能力”。MIT真正的校訓則是拉丁文的Mens et Manus,意思是mind and hand,學生既要學會動腦,也要學會動手。
最快可以有多快?
But rather than keep tweaking the recursive-descent approach, let’s stop here. In the next segment, we’ll see how modern compilers take a more general approach to generating code. Still though, the first time I learned about recursive descent, I ran home to write a simple implementation and marveled at having authored my own compiler in an afternoon!
一个下午完成一个编译器 。人在一天内做到的事情远远超乎想象。
从临摹到原创 + 囫囵吞枣
来自 《七周七语言》这本书。
首先从 reproduce the results 开始积累自信,再慢慢改进算法,或者原创属于自己的项目。
在临摹或者原创的时候遇到困难,可以稍微放松要求。因为潜意识通常会继续思考,往往第二天就能想到问题的答案。所以不用急着一口气吃成胖子。但是也不是让你放慢速度,因为降低要求的最终目的是 speed learning .也就是
为了一天一本书,必须囫囵吞枣。
Bruce neatly answers this question. Just type in the programs and program fragments in this book to see whether you can reproduce his results. Don’t think about writing your own programs yet—just try to reproduce the examples in the book. As you grow in confidence, you will be able to tackle your own programming projects.
The first step in acquiring any new skill is not being able to do your own thing but being able to reproduce what other people have done before you. This is the quickest way to mastering a skill
Don’t Reinvent the Wheel
- 你的代码写太多,说明你在核心设计上花的时间不多。
- 除非你已经维护了很久,不然代码不是越多越好。
- 用轮子可以把精力全部花在核心设计上
- 你软件写的不够快也是因为不会用轮子
- 比如你还再实现一次 RSA 算法吗?当然是用开源库!
- 你要想想怎么能像 扎克伯格 在一周时间就写出 Facebook 的雏形。
[Build and Deploy 5 JavaScript & React API Projects in 10 Hours - Full Course | RapidAPI - YouTube](https://www.youtube.com/watch?v=GDa8kZLNhJ4) |
合理使用开源框架可以使你的开发速度从 1年 缩短到 1天。
这就是开源框架的力量。
实际上很多程序员都只是拿开源框架改一改就开始挣钱,写轮子的程序员决定是少数。
所以要放弃“自主研发”的洁癖。