如何学会一门编程语言

Robertfeng / coding回忆录 / ... / Reads: 1

如何在最短的时间内学会一门编程语言

曾经有一段时间,编程是IT行业的代名词,曾经有人认为搞IT的就是编程的。虽然这是不对的,IT行业不仅仅只有开发人员,还有其他很多岗位,这些岗位都非常重要,有些甚至比开发人员还要重要。但是这从侧面说明了熟练使用一门编程语言对开发人员来非常重要。

我认为编程技能是IT从业人员必须要掌握的基本技能之一,如果你是技术人员(俗称程序员,又称码农),那恭喜你,在你的职业生涯中一门编程语言是不够的,你能需要精通一种以上的编程语言。但是我们知道精通一门编程语言是需要付出非常多的努力的,而且这是一件没有终点的事情。但是在我们的工作中,往往需要我们学习多种编程语言,因此如何快速的学会一门编程语言对IT技术人员来说是非常有价值的。

这里我给学会这个这个词做一个界定,我们将学会一门编程语言定义为满足以下条件

  • 熟练了解所学编程的语法特性
  • 熟练使用和所学编程语言相适应的IDE工具,能够时候用IDE工具完成代码的编写,调试等基本操作
  • 能使用所学编程语言编写简单的例子
  • 能使用所学编程语言加入相关的项目组参与项目开发

基于上述目标,我跟大家分享一下我是如何学习一门编程语言的。

注意本文介绍的方法比较适合有一定编程基础,至少能学习过一门编程语言的人

我认为在编程语言的学习过程中可以分为这样几个个阶段:资料收集、编程语言基础知识学习、开发中常见的技术整理、demo程序的编写、后续资料整理。

一、资料收集

1.1 编程语言运行方式的确定

在学习一门语言之前首先了解一下该编程编程原因的运行方式。从运行方式的过程看,目前的编程语言大概可以分成三个类型: 编译型、解释型、半编译半解释型

1.1.1 编译型语言

编译型语言是比较常见编程语言,比如上古时代的汇编语言、远古时代的c、c++、还有最近比较流程的GO,都属于编译型语言。编译型语言的最大的特点是,程序的源代码不能直接运行,必须经过编译器编译成可执行文件后才能运行。并且在不同操作系统(比如linux和windows)上面编译的可执行文件不能互相运行。编译型语言一次编译后,除非升级否在不需要重新编译。因此编译型语言具有运行效率高,占用资源低的特点。几乎所有的操作系统(Unix,Linux,windows)都是使用编译型语言开发的。

1.1.2 解释型语言

解释型语言最大的特点,程序运行的时候不需要源代码进行编译,将源代码交给编译器(有时候成为解释器)之后,直接可以运行。编译器(解释器)接收到源代码之后,实时完成源代码的语法解析,文法解释、编译执行等过程。解释型语言每次运行的时候都需要完成成上述步骤(大多数解释型语言都具有缓存编译后代码的功能,可以参考具体语言的说明),因此解释型语言一般都具有跨平台的特性。常见的解释性语言有Php、Python、Javascript、ruby等。

1.1.3 半编译半解释型语言

半编译半解释型语言顾名思义就是一般编译,一般解释。半编译半解释型语言通常将源代码编译成中间代码,在不同的操作系统运行的时候会将中间代码实时编译适应相关平台的可执行代码实时原型。由于编译成了中间代码,因此最终运行的时候会节省很多不必要的步骤。半编译半解释型语言在跨平台和运行效率之间做出了妥协。典型的半编译半解释型语言是Java。

了解所学语言的运行方式有助于因地制宜,根据不同的特定在学习的时候选择不同的侧重点。

1.2 编程语言官方DOC的收集

收集该语言的DOC,这个DOC是其官方组织编写的DOC ,如果已经汉化则收集中、英文两个版本。同时收集在线版本和下线版,便于随时学习

1.3

寻找一个合适的资料收集方式,比如收藏夹,网摘等。这是因为我们在学习的过程中可能会大量的使用google,因此会收集到大量的资料,这些资料中的很多可能在学习的时候没有用,但是在以后可能会大有用处,此时如果收集起来以后会节省大量的时间

