莫过于无知一点儿

      这学期刚开了一门“算法分析与设计”的课程,授课的老师上学期给我们讲过“编译原理”,课讲得很好但中途几堂课没去听,再去听课就像在听天书,虽然后来大部分内容都是靠自学的,但是对于有些章节仍然有点力不从心。
      尽管说大学有些课程可上可不上,但有些课还是必须要上,而且要学好。只可惜当我认识到这一点的时候已经很晚了。计组、操作系统、数据结构与算法好多课都没有认真对待,现在为了准备考研,又得自己耐下心来翻开那一本本崭新的教科书重新开始学。这些课程,每一门都不是那么容易啃,那么容易消化的。理论性太强,但你又不得不接受,计算机技术发展到今天,即使新的技术层出不穷,但是这些知识是你必须要了解的。
      有的人说计算机门槛低,因为他们只看到了那些容易上手的技术,但是对它背后的点点滴滴缺乏认识更别说深入的了解。前些天跟我我弟弟聊天,他是学机械专业的,他想让我教他学C++,他之前接触过汇编。不知道聊到什么的时候他说了一句话让我很不愉快,他说“那你们不就是写写程序什么的么”,我想给很多同行的人听到了都不好受。可能这就是外行人看我们这些人所做的事,对呀,不就是写写程序的事情嘛。后来我义愤填膺地跟他说了很多,大谈计算机科学的博大精深,不过希望我跟他说的那些没有玷污到这门科学。最近在看一本书,书里面有一段话很有意思,与大家共勉:
      “生命应该是一种享受的过程,而不是乏味的研究和推理。大多数人不会思考周围事物的哲学意义,我们更关心的是结果。对大多数人来说,懵懂无知是一种生活方式。这是今天理性主义和经验主义结合在一起的结果,它无处不在。”
      在文艺复兴时期,现代科学产生了两大重量级理论,表现在哲学方面则为理性主义和经验主义。有人认为计算机科学可以分为两大派,欧洲派和美国派。美国人通常更加务实一些,而欧洲人则更愿意探索远景。
      理性主义的代表Dijkstra,他是基于消息的计算和信号量同步模式的发明者,他说“编程是一门数学味儿很浓的工程学科”,也说过“大部分程序员都没有能力编写出好的代码”(确实如此,I agree)。经验主义的代表Niklaus Wirth,Pascal就是这个家伙创造出来的,他说“简单而且优雅的方案往往更加有效,只不过想找出这样的方案却很困难,需要更多的时间”。
      在我们常人来说,基于理性主义还是经验主义去理解这个世界,其实无关紧要,最好的建议莫过于无知一点儿,同样,编写程序也是如此。这个世界,或者说我们现在所处的这个社会并不需要每个人都成为哲学家。这个社会给我们这些懂得少些也即更无绪的人留有空间,而一切也能正常。同样,软件工程也不要求所有的程序员都是受过高等教育的科学家。如果想开发软件,就需要一个系统,程序员可以无绪地能产生可靠的软件系统。这里所说的无绪可不是没有一点头绪的意思,它是指程序员在不需要深入了解很多内容的情况下,就可以写出好的代码。所以软件工程一直在需找一种编码实践方案,让开发人员不用深入了解所有事情。make it simple~~
      in my view,IT这个行业既需要科学家也需要普通的开发人员。科学家的指责就是不停地研究、钻研,创造更多好东西出来;开发人员便是利用科学家创造出来的各种工具build各种实用好玩的应用。社会分工如此,谁都需要得到尊重,即使是最累最苦最穷的码工。
      ps:本来是计划写一篇研究排序算法的博客,结果从“算法分析与设计”这门课说了这么多白话,权当写日记了。

你可能感兴趣的:(莫过于无知一点儿)