想做服务器端开发需要学什么好
服务器所用到的知识:
TCP/UDP,最基本的
并发——你可以选择使用select、poll,或者是多线程、多进程
如果你使用多线程,那么就必须使用同步技术——信号量、互斥体、条件变量的一种或几种,并且对于多线程技术,你还需要考虑使用进行线程分离与合并,
如果你使用了多进程,那么同步技术就不是你需要考虑的了,你需要考虑的是进程相关的问题了,你是使用fork还是vfork,你该如何处理客户端的请求,如何处理客户端断开连接后保证能够处理完数据并且没有僵尸进程产生,你还需要考虑高并发的问题
你发送接受数据的时候,采用何种方式,是阻塞的还是非阻塞的,还有连接超时、重传等问题
你是选择TCP还是UDP,如果选择UDP你可得忙了,需要你自己去进行重传验证,模拟TCP的三次握手,保证数据不会丢失,保证数据的有序性
在目前,随着移动互联网科技不断的发展和进步,如今各种大型网站和海量的Web应用都需要到php开发,从而导致越来越多的求职人员及高校毕业生的关注,随之形成的PHP培训机构也日益增多,引导了PHP市场的火爆发展趋势。PHP也算是一门编程语言,但要和JAVA、VC++相比,那就简单多了。不过PHP应用极广,现在的大型网站,海量的WEB应用基本上都是PHP开发的。因此北大青鸟认为PHP是非常适合新手入门学习的编程语言。
1、HTML+CSS+JS
HTML:这是做WEB开发必须要接触一门语言,现在这个语言基础对于学习PHP不可或缺,我们在网页上点击右键查看源码的时候页面上显示的就是HTML语言。
Div+Css:有了HTML对于网站来说只是有了一个骨架,我们还要配置各种颜色,各种布局,这个时候我们就需要Div+Css来发挥这些作用。
Java:有了页面也有了布局,这个时候我们就需要添加很多页面的效果,比如横幅的滚动,这些是最常见不过的了,这些效果就是JS来实现的,我们也可以用JS第三方的库,比如JQ、Dojo等。
2、PHP调用语言的学习
前端页面好了,这个时候我们就需要调用数据,这个时候就用到PHP语言了,PHP的作用是把数据库中的数据经过PHP的处理展示在前端上。
3、学习数据库
PHP的数据来源是哪里当然是数据库,数据库MySql,这个在PHP的手册中有MySql的一些扩展函数,MySql最原始的的Sql语句,我们至少要学会Create、Delete和Update。
4、服务器的学习
按照上面的流程学号后基本可以做一个小的简单应用程序出来。如果你想进一步的提升自己的能力,那服务器是必须的了,服务器我们只需要学习Linux的就可以,Linux可以关注Redhat、Centos、Ubuntu。
这个问题有些笼统,一个完整的app有简单有复杂,不同的app应用功能的差异也导致不同的技术实现或者算法模型。大体来说,一个app从设计到最终实现需要懂得以下几个必要方面:
1、前期需求规划与信息、交互设计——需要制定出一个完整的需求文档,功能文档,流程图,时序图。
2、交互设计、UI设计——设计出基本且完善的原型图和app基础的交互设计效果,之后再根据这些设计出完整的UI界面并学会切图,一些需要做自适应的素材需要做点9patch。 这里还需要懂得px,pt和dp之间的换算,屏幕密度的换算和相互之间的系数,以便app能完美适应不同分辨率设备。其中交互设计需要懂得很多人机操作的技巧经验,掌握Axure等交互工具的使用,UI设计需要掌握Photoshop和Illustrator等操作。
3、使用ADT之类的开发环境进行app开发,最基本的也得掌握java语言,熟悉android环境和机制,这里面涉及面广,请根据项目自行学习相关知识。
4、如果不是单机版的app,需要用到服务器,那还得掌握WebService相关知识和开发语言,常用的有ASPNet,PHP,JSP等。
5、熟悉并能开发数据库。
6、某些功能需要做算法,这还需要一定得专业知识,尤其是数学基础。
7、熟悉API接口开发,这里包括自行开发API的能力以及调用第三方API的经验。
8、熟悉TCP/IP,socket等网络协议和相关知识。
9、熟练掌握App发布的流程,真机调试技巧,证书,打包,上架。
App开发其实不一定适合一个人搞,太费劲,除非是一个单机版的小应用,或者利用现成的api开发简单的第三方应用,否则还是让一个团队来完成各自擅长的领域。
首先要看你想学习专业如果要学习的是系统软件知识,这是两个不同的领域。
如果你要学习硬件支持,应该从外之类的去了解。从一台服务器有哪一些部件构成到这些硬件产生故障会议该怎么解决?硬件的学习是比较固定的,因为他说产生的这些问题都是常见的一些应用问题。
如果要学习的是系统软件知识这一块就比较复杂,分为初级,中级,高级三个阶段。初级的就是系统的简单应用到入门,也就是系统在正常的操作过程当中,眼睛能看到的东西都属于初级。中级的过程我也考虑到软件与软件通信,以及外部粘连网连接到数据库等这些。高级的就是一些部署或集群式应用,而且还能够通过软件硬件相结合,相关知识的应用。当然,作为高级肯定要兼并初级和中级的相关知识和实际应用。具体要看你想学习哪一方面的知识。
C/C++的服务器端,比如我们经常玩的网游,那个服务器端大部分都是C/C++编程的。还有本地连接,网上邻居,ftp协议之类的,基本上windows的客户端网络服务都有对应的服务器。
当然要学习C/C++服务器编程,涉及的方面就比较多了,重要的有网络连接,多线程,数据存储等等的。
你可以参考一下腾讯在C/C++服务器编程工程师的要求。
工作要求:
工作有激情, 认真负责,尽职尽责,沟通协作意识良好,能够承担工作压力,具备良好的学习能力和分析解决问题能力;
全面的软件知识结构(操作系统、数据结构、数据库系统、网络安全),有两年以上互联网应用开发经验,有无线互联网后台开发经验优先;
熟练使用C/C++语言,熟悉Linux下调试、开发环境,对多线程、缓存系统、高性能、高可用系统有经验者优先;
熟悉TCP/IP协议,能熟练使用网络分析工具分析网络相关的故障,有一定的网络编程经验;
熟悉数据库的设计、使用与基本调优,熟练使用mysql数据库进行业务开发;
熟悉Linux,具备Linux下的系统开发经验;
具备大并发、分布式存储、大容量系统开发运营经验优先。
0条评论