C++学习计划

 作为一个经验丰富的C/C++程序员, 肯定亲手写过各种功能的代码, 比如封装过数据库访问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件访问的类, 封装过UI界面库等, 也在实际的项目中应用过, 但是回过头仔细想想,其实以前自己写过的这些代码,只能是在特定的项目或者特定的环境中使用, 对于自己来说, 在不同的项目中应用, 只需要复制代码, 改改也就可以了, 因为自己写的代码自己很熟悉。问题是, 你封装的这些库, 在给别人使用的时候, 别人用起来是否很方便, 跨平台方面是不是也很通用, 性能是不是足够的好, 是不是支持多线程, 功能是不是也足够强大,可以适用于各种不同的需求。如果你上面这些都做到了, 证明你在这个库上确实花费了一番功夫, 经过了持续的改进和优化。

       在日常的开发中, 作为一个程序员, 很多东西已经没有必要再重新开发了, 可以直接拿过来使用, 毕竟21世纪都已经过了N年了。我们没有必要重新发明轮子(不可否认发明轮子的过程可以学到很多东西,我就是这么走过来的)。

       下面结合自己多年的开发经验, 想到哪里写到哪里, 希望对新人有一定的帮助。

        一、网络

              网络库必须掌握 ACE 和 libevent, 一个是重量级的网络库, 一个是轻量级的网络库。仔细想想,现在那个程序不用网络啊。不懂网络, 你将寸步难行啊。 熟悉这两个开源库的前提是你必须懂socket的原理, 给大家推荐的好书就是 《UNIX网络编程》,看懂这本书就可以了, 其他的什么《windows网络编程》这些都不用看, 因为网络编程,你学会了伯克利的套接字, 你就可以在任何平台上进行网络编程了, 不需要学什么windows下的网络编程, 因为windows下的网络也是从伯克利套接字搞过来的, 如果你学习《windows网络编程》, 那么你那天在linux,unix下进行网络编程,你还得在学习一下。没有那个必要。

       二、数据库

             数据库嘛, 开源的Mysql和开源的PostgreSQL只要懂其中一个就可以了, 商业数据库在掌握一个Oracle就可以了,文件数据库掌握 sqlite。 不过请大家注意, 不要被上面数据库名字给迷惑了, 数据库的本质是SQL语句, 一定要懂数据库的基本原理,熟练应用SQL语言,懂数据库的优化,存储过程等。数据库的原理搞懂了, 拿什么数据库过来都轻松掌握, 就不会在乎是Mysql还是Oracle了。

 

       三、日志操作

 

             日志操作推荐大家熟悉 log4cpp这个日志库, 支持多线程, 日志重定向到网络等都有, 反正你能想到的日志的功能, 都有。

日志嘛,一个是方便查找问题, 方便记录程序运行的一些情况。这是必须的。

 

       四、管理后台

 

             众所周知, 写程序是给其他人用的,不是自己用, 所以在程序的易用性上,多给对方提供一些可以直接查看的管理界面, 显得分成重要。为程序提供一个web的管理界面,方便用户登录上去查看程序的各种信息, 很有必要。

             我这里有一个方便的web后台管理的http实现, 可以方便的集成到应用程序中。在IE里面输入监听的端口,就可以查看程序的状态。代码还没有仔细整理。有需要的弟兄可以给我留言, 给大家发。

 

       五、读取配置文件

          所有的程序都必须有配置文件, 方便配置一些项目, 为程序提供灵活性。 所以写程序,必须有读取配置文件的封装类。

       六、内存池

             所有的进程都需要分配内存, 对C/C++来说, 分配和管理内存是已经很有挑战性的工作。

             给大家推荐 nedmalloc 这个开源的内存池库。nedmalloc是一个跨平台的高性能多线程内存分配库,很多库都使用它。

       七、缓存库

             众所周知, 缓存库用得最多的就是 memcache 了。在做数据库开发的时候特别有用。

       八、脚本

             脚本是一个很有意思的东西,很多功能,其实我们只要写个脚本就可以完成,代码量少,开发速度快。

             必须掌握的脚本,比较通用的要算 perl 了, 很古老的语言,但是功能太强大了。 我可以保证的说,.net,java能干的工作,肯定可以让perl来干。 C能干的, perl不一定能干。 perl作为linux, unix的系统集成的脚本语言,必须学会。

             lua 语言, 这个语言, 在游戏行业用得比较多。不推荐学。

             python 脚本, 功能很强大, 推荐学。

        上面这些是所有程序都会用到的比较通用的功能。

        在不同的应用领域, 需要掌握不同开源库, 比如搞游戏开发的, 可能需要掌握开源的UI库CEGUI, 开源的3D引擎OGRE等。

