看了很多技术书,为啥仍然写不出项目?

2019-05-17 16:28:22 浏览数 (1)

面向造轮子编程

这大概是还在读书的同学最大的困惑了。自己明明看了很多书,感觉不到自己的进步,很有挫败感。计算机科学是一门实践的科学,你发现你看了《现代操作系统》,《CSAPP》,《算法》,《计算机网络》等,基础知识依然没有理解透。但是动手实践这种东西,对于大神来说很容易,普通小白就不够友好,怎么造轮子,怎么学新的编程语言?下面推荐我最开始学编程的时候看过和造过的一些轮子。

四板斧

代码语言:javascript复制
while(True) {
1.看书();
2.用轮子();
3.造轮子();
4.看轮子();
}

比如,你学java,你是小白,别人都推荐《thinking in java》这种入门书(等等,谁他妈说入门书啊

)。你《thinking in java》看了一遍,发现有的东西似懂非懂,这个时候我觉得你再回去看一遍没有多大意义的,那些涉及design parttern的,你看完理解了你还是不知道怎么用,还是不知道怎么写。每种技术你只看书都会有这个感觉。下面用轮子,造轮子啊。

java后端

用过log4j吗?造一个啊。 用过消息队列,造一个啊。 用过rpc,造一个啊。 大数据工具spark用scala写的,java造一个?scala看不懂,学啊,卧槽,技能树又长了一个点,好像可以造更多了呢? 大数据处理工具flink怎么搞的,要不要造一个?flink是java写的,我他妈刚学完scala,造…. 造出来一个,妈蛋,方的,怎么办?看看别人怎么造的。 轮子哥准备了一套面向组合子的编程: https://www.zhihu.com/question/39972591

卧槽,我写的就是一堆,不不不,一坨emmmm,一坨屎。这时候再去看看log4j的包里面怎么搞的,再回去看书,感觉会不一样了吧。总有人说找不到轮子造,推荐java同学看一些轮子,比如hadoop自己实现的rpcx框架,自己实现一个小的MR框架,guava包,fastjson,慢慢的看多了写多了就可以动大的东西了。很多东西需要时间去堆积,急不得。

编程语言

比如你开始学习c语言,怎么学呢?用c语言把所有数据结构全部实现一遍是最好的方式。这里贴一下我大学时候写的全部数据结构代码:

https://github.com/Acceml/HIT_DS

比如你开始学习scala,怎么学呢?学spark怎么写的是最快捷的方式。 比如你开始学习shell,怎么学呢?写一个脚本监控机子和服务的性能。 比如你开始学习python,怎么学呢?按照《机器学习实战》上的内容把基础的机器学习简单过一遍,不会Python都很难啊。 至于你想学习深入,先过了上面这个阶段,再去细致的扣语法,比如java中的lamda表达式,java中的线程安全等。

方法论

经典的书要反复去读,反复去理解和领会,因为你没达到那个高度,看到的东西是不一样的,看到同一个东西联想起的东西是不一样的。

温馨提示:造轮子的时候找局部功能去造,不然很有挫败感,不要一上来就要搞个大新闻的感觉,容易把自己玩死。你需要的仅仅是持续的正反馈。

有啥困惑,欢迎交流,只要不是为啥程序员找不到对象这种终极哲学问题都阔以讨论!

0 人点赞