毫无疑问,学习C++是一件痛苦的事情。

  我大概十年前接触C++。那是在学校里,准备考研究生,某学校要求考C++。我就开始一点一点学习,学习的过程还是比较舒服的。不得不说,就古典C++的理论,钱老讲的还是很好的。但是主要是能完成“Hello, World!”的几个版本而已,而这对于应考来说是足够啦。虽然我最后未能直接读研,但自觉C++理论我还是学得不错的。

  05年毕业遇到了两个尴尬事。第一件事是我去一家公司面试开发,要求写一个1+1=2的有界面的程序,结果被鄙视啦。俺只学过C语言,没有开发过任何有界面的程序(Matlab不算的话),因为俺是数学系毕业的。第二件事是,我终于找到工作,但面临相同的问题。好的一点是,领导给我两个月学习。我经过两个月的艰苦学习,终于,败下阵来。搞了半天连MFC的main函数在哪里都不知道。总是觉得好深好深,像一个无底洞一样。找不到开始,也找不到结束,跟我理解的C语言差距太大啦。最终被领导拐骗到C#上啦。C#实在是太可爱啦,就像是Q版的C一样,一切井井有条,简简单单。

  十年来,我对C++怀着极其复杂的心情。讨厌它,因为我在它面前败下阵来;恐惧它,因为它深不见底;向往它,因为它是一座高峰!

  十年后的今天,因为工作需要,我被迫必须使用C++。我再次向C++发起了进攻!主要有四个步骤:买书、啃书、加入QQ讨论群、修改C++产品代码。

  买书。买什么书是个很讲究的是,实际上这也使决定成败的一步。我的感触是——“没有学会一门技术,要么这门技术还不迫切需要,要么没有找到一本合适的书”。在迫切需要这项技术的前提下,我急需找到一本好书。翻遍各种博客论坛,我最终决定买《Visual C++ 2012 入门经典》这本书。事实证明,我得决定是明智的,除了这本书太厚以外。呵呵。

  啃书。这是必经的阶段。我看书一向很慢,我一步一步,如履薄冰。一页一页看,生怕漏了啥东西,后头看不懂。关于厚书,我有一句名言“书非拆不能读也”——拆一章看,看完再拆一章下来。这样容易打消看书的恐惧感。不过还保存好看完的那些章,最后把这些再订起来。这方面我的感谢我的老婆,她最后总是把我的书订好,订得跟线装书似的,比原装的还漂亮。言归正传,看书不能光看,还要练习,就是把书上的例子一个字母一个字母的录入IDE中,编译,运行。感受这些理论和代码。这里还有一句名言——“Pratice makes perfect”,与君共勉。

  加入QQ讨论群,群里不一定要有大牛,只要有热心的同行者、过来人就行。我特别感谢“C++/C#技术交流”群里的马东同学,他屡屡三更半夜回到我的问题,帮我答疑解惑。这极大地鼓舞了我的信心,让我没有像八年前那样郁闷、溃逃。

  修改C++产品代码。写在最后,但这不是最后做的事情。上班就要工作,工作就要写代码。虽然还不是太熟悉,但是必须得写啦,哪怕是一天写几行。然后不断学习,不断重构,直到必须结束。

结语

  好的开始是成功的一半,借发哥一句广告词“我才刚刚上路呀”!

VC++ 学习笔记(一):如何开始的更多相关文章

  1. 孙鑫VC学习笔记:多线程编程

    孙鑫VC学习笔记:多线程编程 SkySeraph Dec 11st 2010  HQU Email:zgzhaobo@gmail.com    QQ:452728574 Latest Modified ...

  2. VC++ 学习笔记(序):神一样的语言

    总的来说,我觉得VC++是一门神一样的语言——它是公认最强大.最复杂的:它一切以效率为第一要务,却又不肯落伍,拼命兼容现在的新的语言设计特点.本来在别的语言很容与就避开的问题,在这里要用很高的技巧去设 ...

  3. VC学习笔记:对话框

    VC学习笔记:对话框 SkySeraph NOV.11st 2009 HQU Email-zgzhaobo@gmail.com  QQ-452728574 Latest Modified Date:O ...

  4. 【VC++学习笔记一】MFC操作Excel

    最近在做一个读取Excel的功能,之前也做过相关的,但总是零零闪闪的,趁着正在劲头上,归纳一下: 利用Automation添加相关的类,在Excel2010中可以在安装文件夹下直接点击Excel.ex ...

  5. VC++ 学习笔记(三):摩登之路——C++/CLI简介

    在Windows上,除非我们必须得用C++来写界面,否则我会选择避免,避免学习和使用MFC.替代的方案是用C#来做界面,然后用C++/CLI来连接C#和Native C++.那么问题来了,C++/CL ...

  6. VC++ 学习笔记(二):VC++与C、VB和C#

    罗马不是一天建成的,VC++的也不是凭空产生的——它一直标榜自己的从C发展而来的.VB好像是专门为了羞辱VC++而创建的.C#呢,是微软类C语言的新秀——其实也不新了.乱吧?貌似挺乱的,其实这里有章可 ...

  7. VC学习笔记---ATL MFC CLR三个库的区别

    MFC.ATL和CLR是VC2005内置的三大库,涵盖了Windows的各种开发方法和开发应用.当然关于C++开发的库不止这三个,不过这三个是微软推荐. 从编程所处层次而言,WIN32为最底层,其次是 ...

  8. VC++ 学习笔记(四):停止还是暂停这个系列

    我已经很久没有更新这个话题了,原因是多方面的,比如比较忙,比如我参与的项目不使用C++.最近因为需要在C#的客户端中调用第三方的C++API,又想起了这个话题.在跟公司里的C++方面专家聊过之后,我有 ...

  9. VC++ 学习笔记(六):简单C++

    到现在,我觉得终于找到学习和使用C++的基本原则了——务必简单.将其看成一个带类的C,或者将其看做标准库下的C++. C++太复杂——其实这种复杂性,所有语言都有,只是多数语言都隐藏了这种复杂性,只有 ...

随机推荐

  1. 关于hr标签兼容个浏览器的代码

    hr标签,相信大家都能熟悉,我们一般用它来产生横线的效果.我们可以对它定义“颜色”.“高度”.“宽度”.“边框”等样式. 在此只讨论“颜色”和“边框”对于不同版本浏览器的兼容性. 颜色: 火狐.IE7 ...

  2. line-height,vertical-align及图片居中对齐问题根源解析

    关于图片居中对齐的问题,进入前端行业虽然有一段时间了,以为自己懂了,可是实际上还是一知半解,找了一些博客来看了一下,但是感觉讲的有点碎,看完还是一知半解. 查阅了一下<css权威指南>,结 ...

  3. .NET跨平台:在Linux上基于ASP.NET 5用EF7生成数据库

    Linux用的是Ubuntu,dnx版本是1.0.0-beta6-12120,EF版本是7.0.0-beta5. 以下是用Entity Framework 7生成SQL Server数据库的操作步骤. ...

  4. 结对实验报告-android计算器设计

     一:引言  目前手机可以说是普及率非常高的电子设备了,由于其便于携带,使用方便,资费适中等等原因,现在手机已经在一定程度开始代替固定电话的通话功能,以及一些原来电脑软件上的功能了.手机上的软件也随着 ...

  5. MVC3不能正确识别JSON中的Enum枚举值

    一.背景 在MVC3项目里,如果Action的参数中有Enum枚举作为对象属性的话,使用POST方法提交过来的JSON数据中的枚举值却无法正确被识别对应的枚举值. 二.Demo演示 为了说明问题,我使 ...

  6. grunt使用小记之开篇:grunt概述

    Grunt是什么? Grunt是一个自动化的项目构建工具.如果你需要重复的执行像压缩,编译,单元测试,代码检查以及打包发布的任务.那么你可以使用Grunt来处理这些任务,你所需要做的只是配置好Grun ...

  7. 拉勾网ThoughtWorks面试题代码实现

    今天看到一个很有意思的面试活动(活动链接),不需要简历,只有一道编程题目,在线提交你的代码即可. 本菜鸟对面试不感兴趣,但题目让我很兴奋,特来挑战一下~ 或许当你看到这篇博文的时候活动已经失效了,所以 ...

  8. EF结合三层:三层中数据层父类和业务层父类的使用

    今天我们主要讨论下数据层父类和业务层父类的使用.众所周知,数据层无非就是实现增删改查的方法.无论是哪个实体类,无非就是为了实现增删改查方法,所有我们在三层的DAL层封装了一个BaseDAL类,来做增删 ...

  9. OpenWrt资料汇总

    上周末折腾了一下OpenWrt,打算把Facebook的网络模拟工具部署到上面,最终以失败告终.上github看,发现已经有人给作者提了issue,作者表示部署在OpenWrt上会很有用,但确实在Op ...

  10. java 初学者需注意问题

    1.Java为什么能跨平台运行? Java语言编写的程序既是编译型的,又是解释型的.程序代码经过编译之后转换为一种Java字节码的中间语言,Java虚拟机即JVM将对字节码进行解释和运行.编译只进行一 ...