作为一个计算机科班的学生,应该具备哪些基本的基础知识呢

2017-01-18 15:30:47 +08:00
 crayonyi

做了几年开发,发现应用层的东西怎么学都学不完。

只有底层和基础,几十年都不变。 现在想回去把基础都加深一下,提高下内功。

作为一个计算机科班的学生,应该具备哪些基本的基础知识呢?

下面每个分支都列出了参考的书籍内容。 希望大家也能提供一些建议。

http://naotu.baidu.com/file/1a0e968910ebcf1f2d7c499a90294350?token=39df775a20b4f6da

9397 次点击
所在节点    程序员
53 条回复
acumen
2017-01-18 20:16:14 +08:00
借用浙大某老师的设想
> cs 科班基础技能 github 、 command line 、科学上网、 markdown 、重复 7 次以上的动作就要写脚本...

个人感觉以上几点是最最...基本的技能。但是对于基本的深入展开还是有很多有意思的东西。反思学生时代自己...(惭愧,弱将毕业
q397064399
2017-01-18 20:54:51 +08:00
其实内功也是看你内到什么程度,如果你要练就神功,那么算法是必不可少的,可惜绝大部分时候都在调包

ML 之类的算法都是领域算法,这个比较高深,没良好的数学功底玩不转,非此领域的人士 没必要去填坑

简单的例如 算法( 4th 红书)里面讲的常见的算法,基本上只要高中数学的基础 理解+(证明)

编程语言这东西,如果是要搞自己一套语言 就推荐 编程语言的模式
(编译原理 这东西 毕竟..太厚了,实际开发中 有需要自己弄 DSL 再去看吧)

硬件相关以及计算机系统组成, CSAPP 一本足以,

再深层次的 其实跟应用开发没什么关系了, IT 行业开发的工种也是相对细分的

,要你是做 底层驱动之类 当我没说,老老实实 啃操作系统 原理之类的,别连实模式 都搞不清楚

另外应用层开发 说实话,不就那么回事,真要研究 再针对的去找书看,每个人有自己开发的领域

搞 APP 的就老老实实搞 APP ,不要想着去搞 驱动 Farmework ,那不是你的领域(除非你下决心打算 转方向)

别上来就 龙书 虎书 三大浪漫,那都是扯淡
Powered
2017-01-18 21:33:40 +08:00
数据结构算法
操作系统
网络
数据库

这四样基础务必打好
JayFang1993
2017-01-18 21:45:39 +08:00
学那么多都没用,在其他人眼里,能解决『手机好卡』『电脑死机』的问题就够了
panda1001
2017-01-18 21:48:39 +08:00
面向考研学习 面向工资工作
Cassandra
2017-01-18 23:25:14 +08:00
@crayonyi 国外的老师也自己出书,没啥奇怪的。但最重要的是国外的计算机很多情况下是没有课本的,或者课本是不那么重要的。现实的问题那么多,课本永远写不全。

与其读书,我其实推荐去锻炼自己的逻辑。看过很多人写的代码,明明很简单的问题思路但是绕了很大一个圈的。可能是因为是新手,也可能是因为没有看到问题的本质,无论哪种原因肯定是费时又费力,写出来的代码大概也不是最好的。所以我觉得思维,逻辑对于程序员很重要,看到问题的本质,考虑到全部的可能性会让你的代码很完美。以不变应万变大概是我最喜欢的东西。
murmur
2017-01-18 23:27:38 +08:00
为什么不把数据放第一位,数学不行你这辈子都是码农,数学好才有不被培训班吞掉的可能
因为培训班培训不了数学,而且数学一半真看天分
数学不仅是数学,还代表一种逻辑思维能力,有的数学不行的,不仅是编程不行,写出的代码也一堆问题,就是缺乏最基本的思考能力
你们不是推 redux 么?多干几年就能见到那种给他纸和笔画状态画流程都画不明白的,更别提说把状态转移抽象为代码了
RockiDog
2017-01-19 01:02:02 +08:00
@acumen 我猜是 FM
kingcos
2017-01-19 01:08:40 +08:00
感谢分享。。
时间好少啊!!要学的太多了!!
gxbb097528
2017-01-19 04:37:43 +08:00
我去 吓尿了
Perry
2017-01-19 07:09:19 +08:00
需求工程 (Requirements engineering) 虽然不是必要,但是可以提一下
timehzy
2017-01-19 07:59:39 +08:00
我和楼主的想法一样,作为一个非科班出身的开发者,更是急需补充这些知识
rashawn
2017-01-19 08:14:21 +08:00
个人觉得 英语应该放第一位…
xiamx
2017-01-19 08:21:41 +08:00
为什么木有 automata theory, regular language, push down automata, turing machine, lambda calculus 这些?
linux40
2017-01-19 09:14:27 +08:00
除了最后两个,别的都是我在点的。。。我的重点是 2 。。。
bintianbaihua
2017-01-19 09:49:04 +08:00
数据结构和算法,操作系统,计算机网络( tcp , Ip 协议栈为主),数据库原理,编译原理,大学数学课(高等数学,线性代数,概率论,离散数学,组合数学,数值分析,运筹学),英语(计算机英语,商务英语,经济学英语)
fangjianbin
2017-01-19 09:53:23 +08:00
英语英语英语。。。一定要学好。还有妹纸妹纸妹纸一定要泡到。其他都不重要
mnzlichunyu
2017-01-19 10:10:40 +08:00
看到数值分析, 运筹学 ,商务英语,经济学英语, 我感觉我可能是上了假大学。
Vizogood
2017-01-19 10:13:04 +08:00
装系统
装逼
libook
2017-01-19 10:19:22 +08:00
如何快速入门一项技术
如何读一本书
怎样才算是一个优秀的技术人员
语文能力
翻墙能力
英语水平
如何沟通
如何解决问题
如何打破所学的知识体系

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

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

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

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

© 2021 V2EX