比较好的Java学习课程有哪些?
首先是Java技能的核心和基础JavaSE,这一阶段会接触到Java基础语法、面向对象编程思维、Java常用API、多线程并发编程、数据结构/集合结构、IO/网络编程/反射/设计模式。这一阶段往往也是最重要的,后边许多知识和结构的使用都是根据这一基础来的。学完这一部分,做一些简略的桌面使用程序设计没有问题。
接下来Java的进阶课程中,要用到的便是数据库(MySQL)和JDBC。在之后,要学习到的是JavaWeb开发技能。学完可以具有开发个人网站和企业网站的知识技能。
最后,接下来便是Java课程最重要的部分把学到的Java技术知识应用到实战项目了,一般实战项目会占整个课程的少半时间,从浅入深,会接触到大小型企业内各种真实实战项目。 比方内容办理体系(CMS)、智能商贸体系、盛行结构使用、B2C/商城项目等。完结这些项目,你对市面上大多数web使用开发、办理体系开发、运用前沿技能开发都得心应手。
java学习路线图:
UI偏视觉设计,Python偏代码,这两者还是好对比的。建议你选择自己更感兴趣的方向去学习。
纠结之际,建议你深入去了解UI和Python这两个技能
UI设计是做什么的?需要学习哪些内容?后期的就业岗位有哪些?
Python是做什么的?需要学习那些内容,后期的就业岗位有哪些?
了解这些以后,如果你还没确定自己对哪个更感兴趣,建议你先找入门资料试学一下,在学习中去对比。
如果还有其他问题,可以留言
运维工程师岗位职责(15篇)
在日新月异的现代社会中,岗位职责使用的频率越来越高,岗位职责是指一个岗位所需要去完成的工作内容以及应当承担的责任范围,职责是职务与责任的统一,由授权范围和相应的责任两部分组成。想学习制定岗位职责却不知道该请教谁?下面是我为大家收集的运维工程师岗位职责,欢迎大家借鉴与参考,希望对大家有所帮助。
运维工程师岗位职责1
职责:
1、配合对系统进行持续优化,满足高可用、高性能等特性;
2、负责服务器配置管理、基础软件安装以及性能调优、应用部署等工作;
3、配合解决运维工作中重大故障,性能瓶颈等相关疑难问题;
4、配合优化运维规范、工作流程、应急预案等。
任职要求:
1、两年以上互联网运维经验,了解容量规划、性能优化;
2、熟悉linux系统,了解tcp/ip以及具有丰富的广域网、局域网网络络知识;
3、有网站运维经验,熟练使用shell脚本编程语言;
4、熟悉MySql,Redis,Elasticsearch等;
5、具有故障排查能力,有很好的技术敏感度;
6、有自动化运维经验,熟悉Puppet、Saltstack、Ansible以及Fabric的优先;
7、熟悉如Nagios、Cacti、zabbix、zenoss等监控监控软件并能对相关指标进行分析;
8、有DBA经验的优先。
平台架构师负责企业服务类Saas产品的架构设计和落地,其中包括但不限于存储、安全、中间件、网络、DevOps等各类云产品。下面我给大家带来关于平台架构师岗位职责,希望会对大家的工作与学习有所帮助。
运维工程师岗位职责2工作职责:
1、负责对公司服务的运维项目提供技术维护服务;
2、负责网络设备及链路的管理、配置、排错和维护;
3、负责服务器及存储设备的配置、排错和维护;
4、负责服务器Linux/windows系统平台应用服务的部署、配置、优化和监控;
5、配合开发、集成部门,完成技术支持工作;
其他任职要求:
1、工作年限两年或以上;
2、具有较强的责任心,具备良好的沟通能力和执行力,并且有较强的学习能力;
3、能承受一定的工作压力,能适应公司安排的节假日值班;
4、具备HCNP、CCNP认证之一或具有网络方面丰富的实战经验的同等实力者;
5、能熟练调试配置主流产商的路由交换及安全产品;
6、能熟练调试安装主流厂商的塔式及机架服务器、刀片服务器及相关存储产品;
7、熟悉windows server及RHEL 6等主流服务器操作系统的基本配置,并具备安全方面的相关知识;
8、有过大型信息系统建设或维护经验者优先。
岗位职责:
-负责数据中心现场外包团队管理、梯队建设、问题跟进解决,以及与IDC运营商沟通、协调并能够推动问题解决
-负责对现场外包的服务质量和效率进行监控,发现问题并及时对现有流程和规范进行优化
-负责现场外包团队的工单操作的技术指导以及工单分配管理
-SOP、外包管理框架等文档的编写和发布
任职资格:
-本科学历及以上,2年以上相关工作经验
-能够主动发现现场存在的问题,并善于总结,将内容提取归纳成知识点和方法
-具备良好的服务器及网络设备技术指导能力,如运维操作及设备故障排查能力及指导现场运维能力
-较强的逻辑思维能力,良好表达、以及文档撰写能力
-对运维工作保持自我驱动的热情,可以做到724响应处理各类应急事件
-适应高节奏的工作,能够承担一定压力,有良好的合作意识和团队协作精神
运维工程师岗位职责3Responsibility
1、解决藏宝阁各种紧急事件,日常问题查证和BUG跟进处理,与产品及技术沟通协调问题处理方案;
2、利用脚本完善运维处理工具,提交需求优化操作后台,提高运维以及一线工作人员工作效率;
3、对运营数据进行分析,根据运营中出现的问题进行分析,及时输出分析报告及解决方案;
4、对相关运营流程、活动流程进行梳理,并对一线客服人员进行培训和规范,提高日常问题及活动问题处理效率及用户满意度并对相关KPI负责。
Requirements
1、具有高度的保密意识和责任心,能承受较强的工作压力;
2、积极主动,敢于接受挑战,性格开朗,有较强的团队合作精神,乐于分享;
3、精通梦幻系列、大话系列等公司主流端手游游戏设置,对游戏有一定敏感性
4、熟练Python使用,具有一定的数据分析能力;
4、善于人际沟通,熟悉团队各类业务流程;
5、熟练使用excel、word、PPT,了解internet网络知识。
运维工程师岗位职责41在阿里云环境部署业务,维护系统运行;
2开发运维脚本或工具,来提高运维部署的'效率;
3维护集成开发,测试环境;
4管理内部用户权限和资源;
5监控系统运行状况,在发生问题是能及时报警并跟进处理。
运维工程师岗位职责51、参与设计、审核、优化公司IT系统以及各应用系统的体系架构;
2、全面负责公司运维项目的系统升级、扩容需求与资源落实,配合开发需求,测试、调整运维平台;
3、负责网络以及服务器的网络设置、维护和优化、网络的安全监控、系统性能管理和优化、网络性能管理和优化;
4、建立面向开发部门,业务部门的服务流程和服务标准;
5、负责IT运维相关流程的规划、设计、推行、实施和持续改进;
6、负责内部分派下发,对实施结果负责。
7、负责日常网络及各子系统管理维护。
8、负责设计并部署相关应用平台,并提出平台的实施、运行报告。
9、负责配合开发搭建测试平台,协助开发设计、推行、实施和持续改进。
10、负责相关故障、疑难问题排查处理,编制汇总故障、问题,定期提交汇总报告。
11、负责网络监控和应急反应,以确保网络系统有724小时的持续运作能力。
12、负责日常系统维护,及监控,提供IT软硬件方面的服务和支持,保证系统的稳定。
运维工程师岗位职责6职责:
1、负责集团客户应用系统底层环境的搭建和运维(包括线下系统及云平台环境);
2、对操作系统、数据库以及相关应用系统的维护和优化;
3、参与客户系统平台升级,负责相关系统环境的搭建和测试;
4、负责客户数据库的备份、管理及监控,跟踪处理系统异常数据,及时发现潜在问题,保障系统正常运行。
岗位要求:
1、本科及以上学历(计算机、通信或相关专业),五年及以上相关工作经验;
2、精通windows,Linux系统管理和维护;
3、熟悉Vmware vSphere和ESXi host的配置和管理;
4、熟悉Oracle DB,具备OCP认证者优先;
5、能独立完成oracle/sql server的备份恢复,了解相关的性能调整和故障诊断;
6、能适应江浙沪范围内的短途出差。
运维工程师岗位职责7一、系统运维
1、负责系统发布,部署,编写集成方案和部署方案
2、负责系统故障、疑难问题排查处理,记录故障详情、解决过程
3、负责配合开发搭建测试平台,协助开发设计、推行、实施和持续改进
4、负责日常系统维护及监控,开发搭建系统日常维护、监控、分析、报警平台系统
5、负责信息系统在客户现场的安装、培训和维护工作
负责收集客户在使用系统过程中的原始需求,优化需求,传递给产品经理
二、网络运维
1、负责日常服务器、网络,邮箱,电话系统,视频会议系统的管理和维护
2、负责日常应用软件,公司桌面办公软件的维护
3、持续改进日常操作以及优化公司网络,跟踪网络互连技术发展,合理运用新技术
4、负责对服务器的健康状况,业务进行监控,并处理应急情况日常服务器巡检,备案,安全等
运维工程师岗位职责8职责:
1、负责虚拟化产品安装调试及日常维护;
2、负责分布式存储设备安装调试及容量管理;
3、负责运维文档的记录与管理;
4、负责公司存储规划和设计,进行技术解决方案的讨论、选型和实施;
5、负责日常的服务器软硬件、系统与应用平台管理,包括但不限于状态监控、升级、故障处理及优化等操作;
6、负责完成上级交办的其它任务
岗位要求:
1、大专及以上学历,计算机相关专业,工作三年以上。
2、熟悉Linux系统使用、维护及基础服务搭建(例如web/samba/ftp/dns等服务)
3、熟悉虚拟化产品vmwre、openstack、kvm等使用及维护;
4、熟悉服务器运行性能、可用性、日志分析方法;
5、熟悉各类网络设备的工作原理和相关配置方法;
6、有良好的团队精神和沟通协调能力,工作认真,有较强责任心。
7、持有相关Redhat认证、Vmware等认证优先
运维工程师岗位职责9职责:
1、参与项目需求的调研、讨论,提出优化建议;
2、负责对接项目方开展项目的研发、实施,确保项目按时保质完成;
3、负责对内开展系统相关的培训工作;
4、及时响应并处理系统故障,保障系统的稳定运行;
5、负责公司的桌面运维工作;
6、完成领导交办的其他工作。
任职要求:
1、计算机或相关专业的全日制本科及以上学历;
2、1年及以上计算机软件的工作经验或优秀的应届毕业生,有承担软件项目经理工作经验者优先,有融资租赁行业经验者优先;
3、精通j2ee平台(webshpere,weblogic等),了解SSO,精通B/S体系架构下的应用开发技术;熟悉主流网络设备的安装和调试,熟悉网络结构、服务器、Oracel数据库等技术;熟悉CMM软件开发管理过程,有良好的编程规范及开发技能;
4、具有良好的职业道德,较强的沟通协调及语言表达能力;
5、工作认真、细致、有责任心,待人热情有耐心。
运维工程师岗位职责10职责:
1、负责私有云PaaS平台平台整体功能规划及系统设计;
2、负责私有云PaaS平台平台基础中间件及基础数据库服务的规划及系统设计;
3、负责私有云PaaS平台平台微服务应用相关的服务规划及系统设计;
4、负责公司已有IT系统私有云PaaS平台平台部署的架构和迁移方案设计,并对应用迁移到私有云PaaS平台上提供技术支持;
5、指导并带领开发工程师进行详细设计、系统开发等工作,保障设计方案的实施与落地。
职位要求
1、本科及以上学历,计算机相关专业,5年以上工作经验,云计算相关工作经验2年以上。
2、具备较强私有云平台开发能力,至少精通Java/Shell编程语言,至少拥有阿里云、私有云PaaS平台的设计开发经验,有完整私有云平台(IaaS+PaaS)产品搭建经验值优先;
3、精通docker/Kubernetes容器技术,了解cgroup/Namespace技术原理;
4、熟练OpenShift、Spring Cloud、Dubbo技术,有完整的微服务设计和相关使用规范;
5、熟悉常用中间件(如Redis、RocketMQ、Kafka、ElasticSearch等)及分布式数据库的原理及集群构建,有实际项目经验者优先;
6、熟悉分布式架构基本原理,包括分布式计算、分布式存储、分布式缓存、分布式数据库、分布式消息中间件等,在高性能计算、并行处理、Linux环境、虚拟化技术、集群部署、分布式任务调度、分布式资源管理等云计算相关领域有开发经验者优先;
7、具有物联网,流媒体等PaaS产品设计开发经验者优先;
运维工程师岗位职责11职责:
1、负责业务系统日常运行维护,线上故障紧急处理;
2、配合研发人员,负责大数据平台系统环境(正式、开发、测试)搭建,日常变更部署上线;
3、根据平时工作能够进行总结抽象,完成大数据运维相关工具研发。
4、分析系统及应用程序的性能问题,形成可实施优化方案并推动落地;
5、负责公司平台的安全性,提供安全保障724小时运营
任职要求:
1、5年以上工作经验,本科及以上学历;
2、熟悉Hadoop大数据生态圈,包括但不限于HDFS、YARN、Hive、HBase、Spark、kafka、kylin、prosto等,至少掌握Java/Python//Shell中的两种语言。
3、为团队定位Hadoop群集生态系统故障提供技术支持,负责解决重大技术问题,包括源代码级的问题定位。
4、理解Linux系统、运维体系结构,精于容量规划、架构设计、性能优化。
5、有清晰思维善于总结,有良好的问题定位和排错能力。
运维工程师岗位职责12职责:
1、负责库房物资管理,并定期将统计数据发送给负责人审查;
2、负责终端安全管控及PC终端软硬件的维护;
3、负责网络维护,解决内网不通或地址冲突等相关问题;
4、负责服务器运维以及各个系统浏览器登录兼容性的调试;
5、负责机房日常巡检工作;
任职资格:
1、计算机、通信及其相关专业,大专及以上学历。一年以上相关岗位工作经验;
2、掌握一定的计算机网络知识,熟悉windows以及打印机的安装运维;
3、具有较强的学习能力,并能及时高效地处理各类IT故障;
4、具有主观能动性,责任心强,善于沟通,并能独立完成岗位职责中所要求的各项工作;
运维工程师岗位职责13职责:
1、负责编写自动化相关项目;
2、负责自动化流程的规划、设计、推行、实施和持续改进;
3、负责相关故障、疑难问题排查处理,编制汇总故障、问题,定期提交汇总报告;
4、负责服务器配置、维护、监控、以及优化。
任职资格:
1、3年以上的开发经验,熟悉Python开发,熟悉flask/django/tornado等至少一种框架,拥有自动化开发相关经验者优先;
2、1年以上运维经验,具备linux运维能力,具有mysql/redis/mongodb等数据库运维、开发经验者优先;
3、具备一定前端开发能力的优先;
4、工作认真负责,学习力强、能够克服困难、有责任心、有团队协作意识。
运维工程师岗位职责14职责:
1、负责产品&系统技术咨询、故障及投诉的处理;
2、负责产品推广&系统使用过程中的问题与需求收集;
3、负责系统bug修复,数据处理,问题定位、分析、反馈;
4、负责运维及运营报告的整理与分析;
5、对业务运营或者自动化运维感兴趣;
任职要求:
1、国家统招本科及以上学历,一年以上工作经验,计算机专业背景优先考虑;
2、一年以上Linux系统维护经验,能够熟练编写Shell脚本优先;
3、熟练使用Oracle或Mysql数据库,能够熟练的使用SQL语句进行数据查询和筛选,擅长SQL调优者优先;
4、熟悉广电行业业务流程或相关行业业务经验者优先;
5、具有优秀的客户的沟通协调能力、自主学习能力及自我管理能力;
6、具有高度责任心,保密意识和好的应急响应能力、处理问题能力;
7、具有积极主动的工作态度,良好的沟通能力及团队工作能力;
8、具有系统集成或需求调研和需求分析经验者优先。
运维工程师岗位职责15职责:
1、负责服务器,存储,虚拟化,备份等使用案例相关的情境支持,架构建议
2、负责服务器,存储,虚拟化,备份等相关的资源协调和架构落地实施
3、负责服务器,存储,虚拟化,备份等相关的配置指导和故障排查
4、能协调沟通相关服务商,有效及时处理疑难问题
任职要求:
1、至少3-5年以上工作经验
2、熟练或精通以下领域(Windows/Linux Server,Active Directory,Group Policy,Vmware/Hyper-V,Storage,Backup and etc)
3、有技术支持经验者优先
4、有相关运维经验者优先(50-100台server以上)
5、有日志分析能力或脚本编写能力者优先
6、有1-3年外企或global team工作经验者优先
7、逻辑思维清晰,能独立排查解决技术问题
8、有较好的沟通协调能力
9、能接受短期出差(1周以内)
;Oracle RAC是Oracle Real Application Cluster的简写,官方中文文档一般翻译为“真正应用集群”,是Oracle9i新版数据库中采用的一项新技术,也是Oracle数据库支持网格计算环境的核心技术。它的出现解决了传统数据库应用中面临的一个重要问题:高性能、高可伸缩性与低价格之间的矛盾!
它一般有两台或者两台以上同构计算机及共享存储设备构成,可提供强大的数据库处理能力,现在是Oracle 10g Grid应用的重要组成部分。
Oracle RAC主要支持Oracle9i、10g、11g版本,可以支持24 x 7 有效的数据库应用 系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。
在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。
Oracle RAC一般也可构建于大型SMP主机,IBM的AIX系列服务器往往是其中高端平台,Intel Linux往往作为其低端平台。当AIX UNIX用来运行Oracle RAC作为大型数据库系统平台时,其集群系统构建、实施、运维、高可用设置,有其平台特点。可以参照《Oracle大型数据库系统在AIX/UNIX上的实战详解》,该书以AIX UNIX平台为主线,以其他UNIX系统为参照,描述了数据库系统Oracle 10g、Oracle 11g的RAC的构架方法和过程。在Linux平台,则《大话OracleRAC集群、高可用性、备份与恢复》有着很好的论述。
许多同学触摸Linux不多,对Linux渠道的开发更是一窍不通。而如今的趋势越来越标明,作为一个优秀的软件开发人员,或计算机IT职业从业人员,把握Linux是一种很主要的营生资本与手法。
下来我将会结合自己的几年的个人开发经验,及对 Linux,更是类UNIX系统,及开源软件文化,谈谈Linux的学习方法与学习中应该注意的一些事。
就如同刚才说的,很多同学以前可能连Linux是什么都不知道,对UNIX更是一无所知。所以我们从最基础的讲起,对于Linux及UNIX的历史我们不做多谈,直接进入入门的学习。
Linux入门是很简单的,问题是你是否有耐心,是否爱折腾,是否不排斥重装一类的大修。没折腾可以说是学不好Linux的,鸟哥说过,要真正了解Linux的分区机制,对LVM使用相当熟练,没有20次以上的Linux装机经验是积累不起来的,所以一定不要怕折腾。
由于大家之前都使用Windows,所以我也尽可能照顾这些“菜鸟”。我的推荐,如果你第一次接触Linux,那么首先在虚拟机中尝试它。虚拟机我推荐Virtual Box,我并不主张使用VM,原因是VM是闭源的,并且是收费的,我不希望推动盗版。当然如果你的Money足够多,可以尝试VM,但我要说的是即使是VM,不一定就一定好。
付费的软件不一定好。
首先,Virtual Box很小巧,Windows平台下安装包在80MB左右,而VM动辄600MB,虽然功能强大,但资源消耗也多,何况你的需求Virtual Box完全能够满足。所以,还是自己选。
如何使用虚拟机,是你的事,这个我不教你,因为很简单,不会的话Google或Baidu都可以,英文好的可以直接看官方文档。现在介绍Linux发行版的知识。
正如你所见,Linux发行版并非Linux,Linux仅是指操作系统的内核,作为科班出生的你不要让我解释,我也没时间。
我推荐的发行版如下:
UBUNTU 适合纯菜鸟,追求稳定的官方支持,对系统稳定性要求较弱,喜欢最新应用,相对来说不太喜欢折腾的开发者。
Debian,相对UBUNTU难很多的发行版,突出特点是稳定与容易使用的包管理系统,缺点是企业支持不足,为社区开发驱动。
Arch,追逐时尚的开发者的首选,优点是包更新相当快,无缝升级,一次安装基本可以一直运作下去,没有如UBUNTU那样的版本概念,说的专业点叫滚动升级,保持你的系统一定是最新的。缺点显然易见,不稳定。同时安装配置相对Debian再麻烦点。
Gentoo,相对Arch再难点,考验使用者的综合水平,从系统安装到微调,内核编译都亲历亲为,是高手及黑客显示自己技术手段,按需配置符合自己要求的系统的首选。
Slackware与Gentoo类似。
CentOS,社区维护的RedHat的复刻版本,完全使用RedHat的源码重新编译生成,与RedHat的兼容性在理论上来说是最好的。如果你专注于Linux服务器,如网络管理,架站,那么CentOS是你的选择。
LFS,终极黑客显摆工具,完全从源代码安装,编译系统。安装前你得到的只有一份文档,你要做的就是照文档你的说明,一步步,一条条命令,一个个软件包的去构建你的Linux,完全由你自己控制,想要什么就是什么。如果你做出了LFS,证明你的Linux功底已经相当不错,如果你能拿LFS文档活学活用,再将Linux从源代码开始移植到嵌入式系统,我敢说中国的企业你可以混的很好。
1、Linux基础
你得挑一个适合你的系统,然后在虚拟机安装它,开始使用它。如果你想快速学会Linux,我有一个建议就是忘记图形界面,不要想图形界面能不能提供你问题的答案,而是满世界的去找,去问,如何用命令行解决你的问题。
在这个过程中,你最好能将Linux的命令掌握的不错,起码常用的命令得知道,同时建立了自己的知识库,里面是你积累的各项知识。
2、Linux平台的C/C++开发,同时还有Bash脚本编程[JAVA]
再下个阶段,你需要学习的是Linux平台的C/C++开发,同时还有Bash脚本编程,如果你对Java兴趣很深还有Java。同样,建议你抛弃掉图形界面的IDE,从VIM开始,为什么是VIM,而不是Emacs,我无意挑起编辑器大战,但我觉得VIM适合初学者,适合手比较笨,脑袋比较慢的开发者。 Emacs的键位太多,太复杂,我很畏惧。然后是GCC,Make,Eclipse(Java,C++或者)。
虽然将C++列在了Eclipse中,但我并不推荐用IDE开发C++,因为这不是Linux的文化,容易让你忽略一些你应该注意的问题。 IDE让你变懒,懒得跟猪一样。如果你对程序调试,测试工作很感兴趣,GDB也得学的很好,如果不是GDB也是必修课。这是开发的第一步,注意我并没有提过一句Linux系统API的内容,这个阶段也不要关心这个。你要做的就是积累经验,在Linux平台的开发经验。
我推荐的书如下:C语言程序设计。 C语言,白皮书当然更好。 C++推荐 C++ Primer Plus, Java我不喜欢,就不推荐了,附一个别人的书单:java 入门书籍。工具方面推荐VIM的官方手册,GCC中文文档,GDB中文文档,GNU开源软件开发指导(电子书),汇编语言程序设计(让你对库,链接,内嵌汇编,编译器优化选项有初步了解,不必深度)。
如果你这个阶段过不了就不必往下做了,这是底线,最基础的基础,否则离开,不要霍霍Linux开发。不专业的Linux开发者作出的程序是与Linux文化或UNIX文化相背的,程序是走不远的,不可能像Bash,VIM这些神品一样。所以做不好干脆离开。
3、UNIX环境高级编程
UNIX环境高级编程堪称神作,经典中的经典。
接下来进入Linux系统编程,不二选择,APUE,UNIX环境高级编程,一遍一遍的看,看10遍都嫌少,如果你可以在大学将这本书翻烂,里面的内容都实践过,有作品,你口头表达能力够强,你可以在面试时说服所有的考官。
(可能有点夸张,但APUE绝对是圣经一般的读物,即使是Windows程序员也从其中汲取养分, Google创始人的案头书籍,扎尔伯克的床头读物。)
这本书看完后你会对Linux系统编程有相当的了解,知道Linux与Windows平台间开发的差异在哪?它们的优缺点在哪?我的总结如下:做Windows平台开发,很苦,微软的系统API总在扩容,想使用最新潮,最高效的功能,最适合当前流行系统的功能你必须时刻学习。 Linux不是,Linux系统的核心API就100来个,记忆力好完全可以背下来。而且经久不变,为什么不变,因为要同UNIX兼容,符合POSIX标准。所以Linux平台的开发大多是专注于底层的或服务器编程。
这是其优点,当然图形是Linux的软肋,但我站在一个开发者的角度,我无所谓,因为命令行我也可以适应,如果有更好的图形界面我就当作恩赐吧。另外,Windows闭源,系统做了什么你更本不知道,永远被微软牵着鼻子跑,想想如果微软说Win8不支持QQ,那腾讯不得哭死。而Linux完全开源,你不喜欢,可以自己改,只要你技术够。
另外,Windows虽然使用的人多,但使用场合单一,专注与桌面。而Linux在各个方面都有发展,尤其在云计算,服务器软件,嵌入式领域,企业级应用上有广大前景,而且兼容性一流,由于支持POSIX可以无缝的运行在UNIX系统之上,不管是苹果的Mac还是IBM的AS400系列,都是完全支持的。另外,Linux的开发环境支持也绝对是一流的,不管是C/C++,Java,Bash,Python,PHP,Javascript,。。。。。。就连C#也支持。而微软除Visual Stdio套件以外,都不怎么友好,不是吗?
如果你看完APUE的感触有很多,希望验证你的某些想法或经验,推荐UNIX程序设计艺术,世界顶级黑客将同你分享他的看法。
4、选择方向:网络,图形,嵌入式,设备驱动
网络方向:服务器软件编写及高性能的并发程序编写
现在是时候做分流了。大体上我分为四个方向:网络,图形,嵌入式,设备驱动。
如果选择网络,再细分,我对其他的不是他熟悉,只说服务器软件编写及高性能的并发程序编写吧。相对来说这是网络编程中技术含量最高的,也是底层的。需要很多的经验,看很多的书,做很多的项目。
我的看法是以下面的顺序来看书:
APUE再深读– 尤其是进程,线程,IPC,套接字
多核程序设计- Pthread一定得吃透了,你很NB
UNIX网络编程– 卷一,卷二
TCP/IP网络详解– 卷一再看上面两本书时就该看了
5TCP/IP 网络详解– 卷二我觉得看到卷二就差不多了,当然卷三看了更好,努力,争取看了
6Lighttpd源代码- 这个服务器也很有名了
7Nginx源代码– 相较于Apache,Nginx的源码较少,如果能看个大致,很NB。看源代码主要是要学习里面的套接字编程及并发控制,想想都激动。如果你有这些本事,可以试着往暴雪投简历,为他们写服务器后台,想一想全球的魔兽都运行在你的服务器软件上。
Linux内核 TCP/IP协议栈– 深入了解TCP/IP的实现
如果你还喜欢驱动程序设计,可以看看更底层的协议,如链路层的,写什么路由器,网卡,网络设备的驱动及嵌入式系统软件应该也不成问题了。
当然一般的网络公司,就算百度级别的也该毫不犹豫的雇用你。只是看后面这些书需要时间与经验,所以35岁以前办到吧!跳槽到给你未来的地方!
图形方向,我觉得图形方向也是很有前途的,以下几个方面。
Opengl的工业及游戏开发,国外较成熟。
影视动画特效,如皮克斯,也是国外较成熟。
GPU计算技术,可以应用在浏览器网页渲染上,GPU计算资源利用上,由于开源的原因,有很多的文档程序可以参考。如果能进火狐开发,或google做浏览器开发,应该会很好。
嵌入式方向:嵌入式方向没说的,Linux很重要。
掌握多个架构,不仅X86的,ARM的,单片机什么的也必须得懂。硬件不懂我预见你会死在半路上,我也想走嵌入式方向,但我觉得就学校教授嵌入式的方法,我连学电子的那帮学生都竞争不过。奉劝大家,一定得懂硬件再去做,如果走到嵌入式应用开发,只能祝你好运,不要碰上像Nokia,Hp这样的公司,否则你会很惨的。
驱动程序设计:
软件开发周期是很长的,硬件不同,很快。每个月诞生那么多的新硬件,怎么让他们在Linux上作业起来,这是你的作业。由于Linux的兼容性极好,假如不是太低层的驱动,根本C言语就能够搞定,体系架构的影响不大,由于有体系支撑,你可能做少许更改就能够在ARM上运用PC的硬件了,所以做硬件驱动开发不像嵌入式,对硬件常识的请求很高。
能够娴熟的建立常见的效劳,lnmp,ftp,dns,smba,假如呈现毛病,能够及时的排除去。。。常常运用Linux,必定能够变成大神。
原文链接:http://wwwmageducom/71706html
0条评论