程序设计语言

程序员至少要学一门程序设计语言,这样才能开始做点什么。主流的程序设计语言一般都有一本圣经级别的书,例如 C 语言中, K&R 的 The C Programmer Lanugage,C++ 中的 C++ Primer, Java 中的 Thinking in Java。扎扎实实地选一本好好学习一下,把习题都做一遍,反复 阅读,掌握书中的知识点。如果开始学习的时候不认真,图快,早完要把这些时间还回来,还不如一开始就好好学习。

除了圣经级别的书,还有一些书可以增强对这些语言的理解,避免使用的时候踩坑。例如 C 专家编程,C 和指针这些,还有 C++ 中的 Effective C++, Java 中的 Effective Java。

当然,学习程序设计的过程中,其实单纯学习语言是有些无聊的,就像在背字典,在这个过程中,可以做一些有用的小程序。

一个程序员,至少要精通一门语言吧,无论是 C, C++ 还是 Java 还是其它。所以除了掌握这门语言的基本知识外,要做到精通,还需要其它 两个方面的知识。一是语言标准,关于语言核心的一切都在这里面,不熟悉语言标准怎么敢说精通。另一方面是标准库,要经常读语言标准库, 确保自己了解标准库的方方面面,不至于要用到一个东西时,标准库里有而自己不知道。

领域知识

只学程序设计语言本身无法成为出色的程序员,就像你熟悉字典里每一个字,并不说明你是一个优秀作家一样。能用精通的语言写出有用的程序,就要学习领域知识。无论是三大浪漫的操作系统,图形学,编译器,还是做其它领域,总有一些领域知识是必须要掌握的。很多领域知识都有一些基础的文档,要成为领域内的专家,就要反复阅读这些基础的文档。所有的东西,都是从这些基础的文档中演化出来的。例如,你要学习网络编程,那么 《TCP/IP 详解》,各种 RFC 读过没有,读过几次? 你要学习Android,那么官方的开发者中心,所有的文档你读过没有, 读过几次?

无论学习什么,一开始就要抱着成为领域内专家的态度去做。

通用知识

除了程序语言本身以及领域知识外,还有一些通用的知识是非常有必要了解的。假如我们要开发一个软件,现在你已经精通了语言以及领域 知识,那么就意味着一定可以开发出优秀的程序吗?不一定。你还要保证你写的程序是高质量的程序。

什么是高质量的程序呢?我觉得有两个方面需要注意,一是开发效率,二是运行效率。

开发效率

与开发效率相关的东西很多,例如程序的可读性,可维护性,正确性。从这两个方面,又可以衍生出代码风格,高内聚,低耦合,设计良好的测试,设计模式等等问题。需要阅读 《代码大全》,《重构》,《设计模式》,《编写可读代码的艺术》这一类的书籍。光阅读还不行,还需要在编写程序的过程中,不断地思考,实践书中说的内容。

运行效率

与运行效率相关的东西也不少,例如如何写出编译器友好的程序,这一点和精通程序设计语言本身以及了解编译器特性有关系。另一方面,是与并发编程相关的,要提高程序运行效率,除了程序本身之外,如何利用并发提高运行效率是又一个重要的内容。

