开发者网络

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 84|回复: 0

入行软件开发,都有哪些细分职业可以选择?

[复制链接]

1

主题

1

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2023-2-12 16:08:33 | 显示全部楼层 |阅读模式
开发者、程序员、工程师(攻城狮),一直是高薪行业,互联网应用如今已经普及,物联网、大数据、虚拟现实、增强现实、人工智能、智能硬件也正在逐步深入的影响着我们的生活,而这些都是由程序员一行一行代码实现的。如果说房地产时代,需要大量的民工建设者,如今的高科技时代,需要的是大量的开发者。
如果你有梦想成为一名开发者,那现在就行动起来吧!相信自己,你就是你人生唯一的负责人。正所谓过去决定现在,现在决定未来,提前做好职业生涯规划是实现职业理想和改变生活状态的有效途径。希望此文能给你的职业入门和职业进阶带来帮助。
软件开发者是分很多种类的,每一类开发者又有很多语言可以选择,可能初入软件开发会有这样的苦恼:做哪方面的开发者?开发语言五花八门,学什么开发语言?如果你有这方面的疑问,关注[nixi6逆袭了]知乎和同名微博,一定会有所收获。
软件开发者通常分为:前端开发(WEB开发)、服务端开发(后端开发)、运维开发、测试开发、大数据开发、硬件固件开发、安卓开发、IOS开发、全栈开发等。各类开发者、程序员已是名副其实的最有可能成功逆袭的职业。
前端开发,又叫web开发,前端开发是从网页制作演变而来。早期的网页制作主要内容都是静态的,以文字图片为主,用户使用网站也以浏览为主。随着互联网的发展,现代网页更佳美观,交互效果更加显著,功能更加强大,于是网站开发细分成了前端开发和后端开发。现在前端开发的主要技术通常是指html、css、javascript技术和一些前端框架的使用,如Bootstrap,jquery,react,vue,angular等。
服务端开发,就是开发运行在服务器端的程序,为客户端提供API接口服务。软件客户端和服务端的协作,分为B/S(浏览器/服务器)和C/S(客户端/服务器)两种模式,浏览器就是一种通用的客户端,现在流行的APP就相当于个性化的客户端,无论B/S还是C/S都要有相应的服务器端程序提供服务。对于绝大部分应用,服务端的核心就是数据库,服务器端的程序就是根据应用需求来管理和操作服务端的数据库,通过对数据库的操作,返回满足用户需求的数据。
运维,本质上是对网络、服务器、服务的生命周期各个阶段的运营与维护,在成本、稳定性、效率上达成一致可接受的状态。一个流行的网络应用,在服务端通常少则需要几十上百的硬件服务器,多则成千上万几十万的硬件服务器,这些服务器的应用程序部署(CICDC持续集成持续发布)、日常维护、监控,如果没有一整套系统纯靠人工,那是相当不靠谱的。所以运维开发主要是开发能够提高运维工作效率的软件系统,一个套运维系统也是分前端和后端的。运维开发主要使用Python和PHP,其它语言也都可以实现,只是在运维开发方面不是很流行。运维开发用到的数据库除了Redis、MySQL和MongoDB这三种,通常还需要一种时序数据库。运维开发除了语言和数据库之外,运维还需要精通各种服务器操作系统如CentOS、Unix、WINDOWS Server等,可以说运维开发属于全能开发岗。
测试开发,这个岗位的核心职能还是测试,是通过开发的手段提升测试的效率。也就是用程序自动化的方式实现测试,来保障软件产品的质量,包括功能测试和性能测试。对于测试开发,语言主要是用Python,其它任何语言都是可以的,只是Python相对更适合,测试开发很少用到数据库,即使要用到数据库,Redis、MySQL和MongoDB这三种也完全能够满足。
大数据开发、数据仓库、数据安全、数据分析、数据挖掘等都是围绕大数据的商业价值应运而生。大数据开发主要分为大数据平台开发(研发级)、大数据应用开发和大数据分析(统计学和机器学习),不同岗位需要面对不同的岗位职责,也需要具备不同的知识结构。目前从事大数据应用开发的语言包括Java、Python、Scala、R等,Java语言由于具备较为完善的生态,而且Hadoop平台自身也是Java语言开发的,所以Java语言往往是比较常见的选择。在学习Java语言的过程中,可以同步接触Hadoop平台,掌握Hadoop平台的整体结构,并且通过Java完成Hadoop平台的一些案例实验,进而逐步掌握在Hadoop平台下的Java应用开发。大数据分析通常采用统计学分析方式和机器学习方式两种,统计学方式采用Python和R语言是不错的选择,而机器学习往往更多采用Python语言来实现,同时需要学习一系列算法的实现过程,包括Knn、决策树、支持向量机、朴素贝叶斯等等。所以,从事大数据分析需要具备一定的数学功底。
固件开发,另一个比较通俗的说法叫做芯片驱动开发,是使能芯片使用的基本软件(半硬件)岗位。固件(firmware)一般存储于设备中的电可擦除只读存储器EEPROM(Electrically Erasable Programmable ROM)或FLASH芯片中,一般可由用户通过特定的刷新程序进行升级的程序。一般来说,担任着一个硬件产品最基础、最底层工作的软件才可以称之为固件,比如计算机主板上的基本输入/输出系统BIOS(Basic Input/output System),在以前其实更多的专业人士叫它固件。通常这些硬件内所保存的程序是无法被用户直接读出或修改的。在以前,一般情况下是没有必要对固件进行升级操作的,即使在固件内发现了严重的Bug也必须由专业人员带着写好程序的芯片把原来机器上的更换下来。早期固件芯片一般采用了ROM设计,它的Firmware代码是在生产过程中固化的,用任何手段都无法修改。随着技术的不断发展,修改固件以适应不断更新的硬件环境成了用户们的迫切要求,所以,可重复写入的可编程可擦除只读存储器EPROM(Erasable Programmable ROM),EEPROM和flash出现了。这些芯片是可以重复刷写的,让固件得以修改和升级。固件开发主要使用C语言,除了C语言之外还需要熟悉Linux嵌入式操作系统FreeRTOS、uCOS家族(I/II/III)、RT-Thread等。固件开发,所有做芯片,以及做硬件的公司都需要,但是学习道路比较漫长、学习曲线比较陡,不仅要会C编程,还要熟悉硬件和嵌入式系统,属于软件开发和硬件开发的交叉学科。
安卓开发,是指Android平台上应用程序(APK)的制作。Android 是Google开发的基于Linux平台的开源手机操作系统。Android由Java语言编写,所以安卓开发也主要使用Java语言。安卓平台上的应用主要使用桌面数据库SQLite。Android操作系统不仅仅用于手机,很多硬件也都内置了安卓系统,这意味着安卓开发不仅仅是开发手机上的APP,各种硬件设备,手机、平板、电视和各种智能家居上的应用软件都需要安卓开发。Android开发环境主要用Android Studio和Eclipse,近些年Android Studio更流行。移动互联网和物联网由早期的爆发式增长发展到当前的平稳期,安卓开发者的数量和需求适量也一直很大很平稳。
IOS开发,是指美国苹果公司发布的iOS平台上应用程序的制作。iOS是由苹果公司开发的移动操作系统。苹果公司最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch 、iPad 以及 Apple TV 等产品上。iOS与苹果的 macOS 操作系统一样,属于类Unix的商业操作系统。原本这个系统名为 iPhone OS,因为 iPad,iPhone,iPod touch 都使用 iPhone OS,所以 2010 年 WWDC 大会上宣布改名为 iOS。iOS 系统支持的开发语言有Swift,Objective-C、C、C++,当前开发iOS 应用,Objective-C是主流,Swift是未来趋势。iOS应用的桌面数据库一般使用SQLite和CoreData。iOS应用的开发环境是XCode,别无选择。随着安卓手机市场占有率的不断攀升以及国产系统的逐渐成熟,iOS开发也成萎靡趋势,但目前的需求量依然不小。
全栈工程师,就是前端、后端甚至运维都能统统拿下的全能开发工程师,能利用多种技能独立完成产品的人。全栈开发者本身是音译过来的,叫做Full Stack Developer,也就是“全能开发者”,通俗点说就是自己能搞定一套系统(C/S、B/S、App、前端、后端、运维)。全栈开发者/全栈工程师,通常指的是Web开发中的前后端都会的开发者。即自己能搞定前端部分(HTML+CSS+Javascript等),又能结合后端部分(如NodeJS+MySQL等),同时还能自己管理好服务器(LAMP/LNMP+网站优化等)。
以上信息如果对你有帮助,记得点赞和关注[nixi6逆袭了]知乎和同名微博哦,CIO、CTO分享:如何修炼成IT大牛,祝你逆袭成功!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|开发者网络

GMT+8, 2025-4-9 17:35 , Processed in 0.084293 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表