如果未来想从事研发方向,可选的余地比较大。从大的方向分为移动端、服务器后台、web、嵌入式、客户端、算法等。
1)移动端开发移动端开发目前没有过去几年热了,主要是android、iOS、小程序、公众号。
android从2008年到现在,已经有十年的时间了。由于生态开放的特点,不同的厂商定制了不同的系统,所以开发过程中除了实现需求之外,还要考虑不同机型的适配。android开发目前也有两种语言,Java和Kotlin。
iOS和android恰恰相反,系统是封闭的。但是随着苹果机型的不断升级换代,适配工作相比以前也有了一定的工作量。iOS开发语言包括swift和objective-c。
微信小程序和公众号是腾讯基于微信推出的应用。随着社交的深入人心,这两年也比较火。采用的开发语言主要还是html、css、JavaScript的变体,腾讯做了二次封装。
2)web开发这里的web开发包括传统的pc端BS结构的开发,以及移动端的web开发,比如移动网站,移动端混合开发等。开发语言主要还是html、css、JavaScript。
3)服务器后台开发
服务器后台开发是支撑上述的移动端开发和web开发。移动端开发和web开发从某种分类上讲属于前端开发,访问的数据都是来源于后端。服务器后台开发涉及数据库、接口等。开发语言包括Java,PHP,Node.js,python,C++、C#、C、Go、Ruby等。
4)嵌入式开发嵌入式开发典型的应用场景比如可穿戴设备,银行的 ATM取款机,以及我们使用的各种上网设备等。嵌入式开发也包括应用、驱动、底层开发等。开发语言包括C++、C、java等。
5)客户端开发这里说的客户端开发指的pc端的CS结构的开发,最早的比如MFC,之后的QT等等。使用的开发语言包括C++、C#、C等。
6)算法算法指的是服务于其他应用的底层处理。比如我们使用的手机,如果部署基站能让信号最优,或者像我们使用的打车软件,如果规划路线能让乘客付费最少等等。算法的目的是优化程序,不局限于以上的五大分类,每种编程语言都有自己的算法。
当然,实际应用中还有其他的分类,也可能各自有交叉,大家对号入座。
测试的目的是为了减少bug,提高系统运行的稳定性、安全性等。所以,测试和开发是不能分开的。测试也分两类,一类是开发性测试,有时需要编写代码,比如自动化脚本等;另一类是业务类测试,重点是测试系统的运行是否符合预期,软件的操作是否流畅,体验性好坏等测试。
如果你是计算机专业相关的学生,但是对编程有没多大兴趣,不妨可以尝试培养测试的能力。
运营在互联网领域强调的多,经典的四大运营职能划分包括内容运营、用户运营、活动运营和产品运营。典型的应用场景比如先前很火的拼多多,我们在各种平台上都能看到它的身影,一方面是拉新客户,另一方面是宣传,这些都是运营需要考虑的。