学习编程语言究竟学什么

看了王垠的文章,觉得应该是程序语言的特性,所有程序语言里面,就是所谓“语言特性”。举一些语言特性的例子:

  • 变量定义
  • 算术运算
  • for 循环语句,while 循环语句
  • 函数定义,函数调用
  • 递归
  • 静态类型系统
  • 类型推导
  • lambda 函数
  • 面向对象
  • 垃圾回收
  • 指针算术
  • goto 语句

这些语言特性,就像你在选择一台电脑的时候,看它里面是什么配置。选电脑的时候,没有人会说 Dell 一定是最好的,他们只会说这个型号里面装的是 Intel 的 i7 处理器,这个比 i5 的好,DDR3 的内存 比 DDR2 的快这么多,SSD 比磁盘快很多,ATI 的显卡是垃圾…… 如此等。

  

很多初学者不了解,一个高明的程序员如果开始用一种新的程序语言,他往往不是去看这个语言的大部头手册或者书籍,而是先有一个需要解决的问题。手头有了问题,他可以用两分钟浏览一下这语言的手册,看看这语言大概长什么样。然后,他直接拿起一段例子代码来开始修改捣鼓,想法把这代码改成自己正想解决的问题。在这个简短的过程中,他很快的掌握了这个语言,并用它表达出心里的想法。

在这个过程中,随着需求的出现,他可能会问这样的问题:

  • 这个语言的“变量定义”是什么语法,需要“声明类型”吗,还是可以用“类型推导”?
  • 它的“类型”是什么语法?是否支持“泛型”?泛型的 “variance” 如何表达?
  • 这个语言的“函数”是什么语法,“函数调用”是什么语法,可否使用“缺省参数”?  

合理的入门语言

所以初学者要想事半功倍,就应该从一种“合理”的,没有明显严重问题的语言出发,掌握最关键的语言特性,然后由此把这些概念应用到其它语言。哪些是合理的入门语言呢?我个人觉得这些语言都可以用来入门:

  • Scheme
  • C
  • Java
  • Python
  • JavaScript

那么相比之下,我不推荐用哪些语言入门呢?

  • Shell
  • PowerShell
  • AWK
  • Perl
  • PHP
  • Basic
  • Go

总的说来,你不应该使用所谓“ 脚本语言”作为入门语言,特别是那些源于早期 Unix 系统的脚本语言工具。PowerShell 虽然比 Unix 的 Shell 有所进步,然而它仍然没有摆脱脚本语言的根本问题——他们的设计者不知道他们自己在干什么 。

时间: 2024-08-25 21:02:37

学习编程语言究竟学什么的相关文章

编程不难学,方法最重要!学习编程语言最好的方法是什么?

很多同学进入大学之后发现高三时期的题海战术以及死记硬背已经不适合大学了,尤其是计算机专业的学生,对于编程而言,死记硬背是绝对行不通的,很多同学平时上课划水摸鱼,到了考试就准备临时看书死记知识点,最终还是凭运气勉强及格,但是这又如何说明你学好了编程,以后如何找好工作呢? 基于这一点,所以在编程语言的学习上,笔者写出这篇文章,这次我们来谈谈怎么学习的问题. (1)学习方法 (2)效果度量 什么学习方法适合我? 知乎上有一个问题——学习编程语言最好的方法是什么,有很多人关注. 赞同最多的答案是:猛敲代

学习编程语言最好的方法是什么

在问答 | 我适合做软件开发吗一文中,列出了当时汇总的7个问题,其中"我是否适合做软件开发"."怎样开始行动"."学哪种语言"这个问题都聊过了,这次我们来谈谈怎么学习的问题. 记得曾经在我的微信公众号"程序视界"发布过一篇题为"怎样新学一门技术的文章",里面讲了很多东西,现在看看也还有价值,推荐一下.这次呢,我想说的和那篇文章不一样,主要从下面两点来谈: 学习方法 效果度量 什么学习方法适合我? 知乎上有一

学习编程语言应该掌握哪些计算机基础知识?

