我应该知道哪些计算机科学概念? [英] What Computer Science concepts should I know?

查看:87
本文介绍了我应该知道哪些计算机科学概念?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您认为计算机科学中的哪些概念使您成为了更好的程序员?

What concepts in Computer Science do you think have made you a better programmer?

我的学位是机械工程专业,所以最终成为一名程序员,我是有点缺乏基础知识。我最近学到了一些标准的CS概念,这些概念使我对自己正在做的事情有了更深入的了解,尤其是:

My degree was in Mechanical Engineering so having ended up as a programmer, I'm a bit lacking in the basics. There are a few standard CS concepts which I've learnt recently that have given me a much deeper understanding of what I'm doing, specifically:

语言功能


  • 指针和递归(感谢Joel!)

数据结构


  • 链接列表

  • 哈希表

算法


  • 气泡排序

很明显,目前清单很短,所以我希望就以下方面提出建议:

Obviously, the list is a little short at the moment so I was hoping for suggestions as to:


  1. 我应该理解哪些概念,

  2. 任何正确理解它们的好资源(因为Wikipedia有时可能有点密集和学术性。)


推荐答案

看看Steve Yegge(以前是Amazon,现在是Google)的这篇博客文章:

Take a look at this blog post by Steve Yegge (formerly of Amazon, now at Google):

  • The Five Essential Phone Screen Questions

它详细介绍了开发人员应该掌握的五个最重要的概念必须知道:

It goes into some detail about the the five most important concepts that developers should be required to know:


  1. 基本编程(包括递归,文件I / O,格式化输出,循环等)

  2. 面向对象的设计(包括设计模式等)。您应该能够做出明智的OO设计并理解这些概念。

  3. 脚本和正则表达式。

  4. 数据结构-列表,集合,哈希表,树,图等-以及Big O表示法和算法复杂性。

  5. 位,字节和二进制数-计算机中数字的表示方式以及如何表示来操纵它们。

  1. Basic programming (including recursion, file I/O, formatted output, loops etc)
  2. Object oriented design (including design patterns etc). You should be able to produce sensible OO designs as well as understanding the concepts.
  3. Scripting and regexes.
  4. Data structures -- lists, sets, hashtables, trees, graphs, and so on -- as well as Big O notation and algorithmic complexity.
  5. Bits, bytes and binary numbers -- how numbers are represented within the computer, and how to manipulate them.

这篇关于我应该知道哪些计算机科学概念?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