Discuz!大师网

搜索
楼主: dream梦凡

计算机大一学生的感吾

[复制链接]
发表于 2012-6-5 16:26:19 | 显示全部楼层
引用 dream梦凡 (0楼)嗯,首先要谢谢你的指点;其次有几点想法想请你参考: 1.我觉得C语言不如C++强大,我以后的基础编程语言主要就是C++了(而且C++囊括了C语言),还有是看上他的类,面向对象程序设计,而且我发现有C++做基础,看其他书要容易许多。  2.目前我还不打算把精力放到动手上,因为我现在对数据库还...                                        1.C和C++应该选哪个?事实很多程序员是两个都懂的,C和C++也不存在哪个比哪个好的说法,不过楼主你既然选择了C++,那么就坚持下去吧。真正牛的程序员是精通一门程序语言,有些人什么语言都学,例如JAVA,AS3,PHP,C#,C,C++,VB这些,他们都学,但却没一个是精通的,表面上看起来是什么都会,实际上是什么都不会!!!楼主你现在先把C++学好,如果你把C++学好了,熟悉其它面向对象的语言真的只需一周就可以了。C++的学习书,个人比较推荐《C++ Primer》。
2.“学数据库选哪本书比较好”,首先你既然学了C++,就应该想想C++究竟能干什么,而不是一味去找书看,就好像我前面说的那个学生成绩管理系统,这个根本不需要什么数据库知识,需要就是函数调用+指针+类+快速排序。按照你现在的知识水平,绝对能写出这个东西,关键是你愿不愿意去写而已。我老实告诉你,这个学生成绩管理系统真不难,只要你C++功底够扎实都可以写出来,而且新手写这东西一天左右就行了。我的建议是先把最原始学生管理系统写出来后,再去看数据库相关的书籍,至于数据库的入门书籍,我最推荐的是外国人写的那本《SQL基础教程》,这本书现在几乎绝版了,不知淘宝上面还有没有得卖。如果你觉得《SQL基础教程》比较难看懂,那么你可以看《SQL入门经典》,这也是外国人写的。并不是看不起国内的计算机教材,而是国内的计算机教材真的大多是骗钱的玩意,我相信只要你看完了《SQL基础教程》或《SQL入门经典》,你就不会纠结于是选orcale好,还是选mysql好,还是选DB2好或者是SQL Server好。
3.“什么时候开始积累项目经验”,这个看你自身,如果你已经具备了开发某种软件的知识,就应该大胆去尝试开发这种软件。就好像你已经把C++基础学完了,你最好尝试开发一些最原始的管理系统。学程序是要动手写才行的,光看书是学不会程序设计的,只有你真正写的时候,才会发觉自己还有哪些需要加强。
4.关于你的第四点,我无能为力帮你回答了。因为我现在是用AS3做Web游戏开发,对DX和opengl不太了解。
5.一个人总有长处和短处的,不懂音乐一样可以做游戏开发!!!我就不懂音乐。我在大学时做的小型游戏就没有音乐,但这并不妨碍你成为游戏开发员。
6.个实习和工作是积累经验的很好方法。你在软件公司实习或者工作,肯定要做要项目开发的。作为个过来人,暑假去做实习是个不错的选择。
7.如果你把C++,数据结构,数据库这三门基本功学好了,而且对网络编程和图形界面编程也熟悉,那么你尽管大胆投简历,大把公司争着要你。你现在就可以去大街网,智联招聘这些网站看看,看看那些公司都需要些什么人。
 楼主| 发表于 2012-6-6 00:57:45 | 显示全部楼层
1.对于你说的第1点,这个我知道既然懂了C++那肯定就懂了C语言,这个我就有感受,而且我第二门编程语言学的就是C(第三是C++,而第一学的是VB,VB是我高考完时利用放假时间学的,现在也忘了一些,而且学的很基础,以后不打算用它了),《C++ Primer》这本书我就不打算看了,因为谭浩强那本C++我在开学前就看完了,虽然《C++ Primer》这本书上有很多是谭浩强那本上没有的,但我准备看的STL已经包括了这多出来的部分了。
2.对于你说的只要我看了《SQL基础教程》或《SQL入门经典》之后,就不会纠结于是选orcale好,还是选mysql好,还是选DB2好或者是SQL Server好了;我就有了一个疑问,难道这些(mysql,SOL Server,DB2,oracle)都是紧密联系在一起的,也就是他们的本质是相同的?就像JAVA,C,C++,C#,PHP等一样,这些编程语言本质就是一样的;如果是这样的话,我选择学oracle(因为我们大三就要学oracle,而且四年数据库只学他,也可以提前掌握一些,还可以方便到时候考试和跷课省时间做小项目)。
 楼主| 发表于 2012-6-6 01:29:59 | 显示全部楼层
3.对于你说的做管理系统,不懂注册表可以吗?就像Word文档一样,当你安装了这个软件之后,你在任何.doc或.docx文件上双击鼠标,他就能自动打开,这肯定是和注册表有关的;而管理系统的数据要放在文件中,那么自己做的管理系统软件就可以自己取文件名的后缀,要实现和Word一样的功能,我认为有必要了解注册表,这样别人就可以直接双击文件启动管理系统了;以我目前的理论知识做个可视化的管理系统应该够了,但还缺一样,就是不懂注册表,因此我可能会先了解了注册表并大概知道怎么用他之后以及上面我计划的各种基础知识完成后在开始做小项目,这样的话就不会出现要那样知识而缺那样知识的情况了(软件,数据库,网络,注册表都有了理论基础并且大概知道怎么用他们之后),之后才是做小项目并深入学习,我认为就是掌握理论基础知识时最头疼,只要撑过这个阶段就舒服多了,最起码到那时候就可以弄真正的东西出来,还能体会到架构,整合,融入思想等的感觉,而不必为不懂知识而烦恼,思想也可以上升到需求分析,架构,开发,测试等阶段。
4.还有你说的第三点我一定会去做,但现在还不是时候,准备工作还没做好;你说的第5,6,7点对我帮助最大,因为他鼓舞了我,使我不再迷茫和困惑,使我有信心去完成目标和计划以及克服一切困难,真的很感谢你。第6点还想再问一下,我听一些学长学姐说,他们去实习是学校安排的,不但要交钱而且时间很短;自己暑假可不可以单独去找,而且能不能找到不要实习费的,还可以供吃供住,工资没要求;由于现在既没有毕业证也没经验,暑假能找到实习岗位或工作吗?去面试的时候是不是只要笔试过了,机试过了,提问过了和了解过了就可以了。这学期暑假不打算去找了,因为我的水平估计不行(不知道公司要多高的水平),准备下个暑假去找,那么对于一个大二的学生来说人家会要吗?人家会相信自己的能力吗?
发表于 2012-6-6 03:10:55 | 显示全部楼层
也许lz天赋异禀吧,非我等凡人能比,不过总觉得没有超忆症的话,还是集中精力为好,当然最基础的,只是留个印象,不打算深入理解或者记忆的,多涉猎一下也没什么坏处。
 楼主| 发表于 2012-6-6 13:26:25 | 显示全部楼层
引用 取暖1314 (0楼)笑而不语,LZ加油吧~                                        谢谢哦,共勉。
 楼主| 发表于 2012-6-6 14:31:59 | 显示全部楼层
