怎样才算会一门编程语言

今天, 同事问我会不会Python, 我犹豫了一下:不会。

 

实际上我曾经学习过这个语言,当时还用它写了些小工具, 可如今我对这个语言的印象只剩下它那特殊的缩进格式了。

 

由此思考怎样才算会一门语言?我想每一个程序员都接触过多门语言 , 那么究竟怎样才算会这门语言了呢? 

 

会一门语言, 当须要它时, 应该能很快用该语言解决某个问题, 这个是最基本的。

 

若是深刻一点, 真正会一门语言, 我以为须要知足如下几点:
a. 有超过一年的实践经验
b. 理解语言背后的机制, 最好阅读过该语言标准库的部分源码
c. 在最近一年里还常用它

 

尽管我工做后只跳过一次槽,接触的东西也比较有限, 可是细想一下, 也接触过很多语言:
Masm: 有段时间玩破解, 研究了下
C/C++: 工组中一直用
Objective-C:有段时间想搞跨平台的界面库,研究过这个语言
C#: Win8  Metro下应用程序拿它作界面
VB:刚工做的2年,用它开发过发证系统和一些小工具
Java,JSP, HTML, JS: 学得都不深刻,当时边学边用, 单独作一个B/S架构的电话会议系统
Python: 自学的, 可是后来没怎么用
au3:当时学得还挺深刻, 看了很多语言标准库的源码,用它写过一套自动测试框架

 

发现本身除了函数式语言(Lisp, F#, Erlang, Haskell等), 其余的编程范型语言都有接触, 固然函数式编程思想其实也有接触,由于C++模板元编程也有函数式编程的影子。

 

可是若是按照上面会一门语言的标准, 发现本身算的上"会"的语言只有一门C++, 其余语言多则使用近2年,少则使用过3个月, 大部分是用完以后就扔了, 只有C++是在工做中持续使用的。

 

为何我要定义上面的条件才算会一门语言?

 

由于学习一门语言的语法其实很容易, 大部分语言语法能够一个月内掌握, 若是从C++转到C#, 学习语言的基本语法部分甚至只需一两天。 学习一门语言最费时的部分是语言的框架和库的学习, 这些部分没有对该语言一两年的编程实践是很难深刻的。好比C#语法自己是很简单的 ,可是创建在该语言之上的各类框架和库却很是庞大和复杂, 好比你要成为WPF或是WCF的专家, 够你研究三五年了。不少时候咱们所谓的"会"某个语言可能只是会用这个语言写些"hello word"式的入门程序, 根本就不理解背后的机制,若是真正懂一门语言,这门语言应该对你的编程风格(思想)产生影响。另外编程是项实践活动,须要一直使用才不会生疏, 咱们发现一门语言若是一年没有使用, 对该语言的印象就仅剩语法部分了,若是连续3年没有使用,就仅剩该语言的名字了。不少开发人员转管理一两年后想转回写代码, 发现很难再回去了, 没有敲代码的感受了。

 

因此若是你已经会了一门语言, 而且想一直会这门语言, 请在工做持续使用。若是没有机会使用, 本身给本身创造机会。

 

做为一名C++程序员, 应该掌握哪些语言?

 

我的以为C++程序员除了C++以外, 最好再深刻掌握一门脚本语言,  一来做为辅助工具,二来能够理解动态语言的一些特性 。具体什么脚本语言看本身选择了。通常入若是是游戏程序员, 固然首选Lua,由于它基本上是游戏的内定脚本语言。随着Html5的流行,原本仅仅是浏览器使用的JS如今也是愈来愈受欢迎了。JS自己不支持面向对象,可是如今已经比较成熟的JS面向对象解决方案了。尽管随着V8 的成功, Node.js兴起, JS库也愈来愈强大,但也仅限于服务端, 若是JS做为客户端工具语言就不适合了。Python和Perl都是不错的脚本语言, 若是你不是写专业的字符处理脚本, 我的推荐学习Python, 由于它简单易学, 格式清晰,面向对象,最重要的是它有强大的库支持(包括GUI), 另外Python与C++ 交互也已经有很成熟的解决方案。

若是你有精力,能够再学一门函数式编程语言 , 听说它会颠覆你的编程思想。

 

简单总结下, 语言不在多,在精。常用你以为有价值的语言。深刻掌握一门脚本。
相关文章
相关标签/搜索