编程语言只是工具,所以不必执着?

今天和学长聊到编程语言的问题,他说编程语言只是一个工具,不必太局限于一种,数据结构和算法才是核心。

作为一名菜鸟,我想说一下菜鸟的观点。我认为,“编程语言只是一个工具”,这句话是有前提的,那就是真的精通一门或一门以上的语言,能力已经达到了一定的级别,这时,语言已经无法成为限制了。

首先从工具这一点说起,因为不是专业的,解释会有偏差。我个人认为工具是完成某件事情的辅助,比如说我们出门要坐交通工具,但是没有交通工具单纯地走路也一样可以到达目的地。再比如说想和美国人交流要说英语,但是不会英语用肢体语言仍然可以沟通。可是,当编程没有了编程语言要怎么进行?陈列数据结构,想着算法,就能跑出一个程序?的确是有个公式为“程序=数据结构+算法”,但我认为这只是突出数据结构和算法的重要性,就像是精神总会被视为高境界一样。相对的,编程语言更像是物质基础。我无法想象连编程语言都不精通的人会写出高质量的代码。现在的我对于c语言顶多算是熟悉,我在写代码的时候总是小心翼翼,担心什么时候发生了内存错误,程序dump,因为我对c语言了解的远远不够。就算是我了解数据结构,但这并不能保证我不会调用一个非法指针。

接着还是从工具这一点说起,为什么说大牛们可以说编程语言只是一个工具。虽然这一段是我自己推想出来的,但我认为还是符合情理的。他们已经精通了一门或一门以上的语言,形成了自己的模式,知道在哪里该用什么,知道在哪里该注意什么,他们对这些语言了解的就像自己儿子一样,甚至都可以自己造一个儿子出来。对他们来说,语言已经不是需要注意的东西了,更高层次的才是追求。想用什么语言分分钟就能搞定,因为这些都太熟悉了,太相似了。只要设计好程序,什么语言都能来实现。他们有资本说“编程语言只是一个工具”。

总之,我认为,编程语言好比物质,数据结构和算法好比精神。没有物质基础,还谈什么精神层次。那些打着“编程语言只是一个工具”的幌子,什么都学却什么都不精的人实在是太愚蠢了。因为我曾经就是其中愚蠢的一个,又看c又看java又看python又看shell,还学了html和css,到头来什么都能写一点,什么都写的很烂,根本经不起几k的考验。有的时候确实应该认真思考一下,别人云亦云,把别人那一套也用在自己身上。说句不好听的“也不撒泼尿照照自己是啥样”。

再写下去就要做自我检讨了,希望同是菜鸟的伙伴们能静下心来思考一下,“编程语言只是一个工具,不必太执着”到底是不适合我们。

时间: 2024-09-28 16:51:32

编程语言只是工具,所以不必执着?的相关文章

Atomic:Android、iOS和网页的设计工具

Atomic是在浏览器中运行的用户界面设计工具.不必写任何代码,应用程序设计人员就能够用它来展示在执行一些命令时应用程序的界面应该是怎样的,是如何动作的. 当前,Atomic可以运行在Windows和Mac OS上的Chrome中.有计划在将来使它运行在其他浏览器中.而且,据Atomic的联合创始人和CTO Vimal Jobanputra说,大部分功能可能已经可以在Linux上正常工作,但还没有经过测试,公司正集中精力于最常见的平台. Atomic可以用来描述iOS.Android或web应用

TLP --- 优秀的电源管理工具

TLP TLP是一个优秀的电源管理工具,不必做任何设置就可以让你的电脑很好的工作注意: 在安装TLP之前,请卸载相关工具,比如 "laptop-mode-tools", "Jupiter"...等等 如何安装 ubuntu 12.04. 13.10 和 14.04 sudo add-apt-repository ppa:linrunner/tlp sudo apt-get update sudo apt-get install tlp tlp-rdw 安装成功后,开始启动TLP或者re

探究丨未来五年哪些编程语言有前途?Python只是其中之一!

