后端开发须要学什么

  开端以前,尽管我们没有将HTML/CSS列举在道路图中,但是我们还是主张用户具备根底的HTML/CSS技能,至少可以写一些根本的HTML/CSS。
  1.学习一门言语
  言语的挑选有许多种,为了方便您的挑选,我将它们进行了分类。关于刚接触后端开发的新手,我强烈主张大家挑选一门脚本言语,因为它们的需求许多且上手较快。最好的挑选固然是Python,它的需求正在急速增长,有许多的职位可供挑选。
  2.学以至用
  最后的学习办法就是着手实践。一旦你挑选了言语,而后对其有了根本的了解,开端使用它。运用它进行尽量多的操练,写一些小程序练手,了解它。下面是一些小比方,可以协助你开端。
  *完成一些bash中你经常使用的命令,比方ls的功用
  *写一个从reddit的/r/programming频道抓取数据并将之保存为JSON格式的小程序
  *写一个程序将目录结构保存为JSON文件。
  *根据上面生成的JSON文件,生成目录结构。
  *想一想平常工做中的使命,测验将之自动化。
  3.学习包办理器
  一旦你了解了言语的根底,一块儿用它写过些示例程序,接着学习该言语的包办理器。包办理器可以协助你使用第三方库,一块儿你也可以通过它发布本身的库以供他人使用。
  假设你挑选的是Python,你应该现已学习了Pip。Node.js有NPM或Yarn、PHP有Composer,Ruby有RubyGems。不管你挑选了什么,进一步去学习它的包办理。
  4.标准以及最佳实践
  每一种言语有其标准以及最佳实践。你需求把握这个东西。比方Python有PEP8跟GooglePython代码标准。Node.js各社区有不一样的标准。其余言语的情况也迥然不一样。
  5.安全
  务必要把握安全最佳实践。读读OWASP攻略,了解不一样的安全问题,一块儿要知道假如避免这类问题。(你挑选的言语)
  6.实践
  如今你现已把握了言语根底,最佳实践,安全相关以及包办理,你可以去开发本身的库供他人使用了。假如你用Python,你需求发布在Pypi,假如是Node.js,你需求发布在Npm。
  到此,你可以在Github上找一些项目,参与进去。
  *重构,完成你学到的最佳实践
  *修复已知的问题
  *添加新的功用
  7.测验
  测验分许多种,要了解每一种测验的类型以及其意图。但是如今,首要学习单元测验以及综合测验,使用在你的程序中。此外,还要了解不一样的测验术语,比方mocks,stubs等等。
  8.实践-测验
  为你所写的一切程序编写单元测验,特别是在Github上参与的项目。
  一块儿,学习覆盖率的概念,计算测验代码的覆盖率。
  9.联系型数据库
  学习使用联系型数据库保存你的数据。在学习以前,首要把握数据库相关的术语。比方:keys,indexes,normalization,tuples等。
  可供挑选的数据库许多,你只需求把握一个,其余的也会变得很简略。流行的有MySQL,MariaDB(MySQL分支,与之很是类似),PostgreSQL。引荐挑选MySQL开端。
  10.着手时间-实践
  到了将所学交融的时分了。
  创立一个简略的使用,运用你所学的一切。完成一个主意,多是创立一个简略的博客站点,完成一下的特性:
  *帐户体系——注册&登录
  *注册用户可以创立blog
  *用户可以查看本身创立的一切的blog
  *用户可以删去本身发布的blog
  *保证用户只能看到本身发布的blog,不能看其余人的
  *为使用编写单元/综合测验
  *为查询创立索引。分析查询,确保索引收效
  11.学习一个结构
  根据你的项目类型以及你的言语的不一样,你可能会需求一个结构辅助开发。(也可能不需求)。每种言语都有不一样的挑选,挑选一个合适的便可。
  假如你挑选了Python,主张你挑选Django,关于微结构,主张Flask。
  关于Node.js,最知名的结构是Express.js。
  12.实践-结构
  使用挑选的结构重构你的博客使用。不要忘记了集成测验代码进来。
  13.学习NoSQL(notonlySQL)数据库
  首要了解什么是NoSQL,以及它们与联系型数据库的差异,一块儿为何需求它们。NoSQL数据库也有多种挑选,了解并比较它们之间的特性以及不一样之处。经常使用的有MongoDB,Cassandra,RethinkDB,Couchbase。主张挑选MongoDB开端。
  14.缓存
  学习怎么在你的程序中完成使用级的缓存。了解怎么使用Redis或Memcached完成缓存,一块儿在你的博客使用中完成缓存功用。
  15.创立RESTfulAPIs
  了解REST,学习怎么编写RESTfulAPIs,阅览关于REST的白皮书。(ByRoyFielding)。理解REST不只仅是HTTPAPIs。
  16.学习不一样的认证办法
  学习不一样的认证以及认证方法。你需求明白它们是什么,它们的不一样点,以及它们适用的场景。
  *OAuth--OpenAuthentication
  *BasicAuthentication
  *TokenAuthentication
  *JWT--JSONWebTokens
  *OpenID
  17.消息代理
  学习消息代码,了解什么时分以及为何使用它们。有许多可供挑选,最知名的是RabbitMQ&Kafka。主张从RabbitMQ开端学习。
  18.搜索引擎
  跟着使用程序规模的增长,简略的查询现已没法知足要求。这个时分,你需求用到搜索引擎。一样有多种挑选,每一种有本身的特色。
  19.学习使用Docker(容器)
  Docker可以为你的开发供给巨大的便利。它可以让你的开发环境与出产环境保持一致,可以让你的体系保持干净,可以加快你的编码,可以测验布置。Docker的好处,请自行google。从如今开端,学习Docker。
  20.Web服务器的知识
  到了这个时分,你可能现已处理过服务器相关的问题。这一过程主要是了解不一样的服务器之间的差别,限制,以及不一样的调优办法。
  21.学习WebSockets
  尽管不是必须,但是具备WebSockets的技能是有好处的。学习编写实时的web使用。可以在博客使用中,完成即时更新blog列表。
  22.学习GraphQL
  学习GraphQl的APIs。了解它与REST的不一样,而后为何它被称之为REST2.0。
  23.研究Graph数据库
  Graph模型具备很是好的灵活性——在处理数据间的联系的时分。Graph数据库供给高速&高效的存取以及查询。学习了解Neo4j或许OrientDB。
  24.不停探索
  在你的学习以及实践过程当中,确定会碰到道路图里没有说起的东西。你只需求保持敞开以及饥渴去学习新的东西。
  时刻谨记,学习的关键是实践。多着手!刚开端的时分,你可能会感受不大好,跟着你的坚持以及时间的推移,你会变得愈来愈好。
**web

相关文章
相关标签/搜索