Computer science 我应该知道哪些计算机科学概念?
你认为计算机科学中的哪些概念使你成为一名更好的程序员 我的学位是机械工程,所以作为一名程序员,我有点缺乏基础知识。我最近学到的一些标准CS概念让我对自己的工作有了更深入的了解,特别是: 语言功能Computer science 我应该知道哪些计算机科学概念?,computer-science,Computer Science,你认为计算机科学中的哪些概念使你成为一名更好的程序员 我的学位是机械工程,所以作为一名程序员,我有点缺乏基础知识。我最近学到的一些标准CS概念让我对自己的工作有了更深入的了解,特别是: 语言功能 指针和递归(谢谢Joel!) 数据结构 链表 哈希表 算法 气泡排序 显然,目前列表有点短,因此我希望得到以下建议: 我应该理解什么概念 任何正确理解它们的好资源(因为维基百科有时有点密集和学术性) 我发现图形和一些应用算法,如深度优先、呼吸优先搜索、最短路径等非常有用。面向对象也是一个非常
- 指针和递归(谢谢Joel!)
- 链表
- 哈希表
- 气泡排序
我发现图形和一些应用算法,如深度优先、呼吸优先搜索、最短路径等非常有用。面向对象也是一个非常普遍的概念。看看Steve Yegge(以前是亚马逊,现在是谷歌)的这篇博文:
你肯定应该理解算法的符号和Big-O估计-它是什么,它是如何使用的,为什么它很重要,你如何比较两个算法的Big-O估计,你如何为简单的算法建立Big-O估计。我想说,现在必须理解面向对象编程,即使你不需要每天使用它
因此,我还要说,理解最常见的模式也会有所帮助 一些操作系统概念
( memory, IO, Scheduling, process\Threads, multithreading )
[一本好书”,第二版,安德鲁·S·塔南鲍姆“]
计算机网络基础知识
一本好书
面向对象的概念
( memory, IO, Scheduling, process\Threads, multithreading )
有限自元
一种编程语言(我先学C,然后学C++)
算法
(时间\空间复杂性、排序、搜索、树、链表、堆栈、队列)
[一本好书]试着了解编程的各个层次。从最低层次(汇编)到最高层次
以递归为例,这是一个简单的特性:)试着学习汇编并创建一个在汇编中使用递归的程序。对我来说,我从大学的以下课程中学到了很多
- 项目管理
- 人机交互(帮助我们极客制作更人性化的屏幕)
- 数据库设计(包括数据库的工作方式、事务日志、锁定等)
- 数据仓库
- 图形(OpenGL)
- 高级算法
- 数据结构
- 编译结构
- 设计模式
- 自动机理论
(PHP,ruby伙计们请不要否决投票给我,我只是给他举了一些例子,你可以在这里提供你自己的答案和建议)我觉得你在寻找计算机科学科目有点可笑,但觉得维基百科太学术化了:D 不管怎样,这里没有特别的顺序:
- 关系模型:
- 对象定向:
- 复杂性和计算理论(想想图灵机和自动机):
- 一个小小的编译器设计:,尽管这对于您的需求来说可能有点过于深入
- 操作系统概念:
- 人际交往技能:
- 团队合作:
- 用户界面设计:
- 编程语言(Java、Python等)
- Shell语言
- 数据库语言(SQL)
- 表示语言(HTML和CSS)
- 其他数据表示语言(XML、JSON)
- 序列(列表、元组、文件)
- 分层(如XML和HTML文档以及基本文件系统)
- 关系(如数据库,以及包含硬链接和软链接的文件系统)
- 映射(或索引或关联数组),包括哈希映射和树映射