今天对着《CS:APP》12章抄了一个简短的Tiny Web服务器,终于第一次了解了服务器是一个什么概念了。以前觉得处理器啊,操作系统啊,网络啊这些东西都很神秘,完全想像不出它们到底是怎么实现的,到现在都有了大概的了解,起码知道只要自己具备足够的知识也是可以实现的。
最近看了几篇师兄的文章,发现师兄们的一个共同的建议是在大学阶段最重要的是打好基础,像数学,C/C++,汇编,操作系统,编译原理,计算机体系结构等基础内容都是很重要的,因为这些知识决定了我们以后的高度。大学是打基础的黄金阶段,那些看上去很华丽很拽的技术随时都会变化甚至被淘汰,如果我们能够抓住各种技术的内在本质,无论时代怎么变,010101是不会变的,哪怕量子计算机(可以计算0和1之间的数值)真的出现了,我相信编程的思想和逻辑也是不会改变的。
不过在现今工作压力如此大的时代下,要坚持学习那些基础知识真是不简单呢,因为各种各样的潮流说不好什么时候会爆发,公司都很喜欢那些能够马上上任工作的程序员,不管你的基础有多好,你如果做不出什么像样的作品来,也是没有什么说服力的,当然一些有远见的公司还是很喜欢那些基础很好的人才的。还有现在想参加个什么比赛基本都不是考基础知识的,除了程序设计大赛这样的考算法之外,其他都是考应用,什么Android,JAVA这些,很多所谓的有“创意“的作品我都有似曾相识的感觉,要不就是真有创意但是完全看不出来有什么实用价值的东西。虽然我这么说,但是我很显然也是没有资格这样评论的,因为我现在还做不出那样的东西来。
在这种情况下,我的想法是在打好基础的同时掌握一两个应用。对于我来说,基础大概就是数学,C/C++,汇编,操作系统,编译原理,计算机体系结构,计算机原理,计算机网络,电路,微处理器体系结构这些知识了,而这些知识到目前为止我可以说都了解过一遍了,接下来就是把它们巩固,再把它们融合在一起,因为越学到后面就越觉得它们都是有联系的,0101只是模拟电流的数字化表示,意味这软硬件只是用不同的形式表示数据而已,然后更抽象来说所有的东西都离不开对数据的操作,如果把它们统一来理解那就比较高境界了。至于应用方面我想在也还没想好,可能基于QT,也可能基于Android,也可能是明天一早起来发现XX公司开发了一种XX技术,谁说得准呢。可是基础的知识最终还是要通过应用才能体现出来的,你总不能跟一个不懂电脑的人说什么多进程多线程并发执行吧,他根本不会了解,但是如果你说这个电脑可以同时做听歌,上QQ,那他估计就理解了,我想这大概就能说明基础和应用的关系了吧。
最近看了几篇师兄的文章,发现师兄们的一个共同的建议是在大学阶段最重要的是打好基础,像数学,C/C++,汇编,操作系统,编译原理,计算机体系结构等基础内容都是很重要的,因为这些知识决定了我们以后的高度。大学是打基础的黄金阶段,那些看上去很华丽很拽的技术随时都会变化甚至被淘汰,如果我们能够抓住各种技术的内在本质,无论时代怎么变,010101是不会变的,哪怕量子计算机(可以计算0和1之间的数值)真的出现了,我相信编程的思想和逻辑也是不会改变的。
不过在现今工作压力如此大的时代下,要坚持学习那些基础知识真是不简单呢,因为各种各样的潮流说不好什么时候会爆发,公司都很喜欢那些能够马上上任工作的程序员,不管你的基础有多好,你如果做不出什么像样的作品来,也是没有什么说服力的,当然一些有远见的公司还是很喜欢那些基础很好的人才的。还有现在想参加个什么比赛基本都不是考基础知识的,除了程序设计大赛这样的考算法之外,其他都是考应用,什么Android,JAVA这些,很多所谓的有“创意“的作品我都有似曾相识的感觉,要不就是真有创意但是完全看不出来有什么实用价值的东西。虽然我这么说,但是我很显然也是没有资格这样评论的,因为我现在还做不出那样的东西来。
在这种情况下,我的想法是在打好基础的同时掌握一两个应用。对于我来说,基础大概就是数学,C/C++,汇编,操作系统,编译原理,计算机体系结构,计算机原理,计算机网络,电路,微处理器体系结构这些知识了,而这些知识到目前为止我可以说都了解过一遍了,接下来就是把它们巩固,再把它们融合在一起,因为越学到后面就越觉得它们都是有联系的,0101只是模拟电流的数字化表示,意味这软硬件只是用不同的形式表示数据而已,然后更抽象来说所有的东西都离不开对数据的操作,如果把它们统一来理解那就比较高境界了。至于应用方面我想在也还没想好,可能基于QT,也可能基于Android,也可能是明天一早起来发现XX公司开发了一种XX技术,谁说得准呢。可是基础的知识最终还是要通过应用才能体现出来的,你总不能跟一个不懂电脑的人说什么多进程多线程并发执行吧,他根本不会了解,但是如果你说这个电脑可以同时做听歌,上QQ,那他估计就理解了,我想这大概就能说明基础和应用的关系了吧。