点击上方蓝字设为星标
每周一、三、五上午 8:30 准时推送
下面开始今天的学习~如今进入计算机行业的人越来越多,计算机行业有入门简单,上手容易的特点。然而这也导致部分工作了几年的后端工程师的技术水平仍然停留在对数据库「增删改查」的阶段。实际上如今的市场上会增删改查的后端程序员不再稀缺,一名优秀的工程师仍然需要不断提升自己。
程序员是一个需要终身学习的职业,计算机行业最重要的能力莫过于学习能力。在工作的每个阶段都应该对已掌握的知识及时总结归纳,列出一份自检手册,逐步构建出自己的知识体系,并时刻提醒自己去学习尚未掌握的部分。这份自检手册应该包含至少以下几方面:
语言的深度广度
"万丈高楼平地起",打好基础才能走得更远。 无论你使用的 Java 语言,还是 Python/Go 语言,对语言的掌握程度一定要达到精通才行。 这也是保证完成工作的基本技能。 List、Map、Set 等集合的区别,反射、类加载过程,IO、并发的处理,一样都不能少。 想要成为一名出色的后端工程师,可以对照以下 Java 技能树,及时查漏补缺。项目架构
理解 MVC 的架构思想。 MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。 用于应用程序的分层开发。- Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
- View(视图) - 视图代表模型包含的数据的可视化。
- Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
MVC 虽然被称作模式,但更多的是一种思想,目的是将数据层和业务层分离解耦,仅用 Controller 做中间件。这样的好处是使得数据层和业务层互不影响。
在实际开发中,大可不必死板的往 MVC 上面套用模板,只要理解了这种思想,实现方式是灵活多样的,只要达到将数据层和业务层分离的目的即可。
数据结构、算法
数据结构和数据库 CRUD 效率息息相关,既然工作免不了 CRUD,那就把它掌握透彻吧。 一名后端工程师需要掌握以下常用的数据结构类型: 算法是代码优雅的保证,如果你的程序还没有精炼到一眼看出结构,试着从算法的角度优化代码。 高质量的代码往往都是优雅、简洁的。 一个适合的算法也是程序性能的保证,数据结构结合高效的检索算法才能发挥最大威力。 在力扣做练习时,试着分析自己程序的时间复杂度和空间复杂度。 并与最优解作对比,看看自己的算法是否在性能和效率上仍有优化空间。了解一些前端技能、产品思想
先说前端技能,不少后端工程师都有疑惑,自己需不需要学习前端技能? 廖雪峰大神曾经在知乎上明确地回答过此问题:实际上,好的系统需要前后两端的配合,虽然我们提倡前后端逻辑分离,但"知己知彼才能百战不殆"。后端和前端互相了解并互相理解,才能更好地合作。
再说产品思想,如今很多公司招聘程序员时,都会在任职要求上写上: "较好的产品意识,愿意将产品效果做为工作最重要的驱动因素"。 为什么越来越多的公司重视程序员的产品思想呢? 这归根结底属于沟通问题,虽然产品思想和技术无关,但了解一些产品思想,与产品经理多沟通能让自己工作轻松不少。 以之前火遍全网的新闻——"产品经理要求程序员根据手机壳颜色改变 app 主题颜色"——为例,虽然工程师看到此问题觉得是天方夜谭,然而当我们站在产品的角度去想,产品经理是希望用户可以自主调整 app 主题颜色,让 app 显得与手机主色调更搭。 那么,针对这个问题我们可以与产品经理沟通,将需求修改为可以实现的"让用户打开 app 时,自主选择 app 主题颜色",这样也能达到同样的目的,这便是从产品的角度解决问题。 项目需要团队协作才能获得成功,一名工作出色的后端工程师,一定不是孤军奋战的。总结
以上,便是力扣君为大家准备的后端工程师自检手册。 实际上知识体系因人而异,它与自己工作中接触的内容密不可分。 比如做视频后台的工程师需要深入了解视频采集、编码、转码、解码、渲染技术,做电商后台的工程师需要深入了解数据库的高效检索、并发技术。 力扣君希望每一位读者总结出属于自己的自检手册,并不断完善自己的知识体系,逐步进阶为高级后端工程师。本文作者:Alpinist Wang
编辑&版式:霍霍
声明:本文归 “力扣” 版权所有,如需转载请联系。
点个在看,少个 bug?