许多人所谓的成熟,不过是被习俗磨去了棱角,变得世故而实际了。那不是成熟,而是精神的早衰和个性的消亡!

教你如何快速掌握所有编程语言?(文章带福利哦)

IT资源 凌汐 69℃ 0评论

很多编程初学者至今还在问,我该学习什么程序语言,怎么学习。今天,我们要讲的不是如何掌握一种程序语言,而是所有的……
由于我知道如何掌握“所有”的程序语言,总是感觉这种该学“一种”什么语言的问题比较低级,所以一直没来得及回复他们 。
可是逐渐的,我发现原来不只是小白们有这个问题,就连大公司的很多资深工程师,其实也没搞明白。今天我有动力了,想来统一回答一下这个搁置已久的“初级问题”。类似的话题貌似曾经写过,然而现在我想把它重新写一遍。因为在跟很多人交流之后,我对自己头脑中的(未转化为语言的)想法,有了更精准的表达。

假如你存在以下的种种困惑,那么这篇文章或许会对你有所协助:你是编程初学者,不知道该挑选什么程序言语来入门。你是资深的程序员或许团队领导,对新出现的种种言语感到困惑,不知道该“出资”哪种言语。你的团队为使用哪种程序言语争论不休,发作各种宗教奋斗。你追逐潮流采用了某种时尚的言语,成果两个月之后发现深陷泥潭,痛苦不堪……程序员的岗位往往会要求了解某些言语,乃至某些奇葩的公司要求你“深化了解 OOP 或许 FP 规划模式”。关于在职的程序员,程序言语至今仍然是能够争得面红耳赤的宗教话题。它的宗教性之强,以至于我在批判和戏弄某些言语(比方 Go 言语的时分,有些人会天性地认为我是别的一种言语(比方 Java  python)的粉丝。显然我不可能是任何一种言语的粉丝,关于任何从没见过的言语,我都是直接拿起来就用,而不需要经过学习的进程。看了这篇文章,或许你会理解我为什么能够到达这个作用。了解了这里面的东西,每个程序员都应该能够做到这一点。嗯,但愿吧。

注重言语特性,而不是言语
这些装备对应到程序言语里边,就是所谓“言语特性”。很多初学者不了解,一个高明的程序员如果开始用一种新的程序语言,他往往不是去看这个语言的大部头手册或者书籍,而是先有一个需要解决的问题。手头有了问题,他可以用两分钟浏览一下这语言的手册,看看这语言大概长什么样。然后,他直接拿起一段例子代码来开始修改捣鼓,想法把这代码改成自己正想解决的问题。在这个简短的过程中,他很快的掌握了这个语言,并用它表达出心里的想法。在这个过程中,随着需求的出现,他可能会问这样的问题:
这个语言的“变量定义”是什么语法,需要“声明类型”吗,还是可以用“类型推导”?
它的“类型”是什么语法?是否支持“泛型”?泛型的 “variance” 如何表达?
这个语言的“函数”是什么语法,“函数调用”是什么语法,可否使用“缺省参数”?
注意到了吗?上面每一个引号里面的内容,都是一种语言特性(或者叫概念)。这些概念可以存在于任何的语言里面,虽然语法可能不一样,它们的本质都是一样的。比如,有些语言的参数类型写在变量前面,有些写在后面,有些中间隔了一个冒号,有些没有。这些实际问题都是随着写实际的代码,解决手头的问题,自然而然带出来的,而不是一开头就抱着语言手册看得仔仔细细。因为掌握了语言特性的人都知道,自己需要的特性,在任何语言里面一定有对应的表达方式。如果没有直接的方式表达,那么一定有某种“绕过方式”。如果有直接的表达方式,那么它只是语法稍微有所不同而已。所以,他是带着问题找特性,就像查字典一样,而不是被淹没于大部头的手册里面,昏昏欲睡一个月才开始写代码。掌握了通用的语言特性,剩下的就只剩某些语言“特有”的特性了。研究语言的人都知道,要设计出新的,好的,无害的特性,是非常困难的。所以一般说来,一种好的语言,它所特有的新特性,终究不会超过一两种。如果有个语言号称自己有超过 5 种新特性,那你就得小心了,因为它们带来的有可能不是优势,而是灾难!同样的道理,最好的语言研究者,往往不是某种语言的设计者,而是某种关键语言特性的设计者(或者支持者)。
JAVA科学https://pan.baidu.com/s/1ev8aIvs–Vhy0an9og-aJQ 密码:yas4刮一刮

本文出自:http://www.itzhihui.com/?p=313&preview=true

转载请注明:IT智慧 » 教你如何快速掌握所有编程语言?(文章带福利哦)

喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址