1.就业市场调查报告
1.1Django介绍
Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。
Django基于“自备军需”的理念,不必使用单独的库来实现常见功能。使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务。 Django 本身基于传统的 MVC 模型,即 Model(模型)+ View(视图)+ Controller(控制器)设计模式,MVC 模式使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
Django是主要为Web开发服务的,所以Django的未来与Web开发技术发展趋势紧密相关。Django这种基于MVC开发模式的传统框架,非常适合开发基于PC端的前后端不分离的传统网站,因为它同时包括了后端的开发(逻辑层、数据库层) 和前端的开发(如模板语言、样式、JS)。基于PC的网站和自适应(responsive)的手机网站不会消失,不过其重要性会随着手机APP和小程序等的普及而逐渐降低。即使对于开发传统网站,Django也只有在后台开发上有些优势,在前端仍需要借助流行的JS框架如Vue.js才能开发出互动性强且符合未来审美趋势的优秀网站来。
最近几年及未来几年更流行的开发模式是前后端分离。现代网络应用Web APP或大型网站一般是一个后台,然后对应各种客户端(iOS, android, 浏览器)。由于客户端的开发语言与后台的开发语言经常不一样,这时需要后台能够提供可以跨平台跨语言的一种标准的资源或数据(如Json格式)供前后端沟通,这就是Web API(网络应用程序结口)的作用了。利用Django开发符合RESTful规范的Web API效率低下, 不过借助Django REST Framework(DRF)这个灵活易用、功能齐全的神器可以快速开发出高质量的Web API来。因为DRF,Django的应用前景更广了,减少了被淘汰的风险。
1.2Django网站开发技能要求
完整的网站需要结合前端、后端、数据库、服务器等多方面的技术相结合,才能顺利搭建。因此使用Django开发网站还需要具备前端、数据库和服务器相关的知识。
前端技术主要是完成前端页面的开发,实现页面的功能,作为Python全栈开发工程师没有必要完全掌握前端技术,只要达到熟练使用基本功能的水平就可以了。例如前端的核心基础HTML+CSS+JavaScript是必须掌握,此外还要了解各种API的使用。如果想要完成一个质量较高的网站,最好能够掌握一些前端常用的框架,例如jQuery和Vue框架。
虽然Django中有相对应的数据库的插件,完全能够实现网站开发中数据库应用的基本需求,但是作为网站开发工程师最好还是要具备数据库的开发能力,数据库是按照数据结构来组织、存储和管理数据的仓库。
服务器一般有运维工程师进行维护,但是在某些小企业中,包括数据库都是有后端开发工程师来完成的。一般服务器都是采用Linux内核的系统,其操作方式与常用的Windows系统有非常大的差别。
网站开发中的后端程序则是由Python+Django来完成。
此外如果想个人搭建一个完整的个人网站,则还需要对产品设计以及视觉设计有一定的了解。在互联网产品研发过程中,产品设计、视觉设计、前端开发、数据库开发、运维、后台开发岗位都是必不可少的。因此如果想要进入互联网技术领域,最好是对这些技能都有一定的了解。
1.3用人单位类型
Django是一个完整的框架,帮我们做了很多默认的选择,这些预先包含的工具链在搭建web服务的初期非常好用,更适合个人开发者或者小团队。从世界范围来看, Django风头正盛,在美国和俄罗斯这两个超级大国非常流行,几乎是所有语言中首选Web开发框架。
然而在我国Web应用开发首选语言依然是Java及其框架, 国内用Python开发的知名网站有豆瓣和知乎等等。在国内,运用Django开发网站的大型互联网公司并不多,因此工作机会主要还是来自小公司小团队。
1.4发展路径
如果考虑出国,Django作为主流开发框架已经能满足大部分需要;在国内,大数据、人工智能带动的Python热潮只增不减,但仍处于上升期,作为Django开发人员还是应当学习其他如java框架,完善自身技能点,既搏到未来,也兼顾了当下。同时作为技术人员,且是Django这种全栈MAV模式的开发框架,在技术之外更应培养全局观和管理者思维,这样为日后转型管理作准备。
1.5工作内容
Django涉及到多个方面的内容,有些公司要求服务器端开发,有些公司要求前或后端开发,甚至有些小公司还要求Django开发人员要与其他部门沟通,参与产品设计。
1.6岗位薪酬
单纯招聘Django开发的岗位较少,不具备代表性,而Django作为python最具代表性的框架,是python开发的首选,因此搜集了python开发工程师的薪酬情况作为参考。
根据职友集的10893份样本信息可知,python开发工程师的全国平均月薪高达18.5k,居于各岗位前列,其中北京、上海、深圳最高,月薪超过了20k,岗位需求也是这三个地方最多,远远多于其他城市,可见此类高新技术人员还是适合在大城市工作。从工作经验来看,3年是一个分水岭,工作经验3年以内的平均薪酬只有15k左右,而3-5年经验直接飙升到了22k。从学历要求上看,硕士样本还不到百人,大部分还是本科生,且两者的薪酬差距不大,可知python开发更看重工作或者项目经验,而非学历。
1.7个人能力与市场需求的差距
从知识面的角度上看,个人在学校所学的知识较为广泛,如前端里学过了jsp和html,后端学过java系的servlet和JDBC,数据库有MySQL、SQL server。通过本次对python的复习和python系Django网站开发的学习,又拓宽了网站开发的技能方向,已经能满足许多岗位整体上的需求。然而这些技能本人大都浅尝辄止,一方面知识深度严重不足,另一方面缺少项目实践经验,而后者其实也是前者的基础,因此归结到最后,本人要想满足市场需求,在求职过程中取得优势,仍需要通过大量项目实践来拓展知识深度。
2.学习规划
接下来为期七周的学习力求做到学习时间一周不少于五天、一天不少于4小时,具体学习计划可分为三个阶段:
1)2-4周:跟着讲解视频,用三周的时间一边完成Django基础知识学习一边复习python的知识。
2)5-6周:找到Django网站开发的实战项目,跟着案例一步步完成。这一阶段的目标是既能查缺补漏,丰富知识,同时也学习从知识到实践的转变,构建网站开发的全局观念。
3)7-8周:找到自己喜欢或适合的项目,尽量独立开发。这一阶段既是所学知识的综述概括,也应该学习一个网站开发的创意过程,如网站的功能有哪些、网站页面的独特标识是什么、如何吸引用户等。最终是开发一个具有独特创意的网站。
3.学习资料
1)B站尚硅谷的Django开发教学视频。
2)B站django 3教程
3)书籍《精通Django 3 Web开发》