专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++

关于大学生计算机专业的前路疑问,该怎么解决

发布时间:2011-06-29 00:41:26 文章来源:www.iduyao.cn 采编人员:星星草
关于大学生计算机专业的前路疑问
我大一的时候,一年的专业相关课程只有一本科普性质的计算机教学,讲解计算机的发展历史,网络的构成等等很浅显的东西。
  然后在下学期学的是老谭的C语言,这个应该也算是基础东西吧,最近又重新温习了一遍,感觉都是一些基本的概念解释。
大二的时候学习的是数据结构,老是讲得太快,很多陌生的结构体一带而过,没有给我们详细的介绍每条代码的功能和每个函数的意义,让我很莫名其妙,感觉学的似是而非,自己下课后重新看,还是看不太懂的样子,只能硬背。
  觉得很迷茫,大学上了两年,感觉自己在计算机方面并没有什么拿得出手的东西,我当初选专业的时候就知道,计算机的人才太多了,已经超过了市场的需求,我这里指的是一般人才,将来不好就业,可是我还是因为从小的喜爱和理想,坚持选了这门专业,因为我从很少就开始接触计算机,励志要做一名计算机方面的高端人才,可是现实让人很迷茫,两年,就掌握了一个C语言的基本东西,让我编写一些没什么用途的作业题目的程序,我可以很好的完成,可是这些有什么用呢?一切知识的最终目标是产品,而我们的目标是软件,实实在在,可以使用,经得起考验的软件。
  说句自嘲的话,我现在连软件编写的步骤都不知道,我都不知道编写软件需要具备什么条件和整个编写的流程,我并不像放弃自己的坚持的东西,我现在唯一苦涩的就是,我想要知道,一个软件,它从编写代码到变成有界面,可以运行的成品,需要哪些过程,至少让我有一个目标,让我能制定计划去学习,前面的路都不知道在哪里,怎么走的下去????

------解决方案--------------------
到大二你会学习像软件工程之类的课程,到时候你就从理论上了解一个软件是怎样产生了。不过最重要的是在课程设计中多锻炼自己,实践才能真正体会到东西。首先c语言和数据结构是很重要的,这两门课程不容得小视。如果认为自己有兴趣把c语言学精的话,可以上网去查一下它的用途,查了你就知道了。
界面只是一个软件的一部分,并不是最重要的,这个你以后会学的。有些软件根本不需要窗口界面,比如说工厂里面的某些工控设备,那些东西上面只有一些物理的按钮和操纵杆。软件最重要在于它的内部逻辑。
你说你不知道前面的路在哪里,这很正常,有时候,你需要边走边看。你不往前走,当然不知道前面是什么了。我大三了 ,也是这样过来的。我的经验是,课程设计要认真做,你甚至可以做一些比较难的项目来挑战一下自己,比如说最近我就在做一个围棋程序。
此外,语言并不是关键,它只是你和机器用来交流的工具。接触多种语言有好处,但必须学精一门语言,这样才能避免在这上面不必要地浪费时间。个人觉得,从技术方面讲,对编程人员来说,数据结构和面向对象思想(除非你只用c来开发)是最重要的,当然,你得有能力用某种语言将他们表达出来,同时,你还需要对计算机硬件、操作系统、网络、数据库方面有一定了解(至于了解程度要看你做什么开发了).
------解决方案--------------------
意见多了,当然听着会乱,但是不看看别人怎么说,听听别人的经历,那你就不知道这条路大概是什么样子。

我说说我的观点。
那些说什么 学 计算机组成原理 计算机概论 还模电 数电 什么的,可以不客气的说这都是废话。

我的观点是,当你学会了基本的C语法以后,你就不要再在“学习教程”这件事情上浪费时间,找一个方向,具体去做。
我个人是从单片机C编程到现在嵌入式C编程,其实还是C编程,但是,接触到的内容会因为不同领域而不同。
我弟弟计算机专业,他的C远在我之上,他搞网络编程,他说的我听不懂。我说的什么串口,网络socket编程,他甚至不知道串口其实是什么。

