C、python、Java都会,却不精通,如何把一门语言学到精通?

aside section._1OhGeD · · 778 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

不少学编程的同学们表示很迷茫,自己学过很多门语言,C、python、Java,样样都会,感觉一会儿用这种,一会儿用另一种语言,但是却都不精通,如何才能把一门编程语言练习到精通呢?

一般来说,当你接触过一门语言的编译器/虚拟机/IDE 之后 (各种形式地接触都可以 —— 比如写 Template Haskell 会摸到 Haskell 的 AST 所以我觉得也算),你就会被迫了解这门语言的代码的内部表示 (AST 的定义),从而认识到你能用这个编程语言写出的所有可能的代码 (你都已经知道所有的语言结构了,他们的所有组合方式就是所有可能的代码),于是你就在“编程语言”层面上精通了这门语言。你会认识到,@Override 不过是一个注解,printf 的第一个参数只是个普通的字符串,std::cout 不过是一个支持左移运算符的全局对象。

其次当你用这门语言写了很多代码后,你会了解到它的整个生态、未来的发展趋势、竞争对手的发展情况、初学者可能陷入的误区、各种平台上的各种坑、各种别的语言能做的事在这门语言里面怎么做后,你就会在“软件工程”层面上精通这门语言。同时在这两个方面精通一门语言,我觉得就可以问心无愧地说自己精通它了。

工作经验浅的人,很容易陷入对语言的执着,以对语言的熟练程度来判断水平高低。实际上,工作几年之后,你就会发现,语言真的只是非常基础的东西。

归根结底,是要解决问题。一个能力强的人,一定是能解决问题的人。且不说不一定要用程序解决问题,就算是写程序,通常难倒一个人和分出人与人之间高下的,常常不是对语言的掌握水平,而是对领域知识的抽象能力,对框架的熟悉程度,对网络的理解,对操作系统的理解等等。

比如,是个人都会写一段从数据库里读数据的代码,但大部分人不会解决读数据慢的问题,而这个问题通常和你用的编程语言完全没有关系。

当然,希望把一门编程语言学好,学“精通”,也是有比较高效的方法的。

  1. 看官方文档。以 Python 为例,官方文档就写的非常好,设计思想、各个模块、编程规范等,都有很详尽的介绍。这是学习一门语言,甚至是任何技术,最直接有效的办法。
  1. 边学边练。主流语言,都可以用来解决一些通用的问题。比如文件读写、网络请求、数据库操作、常见排序算法等等。实现这些最常见和通用的需求,可以快速的达到基础的掌握。
  1. 对比着学。每种语言都有各自的特点,也有各自擅长和不擅长的领域。对比着思考,可以让我们理解的更加透彻。比如学些 golang 的时候知道了内建的协程,那其他语言比如 Python 又有什么办法可以做出协程的效果呢?
  1. 用来解决实际问题。除了上面说的练手的问题外,更加有效的是用来解决工作中的实际问题,毕竟这才是我们学习一门语言的目的。这个过程中碰到的困难,会逼着你去深挖这门语言的某些部分。而显然,这些部分就是你当前需要关注的重点。知道了重点,针对性的学习,效率自然就高了。

对Python感兴趣或者是正在学习的小伙伴,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的!从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每天都有大牛定时讲解Python技术,分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

觉得文章还不错的话不妨收藏起来慢慢看,有任何建议或看法欢迎大家在评论区分享讨论


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:aside section._1OhGeD

查看原文:C、python、Java都会,却不精通,如何把一门语言学到精通?

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

778 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传