后端程序员注意啦!2018已过完一半

退步的程序员 2018-07-11 14:58:13 ⋅ 519 阅读

凡事得有个顺序与标杆,作为开发人员更不例外 可能你正处在其中的某一个阶段 宏观的审视自身的技能树,更是查漏补缺的一个好方法 送给努力奋斗的大家

让我们分解并解释下面部分中的每一步。

在我们开始之前,虽然我们没有在上面的路线图中列出HTML / CSS的知识,但建议您至少获得一些理解并知道如何编写一些基本的HTML / CSS。

第1步 - 学习语言

选择一种语言有很多选择。我已经将它们分成几类,以便您更容易决定。对于刚刚进入后端开发的初学者,我建议您选择任何脚本语言,因为它们有很多需求,它可以让您快速上手。如果您有一些前端知识,您可能会发现Node.js更容易,而且有一个很大的就业市场。

如果您已经在进行后端开发并且知道一些脚本语言,我建议您不要选择其他脚本语言并从“功能”或“多范例”部分中选择一些内容。例如,如果您已经在使用PHP或Node.js,请不要使用Python或Ruby,而是尝试使用Erlang或Golang。它肯定有助于扩展您的思维,并开辟新的视野。

第2步 - 练习你所学到的知识

没有比练习更好的学习方法。一旦您选择了语言并对概念有了基本的了解,就可以使用它们。尽可能多地制作小型应用程序。这里有一些想法可以帮助您入门

实现一些您在bash中使用的命令,例如尝试实现其功能 ls 编写一个命令,为您提供JSON格式的目录结构,例如jsonify dir-name,为您提供一个内部结构的JSON文件dir-name 编写一个从上一步读取JSON的命令,并创建目录结构 想想你每天做的一些任务,并尝试自动化

第3步 - 学习包管理器

一旦理解了语言的基础知识并制作了一些示例应用程序,就可以学习如何将包管理器用于您选择的语言。程序包管理器可帮助您在应用程序中使用外部库,并分发库以供其他人使用。

如果您选择PHP,您将需要学习Composer,Node.js有NPM或Yarn,Python有Pip,Ruby有RubyGems。无论您的选择是什么,请继续学习如何使用其包管理器。

第4步 - 标准和最佳实践

每种语言都有自己的标准和最佳做法。根据您选择的语言研究它们。例如,PHP具有PHP-FIG和PSR。使用Node.js,有许多不同的社区驱动指南,其他语言也是如此。

第5步 - 安全

请务必阅读有关安全性的最佳做法。阅读OWASP指南并了解不同的安全问题以及如何使用您选择的语言来避免它们。

第6步 - 练习

现在您已了解语言,标准和最佳实践的基础知识,安全性以及如何使用包管理器。现在继续创建一个包并将其分发给其他人使用,并确保遵循您迄今为止学到的标准和最佳实践。例如,如果您选择了PHP,您将在Packagist上发布它,如果您选择了Node.js,您将在Npm注册表中释放它,依此类推。

完成后,在Github上搜索一些项目并在某些项目中打开一些pull请求。一些想法:

 
  1. 1. 重构并实施您学到的最佳实践

  2. 2. 查看未解决的问题并尝试解决

  3. 3. 添加任何其他功能

第7步 - 了解测试

有几种不同的测试类型可供测试。了解这些类型的用途。但是现在了解如何在应用程序中编写单元测试和集成测试。此外,了解不同的测试术语,如模拟,存根等

第8步 - 实用

对于练习,请继续为您迄今为止所做的实际任务编写单元测试,尤其是您在步骤6中所做的工作。

还要学习并计算您编写的测试的覆盖范围。

第9步 - 了解关系数据库

了解如何在关系数据库中保存数据。在您选择要学习的工具之前,请先了解不同的数据库术语,例如键,索引,规范化,元组等。

这里有几种选择。但是,如果你学习一个,其他人应该相当容易。你想要学习的是MySQL,MariaDB(大部分是相同的,是MySQL的分支)和PostgreSQL。选择MySQL开始。

第10步 - 实用时间

是时候把你学到的所有东西都用到了。

