Welcome to My blog

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

在计算机科学中忽视任何一个层面都是不行的。计算机并不是理论学科,而是一门理论与实践联系非常紧密的学科。语言是手中的枪。不会编程的人学计算机完全等于浪费青春。

教育有自己的目标,大学里教的东西确实重要,但所能学到的只是计算机学科的冰山一角。如果盲目以为大学课堂里学到的东西能为你带来什么价值简直是妄想。我不质疑教育的正确性,但我质疑方针的正确性。现在的填鸭式教学根本就不适合计算机,看看现在的学生,看看身边的人,我想你会有深切感受。

计算机最大的好处就是能靠本事说话。会就是会,不会就是不会,吹牛也没有任何意义。大学里想混过去是很简单的,随便找一个身边成绩不错的人,问问看,谁都知道想拿60分实在太容易了。分数能代表什么? 女生的成绩都很好,看看她们毕业了在做什么? 女生们都很努力学习,她们又学到了什么,能做什么?每个学计算机的女生都会困惑,我再重新发一次:不会编程的人学计算机完全等于浪费青春。我不怀疑你所言中计算机教育的重要性,可教育的关键在于是否能对一个人产生影响,能否让所学的东西产生价值。对于老师而言,授业是最重要的职责,所以课堂是最重要的场所。而对于学生而言,让所学的东西发挥作用才是最重要的职责。学而不思则罔,思而不学则怠。我想大概计算机的高薪蒙蔽了太多人的双眼,游戏的绚丽夺走了太多人的理智。

最近正在看的一本书是Software Craftsmanship, 其中提到软件的开发是一种工艺,对于计算机的学生,就是小学徒,工艺学里能只学理论吗?能盲从吗? 能没有创新与思想吗? 能不动手就做出好的工艺品吗? 妄想! 经验是很多工作的主导因素,不编程,别学计算机了。没有精益求精的态度,别学计算机了。不重视向别人学习,别学计算机了。真的对于很多人, 不知道你们学计算机到底获得了什么。到底是传奇的等级还是考试的分数。

每一位认真工作在计算机岗位的人都会说,大学的计算机课程是非常重要的,会后悔没有好好珍惜时间。他们也会说,大学里所学的知识在于对工作的潜移默化,而不在于给你带来一份工作。我曾在bbs上见过很多开发人员,做asp的连一个基本的sort算法都不会写,脑袋是几乎全是sql. 我不对其做过多评论,但从很多现象中可以看到的是,我们的教育做的还很不到位。

不知大家是否关注过longhorn, 里面可以使用xaml进行windows application的开发,如果你再看看xaml, 会发现以后的windows程序和现在做网页一样,写几个tag, 想要高级的功能就嵌入一点代码。以后无数人都能很轻松的开发程序,甚至比你用api 或者是低级的库做的更好更漂亮。你还会认为你在大学学的东西有用吗? 你是否还为你是计算机专业学生而自豪?

市场可能需要不多的优秀人才,很如别人所言需要的更多是蓝领,亦如软件工程中的高级看法 -- 人是螺丝。如果你拼命去追新, 你真傻。如果你不追,你真笨。忽视任何一面都是不好的。跨过现象看本质,才是真正的本领。

计算机最大的乐趣在于总要学习,最大的困难也在于总要学习。我们是工匠,需要更好的技巧,需要更丰富的经验,才能让自己成为更优秀的工艺人。这个持续学习的过程就是计算机的工作。在未来的日子里,会有很多很多的变化与新技术,你该如何选择自己的定位,让自己成为更好的工匠?课堂是有用的,只使用课堂是没用的。只在课堂上无法理解课堂有什么作用。你需要学习,需要扩展。你需要定位,需要思考。

如何定位自己? 大学里有很多好的出发点。C学过吗? 数据结构? 编译?懂的越多越好。我不强求别人接受我的价值观,但我认为,一个人的价值在于其不可替代性(jjhou那里偷来的)。在任何一个环境里,你看看是否你能做的别人都能做,如果是这样,那么你没有什么价值,如果有什么事情只有你能做,你的价值在这种环境下就非常大。

再看看周围的人吧,别为自己能做几个网页自豪了。会做的人多了,别为自己能玩两下数据库自豪了,这种人在计算机业比比皆是。但是你会写优秀的算法吗?虽然可能需要的人较少。你会写自己的程序语言吗?你会写os吗?数据库系统你会用你会写吗?你能整体的理解大型系统吗?可能大家都不会,你也会说:没人会。没人会为什么你不能会? 我们国家在IT到底有多少底子谁不知道?不说为了国家,就算为了钱,你能写os, 我想国家也会给你超过你想象的经济支持。

大学培养的计算机人员不能浅尝则止,更不能被高科技带来的东西所蒙昧。我们是专业人员,是科班出身!随便说一点东西,java, 好用吗? 可能很多人都喜欢用, 你知道为什么能那么简单,为什么它为了做了那么多吗? 当然对大多数人是不需要理解的,但是对于你,你应该了解。windows, 好用吗? 为什么这么好用? 它到底做了什么,当然对大多数人是不需要理解的,但是对于你,你应该了解。我不想继续列举,但我觉得作为计算机专业的学生,你应该好好反省。

你应该掌握什么?很多,不要鄙视技术,不要鄙视任何东西,深的东西要学,浅的也需要。作为一个工匠,我们需要不断学习新的能得到的所有手艺来武装自己。多如牛毛,如何选择?非常重要,通过现象看透本质是最重要的。简单谈谈,如计算机语言,很多,C/C++, Basic, Pascal, Java, Python, Effeil, C#, 如果你投入的多一点,可能会发现其实语言之间的共性非常大的。如果你看过.NET, 为什么他们都能变成MSIL, 因为各种语言的语言特性非常类似。所以学习语言一定要能跳出语言的坑。多学几门语言是必须的,关注语言的共性与异性(对编程非常重要),等你工艺有一定水平的时候,你就会比较轻松的掌握新的语言,很快的使用语言进行开发。语言语法之间的异性大概是比较让人头疼的,但这些是品位问题,对于大体,是无关疼痒的。当然语言可有喜好,有一门掌握比较出色的比什么都是半罐子好的多。我推荐C++, 为什么?除去私人原因,是因为我觉得它比较难,有比较多的语言特性,而且相对比较底层。当然选择其他语言也能同样达到效果。这是个品味问题,同样有很多人delphi用的非常不错。
再谈一个本质性的点。面向对象技术,不知道有多少人懂,但是面向对象依然是最重要的分析与设计实现技术。这个是让自己进步的非常重要的技术。在这个方面下工夫绝对是会有收获的。而其中的面向对象模式,更是值得下工夫了。
最后再说一个,算法。重要性不亚于任何计算机技术。当然算法分门别类很多,选择所需就好,在这方面下工夫,也是绝对值得的。

大学时间不多,工夫下到了,不管是否有回报,你也会感觉到踏实。其实很多工作就是图个心里踏实,对吗?当然,如果付出没有回报,那么不断付出,就一定会有回报。充满自信,选择计算机,为能成为优秀的工匠而努力,而不要为了文凭而盲从。我相信每个有心的人都能在自己的领域选择到自己的定位。

 

posted on 2004-03-18 23:25  Agent  阅读(4147)  评论(36编辑  收藏  举报