今天, 同事问我会不会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++
交互也已经有很成熟的解决方案。
如果你有精力,可以再学一门函数式编程语言 , 据说它会颠覆你的编程思想。
简单总结下, 语言不在多,在精。经常使用你觉得有价值的语言。深入掌握一门脚本。
分享到:
相关推荐
计算机编程语言是计算机科学中的一门重要分支,它是指用来编写计算机程序的语言。编程语言的种类非常多,有低级语言、高级语言、脚本语言、函数式语言、逻辑语言等等。每种语言都有其特点和优缺,选择合适的语言是...
### 如何才算真正掌握Java(J2SE篇) 在当今的软件开发领域中,Java作为一门重要的编程语言,被广泛应用于各种应用场景之中。对于初学者来说,如何判定自己是否已经掌握了Java,特别是在J2SE(Java 2 Standard ...
仅仅掌握一种或多种编程语言是远远不够的,因为编程语言只是工具,而解决问题的思路和方法才是关键。数据结构提供了解决问题的框架和基础,帮助我们理解如何在内存中有效地组织数据,这对于编写高效的代码至关重要。...
一门技艺,达到了传道授业解惑的境界,才勉强算得上登堂入室。闻之不如见之,见之不如知之,知之不如行之。 虽然这个行业往往是“前人挖坑,后人骂娘”,但偶尔也要栽栽树。 不能免俗地、留一些印记,证明我曾存在过...
- **计算机教育现状**:当前计算机教育体系中,很多高校开设了多种编程语言课程,如C、C++、Java等,但缺乏深度,导致学生虽然接触多种语言,但对任何一门语言的理解都不够透彻。 - **C语言的重要性**:作者强调,...
程语言编程语言 程语言 C#.4 1.1 Microsoft.NET——一场新的革命.4 1.2 .NET 与 C#.6 1.3 C#语言的特点.8 1.4 小 结 .11 第二章 运行环境 全面了解.NET.12 2.1 .NET 结构.12 2.2 公用语言运行时环境...
由于它是一种高级语言,因而编程非常简单,易学易用。将数字信号处理的学习和MATLAB工具紧密结合起来,学习才不会枯燥,因为繁琐的公式或算法都可以得到实在的结果,这些结果甚至是可以听到(语音、音频)或者看到...
而且如果单片机微机原理是一门主课的话,相信学校会安排比较多的实践上机机会。有能力的话,可以找一些相关兼职工作做做,会更有帮助。而且单片机开发应用需要软硬件结合,所以不能只满足于编程技巧如何完美,平时也...
《C语言程序设计》是一门既是基础课又是应用课的课程,在教学过程中,老师应该注意以下几点: 首先,注意培养学生的学习兴趣。 students' learning interest should be cultivated. 在教学过程中,老师应该尽量让...
C#作为一门功能强大的编程语言,在图像处理方面表现出了其独有的优势,提供了丰富的库和类以供开发者实现各种图像处理功能。本文将深入探讨C#图像处理程序中涉及的直方图、灰度处理和边缘检测三种核心技术,以及如何...