学习任何一门编程语言,都可以分成三个步骤。

第一步,通过书和视频课掌握基本语法。掌握编程语言基本语法的途径比较多,如书、视频课、线下课等,可以结合自己的实际 情况进行选择。笔者总结了学习编程语言必须掌握的10 个要点。

1)学习编程语言的基础知识。编程语言的基础知识包括基本数据类型、基本语法和流程控制(判断、分支、循环 等)、主要数学运算符、打印输出函数的使用。

2)掌握数组和其他集合类的使用。数组和其他集合类的使用包括了解数据的类型和特性,能否为空,集合是否线程安全, 主健是否重复。

3)简单字符串处理。所谓简单,就是Regex 和Parser 的内容,查找替换、截取字符串等,另外要注意字符 编码问题。

4)掌握基本面向对象或函数式编程的特征。对继承、多态、Lambda 函数等,概念要吃透,掌握用法。

5)掌握代码调试的技能。代码调试的技能包括异常、错误处理,断言、日志和调试等。

6)了解程序代码和可执行代码。了解程序代码和可执行代码,包括组织机制、运行时模块加载、符号查找机制。例如, Java 的JVM 原理和调优,结合编译原理理解Java 和PHP 等编译、运行的异同。

7)掌握基本输入输出和文件处理、输入输出流类等。例如,Java 编程中文件读写的常用类和方法,如何防止读取量太多“撑爆”内存,以及读 写的效率问题等。

8)掌握编程语言如何进行callback 方法调用,如何支持事件驱动编程模型。在现代编程环境下,这个问题是涉及开发思想的核心问题,几乎每种语言在这里都会下 足功夫,如.NET 的delegate、Java 的anonymous inner class、Java 7的closure 和C++ OX 的 tr1::function/bind 等,要深入掌握其设计模式的运用。

9)序列化和反序列化

10)掌握一些编程语言特性。掌握动态编程、反射和元数据编程、数据和程序之间的相互转化机制、运行时编译和执 行的机制。以上就是学习编程语言需要掌握的基础知识,在啃书本、掌握原理的基础上,要动手做 一些Demo,掌握基本语法。

第二步,通过调试简单项目掌握开发框架的用法。

这个方法是根据笔者的个人经验总结出来的,笔者在刚参加工作的时候,虽然已经看了 不少编程书籍,也跟着书中的案例写了一些代码,但在实际工作中总感觉力不从心,现 在回想起来就是因为缺乏项目经验。恰好当时的主管要求搭建一个内网门户,内网门户 里要有BBS、Wiki、聊天室、会员中心、下载中心等十多个子系统,笔者当时的思路就 是去网上下载多套系统进行整合。经过两个多月,十多个系统的整合、搭建、数据打通,不懂的地方问Google、问同事, 笔者的项目经验得到了快速的积累,常见的系统架构方式都能说出个所以然,笔者至今 仍非常庆幸,那段工作经历大大拓宽了我的技术视野。对于刚开始学习编程的同学来说,从0 开始搭建一个系统是比较困难的,一个快速提高 编程能力的方法就是从GitHub 上下载一些简单的项目,在本地计算机上“跑”起来,这些 项目一般都会有“step by step”的说明,教你如何搭建开发运行环境,让Demo 能够运 行在自己的计算机上,然后试着在这个项目中改变布局、增加字段、调试,把代码通读 一遍,不明白的地方可以问Google或有经验的同学。通过调试几个项目可以掌握开发框架的基本用法,对语法、开始框架、中间件、数据库 的使用方法有基本的认识。

第三步,从0 开始做一个项目,提高编程综合能力。

工程师的本质是什么呢?用工程的方法解决实际问题,所以我们非常强调动手能力。曾 经读过一个故事,一位华人理工科教授Li 去他的朋友Dived 家做客,Dived 是硅谷的技 术高管,为了照顾Li 的口味,Dived 准备了中餐,当饭菜准备好,大家围着桌子坐下 后,发现少了一副筷子,由于不常吃中餐,Dived家里没备那么多筷子。这时,Dived 站了起来说:“稍等一会。”大约过了10分钟,Dived 带回一副崭新的筷子,原来他用家 里的木头材料动手制作了一副筷子。Li 非常惊讶和感慨,虽然Dived 身为技术高管,较 少做一线的技术工作,但是血液里流淌着的是工程师精神。这个故事告诉我们,作为工程师,动手解决问题的精神是我们的“底层操作系统”,好的 工程师必须具备工匠精神。编程的技巧全在细节,不从0 开始做一个项目,就无法体会每一个技术点的运用。从0 开始做一个项目,便于形成自己的工具箱。从开发效率来说,优秀程序员和普通程序员 的差别就在于工具箱使用得熟练与否,当然还有算法、设计模式、代码结构等。

以Java 开发为例,需要整合Spring Boot、Dubbo、MyBatis、ZooKeeper、Redis 等,还需要熟悉数据库、缓存的用法、Linux 系统的安装和使用、数据库的安装和使 用、数据库表的设计、数据模型的设计等。经过以上三个步骤,就可以成为一名工业级编程水平的初级开发工程师了。如果想要进 一步提高,就需要下苦功夫,深入掌握编译原理、架构背后的设计理念、算法、优秀项 目的源码等。

