你有没有想过,你掌握的那些玩意儿,Java程序员里也是搭积木的。
我原来学C,后来学汇编,再后来学Java,再后来什么PHP、Emacs这种鬼东西,全部都要学要用。
有一次我处理一个TLV结构,不会搞,费了好大劲,最后只能用一个字符扔进去,控制一个128字节长度的串。
我答辩的时候还特意讲了这个问题,我说我做得不好,目前只能做成这样,很好奇应该怎么搞。
给我评审的教授很奇怪,他说,一切不都是1和0吗?
我醍醐灌顶,从此再没有在基础知识上困惑过。
回国我第一份工作是做项目经理,当时做一个电信的项目,电信的短信接口需要组装各种乱七八糟的报文。我们那时候并没有成型的SDK来搞,所以都是手工拼装。
结果我发现,在座的各位Java程序员们,居然一个都不会做字节处理。
我需要把Java的基本类型在内存里的样子给他们详细地讲一遍,还要把他们封装的这个串是怎么从内存到网络到服务器再传回来的过程讲一遍。
我说我一个干项目经理的居然要搞技术培训,也是搞笑。
这些人的确是不懂底层,他们懂的是搭积木。
我当时的领导是当年在清华操作纸带打孔编程的程序员,他跟我说,现在程序员就是这样的。
跟搞C的、C++的比,你这种Java程序员算是懂得少的,但是你比那帮搭积木的要懂得多得多。
但是那帮搭积木的还不是最废的,那帮.NET的才真的是拖拖拽拽,啥也不懂。
我还没搞过.NET,没办法体会那种啥也不用懂就能干活的爽快。
同样的,后来做数据仓库,做ETL,在各种乱七八糟的破烂软件的存储文件里折腾。
那时候真的是上了一堂琳琅满目的数据存储历史课。
平时用的什么Access、MySQL、SqlServer、Oracle、DB2就不说了,VFS这种鬼东西都算是有逻辑的。还有二进制文件存储,真的硬是用固定长度区分列。
你折腾一堆这种鬼东西,突然说新的这个数据源是一个MySQL的,我靠感动得热泪盈眶啊。
至少你能写SQL把逻辑写出来啊,不用数字符折腾。
所以等到现在,看到Grails程序员拿个对象直接就用了,就觉得太他么幸福了。
当然啦,术业有专攻,你搞框架的就去面搞框架的公司嘛,跑到底层来折腾什么。
人家公司的业务就是底层,肯定面底层知识,你非要让人家面你框架,还引导人家?
就你这个逻辑思维,干程序员也够呛。
这说明你真的真的很幸运。
最怕你答上来通过面试了,等你进去才知道,你们做的不是一回事,那不就尴尬了吗?
首先玩硬件的那些人肯定更关注底层,其次就是你只玩微服务那些虚的,底层这些你也要知道点啊。。。人家面试官本来就是想问啥问啥,你只负责答就行了,答不上来就是不匹配而已,这也并不能说明谁好谁坏。
送大家一些计算机底层的学习资源:
操作系统、计算机网络、算法设计、数据结构、编译原理、数据库等内容。
- c语言与数据结构与算法:https://github.com/crisxuan/bestJavaer/blob/master/cprograming/c-basic.md
- 操作系统与计算机:https://github.com/crisxuan/bestJavaer/blob/master/operating-system/os-overview.md
- 计算机:https://github.com/crisxuan/bestJavaer/blob/master/computersystem/csapp-basic.md
- 网络:https://github.com/crisxuan/bestJavaer/blob/master/network/network-basic.md
- 后端学习:https://github.com/xingshaocheng/architect-awesome
- 常用工具:https://github.com/stanzhai/be-
怎么学好数据结构?