我的意思是,C语言只是一门语言——虽然是一门极其强大的语言,它能用在什么场合,当你知道了会超出的意外。
C语言绝对跟windows没必然关系。
Linux就是Linus用C语言写出来的(当然还有很多合作者)
C语言在单片机和嵌入式的世界里,是万国通用语言。
很多人跟你说学汇编语言,但其实你到底知不知道什么是汇编语言?

汇编语言其实是一种简化了的机器语言,因为它用助记符代表数字(当然还有别的改进,但对汇编我的认识很肤浅,只到了这个位置)。
但是每一种不同的机器对应的汇编语言,而C语言实现了硬件平台的独立。所以,你只要懂C语言,只要这种机器开发了C编译器,你就可以用非常接近ANSI C的语法对其编程,而无须重新学习一门新的汇编语言。




当你真正进入一个应用领域——我说的是应用领域,而不是哪一种特定的语言和技术。还有那些什么C专家编程,深入了解计算机结构——坦白说,这些书都是好书,而且可能是绝顶的好书,但是,在很多时候,你根本看不懂,你看也没感觉,相信我。

比如说指针和数组,数组相对简单很多,我们初学的时候经常犯这样那样的低级错误,比如 数组越界,比如指针未分配空间就使用,比如指针释放后成了野指针。或者更恐怖的,对指针进行运算,结果把指针指向了一片你压根想不到的地方,造成了一个隐藏的很深的判断失误。

在你学习的时候你写的那些只有一两百行的程序里,你还能很明显的看出这种错误,比如一堆乱码,比如丢了几个数据。
但是,当你真的写到了一些比较复杂一点的程序,你就会在一些非常奇怪诡异的错误的一层有一层,一天又一天地排查时,假如你还比较幸运的最终找到了问题所在,你会非常奇怪,为什么只是 数组越界,为什么只是指针指错了几个字节的位置——
因为,当这种错误出现在栈上的时候,它引发的问题可绝对不只是乱码而已(在内存里,数据就是数据,或者数据就是程序指令)

而你现在,只是个学生,我不知道你到底都写过什么程序,你还没有试过犯什么很要命的错误——你根本就没有足够的心理准备和知识去看那些书。

至于 计算机组成 和 计算机科学概论 这种书,坦白说,我大学时看过一遍,我51学到一定层次以后又看了一遍,也许那一天我还要再看多一遍两遍三遍。
这种东西还是那个道理,你处于一个什么技术水平和已有的技术经验,决定了你能从中看出什么门道。

否则你看了计算机科学概论,也许连 程序到底在什么地方运行都没搞清楚,更不要说让你分清 静态变量 全局变量 和 普通局部变量 的存储位置。

我的建议只有一句话:
作为一个程序员,你要做的就是写代码(当然,雷同的相似的coding一点意义都没有,说写完10000行代码才能算基本熟悉C语言,那可绝对不是 200 * 50 来算的)
------解决方案--------------------
楼主说出了现在大部分计算机专业学生的迷茫啊。下面是我们学校以为老师的建议:

1、高度重视语言的学习
(1)学好C和C++,暂时不要盲目学Java等语言,限制今后的技术道路
C和C++程序贴近机器(大多数操作系统都是基于C的)、高性能,将使你更能深入理解计算机系统和算法,在 技术道路上走得更远
(2)语言的学习不仅仅是语法的学习,最主要的是其背后蕴藏的程序设计思想、软件架构思想的学习要知道这些思想的来龙去脉
(3)到了一定程度后,保持每年都能学种新语言,为什么?(有些思想是某种语言特有的)
2、书籍推荐(假定有基本C基础)
深入理解计算机系统
C学习:
C陷阱与缺陷
C和指针
基本C++学习:
Essential C++
Effective C++
More Effective C++
C++沉思录中面向对象的部分
设计模式精解
深入C++学习:
深度探索C++对象模型
模版学习:
C++ Template:Complete Guide
Modern C++ Design
模版库学习:
C++标准程序库
Effective STL
STL源码剖析
C++学习收工:
Exceptional C++
More Exceptional C++
C算法卷一、卷二
3、语言到了一定程度,可以进行系统的学习

(1)建议首先学习Windows操作系统
Windows比Linux先进(内核结构,线程)
学习windows能尽快熟悉先进的软件架构(各种架构库,天生的消息循环观察者)
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: