一、C\C++\C#(ASPNET)
二、JAVA(J2SE\J2EE\J2ME\JSP)
走这两条路都必学的:数据结构、数据库(SQL或Oracle)
选学:计算机应用基础、网络基础、硬件基础。
C是学习高级语言的基础;C++主要用于编写大型软件核心代码和汇编一样,比较难学,不过学好了后,很有前途;C#主要用于编写一些系统软件,比如游戏引擎核心代码,编写比较简单,界面比较友好;ASPNET主要是用C#语言编写开发网站(B/S架构)。
J2EE是用很广泛,主要偏向于企业应用软件和一些桌面系统(C/S架构),计算机平台;第二,J2ME,面向无限领域,主要用于开发手机一些软件,比如手机游戏。很有潜力的家伙,看看中国的手机用户就知道了;JSP主要也是开发网站。
大概就是这些。说得太多了,可能你初次接触也比较麻烦。两者根本就没有一个肯定的说法谁好谁不好。我说下我个人感觉吧。初次涉及Java领域,感觉到Java入门是好像没有C,C++入门快,工具也没有什么Turbo C,Visual C++好用,界面没有它们友好。什么JAVA_HOME,CLASSPATH,虚拟机等概念都是初次接触,学的东西比较多。不过学Java的目前比C的好找工作点,我个人感觉。
不过作为一个高级的程序员,绝对不仅仅只会一门语言的。这就是他们常说的“精一门,通两门,熟三门”
至于证书,C好像没有专门的证书,只是有等级认证。
Java证书一般就是SUN公司的认证了,有权威,含金量高。
Sun的Java认证有多种,SCJA、SCJP、SCJP、SCWCD、SCBCD、SCDJWS、SCMAC、SCEA,想考高级别的要先考低级别的
问题二:现在学哪种编程语言最好 1零基础,打算自学编程,应具备哪些的知识?
答:
对于入门阶段,对知识水平的要求并不算高,或者说很低,大家都应该听说过xxx小学生编程如何如何这般这般怎么样之类的话题,这里,我们不谈长期发展,只谈如何入门。首先,我觉得你应该具备计算机的基本 *** 作能力,如果说你连新建一个文件夹或者说从网上下载资料都不会,那么你应该先买本《windows xx从入门到提高》看,然后再考虑编程这件事,如果你觉得对计算机的基本 *** 作已经熟练后,请继续向下看。
2学编程应具备哪些条件?
答:
第一:硬件保证,首先你应该具备一台电脑,不管是笔记本还是台式,也不管性能高低,性能对前期学习编程几乎无任何影响,就入门来看, *** 作系统还是首选windwos。
第二:有xx语言的入门本书,纸做的,具体xx语言是哪种语言,后面我们再讨论这个问题。虽说现在铺天盖地的都是电子书了(保留这句话的确定性),到处是扫描版,还高清呢,但我还是推荐看纸做的书,好处有两点,其一是便于携带,可以随时翻阅;其二是避免眼疲劳,我不信你一直晚盯着显示器看电子书眼睛不会酸;还有一点,尊重图书作者的版权。
第三:时间保证,如果你每天都有一大堆事等着你去处理,先去处理那些事吧,处理完后把剩余时间划出一整块的给编程,进行随时可能被打断的学习,在编程这块,我不认为这是在用功学习,零碎时间去背单词?应该是个不错的选择。
3你确定要学编程?
答:
这个问题看起来有点多余,但为什么要提出这个问题?要知道,编程不是一朝一夕的事,如果你只是一时的冲动,或者仅仅是要完成心目中的某个小工具,并没有长期写程序的打算,这样的话,编程不学也罢,毕竟编程从入门到能独立写软件会有很长的一段路要走,中途一旦放弃就前功尽弃,并且已经浪费了你大把的宝贵时间,实在是得不偿失。不过,你尽管吐槽说是这是你的业余爱好,有个爱好也挺好,那么,继续往下看吧。
4如何才能入门?
答:
到底怎样才能入门?其实,只要你有毅力,慢慢折腾个一年半载,肯定能入门,但写这篇文章的目的就是为了把这个周期缩短些,不是吗?所以,下面我就以个人的观点来谈谈怎么才能更快的入门,这里先笼统的介绍下,对于每点,后面单独介绍。
C1>去了解计算机的基本组成,计算机的发展史和编程的发展史,看起来和编程没什么关系,潜在的影响还是十分大的;
C2>选择一门简单的语言作为入门语严;
C3>学会使用搜索引擎;
C4>知道如何看书;
C5>要”像”个高手;
C6>应具备的学习态度;
41:了解这些历史的意义:
了解一些编程的实质远比知道如何编程更有意义,不要在编程是怎么回事的情况下就去学习编程,这样对你的学习是十分不利的,作为一个编程爱好者,知道计算机的工作原理,这应该是一件再正常不过的事,你难道不想去知道吗?
42>选择入门语言:
这个问题在入门阶段一直是争议十分大的问题,n多语言,n多推荐,到最后搞到新手一会听说这种语言适合新手,于是学习这种语言,一会又有人说xx语言是垃圾、弱爆了,学了也没用,之类的话,开始推荐你xxx语言,于是新手们又开始学习这种语言,搞到最后,什么语言都没搞懂,时间大把大把的流失,热情消耗殆尽。要解决这个问题,首先要明白一个根本问题,怎样挑选适合入门的编程语言?我推荐从难度这个角度来考虑,这门语言必须简单易学,有趣,而且要有一定的热度,有热度才能有更多的人一起交流讨论,翻开编程语言列表,发现有100多种编程语言,而且这个数还是在不断增加的,这里我们一起来看下2012年5月份的编程语言排行榜,能进>>
问题三:学习哪种计算机语言比较好 主要有两种可供你选择:
1,java;
2,C++;
java方面:现在国外几乎所有大学的计算机教材都采用java,而且,jvm具有非 常强大的跨平台性,可移植性高,作为开源巨头――sun公司所开发出的语言,有着非常大的潜力,是一种灰常流行的语言。
C++方面:全世界都在使用,全世界都说好,不过部分语法比较复杂(特别是里面的指针问题),听说“学会C++,走遍天下”。
其他:C#可以做出非常炫的界面,看你具体想做哪方面的工作,做美工的话C#还是不能放过滴~
学习方面的注意的地方:
if(大学生)
大学毕业前写够1W行代码就行了;
else
每天一百行;cos practice makes perfect
推荐书籍:
英文好的推荐阅读原版C++primer(中文翻译出来后有些句子的原意会被曲解,读英文版还有利于你英文水平的提高,再说远一点,想搞好计算机的话英文非常重要,因为puter is not made in china~),Code plete;
最后,无论你学什么,只要认真学了,学好了,都是强大的~
三百六十行行行出状元~
best regard~
问题四:编程语言中,哪种语言最易学 对于广大编程初学者来说,存在着这样普遍的认识:学习程序设计选择编程语言
很重要,开口闭口就是VisualBasic、Visual C++、Delphi、Power Builder等一些现在比较流行的开发工具。经常看见有初学者问:我学C/C++,究竟是学
VisualC++好,还是学Borland C++ Builder好呢?或者就是要求在Visual Basic和Delphi之间作出选择。学习程序设计和学习程序设计语言究竟是怎么一个关系?初学者究竟应该如何取舍呢?就此我们打个简单的比方:学习程序设计就好比学习射击,而程序设计语言就对应射击中的气q、手q、步q等各种q械。学习射击必须要选择一种q械,不可能没有q还能学好射击的,也不可能同时学会使用所有的q械。但是,如果掌握一种q械的射击,再学别的也就触类旁通了。因为在熟悉一种q械的同时,也学习了射击技术本身。再学其他的,自然事半功倍。学习程序设计也是一样,必然要从学习一门程序设计语言开始入手。同时在学习的过程中
建议:学习程序设计不必苛求一定要从某一种语言入手,可以在Visual Basic、Delphi、Borland C++ Builder或者DOS下的Pascal、Turbo C(或Borland C)中间选择自己比较容易接受的一种进行学习。从中主要学习的是编程本身的思想,学习的是用程序设计的眼光来看待问题。或许,学习的效果不能马上看到,但是可以学到扎实的基本功,而这对于将来的进一步发展是有很大好处的。这些基本功包括:
一、强化逻辑分析和建立数学模型的能力
编程的目的是什么?是要解决现实中的问题。而现实中的问题是用自然语言描述的,目前的计算机对其无法理解。我们要做的就是必须用计算机能理解的方式将问题“告诉”计算机。也就需要我们对现实问题进行逻辑分析,建立合理的数学模型,然后以程序和数据的形式输入计算机,R、G、B三色份量来各表示一种颜色,对于颜色的处理被转化为对R、G、B三个整数的处理。我们只要改变这三个整数,就可以将其改变成另外一种颜色。对于其它的现实问题,我们也要像
这样使其可以被计
二、数据结构和算法知识
程序设计发展到现在,已经有了一套比较普遍、完整的数学模型(我们称之为
数据结构)和对应这些数学模型的处理方法(也就是算法)。目前的程序就是以
此为基础的。在程序员中间流传着一句经验之谈:“好的数据结构是程序的一
半。”其重要性可见一斑。作为一个程序员
三、丰富的实践经验
程序设计本身就是一门实践性很强的学科。一个只存在于纸上的程序如同没
有翅膀的鸟永远不能飞翔在现实的天空。任由代码写得再巧妙,风格再优美,也
只是一张纸上的一连串字符而已。就好比是一份作文练习,或许写得很好,但是
不交给老师去批阅,和一张白纸又有什么区别呢!最后,作为一个程序员还有一点小要求:那就是身体素质要好,能熬夜才行。
Top of Form 1
选其器与善其事――纵谈编程工具的选择选其器相同主题的文章
“工欲善其事,必先利其器”――《论语》。很多人在学习软件编程时,都希望
选择一款优秀的编程工具。到书店逛逛,可以看到各种琳琅满目的编程书籍,可
是你还没有想好选择学习什么编程语言,也就无所适从,不知道该买什么书看。
要想学好编程,必须认真了解各种语言的特点,找准自己的学习方向。那么你首
先必须明确你想要做什么,你所感兴趣的是什么?进一步说就是:你现在想要完
成哪一方面的程序设计,你的程序主要完成的功能是什么?由此在众多软件中,
选择出适合自己的开发工具。>>
问题五:现在学什么编程语言好 C语言玩玩就好,过了指针就难了,JAVA入门简单,后边框架太多,C++是王道,但学的人多了,想学的很出彩就难了。计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。如果按语种分,可以分为英文符号语言和汉语符号语言两类。(典型的如:易语言、C语言)电脑每做的一次动作,一个步骤,都是按照已经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的 ,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。目前通用的编程语言有两种形式:汇编语言和高级语言。简单点说就是两条路:一、C\C++\C#(ASPNET)二、JAVA(J2SE\J2EE\J2ME\JSP)走这两条路都必学的:数据结构、数据库(SQL或Oracle)选学:计算机应用基础、网络基础、硬件基础。C是学习高级语言的基础;C++主要用于编写大型软件核心代码和汇编一样,比较难学,不过学好了后,很有前途;C#主要用于编写一些系统软件,比如游戏引擎核心代码,编写比较简单,界面比较友好;ASPNET主要是用C#语言编写开发网站(B/S架构)。J2EE是用很广泛,主要偏向于企业应用软件和一些桌面系统(C/S架构),计算机平台;第二,J2ME,面向无限领域,主要用于开发手机一些软件,比如手机游戏。很有潜力的家伙,看看中国的手机用户就知道了;JSP主要也是开发网站。
问题六:学哪个编程语言应用最广泛?还有,,,哪种编程语言学起来比较容易些?? VB~VC~VF~C~C#~C++~JAVA~NET~这些都是编程 ASP~CGI~PHP~JSP这些是WEB编程。。 虽然都是编程,但编出来的程序可是不一样的。 目标是什么?开发?创业?还是去公司上班?还是业余爱好? 如果想业余编小程序,推荐VB~VC~容易上手。简单。也蛮强大。 如果想学好了去企业上班,推荐C++~~~~~~JAVA之类的大型项目开发。 如果想做网站,就学ASP~CGI~PHP~JSP,这4个就JSP最最最难,先学ASP。 编程语言很多,但是目的都是想写出好的程序,只要学精了一个就有钱赚,一上来不要要求太高 语言是用来交流沟通的 计算机语言也一样 多说多练 我推荐你学三种编程语言,因为推荐你学是有原因的。 第一:先学习好C语言,这个是学所有编程语言的基础。也是将来去考国家证书的必须要考的一门。 第二:学好java,因为java在目前来说,占领地位是排第一位的。而且工资待遇也不错。市场需求占有率高达50%以上。或者学习NET,因为NET出来还不算太久,但是就因为是微软出的东西,所以市场占有率也已经达到了48%了,况且NET比java要容易上手。两者之一,你可以选择一个。学java就往jsp工程师方向发展,学NET就往ASPNET方向发展吧。 第三:顺便学一门数据库的技术。因为开发的时候,难免会要和数据库打交道。懂总比不懂要好。一般就学SQL就行了。ORACLE一般只适应于大型公司
问题七:哪种编程语言最简单好学的 c/c++的指针初学者很不习惯。 Python 相对来说自由许多, 而且功能强大。 有google ,IDL 等大公司都在用它,而且可以养成很好的缩进习惯。
应用领域很广从web(google , douban) 到GUI/console程序(比如大3d软件BLEND3D),到网络游戏脚本,都可以用。
计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。
电脑每做的一次动作,一个步骤,都是按照以经用计算机语言编好的程序来执行的,程序是计算机要执行的指令的 ,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。
计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。
目前通用的编程语言有两种形式:汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件 *** 作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。它同样需要编程者将每一步具体的 *** 作用命令的形式写出来。汇编程序通常由三部分组成:指令、伪指令和宏指令。汇编程序的每一句指令只能对应实际 *** 作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但汇编语言的优点也是显而易见的,用汇编语言所能完成的 *** 作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体 *** 作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:
解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。
编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如Visual C++、Visual Foxpro、Delphi等。
[NextPage]学习编程,从何入手
如果您想学习编程,却又不知从何入手,那么您不妨看看下面的几种学习方案,可能会给您一些启示吧!
==============================================
方案一 Basic语言 & Visual Basic优点(1)Basic 简单易学,很容易上手。
(2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。
(3)众多的控件让编程变得象垒积木一样简单>>
问题八:哪种编程语言最实用?哪个最好学适合入门?哪个编程最有前景? 最实用,当属C++,所有程序员都要通过它来入门,学校里都是用他入门的。
最适合入门,个人认为还是Pascal语言,因为他格式严谨,且没有“指针”这东西有的人灵光一闪就明白,有的人……,只不过有点“后继无人”了,没几个学校在教;当然,C#也不错,不仅仅没指针,大部分情况下连创建对象之后的释放都省了;如果不是JAVA不太适合刚学软件开发的人,它也不错,毕竟它一直很火;另外,学校里都是用C++入门,然后学JAVA或者C#,由学生自己选。
最有前景当属JAVA、PHP和C#,现在是互联网的天下,还是应该学一学网络开发。
不过,语言只是入门,真正用的时候其实是用别人写好的对象包,即框架,有实力的人甚至需要自己写框架,不同开发语言下的框架可不是通用的哦。
现在,我想知道你是想自学软件开发吧?
先自学C++语法,再从JAVA、PHP、C#里选一个吧,网上有很多自学的材料的,找一找相应语言的学习路线图,一步一步来。
问题九:现在的编程语言有哪些 哪种最好学有用 初学建议学Python
高手也建议Python
想什么功能都能做,并只学一门语言,还是Python
其他
系统编程: C, 汇编
企业开发方向: Java, NET
游戏开发: C++, Lua/Python/Ruby
网站前端: HTML, javascript, CSS
网站后端: PHP, Perl, Python, Ruby, Java, C#
并行并发: erlang, F#, scala
图形界面: Python, Tk, VB, C#, C++
要高效率编写程序: Lisp, Ruby, Python
要编写的程序效率高: C/C++, 汇编
问题十:未来3年程序员学哪种编程语言最好? 未来的时代是AIR的时代。也就是AI人工智能,物联网,AR/VR。我只提编程方面的趋势
其中人工智能的底层开发方面大多和C,C++关系度比较高。如果是应用层,也还是传统的网络开发技术,比如PHP,RubyOnRails这些
物联网的话用的主要是现在常用的技术,H5/CSS3,Nodejs(微软推荐用于物联网的技术)等等。还有就是智能硬件的开发,需要你懂C或者C++,汇编入门。
AR/VR C#是现在主流#3D引擎Unity的标准开发语言,值得一学。但是怎么说,你如果用在移动端的话 IOS里的OC/swift你要选一个,andriod的话要懂java
说了一堆你肯定有点懵逼,我这么说,上面的我都会。。。但我的定位是一个IT Manager。
作为一个初学者或者想要定某个开发方向的,你前端后端选一个,行业趋势AIR中选一个。
如果你想进阶一个大神,学的越多,能力越强,底蕴越多。当到了那一天,我可以再给你详细列很大一张清单。(现在列太早了。列出来太多你可能会怕太多学不了)
保持一个方向不停前进,最后你会发现,社会需要你是一个全能的人。但你不用从全能做起。
1、Kaa
Kaa是一个灵活易用,功能齐全的中间件平台,用于建立端到端的IoT解决方案,连接应用和智能设备。它能够在连接的智能设备上执行有效通信、处理和互 *** 作。
它主要的特点是灵活的微服务,其他特点有:促进跨设备的互 *** 作性;执行实时设备控制,远程设备配置和结构;执行实时设备监控;管理无限数量的连接设备;收集和分析传感器数据等。
2、Zetta
Zetta基于Nodejs,是一个API的物联网平台,是为设备制作>
它的特点有:可以在云,PC或其他适合的开发板上运行;简单的界面和必要的编程以控制传感器,执行器和控制器;允许组装智能手机应用,设备应用和云应用;有利于数据密集型和实时应用开发等。
3、Arino(IDE)
Arino是一个简单好用的IoT平台,它通过一系列可以提供给交互式电子设备的硬件规格进行 *** 作。Arino还提供了完整的IoT程序包,包含许多支持行业级IoT应用程序开发项目的优秀示例和库。
nodejs生来就是为了前端项目服务的,提供了一个平台,可以快速开发网页项目:如下摘抄的解释:基于:NodeJS 提供了一个﹝让熟悉 JavaScript 的人可以快速上手并可进行后台系统开发﹞的环境/平台,这样的设定。
Short answer: 是的
Long answer:
对于现在的前端来说,尤其是多以 JavaScript 为主做 web app 而不是传统的以 HTML+CSS 为主的网站页面的前端来说,本身业务需求就需要对 JavaScript 有比较深入的理解和认识。
基于此,其对于 NodeJS 的基本概念应该是已经有一定的了解了的。
其次,作为前端自动化(如项目初始化、“编译”、测试等)的要求,需要一定程度上了解 Node,尤其是那些可编程式的工具,如Yeoman、Bower、GruntJS、GulpJS、Protractor等。
还有,作为 full stack engineering 的一种,NodeJS 只要求JS,所以使用 Node 可以让专业的前端(除了前端专业性的基本功,至少还要了解算法和数据结构等程序设计基础的),能够快速转型成全栈开发。
同时,对于以 JS 为主要开发语言并且有比较深入了解的前端来说,学习 NodeJS 难度并不高,event-driven 应该是本就熟悉的,stream 也类似,其它如闭包、Promise、模块化等更是如此;而关于网络、文件系统、进程等的概念理解和相关 *** 作,对于计算机、电子、网络等相关专业出身的人来说,应该是已经有基本认识的,有此类背景的前端上手也会很快,而没有此类背景的,也建议去学习了解一下,毕竟属于计算机学科基础知识。
综上所述,不管是说为了前端自动化,还是前端开发人员为主的全栈式开发,又或者是扩展前端人员知识广度,都是应该有一定 NodeJS 基础的。做网页就得会javascript
这个得会吧, 如果这个不会, 那连网页也做不完整
只要会这个就可以了, 后台也可以用javascript搭后台, 那就是nodejs
这个是最简单的拉, 并且是必学的, 学习成本也低, 看一些书, 知道脚本是干什么的就行了,
等你写项目了, 你会发现, js全是对象, 一切皆对象, 很神奇的, 越用越简单
希望可以帮到你!
影响物联网IoT实施的最主要因素之一是人才缺口:现有市场供应无法跟上拥有物联网技术的工程师的需求。根据Canonical的研究,大约68%的公司正在努力为他们的物联网项目雇佣开发人员。但技能短缺的另一面是,职业前景对于具有物联网技术的专业人员来说是非常光明的。在这里,我们重点关注物联网中最常用的编程语言,即Java,C,C ++,Python,JavaScript和Go,然后分析专门从事这些语言的专业人员可以获得多少收入。我们还会考虑资历和地点等因素。
作为一个技术强国,美国在IT 薪资标准方面常常成为世界其他国家的基准。以下是根据Payscale的数据对美国顶级物联网IoT编程语言以及相应的开发者薪资数据的简要统计。
美国最热门的物联网编程语言的平均工资统计
平均而言,Java和C开发人员可以获得比物联网中使用其他语言的开发人员更高的薪水,尽管高级Go编程人员的薪水潜力最高、尽管初级和中级Go开发人员与其他同行相比低调,但Skilled Go的开发人员却是业内薪酬最高的开发人员之一。
从Java开始,我们来看看物联网IoT中最流行的编程语言的平均薪水。
Java:物联网技术最流行的编程语言
Java有多个应用领域,从后端编程到Android的移动应用。根据 Eclipse基金会执行的2017年物联网开发者调查,Java首次提供了用于物联网开发的编程语言列表,专门用于网关和云。
使用Java进行物联网开发的一个主要好处是便携性。Java没有任何硬件限制,这意味着您可以在计算机上编写和调试Java代码,并将其部署到几乎任何运行Java虚拟机的设备上。出于这个原因,许多公司选择聘请Java开发人员进行物联网项目。
根据Payscale的数据,美国Java开发者的平均薪水约为88万美元。瑞士的Java开发者的平均收入较高,每年约为96,000美元。与此同时,英国和以色列的Java开发人员的平均薪水则明显较低,分别为4万5千美元和33万美元。
Java开发人员的平均工资
但是,Java开发人员的平均工资可能不具代表性,因为根据相关技术人员的经验和资历,个人薪酬差别很大。例如,从Java初级到高级Java开发人员的薪酬跳跃在美国是66万美元到97万美元,在英国是从41,000美元到61,000美元。
Java在美国和英国的平均初级,中级和高级Java开发人员工资
我们对美国Java开发者工资的研究表明,不同州的平均薪水可能远高于全国平均水平。例如,加利福尼亚州的开发人员对美国开发人员的平均薪水最高(133万美元)。这一事实在很大程度上是该州IT总体高技能需求的一个功能。
C:嵌入式设备的关键编程语言
C编程语言接下来成为物联网IoT堆栈最喜欢的语言。然而,根据Eclipse基金会的说法,它被认为是受限设备开发的领先技术。
该编程语言提供对低级硬件API的直接访问。由于其与机器语言的相似性,C非常快速且灵活,使其成为处理能力有限的物联网系统的完美选择。
与Java类似,C开发人员的薪酬在世界各地差异很大。在美国,C开发人员每年可赚取约10万美元,而在瑞士,C开发人员的平均年薪为92,000美元。在我们分析的国家中,C专家的最低工资在英国。据Payscale称,英国年平均C开发人员薪水仅略高于4万美元。
C开发人员的平均工资。来源:Payscale
C级初级和高级开发人员的薪酬差异也很大。高级C开发人员的收入几乎是美国和英国入门级员工的两倍。
C在美国和英国的初级,中级和高级C开发人员的平均工资
C ++:Linux的第一语言
与其前身C一样,C ++已广泛用于嵌入式系统开发。但是,C ++的主要优势在于处理能力,在任务更加复杂时使其成为C的有用替代方案。
C ++最适合编写硬件特定的代码。它可与Linux,第一大物联网技术 *** 作系统配合使用。但是,与Java相比,它具有有限的可移植性。
与C开发人员相比,C ++工程师的薪水更低。我们的研究发现,C ++开发人员在以色列和丹麦的预计收入约为82-86,000美元,而在美国,这个数字仅为71,000美元。
平均C ++开发人员工资统计。来源:Payscale
然而,尽管美国的C ++开发人员平均费用较低,但经验丰富的专家在职业生涯后期可以达到六位数。
美国和英国的初级,中级和高级C ++开发人员的平均工资。
Python:面向数据的物联网系统的解决方案
作为最受欢迎的网络编程语言之一,以及科学计算的前沿技术,Python在物联网开发中也获得了巨大的推动力。 对于数据密集型应用程序,Python是一个不错的选择,特别是在管理和组织复杂数据时。
此外,由于语言的清晰语法,用Python编写的源代码非常紧凑且非常易读。这对于计算能力和内存有限的小型设备来说效果特别好,尽管速度不如C / C ++快。
美国的平均Python开发人员薪水约在71k美元左右,而拥有类似技能的开发人员则分别在以色列和瑞士分别可以获得约68-67k的薪水。
Python开发人员的平均工资。来源:Payscale
与其他一样,初级和高级Python开发人员之间的薪酬差距很大。
美国和英国的平均初级,中级和高级Python开发人员薪水
仔细观察数据显示,尽管全国平均水平相对较低,但在美国,Python开发人员的薪水可能会非常高。由于开发商需求迫切,供应量有限,某些州的薪酬可能高达14万美元。传统上,加利福尼亚州是为技术专家提供最高工资的州之一。当地的Python开发人员平均赚取了大约135万美元。
JavaScript:事件驱动物联网应用的最佳解决方案
根据年度StackOverflow开发者调查显示,JavaScript是过去五年来最流行的编程语言之一,是现代Web开发中的核心技术。
在许多其他应用领域中,JavaScript是物联网编程语言中最常用的构建事件驱动系统。它可以管理连接设备的大型网络,并且在需要处理多个任务而无需等待其他任务完成时可以胜任。JavaScript对IoT的主要优势之一是非常节约资源。
随着IBM和三星等主要公司在他们的物联网项目中积极采用JavaScript(即Nodejs),对具有物联网(IoT)体验的JavaScript开发人员的需求仍然很高。这意味着能够全面的提高薪水。
瑞士的JavaScript开发者平均可以赚取约96k美元。令人惊讶的是,美国JavaScript专家的平均薪水要低得多,开发者可以得到69万美元。
全球JavaScript开发人员的平均工资。来源:Payscale
不同州之间的薪资数据差别很大:例如,研究发现,康涅狄格州,马萨诸塞州,加利福尼亚州和纽约州是JavaScript开发者收入最高的美国州,平均薪资介于10万美元至14万美元之间。
同样,根据经验,JavaScript开发人员的工资差别很大:美国的专业JavaScript开发人员平均可赚取10万美元,英国则可赚取6万美元左右。
美国和英国的平均初级,中级和高级JavaScript开发人员工资
Go:坚固的技术堆栈为复杂的物联网网络提供动力
Go是一款开源编程语言,由Google创建。尽管它不能像语言那样拥有同样广泛的用途,但我们之前专注于这一点,它是在您的物联网系统内建立通信层的强大技术。
Go语言关于物联网的主要优势是并发性和同时运行多个进程(数据输入和输出)的能力。这使得构建由多个传感器和设备组成的复杂IoT网络变得更加容易。
虽然它已被评为美国最高收入技术(根据最新的StackOverflow开发者调查),但美国的Go平均薪水相当平稳 - 约为73,000美元,而英国则为43,000美元。
根据最近的调查显示,由于全球Go开发者工资数据不足,我们将重点关注美国和英国这些Go开发者人数最多的国家的薪水。
在美国和英国的平均Go开发者工资。来源:Payscale
高技能的Go开发者在美国可以获得高达14万美元的收入 - 几乎是初级Go程序员的三倍,是英国高级Go开发者的两倍。
在美国和英国的平均初级,中级和高级Go开发人员工资
结论
正如我们所看到的,物联网中最热门编程语言的开发人员的工资差别很大,并且取决于许多关键方面。为了理解这些信息,重要的是要看到更大的空间,并能够识别现有的市场趋势。
以上由物联传媒提供,如有侵权联系删除
谢邀。
个人觉得
nodejs
很好,前景也是很不错的。无论是市场占有率还是背书都经得起考验,性能更是没话说,如果你非要对比c或者汇编啥的,当我没说。由于天生异步,对io的消耗几乎没有,性能有了一定保证。
而js的派生,那对前端开发者来说,简直不能再亲切。
随着前后端分离的推广,
nodejs
也在慢慢的侵蚀老一辈的地盘。这种或多或少对前端开发者带来的“后端”体验,是无形而有利的。现在开发个项目,脚手架走起,都得是node环境。node的跨平台性也很好,windows,linux,mac三端跑起来基本没太大差距,部分插件会有差别,但这不是node带来的。
因为上面这些原因,node非常非常适合创业型公司或小公司(不代表不适合大厂,大厂是因为技术已经沉淀稳定,更换成本太高),是采用前后端分离方案就不用考虑那种。
node的优点就不说了,无外乎:非阻塞I/O、事件驱动和单线程(主线程)啥的。
缺点嘛,最坑的就是单线程挂了,就全部挂了(所以,恩,测试很重要,架构很重要)
其他的,爬虫啊,脚本啊,外挂啊,这些东西都能做,不过就是去搞的人多不多的问题。
一 NodeJS的特点我们先来看看NodeJS官网上的介绍:
Nodejs is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications nodejs uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices
其特点为:
1 它是一个Javascript运行环境
2 依赖于Chrome V8引擎进行代码解释
3 事件驱动
4 非阻塞I/O
5 轻量、可伸缩,适于实时数据交互应用
6 单进程,单线程
二 NodeJS带来的对系统瓶颈的解决方案
它的出现确实能为我们解决现实当中系统瓶颈提供了新的思路和方案,下面我们看看它能解决什么问题。
1 并发连接
举个例子,想象一个场景,我们在银行排队办理业务,我们看看下面两个模型。
(1)系统线程模型:
这种模型的问题显而易见,服务端只有一个线程,并发请求(用户)到达只能处理一个,其余的要先等待,这就是阻塞,正在享受服务的请求阻塞后面的请求了。
(2)多线程、线程池模型:
这个模型已经比上一个有所进步,它调节服务端线程的数量来提高对并发请求的接收和响应,但并发量高的时候,请求仍然需要等待,它有个更严重的问题。到代码层面上来讲,我们看看客户端请求与服务端通讯的过程:
服务端与客户端每建立一个连接,都要为这个连接分配一套配套的资源,主要体现为系统内存资源,以PHP为例,维护一个连接可能需要20M的内存。这就是为什么一般并发量一大,就需要多开服务器。
那么NodeJS是怎么解决这个问题的呢?我们来看另外一个模型,想象一下我们在快餐店点餐吃饭的场景。
(3)异步、事件驱动模型
我们同样是要发起请求,等待服务器端响应;但是与银行例子不同的是,这次我们点完餐后拿到了一个号码,拿到号码,我们往往会在位置上等待,而在我们后面的请求会继续得到处理,同样是拿了一个号码然后到一旁等待,接待员能一直进行处理。
等到饭菜做号了,会喊号码,我们拿到了自己的饭菜,进行后续的处理(吃饭)。这个喊号码的动作在NodeJS中叫做回调(Callback),能在事件(烧菜,I/O)处理完成后继续执行后面的逻辑(吃饭),这体现了NodeJS的显著特点,异步机制、事件驱动整个过程没有阻塞新用户的连接(点餐),也不需要维护已经点餐的用户与厨师的连接。
基于这样的机制,理论上陆续有用户请求连接,NodeJS都可以进行响应,因此NodeJS能支持比Java、PHP程序更高的并发量虽然维护事件队列也需要成本,再由于NodeJS是单线程,事件队列越长,得到响应的时间就越长,并发量上去还是会力不从心。
总结一下NodeJS是怎么解决并发连接这个问题的:更改连接到服务器的方式,每个连接发射(emit)一个在NodeJS引擎进程中运行的事件(Event),放进事件队列当中,而不是为每个连接生成一个新的OS线程(并为其分配一些配套内存)。
2 I/O阻塞
NodeJS解决的另外一个问题是I/O阻塞,看看这样的业务场景:需要从多个数据源拉取数据,然后进行处理。
(1)串行获取数据,这是我们一般的解决方案,以PHP为例
假如获取profile和timeline *** 作各需要1S,那么串行获取就需要2S。
(2)NodeJS非阻塞I/O,发射/监听事件来控制执行过程
NodeJS遇到I/O事件会创建一个线程去执行,然后主线程会继续往下执行的,因此,拿profile的动作触发一个I/O事件,马上就会执行拿timeline的动作,两个动作并行执行,假如各需要1S,那么总的时间也就是1S。它们的I/O *** 作执行完成后,发射一个事件,profile和timeline,事件代理接收后继续往下执行后面的逻辑,这就是NodeJS非阻塞I/O的特点。
总结一下:Java、PHP也有办法实现并行请求(子线程),但NodeJS通过回调函数(Callback)和异步机制会做得很自然。
三 NodeJS的优缺点
优点:1 高并发(最重要的优点)
2 适合I/O密集型应用
缺点:1 不适合CPU密集型应用;CPU密集型应用给Node带来的挑战主要是:由于JavaScript单线程的原因,如果有长时间运行的计算(比如大循环),将会导致CPU时间片不能释放,使得后续I/O无法发起;
解决方案:分解大型运算任务为多个小任务,使得运算能够适时释放,不阻塞I/O调用的发起;
2 只支持单核CPU,不能充分利用CPU
3 可靠性低,一旦代码某个环节崩溃,整个系统都崩溃
原因:单进程,单线程
解决方案:(1)Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;
(2)开多个进程监听同一个端口,使用cluster模块;
4 开源组件库质量参差不齐,更新快,向下不兼容
5 Debug不方便,错误没有stack trace
四 适合NodeJS的场景
1 RESTful API
这是NodeJS最理想的应用场景,可以处理数万条连接,本身没有太多的逻辑,只需要请求API,组织数据进行返回即可。它本质上只是从某个数据库中查找一些值并将它们组成一个响应。由于响应是少量文本,入站请求也是少量的文本,因此流量不高,一台机器甚至也可以处理最繁忙的公司的API需求。
2 统一Web应用的UI层
目前MVC的架构,在某种意义上来说,Web开发有两个UI层,一个是在浏览器里面我们最终看到的,另一个在server端,负责生成和拼接页面。
不讨论这种架构是好是坏,但是有另外一种实践,面向服务的架构,更好的做前后端的依赖分离。如果所有的关键业务逻辑都封装成REST调用,就意味着在上层只需要考虑如何用这些REST接口构建具体的应用。那些后端程序员们根本不 *** 心具体数据是如何从一个页面传递到另一个页面的,他们也不用管用户数据更新是通过Ajax异步获取的还是通过刷新页面。
3 大量Ajax请求的应用
例如个性化应用,每个用户看到的页面都不一样,缓存失效,需要在页面加载的时候发起Ajax请求,NodeJS能响应大量的并发请求。总而言之,NodeJS适合运用在高并发、I/O密集、少量业务逻辑的场景。
Python的优缺点
优点
简单————Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
易学————就如同你即将看到的一样,Python极其容易上手。前面已经提到了,Python有极其简单的语法。
免费、开源————Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一——它是由一群希望看到一个更加优秀的Python的人创造并经常改进着的。
高层语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE甚至还有PocketPC、Symbian以及Google基于linux开发的Android平台!
解释性————这一点需要一些解释。一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码 运行 程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用Python更加简单。由于你只需要把你的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。
面向对象————Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。
可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
可嵌入性————你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。
丰富的库————Python标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的 *** 作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。
概括————Python确实是一种十分精彩又强大的语言。它合理地结合了高性能与使得编写程序简单有趣的特色。
规范的代码————Python采用强制缩进的方式使得代码具有极佳的可读性。
缺点
强制缩进
这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误,而这是用肉眼无法分别的。
单行语句和命令行输出问题
很多时候不能将程序连写成一行,如import sys;for i in syspath:print i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个py文件。(对很多用户而言这也不算是限制)
NO1 运行速度,有速度要求的话,用C++改写关键部分吧。
NO2 国内市场较小(国内以python来做主要开发的,目前只有一些 web20公司)。但时间推移,目前很多国内软件公司,尤其是游戏公司,也开始规模使用他。
No3 中文资料匮乏(好的python中文资料屈指可数)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。
NO4 构架选择太多(没有像C#这样的官方net构架,也没有像ruby由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)