史上最全互联⽹⼋⼤技术岗位详解
“互联⽹技术岗位详解,涉及到前段开发、后端开发、移动端开发、⼤数据、项⽬管理、测试、运维、技术管理等⼋⼤领域。
架构师
每个产品线都有架构师,在技术平台部门也需要技术平台的架构师。
架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项⽬,使设计的项⽬尽量效率⾼,开发容易,维护⽅便,升级简单。
1、架构分析:从功能性的需求中识别出需要增加的⾮功能性需求,好满⾜性能、可扩展、集成、安全、可运维、⾼可⽤、易部署、易更新。并且识别⾮功能型需求后,还要做技术选型、技术架构风险识别、技术实现⼯作量评估。
2、架构设计与实现:完成⾮功能性模块的架构设计、接⼝设计、代码实现,所以,需要的是有代码实现能⼒还要有架构思维的⼯程师,⽽不是画PPT的⼯程师。
3、业务架构设计与实现:需要对跨系统的接⼝进⾏识别、实现、维护,需要对能写成公共代码类库的进⾏分析、识别、接⼝设计、实现、变更维护。
git使用详解4、重构:架构师需要经常做Bug分析、⾮模板性和公共类库代码检查,以发现代码腐烂程度,以发现还有哪些代码没有做出很好的架构与精⼼的代码设计。所以,重构是经常性维护发⽣的,不是攒到某⼀刻动⼤⼿术,甚⾄推翻重做,那就不叫重构了。
前端开发⼯程师
1、使⽤Div+css并结合Java负责产品的前端开发和页⾯制作;
2、熟悉W3C标准和各主流浏览器在前端开发中的差异,能熟练运⽤DIV+CSS,提供针对不同浏览器的前端页⾯解决⽅案;
3、负责相关产品的需求以及前端程序的实现,提供合理的前端架构;
4、与产品、后台开发⼈员保持良好沟通,能快速理解、消化各⽅需求,并落实为具体的开发⼯作;
5、了解服务器端的相关⼯作,在交互体验、产品设计等⽅⾯有⾃⼰的见解。
后端开发⼯程师
实现功能开发,让功能可⽤、易⽤,「程序猿」是最直接的描述,写代码的⽜⼈或者普通⼈。
是什么给⽹站前端提供⽀持?数据存放在哪⾥?这就涉及后端内容了。⽹站后端包括服务器、应⽤还有数据库。后端开发者构建并维护这些组件,为⽹站提供多⽅⾯⽀持。
为了让服务器、应⽤、数据库能够彼此交互,后端⼯程师需要具有如下技能:
⽤于应⽤构建的服务器端语⾔: PHP, Ruby, Python, Java, .Net 等;
数据相关⼯具: MySQL, Oracle, SQL Serve
PHP框架: Zend, Symfony, CakePHP
Java框架:SSH、SSM
版本控制⼯具:SVN, CVS , Git 等
还要熟练使⽤ Linux 作为开发和部署环境。
移动开发⼯程师
移动客户端的开发类型主要是三种:
Native App(原⽣APP)
也就是完全使⽤移动设备系统语⾔写的客户端,iPhone iPad就是纯Object-C,安卓就是纯JAVA, 就是⽤户看到的界⾯啦体验到的交互啦都是原⽣的。这是性能最棒的开发⽅式,但灵活性就没下⾯的好。
Web App,
这个就是在移动浏览器⾥打开的,纯HTML+CSS+JS,说⽩了就是个⽹页,只不过⾮常的富应⽤,⽐如⼿机浏览器访问的GMAIL啥啥的。但说⽩了就是在浏览器⾥打开的页⾯。
Hybrid App.[HTML5 in mobile devices]
实际上是使⽤原⽣写了⼀个容器,然后使⽤HTML+CSS+JS来实现⽤户界⾯和交互。
⼤数据岗位
⼤数据主要有以下职位
1.数据分析师Data analyst
指熟悉相关业务,熟练搭建数据分析框架,掌握和使⽤相关的分析常⽤⼯具和基本的分析⽅法,进⾏数据搜集、整理、分析,针对数据分析结论给管理销售运营提供指导意义的分析意见。
2.数据架构师Data architect
对Hadoop解决⽅案的整个⽣命周期进⾏引导,包括需求分析,平台选择,技术架构设计,应⽤设计和开发,测试和部署。深⼊掌握如何编写MapReduce的作业及作业流的管理完成对数据的计算,并能够使⽤Hadoop提供的通⽤算法,熟练掌握Hadoop整个⽣态系统的组件如: Yarn,HBase、Hive、Pig等重要组件,能够实现对平台监控、辅助运维系统的开发。
3.⼤数据⼯程师Big DataEngineer
收集和处理⼤规模的原始数据(包括脚本编写,⽹页获取,调⽤APIs,编写SQL查询等);将⾮结构化数据处理成适合分析的⼀种形式,然后进⾏分析;根据所需要的和专案分析商业决策。
4.数据仓库管理员Data warehousemanager:指定并实施信息管理策略;协调和管理的信息管理解决⽅案;多个项⽬的范围,计划和优先顺序安排;管理仓库的各个⽅⾯,⽐如数据外包,移动,质量,设计和实施。
5.数据库管理员Database manager
提⾼数据库⼯具和服务的有效性;确保所有的数据符合法律规定;确保信息得到保护和备份;做定期报告;监控数据库性能;改善使⽤的技术;建⽴新的数据库;检测数据录⼊程序;故障排除。
6.商业智能分析员Businessintelligence analyst
就⼯具,报告或者元数据增强来进⾏传播信息;进⾏或协调测试,以确保情报的定义与需求相⼀致;使⽤商业智能⼯具来识别或监测现有和潜在的客户;综合⽬前的商业只能和趋势数据,来⽀持采取⾏动的建议;维护或更新的商业智能⼯具,数据库,仪表板,系统或⽅法;及时的管理⽤户流量的商业情报。
7.数据库开发员Databasedeveloper
设计,开发和实施基于客户需求的数据库系统;优化数据库系统的性能效率;准备设计规范和功能单证的分配数据库的项⽬;对数据库系统进⾏空间管理和容量规划;建⽴数据库表和字典;参与数据库设计和架构,以⽀持应⽤程序开发项⽬;执⾏数据备份和档案上定期;测试数据库,并进⾏错误修正;及时解决数据库相关的问题;制定安全程序,以保护数据库免受未经授权的使⽤;评估现有的数据库,并提出改进建议的执⾏效率;开发⽤于数据库设计和开发活动的最佳实践。
项⽬管理
协调技术、产品、运营等部门把产品更好的实现,⼤部分公司叫项⽬经理,⼀般属于技术部门。由于现在的互联⽹发展太快,还衍⽣出了敏捷教练这个岗位,帮助技术、产品、运营部门更好的协作,通过引⼊敏捷开发的⽅式优化产品研发流程,以及解决部门之间的协调问题等。
软件项⽬经理
1、基本职责就是确保项⽬⽬标的实现,领导项⽬团队准时、优质地完成全部⼯作。
2、与客户沟通,了解项⽬的整体需求。并与客户保持⼀定的联系,即时反馈阶段性的成果,和即时更改客户提出的合理需求。
3、制定项⽬开发计划⽂档,量化任务,并合理分配给相应的⼈员。
4、跟踪项⽬的进度,协调项⽬组成员之间的合作。
5、监督产⽣项⽬进展各阶段的⽂档,并与QA即时沟通,保证⽂档的完整和规范。
6、开发过程中的需求变更,项⽬经理需要跟客户了解需求,在⽆法判断新的需求对项⽬的整理影响程度的情况下,需同项⽬组成员商量,最后决定是否接收客户的需求,然后再跟客户协商。确定要变更需求的情况下,需产⽣需求变更⽂档,更改开发计划,通知QA。
7、项⽬提交测试后,项⽬经理需了解测试结果,根据测试的bug的严重程度来重新更改开发计划。
8、向上汇报。向上级汇报项⽬的进展情况,需求变更等所有项⽬信息。
9、项⽬完成的时候需要项⽬总结,产⽣项⽬总结⽂档。
敏捷教练
1.参与公司产品⼯程与项⽬管理体系的建⽴和完善;
2.在项⽬开发过程中,能够提供必要的培训,例如精益创业,⽤户研究,产品规划,⾯向对象设计、持续集成、需求拆分等;
3.对产品团队进⾏⽇常操作辅导,帮助产品经理识别问题和风险,在软件交付和质量保证⽅⾯,进⾏持续改进;
3.对产品团队进⾏⽇常操作辅导,帮助产品经理识别问题和风险,在软件交付和质量保证⽅⾯,进⾏持续改进;
4.进⼊团队进⾏产品管理相关的度量,定期完成分析报告,向上级领导汇报,⽀持事业部和公司的管理与决策;
5.协调各部门之间的⼯作,负责项⽬资源的协调和有效使⽤,以达到项⽬进度⽬标;
6.作为内部咨询师进⼊产品团队,引⼊敏捷开发实践或产品⼯程实践,结合产品与团队特点,制定有针对性的效率提升⽅案;
7.对产品经理和团队进⾏培训,提⾼其能⼒和技巧。
运维⼯程师
确保后台不出问题,确保服务器、⽹络出现了问题能够及时的修复,等等。服务器、带宽够不够,⼀个⼤活动需要备机,都要他们。
测试岗位
其实测试严格来说也分,功能测试、性能压⼒测试、接⼝测试岗位。
技术管理岗位
⼀般能做到管理岗位,最好是从基层做起,最后通过进阶⼀步步⾛到管理岗位,这样的⼈最适合做管理。
涉及到的岗位有技术经理、技术总监、CTO。
技术经理如果不懂技术,这个玩笑就⼤了。如果做到技术总监了,还不懂技术架构,项⽬管理等,也是同⼀个道理。⼤家都知道的是CTO,其实该岗位对⼈的要求⾮常⾼,不管是⼴度还是深度都要求极⾼,需要懂具体的技术架构,项⽬管理,能带稍微⼤⼀点的团队,懂互联⽹安全以及性能,能把握产品的⽅向和对⾏业的深⼊了解,当然也需要懂⼈性。
CTO涉及到的岗位核⼼职责,可以参考优知学院另外⼀篇⽂章:我眼中最优秀的CTO长啥样。
优知学院IT⼈的升职加薪进阶站,提供系统的互联⽹产品&技术的⼊门指南以及进阶⼲货。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论