如何快速学会一门编程语言

下面是最近的一些体会

花了几个小时学完php,并发现已经能写出类似于博客这种项目了,对比于以前学java后端用了几十天,有感而写。

我是小白程序员,真正接触编程差两个月到一年,以下都是我这个小白程序员所思考所写,难免有些纰漏,望可以指正。

以我目前接触到的语言为例,

  • java

  • python

  • c++/c

  • javascript

  • typescript

  • php

一门语言有其共性与特性,至少我所接触到的语言

都有以下常用共性
  1. 变量类型/常量

  2. 运算符

  3. 判断/循环

  4. 数组

  5. 正则

  6. 注释,导包

  7. 字符串/字符串处理

  8. "Collections" //注,这里Collections是指类似于Java中List,Set,Map等由其他东西封装出来的便于处理东西的数据结构工具集

  9. 函数

  10. 网络处理

  11. "HttpClient" //这里是指类似于http工具等被封装的工具

  12. 文件操作

  13. 工程化(java的maven,python的pip,前端的npm)

特性
  1. 语法

  2. 规范

  3. 生态,各类框架/中间件/轮子

  4. 类型(强类型,弱类型)

  5. 语言本身特性(如 是否支持指针,是否是完全面向对象,是否支持函数式编程)

  6. 语言实现原理

学一门编程语言我觉得有四个层次。

  1. 能写题(各类OJ那种题)

    这里不是指算法能力,单单指对语言的运用能力。例如大学上学期的C语言,期末按学校老师要求来会属于是这个层次。

    这个层次,学的都是一个语言的语法,以及刚刚说的共性的前9条,这时候,没有具备写项目能力。

  1. 能做项目

    这里先要学文件操作,以及工程化。学会如何调库,那就能做基本的项目。这时候些项目会发现,很多想实现的东西单靠以前学的文件操作,网络操作,一些写题的能力无法完成一些东西,于是你开始学框架,学一些更高的应用技术(如java的泛型,注解,反射;),这时候写项目能力会大大提升,对语言特性理解也会大大提升

  1. 能掌握其独有语言特性

    语言特性并不是每个语言完全没有交差点的,不同语言是互相借鉴的。如你理解了java的lambda表达式,去学js的函数式写法就会发现比较轻而易举。学了python的模板表达式,再去学js就会发现都一样的,无非是语法不一样。

    有些语言可以面向对象,有些语言完全面向对象(点名Java)。

    有些语言动态编译运行

    有些语言先编译再运行

    这些都是我所说的语言特性上的不同,解决语言特性,理解每个语言特性,对技能上的提升会非常大。

    我现在体会的比较深的是,我学Java比较久,熟练java的语言特性。虽然js也用得久,前端项目做了很多,但是没有专门去看 理解它的语言特性(如什么原型链啥的)。我能用java写出比较复杂的架构,中间件,但换个语言,换成js依然不行。而对于不写这些架构,去写项目来说,用起来都差不多能达到目标。

  1. 能深入理解语言原理

    能纠错语言,从底层debug,灵活选择语言,这种层次存在在我幻想中,我目前层次远远不够,这是我这个小白程序员的幻想。

所以如何快速学会一门编程语言

学了第一门编程语言后,学到比较高的层次,学其他语言,直接学特性部分,加上练习,便可快速学会。

* 这里所说的学会,仅仅是指会用,而不是精通

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值