PHP,JAVA,嵌入式,C,C++,C#,.NET,安卓,IOS等编程语言的区别
PHP是服务器脚本语言,做网站用的,意思是说一个请求发给网站,用这个语言可以进行解析。
java分三个反向,J2EE,J2SE,J2ME,第一个也是编写网页的,是企业的,第二个是标准的,可以做窗口,通信等,第三个是编写手机程序。
嵌入式顾名思义,不是代表一种语言,而是说在整个系统中指控制一部分,当然现在很多人说嵌入式语言,那只是用那个语言编写嵌入式程序,并不是说那个程序只能编写嵌入式程序。
C是最早的变向过程语言,也是高级语言,用来编写驱动程序的多。
C++是变向对象的高级语言,是C的升级版,可兼容C
C#是当年java发展很牛的时候,一个复制版,是微软抄袭SUN公司的,但是目前C#发展已经很不错了,毕竟微软商业盈利,而SUN不多说,我支持sun,当然现在是oracle。
net是说一个平台,微软的这个平台有公共运行时,这个平台上面有很多语言,比如VB,C#,C++等。
安卓是说的一个系统,由Google出的,安卓的应用层是用java开发的。
IOS是苹果研发的操作系统,用objective-c语言编写,它也是C语言衍生过来的,同样的该语言也是面向对象的。
这里多说一句,面向对象是将一切看为对象,都是有状态的,而面向过程,只是写了一堆函数处理一些事情,被处理的数据与函数没有任何直接关系,不保留状态。
不知道你具体要做什么,我把即时通讯的原理跟你说一下吧(P2P的)。
首先,用户A输入自己的用户名和密码登录即时通讯服务器,服务器通过读取用户数据库来验证用户身份,如果用户名、密码都正确,就登记用户A的IP地 址、IM客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户A在 IM系统中的状态为在线。
其次,根据用户A存储在IM服务器上的好友列表,服务器将用户A在线的相关信息发送到也同时在线的即时通讯好友的PC机,这些信息包括在线状态、IP地址、 IM客户端使用的TCP端口号等,即时通讯好友PC机上的即时通讯软件收到此信息后将在PC桌面上弹出一个小窗口予以提示。
第三步,即时通讯服务器把用户A存储在服务器上的好友列表及相关信息回送到他的PC机,这些信息包括也在线状态、IP地址、IM客户端使用的TCP端口号等信息,用户A的PC机上的IM客户端收到后将显示这些好友列表及其在线状态。
接下来,如果用户A想与他的在线好友用户B聊天,他将直接通过服务器发送过来的用户B的IP地址、TCP端口号等信息,直接向用户B的PC机发出聊天 信息,用户B的IM客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户A的PC机,这样双方的即时文字消息就不通过 IM服务器中转,而是通过网络进行点对点的直接通讯,这称为对等通讯方式。
目前市场需求都大,前途的话看自己的学习能力和技术熟练程度了。
PHP老手待遇好,新手待遇却一般:
目前大部分中小型网站都是PHP的,甚至很多庞大的电商系统也使用PHP实现,PHP的开源性使得PHP二次开发变得尤为流行。然而PHP开发却比较注重“量”了,目前许多公司使用PHP的目的就是为了省时省力,用最小的突入产生最大的产出。然而,只有PHP老手的待遇好,新手由于缺乏经验,很难有产出,因此待遇往往比较偏差。
Android现在待遇略低于php。
曾几何时,ios开发非常的火爆,开发人才供不应求,薪资待遇开的也非常的高,有一些刚刚具备1年工作经验的新手,都能拿到万元高薪,而同等资历的java程序员一般在5、6千元左右。由此,各大培训机构赶紧想法设法开设ios培训班,这几年过去了,Ios的开发热没有下降,而人才却比较饱和了,随着乔布斯的离世,曾经风风光光的苹果品牌也有所下降,而相反以三星手机为首的android系统却大放异彩,放眼以后,android的市场需求和空间要更广阔。
很多朋友都对学习路线问题感到迷茫,特别是还在上学的朋友们。在这里就详细的为大家介绍一下。
1Java基础
很多朋友一上手就开始学习Android,似乎太着急了一些。Android应用程序开发是以Java语言为基础的,所以没有扎实的Java基础知识,只是机械的照抄别人的代码,是没有任何意义的。那么Java学到什么程度才算是过关呢?我个人认为至少要掌握以下两个方面的内容:
a) Java基础语法:具体的知识点列表可以在这里下载:《Java知识点列表》V10。这部分内容没有讨价还价的余地,必须烂熟于胸。至于具体的学习方法,可以看书或者是看视频,但是关键是要多加练习,无论是书上的练习还是视频里面的练习,都需要仔仔细细的完成;
b)设计模式:由于在Android系统的框架层当中,使用了大量的设计模式,如果没有这个方面的知识,对于Android的理解就会大打折扣。设计模式的种类非常之多,一个一个的全部掌握,是不现实的,必须首先掌握面向对象的基础设计原则,有了这些基础原则的支持,就可以举一反三。这部分内容可以在《Effective Java》和《AgileSoftwareDevelopment:Principles,PatternsandPractices》这两本书中找到。
2Linux基础知识
大家都知道,Android系统的基础是Linux操作系统。在开发过程当中,我们也需要使用到一些Linux命令。所以说一些Linux的基础知识是必须的(话说现在的程序员,不懂Linux都不好意思跟人家打招呼),推荐大家看看《鸟哥的私房菜》这本书,写的相当不错;
3数据库基础知识
这个比较简单,就是一个增删改查的数据库操作,可以看一下这本书:《SQL编程练习与解答》
4网络协议
至少需要学习两种基础的协议,HTTP协议与Socket协议;
5Android基础知识
有了以上的铺垫,再来看Android,是不是觉得轻松了很多呢?至于基础知识的学习顺序,最好的方法就是按照Android SDK帮助文档当中的Dev Guide里面的顺序,我的《Android视频教程》也基本上是按照这个顺序录制的;
6服务器端开发知识
由于很多Android应用程序都需要服务器端的支持,所以掌握一些服务器端开发知识还是非常有必要的。至于选择哪一种服务器端知识进行学习,就比较麻烦了,因为技术的种类实在是太多了:
a)Java EE:就是上面邮件当中所提到的SSH—Struts+Spring+Hibernate。这种技术的优点的功能完整、强大,已经使用了很多年,而且既然大家已经非常熟悉Java了,那么学习SSH看起来也顺理成章。但是使用这种技术开发服务器端程序,非常麻烦。即使是一些简单的功能,也可能需要大量的代码和配置文件来实现;
b)PHP:简单易学,开发快速。但是我们需要多学一种语言,是否得不偿失,就要大家自己判断了;
c)NET:这项技术的特点和Java EE差不多,但是要想掌握NET,则需要掌握c#,也是个麻烦的事情;
d)ruby on rails:这是我个人最喜欢的服务器端技术,简洁,优雅,寥寥几行代码,就可以实现很复杂的功能,但是这需要Ruby语言知识作为基础;
至于选择哪一种技术,就看大家自己的判断了。
梦想:要成为一个专业的Android开发者,以上的这些知识都必不可少。看起来好像很多,多的可怕。所以还是那句话--“耐心,耐心很重要”。
学习一门专业要很长时间啊,耐心很重要,很多朋友也来问我C4D,能感觉到大家都想急着学会,其实要有长时间的积累才能有长远进步,Android开发,最近公司要做程序,也涉及到,如果UI设计师的我学会了Android,是不是可以独立做开发了。
0条评论