四年了自学了C/C++那么久,还写不出项目,正常吗?

前言:

这是之前在V2EX职场话题里看到的一个话题,类似的小编身边人呢也有相似的困扰。

现在大学里基本都开设了计算机课程,看了那么多相关知识性的书,但学了四年出来,仍然写不出项目,这肯定是有问题的。

那我们来看看真正的C/C++应该是怎样学习?

一. C/C++语言知识

如果你的基础很差, 要从C开始学起,对程序有个初步的认识,循序渐进。C语言的书可以先在网上学习一点,关于C大部分是免费的,把一些小项目什么的做好,然后了解C语言能做什么,怎么做,就和学英语一样。

安装Visual studio2019软件,然后一步步的执行,逐行调试去看各个变量的值。或者自行添加一些printf语句去输出变量的值。这样当你看完一本书后或者学完几个教程后,你就有编写小程序的感觉了。

接下来你就可以买一本C++的书看了。不要一来就学《C++ Primer中文版》这样的书, 因为太厚了,怕你没有信心能够看完,即便你很有信心,花费一年的时间才看完,不值得。这种经典的厚的好书, 适合作为资料查阅。

记住,千万不要偷懒,不敲代码,自以为聪明,光看就能看懂。偷懒的代价是会花费更多的时间学习,可能最后还学不会。

二. 有带UI界面的应用程序

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

是能搞个带UI界面的程序就爽了。

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

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

三. 网络编程应用程序

语言搞懂了,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, 会宕机,运行效率很差,自己回头看看一年前写的代码,可能自己都感觉恶心, 看不下去。没有关系,这种感觉是每一个进步青年都会有的。

要提高自己的代码水平, 还是要像高手学习。

七. 修炼C++

要修炼C++, 还得再花3年功夫, 才有可能练成C++高手。

C++太博大精深了,其中最复杂的莫过于泛型编程思想,不要以为能写个模板类就认为泛型编程不过如此而已。仔细看看STL源码, Boost 源码, 你就知道泛型编程有多么的博大精深了。

修炼C++, 可以从用C++封装的MFC, wxWidget入手, 看高手如何通过C++语言, 封装这样庞大的UI库,里面应用了很多的C++机制, 最典型的就是多态机制, 还有很多的设计模式应用可以研究。

点击了解更多资料,更有免费开源项目和课程等你观看哦!

猜你喜欢

转载自blog.csdn.net/weixin_45713725/article/details/109119415