对外行来说,电脑这块你都会,尤其是家里亲戚,更是把你当成一个电脑维修工人,反正每次回家修修电脑,修修手机是很正常的事。
对内行来说软件专业可是五花八门,说一些都是可能经常听过的,比如大数据、物联 、区块链(web3.0),很高大上,但跟我们关系确实不大,你老老实实学好基础再去考虑这些吧。那软件专业方向大概都有哪些呢?我这里写的是大概,因为我担心我也写不全。
正常软件制作主要岗位有以下几个,而大部分人未来就业也是以下几个岗位
1.项目经理(管理人员,还有架构师、技术负责人等等,凤毛麟角的岗位我就不写了)
2.产品经理(产品设计及对接客户)
3.UI设计师(根据产品经理设计做出效果图,要求软件工程师1比1还原)
4.软件工程师(我们主要是这个方向)
5.测试工程师
我们今天要讲的主要是软件工程师,因为一个团队里面占比最大就是这块,当然其它专业你也可以选择,我也不一一列举了。
1.应用系统开发工程师:其实这个岗位听起来难,但是工作起来就是一名普通的程序员,就是给IOS或者是安卓编写应用程序的开发人员。
2.嵌入式系统开发工程师:随着消费家电的智能化,嵌入式更显重要。郑州北大青鸟培养的嵌入式工程师可在各类电子信息技术企业、嵌入式软件及相关外包公司、参与和组织嵌入式软件开发、测试工作。
3.游戏开发工程师:21世纪,游戏作为说是最炙手可热的产业之一。游戏开发工程师顾名思义,就是开发一些手机端和PC端的游戏,供大家消遣娱乐。
4.WEB开发工程师:它的主要职责就是主要职责是利用各种Web技术进行产品的界面开发,进行丰富互联 的Web开发,致力于通过技术改善用户体验。
5.系统集成工程师:简单地说系统集成就是把各种设备、软件系统集成到一个系统完成一个应用。系统集成工程师也就是让系统体积更小,效率更高的人。
6.软件测试工程师:软件测试是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求,主要是确认软件的质量如何,以改进软件产品。
7.数据库开发工程师:它是指设计、开发、维护管理大型数据库的专业人才,因为现在信息化时代,数据越来越庞大,需要专业的人才进行管理。
8.数据库分析师: 数据分析师指的是不同行业中,专门从事行业数据搜集、整理、分析,并依据数据做出行业研究、评估和预测的专业人员。他们利用分析数据来研判市场动向。
好吧,上面都是 上抄的,我接下来深入解释下大部分公司都有哪些岗位,每个岗位适合什么样的人?
一、软件制作过程中的分工(编码阶段)
你认为什么是一个软件?一个手机APP?一个 站?一个应用程序?一个小程序?一款游戏?我觉得说得都没错,上面都算是软件。但上面呈现出来的只是软件的表现形式,具体表现什么,整个软件的业务逻辑处理,数据存储,还有一个服务端在做这块内容。 所以简单来讲,我们软件制作分工可以分为前端开发 和 后端开发。而APP、 站、应用程序、小程序、游戏,你都可以理解它是一个View(视图),而这个View(视图)一般是由前端工程师开发出来的。而对应服务端的内容一般是由后端工程师开发出来的。
二、后端
相当一部分的后端开发工作就是开发数据访问服务,使前端可以通过调用后端服务对数据进行增、删、查、改,也就是经常听到的crud,从而实现前端对用户的请求响应。
比如你在一个大型 站注册时,该 站的前端就会调用其后端,把你的用户信息写入数据库,一个后端服务其实不局限于只被前端调用,还可以被mobile app调用,还可以其他后端服务调用。
当然我说的这些一个初中级工程师平常基本的工作,一旦你踏入高级或架构师行列,做的就不止这一些了,架构选项,架构调优,性能优化等等。
后端工程师主要需要的技能如下:
1)计算机基础
2)前端知识
由于前端与后端的工作密切相关,所以后端工程师也应了解、学习前端的基本知识,且掌握的前端开发水平要能够支撑验证后端实践的程度。
3)操作系统
后台开发中,熟练使用Linux系统是最为关键的一环,毕竟后端服务多数都运行在Linux系统上。Linux的学习可以从以下方面入手:
4)编程语言
后端工程师至少要掌握一种编程语言。掌握一种编程语言,指的是要足够了解这种语言的功能和语法特性,能够理解它的设计原理、能力边界与高级功能,这样也有助于其他语言的学习。
5)版本控制系统
版本控制系统可以记录一个或若干文件内容变化,以便将来查阅特定版本的修订情况。在大型软件项目中,版本控制系统可以有效组织、管理源码及历史版本。常见的版本控制系统主要分为两类:
6)数据库
后台服务程序会处理各种数据,如订单、合同、用户数据等,这些数据一般存储到数据库中。数据库的学习主要分为两类:
关系型数据库(Relational Database)指的是创建在关系模型的基础上的数据库,用于超大规模数据的存储。它借助于集合代数等数学概念和方法来处理数据库中的数据。数据库管理系统(DBMS,Database Management System),是一种专门用于存储、修改并从数据库提取信息的系统软件。
常见的关系型数据库管理系统主要有MySQL、MariaDB、MS SQL、Oracle等。
非关系型数据库是对不同于传统的关系型数据库的数据库管理系统的统称,它使用对象关系映射(ORM)来促进与其数据的通信。
常见的非关系型数据库管理系统主要有MongoDB、RethinkDB、CouchDB等。
7)安全
后端开发中,由于系统自身的漏洞引发的恶意攻击等安全问题,需要引起后端工程师的密切关注:
8)设计模式
软件开发中要遵循最佳实践,这有助于后端工程师们写出更加健壮、可扩展的代码。
设计模式七大原则:
二、前端
前端工程分类更清晰下,就按我们刚才举例来说吧。
站/小程序:前端工程师。
APP(苹果/安卓): 苹果开发工程师、安卓开发工程师,这两个也可以统称应用工程师,但一般我们不会这么叫。
应用程序:应用工程师。
上面所说分类统称都是前端,对应的工程师岗位按我上面的叫没啥问题,游戏这行我没进入过,怕误导大家,有同行的兄弟可以补充下。
开发APP和应用程序的又是另外一个分类,不过逐渐进入末期了,或者不久后大前端就可以把这波人淘汰一大半,目前已经淘汰很多了,今天重点还是讲偏 站/H5/小程序等前端工程师,其它感兴趣可以去百度搜索一下。
前端开发工程师需要具备创新能力,高超的技术创造力和想象力,良好的沟通能力和不断学习的能力。当然专业能力也是非常重要的,具体包括但不限于以下:
1)HTML5+CSS3
2)JS交互设计
这一部分主要掌握JS的基本语法、算法和高级语法,熟练的使用面向对象的思想进行DOM编程,通过jQuery经典案例学习精通jQuery技术;
3)Node开发
这一部分主要ES6的基本用法、兼容性和核心语法,能使用ES6实现前端的模块开发,学习Node开发,并能用Node.js操作MongoDB数据库;
4)前端框架
这一部分主要是学习Vue、React、Angular这些前端主流框架,在实际开发中做到熟练运用,提高开发效率;
5)小程序与APP开发
掌握小程序和APP的开发,学习第三方AI平台的使用,并学习React Native混合开发框架,实现快速开发。
三、总结
前端和后端都不容易,最重要是学好一门,另外一门也自然可以掌握起来。前期学习可以倚重,但千万不要轻易放弃,比如你喜欢前端,你可以70%的精力学习前端,留30%的精力学习后端,等你入了门(做完一个项目)你再进行选择一次。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!