导言:在大家正式学习编程之前,小编建议,一定要有学习编程的兴趣,不管你是怎么样,因为什么原因来接触的编程,一定要有兴趣,或者说是支撑你努力学习下去的欲望。因为编程的话你如果对他没有兴趣的话,你就会在越来越多的代码之中找不到兴奋点,没有激情,自然而然的你就会越来越感觉自己不适合学习编程,因而放弃编程。好了!接下来我们来看看学习c/c++编程应该怎么学吧!

一、C/C++语言

如果你的基础很差, 建议不要一开始就学C++语言,从C开始学起,对程序有个初步的认识,循序渐进。C语言的书嘛,先买一本 300 页以内的,例如大学的教科书,把书中的每一个例子都通过键盘敲打进去到 Visual studio里面去,然后单步执行,逐行调试去看各个变量的值。或者自行添加一些printf语句去输出变量的值。这样当你看完一本书后, 你就有编写小程序的感觉了。然后可以选择《C Primer》这本书,再次加深你对C语言的认识与学习。

记住,千万不要偷懒,不敲进去,自以为聪明, 能看懂, 或者直接从光盘复制。偷懒的代价是会花费更多的时间学习,最后还没有学会,给自己的自信心造成巨大打击,再也不想学程序了。

C语言看完一本书后,下来你就可以买一本C++的书看了。 C++的书也是一样, 必须300页以内的那种,不要一来就想学《C++ Primer中文版》这样的好书, 因为太厚了,怕你没有信心能够看完,即使你很有信心,花费一年的时间才看完,不值得。这种经典的厚的好书, 适合作为资料查阅,不适合挨个细节都看。

还是要提醒各位,一定要把书中的例子挨个敲打到电脑里面, 单步执行。一定不要从光盘复制, 一定要单步执行。

经过两本书的磨练, 估计你对C/C++肯定有比较深入的了解了,接下来可以进入实战了。

二、带界面的应用程序

学会了C/C++语言本身,可能还没有什么成就感,毕竟都是控制台的程序, 老是输出一串字符串, 整天面对各黑框框,成就感估计不是那么爽。要是能搞个带UI界面的程序就爽了。

下来就看个人的志向了, 如果走微软路线, 那你下来学MFC好了,如果要走开源路线, 那开源跨平台的界面库多得是。

通用的并且简单的就是QT了, 官方网站为你下载后看具体的例子, 把里面的例子程序敲到你的 visual studio 里面, 去调试, 看运行的结果, 你也可以试着去修改例子, 添加按钮,响应按钮事件等。走到这一步, 恭喜你,可以照葫芦画瓢的搞个小应用程序了, 还带界面。

三、网络应用程序

语言搞懂了,UI程序也会了, 下来该学学网络咯, 现在那个程序不需要联网啊,懂网络对你理解很多程序非常有帮助。但是网络应用程序从哪里入手呢 ?

我来告诉你,从《UNIX网络编程》这本书入手吧,这本书可以教会你网络套接字的底层原理,把上面的例子好好学习,自己动手写一个回应服务器。写一个服务器端,在写一个客户端。服务器端请务必学会 select 这个简单的多路复用模型,这样你才能慢慢的深入里面 poll , epoll ,IOCP 之类的模型。

四、文件操作

所有的程序,基本都会用到文件的读写操作,windows系统有自己的文件操作API, 比如CreateFile, DeleteFile 等,请新手不要学windows的文件操作API, 新手请学标准C语言的文件操作函数,简单易学还跨平台。就那么几个函数,三下五除二你也就学会了, fopen, fclose, fread , fwrite, fseek, ftell 就这么几个而已。

五、仔细研究apache源码

学程序非特别是C/C++程序,非3年之功可以出山,三年对一个C/C++程序来说是一个从量变到质变的过程,三年的项目实战经验,可以让你接触到一个完整的应用程序所需要具备的骨架。但是这个阶段你写的代码,可能充满BUG, 会宕机,运行效率很差,自己回头看看一年前写的代码,可能自己都感觉恶心, 看不下去。没有关系,这种感觉是每一个进步青年都会有的。要提高自己的代码水平, 还是要像高手学习。你可能要问,公司同事的水平一般, 水平好的人家也不愿意给我讲。没有关系,开源的代码就是你像高手学习的最佳途径,开源代码是高手留下的练功秘诀, 你看了后你会突然感觉茅塞顿开, 感觉自己的水平差人家太远了。我为何要推荐apache的源码呢?

apache的源码是高手中的高手写的,执行效率和程序架构堪称一绝。里面的很多思想是所有程序都通用的,搞懂了, 很多模块你也可以直接拿来使用。apache对内存池的使用, 对线程池的使用, 对模块结构的封装,非常具有实际意义。要是你能把apache的源码吃个透彻,每一个细节都搞明白了为何人家要这么实现,我可以给你说,“恭喜你 , 你离传说中的高手已经不远了。”

六、深刻理解内存与指针的关系

作为一个C/C++程序员, 从学习程序的头一天开始,就要和内存的分配释放作斗争。你必须理解内存与指针的关系。怎么样才能理解呢, 大家去以去看看看 《C与指针》里面自带的几个经典例子吧。把那几个例子搞得清清楚楚, 基本能够理解其中的原理了。

七、修炼C++

我上面说的基本都是修炼C的, 要修炼C++, 还得再花3年功夫, 才有可能练成C++高手。C++太博大精深了,其中最复杂的莫过于泛型编程思想,不要以为能写个模板类就认为泛型编程不过如此而已。仔细看看STL源码, Boost 源码, 你就知道泛型编程有多么的博大精深了。修炼C++, 可以从用C++封装的MFC, wxWidget入手, 看高手如何通过C++语言, 封装这样庞大的UI库,里面应用了很多的C++机制, 最典型的就是多态机制, 还有很多的设计模式应用可以研究。

