许多正在学习编程的学生感到困惑。他们学习了许多语言,如c、python和java。他们觉得他们可以用这门语言一段时间,也可以用另一门语言一段时间,但他们并不精通这门语言。我们如何练习一门编程语言才能熟练?
一般来说,当你接触到一种语言的编译器/虚拟机/IDE(你可以以各种形式接触它——例如,编写模板haskell将接触haskell的AST,所以我认为这是可以的),你将被迫理解该语言代码的内部表示(AST的定义),以便实现你能用这种编程语言写的所有可能的代码(你现在都知道了所有的语言结构,它们的所有组合都是可能的代码),你就精通编程语言了。您将认识到@override只是一个注释,printf的第一个参数只是一个普通字符串,std::cout只是一个支持左移位运算符的全局对象。
其次,当你用这种语言写很多代码时,你会知道它的整个生态,未来的发展趋势,竞争对手的发展,初学者可能会犯的错误,各种平台上的各种漏洞,以及如何用这种语言做其他语言能做的事情,然后你将在“软件工程”的层次上精通这门语言。同时,如果我在这两个方面精通一门语言,我想我可以说我问心无愧地精通这门语言。
工作经验少的人很容易陷入语言的迷恋中,判断自己的熟练程度。事实上,在工作了几年之后,你会发现语言其实只是一个非常基本的东西。
归根结底,就是解决问题。一个能力强的人必须有解决问题的能力。更不用说没有必要用程序来解决问题。即使在编写程序时,人们通常也很难区分人。它往往不是对语言的掌握,而是对领域知识的抽象能力、对框架的熟悉程度、对网络的了解程度、对操作系统的了解程度等。
例如,每个人都可以编写一段代码从数据库中读取数据,但大多数人无法解决数据读取速度慢的问题,这通常与您使用的编程语言无关。
当然,我希望有更有效的方法来掌握编程语言。
1、看看官方文件。以python为例,官方文档写得非常好,包括设计思想、各种模块、编程规范等,这是学习一门语言,甚至任何技术最直接、最有效的方法。
2、边学边练。主流语言可以用来解决一些常见的问题。比如文件的读写、网络请求、数据库操作、常用的排序算法等,这些最常见、最常用的需求的实现可以很快实现基本的掌握。
3、对比学习。每种语言都有自己的特点,也有自己的优缺点。与思考相比,我们可以更透彻地理解。例如,当你学习一些歌朗,你知道内置的编曲。其他语言,如python,可以做些什么来达到编排的效果?
4、解决实际问题。除了以上练习手的问题外,更能有效地解决工作中的实际问题。毕竟,这是学习一门语言的目的。在这个过程中遇到的困难会迫使你深入研究语言的某些部分。显然,这些部分是你现在需要关注的。知道重点,有针对性地学习,效率自然高。
领取专属 10元无门槛券
私享最新 技术干货