正在自学 Linux c/c++ ,列了一个计划,麻烦您指点下,看看是否有需要补充的修改的。

2014-07-14 20:42:40 +08:00
 itsuibi
我是奔着linux c/c++ 程序员的方向努力的,下面是我自己通过google 及亦师亦友的三哥帮助写得一个计划。(我想知道如果我通过掌握这些书是否能通过面试,看一些公司的招聘条件:本人没有学历硬伤啊。)。
如题是否有需要补充的,恳请从事IT的朋友指点计划是否可行,如果可以希望能耽误您一杯咖啡的时间写下您宝贵的意见。我将感激不尽,或许因为您的指点未来将多一个从事自己喜欢职业的人。


我也想在看的途中自己试着做个小项目什么的,希望自己以后进入这个行业可以最快的上手适应。但是这方面太空白了,如果可以希望您能多说一些。
List:
已看过的书:

鸟哥的私房菜
c primer plus
c++ primer plus
windows核心编程(看了一般多吧,不打算从事win下开发就搁浅了)

视频类教程看过:

郝斌老师的c,sql,数据结构。c语言也能干大事等,有些乱有点不知道先从哪下手了…

接下来打算看的书:

打算按着这个顺序看,不清楚这个顺序是否正确
Linux编程一站式学习   (正在看)
linux系统编程
C++标准程序库
深度探索C++对象模型
EffectiveC++
STL源码剖析
数据结构(C语言版) 严蔚敏
大话数据结构
数学之美
TCP/IP协议详解-卷一
算法导论(这个我的数学功底太差,不知道能否看的明白搁到最后)
Unix环境高级编程
Unix网络编程
深入python
高性能MYSQL(第三版)

因为没有学历所以想多提高些自己,以后面试通过的概率大一些。
8845 次点击
所在节点    程序员
47 条回复
jjx
2014-07-14 20:47:43 +08:00
将里面的c++换成go 就好了
ispinfx
2014-07-14 20:48:19 +08:00
数据结构和算法是不是可以放前一点?
xcc7624
2014-07-14 20:49:09 +08:00
这种计划对于90%的人来说,都是不靠谱的。
itsuibi
2014-07-14 20:56:00 +08:00
@xcc7624 谢谢您的意见,请问您认为哪里比较不靠谱呢?如果是怕坚持不下来的话这块的话,这方面我对自己有信心,我现在每天坚持着自己一天要看多少页,当日的事情当日完,如果是其它方面还请您指正。
missdeer
2014-07-14 20:57:20 +08:00
linux那几本不需要,有unix那几本就够了。shell没提及,数据结构一本够了,mysql暂时没必要吧。
加一本《代码大全》吧,如果你看这书经常有种惺惺相惜的感觉,那至少是中段以上水平了。
TankyWoo
2014-07-14 20:57:54 +08:00
《windows核心编程》如果想看,看下上册就行了,其实我想说不是很有必要去看。

视频就免了,浪费时间,尤其“c语言也能干大事”,这都是些神马玩意。。。

至于其他的书,没有一个绝对的顺序,都是经典的书,都值得看,但是:

学习路线这玩意不是一个靠谱的东西,尤其在你还没有接触这个技术或这本书时。你只管学就行了,后面的路线自然会清晰,你会知道自己接下来应该去选择哪本书来学习。

话说你上面列过的书,在大学时我大部分都看过了

有些属于基础书,可以看个2遍,有些是经验书,不必强制去看,把目录翻下,隔段时间翻下自己感兴趣的章节就行。
itsuibi
2014-07-14 20:58:26 +08:00
@jjx 谢谢您的回复,不过我比较喜欢这个,暂时只想学习这方面的东西。
itsuibi
2014-07-14 21:00:19 +08:00
@missdeer 嗯嗯,谢谢您的宝贵意见。
jianzong
2014-07-14 21:04:23 +08:00
前几天提过一个类似的问题:/t/122273,可参考。
WildCat
2014-07-14 21:11:12 +08:00
一页一页看完你可以去BAT当CTO了
itsuibi
2014-07-14 21:14:56 +08:00
@jianzong 谢谢,认真的读了一遍很有帮助。
allenforrest
2014-07-14 21:19:22 +08:00
书单有点多。
你需要先明确一下,学 Linux 是为了学习在 Linux 平台上开发应用?还是 Linux 内核和驱动开发?是服务器还是嵌入式?明确了这部分后,书单会精简很多。

不过看你既然很痴迷 C++,应该多半是 Linux 服务器的应用开发?
C++的书,你书单里的 C++ Prime 和 Effective C++ 看完就差不多了,重点是吃透,然后大量的操练。

总得来说,希望精简掉至少一半的书,增加大量的实际项目操练。
lequiet
2014-07-14 21:25:22 +08:00
其中的书和类似的书都有看过,曾经还在读书时也这么列出自己想看的书但是不了了之了,现在证明,用到什么看什么才是王道,补基础的话可以看看《深入理解计算机系统》。多用Python。 学linuxC/C++的话,要明白你自己学了想做什么。C/C++的书一开始不要看太多,应该边用边学。
lequiet
2014-07-14 21:27:38 +08:00
列出的书的顺序完全没有什么逻辑和意义。非要从这堆书里挑的话,<UNIX网络编程>,<TCP-IP>, <数据结构>, 其它的先不用看。
xuwenmang
2014-07-14 21:41:39 +08:00
单纯看书就一个作用:浪费时间。不动手一个月后忘光。。。反正我是这样。
Kabie
2014-07-14 21:59:41 +08:00
...脱离实践怎么看都没啥长进的。。。
bengol
2014-07-14 22:01:07 +08:00
把Unix环境高级编程和Unix网络编程看完看懂就够猛的了
tjmao
2014-07-14 22:07:19 +08:00
准备应聘什么开发职位?举几个例子:数据库?网络?图形界面?内核驱动?嵌入式?编写图形界面,C艹是用得着的。

读这么多书,你自己准备了足够的时间吗?全日制高等学校计算机专业工学士学制为肆年,以你的情况,大概两年就能学完。既然自学,去考个文凭吧。不亏。

计算机专业设有一些通识性质的课程,主要介绍计算机的发展史、计算机和科学与工业的关系、计算机的构造及其设计理念、数据通信与计算机网络、信息安全、最近10年的研究方向和进展等,我觉得你更需要补补这个。

另:多学数学,多学英语。
assassinpig
2014-07-14 22:15:06 +08:00
书太多了,cpp书多易学难用, 建议还是有点针对性的拿一个方面来搞点项目,不然只有cpp的话,学习周期长不说万一到最后还没核心竞争东西的话就不值得了
tonyluj
2014-07-14 22:18:17 +08:00
正巧也在朝这个方向努力(后端工程师),不过我不太打算深入学习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,如果楼主能完整的做下来,大概能满足腾讯/阿里的后端/系统工程师的要求~~~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/122616

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX