当前移动开发领域主流的三大平台:
[1].iOS:开发语言为Objective-C/Swift,开发工具为Xcode,背后巨头为Apple公司。
[2].Android:开发语言为Java/kotlin,开发工具为eclipse/Android Studio,背后巨头为Google公司。
[3].Windows Phone(2017微软宣布彻底放弃) :首选开发语言为C#,开发工具为Visual Studio,背后巨头为Microsoft公司。
——————————————————————————————————————————————————————————————————
经过这几年的发展,移动开发领域又有了一些变化,正所谓唯一不变的就是变。
iOS开发出了新的编程语言swift,它比原先的Objective-C更加容易掌握,语法上类似于JavaScript。
Android开发由于使用了Java语言,使得很多原先熟悉Java的程序员很容易转到Android开发上面来。为此Oracle还向Google提起了诉讼,认为Google使用了Oracle的Java是侵权行为。未来Google是否会使用新的编程语言(比如:Go)来取代Java的位置呢?让我们共同期待。但是值得一提的是,Google在虚拟机层次上并没有使用jvm,而是自行实现了一套虚拟机dalvik。
Windows Phone的市场份额实在不容乐观,据说Android+iOS=96%以上的市场份额,所以Windows Phone暂时还没有像Android和iOS那样风靡全球。
最后提一下,最近在各大社区经常看到移动跨平台解决方案Xamarin的广告,其基本概念就是利用C#一门语言就可以开发Android、iOS、Windows Phone(本来就支持)等移动app,听起来很有吸引力,但是毕竟不是原生语言开发,是否成熟是个问题。而且还是收费的,在国内环境下很难有大批的开发者会使用这项技术。
——————————————————————————————————————————————————————————————————
google和jetbrains合作在android studio3.0中支持了kotlin,并且承诺要将kotlin打造成为android开发第一编程语言,而google自己的Go目标则是取代C。iOS开发Swift份额不断上升,并且增加了一些有趣的新特性,取代objective-C只是时间问题。Windows Phone微软已经宣布放弃了,Xamarin用的人也不多,反而Facebook的React Native成为更多人的选择。此外微信开发也不容忽视,2017年1月正式推出的微信小程序当前非常火热,和公众号开发一样成为从业者必备的技能。
4、应用开发
c++(vc++、qt)、java(javaee)、c#(asp.net/wpf/uwp)等等是目前就业人员最多的技术领域。 5、前端开发 html、css、javascript、jquery、bootstrap、extjs、vue、angular、react...,还有一堆库、框架等你去尝试。在这个强调用户体验的互联网时代,前端开发显得尤为重要。 6、数据库 oracle、sqlserver、mysql、nosql(mongodb、redis)是目前数据库领域的主流。当前流行的主流数据库:1)Oracle 2)SQL Server 3)MySQL 4)DB2 5)SQLite
[1].Oracle由Oracle公司开发,是当前的大型数据库管理系统,公认为当前数据库领域第一王牌。
[2].SQL Server 由Microsoft公司开发,成为当前使用最广泛的数据库管理系统,适合于大、中、小型项目的数据库管理系统。版本从2000、2005到2008再到2012,完全适合各类层次的用户和企业使用。由于其秉持了微软一贯的操作方便、界面友好等特点,使得其得到了大多数企业的肯定。尤其适合作为Windows平台的项目的系统数据库。
[3].MySQL 原来由SUN公司(发明了Java)以10亿美元收购,后Oracle公司以74亿美元收购SUN,自然投入了Oracle阵营。它最大的特点就是免费开源,但是被SUN收购后,变为了商业化数据库。但是其性能不是很好,而且稳定性不够,适合小型项目,尤其适合作为php的网站数据库管理系统。
[4].DB2由IBM公司开发,但是其受操作系统的制约,只能用于AIX操作系统,因此使用面不如上面3个数据库。
[5].其他还有SQLite(基于C语言开发的文件型数据库,用于手机等嵌入式开发)、VFP(Visual Fox Pro)、Access(Office套件)等。
7、系统集成 这个领域会比较杂(运维、硬件、网络、虚拟化、服务器、存储),要熟悉各种公司的产品以及开源工具,具备二次开发的能力更好。
8、云计算、大数据、人工智能 目前最热门的方向,机器学习、深度学习都属于大数据领域的范畴,知识的广度和深度要求都比较高。 总结 [1] 像嵌入式跟大数据比较适合硕士以上学历从事,其它6个方向本科都可以(只要学习能力强,学历不是问题,这里只是做个大概的划分)。 [2] 嵌入式开发涉及到硬件、电路等相对专业的知识,有一定门槛。非计算机或电子专业的想从事这个方向的工作,需要去额外的学习很多底层的知识,而且这部分知识难度稍高,需要付出很大的精力才能胜任。 [3] 大数据(机器学习、深度学习)方向如果搞纯应用不用太高学历,但是如果要进阶的话则适合搞学术的人从事,因为机器学习等都涉及到大量的数学知识,难度较大。 PS:本人从业多年,基本涉及到的也就是3、4、5、6这4个方向的开发,而这4个也是目前市场上最主流的技术方向。