1.4

收集该语言的IDE,好的IDE能成倍的提开发速度和开发质量

1.5

搭建项目的运行环境,对于一些脚本语言,可能会借助一些第三方工具(比如php需要一个apache服务器)

1.6

准备一个地方记录在学习中遇到的暂时无法理解的问题(这点很重要,很多人学习一门语言半途而非就是因为比一些可能永远也用不到的地方难住了)

1.7

如果可以找到该平台相关资源的移动端入口(微信小程序,公众号,微信群等),现在很多人的空余时间在移动的时候,这个时间需要很好的利用(北、上、广、深的平均上下班路程时间媒体大约2小时都是正常的)

1.8

寻找该语言平台的在线集成环境

二、编程语言基础知识学习

三、开发中常见的技术整理

四、开发中常见的技术整理

五、demo程序的编写

六、后续资料整理

步骤 学习点 结果
资料收集 语言类运行类型 解释型
DOC http://php.chinaunix.net/manual/zh/,http://down.52z.com//52z/php_manual_zh.rar
IDE Zend Studio for Eclipse , 下载地址 http://www.zendstudio.net/zend-studio-all-in-one-download/ ftp://192.168.1.88/Dev/php/tools/
项目环境 需要一个apache,php的环境,我们采用 xampp
基本知识学习 网上收集快速学习指南 http://developer.51cto.com/art/200810/94162.htm,我收集的php快速学习图
基本语法 http://www.asmokeblog.cn/read.asp?id=150
字符串处理 http://php.freehostingguru.com/group.php-47.php
时间和日期的处理 http://www.phpe.net/manual/ref.datetime.php
程序流程(选择,循环) http://developer.51cto.com/art/200810/94192.htm
程序模块之间的调用 http://www.isstudy.com/phpjc/227.html
数组 哈希表,数据结构等操作 php中关于数组操作的相关函数 http://study.jokcn.com/read/s446256.html
php如何操作文件 http://www.cnbruce.com/blog/showlog.asp?log_id=1170
php模板技术 Template Lite http://templatelite.sourceforge.net/
php 异常 http://php.chinaunix.net/manual/zh/language.exceptions.php
php 解析XML文件 simplexml 和 dom 这两种php自带的, http://topic.csdn.net/u/20080327/23/e1fb6262-a0ce-4c2c-8853-aa1e1b936c76.htmlhttp://www.ibm.com/developerworks/cn/opensource/os-xmldomphp/
php解析JSON文件 http://www.openphp.cn/blog.php?blog_id=12
php访问oracle数据库
php 网络编程
php在web如何获取http协议中的一些参数 主要是了解如何获取请求参数中的get 和 post 参数 和 cookie, 在php中所有的get请求参数都封装在 $_GET[] 数组中,所有的post请求参数都封装在$_POST[] 数组中 cookie信息封装在数组 $_COOKIE中
从一个全面的post的表单中获取表单内容

关于作者

冯翔 块链兄弟技术社区创始人 Hyperledger核心项目开发者

多年IT技术经验,先后主持开发过电子商务、大数据、机器学习、区块链等相关系统。在相关领域具有丰富的经验。中国区块链技术的早期探索者和传播者。精通java,php,nodejs,go等开发语言。创立中国第一个专门区块链技术社区-区块链兄弟。 hyperledger核心项目核心代码开发者 。已经参与过多个区块链落地项目,对区块链在供应链金融、数字货币、众筹、溯源等领域有深入的研究和项目实战。主持编写了中国区块链技术实战系列从书《区块链开发实战:Hyperledger Fabric关键技术与案例分析》, 《区块链开发实战:以太坊关键技术与案例分析》。曾经担任CSDN学生大本营的在线讲师,开发的java在线可课程,学生人数超过20万 。给思科、中国电信,浦发银行,普华永道等世界500强企业进行过区块链相关的技术培训和技术团队的区块链改造。

Comments

Make a comment

WARNING: 由于您的浏览器的版本比较陈旧,无法支持 HTML5. 请选择以下版本 (Chrome / Microsoft Edge / Firefox / Sarafi)