网友提问:
IT行业都有哪些职位,初学者该如何选择,才能够快速进入这个行业?
优质回答:
IT行业的公司组织架构和大多数公司一样,有管理、行政、运营、技术、市场、X等许多岗位,今天我们主要讨论一下IT行业的技术岗位。就大方向而言,技术岗位有研发、数据库和测试三个方向;从一个网站的整体来看,则分为服务器端与浏览器/APP端,如图所示。
典型的互联网行业的技术组成图
很多新人在准备入行时,会有按照大公司的X职位描述确定学习目标的想法,事实上,这是一个误区。因为一般在大公司内部,按组干活的情况是常态,每个组负责整体项目中的一个或几个模块,再到个人专属负责更小的部分;并且,由于不同公司之间的业务与使用的技术栈不同,即使是相同的岗位对技术人员的具体技能要求也可能大相径庭。
所以说,除非是认准了某家公司的某个岗位非去不可,否则不建议对着职位描述上的技能去学习,很多行业老手也不一定能满足X页面上的所有技能需求。
接下来从三个大方向来说一下IT行业技术相关的职位有哪些。
一、对编程能力要求最高的研发类岗位
研发工程师主要负责公司产品的开发,对编程能力要求最高,如果确定要做研发岗,入行前最好明确将来是要向web前端、web后端还是全栈等方向发展,以便做好长久的职业规划。
我们以观看视频网站为例,来简单阐述一下客户是如何看到一个视频的:
客户通过浏览器/APP告诉你,他要看一个视频,你在收到客户的请求后,把视频从你的机器(服务器)中找到然后发给客户。整个流程完成后,也就是完成了一次互联网服务。
在上面的流程中,客户所能看到的——可以向你发起请求以及最终收到你发回给客户信息的界面,叫做“前端”。在前端领域,有两件事情要做:界面的设计与实现。设计界面的人,并不需要直接面对技术,而前端开发人员,则是需要用技术手段将界面设计实现。相对于前端,服务器部分我们习惯称其为”后端”。后端指:接受前端发来的请求、处理请求并把相关的内容发回。这就像是完成了一次对话。
1、前端工程师
前端领域有两类,一类基于浏览器,另一类基于移动端的APP。对于浏览器,前端开发人员掌握HTML、CSS、JS(在前后端分离的构架开始流行的今天,PHP已经不再是必须了)就足以应对前端工作;对于APP,前端开发人员则需要熟练掌握安卓与IOS的开发语言。
2、后端工程师
后端服务可以使用的语言有很多,如Java、Python、Go等,对于初学者,优先推荐学习Java。Java已经发展了多年,有许多现成的网站框架可以使用,相关技术足够成熟完备,学会Java之后,Python与Go这类新兴语言的学习就更加会得心应手,融会贯通。
数据库部分,目前主流的数据库所使用的语言叫SQL语言,所以志在后端的新手入行,Java+SQL的学习方案相对来说实用性更高一些。
后端工作,只会编程实现后端服务是不够的,还需要学会管理和维护后端,也就是说,至少要学会基本的Unix-like系统(主要是Linux)命令与脚本语言,如Bash。如果这些都掌握了,那么,恭喜你,你基本上可以成为一名合格的后端开发人员了。
当然,如果有更高的追求,可以考虑学习项目架构的相关技能,目前业内在这方面常用的是Docker。把以上技能运用熟练之后,便可以尝试挑战如产品经理、技术总监等更高的职位,成为管理或者技术难点攻关的角色。
3、全栈工程师
全栈工程师可以通俗地理解为前后端都可以做的技术人员。全栈工程师熟练掌握多种技能,具有全局性思维,能够独立完成产品,是许多创业公司优先选择的热门人才。
以上研发工程师里要求最高的是架构师和算法工程师,架构师需要丰富的大型项目经验,一般不提供初级岗位;算法工程师标准比较高,要么精通数据结构和算法,能够迅速破解面试官给出的算法题,要么是你在某些方面的算法进行过深入的研究并且取得了一定成就。由此说来,初学者想成为算法工程师,对天赋还是有一定要求的。
二、数据库领域
如果想攻数据科学方向的话,主要使用的是统计学知识和机器学习算法。如果数学基础比较薄弱,又不太喜欢数学的话不建议选择这个方向。并且,数据科学家也比较看重经验,新人可以在kaggle上找一些工业级的数据和项目进行练手。
三、测试工程师
公司在X的时候,对于新人测试工程师一般来讲不会有什么具体的技能要求,很多时候并不会要求你有测试经验或者会用测试工具。面试的时候会考察数据库、计算机网络等基础知识,并且会要求写一些算法题,测试工程师的算法题相对不难,熟练掌握数据结构和基础算法就能应对。
综上,0基础入行,首先,学一门主流编程语言,目标是研发工程师或者测试工程师的话建议是Java、 JavaScript 、C++(非科班出身可以不考虑)、Python(强烈建议会Python,但不建议只会Python);其次,了解计算机组成原理,这是一个IT从业者必备的基础素质。
磨刀不误砍柴工
最后再给新手提一些忠告:如果基础不扎实就去追赶新技术,会越追越累,对初学者而言,重要的并不是新技术,而是一颗耐心,只有脚踏实地地把基础打好,才是X,打好基础后,也许你会发现新技术“不过如此”。
感谢阅读,祝大家学有所成!步步高升!
其他网友回答
要是实在是有不知道我们这个行业有哪些基础岗位的,建议可以参考以下网址,搜索IT职位
其实IT行业跟其他技术行业一样,岗位发展方向多样,技术岗位多样,各个岗位发展需求不同,我们在学习入行的时候得根据自己的实际情况来说。
简单分类的话,IT行业,可以分为两个大的分类,技术岗位类,非技术岗位类。
职位的话列举几个
UI
前端
后端(Java/php/python)
DBA(mysql/oracle)
运维(OP)
测试(QA)
算法(分类/聚类/关系抽取/实体识别)
大数据工程师(Hadoop)
安卓
ios
运营
产品等等
如果初学者,基础,薄弱,但是有美术等专业基础,建议可以往UI设计,web前端开发发展。
如果初学者零基础,但是对软件编程情有独钟,可以往后端开发学习,前期或许觉得有难度,后期会慢慢的改善。
如果觉得自己不够聪明,不想吃技术的苦,可以了解下运维,测试,运营等等。
如果觉得自己够活泼,可以尝试下产品方向的。
以上种种都是建议,取决在你个人,最重要的是要认清楚自己的实力,选对适合的方向,并且为之努力,那么其实不管哪个方向都是会有一片属于你自己的天地的。
其他网友回答
如果从IT行业的技术类岗位来说的话,有:
软件工程师、软件测试工程师、硬件工程师、硬件测试工程师、web前端工程师、系统分析员、技术支持工程师、网络工程师、数据库工程师、信息安全工程师、软件架构师。
对于初学者来说,软件测试工程师、技术支持工程师等入门都相对比较容易的,当然,既然选择有个更好的发展,我们肯定也会考虑一个投入产出比。
从目前的行业发展现状来看,软件测试工程师的入行门槛低,发展空间大,对于初学者来说相对比较友好。
从基础的功能测试学起,掌握相应的计算机基础知识,软件测试基础知识,掌握相应的测试工具就可以 入门了。要想有广阔的发展空间,就需要不断的学习掌握自动化测试、性能测试、接口测试、编程语言等。
因此软件测试工程师,是一个入行门槛低,发展空间大的职位,感兴趣的小伙伴可以咨询汇智妹详细了解。