精华内容
下载资源
问答
  • 计算机科学与技术

    千次阅读 多人点赞 2016-08-21 18:06:46
    计算机科学与技术(CS)专业学生该如何系统地自学? 目前cs专业大一学生,因为兴趣选择了这个专业,学校课程太少,唯一能上关于计算机的课程就是计算机导论,每天看着老师照着ppt念着一些笼统的概念,下学期才能...

    计算机科学与技术(CS)专业学生该如何系统地自学?
    目前cs专业大一学生,因为兴趣选择了这个专业,学校课程太少,唯一能上关于计算机的课程就是计算机导论,每天看着老师照着ppt念着一些笼统的概念,下学期才能学习c语言,我自己已经通过自学掌握了c语言的一些基础,所以我想通过自学更多更快地掌握专业知识,可不知道该从哪学起,经常刷知乎,看到许多我不懂的知识就会感到自己的无知,不知从何学起,周围的同学室友只会整天lol、玩手机,对比之下常对未来感到迷茫,希望有经验的前辈传授一些自学的步骤或经验。
    题主你好,在大批前辈赶来为你指点迷津之前,我查阅了一下我校CS专业大一大二的课程。专业直接相关的方面列举如下,英语课、统计学课、物理课等未予收录。这些课程网易公开课,iTunes U,coursera,edX等等地方都有丰富的课程资源;每个方面也有各自的经典教材。希望能抛砖引玉,也助楼主一臂之力。
    离散数学(基础的逻辑运算、集合等)
    算法与数据结构 (无数次听前辈强调这是CS专业万变不离其宗的核心要义)
    软件工程(开发软件的范式和方法)
    计算机结构(了解从电路构成到 CPU 指令等底层的构造)
    更多类型的语言(面向过程,面向对象,函数语言,脚本语言等)
    操作系统
    网络(主要是 TCP/IP 这套东西)
    数据库
    信息安全
    图形图像,多媒体

    以上这些方面都有涉猎之后,其他的CS专业知识基本上都建立于此基础之上了。我校的高年级课程基本上也都以以上列举的这些为前提要求。另外关键是要上手,刷出题目来/写出代码来,实践起来,切忌只看书不实践。

    欢迎各位前辈、同学补充更多信息,靠谱的课程资源、经典书籍等。
    以下是Berkeley的cs专业的一些必修课以及我个人认为很有必要的课,希望可以帮助你选择自己学习的方向:
    1. 数学类:
    微积分
    线性代数
    概率论
    离散数学
    2. CS类:
    程序结构与理解 Structure and interpretation of computer programs
    数据结构 Data structure
    机器结构 Machine structures
    算法 Algorithms
    人工智能 Intro to AI
    操作系统 Intro to OS
    编译器 Intro to compiler
    数据库 Database
    安全 Intro to security
    机器学习 Intro to ML

    (以上排序并不是严格的从简入难,一些讲cs的不同分支的课完全可以混着顺序上

    学习方式有很多,上网上丰富的公开课、自己看书、看名校这些课的视频,都是很棒的选择。

    (至于很多人提到的语言:比较受认同的观点是不必要特别去学语言,以上的这些cs核心知识比单纯的语言更加有用。个人建议是在学习这些知识的过程中慢慢达到精通一两门语言,会用四五门。其余的需要再pick up就是了。

    除此之外,根据我个人的一些简单的经验,我建议尽量在有系统地学习的同时,思考一下自己学习cs,除了满足求知欲和兴趣之外,想要达成什么样的追求。常见的一些,比方说:工作、科研、创业、投身于cs相关的一些公益组织、留学,等等。其实这些都是需要在学习之外付出很多额外的精力的。

    毕竟大学里前进的道路远远不只是学习好知识这一个方面,做好人生下一步的规划并为之努力是更重要的一部分。如果现在还不确定想做什么,那就去尽可能多体验多了解一些吧。日后不断改变自己的目标不要紧,但一定要有个目标啊。

    加油吧。

    有问题请尽管回复,我很乐意帮忙。

    同CS狗,年级较你稍高。
    同一直自学,但一样认真上课,切勿以自学为借口而逃避上课。
    而且,每个人有自己的选择,LOL是一种,电视剧也是一种,我们认真啃书编码同样也是一种生活方式。
    首要放正心态,正视他人的选择,找到适合自己的环境学习,然后刚开始不求精,只求广,就是在各方面都应该懂些,这样才能更好的知道自己的兴趣所在。
    然后确定方向,切记切记,既然选择了就一直走下去,不要随意被他人改变,贵在坚持
    还有就是要充分利用资源,不只是书本和教学视频,博文等等,更重要的是当被一个难题困住之后要及时解决,比如向老师请教。
    最难得的是时刻保持谦卑,渴望的心,keep fool,keep hungry!
    手机码字,共勉
    GitHub - open-source-society/computer-science: Path to a free self-taught education in Computer Science! 从数学到UX Designer, 都是各大MOOC平台上的免费课程
    首先,为题主的态度点赞,记得我上大学那会光顾着玩游戏,没有为自己的职业好好规划一下。
    作为一个过来人,我说说我的看法: 看样子楼主要走开发这条路了,这样的话不论考研与否,首先要打好基础,学校开设的课程如c语音,数据结构,离算数学,操作系统,组成原理,计算机网络等,相信我这些都很重要,如果不考研的话,大三大四多关注一下业界,看看自己感兴趣的方向,是嵌入式还是服务器亦或是前端,再做相应分涉猎,这个网上资料还是挺丰富的,做的这些我相信以后找个满意的工作还是挺轻松的。

    最近做了一张关于计算机科学与技术专业课程的 Concept Map,发现可以从数学课程开始构建这个专业的知识体系,我删除了部分自己不感兴趣的课程(网络、数据库、游戏等),从而作出了如下的课程安排,以下学习顺序与大多数高校的课程设置有很大不同,也并不适合完全没有编程基础的同学自学,但非常适合有一定编程基础且想要系统掌握该学科知识体系的同学,从而做到知其然也知其所以然。以下安排完全偏向计算机科学方向(技术基本被忽略了…需要的同学可以自行补充相关领域的技术知识)。

    集合论

     - Set Theory [Kenneth Kunen]
     - Set Theory [Thomas Jech]
     - 集合论:对无穷概念的探索 [郝兆宽]

    图论

     - Graph Theory [Adrian Bondy, U. S. R. Murty]
     - 图论 [王树禾]

    数理逻辑

     - Logic for Applications (应用逻辑) [Anil Nerode, Richard Shore]
     - A Mathematical Introduction to Logic (数理逻辑) [Herbert B. Enderton]
     - 数理逻辑 [汪芳庭]

    电工电子学

     - 电工学简明教程 [秦曾煌]

    拓扑学

     - Basic Topology (基础拓扑学) [M. A. Armstrong]
     - Topology (拓扑学) [James R. Munkres]

    组合学

     - Discrete Mathematics and Its Applications (离散数学及其应用) [Kenneth H. Rosen]
     - Introductory Combinatorics (组合数学) [Richard A. Brualdi]
     - Concrete Mathematics : A Foundation for Computer Science (具体数学:计算机科学基础) [Ronald L. Graham, Donald E. Knuth, Oren Patashnik]

    计算理论

     - Introduction to the Theory of Computation (计算理论引导) [Michael Sipser]

    数字逻辑电路

     - 数字电路基础 [阎石]

    形式语言与自动机

     - An Introduction to Formal Languages and Automata (形式语言与自动机导论) [Peter Linz]
     - Introduction to Automata Theory, Languages, and Computation (自动机理论、语言和计算导论) [John E. Hopcroft]

    可计算性理论

     - Computability and Logic (可计算性与数理逻辑) [George S. Boolos]

    计算复杂性理论

     - Computational Complexity : A Modern Approach [Sanjeev Arora, Boaz Barak]

    计算机组成原理

     - Computer Organization and Design : The Hardware/Software Interface (计算机组成与设计:硬件/软件接口) [David A. Patterson, John L. Hennessy]

    形式语用学

     - Programming Language Pragmatics (程序设计语言:实践之路) [Michael L. Scott]

    形式语义学

     - The Formal Semantics of Programmin (程序设计语言的形式语义) [Glynn Winskel]

    编译原理

     - Compilers, Principles, Techniques and Tools (编译原理) [Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman]
     - Modern Compiler Implementation in C (现代编译原理:C 语言描述) [Andrew W. Appel]
     - Advanced Compiler Design and Implementation (高级编译器设计与实现) [Steven S. Muchnick]

    微机原理

     - 微机原理与接口技术 [孟虎]

    计算机体系结构

     - Computer Architecture : A Quantitative Approach (计算机体系结构:量化研究方法) [John L. Hennessy, David A. Patterson]

    程序设计语言

     - Thinking in Java (Java 编程思想) [Bruce Eckel]
     - CLR via C# [Jeffrey Richter]
     - The C Programming Language (C 程序设计语言) [Brian W. Kernighan]
     - The Standard C Library (C 标准库) [P. J. Plauge]
     - C Programming : A Modern Approach (C 语言程序设计:现代方法) [K. N. King]
     - C Interfaces and Implementations : Techniques for Creating Reusable Software (C 语言接口与实现) [David R. Hanson]
     - C++ Primer [Stanley B. Lippman]
     - The C++ Programming Language (C++ 程序设计语言) [Bjarne Stroustrup]
     - The C++ Standard Library : A Tutorial and Reference (C++ 标准库) [Nicolai M. Josuttis]
     - STL 源码剖析 [侯捷]
     - Effective C++ [Scott Meyers]
     - More Effective C++ [Scott Meyers]
     - Effective STL [Scott Meyers]
     - Effective Modern C++ [Scott Meyers]
     - Inside the C++ Object Model (深度探索 C++ 对象模型) [Stanley B. Lippman]
     - Modern C++ Design : Generic Programming and Design Patterns Applied (C++ 设计新思维) [Andrei Alexandrescu]
     - Python Cookbook [Alex Martelli]
     - The Python Standard Library by Example (Python 标准库) [Doug Hellmann]
     - Python 源码剖析 [陈儒]

    数据结构与算法

     - Introduction to Algorithms (算法导论) [Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein]
     - The Art of Computer Programming (计算机程序设计艺术) [Donald E. Knuth]
     - Data Structures and Algorithm Analysis in C++ (数据结构与算法分析:C++ 语言描述) [Mark Allen Weiss]

    算法分析与设计

     - Introduction to the Design and Analysis of Algorithms (算法设计与分析基础) [Anany Levitin]
     - Algorithmic Puzzles (算法谜题) [Anany Levitin, Maria Levitin]

    汇编语言

     - 汇编语言 [王爽]

    操作系统

     - Modern Operating System (现代操作系统) [Andrew S. Tanenbaum]
     - Operating Systems : Internals and Design Principles (操作系统:精髓与设计原理) [William Stallings]
     - Understanding the Linux Kernel (深入理解 Linux 内核) [Daniel P. Bovet, Marco Cesati]
     - Linux Kernel Development (Linux 内核设计与实现) [Robert Love]

     - Programming Applications for Microsoft Windows (Windows 核心编程) [Jeffrey Richter]

    线性代数

     - 线性代数 [李尚志]
     - 高等代数简明教程 [蓝以中]
     - Linear Algebra Done Right (线性代数应该这样学) [Sheldon Axler]
     - Introduction to Linear Algebra (线性代数导论) [Serge Lang]
     - Linear Algebra and Its Applications (线性代数及其应用) [David C. Lay]
     - Introduction to Linear Algebra [Gilbert Strang]
     - Linear Algebra and Its Applications [Gilbert Strang]

    数学分析

     - 简明微积分 [龚昇]
     - 数学分析新讲 [张筑生]
     - Thomas’ Calculus (托马斯微积分) [George B. Thomas]
     - 数学分析 [卓里奇]
     - 数学分析习题集 [吉米多维奇]
     - Mathematical Analysis (数学分析) [Tom M. Apostol]
     - Mathematical Analysis [Vladimir A. Zorich]
     - Principles of Mathematical Analysis (数学分析原理) [Walter Rudin]

    概率论

     - A First Course in Probability (概率论基础教程) [Sheldon M. Ross]
     - An Introduction to Probability Theory and Its Applications (概率论及其应用) [William Feller]
     - 概率论 [苏淳]

    数理统计

     - 概率论与数理统计 [陈希孺]
     - 数理统计学简史 [陈希孺]
     - 数理统计学教程 [陈希孺]
     - Introduction to Mathematical Statistics (数理统计学导论) [Robert V. Hogg, Allen T. Craig, Joseph W. McKean]
     - All of Statistics (统计学完全教程) [Larry Wasserman]

     - 数理统计 [韦来生]

    矩阵论

     - 线性代数与矩阵论 [许以超]
     - 矩阵论 [方保镕]
     - Matrix Analysis (矩阵分析) [Roger A. Horn]

    常微分方程

     - 常微分方程 [阿诺尔德]

    实变函数

     - 实变函数论 [那汤松]

    复变函数

     - 复变函数 [严镇军]
     - 复变函数论方法 [拉夫连季耶夫, 沙巴特]

    随机过程

     - 随机过程 [伊藤·清]
     - Stochastic Processes (随机过程) [Sheldon M. Ross]
     - Introduction to Probability Models (应用随机过程:概率模型导论) [Sheldon M. Ross]

    回归分析

     - 回归分析 [谢宇]

    运筹学

     - Introduction to Operations Research (运筹学导论) [Frederick S. Hillier]

    偏微分方程

     - Basic Partial Differential Equations (基础偏微分方程) [David Bleecker]
     - Partial Differential Equations [Lawrence C. Evans]

    实分析

     - 陶哲轩实分析 [陶哲轩]
     - Real Analysis [Halsey L. Royden]
     - Real Analysis : Measure Theory, Integration, and Hilbert Spaces [Elias M. Stein, Rami Shakarchi]

    复分析

     - 简明复分析 [龚昇]
     - Complex Analysis (复分析) [Lars V. Ahlfors]
     - Complex Analysis [Elias M. Stein]

    数值分析

     - Numerical Analysis (数值分析) [Timothy Sauer]

    最优化理论

     - 最优化理论与方法 [袁亚湘]
     - 最优化理论与算法 [陈宝林]
     - 非线性优化计算方法 [袁亚湘]
     - Nonlinear Programming (非线性规划) [Dimitri P. Bertsekas]
     - Convex Optimization (凸优化) [Stephen Boyd, Lieven Vandenberghe]
     - Numerical Optimization (数值最优化) [Jorge Nocedal, Stephen Wright]

    多元统计分析

     - 多元统计分析 [王静龙]
     - 实用多元统计分析 [管宇]

     - Applied Multivariate Statistical Analysis (实用多元统计分析) [Richard A. Johnson]

    泛函分析

     - 实变函数论与泛函分析 [夏道行, 吴卓人, 严绍宗, 舒五昌]
     - Introductory Functional Analysis with Applications [Erwin Kreyszig]
     - Functional Analysis (泛函分析) [Walter Rudin]

    测度论

     - 测度论讲义 [严加安]
     - Measure Theory (测度论) [Paul R. Halmos]

    数学模型

     - Mathematical Modeling (数学建模方法与分析) [Mark M. Meerschaert]
     - A First Course in Mathematical Modeling (数学建模) [Frank R. Giordano, William P. Fox, Maurice D. Weir]

    机器学习

     - 机器学习 [周志华]
     - Computational Intelligence : An introduction (计算智能导论) [Andries P. Engelbrecht]
     - 统计学习方法 [李航]
     - The Nature of Statistical Learning Theory (统计学习理论的本质) [Vladimir N. Vapnik]
     - 支持向量机:理论、算法与拓展 [邓乃扬, 田英杰]
     - Machine Learning (机器学习) [Tom M. Mitchell]
     - Machine Learning in Action (机器学习实战) [Peter Harrington]
     - Pattern Classification (模式分类) [Richard O. Duda]
     - Pattern Recognition And Machine Learning [Christopher M. Bishop]
     - The Elements of Statistical Learning [Trevor Hastie, Robert Tibshirani, Jerome Friedman]
     - Machine Learning : A Probabilistic Perspective [Kevin P. Murphy]
     - Probabilistic Graphical Models : Principles and Techniques (概率图模型:原理与技术) [Daphne Koller, Nir Friedman]

    电路分析

     - 电路原理 [江缉光, 刘秀成]

     - Introductory Circuit Analysis (电路分析导论) [Robert L. Boylestad]

    信号与系统

     - 信号与系统 [郑君里]
     - Signals and Systems (信号与系统) [Alan V. Oppenheim, Alan S. Willsky]

    数字信号处理

     - 数字信号处理:理论、算法与实现 [胡广书]
     - Digital Signal Processing : A Practical Guide for Engineers and Scientists (实用数字信号处理:从原理到应用) [Steven W. Smith]
     - Discrete-Time Signal Processing (离散时间信号处理) [Alan V. Oppenheim, Ronald W. Schafer, John R. Buck]

    数字图像处理

     - Digital Image Processing (数字图像处理) [Kenneth R. Castlema]
     - Digital Image Processing (数字图像处理) [Rafael C. Gonzalez, Richard E. Woods]

    计算机图形学

     - The Nature of Code (代码本色:用编程模拟自然系统) [Daniel Shiffman]
     - Fundamentals of Computer Graphics (计算机图形学) [Peter Shirley, Michael Ashikhmin, Steve Marschner]
     - Computer Graphics : Principles and Practice in C (计算机图形学原理及实践:C 语言描述) [James D. Foley, Andries van Dam, Steven K. Feiner, John F. Hughes]
     - Physically Based Rendering [Matt Pharr, Greg Humphreys]

     - OpenGL Programming Guide (OpenGL 编程指南) [Dave Shreiner]

    认知神经科学

     - Principles of Neural Science (神经科学原理) [Eric R. Kandel]
     - Cognitive Neuroscience : The Biology of the Mind (认知神经科学:关于心智的生物学) [Michael S. Gazzaniga, Richard B. Ivry, George R. Mangun]
     - The Quest for Consciousness : A Neurobiological Approach (意识探秘:意识的神经生物学研究) [Christof Koch]
     - Theoretical Neuroscience : Computational and Mathematical Modeling of Neural Systems [Peter Dayan, Laurence F. Abbott]
     - 视觉信息处理的脑机制 [寿天德]
     - Neuronal Dynamics : From single neurons to networks and models of cognition [Wulfram Gerstner, Werner M. Kistler, Richard Naud, Liam Paninski]

    神经网络

     - Neural Networks : A Comprehensive Foundation (神经网络原理) [Simon O. Haykin]
     - Neural Networks and Learning Machines (神经网络与机器学习) [Simon O. Haykin]
     - Neural Networks for Applied Sciences and Engineering (神经网络在应用科学和工程中的应用) [Sandhya Samarasinghe]
     - Neural Network Design (神经网络设计) [Martin T. Hagan]
     - Parallel Distributed Processing [David E. Rumelhart, James L. McClelland]
     - Deep Learning [Ian Goodfellow, Yoshua Bengio, Aaron Courville]
     - Learning Deep Architectures for AI [Yoshua Bengio]

    计算机视觉

     - Concise Computer Vision : An Introduction into Theory and Algorithms [Reinhard Klette]
     - Computer Vision : A Modern Approach (计算机视觉:一种现代方法) [David A. Forsyth, Jean Ponce]
     - Computer Vision : Algorithms and Applications (计算机视觉:算法与应用) [Richard Szeliski]
     - Multiple View Geometry in Computer Vision (计算机视觉中的多视图几何) [Richard Hartley]
     - 计算机视觉中的数学方法 [吴福朝]

     - Learning OpenCV : Computer Vision with the OpenCV Library (学习 OpenCV) [Gary Bradski, Adrian Kaebler]

    其他

     - Code : The Hidden Language of Computer Hardware and Software (编码:隐匿在计算机软硬件背后的语言) [Charles Petzold]
     - Computer Science : An Overview (计算机科学概论) [J. Glenn Brookshear]
     - Structure and Interpretation of Computer Programs (计算机程序的构造和解释) [Harold Abelson, Gerald Jay Sussman, Julie Sussman]
     - Computer Systems : A Programmer’s Perspective (深入理解计算机系统) [Randal E. Bryant]
     - Artificial Intelligence : A Modern Approach (人工智能:一种现代方法) [Stuart J. Russell, Peter Norvig]
     - On Intelligence (人工智能的未来) [Jeff Hawkins, Sandra Blakeslee]
     - Introduction to Data Mining (数据挖掘导论) [Pang-Ning Tan, Michael Steinbach, Vipin Kumar]
     - Refactoring : Improving the Design of Existing Code (重构:改善既有代码的设计) [Martin Fowler]
     - CUDA by Example : An Introduction to General-Purpose GPU Programming (GPU 高性能编程 CUDA 实战) [Jason Sanders, Edward Kandrot]
     - The CUDA Handbook : A Comprehensive Guide to GPU Programming (CUDA 专家手册:GPU 编程权威指南) [Nicholas Wilt]
    今年已经大三了,对于cs还是有一些体会的。
    我曾经问过我的老师一个问题:cs的核心是什么,学习的重点应该放在哪里?他没有马上回答我,而是反问了一个问题:什么是计算机这碗饭的核心,什么知识使得你和电子、电气、自动化、软件这些专业的同学不一样?当然,也必须是 高等职业技术学院 之外的东西?
    题主,现在我已经有了我的答案,这个问题我也送给你,希望你能够想一想。

    我看了一下我们的培养计划,把大一大二我觉得比较重要的课程挑出来,供参考。
    数学类:线性代数,微积分,离散数学(这是我觉得数学类里面最重要的)还有概率论与数理统计。觉得数学类的自学主要还是做题,先看书,然后做题,做题不会了再回去看书,然后再回头做题。
    语言类:我们是用Python入门的,我个人也觉得Python比较容易上手,我觉得开始学习的时候Python太高级的特性不用去了解,了解一些基础的工具就可以,然后开始动手写代码,做到能够编写一些简单的程序,在其中加深了解函数,数组,列表等的用法。然后再学C语言,主要再加深对于数组,字符串,指针的理解。最后过渡到C++,深入了解一下面向对象,类,继承这些概念,然后用C++大量的练习代码(主要指数据结构和算法),然后可以再回过头看Python的高级特性。我觉得在本科阶段能够熟练使用C++和Python就足够了。
    计算机专业课程类:数据结构,算法(这两个我觉得是最重要的),还有计算机组成原理。自学的方式:练题,把你学到看到的数据结构和算法全都实现一遍,同时也练编程语言和思维。

    其实在实际编程的过程里面我说的那些数学类除了离散数学其他的用到的并不多,但是如果想在计算机方面有一些发展,那么我建议还是要打好数学的基础。
    然后,不要只是看,一定要动手写,只有在实际动手的时候才会注意到一些细节,印象也更深刻。
    有了问题要学会去搜索,争取自己找到解决问题的方法,快速定位问题也是能力。
    网易云课堂上面有一些我上面提到的课程,我看过一些,也上过一些老师的课,希望题主能够利用上。(王宏志老师的算法课非常好,而且内容比我们上课时还多一些)

    有什么问题也可以私信我,如果能提供帮助我也非常愿意,毕竟原来也走了很多弯路。

    原来也有一个和你情况差不多的,我也说了好多,然后发现根本执行不下去,可能你们的学校内环境也不太好,怎么样坚持住自己的想法就变得尤其重要,希望你能成功。

    最后说了这么多,也只是建议,而已,仅此而已。实际去做的时候说到底还是只能靠你自己,外界能够提供的帮助有限,非常有限。资源遍地都是,相信你也能找到更好的。执行才是最根本的问题。所以少想多做吧少年,只有动手的时候思路才会更开阔。

    以上。
    补一句个人意见也是请教大家的一个问题
    我就是照这个搞得,我个人认为这个书单在保证最简的模式下涵盖了全部计算机的核心知识,而且恰都是实用且通用的。希望有前辈看后也能顺便指出我的知识结构中的漏洞。

    ——————

    楼上的前辈们给的路线都是偏向工程的。
    我可以给你推荐一个我亲自用过的书单,私认为很适合“计算机科学”这个专业的修行体系。如果你想省心的话,以下是最简模式。

    第0层:理工基础
    《数学复习全书》数一 《英语六级》
    第一层:
    《离散数学及其应用》《计算理论导引》
    第二层:
    《软件设计师教程》第四版
    第三层:
    《算法》||《算法导论》
    if cpp
    《数据结构算法与应用cpp语言描述》
    第四层:(具体工程类)
    《软件体系结构设计》等等。

    对于普通大学生我非常建议以考带学,因为考试本身带给你一直继续的动力,目标明确,考察结构合理清晰,但不要为了考试而考试。

    ps:第0层是一个理工类学生的基本素养,
    英语几乎算是计算机的专业课了,此外数一中的前二者基本是现代数学体系的开始(分析与代数)而概率则是现代科学解决许多问题的根本原理。
    第一层则是一个cs方向的基本理论素养,离散中已经涵盖了数门学科,如果有兴趣的话可以再单独掌握《组合数学》一些《运筹学》知识,就构成了完善的通用计算机科学基础。
    第二层是cs的一个实用基础,特别是面对现代计算机工程领域的一个精简,推荐你另外考计算机四级数据库方向和ccna,这三个方向很重要是因为他基本代表了数据的存储(数据库)处理(计算机)和传输(网络),是每个cser都应该掌握的核心线。
    第三层则是软件构建层面的部分,工程的基础部分,算法。
    第四层则是工程的具体部分软工,软件体系结构,设计模式等等,自行决定具体便好

    手机打字,见谅

    下边也补一句
    这个书单的另一个好处就是你三年搞完了还多出了考研能力,一个国家中级职称(工程师),一个四级计算机证,一个六级英语证,一个ccna证。基本本科找工作把这些证摔出去对大多数公司也是很强的说服力了
    我想这张图应该对题主有用:

    >

    这是网易公开课的学习路径图,对哪个感兴趣就去学吧,计算机的很多知识都是相互关联的,不用纠结切入点,随便选一个,最后都能连成网。

    我说一下我上过的课程顺序吧。

    大一上:
    c语言,高数上,线性代数
    大一下:
    c++,数字逻辑,高数下,汇编语言,概率论和数理统计
    大二上:
    java,数据结构,计算机组成原理,离散数学上
    大二下:
    操作系统原理,编译原理,软件工程概论,离散数学下,UML
    大三上:
    XML,数值分析,嵌入式操作系统(linux,android),J2EE,数据库系统原理,软件测试,云计算
    大三下:
    计算机网络基础,软件体系结构,多媒体技术,移动互联网应用开发技术,软件体统分析和设计,计算机视觉,VC++程序设计

    有些是选修课,仅供参考
    先把语言基础打好,c的话可以看 the c programing language和c primer plus,至少掌握一门面向对象语言,然后学离散数学,数据结构与算法。以后可以上操作系统,数据库,计算机网络,不要在大一时候学太多商业化技术(比如说web开发,app开发),虽然很容易激发兴趣,但是以后很可能会发现自己浪费了很多时间在写白菜代码。基础是万年不变的硬道理。基础扎实了学啥不容易?

    1.学好英语
    2.刷完伯克利61A 61B 61C,推荐再看看龙书
    3.刷完leetcode
    到这步差不多也知道要学什么更细的方向了

    Ps:编程实践及其重要,每一个知识点都一定要编程实现一下,可以动手写一个操作系统、编译器之类的对整个计算机体系结构理解会加深很多,千万不要只看书
    好多课程,比如说coursera,还有一大堆国际名校课程,比如说cs61a,还有网易云课堂,挺好的,
    想做程序员的行政管理本科生
    我也大一,这是我从一本书里截的图,希望能帮到你。

    作者用类似金字塔的结构体现了本科四年的课程体系。电路和数学是基础,然后是各种数据结构、语言、组原、操作系统等等。
    然后……其实我也很糊涂,,,Orz。还是看图吧,按这个学肯定没问题……就是太多

    执行力特别重要!!!!!!
    我只是来推荐些书的

    有趣的科普(故事)书:
    《世界是数字的》 《浪潮之巅》
    《黑客与画家》 《线上幽灵》(这本纯属故事书~没什么科普,但是了解了社工的帅气)
    轻松的科普书:
    《编码》《程序员的数学》
    科普书:
    《C程序设计语言》《C Primer plus》

    嗯,暂时就这些都是我看完了的,或者正在看的~

    其实学计算机感觉自学能力和找资源的能力比较重要啦~几本几本都是次要的~

    慕课也是一个不错的自学网站。

    :转自知乎

    展开全文
  • 河南开设有计算机科学与技术专业的大学有30多所,但却没有一所是211、985重点建设高校,不得不说对于高考成绩非常好的考生来说,只能选择省外院校了,不过对于普通本科生来说,下面这些院校还是不错的。河南工业大学...

    河南开设有计算机科学与技术专业的大学有30多所,但却没有一所是211、985重点建设高校,不得不说对于高考成绩非常好的考生来说,只能选择省外院校了,不过对于普通本科生来说,下面这些院校还是不错的。

    050069de41e6d78afb4cca829a350fd3.png

    河南工业大学

    河南工业大学是河南省重点建设本科院校之一,占地总面积2930多亩,开设67个本科专业,现有全日制在校生34000余人,河南工业大学计算机科学与技术专业2019年在全国27个省份有招生计划,其中在河南招生126人,该专业2019年在河南省内普通一本最低录取分数线541分,农村专项计划、国家专项计划最低录取分数线530分。

    河南理工大学

    河南理工大学是河南省特色骨干高校之一,占地面积4100余亩,开设有74个本科专业,全日制在校生40000余人,河南理工大学计算机科学与技术专业按计算机类含计算机科学与技术、软件工程、物联网工程大类招生,2019年面向全国22个省份共计招生390人,2019年计算机类在河南省内最低录取分数线532分,2019年计算机类在河南省内最低录取分数线525分。

    郑州轻工业学院

    郑州轻工业学院是一所普通本科院校,占地面积2100余亩,现有66个本科专业,在校生22000余人,郑州轻工业学院计算机科学与技术专业学费每年每生3700元,该专业2019年在河南省内最低录取分数线525分河南一本省控线523分。

    以上三所开设有计算机科学与技术专业的大学均为一本招生录取,最低分数线在河南省刚超过一本线2-7分,所以对于高考成绩刚过一本线的考生来说,选择比较合适。

    展开全文

    展开全文
  • 计算机科学与技术专业:主要学什么? 本文主要包括如下内容: 程序员职位要求 CS 专业课程列表 怎样寻找资源学习? 程序员高薪排行榜 程序员职位要求 看课程之前,我们先来看看 BAT 的招聘岗位 JD: 新...

    计算机科学与技术专业:主要学什么?

    本文主要包括如下内容:

    • 程序员职位要求
    • CS 专业课程列表
    • 怎样寻找资源学习?
    • 程序员高薪排行榜

    程序员职位要求

    看课程之前,我们先来看看 BAT 的招聘岗位 JD:

    新零售技术事业群-java开发-淘系技术部 

    https://job.alibaba.com/zhaopin/position_detail.htm?positionId=71138

    岗位要求:

    1. JAVA基础扎实,理解IO、多线程、集合等基础框架,对JVM原理有充分的理解,有大型应用JVM参数调优经验优先。
    2. 5年以上使用JAVA开发的经验,对于用过的开源框架,能了解到它的原理和机制, 有开源作品且或参与开源社区贡献者优先;具备三年以上大型分布式系统开发和架构经验; 在后台技术上有长期积累和专长, 熟悉分布式系统的设计和应用,熟悉分布式、缓存、消息和存储等机制;能对分布式常用技术进行合理应用和技术方案落地。
    3. 有2B产品架构的经验,制造业IT架构经验, 熟悉微服务架构,Serverless等方面者优先。
    4. 热爱技术研发,具有快速学习能力;注重代码质量,有良好的软件工程知识和编码规范意识。
    5. 具有高度的抽象设计能力, 思路清晰, 善于思考, 能够独立分析和解决问题, 责任心强; 具备良好的团队合作精神和风险预判能力, 对系统的压力和瓶颈针对性的优化和解决方案落地。

     

    高级Java开发工程师/技术专家-研发中台

    https://job.alibaba.com/zhaopin/PositionDetail.htm?positionId=69877

    岗位要求:

    1、具有三年以上互联网/软件行业工作经验;
    2、对各种开源的框架如 Spring、Mybatis、tomcat、netty、dubbo 等有深入的了解,对框架本身有过开发或重构者可优先考虑;
    3、具备系统调试、性能调优等技能,对疑难技术问题具备较强的排查能力。有强烈的责任心和使命感;
    4、有大规模、高吞吐量的系统开发实践经验优先;有流程引擎开发经验或serverless化平台开发经验或业务平台建设经验的优先;
    5、对技术富有热情,能关注Java或互联网行业技术发展趋势,勇于创新开拓;

     

    Java开发技术专家

    https://job.alibaba.com/zhaopin/PositionDetail.htm?positionId=66575

    岗位要求:

    1. Java基础扎实,对集合、IO、反射、多线程、NIO等高级特性有深入的掌握,对JVM原理、GC机制有较好的理解。
    2. 5年以上的JAVA系统开发经验,精通面向对象设计,对项目中接触过的开源框架、技术产品、算法等有针对性的进行过深入学习,了解其底层机制和原理。
    3. 有实际中大型系统设计经验,能有效利用技术手段解决实际业务需求。
    4. 对技术富有热情,能关注JAVA或互联网行业技术发展趋势,勇于尝试、敢于推动。
    5. 良好的沟通能力,勇于担当,能和团队形成合力。
    具备以下能力或经验者优先:
      分布式环境下高可用程序设计和实现(如银行、证券等高可用系统)。
      信息距离理论基础,智能问答系统、爬虫系统设计和实现。
      统一数据接口层或类似平台的架构经验(如开放接口平台、GraphQL等)。

    25928-后台开发高级工程师(深圳)

    IEG | 深圳 | 技术 | 2019年09月09日

    工作职责

    • 负责游戏AI在线服务,包括但不限于在线预测模块,任务调度模块以及运营监控模块;
      负责相关系统模块的设计、开发与维护,确保相关系统稳定运行。

    工作要求

    • 本科或以上学历,2年以上相关开发经验;
      精通至少一门服务器端编程语言(PHP/Python/NodeJS/C++)
      责任感强、有较强的逻辑思维能力、沟通能力和抗压能力;
      具备后台开发的能力及系统运维的能力者优先。

    https://careers.tencent.com/jobdesc.html?postId=1123176064093261824

     

    30360-用户增长大数据后台高级工程师

    PCG | 深圳 | 技术 | 2019年09月09日

    工作职责

    • 负责推荐平台架构,AI平台,增长/数据画像DMP后台建设,并优化实时/离线大数据处理流程;
      负责QQ海量用户数据模型开发管理,etl处理,画像建设;
      结合QQ平台业务,优化大数据融合流程架构,提升画像挖掘算法性能。

    工作要求

    • 精通spark/flink/hadoop/hbase等分布式计算技术,熟悉其运行机制和体系结构
      精通python/scala/java任意一门编程语言,熟悉c++/golang;
      熟悉业界主流大数据解决方案整体架构,两年以上数据仓库架构/应用经验;
      具备一定的机器学习背景,有算法相关项目开发经验;
      善于发现问题解决问题,良好的编程习惯,优化意识;
      优秀的团队合作沟通能力,较强的学习能力和进取心;

      计算机相关专业,2年以上工作经验;
      熟悉网络编程.数据库等后台开发知识尤佳。

    https://careers.tencent.com/jobdesc.html?postId=1125300900185772032

     

    CS 专业课程列表

    Computer Science is the study of computers and computational systems. Unlike electrical and computer engineers, computer scientists deal mostly with software and software systems; this includes their theory, design, development, and application.

    Principal areas of study within Computer Science include :

    artificial intelligence, computer systems and networks, security, database systems, human computer interaction, vision and graphics, numerical analysis, programming languages, software engineering, bioinformatics and theory of computing.

    Although knowing how to program is essential to the study of computer science, it is only one element of the field. Computer scientists design and analyze algorithms to solve programs and study the performance of computer hardware and software. The problems that computer scientists encounter range from the abstract-- determining what problems can be solved with computers and the complexity of the algorithms that solve them – to the tangible – designing applications that perform well on handheld devices, that are easy to use, and that uphold security measures.


    1.计算机导论:


    计算机科学的基础课程之一,其教学目的是概要性地对专业课程作介绍,是典型的面向专业新生的课程(即CS0型课程)。认真学习该课程有助于今后的学习,然而这门课程往往容易被新生们忽略……

    涵盖了计算机专业的主要内容:计算机硬件和软件的基本概念,包括数据存储、数据处理、数据输入和输出、操作系统、算法、高级程序设计语言、数据结构。计算机网络和Intemet。微机组成。
    (推荐教材:可使用学校配发的教材,但建议使用外版翻译教材。)


    2.高级语言程序设计:
    计算机科学的基础课程之一,教学目的是让本专业同学实际掌握一门程序设计语言并且习得一些程序设计的基本技能,目前的教学语言是C语言。个人认为课程名称可改为“高级程序设计语言”,因为课程对语言的强调远胜于对程序设计本质的讲解。建议在学习这门课程时配以《程序设计实践》一书,效果甚佳。
    (推荐教材:
    ①《从问题到程序——程序设计与C语言引论》 机械工业出版社
    ②《程序设计实践》 机械工业出版社
    ③《程序设计语言——实践之路》 电子工业出版社 )


    3.离散数学:
    计算机科学基础课程之一,被誉为计算机科学的数学基础。其内容博大精深,从中派生出的图论(图算法)、数理逻辑、组合数学以及泛代数等多门专业课程是现代计算机科学和应用数学的主要研究领域。能否学好离散数学对进一步学习以后的专业课程有着非同一般的影响。
    (推荐教材及参考书:
    ①《离散数学》(第四版) 清华大学出版社
    ②《离散数学导学》机械工业出版社
    ③《现代应用数学手册:离散数学卷》清华大学出版社 )


    4.电路与电子技术:
    电子产业有“朝阳产业”的美誉,被认为是信息时代的工业。这门电子与电路技术可谓是对电子学领域学习的敲门砖。虽然课程本身对计算机科学专业今后的学习影响不大,但掌握这项技能对于学生本身专业素养地提高是大有裨益的。同时,学习这门课程也能为今后学习数字逻辑和微机原理等系统底层方面的课程打好基础。
    (推荐教材:《电子学基础:电路和元器件》(第四版)清华大学出版社)


    5.面向对象程序设计:
    如果说上世纪软件开发领域最伟大的突破是什么,面向对象程序设计(OOP)必为其中之一。目前主流的程序设计语言,如C++、Java、Python和Delphi等,几乎清一色支持面向对象。可以说,掌握的面向对象的精髓,便是掌握了我们这个行业的入门钥匙。我校此课程的教学语言采用的是C++,而就国内C++教学的糟糕现状来看,若想完整掌握面向对象思想,学生自己不努力是不行的。
    (推荐教材及参考书:
    ①《C++ Primer中文版》(第四版) 人民邮电出版社
    ②《Essential C++ 中文版》华中科技大学出版社
    ③《Effective C++ 中文版》(第三版)电子工业出版社
    ④《Accelerated C++(影印版)》机械工业出版社
    ⑤《C++语言的设计与演化》机械工业出版社 )


    6.数字逻辑:
    计算机科学核心课程之一。计算机科学中有一个研究领域即系统设计领域,而本门课程即为这一领域研究的基础。正确认识与掌握数字逻辑及其设计,可以使那些有志于系统底层开发的学生获益匪浅。
    (推荐教材:
    ①《数字基础(第八版)》清华大学出版社
    ②《逻辑与计算机设计基础》 中国电力出版社 )


    7.数据结构与算法:
    计算机科学核心课程之一。对数据地有效组织是程序的主要任务之一,算法的主要操作对象亦为数据结构。从简单的数组和链表,到各色高级的抽象数据类型(ADT),数据结构在程序设计中的地位不言而喻。学好数据结构,是进一步学习专业课的基本前提。可以这么说,一个不懂得如何组织和操控数据的学生,根本就不配当我们计算机科学专业的学生,更不配当一名程序员!!!
    (推荐教材:
    ①《C算法 第一卷(第三版)》人民邮电出版社
    ②《程序设计抽象思想——C语言描述》清华大学出版社
    ③《数据抽象与问题求解——C++语言描述(第四版)》清华大学出版社
    ④《数据结构与算法——Java语言描述》机械工业出版社 )


    8.计算方法:线性代数、微积分、微分方程等的计算机算法


    9.计算机原理与汇编:
    系统底层课程之一,亦为计算机科学核心课程。重点讲述计算机(微机)构造以及低级语言——汇编语言的基础知识。学习这门课程,对进一步学习编译原理等专业高级课程有很大帮助。
    (推荐教材:
    ①《深入理解计算机系统》中国电力出版社
    ②《Intel汇编语言程序设计(影印版)》清华大学出版社
    ③《Windows环境下32位汇编语言程序设计(第二版)》电子工业出版社
    ④《汇编语言编程艺术》清华大学出版社 )


    10.操作系统:
    计算机科学的核心课程之一。课程全面讲述了操作系统的原理与构造,各类上机实验更能让学生对操作系统有深刻地理解。
    (推荐教材:
    ①《操作系统(第三版)》机械工业出版社
    ②《现代操作系统(第二版)》机械工业出版社
    ③《Linux内核设计与实现(影印版)》机械工业出版社
    ④《UNIX系统编程》机械工业出版社
    ⑤《UNIX环境高级编程(第二版)》人民邮电出版社 )


    11.软件工程:
    计算机科学的核心课程之一。近年来,随着软件开发革命地进一步深化,批判软件工程及过程方法改进的著作日益丰富,我们也得以从不良的软件开放中解放。建议在学习本课程时,联系自己的实战,并阅读批判软件工程和改良软件工程的著作。
    (推荐教材及参考书:
    ①《软件工程:实践者的研究方法(第五版)》机械工业出版社
    ②《程序设计心理学(银年纪念版)》清华大学出版社
    ③《人月神话(银年纪念版)》清华大学出版社
    ④《人件》清华大学出版社 )


    12.数据库原理及应用:
    计算机科学与信息学科的好像课程之一。课程讲述了数据库原理以及设计等方面的内容。对于那些注重实效的学生而言,学好这门课程,可以使今后的工作更为轻松。
    (推荐教材:《数据库系统概念(第四版)》机械工业出版社)


    13.运筹学及其算法:线性规划、动态规划、排队论、决策分析等
    此课程课作为计算机科学的辅助课程,向学生介绍了运筹学方面的算法,此类算法属于现代算法范畴,本人暂时还未涉猎,故恕难对此课程解析之…… (推荐教材:待定)

    14.计算机网络:
    计算机科学的核心课程之一。课程详细地介绍了计算机网络的发展、组成和协议方面的内容。对于自我要求较高的同学而言,学好这门课程义不容辞!
    (推荐教材:
    ①《计算机网络(第四版)》清华大学出版社
    ②《TCP/IP协议族》清华大学出版社 )
    15.软件开发管理:
    应该是软件工程课的附属课程吧,不详。 (推荐教材:待定)
    对于工程,管理重于技术

    16.数学建模:
     

    17.J2EE体系结构:
    J2EE是目前我们产业的两大工业平台之一,学习这门课程,可以为今后涉足企业级开发领域打下基础。但请注意,J2EE和Java语言本身都是在不断演进的,因而如果不能在课程结束后持续学习相关技术,恐怕还不等你出大学校门,这门课的内容就已经过时了…… (推荐教材:最新的国外相关教材。)


    18.计算机图形学:
    计算机科学的核心课程之一。有关计算机图形学在各个领域的应用不必在下一一说明了吧。无论是游戏开发,还是航空航天等前沿领域,到处都有计算机图形学的技术被应用。目前该课程主要用C语言和OpenGL图形库进行教学,效果应该还算不错。
    (推荐教材及参考书:
    ①《计算机图形学原理与实践-C语言描述(第二版)》机械工业出版社
    ②《交互式计算机图形学——基于OpenGL的自顶向下的方法(第四版)》清华大学出版社
    ③《OpenGL超级宝典(第三版)》 人民邮电出版社 )


    19.微型计算机技术:
    计算机专业的核心课程之一。课程详细地分析了微型计算机(主要是单片机)技术,由于这方面资料奇缺,这门课程可不太受在下欢迎…… (推荐教材:待定)

    20.编译原理:
    计算机科学核心课程之一。如果想要写出好的程序,编译原理的相关知识必不可少,因而这门课程是十分重点的一门课程。课程教材“龙书”、“虎书”和“鲸书”更是我们专业的经典著作。
    (推荐教材:
    ①《编译原理》机械工业出版社
    ②《现代编译原理——C语言描述》人民邮电出版社
    ③《高级编译器设计与实现》机械工业出版社 )


    21.Web系统开发:
    目前主流的web开发主要集中在ASP.NET和JSP开发领域 ,当然,还有近来火爆异常的Ajax,以前的CGI和ASP已经不那么流行了。与J2EE一样,这是一门必须持续学习的课程,否则,你必将被其所抛弃! (推荐教材:最新国外相关书籍。)


    22.嵌入式软件开发:
    这个领域可谓是软件开发的前沿领域,也是未来软件业霸主的孕育地之一(另两个领域为Web开发和企业级开发)。目前的软件开发领域正蕴含着“泛嵌入式”的潜规则(《程序员》2006年7月刊)。认真并持续学习这门课程,对将来的工作会有莫大的帮助。 (推荐教材:《嵌入式系统开放大全》人民邮电出版社)


    23.算法设计与分析:
    计算机科学的核心课程之一。“程序是衣,算法为魂”(《程序员》2006年3月刊),这门课程是本专业学生所亟需掌握的,如果学不好这门课,那么,你就不是一名优秀的程序员!
    (推荐教材:
    ①《数据结构与算法分析-C语言描述》机械工业出版社
    ②《C算法 第一卷 (第三版)》人民邮电出版社 )


    24.情报检索与利用

     

    怎样去寻找资源学习?

     

    我搜集了一些资源,放到这个组下面了:

    https://github.com/ComputerSchool2019

     

    全球最大的程序员社区:Github

    https://github.com/search?q=%E8%AE%A1%E7%AE%97%E6%9C%BA

     

     

    Stack Overflow:2019全球编程语言高薪排行榜

     

    近日,Stack Overflow 发布了 2019 年的最新调查结果,总结了不同编程语言在行业中可能获得的薪水。当然,在这个过程中也需要关注一些其他因素,比如:语言对使用者是否友好,这有助于更快地学习语言;是否与现在的科技趋势相关。(注:该数据根据 Stack Oveflow2019 年关于编程语言薪酬排行开发者调查报告得出。)

    全球十大收入最高的编程语言

    如上图是全球前十大收入最高的编程语言排名,但根据调查,收入与地域之间也是有区别的,比如在美国,Scala 的收入最高,可以达到 143k 美元,其次是 Clojure(139k 美元)、Go(136k 美元)、Erlang(135k 美元)、Objective-C(132k 美元);在印度,Clojure 和 Rust 收入最高。

    工作经验与薪水

    工作经验与薪酬肯定是相关的,但根据调查,有些编程语言无论工作经验多少,薪资都比较高好,而有些编程语言无论多少年工作经验都很一般。

    如上图,红圈的大小不同代表着受访者人数的范围不同,横轴代表着工作经验(年数),纵轴代表着薪资中位数。

    不难看出,使用 Clojure、F#、Scala、Go、Rust 和 R 语言的开发人员,虽然工作经验并不见得非常多,尤其是 Rust、R、Ruby 和 Go,也会获得不少的薪水。然而,PHP、Java、C、C++,即使有多年开发经验,薪水也很难有比较高的提升。

    职位与薪水

    当然,薪酬高低也与所从事的职业有非常大的关系。根据对全球四大 IT 市场的调查,DevOps 专家全部高居榜首,可见市场对这一技术的需求量有多大。除此之外,数据科学家、全栈工程师、嵌入式开发工程师、桌面开发人员的市场受欢迎度均较高。

    如果按照职位来划分,薪水又会出现一些不同。管理岗位的薪水肯定会略高一些,其余基本与市场需求相对应,DevOps 专家的薪水可以达到 71k 美元,数据或者机器学习专家的薪水可以达到 61k 美元,全栈开发者的薪资为 57k 美元,后端开发者略低一些为 56k 美元。

    中国热门编程语言收入情况

    国内整体的薪资水平要略低于全球,需求量较大的依旧是 Java、Python 这类语言。如果与全球薪资较高的编程语言比的话,如果对国内主流招聘网站进行统计,以“Go 语言”为关键字在全国范围搜索,热门地区(北上广深等需求量较大的城市)月薪基本集中在 15-30k 人民币之间,一线互联网大厂的薪酬确实更具竞争力,比如 BAT、高德、奇虎 360、滴滴等,不仅给出的月薪更高(25-60k 之间浮动),不少还明确标出可以给 14 至 16 个月的薪水,而所要求的工作经验基本都在 3 到 5 年。

    至于 Scala 语言,整体薪水确实比 Go 语言略高一些,在没有筛选的情况下,首页出现的大部分薪资集中在 20-50k 之间,这一结果倒是与全球的调查报告相匹配。

    此外,在国内几个招聘网站进行搜索,都没有找到太多有关 Clojure 的招聘需求,样本数量太少,很难判断这一岗位的薪资情况,但可以看出国内对此的需求极低,而 Clojure 在全球市场却可以占到薪资排行榜的第一名,这一结果倒还蛮出乎意料。

    国内对于 Rust 的招聘需求并不旺盛,可搜寻到的岗位不到 Go 语言的十分之一,只比 Clojure 好一些,基本是规模较大的企业对此才有招聘需求,比如今日头条、滴滴等,给出的薪资倒是还算优厚,月薪基本集中在 25k 人民币以上。

    至于 DevOps,虽然国内可搜寻到的岗位不少,但薪资并没有太高,基本与 Go 语言的区间水平相当,要求具备 3 到 5 年工作经验的依旧是最普遍的。

    如果回看 2018 年某招聘网站发布的统计数据,算法研究员和机器学习工程师在过去一年的平均月薪偏高,分别为 28435 元和 26798 元,架构师薪资最高为 29600 元。编程语言中,Go 语言的平均月薪最高为 22961 元,其次是 C++、Python、Java。

    编程语言适用场景

    虽然薪水高低会成为影响开发人员是否选择的重要因素,但并不是唯一因素,不同编程语言的适用场景也是需要开发人员认真考虑的。

    Go

    Go 语言由谷歌开发,并于 2009 年 11 月发布。它是开源的,由于这个原因使得它在公司内部的不同项目中得到了积极应用,一些很有名的服务也使用 Go 语言开发,如 SoundCloud、Netflix 和 Dropbox。

    近年来 Go 语言受欢迎程度大大提高,还得益于 Go 语言下面的优势:

    • 支持多线程任务
    • 支持并行处理
    • 快速的启动时间
    • 高效的内存管理

    很多人都认为它将成为未来的服务器语言,Go 有一些很不错的特性:

    • 它非常简洁、简单和安全
    • 编译非常快
    • 它支持带有嵌入式类型的接口
    • 它不需要任何外部依赖关系来生成静态链接的本机二进制文件

    Kotlin

    Kotlin 编程语言是由 JetBrains IT 公司开发的,它已经成为 Android 的官方开发语言。这是在 2017 年谷歌开发者大会上宣布的。

    它有很多优点,如:

    • 易于理解的语法
    • 与 Java 兼容
    • 谷歌的支持
    • 快速增长的社区

    很有可能不久之后的 Android 应用程序完全使用 Kotlin 编写,所以如果想面向移动应用程序编程,应该考虑将 Kotlin 作为一个选择。

    Ruby(特别是 Rails)

    作为开发 web 应用程序的工具,Ruby 获得了广泛欢迎,并被用于开发全球很多流行产品的服务端部分。Ruby 语言的主要目的是创建强大的、易于理解的程序,其中最重要的不是程序运行的速度,而是开发时间。此外,代码的清晰性和简单性使 Ruby 非常受欢迎。

    Ruby 一些不错的特性有:

    • 一切都是对象
    • 模块——这些模块允许在运行时动态添加类层次结构的新元素
    • 代码开发
    • 动态类型
    • 鸭子类型
    • 代码质量

    Objective – C

    Objective-C 语言用于开发苹果生态系统中的应用程序,纯粹用于开发 Mac OS X 和 iOS。尽管出现了一种新的编程语言 Swift,,但 Objective-C 仍然是开发人员社区中非常流行的选择。此外,因为它与苹果的关系使其拥有一个非常高的需求市场。只要苹果“依赖”Objective-C,开发人员就会一直有市场,并可以获得丰厚的报酬。

    Objective-C 一些很好的特性有:

    • 类即对象——每个类都是一个元类的实例
    • 动态类型
    • 可选的静态类型
    • 动态运行时
    • 内省 introspection

    C #

    C# 是由一群微软工程师开发的,目的是在.NET 平台上开发应用程序。假如希望在微软平台开发本地应用程序并获得相关经验,那么 C# 是理想的语言。

    从本质上讲,C# 是一种简单、现代和通用的面向对象的编程语言。C# 的一大优点是相对简单,并且能够更多地关注算法而不是实现细节。目前,C# 被用于开发许多应用程序,从小型桌面程序到大型门户网站和人们日常使用的 web 服务。

    C# 主要用于:

    • Windows services——没有 UI 的长时间运行的程序
    • Web 应用程序——客户端 / 服务端应用程序
    • 窗口应用程序——运行在桌面上的应用程序
    • Web 服务——通过 HTTP 提供服务的应用程序
    • 游戏——用 Unity 完成
    • 控制台应用程序——没有 UI 的应用程序

    Python

    大量的框架工具、培训材料、友好的社区支持、编码的简单性使其在 2019 年的高薪编程语言榜单上占有一席之地。Python 是目前使用最强大的编程语言之一。它用于:

    • 数学计算
    • 数据分析
    • Web 开发
    • 机器学习
    • 任务自动化

    事实上 Youtube、Dropbox、Reddit 和 Google 等应用程序都是用 Python 开发的。

    Java

    很长一段时间以来,Java 编程语言一直是开发人员社区中需求最旺盛的语言之一。Java 主要用于开发银行和自动化测试中的产品。它的跨平台特性非常受欢迎,这是因为 JVM 的缘故。

    Java 是一种很有前途的编程语言。它被广泛地用于创建服务器和移动应用程序,还被用作开发 Android 本地应用程序。

    Java 可用于开发:

    • 移动应用程序
    • 网络应用程序
    • 桌面应用程序
    • 游戏
    • 数据库连接

    Swift

    Swift 是用于开发苹果平台应用程序的主要语言,主要应用于: 

    • MacOS
    • iOS
    • watchOS
    • tvOS

    这是一种非常通用的编程语言,主要用于开发苹果产品。值得一提的是,它是在 5 年前(2014 年)刚发布。其主要和最突出的优点是速度:无论是运行还是启动应用程序。正是这种优势赋予了它这个名字,它的创造者说其吸收了其他语言的所有优势。

    总  结

    市场上总是缺少有才华的程序员,未来几年,这仍然将是市场上的一个紧迫问题。对上述语言的了解和足够的相关工作经验可以为开发人员打开许多大门。此外,开发者没必要限制自己只使用一种语言。无论是理论还是实践,都可以尝试用另一种编程语言学习新的知识,所需要的只是激情和努力!

     

     


    Kotlin 开发者社区

    国内第一Kotlin 开发者社区公众号,主要分享、交流 Kotlin 编程语言、Spring Boot、Android、React.js/Node.js、函数式编程、编程思想等相关主题。

    展开全文
  • 教育部学位研究生教育发展中心公布了全国第四...一级学科代码及名称: 0812 计算机科学与技术 本一级学科中,全国具有“博士授权”的高校共 77所,本次参评75所;部分具有“硕士授权”的高校也参加了评估;参评高校共.

    PS: 转载于: https://kaoyan.koolearn.com/20200611/1080433.html

    教育部学位与研究生教育发展中心公布了全国第四轮学科评估结果。在95个一级学科范围内开展(不含军事学门类等16个学科),共有513个单位的7449个学科参评。下面是一级学科哲学的评估结果,大家可以看看,选择合适的考研院校。

    一级学科代码及名称: 0812 计算机科学与技术

    本一级学科中,全国具有“博士授权”的高校共 77所,本次参评75所;部分具有“硕士授权”的高校也参加了评估;参评高校共计238所(注:评估结果相同的高校排序不分先后,按学校代码排列)。


    评估结果学校代码及名称
    A+10001 北京大学
    10003 清华大学
    10335 浙江大学
    90002 国防科技大学
    A10006 北京航空航天大学
    10013 北京邮电大学
    10213 哈尔滨工业大学
    10248 上海交通大学
    10284 南京大学
    10487 华中科技大学
    10614 电子科技大学
    A-10004 北京交通大学
    10007 北京理工大学
    10145 东北大学
    10183 吉林大学
    10247 同济大学
    10358 中国科学技术大学
    10486 武汉大学
    10533 中南大学
    10698 西安交通大学
    10699 西北工业大学
    10701 西安电子科技大学
    90005 解放军信息工程大学
    B+10002 中国人民大学
    10005 北京工业大学
    10008 北京科技大学
    10055 南开大学
    10056 天津大学
    10141 大连理工大学
    10217 哈尔滨工程大学
    10246 复旦大学
    10269 华东师范大学
    10286 东南大学
    10287 南京航空航天大学
    10288 南京理工大学
    10336 杭州电子科技大学
    10359 合肥工业大学
    10384 厦门大学
    10422 山东大学
    10532 湖南大学
    10558 中山大学
    10561 华南理工大学
    10610 四川大学
    10611 重庆大学
    10613 西南交通大学
    10617 重庆邮电大学
    90006 解放军理工大学
    B10027 北京师范大学
    10060 天津理工大学
    10108 山西大学
    10151 大连海事大学
    10186 长春理工大学
    10214 哈尔滨理工大学
    10216 燕山大学
    10251 华东理工大学
    10280 上海大学
    10285 苏州大学
    10290 中国矿业大学
    10294 河海大学
    10299 江苏大学
    10300 南京信息工程大学
    10337 浙江工业大学
    10357 安徽大学
    10423 中国海洋大学
    10491 中国地质大学
    10497 武汉理工大学
    10559 暨南大学
    10590 深圳大学
    10635 西南大学
    10730 兰州大学
    90059 火箭军工程大学
    B-10009 北方工业大学
    10019 中国农业大学
    10028 首都师范大学
    10058 天津工业大学
    10079 华北电力大学
    10112 太原理工大学
    10126 内蒙古大学
    10143 沈阳航空航天大学
    10255 东华大学
    10293 南京邮电大学
    10295 江南大学
    10353 浙江工商大学
    10386 福州大学
    10424 山东科技大学
    10427 济南大学
    10511 华中师范大学
    10593 广西大学
    10595 桂林电子科技大学
    10673 云南大学
    10697 西北大学
    10746 青海师范大学
    10755 新疆大学
    11414 中国石油大学
    90045 空军工程大学
    C+10010 北京化工大学
    10032 北京语言大学
    10033 中国传媒大学
    10059 中国民航大学
    10075 河北大学
    10080 河北工业大学
    10153 沈阳建筑大学
    10165 辽宁师范大学
    10252 上海理工大学
    10264 上海海洋大学
    10292 常州大学
    10338 浙江理工大学
    10345 浙江师范大学
    10351 温州大学
    10394 福建师范大学
    10403 南昌大学
    10459 郑州大学
    10488 武汉科技大学
    10534 湖南科技大学
    10602 广西师范大学
    10621 成都信息工程大学
    10657 贵州大学
    10674 昆明理工大学
    10710 长安大学
    11065 青岛大学
    11664 西安邮电大学
    C10011 北京工商大学
    10076 河北工程大学
    10107 石家庄铁道大学
    10110 中北大学
    10188 东北电力大学
    10190 长春工业大学
    10270 上海师范大学
    10360 安徽工业大学
    10414 江西师范大学
    10456 山东财经大学
    10460 河南理工大学
    10462 郑州轻工业学院
    10530 湘潭大学
    10564 华南农业大学
    10700 西安理工大学
    10702 西安工业大学
    10712 西北农林科技大学
    11075 三峡大学
    11117 扬州大学
    11258 大连大学
    11845 广东工业大学
    C-10052 中央民族大学
    10144 沈阳理工大学
    10212 黑龙江大学
    10254 上海海事大学
    10289 江苏科技大学
    10385 华侨大学
    10405 东华理工大学
    10407 江西理工大学
    10421 江西财经大学
    10463 河南工业大学
    10475 河南大学
    10476 河南师范大学
    10490 武汉工程大学
    10495 武汉纺织大学
    10500 湖北工业大学
    10536 长沙理工大学
    10589 海南大学
    10596 桂林理工大学
    10615 西南石油大学
    10618 重庆交通大学
    10623 西华大学
    10651 西南财经大学
    10705 西安石油大学
    11232 北京信息科技大学
    11535 湖南工业大学
    90039 海军航空工程学院


    第四轮学科评估按照“自愿申请、免费参评”原则,采用“客观评价与主观评价相结合”的方式进行。评估体系在前三轮的基础上进行诸多创新;评估数据以“公共数据和单位填报相结合”的方式获取;评估结果按“分档”方式呈现,具体方法是按“学科整体水平得分”的位次百分位,将前70%的学科分9档公布:前2%(或前2名)为A+,2%~5%为A(不含2%,下同),5%~10%为A-,10%~20%为B+,20%~30%为B,30%~40%为B-,40%~50%为C+,50%~60%为C,60%~70%为C-。

    公布评估结果旨在为参评单位了解学科优势与不足、促进学科内涵建设、提高研究生培养质量提供客观信息;为学生选报学科、专业提供参考;同时也便于社会各界了解我国高校和科研单位学科内涵建设的状况和成效。
    展开全文
  • 什么是计算机科学与技术专业?...行政管理部门等单位从事计算机教学、科学研究和应用的计算机科学与技术学科的高级科学技术人才。 本人是计算机科学与技术专业本科毕业,混迹江湖10多年,反思本专业有如下体验
  • 计算机科学与技术核心期刊和相关网站

    万次阅读 多人点赞 2018-09-24 18:25:48
    1. 计算机科学与技术英文版: 《Journal of Computer Science and Technology》(双月刊) SCI-E源期刊,中文重要期刊,EI Compendex源期刊,中文核心期刊 主办单位:中国科学院计算技术研究所 地址:北京2704信箱 ...
  • 计算机科学与技术中文核心期刊

    千次阅读 2019-09-06 11:05:22
    原文地址:作者总结得很好https://blog.csdn.net/zuochao_2013/article/details/71124878 计算机中文核心期刊 1.计算机科学与技术英文版: 《Journa...
  • 本科生如何学习计算机科学与技术

    千次阅读 多人点赞 2017-03-29 21:12:25
    我本人是计算机科学与技术专业学生,大学所学内容涵盖了计算机科学的所以基础课程。其中包括C、C++,算法导论,数据结构,数电模电,计算机组成原理,微机原理,汇编语言,计算机网络,编译原理,计算机体系结构,...
  • 计算机科学与技术的未来发展前景

    千次阅读 2015-12-11 07:57:59
    2015年计算机科学与技术专业就业前景分析...能在科研部门、教育单位、企业、事业、技术和行政管理部门等单位从事计算机教学、科学研究和应用的计算机科学与技术学科的高级科学技术人才。  计算机科学与技术专业就业现
  • 2017年12月28日,教育部学位研究生教育发展中心公布了全国第四轮计算机科学与技术学科评估排名结果,也是目前最新的比较准确的学科排名,排名比较不错的大学有北京大学、清华大学、浙江大学、国防科技大学,以下是...
  • 计算机科学与技术学科核心期刊

    千次阅读 2015-01-22 08:29:46
    计算机科学与技术学科核心期刊 来自:http://hi.baidu.com/huguosheng/item/b47243e306234e2d5b7cfba9?qq-pf-to=pcqq.group 1 计算机学报  2 自动化学报  3 软件学报  4 计算机研究发展  5 小型微型计算机...
  • 计算机科学与技术学习心得

    千次阅读 2013-03-01 15:35:05
    计算机科学与技术学习心得 撰文 曾毅 声明: 1.本文集众前辈及恩师之经验于一文,由我执笔总结前辈所感而已。并非尽我所言,特别说明基于南京大学网友sir在南京大学小百合站点发表的文章《理论计算机...
  • 计算机科学与技术学习心得(转载)

    千次阅读 2011-06-16 23:07:00
    计算机科学与技术学习心得 计算机科学与技术反思录计算机科学与技术这一门科学深深的吸引着我们这些同学们,上计算机系已经有近三年了,自己也做了一些思考,我一直认为计算机科学与技术这门专业,在本科阶段是不可能...
  • 计算机科学与技术类业毕业生的职业发展路线基本上有三条路线: 第一类路线,纯技术路线;信息产业是朝阳产业,对人才提出了更高的要求,因为这个行业的特点是技术更新快,这就要求从业人员不断补充新知识,同时对...
  • 建筑,结构,暖用,给排水,电气全专业资深BIM工程师的转行计算机科学与技术,大专毕业,励志985高校的考研之路。
  • 计算机科学与技术专业教学计划表

    千次阅读 2016-02-01 00:00:00
    根据 ① 我个人的认知水平; ② 我院的师资情况; ③ 学生的学习规划、就业、考研(含... 编写了《计算机科学与技术专业教学计划表》。 ---------------------------- 本科(学士):要注重理论知识的学习和
  • 但是,然而,17考研华南师范大学计算机科学与技术专业的同学们,你们的有福了!我们聚英考研在中秋节前,特别发布2017年华南师范大学计算机科学与技术专业的指定参考书目! 中秋送福利,考研,我们聚英撑你! ...
  • 计算机科学与技术专业考研方向

    万次阅读 多人点赞 2012-11-18 16:43:07
    报考方向有:1、计算机系统结构 2、计算机软件理论 3、计算机应用技术 4、计算机软件工程 5、信息安全  1、计算机应用技术  研究方向:计算机网络、实时计算机应用、CIMS、计算机图形学、并行计算、网络信
  • 计算机科学与技术本科知识体系

    千次阅读 多人点赞 2016-05-16 23:59:56
    整个计算机科学就像人一样,有两条腿。一条叫做数学(基础),一条叫做物理(基础)。数学主要指的是离散数学,其中比较重要的是逻辑和证明、Turing论题和Churcher论题。逻辑系统用逻辑的方法描述这个世界,在寥寥数...
  • 计算机科学与技术专业课程简介

    千次阅读 2020-01-31 21:17:55
    《高等数学》 Higher Mathematics 《线性代数》 Linear Algebra ...《计算机科学技术导论》 Introduction to Computer Science and Technology 《电路模拟电子技术》 electronic Circuit and Simulation...
  • 能在科研部门、教育单位、企业、事业、技术和行政管理部门等单位从事计算机教学、科学研究和应用的计算机科学与技术学科的高级科学技术人才。
  • 计算机科学与技术、网络空间安全、电子信息初试及复试科目如下: 由于学校的调整,最终的招生计划、一志愿复试人数、复试最低分如下: 招生计划、一志愿复试人数、复试最低分:
  • 计算机科学与技术专业学习引论

    千次阅读 2007-10-06 19:40:00
    7月24日计算机科学技术学习引论(转帖)计算机科学技术这一门科学深深的吸引着我们这些同学们,上计算机系已经有近三年了,自己也做了一些思考, 原先不管是国内还是国外都喜欢把这个系分为计算机软件理论、计算机...
  • 最近发现身边自考的朋友很多,首先自考的精神是值得鼓励的,但是他们总是问我要资料,这我就不开心了!所以我干脆花点时间,把资料整理了一下,放在网盘上,谁要谁就去拿吧! 获取方式,为了持续更新和防止... ......
  • 2020年北京林业大学计算机科学与技术 考研复试总结+专业课复习重点前言复试总结专业课相关 前言 有幸成功上岸北林学硕,成功续费北林,借此分享一下复试历程。 复试总结 因为疫情的原因,没有同往常一样,采用线下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 272,144
精华内容 108,857
关键字:

计算机科学与技术