您的位置:首页 > 理论基础

[心得]怎么样赶超计算机科班生

2016-10-03 13:14 106 查看

前言

每次换互联网的工作,如果不是计算机专业毕业,即使你来自名校,对方心里还是打鼓啊,毕竟隔行隔山。你需要自己打好基础。丑话说前头,不要相信有什么南山捷径,你需要的是实干,马上行动,勤能补拙是良训,一分辛劳一分才。

我这边博文结合自己的体会,综合知乎的一个话题:http://www.zhihu.com/question/21405835展开。

认知

首先,不要被科班不科班的搞晕,就像外校考清华一样,你考进去了,那就是考进去了,清华的很多土著,如果成绩末流,一起考场pk,胜负未定也。清华本科土著很多不就是当年高考这么杀进来的么。早几年前,大家都是泥腿子出来的呢。

其次,不要被现状所困扰,你现在是应届生,是搞测试的,是文科生,这些都不要紧,你得有梦想,并且坚决执行,用行动和结果来激励自己。

其次,计算机有很多方向。但有很基础的东西,比如编码,算法,数据结构,这些是非常基础的东西,花时间练习是必须的。这个地方绝对不要犯懒。

最后,好记性不如烂笔头,多年的经验积累,一定要往外输出分享,这个也很重要。工作之后,这点更是会有深刻体会。

实干

先看科班的核心课程:

数据结构和算法

操作系统Tanenbaum

数据库系统

分布式系统

TCP/IP详解

再看一些方向,比如最近热门的人工智能。传统的那些分支,比如状态空间搜索,约束问题,推理,规划,知识表达,已经非常冷门了,所以反过来那些热门的分支都出去自立门户了,比如机器学习,自然语言处理,计算机视觉,机器人。

程序语言分3部分:

1. 语法学:编译原理,不过像关于《计算理论》(包括《形式语言与自动机》)
<Introduction to the Theory of Computation> (Michael Sipser)
不用去看了。美国大学CS特别强调‘计算理论’相关的课程,做学术的话这些东西可能会用到,但是干程序员的话这些东西基本上不会用到。

2. 语用学: 语用学其实就是比较和总结各种各样程序语言的共性和区别。
<Programming Language Pragmatics> (Michael l. Scott)
。除了C/C++和Java外,值得推荐的还有用于脚本的Python,用于网页的PHP和用于动态效果的Javascript。

3. 语义学:计算机程序的构造和解释》
(<Structure and Interpretation of Computer Programs>)
,这部分不用浪费时间。

系统工程

高级Unix环境编程APUE

操作系统
<Modern Operating Systems> (Andrew S. Tanenbaum and David J. Wetherall)


计算机网络
<Computer Networks> (Andrew S. Tanenbaum and
b2de
David J. Wetherall)


UNP:unix网络编程

CSAPP:深入理解计算机系统

数据库系统概念:
<Database System Concepts> (Abraham Silberschatz et al.)


软件工程:
<Software Engineering: A Practitioner's Approach> (Roger Pressman and Bruce Maxim)


Lucida(巩朋)是Google员工,他有一个程序员必读书单:

http://link.zhihu.com/?target=http%3A//lucida.me/blog/developer-reading-list/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: