如何学习一门编程语言或框架
每天都会有许多新的编程语言诞生,例如:Dart、Go、Kotlin 和 Elixir 等,前端框架更是日新月异。学习一门新的编程语言或框架并非易事,但是确实有一些方法和窍门能帮助你更快更好地掌握它们。
先语言,而后框架
以前端为例,现在入门的很多同学上来就是 React 或者 Vue,对 JavaScript 本身则知之甚少。语言根基不稳,学习和使用框架的时候自然也是摇摇欲坠,举步维艰。如不知道原生 JS 事件机制,不知道事件代理 、捕获和冒泡,想必也不能掌握 React 的事件机制;如不知道 JS 中经典的 this
指向问题,那么在给 React 组件绑定事件处理函数的时候,就可能会出现莫名其妙的错误。像上面这样的例子不胜枚举,所以同学们还是应当先掌握语言本身,打好基础,再学习对应语言之上的框架,一方面使能更好地理解框架,同时也能避免一叶障目的情况。
多刷编程题
有许多 这样的网站 ,你可以在上面做各种编程语言的题目(有的还会经常有一些编程比赛)。通过做这些题目,可以让你在语法、类库和逻辑等方面学到很多。同时,这也不妨是准备面试的一种好方法。
多逛逛 StackOverflow
在编程的过程中,你总会遇到自己无法解决的难题,这个时候,要记得上 StackOverflow 去求助,去看看别人有没有遇到类似的问题。另外在 StackOverflow 上,还有一个专门的 Code Review 社区 ,只要你贴上自己的代码,就会有相应语言的专家评审你的代码,并提出改进意见。
对于那些可能打不开 StackOverflow 的同学,也可以去 SegmentFault 问问。
多读代码
GitHub 在你的学习之路上是必不可少的。在这里,你可以找到许多用你现在正在学的编程语言或框架构建而成的开源项目。你可以看到别人在生产环境下,在大型项目下是如何使用这些语言和框架的。而且,如果你有自信,有技术,还可以为开源项目贡献代码。
做个项目
一般来说,当我们去学习一门编程语言或框架的时候,都是为了要用它做一个项目,比如:搭建一个博客网站,todo 应用或百度百科这样的网站。通过实际写一个项目,会提高你各方面的能力。这里还有一个很经典的网站就是 ToDoMVC ,这里有基于各种框架做的 todo 应用,可谓框架入门必备。
安装一个 lint 工具
现在的 lint 工具越来越强大了,以 ESLint 为例,不仅可以检查代码格式,常见错误,还可以给出许多最佳实践方面的建议。在编码时使用 lint 工具,可以让你更早地发现代码中可能存在的 bug,同时也可以让你的代码看起来更加优雅。
写地道的代码
当我在学 JS 的时候,我想当然地把 C#语言的编程知识应用到 JS 中,这是一种学习新语言的好方法。不过这种方法在一定程度上也阻碍了你更好地掌握新语言,因为它使你无法学习用新语言最地道的方式来编写程序。例如:把矩阵中的每一个值都转换成浮点数,代码如下:
const matrixOfFloats = matrixOfAny => {
const l = matrixOfAny.length;
const li = matrixOfAny[0].length;
const newMatrixOfFloats = [];
for (let i = 0; i < l; i++) {
const row = [];
for (let j = 0; j < li; j++) {
row.push(parseFloat(matrixOfAny[i][j]));
}
newMatrixOfFloats.push(row);
}
};
而较为地道的 JS 写法是这样的:
const matrixOfFloat = matrixOfAny => matrixOfAny.map(row =>
row.map(anything => parseFloat(anything))
);
不放弃,不抛弃
有些语言和框架的学习曲线是陡峭的,你需要时间和精力来克服。当你遇到瓶颈的时候,不要放弃,因为可能你已经离精通不远了,请运用上面提到的这些资源,去寻求帮助。
while(true) => study()
我认识一个程序员已经钻研 C#超过 20 年,至今仍在探索 C#和.NET 方面的新鲜事物。这个人就是 Antonio Maniero——StackOverflow 上最具影响力的葡萄牙人。事实上,我们永远无法掌握一门编程语言的全部,这使得我们必须持续学习。某一天,你可能会擅长某些领域,并成为该领域的标杆人物,但是你会发现总有更多的东西需要去学习。
后记
原作者提到的这些方法大多偏重于实践方面,然而我们知道,学习一样东西,理论也同样重要。所以,我建议同学们在学习时能多看一些官方文档,多看一些大神和前人的文章笔记。这样,有了理论才能指导实践,并用实践来验证理论。最后,送给大家一句名人名言。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论