• 每年都学习一门新的语言,到底有什么用?


    张大胖刚入行的时候就听牛人说:程序员每年都应该学习一门新的编程语言。

    张大胖热爱新技术,觉得这个建议不错,多学一门语言,技多又不压身, 于是除了自己用来吃饭的Java之外,还学了C#, Python, Ruby , JavaScript,Go 等等在当年最流行的语言。

    不过由于时间的关系和环境的限制,张大胖并没有机会在真实项目中去做实战,语言的学习无法深入,很多语言都是学习了语法,流程控制语句等最基本的东西, 在Google的辅助下,可以写一点不考虑代码质量小程序。

    学得多了,张大胖开始沾沾自喜: 这么多编程语言都差不多嘛,都是套路:

    数据类型,内置的数据结构,可以定义函数,类, 有流程控制语句,文件操作,网络操作, XML文件,正则表达式,线程......等等。

    沾沾自喜的同时也有点迷茫:  那我每年学一门语言有什么用?很多细节都忘记了!

    有一天,办公室的大神Bill和同事聊起来领域特定语言(DSL),张大胖说:“这个东西我好像见过啊”

    Bill说:“你当然见过,你不是会Ruby吗,Ruby有着强大的元编程,非常适合来构建DSL。”

    元编程? 张大胖感觉有点懵逼,Bill说的东西自己似乎看过,但是并没有在意。

    他把自己的疑惑给Bill说了一下, Bill说:“其实吧,大部分语言基本的东西就是你总结的那些,但是你去学习新语言的时候,不能只学习共性的东西, 得把重点放到这个语言独特的东西,这样每年学习一门新语言,才能真的有收获啊。”

    “独特的东西?”

    “比如刚才说的DSL,就充分地利用了Ruby 元编程的强大功能,还有Ruby的mix-in, Ruby on Rails的编程哲学(约定重于配置, Don't repeat yourself), 这些才是让Ruby及其系统与众不同的特性和精华,值得你花大精力去学习、体会。 ”

    “再比如说Go语言,goroutine 和 channel 绝对是你值得深入研究的、独特的东西。”

    张大胖想了想,确实是这样,在没有项目历练的情况下,每年一门语言,很难把这门语言学精通,用熟练,自己学了太多共性的知识, 看起来很多,但是自己的知识积累却不够高。

    “那我也不知道一个语言独特的东西是什么啊?”  张大胖追问。

    “不用担心,一方面要善用Google,另一方面要养成‘比较’的好习惯,你现在对Java很熟悉了,当你去学Python的时候,可以Java做个比较,看看对同样的问题, Python是怎么解决的,发掘Python独特的地方,对语言的认识就会深入一层,比如你发现Python的变量是没有类型的,像个指针,可以指向任何类型的对象, 这和Java就不同,反映了静态语言和动态语言的区别。 ”

    “再比如JavaScript,利用原型法也能实现对象,继承等概念,这和Java基于类的方式大相径庭,可以说是另外一个编程泛型,值得深入研究。 ”

    “总之,在不断地比较的过程中, 你就能找到这个语言的独特之处。”  Bill做了最终的总结陈述。

    张大胖感到受益颇多,也更有信心了:“好! 我这就试试去。”

  • 相关阅读:
    使用 linux kernel +busybox 定制linux系统
    记一次golang的内存泄露
    关于Queries_per_sec 性能计数器
    NUMA导致的MySQL服务器SWAP问题分析
    Drop Table对MySQL的性能影响分析
    当MySQL数据库遇到Syn Flooding
    tcp_tw_recycle参数引发的数据库连接异常
    一例数据同步异常问题分析
    MySQL大量线程处于Opening tables的问题分析
    MySQL DeadLock故障排查过程
  • 原文地址:https://www.cnblogs.com/peke/p/9391450.html
Copyright © 2020-2023  润新知