搞分布式开发的可能会有分布式的文件系统库等。
 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,首先,你需要明确你的学习目标。你需要了解C 语言的基本概念,如变量、控制结构、数据类型等,然后着手实践,用C 语言编写一些简单的程序,以加深你对基本概念的理解。你还可以阅读一些有关C 语言的书籍,以掌握更多的知识。最后,可以尝试解决一些C 语言编程问题,以检验你的能力。 ### 回答2: 制定一份学习计划可以帮助你更好地安排C语言学习的时间和内容,让学习更高效和有条理。以下是一个示例的C语言学习计划。 1. 初步了解C语言:首先要了解C语言的基本概念、语法规则和基本数据类型等,在这个阶段可以通过阅读相关教科书、参考资料和在线教程等进行学习。 2. 练习基本语法:掌握C语言的基本语法结构,例如变量定义、控制语句、循环语句和函数等。可以通过编写简单的程序来加强对这些语法知识的理解,并进行反复的练习和代码实现。 3. 深入学习C语言:学习C语言的高级特性,例如指针、结构体、位运算和文件操作等。这些内容对于提升编程能力和解决实际问题非常重要,可以通过阅读专业的C语言书籍和参加相关课程进行学习。 4. 做一些小项目:从简单到复杂,逐渐进行一些小型的C语言项目实践。这有助于巩固之前学到的知识,培养编程思维和解决问题的能力。 5. 参与开源项目或实习:通过参与开源项目或找一份与C语言相关的实习工作来提升自己的技能和实践经验。与其他开发者互动和参与实际项目能够让你更好地理解和应用C语言。 6. 持续学习和提升:C语言是一个广泛应用的编程语言,学习永无止境。可以通过参加培训班、参考专业书籍和持续学习新的C语言特性和技术,保持自己的学习动力和对C语言的深入理解。 以上是一个基本的C语言学习计划示例,你可以根据自己的实际情况和需求进行调整。记得要坚持学习,努力实践,相信你一定能够掌握好C语言这门编程语言。 ### 回答3: 当然,我很乐意帮助你制定一份C语言学习计划。以下是一个简单的参考计划,你可以根据自身情况进行调整和适应。 第一周: 1. 学习C语言的基本概念和历史背景,了解为什么选择学习C语言。 2. 阅读C语言的语法和基本语法规则。 3. 编写简单的C程序,包括Hello World程序和一些基本的输入输出操作。 第二周: 1. 系统学习C语言的数据类型,包括整数、浮点数、字符和字符串等。 2. 学习C语言的运算符和表达式,包括算术运算符、关系运算符和逻辑运算符等。 3. 编写一些涉及数据类型和运算符的小程序,加深对其理解。 第三周: 1. 掌握C语言的控制语句,包括条件语句和循环语句。 2. 学习函数的定义和调用,了解函数的参数传递和返回值。 3. 编写一些结合条件语句、循环语句和函数的程序,加强对这些知识的掌握。 第四周: 1. 学习C语言的数组和指针,了解它们的概念和使用方法。 2. 掌握C语言中的字符串处理函数和库函数。 3. 编写一些涉及数组和指针以及字符串处理函数的程序,提高自己在这方面的能力。 第五周: 1. 学习C语言中的结构体和共用体,了解它们的定义和用法。 2. 学习文件操作函数,如打开、读取和写入文件。 3. 编写一些结合结构体、共用体和文件操作的程序,巩固知识。 第六周: 1. 复习前面学到的知识点,解答可能遇到的问题。 2. 尝试解决一些实际问题,如编写一个简单的计算器程序。 3. 阅读一些C语言的经典程序和书籍,加深对C语言的理解。 以上只是一个简单的学习计划,你可以根据自己的情况和学习进度进行调整。记住,坚持练习和实践是学习C语言的关键。祝你学习顺利!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值