V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
oldcai
V2EX  ›  问与答

本科学计算机科学、软件工程的诸位,觉得有哪些科目最值得学?

  •  
  •   oldcai · 2015-01-17 00:14:28 +08:00 · 5338 次点击
    这是一个创建于 3397 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人非计算机相关专业毕业,想学一下没有机会在学校里面学的东西。
    求推荐,如果可以顺便提到相关的书或者公开课就更好了。
    不仅限于计算机相关专业特有的科目,比如数学类的都可以推荐下。
    谢谢!
    30 条回复    2016-07-01 18:08:53 +08:00
    Kilerd
        1
    Kilerd  
       2015-01-17 00:19:48 +08:00 via Android   ❤️ 1
    把数学学好,把算法学好
    oldcai
        2
    oldcai  
    OP
       2015-01-17 00:25:06 +08:00
    @Kilerd 有具体的科目和图书吗?
    数学和算法方向都很大。
    比如数学,你觉得对现在影响最大的排序,是线代,概率,高数,离散这样呢还是怎样?
    Bitex
        3
    Bitex  
       2015-01-17 00:25:30 +08:00   ❤️ 1
    数据结构与算法分析。

    线性代数。自个儿琢磨计算机图形学时才后悔当初没好好学线代……
    youling
        4
    youling  
       2015-01-17 00:25:38 +08:00   ❤️ 1
    Bitex
        5
    Bitex  
       2015-01-17 00:27:25 +08:00
    @youling 这里面有我两个老师开的课。但是实际上,我个人觉得他们的讲课水平并不怎么样……
    youling
        6
    youling  
       2015-01-17 00:35:27 +08:00
    @Bitex 哪有学生只听课的,听课只是辅助,总比没得听好。再说这上班的还比较系统,另外MOOC的好处是和平时上课一样提交作业考试,而纯粹自学很多人都坚持不下去。
    jetbillwin
        7
    jetbillwin  
       2015-01-17 00:39:06 +08:00 via iPhone   ❤️ 1
    操作系统
    loveuqian
        8
    loveuqian  
       2015-01-17 00:44:38 +08:00
    不挂科就行了,把ios开发,安卓开发,Java开发,前端开发全部撸一遍,选一个自己喜欢的,以后就撸这个就可以
    Kilerd
        9
    Kilerd  
       2015-01-17 00:45:05 +08:00   ❤️ 1
    @oldcai 线代,概率,高数,离散 这些你学的时候会感觉没什么用,不过让你真的需要用他的时候,你才会发现,这些才是算法的核心。
    imn1
        10
    imn1  
       2015-01-17 00:57:35 +08:00   ❤️ 2
    给你冷门点的:文献检索、图书管理学
    另外一定要重拾一下说明文和论文,有时间包括以后工作后要多看专用文案的格式,如报告书、计划书……
    升上一定级别后,文档工作占时可能更多,写不好文案坐不上高的位置,除非有专用秘书
    oldcai
        11
    oldcai  
    OP
       2015-01-17 01:00:25 +08:00
    @Kilerd 是啊。。确实都想大补一下,但是因为平时工作也比较多,所以精力有限只能先排个序,不然估计一个都完成不了。
    想问问你和大家觉得的最重要是什么,或者是工作了后觉得最有用(最后悔没学好)的科目是什么。

    @imn1 最好是大多数准备终身从事计算机工作的人都很有用的,这样对我和其他人都有价值。
    em70
        12
    em70  
       2015-01-17 01:04:36 +08:00 via Android   ❤️ 1
    先去实践,积累一万个小时的编程经验,中途遇到困难再回来翻书
    nicktogo
        13
    nicktogo  
       2015-01-17 01:06:21 +08:00   ❤️ 1
    我觉得数据结构挺重要的。。可惜这学期没好好学
    oldcai
        14
    oldcai  
    OP
       2015-01-17 01:23:11 +08:00
    @em70 已经有一万小时了,但是觉得需要巩固一下基础。
    @loveuqian 这个贴可能有别于“怎么学习编程啊”、“非计算机专业怎么学习编程啊”。
    aaaa007cn
        15
    aaaa007cn  
       2015-01-17 01:29:25 +08:00   ❤️ 1
    离散数学是计算机科学的根基
    概率、线代在特定领域非常重要
    高数是其他数学的基础

    不过掌握到什么水平要看你怎么定义“计算机工作”
    参见 /t/162581
    xinghuan
        16
    xinghuan  
       2015-01-17 01:37:58 +08:00
    其实学哲学不错。
    哲学引导人类进步的方向。
    现实点也可以当个公务员,去中央编译局。
    imn1
        17
    imn1  
       2015-01-17 02:03:00 +08:00   ❤️ 3
    如果你认为这几科跟计算机无关,那是你的眼光还不够长远
    如果你小看它们的话,那就是思想狭隘了

    文献检索和图书管理学(或图书分类学)将来体现在编程的各种方面,先不说我见到一大堆程序员连用什么 keyword 搜索都不会,再说它们对数据库优化、数据组织等等方面都有极大帮助,有图书分类基础,写 xml 数结构思路会清晰很多

    写作问题不仅是管理层才需要,见到很多开源软件,不知道是没时间写文档还是不会写,后来者往往要花很多时间看源代码,不要说不懂看源代码不是好程序员,难道每个都花很长时间了解源代码,定位功能模块?我相信没几个人会重新做实验验证万有引力定律是否正确才用的吧!?事实上好的文档会让事情事半功倍,还能更方便和有兴趣的人更深入交流

    其他跟计算机直接紧密相关的知识也不用我说了,把其他人说的统计一下就行了,我料想没人会说这几样才提一下
    loveuqian
        18
    loveuqian  
       2015-01-17 02:03:59 +08:00 via iPhone
    @oldcai 教你怎么赚钱而已,读书都是过渡,出来培个训分分钟10K,所以只要不挂科,随便玩
    SpiritPanda
        19
    SpiritPanda  
       2015-01-17 02:09:38 +08:00   ❤️ 1
    楼主可以参考Google列出的程序员必修课程与进阶之路,里面介绍了每门课程的学习资源,非常实用。
    http://mooc.guokr.com/post/610231/
    oldcai
        20
    oldcai  
    OP
       2015-01-17 02:40:08 +08:00
    @imn1 感谢提醒,也确实是有很多很长工作经验的程序员不善于利用搜索;文档很重要、也不一定非要做管理才需要写。
    我想通过这个问题知道的是什么基础科目需要好好重新巩固,或者是有什么计算机专业才学我没有学过的很重要的科目需要新学,以及什么更重要。

    @youling
    @SpiritPanda
    谢谢,确实很有用。
    ppdg
        21
    ppdg  
       2015-01-17 04:44:09 +08:00 via Android
    马哲
    马政经
    mthli
        22
    mthli  
       2015-01-17 07:20:59 +08:00 via Android   ❤️ 1
    离散数学啊。高数也不错。
    Dongdong36
        23
    Dongdong36  
       2015-01-17 09:02:31 +08:00   ❤️ 1
    1,软件工程
    2,数据结构与算法

    软件工程上学时觉得老师就是在扯淡,分析这个分析那个的、开始工作才开始体会其重要性和必要性
    fangpeishi
        24
    fangpeishi  
       2015-01-17 09:23:41 +08:00   ❤️ 1
    算法与数据结构
    编译原理
    操作系统
    数学相关的所有课程。
    loggerhead
        25
    loggerhead  
       2015-01-17 11:00:15 +08:00   ❤️ 2
    序号是个人认为的重要程度,以下推荐的书要么是经典要么是公认的好,而不一定是教材:
    1. 英语;
    2. [算法与数据结构](http://book.douban.com/subject/1139426/),上课用的它但是翻译得很差;推荐看[大话数据结构](http://book.douban.com/subject/6424904/)或者[数据结构与STL](http://book.douban.com/subject/1152139/);
    3. 计算机组成原理、操作系统;组成原理对理解硬件是如何工作的很有帮助,不过书不多,如果LZ愿意看教科书的话,那我推荐[唐朔飞的](http://book.douban.com/subject/2994636/);操作系统推荐[现代操作系统](http://book.douban.com/subject/1390650/)或者[Operating System Concepts](http://book.douban.com/subject/1418566/);
    4. [编译原理](http://blog.csdn.net/skymingst/article/details/7436892),学了这个后写编译器、设计脚本语言、实现HTTP协议等就都有思路了;


    以下这些并不一定不重要,只不过我还不能体会它们的重要性。
    + [计算机体系结构](http://book.douban.com/subject/20452387/)
    + [计算机网络](http://book.douban.com/subject/1391207/)
    + [算法导论](http://book.douban.com/subject/1885170/)
    + [汇编语言](http://book.douban.com/subject/2039913/)
    + 数据库


    如果楼主想学数学的话,可以自学__离散、概率论、线代__,这几门数学我只能窥见其重要性,所以也不多说。此外,我见到很多学计算机的豆列里有[How to solve it](http://book.douban.com/subject/1456890/)和[具体数学](http://book.douban.com/subject/1231910/)这两本书,LZ感兴趣可以看看。
    mringg
        26
    mringg  
       2015-01-17 11:32:30 +08:00 via Android
    计算机那些,感觉学到能应付考试的水平,85+吧就行了。主要会用主流的开发语言写一些程序。我个人认为绝大部分人并不适合学得太深,还是应该往广度发展。学些统计,金融知识挺好,既有前途,也有钱途。
    hooluupog
        27
    hooluupog  
       2015-01-17 11:33:55 +08:00   ❤️ 1
    非计算机专业的话,
    公共课:
    高数(高数能考满分就考满分,对理工科生来说,优异的高数成绩对任何理工科专业的未来就业或者继续考研深造,都会非常有好处,导师或者HR肯定喜欢高数好的)。
    英语(高中学的那些英语真的不够)

    计算机专业课:
    核心是:数据结构与算法。掌握一门编程语言,计算机专业课程不需要深究,可以找一本计算机导论之类的书看看有好处。
    和计算机相关的数学:
    数论,离散数学,组合数学

    ——如果要读计算机的研究生:

    计算机四大基础课认真的看看,假期的时候做做编程项目,写一个程序或者设计个web页面都行。
    可以去一些著名的OJ站点做做题,主要是练你的算法能力,搞不好还能参加acm竞赛,acm每年夺金的非计算机专业大牛不少。

    ——如果你打算未来从事计算机行业的工作:

    找一找计算机本科生的课表,把能借到的书尽量借,平时自己看看,有时间的话可以去听课。大学空余时间多得是。给自己设计一个长期的项目,坚持做,或者找人合作,做项目,做得越多,将来找工作越有优势。
    oldcai
        28
    oldcai  
    OP
       2015-01-17 12:05:35 +08:00
    @loggerhead 谢谢,正好昨天已买《离散数学及其应用(原书第6版)(本科教学版)》和《图灵计算机科学丛书•具体数学:计算机科学基础(第2版)》
    希望能啃得动。
    其实昨天也就是买书的时候纠结怎么买一些我真正能啃得动的书,想到发帖求教一下。
    然后,我读书少,编译原理和HTTP协议实现之间的关系还是不解^_^

    @hooluupog 谢谢。
    不过好像“——”是正回顾后发符号;
    “:”是先行符号。
    不太确定小标题是标注的哪一段,2333

    @Dongdong36 你好,请问软件工程有推荐的好书或者公开课吗?
    Her0
        29
    Her0  
       2015-01-17 17:07:06 +08:00   ❤️ 1
    操作系统,
    数据结构和算法,
    TCP/IP
    HTTP
    onice
        30
    onice  
       2016-07-01 18:08:53 +08:00   ❤️ 1
    无意中翻到的帖子,说说我们学的一些东西吧,你可以根据自己的情况调整下优先级。
    如果你想知道操作系统的内部机制,例如为什么操作系统可以同时运行多个程序,任务管理器里面的进程是什么,我们在复制文件的时候操作系统都干了些什么。请学习《操作系统》
    如果你想知道如何才能让程序的效率更高,执行的时间最短,占用的内存最少,请学习《数据结构与算法》
    如果你使用过数据库,特别是想知道为什么数据库的效率比 excel 高,为什么要存在 sql 语言,请学习《数据库系统》
    如果你想知道当我们上网的时候,数据是怎么传输的,请学习《计算机网络》和《 TCP/IP 协议》
    如果你已经会使用某种编程语言,你想要知道为什么这种语言要那么定义,为什么 C 语言用花括号, python 要用缩进,编译器是怎么识别程序源代码,又是怎么检测出来有语法错误的。更重要的是,如果你开始思考自己能不能发明一种新的语言,《编译原理》一定要学。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5484 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 06:49 · PVG 14:49 · LAX 23:49 · JFK 02:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.