C++方向的困惑

本人是三本院校的大二学生。学过c++,大一自学完(数据结果),大二上在学校的算法团体混过,现在快结束了并且快要参加哪个蓝点杯的竞赛。。感觉算法学的还行,做过上年的那个竞赛的初赛题感觉很简单。在此也不想鼓吹自己这次能怎样。 还有就之前也看过windows程序设计那本书几遍,感觉那书难度挺大,看了好几遍才弄懂,并将其每章后的那小项目模仿的做出(不该说自己能独立作出,但弄懂了那每句),因此对图形界面框架有一定的理解。并用MFC做了些东西,有网络的象棋(局域网两人对下的,借同学的资源,程序自己写的没半点copy)和连连看有游戏,界面挺好,基本功能也都实现两个稍大点的东西,随后自己也写像那贪吃蛇,迷宫,计算器之类的小程序。。后面那些小的基本上都是一天搞定的。体会就是写东西简单,两三个小时就能搞定,就是找bug特特别耗时。现在问题就是不知道现在能干什么,也不知道继续写那小东西还有用不,现在可也是上数据结构和C#不怎么感兴趣但有基础,基本都会。。感觉自己没有方向。求高人指点下,最好是有工作经验的人, 在下感激不尽。。。。谢谢了。。
你回答很好啊,你对这方面了解挺多的。也给我推荐了很多书。谢谢了,但我是个三本的学生,看过ACM的竞赛题的书,那里面算法效率写的没的说的。估计我很难达到那个程度。以你的想法好像是叫泛学,我也是被计算机有如此之多东西要学所吓到才有此一问。还有我最先学的是C++学的还比较熟练(就是不会被细节问题困扰,没其他意思),在学C#的时候就有点抵触的心理,感觉也没时间没精力去弄清(也许是不够努力,就是用C#写很多不熟翻书什么的,错了也很难改,像上机老师发的作业思想知道,写出后错叫老师过来看,他改了半天而且每次都吧后基本是把我写注释掉的改成他自己写的了,估计他自己也不是很熟,搞的很无语哎。),所以你叫其他什么语言感觉有困难,我想要的是一个学习方向,深度学习而不是广度学习,这个与学校也有点背道而驰,悲剧。也许是我眼光太狭隘吧,请见谅。我想了下,如果还迷茫的话,就搞基础,谢了

你对自己学习经历描述的比较多,我愿意和你分享些东西。
首先关于你的这个问题,我给你最大的建议是你要拓宽视野,如果你对编程还有兴趣的话,花时间去学习更多的东西。

我们先做个比喻,把编程技术比作练武功。

从你的编程经历我了解到,你一直是在跟着微软的技术路线走,学的东西包括windows编程啊,MFC啊,现在似乎在学C#,这就相当于你在本门派的武功有了比较多的了解,可以说小有所成了。

可是每一个武林高手,一般来说都会好几套功夫。如果把一门语言比作一套功夫的话,C++算一个,C#算一个,建议你可以选择去学习别的编程语言,比如perl,python,ruby等等,这些脚本语言会让你对编程有全新的认识,找到更多编程的乐趣。

所有编程语言里面最厉害的,叫做LISP,相当于九阴真经九阳神功一样的武林秘籍,没听说过吧,这种编程语言在50年前就发明出来了,国内只有少数世外高人掌握了。

学武功嘛,编程语言是拳脚,那么所使用的兵器就是开发工具咯。你现在用的开发工具主要是visual studio一套的东西。你若要18般武艺精通,那就别只盯着微软的那一套,要多选几件兵器练练咯。比如有个叫Eclips是IBM开发的,还有个叫NetBeans,是SUN搞的,哦最最流行的兵器,是GNU开发的,叫做GCC,还有和他配套的工具。但是我听说过有很多江湖之中传说的奇珍异宝,比如有个叫lcc的,还有个叫LLVM的神器,以及像yacc和GHC这样的外星球武器。

学功夫还要注意和别人切磋交流,看高手的功夫,也就是去看高手的代码。去哪里看高手的代码呢?很简单,现在很多系统都是开源的,要不你买几本书也行,比如有个台湾人叫侯捷的,写了一本《STL源码剖析》
http://book.douban.com/subject/1110934/
还有浙江大学有个叫毛德操人,把两大操作系统的内核给翻腾了一遍
http://book.douban.com/subject/1231584/
http://book.douban.com/subject/3715700/
还有很多开源的优秀框架,都是不传世的武功秘籍啊。上面这几本书看明白了,那相当于打通的任督二脉,功力精进啊。

学武功,最重要的就是基本功要扎实,这编程最重要的基本功就是数学和英语了。别看你现在用不到这2个东西,那是因为你现在遇到的问题档次都太低了。有人曾经把程序设计分3个境界:
--业务功能
--业务性能
--业务智能
比如你的目标是设计一款小游戏,让大家都玩得还行,没什么bug,那就是达到了业务功能的境界。比如连连看、泡泡龙等游戏。
如果你的目标是设计一个搜索引擎,每天的点击量是15-18亿次,那么这就需要考虑业务性能的问题。达到这一层次的程序有百度和谷歌搜索引擎,Facebook和亚马逊的存储框架等。
如果你的目标是设计一个和你交互的程序,能完成开心辞典之类的问答节目,那么你就达到了业务智能的境界,达到这个境界的程序有NASA的火星车、IBM的沃森系统、苹果的siri系统等。
言归正传,如果你一直停留在第一个层次,那么数学和英语学不学没啥关系,如果你志向远大,希望达到第二个层次,那么数学和英语非学不可了,否则你无法和这一层次的人交流啊。
如果你希望成为一代宗师,用于攀登第三个层次,那么我可以告诉你,没什么现成的东西,所有的资料和知识都在非常专业的论文里,得要下非常大的功夫才能有所成了。

最后一点,所有的武林高手,都是内力深厚之人。那编程的内力体现在哪里呢?计算机的灵魂就是一种叫做算法的东西,算法这个东西你需要花很多年的时间去钻研的。有很多人问题算法看什么书,我整理了一个列表。请看这里:
http://zhidao.baidu.com/question/403238015.html?oldq=1追问

问题补充有对你的追问了,谢谢回答

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-31
看你自己的兴趣爱好吧 喜欢并想从事编程的话 你的基础还不错追问

我是个好孩子啊,就感觉编程能力还行,其它行情方面了解甚少,看别人学这学那的,搞自己都不知道干什么好,求方向。。最好把学习的步骤写下(如先学什么再学什么。。。)自己然后去尝试符不符合自己。。。

相似回答
大家正在搜