转载,程序员的发展(2)

1、C/C++语言程序员

 

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

 

记住,千万不要偷懒,不敲进去,自觉得聪明, 能看懂, 或者直接从光盘复制。偷懒的代价是会花费更多的时间学习,最后尚未学会,给本身的自信心形成巨大打击,不再想学程序了。编程

 

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

 

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

 

通过两本书的磨练, 估计你对C/C++确定有比较深刻的了解了, 下来应该能够进入实战了。设计模式

 

2、带界面的应用程序服务器

 

      学会了C/C++语言自己,可能尚未什么成就感,毕竟都是控制台的程序, 总是输出一串字符串, 成天面对各黑框框,成就感估计不是那么爽。要是能搞个带UI界面的程序就爽了。网络

 

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

 

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

 

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

 

3、网络应用程序

 

      语言搞懂了,UI程序也会了, 下来该学学网络咯, 如今那个程序不须要联网啊,懂网络对你理解不少程序很是有帮助。可是网络应用程序从哪里入手呢 ?

 

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

 

4、文件操做

 

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

 

5、深入理解内存与指针的关系

 

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

 

6、仔细研究apache源码

 

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

 

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

 

7、修炼C++

 

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

 

8、深研设计模式

 

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

相关文章
相关标签/搜索