有兴趣学习交流c/c++的小伙伴可以进我的主页看看

八、深研设计模式

设计模式是程序设计的灵魂,是通用方法,当你面对一个大型项目的时候,如何设计一个有弹性的系统,是所有系统分析员应该掌握的技能。在设计模式的研究上,要结合实际的项目进行。

结束语

祝大家在编程的道路上越走越远,不要半途而废哦~

转自:博客园- 修语谈谈C/C++

您还可以在以下平台找到我们

c++编程例子_如何开始厉害的C语言编程?大神都是这样开始的!相关推荐

  1. 什么是python编程例子_案例详解:优化Python编程的4个妙招

    全文共3510字,预计学习时长7分钟 作为数据科学家,敲出最优的Python代码非常非常重要.别无他法,杂乱低效的代码笔记本会消耗你的时间,也会浪费大量项目资金.经验丰富的数据科学家和专业人士都很清楚 ...

  2. 怎么运行c语言程序,如何使用C语言进行编程操作,教程在这里,C语言编程快速入门...

    原标题:如何使用C语言进行编程操作,教程在这里,C语言编程快速入门 C语言编程初级学习 编程语言有很多种,我们今天就介绍一种很瘦大家喜欢的C语言.该语言在大学中也是一门较为重要的学科,更是计算机学科里 ...

  3. 编程小白和大神都想要的百元级物理外挂(装逼利器)----KeyPad++编程键盘

    这两天夜不能寐,终究还是做出了这个违背祖宗的决定.... 是的,我正是要将一代代编程大神薪火相传的的终极奥义公之于众. 当你刚开始熟悉和掌握一门语言时,无论是C++还是Java亦或是Python,我们 ...

  4. 编程大神都在用的6个编程网站,一个月轻松学会编程,好用到不行

    现在随着很多公司都将业务慢慢的转移到了网站上,很多朋友就想学习IT行业,那么到底哪些大神们到底使用的什么软件呢?今天就为大家介绍6个编程大神都在使用的编程网站,想要提高从现在开始! 1.Codecad ...

  5. 网络编程异步_概括地说,网络异步编程

    网络编程异步 重点(Top highlight) Asynchronous programming is not a new concept and has been around for sever ...

  6. 山西台达plc可编程控制器_什么是PLC,什么是可编程控制器,快速了解PLC常识和应用...

    一.简述 多年来,可编程控制器(以下简称PLC)从其产生到现在,实现了接线逻辑到存储逻辑的飞跃:其功能从弱到强,实现了逻辑控制到数字控制的进步:其应用领域从小到大,实现了单体设备简单控制到胜任运动控制 ...

  7. scl语言用plc脉冲做定时器_西门子PLC中使用SCL语言编程的技巧

    中使用 SCL 语言编程的技巧 前言:两年半前我就在工控网上发表了有关 SCL 编程的知识 << 在 S7300400 型 PLC 中使用高级语言编程 >>, 但发表完 后,即 ...

  8. c语言编程员工信息排序,员工工资管理系统(c语言编程)

    <员工工资管理系统(c语言编程)>由会员分享,可在线阅读,更多相关<员工工资管理系统(c语言编程)(6页珍藏版)>请在人人文库网上搜索. 1.include #include# ...

  9. 单片机c语言编程要点,第1章单片机的C语言编程_2015要点.ppt

    第1章单片机的C语言编程_2015要点 1-* 第 1 章 结束!谢 谢! * * 1-* 三.对存储器和外接I/O口的绝对地址访问 例: #include #define com XBYTE[0x0 ...

最新文章

  1. beyond compare比较工具设置
  2. android 动画 返回,Android TranslateAnimation在动画后重置
  3. Map与object的区别
  4. 使用C#实现Windows下无焦点窗体
  5. Android Service的思考(4)
  6. salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件
  7. autoencoder自编码器原理以及在mnist数据集上的实现
  8. iPhone 居然能当公交卡刷了?!
  9. Node中POST请求的正确处理方式
  10. oracle索引大小暴增_Oracle创建索引前估算索引大小(dbms_space.create_index_cost)
  11. Tkinter教程之Button篇
  12. 【非同局域网】vue调取本地后台服务解决方法
  13. BAT布局SDN!Barefoot获阿里巴巴和腾讯2400万美元投资
  14. 中国第一批程序员的“青春饭”已经恰完了,35+的程序员该何去何从?
  15. android和MTKP60区别,联发科P60和高通骁龙660哪个好?骁龙660与联发科P60区别对比详细评测...
  16. 电视软件测试项目怎么做,LED_TV液晶电视软件测试用例.doc
  17. android修改自动背光,android 背光控制
  18. GTID 模式 - 通过跳过事务解决主从故障
  19. 计算机二级C语言题型分值占比+考试要求+考试内容
  20. Q妹教你赚外快:如何把微信聊天记录写入文件

热门文章

  1. sql 判断记录是否存在_判断数据库是否存在该条记录,count(0) or limit
  2. 一个空值_java匠人手法优雅的处理空值
  3. html页面懒加载灰度图片大小,小程序初级指南--图片及其优化
  4. 从0搭建一个Springboot+vue前后端分离项目(七)完善前台与后台的联系,完善功能接口
  5. CTF-RSA共模攻击 和 非共模攻击解密脚本
  6. Json和XML之间的对比
  7. python3中使用subprocess模块执行外部命令
  8. python函数后面有多个括号怎么理解?
  9. java synchronized关键字_Java:手把手教你全面学习神秘的Synchronized关键字
  10. 成功案例_网络营销成功案例分析