IT行业都有哪些职位,初学者该如何选择,才能够快速进入这个行业?

薄君夫


IT行业的公司组织架构和大多数公司一样,有管理、行政、运营、技术、市场、销售等许多岗位,今天我们主要讨论一下IT行业的技术岗位。就大方向而言,技术岗位有研发、数据库和测试三个方向;从一个网站的整体来看,则分为服务器端与浏览器/APP端,如图所示。

典型的互联网行业的技术组成图

很多新人在准备入行时,会有按照大公司的招聘职位描述确定学习目标的想法,事实上,这是一个误区。因为一般在大公司内部,按组干活的情况是常态,每个组负责整体项目中的一个或几个模块,再到个人专属负责更小的部分;并且,由于不同公司之间的业务与使用的技术栈不同,即使是相同的岗位对技术人员的具体技能要求也可能大相径庭。

所以说,除非是认准了某家公司的某个岗位非去不可,否则不建议对着职位描述上的技能去学习,很多行业老手也不一定能满足招聘页面上的所有技能需求。

接下来从三个大方向来说一下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上找一些工业级的数据和项目进行练手。

三、测试工程师

公司在招聘的时候,对于新人测试工程师一般来讲不会有什么具体的技能要求,很多时候并不会要求你有测试经验或者会用测试工具。面试的时候会考察数据库、计算机网络等基础知识,并且会要求写一些算法题,测试工程师的算法题相对不难,熟练掌握数据结构和基础算法就能应对。

综上,0基础入行,首先,学一门主流编程语言,目标是研发工程师或者测试工程师的话建议是Java、 JavaScript 、C++(非科班出身可以不考虑)、Python(强烈建议会Python,但不建议只会Python);其次,了解计算机组成原理,这是一个IT从业者必备的基础素质。

磨刀不误砍柴工

最后再给新手提一些忠告:如果基础不扎实就去追赶新技术,会越追越累,对初学者而言,重要的并不是新技术,而是一颗耐心,只有脚踏实地地把基础打好,才是王道,打好基础后,也许你会发现新技术“不过如此”。

感谢阅读,祝大家学有所成!步步高升!


慕课网


既然是新人,关于这个问题,你需要首先了解一下一款互联网产品的生命周期。

互联网产品的生命周期

我们不妨把开发一个网站或者一个App的过程来进行简单的分解和梳理。和传统的软件开发,从需求分析到软件设计与实现不同,这里我们讲究快速迭代。

1、首先你得有个改变世界的想法吧

2、想法是在脑袋里的,首先要变成大家都能看得见理解得了的东西,那就是原型设计了,这一个步骤可以进一步细分为:

信息架构设计:如何组织整个系统的信息。

用户交互设计:用户如何与系统进行交互,大到整个操作流程,小到一个触控手势设计。

视觉设计:Logo的设计,颜色的设计,总之怎么让用户看起来更爽。

3、原型设计就可以作为开发团队的输入了。我们需要把原型变为实际可用的产品。我们可能要去做服务器端的开发和做客户端的开发。

你的应用最终体现为一个App或者网站,那比如说我们在淘宝上购物,我们可以通过PC去访问淘宝的网站,也可以使用淘宝提供我们的App,通过安卓手机或者苹果手机来完成网购。所以你需要根据实际情况来选择一个或者几个平台,来开发Web应用、iOS App或者Android App。值得一提的是公众号开发,是一种好的验证想法的方式,居家旅行、MVP(Minimum Viable Product)开发、杀人灭口的必备良品。公众号的开发在技术范畴上说术语Web开发。

服务器端的开发是可选的,比如说我们做一个闹钟的应用,可能不需要去连接服务器端,完整的功能不需要网络就能完成。但是现在的应用一般是有服务器端的,这样你才有更多的可能性和发挥空间。如果只是本地的话,意味着这个应用完全跟外界是没有关系,你一定要去建立联系才能让你的应用去发挥最大的价值。即使是闹钟应用,也可以看到做得非常好的产品,它们基于时间提醒将你的行为习惯存储到云端,帮你做规划和分析,这样是不是就给一个小小的App带来的无限的想象空间了。别忘了,互联网的最大意义在于连接。而上面提到的Web开发,类似于一个App有手机端开发和服务器端开发,包含了Web前端开发和Web后端开发。

4、做完开发之后,对于服务器端我们要进行部署。在本地计算机上上完成了开发,别人也是访问不到我们的应用的。那别人要怎么样才能访问到我的应用呢?需要把它放到全世界都能访问的服务器上去,而现在我们通过像Amazon EC和像阿里云这样的云计算基础设施,我们能够很方便的拥有一台能够让别人访问的计算机。我们可以按需购买云端的服务器,这也是云计算时代给我们带来的一个便利性。把后端代码去部署到云端之后,你的客户端你要进行应用的分发,你要去提交App Store,或者提交到各种Android的应用市场,你提交上去的时候,用户就能下载了,用户下载之后应用就最终就送达了用户。Web应用不需要经历客户端分发的过程,用户有一个浏览器就能从服务器上获取所有内容和功能,所以说HTML5跨平台嘛。当用户将App下载安装之后,它在产生交互的时候,应用就会跟我们部署在远程机器上的程序进行通讯,最终形成应用的完整体验。

这就是开发的整个过程,而这个过程也是不断迭代的。上面这张图更多关注产品层面,继续延展这个过程,我们改变世界的道路也长着呢。

