怎样才算会一门编程语言(如果你已经会了一门语言, 并且想一直会这门语言, 请在工作持续使用。如果没有机会使用, 自己给自己创造机会)

今天, 同事问我会不会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++ 交互也已经有很成熟的解决方案。

如果你有精力,可以再学一门函数式编程语言 , 据说它会颠覆你的编程思想。

简单总结下, 语言不在多,在精。经常使用你觉得有价值的语言。深入掌握一门脚本。

http://www.cnblogs.com/weiym/p/3265008.html

----------------------------------------------------------------------------------------------------------

附加:

1. 学了不用是很容易忘记,所以要养成记录的习惯,再捡起来也会比较快

2. 我主要想表达的是浮于表面的会一门语言很多时候是浪费时间, 你会发项目一完就丢光了, 现实际上没有什么积累下来的东西。

一门语言如果你当初学习的不深入, 三五年没碰。你想再拿起来使用,相当于是重都开始了。

时间: 2024-10-27 14:16:15

怎样才算会一门编程语言(如果你已经会了一门语言, 并且想一直会这门语言, 请在工作持续使用。如果没有机会使用, 自己给自己创造机会)的相关文章

初学者该如何选择一门编程语言?

用心分享,共同成长 没有什么比你每天进步一点点更实在了 本文已经收录至我的github,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/articles 点关注,不迷路!!! 为什么会出这样一篇文章? ?本来想写点最近学习的东西,但是最近好多粉丝再问我一个问题. image-20200105164345384 于是我决定把我这个过来人的一些建议给到你们,希望大家少一些不必要的迷茫,多花点时间去学习该学习的东西,去做一些重要的事情. 刚开始学习

如何创造一门编程语言?

编程语言,作为人与计算机沟通的桥梁,有着重要和深远的意义.有过计算机编程经验的人,多少学习或掌握过一到多种编程语言.计算机专业领域的编程语言成百上千种,主流的编程语言也有数十种之多.每种编程语言面向的领域和特性都不尽相同,不过归根结底是为了解决人与计算机之间沟通的效率问题,提高计算机的生产力.想必有不少人对那些主流编程语言的创造者十分倾佩,也相信有不少人会好奇一门编程语言是如何诞生的.那么如何创造一门编程语言呢? 总的来看,创造一门编程语言需要有以下几个过程: (1)设计语言的特性. (2)定义

怎样学习一门编程语言

选择一门语言 1.确定你感兴趣的领域 你可以开始学习任何编程语言(尽管其中一些被描述地比其他的更加"易学"),你得去问自己自己想用通过学习这门语言完成什么样的工作.这将会帮助你确定你应该追求的编程方式并且提供一个良好的开始. 如果你想进入Web开发行业,那你将会有一堆语言需要去学习,这和开发计算机程序相反.移动App的开发需要比PC等的开发更多的技巧.所有的这些决定将会影响着你的发展方向. 2.考虑从一个"易学"的语言开始 无论你做了什么样的决定,你可能只会希望从一

什么时候懂得了拒绝,才算真正长大了

学会拒绝,是人长大后要具备的第一能力.或者,换一种说法就是:什么时候懂得了拒绝,才算真正长大了. 施予,是帮助他人.拒绝,是保护自己.在帮助他人之前,先学会保护自己,我觉得一点错也没有.合格的崇高是:能站在道德的高度上做事,却始终不被道德绑架. 一个人,适当行使拒绝权,是有立场和有态度的体现.在这个世俗社会,好说话,别人未必把你当回事.恰恰是,他人在你这里碰钉子,反而会赢得敬畏和尊重. 没有拒绝的人,是不会有原则性的.就像没有坚守的人,绝难有原则性一样.于人生来说,学会拒绝与懂得坚守一样重要.有

如何学好一门编程语言或技术?

相信大家都知道,在看一本书的时候,通过该书的目录和索引能够很快的了解本书内容和找到我们需要的页数,因为一本专业的书本往往记录的知识都非常全面,举个例子假如我们初学Hadoop,所以呢就购买了一本<Hadoop编程指南>,打算系统的学习一下这个东东来提高一下自己的逼格和工资水平,那么问题来了,如何才能学好一门语言或技术? 以前也有很多朋友或群友,问散仙如何学好一门编程语言或XXX技术,当然首先我得从非技术的角度来回答你: 1,最重要的就是坚持下来,不要半途而废 2,空杯心态,戒骄戒躁,多向比你强

12种方式让程序员快速掌握一门编程语言

[IT168 评论]你决定学习一门新的编程语言了吗?怎么开始呢?本文列举了12项关于快速掌握一门编程语言的方法,如果你有其他更好的建议,欢迎分享! 1.比较与之类似的编程语言 这点对于程序员而言,应该很容易吧!你可以通过观看该语言的教程或读取示例代码,来尝试猜测该语言的特点,并将其记录下来,比如: ·该语言与哪些编程语言相似,相似点是什么? ·该语言的不同之处在哪,哪些特点超乎了你的想象. ·该语言主要用来干什么呢? 如果条件允许,你可以寻找身边同在学习该门编程语言的朋友,互相交流,或许会有更清

学习另一门编程语言需知的5个网站

想在编程语言之间切换开发?这些网站向开发者展示如何在不同的语言和框架之间过渡. 开发者试图从一种语言转到另一种语言的时候,总是会遇到这样的问题:我需要怎么做才能实现这个功能?他们可以用原来的语言轻松实现这个功能,但是放到新的语言环境中,就非常糟糕了. 看到相同的概念.设计.算法,如果用不同的语言实现总是可以帮程序员脱离这种尴尬的境地.下面五个网站,有用最流行的语言实现的特定的例子(包括一些你也许不知道的),还有用不同的方式处理相同的命令. 1.Rosetta Code 它涵盖最多的实例,最有效的

怎样才算精通javascript

任何一门编程语言都是人去创造的,不管是javascript还是php或者是c 那么,到底什么是精通javascript,什么又是精通php呢? 试问,我理解了js里面对象的概念,理解了各种逻辑运算符,我精通么? 显然,另外的同学会说,不,你还要学习面向对象或者函数式编程,你要试图用js去模拟一个类,然后让它具备重载以及多态等等特性.好了,我都学会了,精通了么? 其它同学说,不不不,你需要让你的js写的更高效,还要考虑各种浏览器下对某些方法的支持与否,我们要保证这个js具备较好的兼容性.好了,你又

如何学习一门编程语言

作为程序员,总会有想学一门新的编程语言的冲动.新语言的某些特性打动了你:或是新工作的需要:或是时下比较火:又或是年初定下的学习计划--不论出于什么原因,你决定要学习X语言了.接下来就聊聊学习一门新语言时要关注些什么. 搭建开发环境 首先,我们得准备好开发环境.通常官网会有详细的新手指导,我们只需要照着做就可以. 模块 别急着写HelloWorld.先搞明白,如果我们要为其他人提供某些功能,发布的最小单元是什么,比如C#的dll文件.Java的Jar包等等.试着写一个模块,只返回一个字符串. He