Since I choose this road, I will not regret it.

                         --Mereyct

端午过后的第二天,闲着没事,更新一下博客。

写这个博客的原因是,看到了群里有人问调用构造函数时能成功,调用析构函数却失败了。他在群里问大家问题,可是没有人回答他。其实,开始写这个博客的时候,我感悟挺深的。也许我会得罪咱们中国的应试教育,所以提前对应试教育说句好话:我就是因为中国的应试教育考上研究生,成为一名学计算机的小码农。称自己为小码农,是因为自己连码农的资格都没有。水平还属于超级底下。

我的启蒙语言是C语言,学校开了C++课程前,我已经学过C了。我第一次接触了C++这个新鲜的玩意。所有的printf变成了cout << ,scanf变成了cin >>,但是我天真的以为,也就这点区别吧。学校的用书是中国著名的老师谭浩强写的《C++》,当然C语言也是用他的。我们老师是一个博士后,大学毕业想考北大,因为受不了政治这门课,选择了报送,去了北京科技大学。后来又去了某大学读了博,还顺便读了博士后。我真的不是有意贬低他的教学方式有误,确确实实是故意说他教学方式真的不行(这里我就不再吐槽了),总之,课结束以后,大家都是靠刷题,才考过的。因为C++这门课是上机考。于是期末考试那几天,天天背题。最后还得了80多。所以我感悟很深的原因就是,看到刚开始学习c++这门语言的时候,很少有老师会带你入门。很多老师只是完成课程任务,上完课后,也许他们有公司,要打理自己的公司,有些有家庭,根本没时间理你。你问他问题:他觉得太简单,自己看。所以导致很多人加群,在群里问,但是刚入象牙塔的大学生,哪里知道百度Google才是他们真正的老师。我不敢说所有的学校的计算机专业都这样,最起码我看到的学校,很多学校都老师都并不能很好的给学生指引一条就业的道路。教授教授,他们只是搞学问的,也就是弄学术,发论文,他们大部分的人根本不懂代码。就我现在的实验室,某老师做项目的时候,只会和你说需求!完成他要求的需求就是优秀的学生!但是他提出来的需求,有时候根本不切实际,他们并没有站在码农的角度来想。你说完不成!他们就说:没有完不成的事,只有做不成事的人!某某软件怎么就做出来了呢?我心里踏过了无数遍的草泥马:刚读研的大学生啥项目都没做过,就要和大公司专业的做出来的东西比吗?当然了,高要求对自己并没有错。

其实,读研期间学到的东西真真实实比本科多,这是肯定的,但是也是不能和实际工作比的。要是我的大学老师,能指点我,和我说:今天你要看这些这些书,看完你就懂了!如果你想走什么方向,就要多做这个方向的项目,多看这个方向的书!我也不至于读研了,早就工作了。4年大学了,真的很少有老师和我们这么说,绝大部分的老师,都是上完课就走人。连我的班主任,走在路上都不认识我们。

很多人会说,学习是靠自己的,老师只是领你进门。这句话我真的非常同意。但是事实上?我的老师们并没有带我进门。

到了大四,学了很多很多的专业的课,却编不出一个程序。当然,最主要的原因是因为我自己吧,水平不够。平时做做我们学校的OJ,刷刷题,搞搞算法。对项目这个概念,真的非常的模糊。

大四我开始了考研。想通过考研这个方式来改变这个现状。希望自己能多做项目,也希望自己对计算机有更深层次的理解。如我所愿,我真的考上了。还进了我们学校最好的实验室。

大四的时候我开始深思熟虑,我到底是做JAVA还是c++,之后因为对C++这门语言先入为主的观念,我打算走c++这条路。做Linux下服务器编程。我当时励志想进大公司,给大公司做架构,给他们造轮子。因为linux下服务器编程,也就是一项做轮子的工作。

我开始疯狂的百度各种大神的学习经验,我先花了半个月看了 《C++primer》第四版,敲了上面的所以例子。学完这本书以后,我发现自己的以前所有看不懂的代码。我都能读懂了。大二纠结的那些问题,全部都迎刃而解。我还看了酷壳上博主写的C++程序员自信曲线图。深知做走这条路真的不容易,没有3、4年我都不敢说自己已经入门了。因为c++里面的东西太多。模板的运用、STL库的使用、BOOST库等等,以及你想搞SOCKET编程,你还得学习W.Richard Stevens传世经典的《UNIX网络编程》,这些书都是大砖块,你想学习完他们并不容易。你需要花大把的时间熟悉他们。当然会使用他们还不够,你还得知道他们的源码,例如,你还要了解例如STL源码里面的东西。侯捷说过:源码面前,了无秘密。只有都掌握了这些,你才能说自己是一名合格的C++程序员,你的简历上也才能写上熟悉C++。

在校的本科生,如何学习?项目+经典书籍+交流,这才是王道。不要一味闭门造车,学习一些新的东西并不是坏事。项目是增加你的动手能力,也是检验你的掌握程度。

现在和大二时候的自己,对C++的感悟肯定是不同的。觉得C++是从C里面演变过来的,这样的思想,现在觉得是多么的可笑,因为现在我觉得,她是一门和C并没有多少关系的语言。不管怎么说,既然选择这条路,我就绝不后悔(Since I choose this road, I will not regret it)。希望你们也一样。

#12楼 2015-06-21 18:24 东王

