今天,虽然是平安夜。但是周围没有一点节日的气氛。一个下午在软件学院看新来的开发板,晚上老师们去酒店聚餐了,却让我留在这离上海三十公里的地方坚守岗位,整个校区都空荡荡的,好冷……
晚上,有个上进的小弟弟给我发邮件,反正也没事,就长篇大论一下了,骗完了人还把邮件贴到这里,在起一个吓人的名字,当一篇blog…

ASK:

我开门见山了

我一直想本科阶段学mfc ATL STL C# 再看Java VB ASP就行了

但今天看来想法天真

我想这远远不够,远远不够完整

我想使我的学习的体系能够足够的大足够的深,至少是在本科阶段是这样的

不然就算考上研究生也没后劲,到时候死都不知道是怎么死的,死无葬身之地

然而我不想死,想活着,好好的活着,更想让别人看着我而寻死,哈哈

我需要一个构架,完整一点的,够大沟深(有点像棺材),

到时候就算自己活不成,也能有个棺材,比死无葬身之地要好!

不怕你笑话,这里的老师水平有限(我找了8个),没人能给我一个完整一点的知识框架

谈到编程方面,我告诉他我的计划,而他跟我说:“VB很好用的,把vb学好了,就行了!

而另一位老师更让我汗颜:“MFC是做哪一方面的?”

健哥,得你帮我,不然我连棺材都没有了!!!!!!

补充一下吧!

Answer:

很高兴能看到你这么上进,这在我们软件学院都是不多见的。要说完整系统的话,我可以谈谈自己的看法。

你所列举的一些要学习的内容大多是编程语言和工具。固然,编程语言和工具相当的重要,而且很多计算机专业的人都忽略这一点。但是,仅仅了解编程语言和工具还是不够的。计算机的领域博大精深,计算机软件领域的知识也十分广博。学习编程语言,第一要理解每一门语言后面所隐藏的思想,C++,java和C#背后是面向对象的思想,STL背后的泛型思想等等。第二,要看到每门语言的优点和弱点,例如用C++去写数据库应用极为痛苦,用VB去写驱动是不可能的。第三,要结合具体应用学习语言,例如,写点连接网络,数据库的小程序,仅仅懂得语言的语法用处不大。除了编程语言之外,我建议你学习以下内容:

  1. 了解计算机的运行原理:可以学习一下操作系统原理,数据库,汇编语言,计算机网络,编译原理和计算机组成结构系统结构。微机原理等相关的内容,这样,你写的程序是如何在一堆废铜烂铁上跑起来的你就一清二楚了。

  2. 如果你喜欢数学和理论,可以学习一些计算机科学领域的知识:例如数据结构和算法,离散数学,图形学,密码学等等。计算机无论是软件还是硬件,毕竟有其很深的数学模型,理解一下这些东西还是很有必要的,尤其是数据结构,不了解数据结构,几乎无法写出高质量的软件。

  3. 软件的系统分析设计:计算机软件发展到今天,仅凭一两个人的力量就可以写出流芳千古的软件的时代已经不复返了。搞软件讲究团队合作。所以,可以看一看软件工程方面的书。然后,对于如何架构一个好的面向对象系统,你可以看一下设计模式。

此外,如果你想做一个程序员,能融入这个圈子也挺重要,这个圈子里面的一些程序员专有的文化,都要自己慢慢体会。所以我不建议你闭门造车。如果你周围没有一个这样的环境,建议你多到一些程序员社区去看看。例如www.csdn.net 例如www.donews.com 等等。

Best Regards

Zongjian He

School of Software Engineering, Tongji University