1
jjx 2014-07-14 20:47:43 +08:00
将里面的c++换成go 就好了
|
2
ispinfx 2014-07-14 20:48:19 +08:00
数据结构和算法是不是可以放前一点?
|
3
xcc7624 2014-07-14 20:49:09 +08:00 1
这种计划对于90%的人来说,都是不靠谱的。
|
4
itsuibi OP @xcc7624 谢谢您的意见,请问您认为哪里比较不靠谱呢?如果是怕坚持不下来的话这块的话,这方面我对自己有信心,我现在每天坚持着自己一天要看多少页,当日的事情当日完,如果是其它方面还请您指正。
|
5
missdeer 2014-07-14 20:57:20 +08:00 1
linux那几本不需要,有unix那几本就够了。shell没提及,数据结构一本够了,mysql暂时没必要吧。
加一本《代码大全》吧,如果你看这书经常有种惺惺相惜的感觉,那至少是中段以上水平了。 |
6
TankyWoo 2014-07-14 20:57:54 +08:00
《windows核心编程》如果想看,看下上册就行了,其实我想说不是很有必要去看。
视频就免了,浪费时间,尤其“c语言也能干大事”,这都是些神马玩意。。。 至于其他的书,没有一个绝对的顺序,都是经典的书,都值得看,但是: 学习路线这玩意不是一个靠谱的东西,尤其在你还没有接触这个技术或这本书时。你只管学就行了,后面的路线自然会清晰,你会知道自己接下来应该去选择哪本书来学习。 话说你上面列过的书,在大学时我大部分都看过了 有些属于基础书,可以看个2遍,有些是经验书,不必强制去看,把目录翻下,隔段时间翻下自己感兴趣的章节就行。 |
9
jianzong 2014-07-14 21:04:23 +08:00
前几天提过一个类似的问题:/t/122273,可参考。
|
10
WildCat 2014-07-14 21:11:12 +08:00 2
一页一页看完你可以去BAT当CTO了
|
12
allenforrest 2014-07-14 21:19:22 +08:00 1
书单有点多。
你需要先明确一下,学 Linux 是为了学习在 Linux 平台上开发应用?还是 Linux 内核和驱动开发?是服务器还是嵌入式?明确了这部分后,书单会精简很多。 不过看你既然很痴迷 C++,应该多半是 Linux 服务器的应用开发? C++的书,你书单里的 C++ Prime 和 Effective C++ 看完就差不多了,重点是吃透,然后大量的操练。 总得来说,希望精简掉至少一半的书,增加大量的实际项目操练。 |
13
lequiet 2014-07-14 21:25:22 +08:00
其中的书和类似的书都有看过,曾经还在读书时也这么列出自己想看的书但是不了了之了,现在证明,用到什么看什么才是王道,补基础的话可以看看《深入理解计算机系统》。多用Python。 学linuxC/C++的话,要明白你自己学了想做什么。C/C++的书一开始不要看太多,应该边用边学。
|
14
lequiet 2014-07-14 21:27:38 +08:00 1
列出的书的顺序完全没有什么逻辑和意义。非要从这堆书里挑的话,<UNIX网络编程>,<TCP-IP>, <数据结构>, 其它的先不用看。
|
15
xuwenmang 2014-07-14 21:41:39 +08:00 2
单纯看书就一个作用:浪费时间。不动手一个月后忘光。。。反正我是这样。
|
16
Kabie 2014-07-14 21:59:41 +08:00 1
...脱离实践怎么看都没啥长进的。。。
|
17
bengol 2014-07-14 22:01:07 +08:00 1
把Unix环境高级编程和Unix网络编程看完看懂就够猛的了
|
18
tjmao 2014-07-14 22:07:19 +08:00 via iPhone
准备应聘什么开发职位?举几个例子:数据库?网络?图形界面?内核驱动?嵌入式?编写图形界面,C艹是用得着的。
读这么多书,你自己准备了足够的时间吗?全日制高等学校计算机专业工学士学制为肆年,以你的情况,大概两年就能学完。既然自学,去考个文凭吧。不亏。 计算机专业设有一些通识性质的课程,主要介绍计算机的发展史、计算机和科学与工业的关系、计算机的构造及其设计理念、数据通信与计算机网络、信息安全、最近10年的研究方向和进展等,我觉得你更需要补补这个。 另:多学数学,多学英语。 |
19
assassinpig 2014-07-14 22:15:06 +08:00 1
书太多了,cpp书多易学难用, 建议还是有点针对性的拿一个方面来搞点项目,不然只有cpp的话,学习周期长不说万一到最后还没核心竞争东西的话就不值得了
|
20
tonyluj 2014-07-14 22:18:17 +08:00 7
正巧也在朝这个方向努力(后端工程师),不过我不太打算深入学习C++,并且我也掌握一些其他可以赚钱的技能,譬如Python和Go(一半大公司才有,或者游戏后端开发)
基础(没基础,下面的书就不要看了): 操作系统 Minix作者写的,刚退休,泛泛的讲了操作系统,务必熟悉 深入理解计算机系统,不错 数据结构,找一本靠谱的即可,大话也可以 算法,看 Sedgewick的算法即可,算法导论也不是很难,跟数学关系不大,主要还是逻辑思维能力 Linux: APUE,不看这本书都出门都不好意思和别人打招呼,缺点是面面俱到,针对Unix,没有特别倾向于Linux Linux Kernel Development by Robert Love 介绍内核,比深入理解Linux内核简单通俗点 Linux System Programming by Robert Love 比较喜欢看Love的书 深入理解Linux内核 内容稍多 UNP,内容稍旧,也就看看Socket,了解一下过时的poll/select,最新的epoll/kqueue直接看源码吧 LDD,看看驱动也无妨 TCP/IP V1 必须要看,TCP/IP三四次握手,流控,滑动窗口,RTT,状态图,必须信手拈来 C: TCPC 经典啊,不能不看 C专家编程,讲了讲C语言的事情,务必掌握C各种数据类型占用内存,const使用,C程序在内存的结构BSS等等 C指针与陷阱 C标准库 Python: 官方Doc 从项目中获取经验比看书印象深刻 C++: 我一直当带class的C用,C++目的就是一个多范式的语言,怎么用,怎么选择是自己的事情 STL/EffectiveCPP不错 C++对象模型也不错 source code: 推荐memcached 少,libevent redis Nginx 必看 python的有tornado\gevent(libev)\twisted(不看也可以) 其他技能: VIM/emacs 选一个,推荐vim GDB必备 makefile要会 git要会 要完整的做下来,大概需要1-2年左右,并且做Linux C开发稍微枯燥一点,别人写个Android小游戏正在向像别人炫耀的时候,别放弃别懊恼~~~北大青鸟培训Android的老多了,为啥很少有培训Linux开发的~~~ 葵花宝典给了LZ,如果楼主能完整的做下来,大概能满足腾讯/阿里的后端/系统工程师的要求~~~ |
21
tonyluj 2014-07-14 22:22:45 +08:00
打的稍快有基础错误,
TCPL the c programming language K&R 写的 python也可以开发后端: 一般是python + gevent / python(pypy) + twisted go最适合开发后端了,不少MMOG游戏后端已经用Go,七牛也是Go nodejs个人看不好,它能做到的别人都能做到,它做不好的,别人依然做的很好 |
22
GPU 2014-07-14 22:29:55 +08:00
@tonyluj 我也刚刚开始接触学习C 也是在看K&R的那个 .
我是打算把C 理解一下 , 然后用学习 go 去写我自己的需要的东西 ,因为貌似用C 做后端有点什么那个说不出来. 还有层主是否 可以说一下啊 有哪些方便的知识学习有助于学编程呢 ? 很多人都零零碎碎的说 什么 数据结构 微机原理这些 . 能否谈一谈呢? |
23
itsuibi OP @allenforrest 嗯嗯,谢谢您的指点,正如您说的我想做服务器方面的开发,还有您提到的大量的练习,我也想做实际的项目,我仅仅是把书上的习题和例子敲了出来,关于项目实在是太空白了无从下手。
|
24
luoqeng 2014-07-14 22:31:02 +08:00
书随便翻翻就可以了,直接上代码来的直接些,比如弄个编译器前端,OS内核,TCP/IP协议栈的源码。 你看这样基本都全面覆盖了。
|
25
iptux 2014-07-14 22:36:03 +08:00
把日常用的操作系统换成 Linux
|
26
tonyluj 2014-07-14 22:40:33 +08:00
@GPU “有哪些方便的知识学习有助于学编程呢 ? ”
操作系统 —》 C -》数据结构(里面多少有点算法) —》 Let's Go 当Go熟练的时候,开发过几个项目之后,你就会不知不觉的需要了解底层,这些以后再说也不晚 |
27
itsuibi OP @tonyluj 谢谢您解惑,关于项目实践多练习,你能否说的详细些,我也想边看书边做项目,可是这个项目却无从下手。
|
28
allenforrest 2014-07-14 23:12:38 +08:00
@itsuibi
可以尝试用 C++ 在 Linux 上写一个简单的 HTTP Server,这样能用到你学习到的 C++ 语言、网络编程、多进程/线程、并发处理、STL、数据结构等等,麻雀虽小,五脏俱全。 总代码量不会很大,但是能学到和巩固的知识太多了。 |
29
tonyluj 2014-07-14 23:14:03 +08:00
@itsuibi
首先从APUE上,把每个重要的例题都敲一遍,重点是文件IO进程线程这些 然后看UNP吧,看TCP/IP、socket、select/poll这些就差不多,SCTP这些都没人用,不用看了,然后从网上搜搜epoll,学习一下。在看这些的时候 一定要动手看看源代码,推荐FreeBSD+Linux一块看,比如netinet/in.h这个头文件中sockaddr_in结构体,Linux 下的就和FreeBSD下就不一样,顺遍谷歌一下,印象肯定很深。 这时候,可以写一些Demo项目:比如单进程TCP服务器(从最简单的echo开始),多进程、多线程、select、一直到epoll。 然后对Linux 网络编程有初步了解 之后可以看看memcached的源代码,从网上找份别人整理的文档,调重要的部分看一下。 然后自己实现一个简单的。期间可以学学libevent或者libev这两个库(推荐libev)。 然后可以找份文档,看看Niginx源代码,这个可是好东西。Tengine(阿里fork的nginx)的文档不少 然后自己实现一个,简单的就可以 期间你可能需要温习TCP/IP的知识,了解HTTP的知识。 到这里,基本能满足校招或者初级后端工程师或系统工程师的能力需求了 当然必不可少的要刷题~~~leetcode 剑指offer 编程之美 微软100题 等等~~~ |
30
bnpysse 2014-07-14 23:23:15 +08:00
建议还是不要看太多的书,找一本中级左右的,从头做一遍程序就差不太多了。如果中间遇到什么问题,可以尽量多Google一下嘛。
类似编程这类需要动手的,光看书效果并不好 |
31
YouXia 2014-07-15 01:23:27 +08:00
Linux C/C++ 学习曲线太长,如果只是想找个不错的工作的话,不建议跳此坑。
|
32
hualuogeng 2014-07-15 07:14:47 +08:00 via Android
csapp打个基础。
|
33
xixi10111011 2014-07-15 08:56:03 +08:00
|
34
dingyaguang117 2014-07-15 09:40:50 +08:00
@tonyluj leetcode 什么时候火的
|
35
xgdyhaiyang 2014-07-15 10:49:21 +08:00
给LZ再推荐一本:《深入理解计算机系统》
C++不是必要的,Python 可以看一下。 不需要两年,我2010年大三开始走你现在打算走的路,只花了半年,就拿到了腾讯暑期实习offer. |
36
itsuibi OP @xgdyhaiyang 可是我没有学历哎...估计没戏
|
37
duzhe0 2014-07-15 12:19:36 +08:00 1
书不在多, 在精。 同类型的书看一本就够了, 太过深究细节的书也不要花太多时间。
帮你做些减法 ---- C++标准程序库 深度探索C++对象模型 EffectiveC++ STL源码剖析 ---- 这几本只看第一本就可以,而且最好放在算法导论后面 ----- Linux编程一站式学习 (正在看) linux系统编程 Unix环境高级编程 Unix网络编程 -------- 前两本估计内容相似,都是linux编程入门书籍,内容泛而不精, 选一本快速过一遍即可。 后两本太过经典,只涉及标准UNIX系统接口和核心C库接口,需要精读。 ------------- 数据结构(C语言版) 严蔚敏 大话数据结构 算法导论(这个我的数学功底太差,不知道能否看的明白搁到最后) ---------------- 只看最后一本即可 -------------- 数学之美 TCP/IP协议详解-卷一 深入python 高性能MYSQL(第三版) ----------------- 数学之美没看过,不评价 TCP/IP协议详解 我感觉有点老,可以考虑换成国内的教材《计算机网络》 python的话真不知道有什么书值得推荐,但我觉得你更应该先学Shell 高性能MySQL并不是一本mysql入门书 |
38
duzhe0 2014-07-15 12:26:30 +08:00
我建议的书单:
算法导论 深入理解计算机系统 linux系统编程 Shell脚本学习指南(非常重要) UNIX环境高级编程 计算机网络 UNIX网络编程 边读书边实践是非常重要的,装一个linux的虚拟机, 多折腾折腾 |
39
itsuibi OP @duzhe0 谢谢您给我一个清晰的思路,忘记说了,我已经装了centos 看的时候也都在机器上敲了,也认真的看了每个人的热心解答,关于建议我不要只看书,我应该怎么实践呢,只是书上的例子我自己也感觉有点少,不知道如何选择适合自己的项目。
|
40
duzhe0 2014-07-15 13:36:42 +08:00
实践就是说看书的同时把代码敲一下,编译运行一下看看效果,加深印象和理解。看完以后, 也可以选择写一个简单的ftp服务器, http服务器之类的东西练手。能找到一份相关的工作是最好的,就不愁不知道干嘛了
|
41
MarioLuisGarcia 2014-07-15 18:28:36 +08:00
@xcc7624 个位数的9没有了,还有小数部分的9
|
43
hellogmh 2015-07-21 21:39:19 +08:00
@xixi10111011 我跟你有一样的想法,但是任何时候都可以华丽转身,就看舍不舍得放弃!
|
44
HowToMakeLove 2017-05-05 13:44:19 +08:00
3 年了,楼主我问你,你现在学的怎么样了?
|
45
itsuibi OP @HowToMakeLove 3 年了,还有人关注谢谢,生活仍在继续,理想还未达到;有些事不是想就可以达到,我败给了生活。
|
46
KaGa 2018-11-16 09:26:51 +08:00
四年了,楼主学的怎么样了?
我也是刚开始自学编程,发现书单跟楼主差不多,只是我学完 C 语言就学了数据结构与算法( C 语言描述),还有 C++ primer plus,Python Cook Cook,STL 源码剖析,鸟哥的 Linux 私房菜和一点点 Java,l 明年就毕业要去找工作了,嗨呀,好焦虑啊。 最近在练标准指法打字,因为发现编码盲打总是出错..... |