我应该学习哪些编程基础知识?

时间:2009-04-10 04:09:22

标签: programming-languages

我在编程方面有一个非常奇怪的学习经历。我有点教C ++,但我没有从中得到很多。这是我从中得到的:标题和变量声明。我试着自学PHP,其中我学到了很多东西。问题是,我的很多知识都是广泛的,随机的,并针对特定情况而设计。

所以,我的问题是:用大多数语言进行编程有哪些基础知识?

7 个答案:

答案 0 :(得分:23)

术语“基础”意味着一个简短的列表,但要成为一名有效的程序员,您必须学习很多概念。但是,一旦你学会了它们,你就可以跨语言应用许多相同的概念。

我编写了一个(很长的!)概念列表,这些概念在几种(如果不是大多数)编程语言中很重要。

  • 语言语法

    • 关键字
    • 命名惯例
      • 分配
      • 算术
      • 字符串
      • 其他
    • 字面
    • 条件
      • 如果/其他
      • 开关/壳体
      • 什么被认为是真或假(0?空字符串?空?)
    • 循环结构
      • 的foreach /迭代
      • ,而
      • 做-而
    • 异常处理
    • 从其他文件导入/包含代码
  • 输入系统

    • 强/弱
    • 静态/动态
  • 内存管理

  • 作用域

    • 有哪些可用范围
    • 如何处理重叠范围
  • 语言结构/程序组织

    • 变量
    • 方法
    • 功能
    • 闭包
    • 软件包/模块/命名空间
  • 数据类型和数据结构

    • 基元
    • 物件
    • 阵列/列表
    • 地图/哈希/关联数组
    • 枚举
    • 字符串
      • 字符串连接
      • 字符串比较和平等
      • 子串
      • 替换
      • 可变性
      • 创建文字字符串的语法
  • 功能,方法,闭包

    • 方法/功能重载
    • 方法/功能覆盖
    • 参数传递(按值传递/按引用传递
    • 返回值(单次返回/多次返回)
  • 语言类型(不相互排斥)

    • 脚本
    • 程序
    • 功能
    • 面向对象
  • 面向对象的原则

    • 继承
    • 古典与原型
    • 单身,多人或其他
    • 静态变量/全局变量
    • 访问修饰符(私有,公共,受保护)
  • API(或如何做基本的东西)

    • 基本I / O
    • 打印到标准输出
    • 从标准
    • 中读取
    • 文件I / O.
      • 阅读文件
      • 写一个文件
      • 检查文件属性
    • 使用正则表达式
    • 引用环境变量
    • 执行系统命令
    • 线程模型
      • 创建主题
      • 线程安全性
      • 同步原语
    • 模板

答案 1 :(得分:5)

此处未提及的另一个重要事项是面向对象编程。这些想法围绕着类,继承,接口等。

答案 2 :(得分:3)

一个非常重要的基本编程技能是能够在许多不同的抽象级别进行思考,并知道何时以及哪种抽象级别最适合特定的编程任务。

答案 3 :(得分:2)

指针。因为很少有人真正理解它们。

递归和迭代,加上差异,以及何时使用它们。

获取算法书并完成练习 - 你不会失望。

答案 4 :(得分:2)

测试! (单元测试,集成测试,夹具,模拟对象,......)

并非编程技能,但肯定是一项开发技能:使用修订控制,并学习提交处理一个(或几个相关)需求或错误修复的更改集,并且将始终生成编译的源树没有错误。这将教你组织你的工作: - )

最后但并非最不重要:英语...... :-)同样,这不是编程技巧,我知道有些人可能不同意,但我觉得任何使用英文关键词的编程语言也应该用英文编程。所以:使用英文变量名,依此类推。我甚至会说代码注释应该是英文的,但我相信更多的人会不同意这一点......所以:了解其他人如何描述他们的代码,并坚持这一点。

答案 5 :(得分:1)

如果我是你,我会回去学习K& R课程中的C编程语言。

答案 6 :(得分:1)

首先找出你想要编程的东西 - 例如web,PC应用程序,基于Java的应用程序,移动设备,报告,系统接口,企业对企业界面等等,然后从那里开始。