0基础,入职一周完成第一个需求|如何快速自学一门编程语言?

最近我们部门来了一个实习生,天天手里捧着一本《Kotlin从入门到精通》在那儿埋头苦读,等一个月都快过去了,我跑去问他能不能开始接项目了。他非常为难的拿着书和我说他只看了一半,项目代码还没看懂,远远没能到能做项目的程度。

在这里插入图片描述

这种低效的学习方式可把我急坏了,赶紧让他扔掉书本,直接阅读工程源码。

我想屏幕前的很多小伙伴都和这位实习生一样,在刚入职或开发新项目时,都会去面对一门新的编程语言但不知道如何去快速上手。

我也经历过,从大学期间参加竞赛自学Python,到研究生时自学JS、ReactNative和OC,这漫长打怪的过程让我慢慢摸索出一条学习新语言的门路。

到现在入职字节后发现满屏陌生的Kotlin时,用了大概四五天左右,我就把项目里所有代码基本看懂了。然后立刻上手需求,写下我在抖音的第一行代码,并在三天后完成了这个需求。

在这里插入图片描述

下面我就来和大家分享一下自学编程的方法。主要分为三个步骤:

第一步,理解语言本质,找出异化点学习。

其实很多人在学习一门新的语言时,都会产生一种抵触心理。本能地觉得是跨入了一个全新领域,要学好多新的语法新书写规范啊,还需要花很多时间去理解去习惯它。
其实这是大错特错的.

我们之所以会这么想是因为,我们一直以来在学校所接受的错误的学习编程语言的方式在我们的大脑中形成了惯性。导致我们在学习一门语言时,总是会去想着,要从数据类型开始,到运算符计算,再到条件判断、循环等等。

但,真的有必要吗?

代码,归根结底都是去描述一个过程,只是在不同语言机制下都有一套自己的潜规则,会去利用这套规则变着花样去描述。

而它们的规则,大部分都是非常相似的,还有小部分差异化,这部分就属于这门语言独有的特征了,往往会是比较关键的点。

比如,我们想要表达“我吃了一个苹果”(吃个苹果)C语言会直接描述过程,

printf("I eat an apple")

而Java会构造一个我对象,并执行eat方法

I i = new I();
i.eat("an apple")

这的异化点便是C的面向过程和Java的面向对象思想了,是需要我们在长期学习中反复推敲的。

因此,当我们在学一门新的语言时,就去看看这门语言相对于其他语言哪一种特征有不同,然后只去学习这一个点就可以了。

所以你看,学习一门语言是不是并没有你想的那么难呢?

第二步,阅读项目源码。

阅读源码是我认为最高效且实用的学习语言方式了。

当然,这里说的阅读源码不是说像读小说一样简单过个剧情,了解大致做啥就可以了,而是要清楚每一行代码是干嘛的,为什么要这么写,以及有没有更好的写法。

所以,阅读源码本身是一件很痛苦的事。

尤其是刚开始,在语法不熟练的情况下,又要去看大神们的高阶用法确实不容易。我当时刚开始阅读时,心里也是充满挫败感,一度怀疑自己是不是不适合做程序员。但好在我是一个又菜又爱死磕到底的人,哪一行代码看不懂,我就去看代码的annotation,找到写代码的同事,仔仔细细问个透彻。不到一个周,组内所有人都被我问了一个遍。

阅读源码的同时我也会去自己根据代码绘制类图、时序图等等,方便我去理清业务逻辑和架构设计。

就这么学着学着,突然有一天,我就发现代码我都能看懂了,整个业务体系和代码框架也清晰明朗起来。对,我终于熬出头了。

第三步,直接上手。

当代码基本能看懂时,就可以立刻去接一些小的需求练练手,趁热打铁。

最初安排的需求一般都是调调UI,改改bug。基于项目现有的代码重复造轮子一般都没有太大问题。但自己从无到有写下第一行代码时,还是多多少少会有疏漏点的。因此要厚着脸皮,多拉着同事进行code review,认真听取他们给出的意见,培养严谨的代码意识与书写规范。


好啦,今天的分享就到这里。自学编程语言的三个步骤你get了吗?祝大家以后都能够临码不惧,码神附体。

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李一恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值