*目前的程序员总数大概为800万;而科班出身,即本科或研究生是计算机专业的程序员大概为40万。也就是说:外行人不仅能转行做程序员,而且现在从业的大多数程序员都并非科班出身。科迅教育下面带大家详细了解一下。
程序员这个词算是一个统称,百度百科上给的定义是:程序员(英文Programmer)是从事程序开发、程序维护的专业人员。
具体能从事的岗位大概有:
一、开发工程师
包括:前端开发工程师、后端开发工程师、算法工程师、移动开发工程师、软件开发工程师、嵌入式开发工程师等。
不严谨的说法是:前端是用户看得见的,比如浏览器的图片、文字;后端是用户看不见的,比如后台数据。前端开发工程师是写代码给浏览器看的。后端开发工程师是写代码给服务器看的。
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
一个不恰当的比方,算法工程师就像是科学家,做完研究之后把研究结果交付给后端开发工程师应用。这个岗位对数学和逻辑思维能力有很高的要求。
移动开发工程师跟前端开发工程师类似,移动开发工也称为手机开发,或叫做移动互联网开发。是指以手机、PDA、UMPC 等便携终端为基础,进行相应的开发工作。
软件开发工程师一般指从事软件开发职业的人。软件工程师跟一般程序员的分别,在于一个程序员的工作是按照指定的规格进行编码,而软件工程师的工作则需要设计和规划。
嵌入式开发是指在嵌入式操作系统下进行开发,包括在系统化设计指导下的硬件和软件以及综合研发。
二、技术管理者
包括:主管、经理、技术总监、CTO等。
技术管理者都来源于一线,每7~10个技术人员中有一个技术管理岗位。
对于一线技术人员来说,有了3-5年经验之后转管理是一个比较好的契机。
三、架构师&复合开发工程师
包括:前端架构师、后端架构师、全栈(前端+后端)、后端+算法等复合开发工程师。
架构师跟普通开发工程师的区别是:开发工程师做的是一线的工作,而架构师更多的情况是作为技术储备,类似专家的角色。他们不是把系统架构搭建好之后就没事了,普通技术人员解决不了的疑难杂症都会交给架构师解决。
架构师比管理者数量更少,通常5~6技术岗位中配备一个,小公司里面多由CTO或经理兼任,大公司会有专门的架构师,底下不带人。
四、测试开发工程师
测试:查找软件缺陷;开发:开发工具、平台系统。
厉害的测试开发工程师既能测试又能开发。因为互联网时代不像从前软件刻盘卖的时候,需要把产品测试得非常完善才推出,而是可以在线快速修复bug,迭代版本。
五、运维工程师
负责日常维护,确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI。
简单来说就是保障业务长期稳定运行(如网站、游戏的服务器),同时保障数据安全可靠(如用户名密码、数据)。
六、DBA(数据库管理员)
一般意义上的数据库管理员是一个负责管理和维护数据库服务器的人,数据库管理员负责全面管理和控制数据库系统,包括数据库的安装、监控、备份、恢复等基本工作。
那么前端和后端工程师适不适合新手转行呢?其实,转行初级的前端或后端工程师,你所做的动作是使用一个普通的框架,学大众化的技术,理论上不需要英语基础都可以学会的。
如果一个技术,市场上只有少于30%的公司在使用,那么建议不要学习它。因为学完之后当你找工作时,一百家公司里面只有二三十家公司可以选择,对于转行的人来说很难。而如果学的技术市场上有30%以上公司都在使用,那么它肯定有中文的文档和论坛,那么不需要会英文也能学习。
所以,对于想转行做程序员的伙伴来说,可以先转行成为前端工程师,再逐步提高自己的英文水平和学习后端或算法工程师的知识。
这里并不是说前端工程师的工作简单,而是相较于后端工程师,其知识对于外行人来说更直观更便于理解,也更容易成功转行。