随着软件开发技术的不断发展,编程语言的使用也越来越方便,总的来说编程语言并不难学,即使没有任何计算机基础,也可以通过一个系统的学习过程来掌握编程语言. 目前经常使用的编程语言有几十种,包括Java.C.Python.C++.PHP.C#.JavaScript.R.Scala等,这些编程语言往往都有自己特定的使用场景,在难易程度上也有一定的区别.通常情况下,Java可以用于Web开发.大数据开发.Android开发等,C语言可以用于操作系统开发.嵌入式开发等,Python可以用于Web开发.大数据

程序员,不要急于学习编程语言,先学会如何解决问题(转)

这是一篇关于虚度青春的短篇回忆录. 多年来,我一直在学习编程语言,然后用它们来构建更好的投资工具.在建立预测和风险管理模型之余,编程方面的工作堆积如山. 但实际上,我并没有花太多时间在真正需要解决的问题上. 我把大部分注意力放在了算法和编程语言上.多年来,我每周都要花几个小时学习计算机基础知识,却没有花太多时间应用这些知识来让现实世界变得更美好. 而我的一个朋友却基于微软 Office 开发出了一个完整的产品,它使用 Access 保存数据,使用 Excel 分析数据,然后使用 Word 输出报

进阶程序员都不会急于学习编程语言,知道原因吗?

多年来,我一直在学习编程语言,然后用它们来构建更好的投资工具.在建立预测和风险管理模型之余,编程方面的工作堆积如山. 但实际上,我并没有花太多时间在真正需要解决的问题上. 我把大部分注意力放在了算法和编程语言上.多年来,我每周都要花几个小时学习计算机基础知识,却没有花太多时间应用这些知识来让现实世界变得更美好. 而我的一个朋友却基于微软 Office 开发出了一个完整的产品,它使用 Access 保存数据,使用 Excel 分析数据,然后使用 Word 输出报告. 当他把产品卖给一家大公司时,我

十年架构师留下最完整的Java学习路线,学完年薪40W

文章有点长,请大家耐心看完,话不多说直接上干货! 永不过时的编程语言--Java 编程开发. Java编程语言占比: 据官方数据统计,在全球编程语言工程师的数量上,Java编程语言以900万的程序员数量位居首位. 而且很多软件的开发都离不开Java编程,因此其程序员的数量最多.而在以Java编程为核心的开发领域中,javaEE程序员的需求量10年来一直居于首位!创一个小群,供大家学习交流聊天如果有对学java方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对

学习Python总是学了新内容又忘了旧的咋办?

学习Python总是学了新内容又忘了旧的咋办? 比如爬虫的几个解析库,学了pyquery后感觉beautifulsoup又有点忘了,只能大概记得有哪些功能,xpath感觉基本忘光了,最近看了一些selenium的说明文档,感觉也是脑袋里乱乱的,用起来还要到网上查. 1.不仅仅是学习Python,任何一门知识都是,记忆差是学习的大敌. 很多初学者在接触新知识的时候都会给自己很大的压力,这种“习惯性压力思维”从人很小的时候就已经存在了,学习识字的时候,家长们往往最头疼的就是孩子今天学十个字,明早睡醒

学习Spring必学的Java基础知识(2)----动态代理

学习Spring必学的Java基础知识(2)----动态代理 引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”.以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系列分别介绍这些Java基础知识,希望对大家有所帮助.): [1] Java反射知识-->Spring IoC :http://www.iteye.com/topic/1123081 [2] Java动态代理-->Spring AOP :http://www

什么是C#编程语言明明白白学C#

什么是C#编程语言明明白白学C# C#是微软公司发布的一门面向对象的编程语言.它作为一门语言,则具备语言的四个要素.并且,它符合编程语言的四个要素的特性.同时,它作为面向对象的编程语言,可以解决各种复杂.大型的问题本文选自明明白白学C#大学霸. C#语言另外一个重要特点是,它是基于Microsoft .NET Framework的编程语言.Microsoft .NET Framework简单理解是一个软件.也就是说,如果要在电脑上执行C#编写的程序,就首先需要在电脑上安装该软件.同时,微软官方针