如何快速的学习任何一门编程语言相关推荐

  1. 怎么开始学一门计算机语言有哪些,如何学习(自学)一门编程语言

    原标题:如何学习(自学)一门编程语言 在学习前,如果能把以下几个方面的问题弄清楚,就能够比较顺利和高效的学习,拿到你所想要的目标.而不是从坚持到放弃. 一.方向和目标 首先要确定为什么要学习计算机编程 ...

  2. 堕落 Java vs 新贵 Python,2018 年最应该学习哪一门编程语言?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 2017 年,编程语言领域发生了巨大的变化,一方面,Java.Kotlin 等语言在企业和移 ...

  3. 堕落Java vs 新贵 Python,2018 年最应该学习哪一门编程语言?

    2017 年,编程语言领域发生了巨大的变化,一方面,Java.Kotlin 等语言在企业和移动开发方面吸引了很多开发者的关注:另一方面,对 Web 开发至关重要的 JavaScript 生态系统也在不 ...

  4. 如何学习一门编程语言

    写在前面 本来应该继续写API的.但是最近跟同事讨论了一下到底应该如何学习一门编程语言.考虑到之前的几篇文章可能对初学者没什么帮助,而大神又不需要看.所以感觉这篇文章说一说如何学习编程语言还是挺有必要 ...

  5. 怎样才能学好一门编程语言?要怎样去学习才算成功?成为一名合格的程序员

    截止到目前为止,编程开发语言已经有很多种,而每个程序员根据自己的学习能力不同,掌握一到几种不同的语言. 学习目的 每个人学习一门编程语言,都是有自己的目的.比如有人想写一个App,有人想写一个小程序, ...

  6. 语言输出奇树有多少总方法_如何学习一门编程语言?这些方法告诉你,不要再说你不会学习...

    前言 很多人喜欢争论什么什么编程语言好,我认为这个话题如果不限定应用范围,就毫无意义. 每种编程语言必然有其优点和缺点,这也决定了它有适合的应用场景和不适合的应用场景.现代软件行业,想一门编程语言包打 ...

  7. 如何学习编程、一门编程语言怎么算入门、快速掌握一门编程语言

    ninechapter 美帝代码搬运工,资深面试官,微信公众号-九章算法(ninechapter) 当你提出这个问题的时候,总有人会告诉你,你应该学习这个,学习那个,亦或者是刷题根本没用,你应该去做项 ...

  8. 如何快速学习并掌握一门编程语言

    前言 工欲善其事必先利其器,编程语言就是程序员手中的"器",用来实现软件编程的工具.学习和掌握编程语言的能力是基本功,也是技术进阶的先决条件. 计算机现代编程语言基本从上世纪50年 ...

  9. Forth Week :快速上手一门编程语言

    快速上手一门编程语言 概述 图灵完备性语言 识别类型 学习路径 一 掌握该语言的背景 - 2h 二 掌握该语言的基本程序逻辑语法 - 1h 1.顺序结构 2.分支结构 1)if语句 2)switch ...

最新文章

  1. ML之PLiR之LARS:利用LARS算法求解ElasticNet回归类型(包括类别编码+属性重要程度排序)问题(实数值年龄预测)
  2. php ajax 框架,PHP开发框架kohana中处理ajax请求的例子
  3. 集群节点数和分片数关系_完全二叉树的节点数,你真的会算吗?
  4. ironpython2.7.9_IronPython下载
  5. html5教学案例撰写,怎样撰写教育教学案例
  6. 计算机组成原理自测题,计算机组成原理自测练习题
  7. CVPR2020-深度图超分辨率DSR新方法| Channel Attention based Iterative Residual Learning for Depth Map SR
  8. SkinSharp函数文档
  9. Qt SQL 学习笔记二:qt建立数据库,创建和操纵表
  10. ReactNative实现ListView分组,悬浮效果
  11. Linux常用命令指南
  12. java file文件大小_Java实现获取文件大小的几种方法
  13. “钩子”、体验和思考人生,一家瑞典游戏工作室如何站稳脚跟,又不被自己的野心呛到
  14. 7-123 空心字母金字塔 (10 分)输入一个大写的英文字母,输出空心的字母金字塔。
  15. Steam云状态无法同步怎么办?
  16. 表达式转换 (中缀转后缀表达式)
  17. STP详解-STP、RSTP、MSTP
  18. 统计学习导论(1)------------一般线性模型介绍
  19. 归约指令Reduction Instructions
  20. cmstop模板制作教程内容页变量

热门文章

  1. NPDP产品经理小知识-跨职能团队和矩阵结构
  2. matlab hilbert 包络,hilbert取包络matlab
  3. 基于大数据的智能网络分析
  4. 【Dubbo】深入理解Apache Dubbo(一):带你走近高性能RPC通信框架
  5. JVM-锁消除+锁粗化 自旋锁、偏向锁、轻量级锁 逃逸分析-30
  6. 猿创征文|计算机类学生必知必会的开发工具
  7. 英语四六级必备!白嫖网课推荐
  8. 脑结构、脑工作原理最详细图解
  9. SpringBoot 调用python接口
  10. Java IDE使用基础