5、产品开发完了不是扔一旁不管了,你怎么样让别人知道你的App和网站呢?所以接下来你需要推广和营销了,你得通过软文、邮件营销EDM、新媒体(微博微信)、地推、补贴、广告、SEO等等各种大招去让用户感知到你。

6、用户来了,你得经常搞点活动活跃下用户气氛吧,忠实的用户见个微信群听听用户声音,或者举办个线下活动,沙龙什么的,甚至给他们拍个微电影啥的,把他们感动得稀里哗啦的,产生强烈的归属感,打死也不离开你的产品,天天用,还帮你传播。这叫运营。

7、以上所说的整个大过程也是不断迭代的,那么要有人来总体上把握朝什么方向发展,如何扩展产品进入开辟新的战场,通过什么方式赚钱,判断大方向上做什么不做什么,怎么找到你这样希望进入IT行业的一流人才完成以上工作,怎么找到钱来支撑这整个过程。

8、产品做得更大了,IT公司也跟任何公司一样,自然也有销售、财务、行政、法律各方面的问题吧,也得有人做。

IT的职位

说完了这个过程就可以说说有哪些职业了。

搞1和7的通常是CEO或者创始人。

第2部分的工作一般称为设计师,细分一下有信息架构师、交互设计师、视觉设计师这些职位,你应该基本清楚他们干嘛的了

对第1部分、第2部分中的某些部分比较有Sense的人,可以做产品经理。(自己身为一个水货产品经理,第一次回答竟然漏掉了“产品经理”这个关键词,感谢

@王子

提醒 )

第3部分的工作一般称为码农,根据工作描述可以有:iOS程序员、Android程序员、Web前端程序员、Web后端程序员。

第4部分的工作也属于码农范畴,叫运维工程师。

第5、6部分一般就是营销与运营工作,叫法上颇多,互联网招聘网站上的title甚多,营销专员,营销经理,营销总监,运营类似。这部分工作也还能细分,活动运营、内容运营、数据运营、新媒体运营。码农也偶尔回来抢饭碗,而且抢的很有逼格,叫做Growth Hacker。营销和运营过程中基于数据来分析产品与用户是一个重要的手段,而搜集数据分析数据是码农们很擅长做的事情。

那么一个问题来了,一个小团队要搞一个产品去哪找那么多人啊? 这就是传说中的全栈工程师闪亮登场了,这种人传说以一顶十,拳打iOS与Android,脚踢Web与运维,前后端信手拈来。最近还有升级版本2.0:全栈增长工程师。这种大神除此之外还精通数据分析、产品、营销,新生渠道和业界趋势了如指掌,同类产品与上下游生态洞若观火,不得了。不过咱们不妨单点突破,找好其中一个角色进入IT行业,咱也还是专注单点之后再去想颠覆世界吧。

市场、销售、行政、HR、法务对于IT行业也有不同于其他行业的特点,这应该不是你关注的职业了。

其实职位的罗列你去互联网招聘网站上更加全面,一共可能也就几十个类目吧,希望你看到这里,对这些职位跟一个互联网应用的生命周期结合起来,这样有助于你判断,也是我码字的真正意图所在。

如何选择

如何选择这个事情,今天不细说啦。总体来说跟你个人定位和个人特质有关系了。你是左脑型还是右脑型的人,还是左右脑都发达?你是喜欢面对电脑,还是喜欢跟人打交道?你是希望一份稳定的工作,还是期待一个折腾的人生? 回头看看上面的内容,跟找妹子一样,总有适合你的一款吧。just follow your hart。


我只想创业


it行业是一个比较宽泛的行业。一般从前端开始区分的话,有最基本的UI设计师,web前端工程师,后端开发工程师(java PHP .NET等等)。数据工程师,运维工程师、安卓工程师 unity3D游戏工程师等等。

认识自己,精准选择。


想要从事it行业之前,你要去认识自己有没有面向对象语言的基础。对于选择去做it行业,或者说去做有关软件编程开发的行业很多人,对面向对象这个理解,都是很困难的。因为对于编程语言而言,生活中的实例物品都需要去用代码在软件中实现。这就是常说的软件开发中有一句话,叫万物皆对象。你有一个良好的编程基础的话,从事IT行业是比较容易的。如果0基础自学编程难度很大。需要努力和坚持。首先你要理解编程语言,网上有很多视频自学。可以搜一下。比如慕课网 或者百度云盘也有资源 传智播客、黑马视频等等。

关于IT行业的认识

互联网发展到今天it行业算是一个高薪的行业。但是针对所有行业,你首先要去认知这个行业是否合适与你。你可以在网上去搜索一些基本的编程自学的教学视频。然后针对自学视频进行练习和实践,编程语言是一门非常枯燥,而且空洞的语言,因为it行业与互联网行业的发展。 催生了很多it培训机构。我所知的是,全国这些培训机构大多数培训的时间为四个月。费用为19800到两万不等。培训结束后会引导就业。但不是真正的安排就业。这个意思就是培训机构会根据你的本阶段的学习能力和你的学历来去安排和你对等一些项目公司面试。拿了西安来说的话,七月份开始上课,11月份正式毕业。11月份月初的时候就会有项目公司在培训机构里面进行内部招聘。在这里,我要强调了一点是你大学所学的专业以及你的学校,学历是非常重要的。这个牵扯到能不能有资格去面试中国500强或者世界500强的所有软件开发的项目公司。

最后,我希望所有想从事it行业的朋友,首先你要确定你能否适合这个行业。而不是盲目的去选择一个行业。编程这个工作不是所有人都适合去做的。谢谢。


分享到:


相關文章: