一个好的程序员不能把自己绑定在一种语言上,不能把自己就定义为JAVA程序员,C#程序员,等等。语言没有高下之分,只有适用的场景。好的程序员,应该有很快学会一种新的语言,并解决实际问题的能力。在我二十年的程序生涯中,有过不止一次,因为项目,一两天学一种语言的基本语法,然后边Google函数和库用法,边完成项目,然后项目完成后就扔一边的经历。
但是学习的顺序却是有迹可循的,我们可以根据不同的重要程度来选择自己想要学习的语言,接下来我们就来谈谈C#、C++、Java、Python四种语言学习的优先程度。
作为一个20年的老程序员来回答一下。
1998毕业,现在自己做一家IT公司,依然喜欢写代码。
工作这么多年,正式项目用过的语言有:Pascal/Delphi,dBase/FoxBase,FoxPro,VB,VBScript,JavaScript,COBOL,C/C++,Lua,Java,C#,各种数据库的SQL。
最早学的是Pascal,大学里面学数据结构用的,毕业以后用delphi写了一个小项目,然后再也没有用过。
dBase/FoxBase也是学校里面学数据库的时候教的,然后毕业以后用的是FoxPro,也是做了一个小项目,后面基本就没用了。
VB/VBScript作为主力语言,从1998年用到2002年,对,那时候做ASP。也用VB写过还算有规模的EXE的项目。至今书橱里面那本《VB5金典》依然保佑一席之地。VB做快速开发真的很好用。然而就压根没看过。那已经不是VB了。
因为Web开发基本上没有断过,JavaScript一直陪我到现在。
COBOL是原来在对日外包公司工作的时候,接了日本一个野村证券的项目,居然是COBOL,然后,作为新技术研发部的负责人,当仁不让上了。边学边做项目,做完就扔了。
C是从开始编程就学的,断断续续用一点点,2003年做银行项目的时候,用IBM小型机,Tuxedo中间件,然后只能用C/C++语言编程(那个时候银行还不怎么接受Java)。然后自己开始创业,做游戏,用OpenGL做了一个游戏引擎,跨平台的那种,一次编写,Windows、Android、iOS都能跑。C++写的。中间尝试了一下Lua,写了两个小游戏,觉得对程序的掌控能力还是比C差远了,就放弃了。
最后就是Java和C#这对双子星,是用的时间最长,做过项目最多的。C#是从2001年开始,beta版本开始学的。记得第一个项目是2002年6、7月的样子吧,那时候公司接了一个比较大的Web项目,本来是准备用ASP做的,结果那时候我正好在学C#,然后看了一下说是10月份会发布正式版(时间大概是那样吧,年数长了,记忆有点模糊),然后仗着自己是项目负责人,外加老板不懂技术,就擅自决定用C#来做。项目做完大概是10月份,在项目上线的前几天,微软发了正式版ASP.Net1.0,项目有惊无险的上线了。现在想想有点作死的感觉。如果微软把.Net正式版的发布时间往后推一个月,很难想象老板会拿我怎么样。
Java差不多跟C#同时学的,然后一直做啊做,从EJB做到SSH,再到Android。那时候年轻,学习的精力旺盛,然后觉得C#和Java似乎差的不是太多。
PHP看过,没用过。Python看过,没用过。还有Ruby,看过,没用过。我说看过的意思大概就是写过Hello World,但是没有拿来做过项目。
我是真的喜欢写程序,所以有什么新奇的东西,都喜欢拿来跑一跑。
然后说说对编程的看法。
首先,我认为,语言没有高下之分,只有应用场景之分。作为一个技术决策者,拿到任何一个项目,首先第一个考虑的,不是怎么做,而是用什么做。如果你拿到的是一个Web项目,我认为,在很多情况下,JSP、PHP、甚至Node.js基本上都是等价的,应该都能够很好的完成项目的开发,选择什么技术开发,看自己所拥有的资源禀赋和具体情况。如果手下一帮弟兄都是搞Java的,当然JSP啊,如果手下小弟都是做C#,当然啊。当然,项目有特殊要求的除外,比如,如果甲方是银行,那估计就没法用了,如果是有客户端的项目,当然C#+WinForm啊,如果是做安卓,当然Java啊。
其次,作为一个好的程序员,应该至少会三种以上语言,这样你能够充分接受不同语言的风格,更关键的是你会去关注不同技术社区的讨论,开阔眼界,对编程的本质会有更深刻的体会,然后你会觉得,看任何语言都是差不多的。我经常对公司的技术人员讲,要用Java的编程思想来写C#的代码。这是不同技术社区的风格体现出来的。在Java的社区,你能看到更多的对模式、框架的讨论,而微软虽然自己做的东西很讲究模式和框架,但似乎更喜欢做好一堆全家桶给你,让你去做快速开发。
第三,对各种语言的感受,写起来最爽最有成就感的当然是C,那种一切尽在掌握的感觉是很奇妙的。不过我现在公司没有C/C++程序员了,因为公司不做游戏了,我也有起码5年没碰C了。我最喜欢的还是C#,我很崇拜安德鲁,C#的语法和机制真的设计的很精妙:泛型、delegate/event、Attribute、Lamda表达式、函数式编程,总觉得这个语言的设计给人一种特别的精致美感,能满足我对一门好的语言的所有的想象。自从.Net Core以后,跨平台也不是问题了。相对Java来说,我更喜欢C#。当然,我是不会排斥Java的,只要做Java能赚钱。
第四,我觉得数据结构真的非常重要,如果你想成为高手的话。在学校里面,一定要把这门课反反复复的学习。当然,如果你只想做做Web开发,写写网页的话,当我没说。
最后,对计算机专业的学生来说,我认为,在大学就是要打好基础。语言的东西真的不难,所有语言的编程思想都是想通的,语法其实也都大同小异,无外乎顺序结构、循环结构、分支结构。不用太焦虑应用型的开发,这些东西其实学起来是很快的。重要的是基础。C语言是必学的,学好C,让你对计算机的原理(数据结构、寄存器、内存、硬盘读写等等)有更深刻的认识。然后,为了工作,学学Java,学学C#。数据结构、编译原理这样的课程,当你工作年限变长,开始写架构、开始做性能优化的时候,你会觉得特别有用。当然,最开始的简单开发任务基本上用不着。不过,不想做高手的程序员,当然不是好程序员,是吧?
还有,其实我是非常建议,作为程序员,C#是必学的,不是因为我个人喜欢C#,是因为,实际上,按照我的习惯,在做项目的过程中,我经常会写一些小工具,而这些小工具,很多时候当然都是写成exe啦,所以,一般我都会选择用C#来写。
以上就是一名工作了20年的老程序员的感言,大家可以根据他的回答,来排序自己的时间学习。
文章来源:网络 版权归原作者所有
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理
一个好的程序员不能把自己绑定在一种语言上,不能把自己就定义为JAVA程序员,C#程序员,等等。语言没有高下之分,只有适用的场景。好的程序员,应该有很快学会一种新的语言,并解决实际问题的能力。在我二十年的程序生涯中,有过不止一次,因为项目,一两天学一种语言的基本语法,然后边Google函数和库用法,边完成项目,然后项目完成后就扔一边的经历。但是学习的顺序却是有迹可循的,我们可以根据不同的重要程度来选择自己想要学习的语言,接下来我们就来谈谈C#、C++、Java、Python四种语言学习的优先程度。作为一个20
问题是两种
语言
的目的完全不同。因此,对于您来说,确定自己作为程序员的目标很重要,以便针对技术做出正确的
选择
。但是,您很难做出这个决定,因为您对这一领域的理解还不够深入。如果您愿意被Microsoft生态系统所束缚,则绝对应该
选择
C#,而使用
C++
则很可能会
开发
桌面应用程序。
我不明白的是为什么您要精确列出这两种
语言
?还有许多其他
选择
,例如C,
Java
,Ruby,PHP,Pyt.
1:修改
C#
版本的dll,可以支持所有的中文路径
2:增加其他第三方库支持(GEOS,PROJ4,FileGDB、HDF4,HDF5,NetCDf,CURL,EXPAT,ICONV,ECW,OCI,MrSID,JPEG2000,SQLite3,xerces-c等)
使用VS2008SP1编译,如果不能执行请安装VS2008SP1的分发库。
C++
文件夹下为常用C和
C++
库以及dll文件
C#
文件夹下为
C#
使用的八个dll和GDAL自带的
C#
程序
Python
文件夹下为
Python
接口
Java
文件夹下为
Java
库
所有
语言
的使用都需要把
C++
文件夹下所有的dll拷贝至自己的程序所在目录,否则会出现不能运行的情况
对于
C#
程序和
C++
程序,为了能够正常访问中文路径,请将GDAL_FILENAME_IS_UTF8设置为NO。代码分别为:
C++
:
CPLSetConfigOption("GDAL_FILENAME_IS_UTF8", "NO");
OSGeo.GDAL.Gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "NO");
如果程序不能执行,或者提示0xc1000052错误,请到这里下载VS2008 SP1的运行库,地址为:
http://www.microsoft.com/zh-CN/download/details.aspx?id=5582
0.参考链接
C++
和
C#
的性能比较:https://blog.csdn.net/wwwsq/article/details/4771093?utm_source=distribute.pc_relevant.none-task
C++
与
C#
界面编程比较:https://blog.csdn.net/loadstar_kun/article/details/8467631?utm_source=distribute.pc_relevant.none-task
C#
和
C++
的速度大比拼(一):https://blog.csdn.net/600000/article/details/12576?ut
C
语言
和
C++
、
C#
的区别在什么地方
在这里给他们三个布置一个任务看他们如何去解决,看完你就明白了
例举一个经典的任务:把大象放进冰箱里,让我们先来看看C
语言
是如何去解决的。
c
语言
是一个极其高冷的人,因此回答都是冷冰冰的。
我:你好C
语言
,我想把大象放到冰箱里,帮我做好不好?
C
语言
:好
我:那我们要怎么做呢?
C
语言
:猜
我:额…是不是应该先创造一只大象?
C
语言
:是
我:怎么创造呢?
C
语言
:猜
我只好去翻了一下文档,哦,malloc一块内存啊。
我:好的,我用mal
C
语言
:
目前最著名、最有影响、应用最广泛的windows、linux和UNIX三个操作系统都是用C
语言
编写的。0S是计算机系统(由软硬件两个子系统构成)的核心和灵魂,它是软件中最庞大最复杂的系统软件。既然如此庞大复杂的0S都可以用c
语言
编写,从狭义而言,还有什么系统软件和应用软件不能用c
语言
编写呢?由此可以肯定的说,c
语言
是一门十分优秀而又重要的
语言
。
c
语言
程序设计是过程性程序设计
语言
,它...
没有一种编程
语言
能被定义为“最好的”,每种编程
语言
都有其自身的优点和缺点,并且适用于不同的场景和用途。以下是对每种编程
语言
的简要介绍:
-
C++
:
C++
是一种高效、强大的编程
语言
,适用于需要高性能和低级别控制的应用程序,如游戏、操作系统和嵌入式系统等。
-
Python
:
Python
是一种易
学
易用的编程
语言
,适用于数据分析、机器
学
习、Web
开发
和科
学
计算等领域。
-
Java
:
Java
是一种跨平台的编程
语言
,适用于企业级应用程序、Web 应用程序和移动应用程序等领域。
- PHP: PHP 是一种适用于 Web
开发
的脚本
语言
,主要用于
开发
动态网站和 Web 应用程序。
- Go: Go 是一种新兴的编程
语言
,适用于构建高性能和可伸缩的网络应用程序和分布式系统等领域。
-
C#
:
C#
是一种 Windows 平台上的编程
语言
,适用于构建 Windows 应用程序、Web 应用程序和游戏等领域。
- VB: VB(Visual Basic)是一种 Windows 平台上的编程
语言
,适用于
开发
Windows 应用程序和自动化任务等领域。
因此,
选择
哪种编程
语言
最好取决于你的项目需求、个人偏好和技能水平等因素。