本
文
摘
要
计算机领域范围广阔,虽然都是程序员,但是每个人擅长的技能却是不同的,就好比医生也会区分儿科、妇科、骨科等等,那么程序员的领域又是如何划分的呢?
从行业的角度来讲,计算机技术已经在金融、医疗、教育、交通等各行各业得到了广泛的应用,计算机相关从业人员在就业时,应根据自身的兴趣和资源选择合适的行业,在某一个行业业务层面上的深耕和积累对个人的职业生涯是至关重要的。
从编程语言的角度来讲,可划分为JAVA工程师、C语言工程师、Python工程师、PHP工程师等等,实际上随着工作经验越来越丰富,每个程序员可能会掌握多门编程语言,只是更擅长或者更常用某一门语言罢了。
从技术的角度讲,互联网公司将研发人员按职能划分为:后端工程师、WEB前端工程师、Android工程师、IOS工程师、算法工程师、测试工程师等,不同的工程师职能不同,需要掌握的技能也不同,也有一种工程师被称为全栈工程师,那就是他什么都会,但也可能什么都不专,也许有一天你也会成长成为一名全栈工程师,这就是后话了。
本文主要讲述后端工程师应该具备的最基本技能,供计算机相关专业大学生或者想要自学编程从事软件研发的人士作为参考。
讲到这里,你一定会想什么是后端工程师,后端工程师的职能是什么呢?随着前后端分离模式的兴起,在互联网公司研发部门分别设立后端工程师和前端工程师岗位成为趋势。后端工程师主要负责业务逻辑处理、数据处理,将用户端信息生成静态资源,并将静态资源通过网络按照约定好的协议传输给前端。相较于前端工程师,后端工程师应具备较强的逻辑思维能力和数据处理能力,而不必注重界面是否美观、用户体验是否良好,因为这些都是前端工程师和产品设计人员需要特别考虑的。若想成为一名优秀的后端工程师,需要掌握更多的技能,也需要有扎实的计算机基础功底,当然职业发展空间也更广阔。
掌握一门编程语言
编程语言是从事计算机软件研发的基础,是每个程序员的必备技能,我们应该如何选择合适的语言开始学习呢?
现在使用较广泛的适合后端开发的编程语言主要有Java、Python、PHP等。
对于在校大学生来说,一般老师会教授Java、Visual Baisc、C语言等,无论是什么语言,一定要好好学习,在掌握了一到两门语言的基础知识后,再学习其他语言就会非常容易了,千万不要有“在学校里学的东西工作之后也用不上"这样的想法,否则迟早有一天你一定会后悔的。此处加一句题外话,应届毕业生一定不要错过校招,否则那也是要后悔的!
对于自学编程的朋友们来说,Python是一门比较容易上手、应用广泛并且发现势头很好的语言,比较推荐学习。当然自学的朋友还要考虑的一种情况是,如果你有好朋友已经在从事编程工作了,那么你可以跟着他学,他用什么语言你就学什么语言,先入了门再说,毕竟有人在身边指导一二是事半功倍的,如果全靠自己钻研是很有难度的。如果你的朋友还能把你内推到公司去上班,那他对你的恩情是无以为报的,如果他不能,那也是正常的,毕竟程序员的权利是有限的,况且现如今大环境不好,企业加人都很谨慎。所以如何就业也需要提前考虑。
如果你已经有了心仪的公司,可以时常关注他们的招聘信息,通过招聘信息了解企业的需要,按需求学习也是一个不错的方法。
掌握一门关系型数据库语言
主流的关系型数据库主要有Mysql、Oracle、SQL Server、Sybase、Access等。
计算机相关专业的的学生一般都会学习一门课程:《数据库设计与开发》,老师会以一门关系型数据库为例进行讲解,比如SQL SERVER。因为所有关系型数据库的底层逻辑都是相通的,语法也是类似的,只要掌握其中一门,其他语言也都可以快速应用。自学编程的朋友建议从Mysql入手,Mysql开源免费,在中小型项目中使用率较高,如果想在个人电脑上安装服务端用于学习也不会占用太多资源。
搭建开发环境是学习一门编程语言的基础,只有动起手来才会快速成长。网络上有很多Mysql安装教程,所以在自己的电脑上安装Mysql服务端并不是一件难事,有一点需要注意的是,安装包的版本一定要和自己的操作系统匹配,比如64位的Windows操作系统一定要下载Windows版本64位的安装包,版本一致的问题在程序员的成长道路上时常会遇见,一定要引起注意。这里涉及许多技术问题,就不做过多的讲述了。我想要强调的是,一定要有一个能够执行程序语言的环境,这样我们才能够把在书本或者网站上学习到的SQL语句在语言环境中执行并看到效果,如果语句有错误也可以不断调试,直到成功为止。
数据库是一门复杂的学问,如果我们只是想快速入门的话,掌握基本的sql语法就可以,因为真正到公司参与项目的时候,会有运维或者高级程序员部署好数据库,做好数据库的备份、权限、事务等等相对复杂的工作,分配给初级程序员的基本都是一些单表的增删改查功能。但是入门之后的下一步就要抽时间学习较为复杂的内容了,《数据库设计与开发》这门课程,建议每一位后端程序员都能够系统地学习,他将帮助我们在程序员的道路上走的更远。在此也提醒在校大学生,一定要用心学好每一门课程,尤其是必修课,因为它们的存在并非偶然,它一定会在编程的道路上与你相遇,并且很有可能会成为你发展的瓶颈。
学习使用一种Web应用框架
不同的编程语言对应的框架和组件也是不一样的,并且种类繁多,对于新手来说会有些迷茫,所以建议先选择一个容易上手的框架入门,再在工作中学习新的技术。如果你选择了Java作为主要编程语言,那么建议学习Spring Boot框架;如果选择Python编程语言建议学习flask框架入门。
对于新手来说,使用框架可以帮助我们提高工作效率,快速参与到团队研发任务中去,但是往往会导致我们只知其一不知其二,只知道可以这样做,却不知道为什么这样做可以达到目的,一旦出现了架构方面的问题就不知道如何下手了。所以当我们掌握了最基本的技能,把它作为敲门砖进入到企业实际项目研发中之后,下一步要做的就是通过阅读框架源代码了解底层逻辑,做到不仅会使用,还要知道为什么,只有这样,当项目出现性能层面的问题时,才能快速解决,当然要做到这一步,需要很扎实的基本功。
学习HTTP网络通信协议
在前后端分离Web项目中,往往会采用HTTP用户自定义协议来实现信息交互,所以了解HTTP协议的基本常识是必须的。
那么如何验证自己是否掌握了HTTP协议并且能够在实际项目中应用呢?一个比较快捷的方法就是,打开谷歌浏览器,点击右上角选项-更多工具,打开开发者工具,然后访问我们常用的网站做一些鼠标点击操作,比如打开百度搜索某个关键词,然后打开上一步的开发者工具窗口,会看到如下图所示的界面,上方选项中选择"XHR",会看到一些接口调用情况,我们需要做的就是在左侧选中一个接口,在右侧查看各个选项卡中的每个参数,如果能够明白每个参数的意义,那么说明你已经掌握了HTTP协议的基本应用。
还有一种方法就是我们可以搜索一些大厂对外接口文档官网,比如微信开发者接口文档,尝试从头阅读整个文档,里面有一些概念、规范是可以参考和学习的。
HTTP协议属于TCP/IP协议体系的应用层,记得大学里有一门课程叫《计算机网络》,如果有选修过这门课程的同学一定不会陌生,实际上HTTP协议的应用只是这门课程的皮毛罢了,如果真正想在互联网项目研发中有有更深的造诣,这门课程是一定要学透的。我想阿里巴巴那些迎战双十一高峰流量的技术团队,如果没有系统学习过计算机网络,那是不可能的。