当前位置: 首页 > news >正文

编程学习初体验(3. 语言的选择)

编程语言的选择应该说是学习编程时碰到的第一个问题,并且这个问题会在今后相当长的一段时期(一年到几年)内一直萦绕在你身上。根据我自己的认识, 对于这个问题,没有人能给你一个确定的答案,但是你会发现身边的人一直在为这个问题在论战。至于我, 我也同样没办法给出一个放之四海而皆准的答案,我能说的只有三点:
1. 每种现存的语言都有其存在的合理性;
2. 没有任何一种语言是能够包打天下的;
3. 编程入门应该根据自己以后的发展需要来选择。

就第一点合理性而言,是很显而易见的。 实际上, 在这个世界上曾经出现过的编程语言的种类远远超过目前依然存在的数目。语言本身就在经历一个优胜劣汰的过程。 剩下的语言本身就具有其不可替代性,因此具有其一大批使用者和信众。因此武断地认定某种广为流行的语言是否时髦是没有意义的。
其次, 从我自己对各种语言的尝试经历来看,的确是没有任何一种语言能够一统江湖的,现在没有,以后也没有。 我想,其原因在于不同的语言的设计和与之想对应的应用领域是相关的。例如汇编语言多用于硬件相关的开发, C语言和汇编语言多用于操作系统底层相关的开发以及C++,Java和C#用于应用程序开发三个不同的领域。 这三个不同应用领域有着不同特征和对语言表达能力的相应要求,因此是没办法互换的。 硬件相关的开发注重的是性能和实时性,对于逻辑的复杂性没有太大要求;操作系统的开发既需要考虑硬件问题,有需要对上层应用程序提供一个统一,方便和有效 的接口界面;而应用程序的开发往往需要包含复杂的逻辑和体系结构。 因此,如果你说java比汇编好,因为java语言清晰快捷;或是汇编语言比java好,因为汇编语言是所有语言的基础支持,那么你说的都是正确的,但是 都是没有意义的。因为谁也不可能取代谁,他们之间的关系是:各司其职;而非谁吃掉谁。

最后回到语言的选择这个问题上,初学入门应该学什么语言。我觉得总体而言,不同领域的初学者应该选择不同的语言。电子工程专业出身的人,应该以汇编和C语 言的学习作为入门,因为这两个语言和今后的工作最为密切相关,也是以后赚钱的“金刚钻”的所在。而计算机专业出身的初学者就相对复杂一些,如果是学系统结 构专业的,应该主攻C和C++语言。如果是学习软件工程的,则Java和C#是不二之选。 当然,这这里我不讨论个人兴趣问题,学电子的对java有兴趣也没什么错。





     本文转自nathanxu 51CTO博客,原文链接:http://blog.51cto.com/nathanxu/110073,如需转载请自行联系原作者


相关文章:

  • oracle12C—RMAN表级恢复
  • 黑客的思想
  • RPC协议
  • 命令行工具软件
  • 腾讯云ubuntu安装tensorflow
  • Python垃圾回收机制:gc模块
  • Silverlight Client←→Server数据同步备忘代码
  • Expression Blend实例中文教程(12) - 样式和模板快速入门Style,Template
  • rails实现“事务”的方法
  • 威胁情报 | CCleaner后门及主流浏览器漏洞防范
  • 新浪微博RSS Feed实现中的问题
  • AjaxControlToolkit中,TabContainer的一个简单Css样式
  • SQL Server技术问题之视图优缺点
  • C++编码规范
  • Windows 搜索究竟有多快
  • 分享一款快速APP功能测试工具
  • Apache Spark Streaming 使用实例
  • Apache的基本使用
  • AWS实战 - 利用IAM对S3做访问控制
  • CSS实用技巧
  • Docker入门(二) - Dockerfile
  • Java基本数据类型之Number
  • LeetCode算法系列_0891_子序列宽度之和
  • MYSQL 的 IF 函数
  • mysql中InnoDB引擎中页的概念
  • node-glob通配符
  • October CMS - 快速入门 9 Images And Galleries
  • React16时代,该用什么姿势写 React ?
  • Selenium实战教程系列(二)---元素定位
  • Spring核心 Bean的高级装配
  • Vue 动态创建 component
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 将 Measurements 和 Units 应用到物理学
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 前嗅ForeSpider采集配置界面介绍
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • !!Dom4j 学习笔记
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • $GOPATH/go.mod exists but should not goland
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (ros//EnvironmentVariables)ros环境变量
  • (第27天)Oracle 数据泵转换分区表
  • (第一天)包装对象、作用域、创建对象
  • (二)JAVA使用POI操作excel
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (四)TensorRT | 基于 GPU 端的 Python 推理
  • .gitignore文件_Git:.gitignore
  • .NET 4.0中的泛型协变和反变
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET 读取 JSON格式的数据
  • .NET文档生成工具ADB使用图文教程
  • .vue文件怎么使用_vue调试工具vue-devtools的安装