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. 通过WebClient/HttpWebRequest实现http的post/get方法

    ///<summary>/// 通过WebClient类Post数据到远程地址,需要Basic认证: /// 调用端自己处理异常 ///</summary>///<par ...

  2. 使用Sqlite数据库存储数据

    1.Sql基本命令 1.1.创建表 表是有行和列组成的,列称为字段,行称为记录. 使用CREATE命令来创建表: 1 CREATE TABLE tab_student (studentId INTEG ...

  3. How to Make LastPass Even More Secure with Google Authenticator

    Google Authenticator LastPass supports Google Authenticator, which is officially available as an app ...

  4. style currentStyle getComputedStyle的区别和用法

    先介绍下层叠样式表的三种形式: 1.内联样式,在html标签中style属性设置. <p style="color:#f90">内联样式</p> 2.嵌入样 ...

  5. Linux sz rz

    借助XShell,使用linux命令 root 账号登陆: su root 1.编译安装 wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar. ...

  6. Java 基础(一)

    Java不只是一种语言,更是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码和一个提供诸如安全性.跨操作系统的可移植性以及自动垃圾收集等服务的执行环境. javaSE: 整个java技术的核 ...

  7. CPU风扇故障导致自动关机

    今天在使用电脑时,突然自动关机,重启后过一段时间又自动关机,于是打开机箱后盖,插上电源观察各个部位运行情况,发现CPU风扇不转,判断问题就是由于CPU温度太高了.于是换个风扇,再开机情况就正常了.

  8. Smart Client Software Factory安装

    首先要安装 Visual Studio 2010 SDK 不然无法安装 Smart Client Software Factory 2010 然后按顺序安装 GAX 2010 http://visua ...

  9. 怎样使CSS3中的animation动画当每滑到一屏时每次都运行

    这个得结合js来做的.比如这里有3个层,js判断滚动到当前层位置的时候给其加上一个class即可,而加的这个class就是带css3执行动画的 class <div id="a1&qu ...

  10. 翻译-让ng的$http服务与jQuerr.ajax()一样易用

    Make AngularJS $http service behave like jQuery.ajax() 让ng的$http服务与jQuerr.ajax()一样易用 作者zeke There is ...