CS学习
作者:匿名用户
链接:https://www.zhihu.com/question/27368268/answer/36464143
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://www.zhihu.com/question/27368268/answer/36464143
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1、从C语言开始,推荐《C语言的科学和艺术 (豆瓣)》,本身自带一个图形库,例子生动形象,感觉比《C语言现代方法》、《C Primer Plus》更加适合入门;
2、然后是数据结构,推荐《数据结构与算法分析 (豆瓣)》
这些都是最基础的知识,与平台无关
---------------------------------------------------------------------------
3、之后是《Unix/Linux编程实践教程 (豆瓣)》,在这里你会学习到如何实现 ls ,who, cp之类的命令和一个简单的的Shell,参考 Coreutils - GNU core utilities;
4、写一个图像处理库,参照libpng,另外;写一个Unicode转换库;写一个IDv3 处理小工具,可以参照(http://showian.pixnet.net/blog/post/26672736-%E6%95%B4%E7%90%86%E4%BD%A0%E7%9A%84mp3%E5%92%8Cid3%E6%A8%99%E7%B1%A4)推荐的软件;写一个快速拷贝工具(FastCopy);文件去重工具;
这里涉及到Linux系统,文件处理,文件夹处理,编码转换等常见知识,可以取得成就感,使学习不再枯燥。
-----------------------------------------------------------------------------
5、阅读[Glib](GLib Reference Manual)的源码,特别是数据结构部分,阅读源码之前可以先看看《C语言接口与实现 (豆瓣)》,也可以相互对照,使用其中的原则重构自己的程序;
6、写一个玩具系统,国内可以看《Orange'S:一个操作系统的实现 (豆瓣)》,可能涉及到一点汇编,不过很少;
基础已经打好了,当个期末大作业什么的也可以,还可以给妹子吹牛说寒假一个月写了个操作系统~~~
-----------------------------------------------------------------------------
7、学习一下GTK+和GObject,面向对象部分可以参看《Object-oriented Programming with ANSI-C》http://www.cs.rit.edu/~ats/books/ooc.pdf
8、用GTK+和Cairo写几个小游戏,比如扫雷、数独、雷电;
-----------------------------------------------------------------------------
*9、数值计算(个人爱好);
*10、写一个音频处理库(参照deadbeaf http://deadbeef.sourceforge.net/,不依靠GStreamer);或学习调用GStreamer,实现一个播放器(以前写的IDv3库有用武之地了);
11、学习使用SDL2.0,Simple DirectMedia Layer,看看别人如何实现图像库的(重构自己的libpng);
-----------------------------------------------------------------------------
12、继续学习算法,推荐《算法设计与分析基础》,实现一个自定脚本语言,参照Lua;
13、用SDL、GTK+、Lua、音频库组合到一起,写一个类似游戏开发大师的软件,比如 http://openrpgmaker.sourceforge.net/;
-----------------------------------------------------------------------------
14、学习汇编,推荐《汇编语言 (豆瓣)》,同时推荐阅读 《编码的奥秘 (豆瓣)》《深入理解计算机系统 (豆瓣)》;
15、学习优化(Profile);
16、用SSE,AVX优化自己写的图形库,音频库,数值计算库;
-----------------------------------------------------------------------------
17、学习C++;
18、学习OpenGL;
19、学习C++;
学习C++;
学习C++;
学习C++;
据说C++是学不完的
-----------------------------------------------------------------------------
如果不学C++的话
17、计算机网络(Unix Network Programming, Volume 1 (豆瓣))
18、Python
想干什么就干什么吧,已经没有东西可以难到你了
-----------------------------------------------------------------------------
以上全是编的
那些书都没有看过
找工作也没有人会问
才不知道什么Linux、VIM、Git、GCC、CMake呢
据说学校里编程最厉害的人都用XP和VC6.0,还有自动提示,嘤嘤~~~~~
2、然后是数据结构,推荐《数据结构与算法分析 (豆瓣)》
这些都是最基础的知识,与平台无关
---------------------------------------------------------------------------
3、之后是《Unix/Linux编程实践教程 (豆瓣)》,在这里你会学习到如何实现 ls ,who, cp之类的命令和一个简单的的Shell,参考 Coreutils - GNU core utilities;
4、写一个图像处理库,参照libpng,另外;写一个Unicode转换库;写一个IDv3 处理小工具,可以参照(http://showian.pixnet.net/blog/post/26672736-%E6%95%B4%E7%90%86%E4%BD%A0%E7%9A%84mp3%E5%92%8Cid3%E6%A8%99%E7%B1%A4)推荐的软件;写一个快速拷贝工具(FastCopy);文件去重工具;
这里涉及到Linux系统,文件处理,文件夹处理,编码转换等常见知识,可以取得成就感,使学习不再枯燥。
-----------------------------------------------------------------------------
5、阅读[Glib](GLib Reference Manual)的源码,特别是数据结构部分,阅读源码之前可以先看看《C语言接口与实现 (豆瓣)》,也可以相互对照,使用其中的原则重构自己的程序;
6、写一个玩具系统,国内可以看《Orange'S:一个操作系统的实现 (豆瓣)》,可能涉及到一点汇编,不过很少;
基础已经打好了,当个期末大作业什么的也可以,还可以给妹子吹牛说寒假一个月写了个操作系统~~~
-----------------------------------------------------------------------------
7、学习一下GTK+和GObject,面向对象部分可以参看《Object-oriented Programming with ANSI-C》http://www.cs.rit.edu/~ats/books/ooc.pdf
8、用GTK+和Cairo写几个小游戏,比如扫雷、数独、雷电;
-----------------------------------------------------------------------------
*9、数值计算(个人爱好);
*10、写一个音频处理库(参照deadbeaf http://deadbeef.sourceforge.net/,不依靠GStreamer);或学习调用GStreamer,实现一个播放器(以前写的IDv3库有用武之地了);
11、学习使用SDL2.0,Simple DirectMedia Layer,看看别人如何实现图像库的(重构自己的libpng);
-----------------------------------------------------------------------------
12、继续学习算法,推荐《算法设计与分析基础》,实现一个自定脚本语言,参照Lua;
13、用SDL、GTK+、Lua、音频库组合到一起,写一个类似游戏开发大师的软件,比如 http://openrpgmaker.sourceforge.net/;
-----------------------------------------------------------------------------
14、学习汇编,推荐《汇编语言 (豆瓣)》,同时推荐阅读 《编码的奥秘 (豆瓣)》《深入理解计算机系统 (豆瓣)》;
15、学习优化(Profile);
16、用SSE,AVX优化自己写的图形库,音频库,数值计算库;
-----------------------------------------------------------------------------
17、学习C++;
18、学习OpenGL;
19、学习C++;
学习C++;
学习C++;
学习C++;
据说C++是学不完的
-----------------------------------------------------------------------------
如果不学C++的话
17、计算机网络(Unix Network Programming, Volume 1 (豆瓣))
18、Python
想干什么就干什么吧,已经没有东西可以难到你了
-----------------------------------------------------------------------------
以上全是编的
那些书都没有看过
找工作也没有人会问
才不知道什么Linux、VIM、Git、GCC、CMake呢
据说学校里编程最厉害的人都用XP和VC6.0,还有自动提示,嘤嘤~~~~~