使用C++和C语言,应该最大的区别还在于面向对象的思想。很多人学了很长时间的C++,实际上也只是使用了有类的C语言。根本就没有面象对象的思想。只是会定义个类,然后定义些方法封装一下。最多就是把公有的东西做一些封装。多态这些根本就不知道如何用。这些在书本上都讲了,只是不能灵活运用,要灵活运用,就需要在实际项目中练习体会,学习《设计模式》是最好的选择。
 
12楼的网友说的很对,确实设计模式太重要了。所以我觉得,应该多做做项目,做了一定项目后,看看设计模式会有很大的收获。
 
 
一些C++国外网站,英文能力不错的可以看看:

从大学开始学C++到现在的一些感悟的更多相关文章

  1. 当你觉得大学没学到Linux时的感想

    你的大学生活是什么样的呢?你在大学有学到特殊的技能吗?你可以在大学毕业的时候找到一份满意的工作吗?当这些问题摆在你面前的时候,你会迷茫吗,绝大多数的人在毕业的时候并不能找到一份好的工作,那不是因为你的 ...

  2. 在 2016 年学 JavaScript 是一种什么样的体验?

    转 译者:方应杭 嘿,我最近接到一个 Web 项目,不过老实说,我这两年没怎么接触 Web 编程,听说 Web 技术已经发生了一些变化.听说你是这里对新技术最了解的 Web 开发工程师? 准确地说,我 ...

  3. [No000002]大学本科文凭贬值了多少?

    <大学本科文凭贬值了多少?> 朋友开网络公司,招应届毕业生.他们是小本经营,人手本就不多,面试的时候,忙不过来就会拉我过去,假装是公司的面试官.主管什么的,算是滥竽充数.我装模作样面试了几 ...

  4. 从零开始学ios开发(一):准备起航

    首先介绍一下自己的背景,本人09年研究生毕业,大学就不介绍了,反正是上海的一所211大学,学的是计算机科学与技术专业,学生时代,从事过ACM,没有什么太大的成就,中国的牛人是在太多,我的水平,估计连高 ...

  5. 【转载】许纪霖教授在上海财经大学演讲——漫谈“大学生的四个Learn”

    这几年,越来越多的大学毕业生抱怨找不到合意的工作.很多单位又感叹,找一个称职的大学生真难.这就形成一个非常大的反差和矛盾.那么,社会究竟需要怎样的大学生?我们的大学到底应该培养怎样的大学生?我们作为大 ...

  6. 从零开始一起学习SLAM | 学习SLAM到底需要学什么?

    SLAM涉及的知识面很广,我简单总结了 “SLAM知识树” 如下所示: (公众号菜单栏回复 “树” 可获得清晰版) 可以看到涉及的知识面还是比较广的.这里放出一张SLAM圈子里喜闻乐见的表达悲喜交加心 ...

  7. 在 2016 年学 JavaScript 是一种什么样的体验?(React从入门到放弃)

    jquery 年代 vs 前端模块化 http://blog.csdn.net/offbye/article/details/52793921 ++ 嘿,我最近接到一个 Web 项目,不过老实说,我这 ...

  8. JavaScript怎样学

    嘿,我最近接到一个 Web 项目,不过老实说,我这两年没怎么接触 Web 编程,听说 Web 技术已经发生了一些变化.听说你是这里对新技术最了解的 Web 开发工程师? 准确地说,我是一名「前端工程师 ...

  9. 《逆袭大学:传给IT学子的正能量》

    <逆袭大学:传给IT学子的正能量> 基本信息 作者: 贺利坚 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115347473 上架时间:2014-3-3 出版日期:201 ...

随机推荐

  1. jQuery实现公告文字左右滚动的代码。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. css3基础教程十三征服CSS3选择器

    :enabled选择器 在Web的表单中,有些表单元素有可用(“:enabled”)和不可用(“:disabled”)状态,比如输入框,密码框,复选框等.在默认情况之下,这些表单元素都处在可用状态.那 ...

  3. Transpose File

    Given a text file file.txt, transpose its content. You may assume that each row has the same number ...

  4. 16_用LVM扩展xfs文件系统(当分区空间不够时)

    1. 查看当前卷组空间(volume group)使用情况 [root@localhost ~]# vgdisplay 从下面的代码中发现剩余空间为0 --- Volume group --- VG ...

  5. input+div 下拉选择框

    前台html页面 <html> <head> <meta name="viewport" content="width=device-wid ...

  6. JSP执行过程

    JSP执行流程: @1.客户端发出请求. @2.Web容器将JSP转译成Servlet源代码. @3.Web容器将产生的源代码进行编译. @4.Web容器加载编译后的代码并执行. @5.把执行结果响应 ...

  7. jQuery height()、innerHeight()、outerHeight()函数的区别

    参考: http://www.365mini.com/tech 函数 高度范围 jQuery版本 支持写操作 height() height 1.0+ 1.0+ innerHeight() heigh ...

  8. Javascript 访问网页弹出qq

    先在网页的正文结束位置 加上引用代码 代码如下 <SCRIPT type="text/javascript" src="/QQ.js"></S ...

  9. Trigger model Trigger expr_id in WorkFolow

    For example, suppose you want to set a Sale Order into the state "Done" once it has been s ...

  10. 2014/09/30 Learning Note

    Vbird Linux: Vim Learning: http://linux.vbird.org/linux_basic/0310vi.php Bash Shell: http://linux.vb ...