论坛首页 编程语言技术论坛

成为跨平台的C++程序员

浏览 57998 次
精华帖 (4) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2010-03-26   最后修改:2010-03-26
C++

最近看到javaeye 上的坛友,想达到
“有勇气说自己会c++,标准c++,而且能跨平台” 这样的目标。身边有不少想学习C++的朋友,就这个问题,说说我的理解

跨平台的C++程序员也曾是我的目标,不过多年来,我只有在windows和 unix 下的开发经验,所我的经验来自于这两大平台。

带具体任务进行学习

如果没有具体的任务做为目标,你的学习将没有效率可言,并且知识都本都停留在书面上,过段时间,你又基本上都忘记。


因此在学习C++过程要不断给自
己设定任务。 并且将这个任务不断非富,不断重构


以下我举例来说明:

编写双人对弈的五子棋 ver 1.0

在unix下使用GCC  + MAKE +  VIM (跨平台的编辑器)
来完成这个任务,熟悉C++的基本语法,学习使有类或者结构来表达领域的概念。在这个期间尽可能的少用库(除非不得已),界面显示是次要问题,在控制台上
显示即可。

达到标准: 五子棋可以双人对弈,源代码有信心给人看, 基本符合代码大全的标准 : )

目的:  GNU下的开发环境,  C++ 程序对 类、指针、基本算法、内存管理问题 的学习。

五子棋 ver 2.0 (重构 ver 1.0)

自己学习模版、STL 以及 Boost  然后来重构之前的 ver 1.0 版本。 尽可能的使用STL, 使用boost  的
smarty 智能支持来管理内存。

达到标准: 程序代码行数要减少至原来的 50% 以下。

目的: 对泛型抽象及模板技术的初步学习以及熟悉 STL 库和 BOOST 库

五子棋 ver 3.0  (增加对弈结果保存以及复盘的功能)

加上以上两个功能,需要做不少的工作。要考虑各种外部资源不满足的情况。

达到标准: 功能上满足要求, 并且能实现破坏性测试( 存盘文件不存大, 棋局文件内容错误)

目的:     数据保存、对象序列化、  异常、异常安全、外部资源管理的学习

五子棋 ver 4.0  (支持网络对战)

学习网络编译,基于TCP来实现

五子棋 ver 5.0  (支持与电脑对战)

进行算法的学习,提供人工智能能力,并有难度级别

五子棋 ver 6.0  (提供可操作的界面)

可操作的界面,可以是windows 下的, 也可以是linux  还可以考虑与python 结合 学习混合编程。 另外这个只影响界面层的代码。

达到以上6个版本,你已经是一个跨平台的标准C++的程序员,以后完全可以自己来解决C++领域的大部份问题。 另外你的这个作品,对于找工作来说,已是利器,无往而不胜

在学习过程注意几点:

  • 除了版本1.0 和 6.0 外,程序要尽可能的使用标准库,跨平台的库
  • 放弃使用便捷的IDE,  在unix 下   vim + gcc + gdb + make   才是C++开发的主流.


有选择的阅读
C++ 书藉非常之多, 其它如设计领域、网络编程、多线程多进程编程、界面开发 等资料十在是太多。你无法全部读完,还是有选择的来阅读。
书一定要区分这书是手册类型的,还是系统理论型

的。
前者在需要时查就可以,后者则需要精读,有了实战后再读。

推荐几本需要精读的书

  • 《深入理解计算机系统》
  • 《C++ 程序设计语言》
  • 《代码大全》
  • 《C++ 语言的设计和演化》
  • 《C++ Templates 中文版》
  • 《unix环境高级编程》


 

豆瓣上我推荐的书单  http://book.douban.com/doulist/518190/

其它的书找点电子版来读吧,或以后再读。


blog  http://zuowj.com

 

   发表时间:2010-03-26  
受教了,推荐的书可以写清楚作者和出版社吗
0 请登录后投票
   发表时间:2010-03-26  
受教啊,正在想有什么有意思的程序可以做
0 请登录后投票
   发表时间:2010-03-26  
个人觉得行业积累更重要,跨不跨平台要看所从事的行业或者产品。
但如果连一个新平台的开发学习起来都麻烦,我认为很难成为优秀的程序员。


喜欢用ide开发的人票过,能节省时间就节省时间有何不可。
0 请登录后投票
   发表时间:2010-03-26  
用ide的人是聪明的,除非没法选择!
0 请登录后投票
   发表时间:2010-03-26  
•放弃使用便捷的IDE,  在unix 下   vim + gcc + gdb + make   才是C++开发的主流.

--- 自虐型
0 请登录后投票
   发表时间:2010-03-26  
做了多年的java 对于C或C++已经没有想法,骨子里的深处还是想学的
0 请登录后投票
   发表时间:2010-03-26  
C++在一个平台搞深入已经不容易,跨平台还得靠移植库。
0 请登录后投票
   发表时间:2010-03-26  
haoshuo 写道
受教了,推荐的书可以写清楚作者和出版社吗


豆瓣上我推荐的书单  http://book.douban.com/doulist/518190/
0 请登录后投票
   发表时间:2010-03-26  
ray_linn 写道
•放弃使用便捷的IDE,  在unix 下   vim + gcc + gdb + make   才是C++开发的主流.

--- 自虐型


有很多unix 环境,如我工作用过的 freebsd 在线服务器,都不充许装图型环境,那你用什么IDE?
另外,学习好了vim 到处使用,有何不好? 一种好的习惯可以受益一辈子

0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics