随时随地学编程,自己学编程( 三 )


3、确定好编程语言之后就是基础学习了 , 基础学习的话 , 如果感觉自己自控能力强 , 完全可以自学 , 学完基础之后 , 从网上找一些项目 , 跟着项目做一次从头到尾的开发 , 这个是很有帮助的 , 项目开发可以提高自己的逻辑思维 。4、多看一些框架的源代码 , 可以学习框架的底层逻辑 , 理解原理之后 , 就能很熟练的掌握框架的使用 , 并且在查找bug的时候能够快速定位错误信息 。
初学c语言 。基础知识会了 。应该自己设计编程 , 还是去背算法?
基础知识会了 , 接下来应该可以进入实战了 。带界面的应用程序学会了C/C语言本身 , 可能还没有什么成就感 , 毕竟都是控制台的程序 ,  老是输出一串字符串 ,  整天面对各黑框框 , 成就感估计不是那么爽 。要是能搞个带UI界面的程序就爽了 。下来就看个人的志向了 ,  如果走微软路线 ,  那你下来学MFC好了 , 如果要走开源路线 ,  那开源跨平台的界面库多得是 。
你下载后看具体的例子 ,  把里面的例子程序敲到你的 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 ,  会宕机 , 运行效率很差 , 自己回头看看一年前写的代码 , 可能自己都感觉恶心 ,  看不下去 。没有关系 , 这种感觉是每一个进步青年都会有的 。要提高自己的代码水平 ,  还是要像高手学习 。你可能要问 , 公司同事的水平一般 ,  水平好的人家也不愿意给我讲 。没有关系 , 开源的代码就是你像高手学习的最佳途径 , 开源代码是高手留下的练功秘诀 ,  你看了后你会突然感觉茅塞顿开 ,  感觉自己的水平差人家太远了 。

推荐阅读