程序员都需要学习什么相关推荐

  1. scala语言的底层是java实现的_2020了,每个程序员都该学习的 5 种开发语言

    我曾在某处读到过(可能在<代码大全>,但我不敢确定),程序员应该每年学习一门新的编程语言.但如果做不到,我建议,你至少学习以下 5 种开发语言,以便你在职业生涯有很好的表现. 每个公司都喜 ...

  2. 一般项目中哪里体现了数据结构_优秀程序员都应该学习的数据结构与算法项目(GitHub 开源清单)...

    前言 算法为王. 想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手:只有内功深厚者,前端之路才会走得更远. 强烈推荐 GitHub 上值得前端学习的数据结构与算法项目,包含 gif ...

  3. 为什么每个程序员都应该学习C语言?

    为什么每个程序员都应该学习C语言? 每个程序员在他们的编程生涯中都应该学习C语言,因为它有太多难以忽视的好处了.除了它会给你提供更多的工作机会之外,C语言还会教给你更多的关于计算机的知识.它能给我们提 ...

  4. 每个程序员都该学习的5种开发语言

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://dzone.com/articles/5-programming-language ...

  5. 每个程序员都应该学习的 6 种数据结构

    数据结构和算法是编程的支柱,这里有6个Java程序员应该学习的基本数据结构 扫码关注<Java学研大本营>,加入读者群,分享更多精彩 数据结构是程序的构建块.甚至有人说"数据结构 ...

  6. 每个程序员都需要学习 JavaScript 的7个理由

    最近在和招聘经理交流现在找一个好的程序员有多难的时候,我渐渐意识到了现在编程语言越来越倾重于JavaScript.Web开发人员尤其如此.所以,如果你是一个程序员,那么你应该去学习JavaScript ...

  7. 每个程序员都该学习的5种开发语言,不可错过!

    每个公司都喜爱精通多种编程语言并且多才多艺的程序员.一个既能很麻利地写脚本,也能编写复杂的Java程序的程序员,确实相当有价值.所以实际上,对于高级开发者来说,学习不止一种编程语言,几乎就是必然的要求 ...

  8. 每个程序员都应该学习使用Python或Ruby

    如果你是个学生,你应该会C,C++和Java.还会一些VB,或C#/.NET.多少你还可能开发过一些Web网页,你知道一些HTML,CSS和JavaScript知识.总体上说,我们很难发现会有学生显露 ...

  9. 00后程序员都开始学习并精通使用SpringCloudRibbon了,你真会吗

    上文给大家讲解的内容是四层与七层负载均衡以及负载均衡算法,那么本文给大家讲的内容是SpringCloudRibbon,希望大家多提提建议: Spring Cloud Ribbon Ribbon的中文名 ...

  10. 常用python编程软件-学习编程语言常用的10个工具、库——每个程序员都应该知道...

    原标题:学习编程语言常用的10个工具.库--每个程序员都应该知道 每个行业都有自己的工具,软件开发也没有什么不同.一个优秀的程序员应该比其他程序员更了解他的工具,而且还可以使用比普通工具更强大和更高级 ...

最新文章

  1. 【Flutter】Flutter 混合开发 ( 安卓端向 Flutter 传递数据 | FlutterFragment 数据传递 | FlutterActivity 数据传递 )
  2. 003_Spring使用Slf4j和logback日志
  3. LeetCode 26 删除有序数组中的重复项
  4. Oracle Cluster Health Monitor(CHM)简介
  5. Java基础知识强化68:基本类型包装类之Character概述和Character常见方法
  6. STM32F103基本定时器使用
  7. 南开大学滨海学院计算机科学系,【公示】南开大学滨海学院2019届“优秀毕业生”、“十佳毕业生” 评选结果公示...
  8. v-for列表渲染之数组变动检测
  9. windows 路径
  10. ##R语言生信作图之UpsetR做交集图
  11. 【光学】基于matlab色散曲线拟合【含Matlab源码 2053期】
  12. bom管理软件,支持版本控制,bom比对
  13. Python+Selenium爬虫实现:草料二维码微信群活码自动更新,提升社群运营效率
  14. 为工业机器人的学生分享一款ABB公司的机器人仿真软件
  15. dBm和dB(纯计数单位)
  16. 【从零开始玩量化7】easyTrader: 自动化(程序化)交易利器
  17. 手撕永磁同步电机:foc(clark、park、ipark)变换、电机数学模型解耦过程推导
  18. 一名大学毕业生的反思(转)
  19. 饱和非线性、非饱和非线性
  20. PRL学习(priority roaming list 优先漫游列表) .

热门文章

  1. linux 内存强度测试软件,Linux系统性能测试工具(一)——内存带宽测试工具mbw...
  2. 下厨房内部孵化项目——懒饭产品体验分析报告
  3. 变分法 (Calculus of Variations)
  4. 解决jQuery(e).addclass(‘xxx‘)始终不生效的问题 - $(...).addclass is not a function
  5. 人、机客户服务质量 - 实时透视分析
  6. 二清资金监管户账务处理实例
  7. 资深iOS/Android开发工程师
  8. 关于曼哈顿距离下的最小生成树
  9. 工作多少年,在哪个行业,可以拿到年薪50万+
  10. 用友U8采购订单查询