大二学生关于学习C++的迷茫 请各位学长指点~`
各位学长~``新年快乐~``
我是一个非计算机专业学校的本科学生(东北农业大学)~`
在学习里上学期刚刚学习了C++~``
老师讲课时候和我们说算法对于程序员来说不是很重要~`
客户一般会给提供~`(对老师不太认可~``和我个人认为不太一样)
而且学校讲的东西都很浅~``
自己学习了C++ primer~``书中的习题全部都打过~``
书也大概看了两遍~``可是还是感觉自己不会什么~``
自己打的话最多也就是打个primer里那种的文本查询~``
很迷茫 不知道自己该如何学 下一步准备去看think in c++;
今年五月份还准备去考程序员~``
想在大4之前考下软设(听说着几个证对我们非计算机专业的学生在找工作时候会有帮助)
英语是我的硬伤~``基本上初中词汇水平~``也很痛苦~`还有四级要考~``
想请各位学长们 帮忙规划一下 学习计划~``
谢谢大家~``
------解决方案--------------------是MM吗?
------解决方案--------------------鸟人啊,你怎么能这样呢?
建议低年级时多看些东西,面儿广些,到大三大四再钻一个方向,那时你才知道想干什么
不像很多人,毕业了都不知道自己想干什么
英语必须得自己积累了,不要放弃,找本英文的C/C++教程看一下吧,很有帮助的
------解决方案--------------------首先,不要太执着于语言,但是你必需要把c的语法弄明白,最好,还知道汇编级别是怎么完的,
即使你看不懂也不要紧,尝试追踪一下,遇到问题自然会驱使你去找计算机组成原理,体系结构等书寻求答案,这对你理解程序的编写,运行
和优化是有好处的。
其次,学数据结构,至少也要把握常用的算法和数据组织方式,
通常这两者是不能分开的,算法是基于某种数据组织方式上的有限有序的操作。
学会把你遇到的生活中的问题分解成这些常用的算法,如果你能修练到高一点的级别,
学会了从数学模型角度去考虑问题的话,那恭喜你,你已经超越很多人了。
学点操作系统原理,看看那些前辈们在理论上是如何对那些简单而繁杂的机械和电气操作
抽象出一个让我们感觉到如此方便的用类似自然逻辑的方式思考的法则。然后选定一个
平台linux或者windows,仔细的研究其中的实现,为以后的职业生涯做好准备。
当你能够清晰的看到一个程序如何创生和消灭的各种细节,那就恭喜了,你具备了一个程序员的技术基本功了
学点数据库原理,知道大批量的数据应该如何组织才能够满足性能和功能的需要,如果知道数据库的实现,那更好。
把范式玩熟,知道如何做数据库结构设计,至少也要把sql玩熟,
这一部分的学习很枯燥的,范式理论函数依赖和sql涉及很多的离散数学中的逻辑推导。
当你知道所有的sql都可以影射为逻辑表达式的时候,你就知道如何更好的优化他们了,
也知道这世界上那些是不能写出来的,那些是能写出来并知道如何写的sql,
但即使你精通了在大学中也可能没有什么用武之地,
不过它能够让你的职业生涯中即使对oracle和sql server之类的不熟悉的话也无所畏惧,
这能为做一个设计师打好基础。
没有什么比有一套经得起证明的方法来按步就班的解决巨复杂的问题更爽了。
学点网络工程,彻底的了解计算机之内和计算机之间是怎么样通讯的?
这些通讯模型有什么优缺点,为什么要设计成这样子。
各种协议是什么样子的,施之于其上的操作以及操作前后的状态是什么样子的,
现实中是如何应用的?看看那些优秀的设计是如何在稳定性和性能上做抉择的。
从广义的角度,这也是算法的一种。
当从业后,你为了生活而不得不在各种语言和工具中选择的时候,
记得多看看编译原理,理解语言的结构层面的知识,这将有助于你
用更少的时间来学习各种重复的语言知识,你将会有机会认识什么是状态机,
正则表达式,语法树,图灵机,以及可计算模型,明白数学模型是如何转化到
计算机模型的。
学习一些软件工程的知识,知道这个世界上最复杂的工程活动是如何进行的。
并在实践的过程中,它有助于提高你从不同的层次对软件的认识。
to be continue
------解决方案--------------------真的回复的好认真,看了一下,也深受启发,谢谢,好好努力!
------解决方案--------------------最近认识的人怎么都准备考试?
------解决方案--------------------只要你能自己做个像样的项目 比几张证书值钱多了
------解决方案--------------------多看,多做,多想
------解决方案--------------------在大学的时候也自己看thinking in C++
现在回想起来是在浪费时间
觉得当时最有用的是学好了 C/C++ 的语法
thinking in 的很多东西在自己看了很多代码之后
也能悟出来的,没有几十万行代码的积累
看了顾及也没什么感觉
------------------------------------------------
msn: tweeg_nee@hotmail.com
------解决方案--------------------首先,我也是来自农业系统院校的,这没什么,并不特殊,没必要特殊指明吧^_^
由于我是做这个方面的,所以也只对这方面懂得多些。你要是做游戏(或3D图形)的话,可以去学OpenGL和Direct3D。C++只是语言,能用来做什么,这不是C++能解决的。C++主要在底层领域很有用。但是如果你准备去做Win32的数据管理系统,主要作界面的话,那么,使用MFC现在就不太合适,真的不如C#。
就事论事,如果不是做研究,初级算法太容易,高级算法一般不用自己去想,你们老师的说法没有大错。就拿3D来说,线性代数会把?那就够了,太复杂的,查查资料,什么轮子都自己发明不太好。算法就是这么个东西,之所以不要太关注他,是因为现在的程序开发到大的地步之后,对程序结构的要求会多于对算法的要求。3D的方面来说,很多算法已经很成熟了,短期之内不可能取得太多进步。很多算法是提出来了不能用(硬件限制),而不是没有算法可用。其实我的数据结构课是没有去上的,但是仍然拿分不低。我不觉得上了课,学了习就明白很多事情了。计算机得很多东西都是凭手指说话的,能作出来才算数。数据结构的原理很简单,看了STL的基本都知道怎么回事,关键问题是,在完成具体任务的时候,选择什么结构?如果这个问题不知道,学再多数据结构都没用。这就如同你如果不知道你要作什么,那么到底用什么算法来解决问题,怎么可能知道呢?