如何成为一个牛逼的C/C++程序员? zz

这个题目的噱头太大,要真的写起来, 足够写一本书了。

 

本人是过来人, 结合自身的体会和大家交流一下,希望新人能少走弯路。

 

每个人的情况不一样,我下面的描述可能并不适合每一个看到这篇文章的人。

 

一、C/C++语言

 

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

 

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

 

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

 

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

 

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

 

二、带界面的应用程序

 

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

 

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

 

通用的并且简单的就是 wxWidget 了, 官方网站为 www.wxwidgets.org/ 。你下载后看具体的例子, 把里面的例子程序敲到你的 visual studio 里面, 去调试, 看运行的结果, 你也可以试着去修改例子, 添加按钮,响应按钮事件等。

 

走到这一步, 恭喜你,可以照葫芦画瓢的搞个小应用程序了, 还带界面。

 

三、网络应用程序

 

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

 

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

 

四、文件操作

 

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

 

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

 

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

 

六、仔细研究apache源码

 

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

 

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

 

七、修炼C++

 

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

 

八、深研设计模式

 

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Visual C++ 是一种功能强大的集成开发环境(IDE),它能够进行基于 C++ 的软件开发,并且提供了丰富的库和工具来辅助开发过程。Visual C++ 的强大之处在于它能够让开发人员编写出高效、可靠、具有用户友好界面的应用程序。 Visual C++ 的代码可以被称为“代码”,主要有以下几个原因: 1. 高性能:Visual C++ 使用了高效的编译器和优化技术,能够生成高度优化的机器代码,从而提升程序的性能。这使得 Visual C++ 在开发需要处理大量数据或需要较高计算能力的应用中表现出色。 2. 强大的库支持:Visual C++ 提供了丰富的类库和函数库,包括标准库、MFC(Microsoft Foundation Classes)、ATL(Active Template Library)等,这些库能够提供各种功能的封装,让开发人员能够快速构建复杂的应用程序。同时,还有支持多线程、网络、数据库、图形界面等的库,能够满足各种开发需求。 3. 可扩展性:Visual C++ 允许开发人员使用其他语言扩展其功能,比如使用C#、VB.NET等编写.NET代码,使用Python扩展等。这种可扩展性使得 Visual C++ 不仅适用于传统的桌面应用程序的开发,还能用于开发Web应用、移动应用以及其他各种领域。 4. 可视化开发:Visual C++ 提供了可视化的设计器和开发工具,使得开发人员能够通过拖拽、放置、属性设置等方式快速构建界面,并用代码与界面进行交互。这样的可视化开发方式不仅提高了开发效率,还能够让开发人员更直观地了解和调整应用程序的界面结构。 综上所述,Visual C++代码体现在它的高性能、强大的库支持、可扩展性和可视化开发等方面,使得开发人员能够更高效、更快速地构建出功能强大且用户友好的应用程序。 ### 回答2: "Visual C" 是微软公司开发的一种集成开发环境(IDE)和编程语言(C#或C++)的产品。它提供了丰富的工具和库,可用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序、移动应用程序等。 "Visual C"的优秀之处体现在以下几个方面: 1. 强大的功能和工具:"Visual C"拥有大量的工具和功能,如代码编辑器、调试器、图形化界面设计工具等,使开发人员能够更轻松地创建和调试代码。这些工具可以大大提高开发效率,加快应用程序的开发和部署速度。 2. 丰富的库和组件:"Visual C"提供了大量的库和组件,开发人员可以直接使用这些库来实现各种功能,如图形界面、数据库连接、网络通信等。这样,开发人员可以更快速地开发出功能完善、可靠性高的应用程序。 3. 跨平台支持:"Visual C"不仅适用于Windows平台开发,还可以用于跨平台开发。例如,使用"Visual C"可以开发出在Windows、Android和iOS等平台上运行的应用程序。这种跨平台支持使得开发人员能够更便捷地开发和部署多平台应用。 4. 社区和支持:"Visual C"作为微软公司的产品,拥有庞大的开发者社区和技术支持体系。开发人员可以通过社区和官方网站获取各种学习资源、教程、文档等,解决开发过程中遇到的问题和困惑,以及与其他开发人员交流经验和分享成果。 综上所述,"Visual C"凭借其强大的功能、丰富的库和组件、跨平台支持以及庞大的开发者社区,成为了许多开发人员的首选工具。它极大地简化了开发过程、提高了开发效率,是一款的代码开发工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值