引用 书山无尽寨为舟 (0楼)也许lz天赋异禀吧,非我等凡人能比,不过总觉得没有超忆症的话,还是集中精力为好,当然最基础的,只是留个印象,不打算深入理解或者记忆的,多涉猎一下也没什么坏处。                                        我只是一个普通人,并不是什么天赋异禀的人,也没有什么超忆症,我也是个菜鸟;在我的心目中,天赋异禀的人是像比尔盖茨,乔布斯,李开复,张亚勤,丁磊等那样的人物,他们懂的东西远远不是我们能想象的,他们涉足的领域不局限于IT行业,他们即懂技术,还懂管理,还懂战略,更是一个成功的决策者等等,在没有做到他们的万分之一时,我只是一个普通人。而我要做的只是努力向他们靠拢(虽然很荒谬)。
你怎么知道我有没有集中精力呢?你怎么知道我打不打算深入理解或记忆呢?你能看透一个人的思想吗?我个人认为,我们不应该对他人下某种结论,因为你永远琢磨不透别人是怎么想的(除非他是一个不健全的人),而且因为时间和空间的变化,一个人的思想是随时在变的;如果能琢磨透一个人心思的话,那就不存在战略一说了。
而且我的想法基本没人能琢磨透,我上面那些计划和目标只是我的一小部分,在我的想法中他只占一丁点;我的想法可是涵盖整个将来,你能猜出我将来会做什么吗?你认为我将来会是一个程序员吗?你认为10年后我会是个什么样子,猜猜没关系啦,随便猜,就算你猜我是个清洁工也行;说不定哪天我就回家种田去了呢!然而这些却是我每天思考的问题,并且经常会有新的方案。
我说的不要对别人下某种结论不错吧!你能猜出我未来的规划是什么吗?
发表于 2012-6-7 02:11:54 | 显示全部楼层
引用 dream梦凡 (0楼)我只是一个普通人,并不是什么天赋异禀的人,也没有什么超忆症,我也是个菜鸟;在我的心目中,天赋异禀的人是像比尔盖茨,乔布斯,李开复,张亚勤,丁磊等那样的人物,他们懂的东西远远不是我们能想象的,他们涉足的领域不局限于IT行业,他们即懂技术,还懂管理,还懂战略,更是一个成功的决...                                        呵呵,佩服佩服,lz厉害。
我对“集中精力”的理解是“深入挖掘一点,以点带面”,而不是“全面开花”、“贪多求全”。
不知LZ对“封装”、“透明”的概念是如何理解的呢?

发表于 2012-6-7 02:00:09 | 显示全部楼层
就我个人观点,CS的本科课程内容虽然广度、深度都很有限,但还是不必要也不可能学的面面俱到。
比如为了掌握好计算机图形学,似乎应该把傅里叶变换彻底吃透,那么微积分(数学分析)是不是也必须学得非常扎实——比如把吉米多维奇习题集全部做一遍?
 楼主| 发表于 2012-6-7 11:51:04 | 显示全部楼层
引用 书山无尽寨为舟 (0楼)呵呵,佩服佩服,lz厉害。 我对“集中精力”的理解是“深入挖掘一点,以点带面”,而不是“全面开花”、“贪多求全”。 不知LZ对“封装”、“透明”的概念是如何理解的呢?                                           封装:可以对一个对象进行封装处理,把他的一部分属性和功能对外界屏蔽,也就是说从外界是看不到的,甚至是不可知的;在设计一个对象时,要周密地考虑如何进行封装,把不必要让外界知道的部分“隐蔽”起来,也就是说,把对象的内部实现和外部行为分隔开来;用户通过公用接口访问对象。
透明:在我学过的C++中我没听过有透明这么个概念,C++本来讲求的就是封装,隐蔽;就算有,透明最多指的是接口。我在汇编中倒是见到透明这么个词,就是寄存器从应用的角度可分为透明寄存器和可编程寄存器,小弟能力有限,如果真有透明这么个概念还请指点。
正好有个问题问你,我有点模糊;为什么只能将重载“>>”和“<<”的函数作为友元函数或普通的函数,而不能将他们定义为成员函数。
还有一个也有点模糊,就是 _cdecl,_fastcall,_stdcall的具体含义(虽然遇到的这方面的很多问题都解决了 ),还请你指点一下小弟。
 楼主| 发表于 2012-6-7 11:51:06 | 显示全部楼层
引用&nbsp;书山无尽寨为舟&nbsp;(0楼)就我个人观点,CS的本科课程内容虽然广度、深度都很有限,但还是不必要也不可能学的面面俱到。  比如为了掌握好计算机图形学,似乎应该把傅里叶变换彻底吃透,那么微积分(数学分析)是不是也必须学得非常扎实——比如把吉米多维奇习题集全部做一遍?[图片]                                        你怎么知道我对数分的掌握扎不扎实呢?呵呵;你怎么知道我想不想学计算机图形学呢?
哦,差点忘了21号我们就要考数分,下午我还得去复习一下,不吹了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|网站地图|小黑屋|展会网|Discuz站长论坛 |天天打卡

GMT+8, 2024-5-5 22:18 , Processed in 0.040019 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表