知乎上有这么一个问题“未来五年最具前景的一门编程语言是什么?”看到很多人的答案都模棱两可,对于很多打算学习编程的新手来说,那么多编程语言着实不知道该如何选择,也不懂未来到底哪种编程语言最有前景,哪种最好找工作,那么今天说下我的一些看法. 首先我的观点是,编程语言只是工具,每种编程语言都有自己的优势与适用的场景,编程语言是帮你解决实际问题的,而不是用来辩论哪种语言是最好的. 很多企业都是用不同的语言来解决不同的业务问题,比如有创业公司想快速开发,可能会选择 Ruby.Rails:有的要解决实际的性

简单谈谈编程语言(三)

?????? 本文续上一篇简单谈谈编程语言(二),最后再谈谈编程语言.这篇很有可能是最后一篇了,也是时候整理一下我之前的一些文档了,这篇谈谈对编程语言专精的必要性,或者选择一精多涉猎的战术,谈谈一些学习心路,而,共性,就是我这篇文章表达的核心.第一篇文章谈历史,第二篇文章谈历程,都是第三篇的基础,之后就靠大家自己去实际学习中感受文章中所表达的了. ?????? 经过前两篇对编程语言不同层面的描述,其实大概对编程语言学习的畏惧心理可能已经没有那么大了,也可能也因为编程经验相对少感受不深,也可能因为

编程语言选择

漂亮话说在前头: 编程语言只是工具,没有孰好孰坏,只有适用不适用. 目前写过的编程语言主要有: c,c++,c#,汇编,javascript,python,java. 这里主要说说其中三个:c++,python,java. C++ 说到c++,首先想到的是指针.没错就是这个让人谈虎色变的词.这是区别于python和java最明显的特征,需要对指针做处理.c++既是面向对象也是面向过程的,有着丰富的类库.主要应用在图像处理和游戏.c++经过优化的程序性能,那是杠杠的. 大学专门有一门课是c++,那

程序员出路之转36岁程序员的困惑

早上看到的这篇文章,包括内容和评论都仔细的看过了,感慨颇多. 要时刻考虑自己未来的出路,尤其是在自己还能选择的时候,否则到自己被迫选择的时候就会很被动. 下面是文章和评论的转载. 今天特郁闷,经理找我谈话,我被炒了.以前自信的感觉完全不在,取而代之的是职业生涯的困惑,不知道向何处去. 想当初,为了学习更 多知识的我到了一家软件公司,后来一直没有离开软件行业.而我的好哥们毕业后直接进入税务局,银行,以为他们只是浪费青春,学不到什么知识,可是他们却顺 势识时务.会搞关系,擅长腐败而成功转型,都成副处

【总结】Java线程同步机制深刻阐述

原文:http://hxraid.iteye.com/blog/667437 我们可以在计算机上运行各种计算机软件程序.每一个运行的程序可能包括多个独立运行的线程(Thread). 线程(Thread)是一份独立运行的程序,有自己专用的运行栈.线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等. 当多个线程同时读写同一份共享资源的时候,可能会引起冲突.这时候,我们需要引入线程“同步”机制,即各位线程之间要有个先来后到,不能一窝蜂挤上去抢作一团. 同步这个词是从英文synchronize

Oracle官网JNI简介和接口函数分析

第一章 概述 本章主要介绍JNI(Java Native Interface),JNI是一种本地编程接口.它允许运行在JAVA虚拟机中的JAVA代码和用其他编程语言,诸如C语言.C++.汇编,写的应用和库之间的交互操作. JNI的最大优势在于没有强加任何限制在JAVA虚拟机的下层实现上,因此,JAVA虚拟机供应商能够提供JNI的支持而不影响虚拟机的其他部分,程序员只需写出一个版本的本地应用和库,就可使之运行在一切支持JNI的JAVA虚拟机上. 本章包含了以下的要点: ? JNI概述 ? 目标 ?

一辈子作为一个程序员,在中国要放下很多东西

最近看了一篇微信文章<程序员的恐惧>,感觉在中国如果要做一辈子的程序开发,可不是一件容易的事情,需要放下很多东西,需要顶得住来自各方面的压力. 生活如此维艰,总是需要很多的经历才会完善人生,而如果只是一直做开发,程序员的世界相对单一,在中国这个人情的社会里,这样的存在会随着年龄的增长与这个社会格格不入的! 以下是转载原文<程序员的恐惧> 国内的架构师到了三十岁以后很多就往理论上跑,而国外的架构师在往上发展的同时保持下面的编程体验,所以国内多水王,而国外则多大师.---江南白衣 软件