使用您迄今为止学到的所有内容创建一个简单的应用程序。只需选择任何想法,可能会创建一个简单的博客应用程序并在其中实现以下功能

 
  1. 1. 用户帐户 - 注册和登录

  2. 2. 注册用户可以创建博客帖子

  3. 3. 用户应该能够查看他创建的所有博客帖子

  4. 4. 他们应该能够删除他们的博客文章

  5. 5. 确保用户只能看到他的个人博客帖子,而不能看到其他人的博文

  6. 6. 编写应用程序的单元/集成测试

您应该为查询应用索引。分析查询以确保使用索引

第11步 - 学习框架

根据项目和您选择的语言,您可能需要也可能不需要框架。每种语言都有几种不同的选择,请继续查看您所选语言的可用选项,并选择相关语言。

如果您选择了PHP,我会建议您使用Laravel或Symfony,对于微框架,请使用Lumen或Slim。如果你选择了Node.js,有几个不同的选项,但突出的是Express.js

第12步 - 实用时间

对于此步骤的实际操作,请转换您在步骤10中创建的应用程序,以使用您选择的框架。还要确保移植包括测试在内的所有内容。

第13步 - 学习NoSQL数据库

首先要了解它们是什么,它们与关系数据库的区别以及为什么需要它们。有几种不同的选择,研究有点看,并比较它们的功能和差异。您可以选择的一些常见选项是MongoDB,Cassandra,RethinkDB和Couchbase。如果你必须选择一个,请使用MongoDB。

第14步 - 缓存

了解如何在应用程序中实现应用程序级缓存。了解如何使用Redis或Memcached并在步骤12中构建的应用程序中实现缓存。

第15步 - 创建RESTful API

了解REST并学习如何制作RESTful API,并确保从Roy Fielding的原始论文中阅读有关REST的部分。如果他们说REST仅适用于HTTP API,请确保您能够与某人抗争。

第16步 - 了解不同的Auth方法

了解不同的身份验证和授权方法。你应该知道它们是什么,它们是如何不同的,何时更喜欢一个而不是另一个

 
  1. 1. OAuth - 开放式身份验证

  2. 2. 基本认证

  3. 3. 令牌认证

  4. 4. JWT - JSON Web令牌

  5. 5. OpenID

第17步 - 消息代理

了解消息代理并了解何时以及为何使用它们。有多种选择,但突出的是RabbitMQ和Kafka。如果您想选择一个,请了解如何使用RabbitMQ。

第18步 - 搜索引擎

随着应用程序的增长,对关系数据库或NoSQL数据库的简单查询不会削减它,你将不得不求助于搜索引擎。有多种选择,每种选择都有自己的差异。

第19步 - 学习如何使用Docker

无论是复制与生产相同的环境,还是保持操作系统清洁或加快编码,测试或部署,Docker都可以为您的开发提供极大的便利。我将留下答案“你将如何帮助我”进行搜索。在此步骤中,继续学习如何使用Docker。

第20步 - 了解Web服务器

如果你已经走到这一步,你可能不得不在之前的步骤中解决服务器问题。此步骤主要是找出不同Web服务器之间的差异,了解限制和不同的可用配置选项以及如何最好地利用这些限制来编写应用程序。

第21步 - 了解如何使用Web套接字

虽然不是必需的,但在您的工具带中获得这些知识是有益的。了解如何使用Web套接字编写实时Web应用程序,并使用它进行一些示例应用程序。您可以在上面的博客应用程序中使用它来实现博客文章列表的实时更新。

第22步 - 学习GraphQL

了解如何使用GraphQL创建API。了解它与REST的不同之处以及它为何被称为REST 2.0。

第23步 - 查看图形数据库

图模型表示处理数据关系的一种非常灵活的方式,图形数据库提供快速有效的存储,检索和查询。了解如何使用Neo4j或OrientDB。

第24步 - 继续探索

一旦你开始学习和练习,你肯定会遇到我们未在本路线图中介绍的内容。只要保持开放的心态和健康的胃口,学习新事物。

记住,关键是尽可能多地练习。它在开始时会显得更加可怕,你可能觉得自己没有抓住任何东西,但这是正常的,随着时间的推移,你会觉得自己变得更好。

免费接口服务-------->http://100boot.cn/

免费小程序教程-------->http://100boot.cn/

欢迎关注IT实战联盟


