十年Java老鸟 威哥
作为一个十年以上的程序员老鸟,我不会去直接回答应该选择哪个,选择的权利永远是你自己,只是在选择的思考上要去多了解行业,市场,以及结合自己的情况,做出最适合自己的选择,我的选择不等于你就要选择,每个人都一样,所以,如果你愿意花5分钟读完以下内容,也许你能找到自己的答案。
软件开发的过程
零基础小白,我认为先要了解一下软件开发的过程,这是一个工程问题,就有分工合作,都有哪些必需的岗位,这些岗位的发展路线是怎样的,了解了这些可以帮助你更好的选择。
首先一个项目拿下后,完成概要设计,详细设计后进入开发阶段,这个阶段一般由这些人员角色组成:
后端开发工程师:负责后端业务逻辑模型搭建,架构搭建,业务功能实现,说白了就是完成目项的大脑部分工作。
前端开发工程师:负责项目的界面展示,用户交互相关的业务逻辑,界面效果等(当然这部分还得由UI设计师提供原型图),也包括移动端适配。
测试工程师:包括测试业务功能,代码逻辑,压力测试,并发测试,集成测试等确保项目符合需求方的实际要求,可以上线发布。
运维工程师:负责项目上线后的服务器维护,升级,安全策略等,这是一个持续的过程。
移动端工程师:如果项目有移动端原生开发需求,通常需要配备Android、ios开发人员。
简单来说,可以分为后端开发和前端开发两部分,是必备的人员配置。下面我从这两个角度来分析一下后端和前端程序员分别要做什么,以及如何规划自己的职业生涯。
后端开发
后端开发可选的语言比较多:PHP、python、Java、Go、Perl、.NET等都是用来完成后端开发的语言,从语言特点分析来看:
PHP是一种解释执行的脚本语言,语法和C语言类似,易学易用,不懂电脑的非专业人员稍经学习也能使用PHP,但在大型应用上PHP的性能不如Java,安全性也要低得多,因此PHP在小型网站开发上优势明显,在大型企业级项目中通常选择Java,也有混合式开发,Java用来实现核心业务接口,PHP完成业务功能的调用。
python是近年来比较火的语言,入门简单,可从事爬虫、WEB开发、数据分析和简单的人工智能开发,目前以数据分析相关的方向发展较好。
Go语言又称为golang,是google公司发布的 Go 语言语法与 C 相近,在内存安全,并发计算上优势明显,目前在区块链领域有不错的建树。
Perl语言从最初是为文本处理而开发的,现在用于各种任务,包括系统管理,Web开发,网络编程,GUI开发等,市场需求量比较小。
.NET是微软公司推出的,使用C#语言进行开发,目前市场应用领域局限于传统的工厂生产方面的控制系统,管理系统等。
Java语言是迄今为止可以跟C/C++语言齐头并进的开发语言,以优点突出统领着大后端开发,应用领域广泛,比如金融、互联网、物流、电信、教育、电商、政府、银行等等,对系统安全性要求高,大流量并发,性能要求高的项目都会选择Java作为后端主力,由其是当下互联网大厂项目,对高可用、高性能、高并发的三高特点,Java成为首选。
前端开发
前端开发几乎在所有项目开发中都需要用到,前端界面与用户交互的部分都可以归到前端开发,目前主流的前端技术HTML5,成为构建用户界面的首选,在用户交互上,PC端,移动端都离不开前端开发,涉及的技术栈包括不限于HTML、CSS、JS、VUE、JQuery、React等,前端开发入门简单,有一定的色彩搭配功底更好(当然还有UI设计师),这也是程序员里女生比例比较高的岗位。
个人的职业规划
其实个人职业规划这块会被很多人忽略,尤其是应届毕业生,我们想想,为什么有那么多人最后要选择转行学习编程,这应该是没有做好职业规划的后果,那对于刚毕业的同学来说,不能盲目的找个工作凑合先干着,能不能干成再说,这其实是错误的,拿我自己来说,计算机专业毕业后进入北京的一家公司做Java开发,也是庆幸没有选错,因为那个时候自己也不知道未来怎么发展,也没有前辈帮助做个职业规划,还好,一直从事Java相关的工作至今,不离不弃。也许很多同学就没有那么幸运了,如果你能看到这,也许可能给你自己的职业规划提供点参考。
从编程语言本身的发展潜力来说,Java无疑是最成功一门语言,不管是涉及的行业领域,还是市场活跃度,还有更重要的是薪资水平,随着自己的经验以及对行业的理解深入,能力与薪资会成正比的增长:
初学者要怎么入门Java?
Java的前景很美好,但能不能学得会,还是得靠自己,Java究竟难不难学,需要什么条件才能学,教大家一个简单的自我判断的方法,自己回顾一下高中时期(没上过大学初中也行)数学学得好不好,当时的方程式会不会解,公式能不能理解,如果你觉还OK,那恭喜你,只要你努力付出时间,就像对热恋情人一般的对待Java,你一定能学成功,换句话说,你如果是三天打鱼两天晒网,那对不起,Java这个情人也不会走进你的内心。
最后,祝你Java路上越走越宽阔。
有疑问加站长微信联系(非本文作者)