作者:匿名用户
链接: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、写一个音频处理库(参照deadbeafhttp://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++;
<img data-rawheight="600" data-rawwidth="700" src="https://pic2.zhimg.com/88db9bb0658cebbc812312b44d40d781_b.jpg" class="origin_image zh-lightbox-thumb" width="700" data-original="https://pic2.zhimg.com/88db9bb0658cebbc812312b44d40d781_r.jpg">
据说C++是学不完的
-----------------------------------------------------------------------------
如果不学C++的话
17、计算机网络(Unix Network Programming, Volume 1 (豆瓣))
18、Python
想干什么就干什么吧,已经没有东西可以难到你了
-----------------------------------------------------------------------------
以上全是编的
那些书都没有看过
找工作也没有人会问
才不知道什么Linux、VIM、Git、GCC、CMake呢
据说学校里编程最厉害的人都用XP和VC6.0,还有自动提示,嘤嘤~~~~~

CS学习的更多相关文章

  1. CS学习资料百度云链接

    CS学习资料百度云链接 [0]Springboot微服务开发天气预报系统视频教程https://pan.baidu.com/s/1joz7flyztCq8oklBlsz8dQ提取密码:cpz7 [1] ...

  2. CS萌新的汇编学习之路(其实是老师作业呵呵哒)Learning of Assembly Language

    第一节课学习汇编语言,做笔记,做笔记 1.概念 首先是汇编语言这门课程的定义以及对于学习高级语言.深入理解计算机系统的作用 软硬件接口机器语言 汇编语言 高级语言 关系 机器语言和汇编语言可移植性差 ...

  3. 北美CS求学找工指南

    这篇文章主要谈谈来美求学工作这一路的点点滴滴,因为之前留言中不少同学对这方面内容比较感兴趣,有些已经在准备,有些还在犹豫,希望本文能对大家有些许帮助.因为来美的途径也有不少,有上学.有投资.有通过国内 ...

  4. 《VIM-Adventures攻略》前言

    本文已转至http://cn.abnerchou.me/2014/03/02/bfdaadb0/ 自从有了计算机,人们就想向其灌输自己的想法. 要想对其输入,自然离不开文本编辑器. 公告:<VI ...

  5. 一年四个P(Project)

    盼望着,盼望着,提高班众多革命同胞的假期终于来了.伴随着校园之中越来越多的同学身影,暑假学习时的那份静谧一散而去,恍然间在提高班学习的第二个年头也已经过去了(~_~),而自己的大学生涯也就像秋后的蚂蚱 ...

  6. 以数之名:In Praise of APL 后记

    原文:http://www.jsoftware.com/papers/perlis77.htm 标题:In Praise of APL: A Language for Lyrical Programm ...

  7. Sprint 1 Review & Daily Scrum - 11/18

    今天我们组利用课后的时间对Sprint 1阶段进行了回顾,并对接下来的工作进行了安排. Sprint 1阶段我们开始定的计划是完成最基础的背单词功能,可以让用户可以完整地走一遍背单词流程.回顾上周,我 ...

  8. Cobaltstrike去除特征

    出品|MS08067实验室(www.ms08067.com) 本文作者:BlackCat(Ms08067实验室内网小组成员) 前言: 红蓝对抗的时候,如果未修改CS特征.容易被蓝队溯源. 去特征的几种 ...

  9. 计算机电子书 2018 BiliDrive 备份

    下载方式 根据你的操作系统下载不同的 BiliDrive 二进制. 执行: bilidrive download <link> 链接 文档 链接 Webpack 中文指南.epub (40 ...

随机推荐

  1. hadoop体系架构

    1.1          Hadoop 概念:hadoop是一个由Apache基金会所开发的分布式系统基础架构.是根据google发表的GFS(Google File System)论文产生过来的. ...

  2. 总结sql用法及基础语法 第一章 三范式

    第一范式(1NF)设置了一个有组织的数据库非常基本的规则: 定义所需要的数据项,因为它们成为在表中的列.放在一个表中的相关的数据项. 确保有数据没有重复的组. 确保有一个主键. PRIMARY KEY ...

  3. 天天沉迷于皇上本宫的都是sb

    天天沉迷于皇上.本宫.奴才.太后的都是sb,时不时还要被某王和某平民的爱情感动的落泪.这是病,要治,最有效的治疗方法是38度的夏天去搬砖. 拍这些电视的人真不傻,知道真sb多,这种电视剧才能爆款.

  4. 课下测试补交(ch03 ch08)

    课下测试补交(ch03 ch08) 课下测试 ch03 1.有关gdb调试汇编,下面说法正确的是(ABCE) A . 可以用disas反汇编当前函数 B . 以16进制形式打印%rax中内容的命令是 ...

  5. ipa包兼容性大作战!WeTest iOS深度兼容测试全新升级

    2018年,移动端适配话题热闹无比,有iOS新版本新机型发布,全面屏.异形屏.曲面屏争相斗艳,从而产生了各类特殊的屏幕分辨率设备. 正是因为这些特殊分辨率,导致2018年手机设备频繁出现适配问题,如屏 ...

  6. python属性访问

    1.python属性访问魔法方法: >>> class C: def __getattribute__(self,name): print("getattribute&qu ...

  7. 通过spark-submit提交hadoop配置的方法

    通过spark提交的spark开头的配置在程序启动后会添加到SparkConf中,但是hadoop相关的配置非spark开头会被过滤掉,但是只要在这些配置的key前面添加spark.hadoop.前缀 ...

  8. Echarts服务端生成图片

    Echarts是百度发布的一套优秀的浏览器端图表控件,Echarts是基于html5的cavens绘图实现.而使用server端生成图片无法借用浏览器端渲染.通用的做法有两种: 是用headless浏 ...

  9. 【Docker】第一篇 Docker的初始化安装部署

    一.Docker基础 Dacker倡导的理念:一个容器一个进程 Docker的版本了解: Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个人 ...

  10. kubeadm 线上集群部署(二) K8S Master集群安装以及工作节点的部署

    PS:所有机器主机名请提前设置好 在上一篇,ETCD集群我们已经搭建成功了,下面我们需要搭建master相关组件,apiverser需要与etcd通信并操作 1.配置证书 将etcd证书上传到mast ...