我为很多人解释过这个问题。这篇文章也是我一直想写的,今天,闲来没事,稍微构思了一下,决定写下来。
问这个问题的人大都是没有参加工作的学生,或者说从来没有写过程序的人。如果是一个参加工作多年,或者说做过很多项目的人应该不会问这个问题,可以在很多论坛上确有不少人把这个问题议得沸沸扬扬,那里不乏一些从事编程工作多年的人士,每每看到此番场景我就想起“小马过河的故事”,我觉得那些问这个问题的人就像小马,而那些已参加工作并信誓旦旦的说某某语言最有前途,某某语言最没前途的人就像河边吃草的“牛伯伯”和树上的“松鼠”。
我想现身说法来解释这个问题!
我最初写VB程序,其实那个时候JAVA炒的很热!VB程序上手快,历史悠久,可以借鉴的资料很多!有些人说VB功能不够强大,这话也许是那些耍怪了牛刀的人说的,但也不乏人云亦云的人,可是现实是不是每个人都有牛杀,杀一只鸡其实美工刀就可以了!
当时是写一个modem拨号软件,其实用VB已绰绰有余。因其中有好多模块,其中有个模块我找到的例码是用JAVA写的,看别人的例码去研究比自己重头写代码要来的快得多,这个时候我就要在自己电脑上装JAVA软件,并买来JAVA的书,边调试边摸索,这样你就了解了JAVA的语法结构及编程习惯。而有些模块是VC写的,同样我电脑也装了VC环境,也可以调试VC程序。
VB我只写了半年!后来,我转向写firmware和驱动程序,直到现在我主要写C程序,还有汇编。
C++是种很好的语言,可是我确实没有应用环境,因为我现在一天到晚看到就是linux内核源码!也没见那个驱动是用C++来写的,自己工作中用不上,只靠看看书是真正掌握不了一种语言的。
所以当有人问我哪种语言是最有前途的,我会跟他说!
你随便挑一种你觉得最容易上手的(C,VB,delphi什么的)熟悉熟悉程序设计思路吧!首先得让你尽可能快的感觉到程序设计中的乐趣!如果你一上手就捧一本C++,然后看了半年也不能体会重载,引用,继承的本质意义,那么你的激情也许就没有了!
根据你的工作,及你想发展的方向,确定一种主要语言,这是你的主要编程语言,你必须很精通,但其他语言你必须涉猎到,有的人习惯在边做项目的时候去学习(也许会碰到书到用时方很少的尴尬,其实我就是这种,呵呵,但是我有过人毅力和耐心),有些人会未雨绸缪,在项目做完了空闲的时候主动去学习其他编程语言,这种涉猎不仅仅是买本书看看,你得写几个入门程序熟悉熟悉其环境!
所以说,谈不上哪种语言最有前途,哪种语言最没前途,一切要根据你所从事的工作,你所从事的工作主要用什么语言,那么该语言你是必须精通的,而其他语言也要了解!
关键字:编程语言 程序
引用地址:
编程语言该怎样选择?你的编程语言选对了吗?
推荐阅读最新更新时间:2024-03-16 15:34
51单片机存储程序和数据的介绍
MCS-51使用哈弗结构,它的程序空间和数据空间是分开编址的,即各自有各自的地址空间,互不重叠。所以即使地址一样,但因为分开编址,所以依然要说哪一个空间内的某地址。而ARM(甚至是x86)这种冯诺依曼结构的MCU/CPU,它的地址空间是统一并且连续的,代码存储器/RAM/CPU寄存器,甚至PC机的显存,都是统一编址的,只是不同功能的存储器占据不同的地址块,各自为政。好,说回MCS-51。 对于程序存储器,有片内和片外两部分。而且无论片内程序存储器,还是片外程序存储器,他们的地址是共享的。如果片内4k ROM的话,地址就是0x0000-0x0FFF,从0x1000-0xFFFF就是外部ROM的地址空间。可外部ROM的0x0000
[单片机]
51单片机制作霓虹灯的程序+电路图
霓虹灯的电路图: 霓虹灯的51单片机程序: #include reg52.h #define uchar unsigned char #define uint unsigned int sbit RED_LED = P1^0; //端口定义. sbit GREEN_LED = P1^1; sbit YELLOW_LED = P1^2; uint flicker,i,n; void int0() { TMOD=0x01; TH0=0x3C; TL0=0xAF; TR0=1; //启动定时器。 ET0=1; //开定时器中断. EA=1; //开总中断 } void main()
[单片机]
西门子1200PLC连续控制程序编写
我们一起学习的是连续控制程序编写。编写程序前,我们首先要做的是创建项目,添加设备,保存工程,在默认变量表里填入名称地址等,打开“PLC程序”中的“Main ”中进行编程。 具体程序看下图: 当我们正转启动I0.0动作时,先会断开I0.0的常闭触点,如果这个时候反转线圈Q0.1在输出的话,会使反转线圈Q0.1停止输出。然后导通常开触点(所有的元器件都一样:先是常闭触头断开,再是常开触头闭合,中间有一个时间差),使正转输出线圈Q0.0输出,Q0.0常闭触头断开形成联锁,Q0.0常开自锁触头闭合自锁。动作反转启动I0.2与I0.0正好相反。 注意:在程序中我们不能双线圈输出,就是说如果已经有一个Q0.0的线圈了,就不能在程序中出
[嵌入式]
MSP430 ADC12模块应用源程序
1-简介 简介MSP430单片机ADC12模块 序列单次采集的 应用范例。 2-例程 //****************************************************************************** //MSP430F149 ADC12模块+串行通讯的实验程序 //使用ADC12采集实验,将采集到数据送向PC.(序列单次采集) //P3.4为发送,P3.5为接收 晶体使32768HZ/8MHZ. 串行波特率B/S //使用SMCLK作为波特率发器时,不能使用LPM2,LPM3! //以下程序已验证通过,初学者可直接使用.由时间仓促和水平有限,请读者批评指正. //编写:www.Mic
[单片机]
C51通用串口收发数据C语言程序
#include reg52.h //C51通用串口收发数据C语言程序模块 #define uchar unsigned char #define uint unsigned int uchar shu; bit i; sbit led1=P0^0; void delayms(uint xms) //1ms; { uint i,j; for(i=xms;i 0;i--) for(j=110;j 0;j--) ; } /************************************************************************/ void UART_ini
[单片机]
经典c程序(18/20)
题目:利用条件运算符的嵌套来完成此题:学习成绩 =90分的同学用A表示,60-89分之间的用B表示, 60分以下的用C表示。 1.程序分析:(a b)?a:b这是条件运算符的基本例子。 2.程序源代码: main() { int score; char grade; printf( please input a score\n ); scanf( %d ,&score); grade=score =90?''A'':(score =60?''B'':''C''); printf( %d belongs to %c ,s
[单片机]
技术科:你知道51单片机如何存储程序吗
MCS-51使用哈弗结构,它的程序空间和数据空间是分开编址的,即各自有各自的地址空间,互不重叠。所以即使地址一样,但因为分开编址,所以依然要说哪一个空间内的某地址。而ARM(甚至是x86)这种冯诺依曼结构的MCU/CPU,它的地址空间是统一并且连续的,代码存储器/RAM/CPU寄存器,甚至PC机的显存,都是统一编址的,只是不同功能的存储器占据不同的地址块,各自为政。 好,说回MCS-51。 对于程序存储器,有片内和片外两部分。而且无论片内程序存储器,还是片外程序存储器,他们的地址是共享的。如果片内4k ROM的话,地址就是0x0000-0x0FFF,从0x1000-0xFFFF就是外部ROM的地址空间。可外部ROM的0x0
[单片机]
基于GIO/FVID的DSP视频处理驱动程序
引言
随着时代的发展,DSP技术在远程监控、可视电话、工业检测等视频处理领域得到了广泛的应用,对于不同的视频处理系统,会使用不同的视频设备,所以有必要为视频设备设计驱动程序,为高层应用程序提供统一的接口来操作底层硬件。只要是遵行此驱动程序接口标准开发的高层应用程序,都可以在具有相同接口的不同硬件平台上运行,具有很好的通用性和可移植性,同时高层应用程序设计人员只要会使用设备驱动程序提供的API接口,就不必了解底层硬件的具体实现,可以大大地提高整体视频系统的开发效率。
对于视频设备,TI公司提出了对应的视频设备驱动程序模型,但这些模型主要是针对6000系列高端DSP,甚至是DM64X这样的视频处理专用DSP设计的,而TM
[应用]