全部评论: 0

    我有话说:

    2017编程语言“名人榜”揭晓,C语言夺冠

    2017年度编程语言榜单公布!C语言登顶,Python紧随其

    微信小程序电商实战-入门篇

    程序开发工具有新版本更新!开发体验更好了,接下来一起为电商小程序下准备前期准备工作~~

    Redisson 3.13.6 发布,官方推荐的 Redis 客户

    Redisson 3.13.6 发布,这是一个 Java 编写的 Redis 客户,具备驻内存数据网格(In-Memory Data Grid)功能,并获得了 Redis 的官方推荐

    分享:次深夜优化亿级数据分页的奇妙经历

    原文:https://cnblogs.com/wzh2010/p/14316920.html 背景 1月22号晚上10点,下班愉快的坐在在回家的地铁上,心里想着周末的生活怎么安排。 突然电话响

    【开源资讯】WinSCP 5.17.8 发布,Windows 图形化 SFTP 客户

    WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户,同时支持 SCP 协议,它的主要功能是在本地与

    2018年8个技巧来构建更好的Node.js应用程序

    2018年8个技巧来构建更好的Node.js应用程序

    为什么很多大公司选择使用 Node.js 做 Web

      大佬们问下,为什么大的公司要用Node.js 做web?并且Node 还要调用Java做数据落地?在网上看了一些帖子,发现很多大厂都是这样做,我们公司的项目也是这样的,但是在开发

    Nacos 1.4.1 发布,修复指定特殊 UA 可绕所有鉴权的安全漏洞

    Nacos 1.4.1 发布,此版本的主要新功能是支持 IPv6 服务注册,以及为 Csharp 客户提供 UDP push 支持。 更值得关注的是,1.4.1 版本解决了此前被曝出的绕鉴权的

    Coder如何做好代码设计?

    来源:http://r6d.cn/C5Ja 说明:生鲜电商属于一个软件的产品,那么如何做好代码设计呢?代码设计,是程序员做项目时,在coding之前非常重要的一个步骤,可以说关系到整个系统

    京东技术:京东风格的移动Vue组件库NutUI2.0来

    移动 Vue 组件库 NutUI 自发布以来受到了广泛的关注。据不完全统计,目前至少有30多个京东的 web 项目正在使用 NutUI 。

    程序开源框架汇总,你知道几个?

    想要开发出套高质量的小程序,运用框架?看

    欣赏一下人家写的API接口,那叫一个优雅!

    作者:码不动链接:https://www.jianshu.com/p/fa75acba5b07 在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后分离方式,(题外

    Taro 3.0.17 发布,BAT 小程序、H5 与 RN 统一框架

    Taro 3.0.17 发布了。Taro 是套遵循 React 语法规范的多统一开发框架,支持用 React 的方式编写次代码,生成能运行在微信小程序/百度智能小程序/支付宝小程序、H5 与

    Taro 3.0.22 发布,BAT 小程序、H5 与 RN 统一框架

    Taro 3.0.22 发布了。Taro 是套遵循 React 语法规范的多统一开发框架,支持用 React 的方式编写次代码,生成能运行在微信小程序/百度智能小程序/支付宝小程序、H5 与

    「轻阅读」“做”和“做好”的区别

    在工作中,“做”和“做好”虽然仅字之差,但前者只是完成了某项工作,而后者则不仅是完成了工作还有一个好的结

    微信小程序微商城():https框架搭建并实现导航功能

    本文将带领大家搭建https的小程序框架,并实现动态获取数据展示效果!

    微信小程序:最新微信登录授权并获取openid等信息

    为优化用户体验,使用 wx.getUserInfo 接口直接弹出授权框的开发方式将逐步不再支持。从2018年4月30日开始,小程序与小游戏的体验版、开发版调用 wx.getUserInfo 接口,将

    A3Mall v1.5.2 发布,免费开源的 PHP 小程序商城系统

    项目介绍 A3Mall商城系统是基于ThinkPhp6.0+Vue开发的套移动电商系统, 支持微信公众号商城、H5商城、小程序商城,支持多种营销活动,优惠劵、订单活动、团购、秒杀、会员特价、积分

    Java核心基础之自定义注解

    本文转载自掘金,作者-jack_xu。 主页:https://juejin.cn/user/1802854801877191 认识注解 注解( Annotation )相当于种标记,在程序中加入