For 2018-year back-end developers

Source: Internet
Author: User
Tags rabbitmq
1_s7vjouzpgiorxuioa17ukg.jpeg

There's a sequence and a benchmark for everything, and as a developer, no exception.
Maybe you're at one of these stages.
Macro-examination of their own skill tree, is a good way to check the gaps in the vacancy
To everyone who struggles.

1_wqviqnne2cnhvaiqpixkqg.png

Let's break down and explain each step in the following section.

Before we begin, although we did not list Html/css's knowledge in the roadmap above, it is recommended that you at least get some understanding and know how to write some basic html/css.

1th Step-Learning languages

There are many choices for choosing a language. I have divided them into several categories so that you can make decisions more easily. For beginners who have just entered back-end development, I recommend that you choose any scripting language because they have a lot of requirements that will allow you to get started quickly. If you have some front-end knowledge, you may find node. js easier, and there is a big job market.

If you are already in the back-end development and know some scripting languages, I recommend that you do not select a different scripting language and select some content from the "features" or "multiple samples" sections. For example, if you're already using PHP or node. js, instead of using Python or Ruby, try using Erlang or Golang. It certainly helps expand your mind and opens up new horizons.

2nd Step-Practice what you have learned

There is no better way to learn than to practise . Once you have selected a language and have a basic understanding of the concepts, you can use them. Make as many small applications as you can. Here are some ideas to help you get started

Implement some of the commands you use in bash, such as trying to implement its function ls
Write a command that gives you a JSON-formatted directory structure, such as Jsonify Dir-name, that provides you with an internal structure of the JSON file Dir-name
Write a command to read the JSON from the previous step and create a directory structure
Think about some of the tasks you do every day and try to automate

3rd Step-Learning Package Manager

Once you have understood the basics of the language and made some sample applications, you can learn how to use the Package manager for the language of your choice. Package Manager helps you use external libraries in your application and distributes libraries for others to use.

If you choose PHP, you will need to learn composer,node.js have NPM or Yarn,python have Pip,ruby have rubygems. regardless of your choice, continue to learn how to use its package manager.

4th Step-standards and best practices

Each language has its own standards and best practices. Study them according to the language of your choice. For example, PHP has Php-fig and PSR. With node. js, there are many different community-driven guides, as do other languages.

Step 5th-Safety

Be sure to read the best practices for security. Read the Owasp guide and learn about the different security issues and how to use the language you choose to avoid them.

6th Step-Practice

Now you've learned the basics of language, standards and best practices, security, and how to use Package Manager. Now continue to create a package and distribute it to others to use, and make sure to follow the standards and best practices you've learned so far. For example, if you select PHP, you will publish it on Packagist, and if you select node. js, you will release it in the NPM registry, and so on.

When you're done, search for some items on GitHub and open some pull requests in some projects. Some ideas:

1. 重构并实施您学到的最佳实践2. 查看未解决的问题并尝试解决3. 添加任何其他功能

7th Step-Understanding the test

There are several different test types available for testing. Understand the purpose of these types. But now you know how to write unit tests and integration tests in your application. Also, learn about different test terms, such as simulations, stubs, etc.

8th Step-Practical

For practice, continue to write unit tests for the actual tasks you've done so far, especially the work you did in step 6.

Also learn and calculate the coverage of the tests you write.

9th Step-Understanding the relational database

Learn how to save data in a relational database. Before you choose the tools you want to learn, learn about the different database terms, such as keys, indexes, normalization, tuples, and so on.

Here are a few options. But if you learn one, other people should be pretty easy. What you want to learn is mysql,mariadb (mostly the same, is the MySQL branch) and PostgreSQL. Select MySQL to start.

10th Step-Practical Time

It's time to use all the things you've learned.

Create a simple application with all the content you've learned so far. Simply select any idea that might create a simple blog application and implement the following features in it

1. 用户帐户 - 注册和登录2. 注册用户可以创建博客帖子3. 用户应该能够查看他创建的所有博客帖子4. 他们应该能够删除他们的博客文章5. 确保用户只能看到他的个人博客帖子,而不能看到其他人的博文6. 编写应用程序的单元/集成测试

You should apply an index to the query. Analyze queries to ensure that indexes are used

11th Step-Learning Framework

Depending on the project and the language you choose, you may or may not need a framework. There are several different options for each language, please continue to view the available options for the language you have selected and select the relevant language.

If you chose PHP, I would recommend that you use Laravel or symfony, for a micro-frame, use lumen or slim. If you chose node. js, there are several different options, but the highlight is Express.js

12th Step-Practical time

For the actual action of this step, convert the application that you created in step 10 to use the framework that you selected. Also make sure that you migrate everything, including tests.

13th Step-Learn NoSQL database

The first thing to know is what they are, how they differ from relational databases, and why they are needed. There are several different options for studying a little look and comparing their functions and differences. Some of the common options you can choose are mongodb,cassandra,rethinkdb and couchbase. If you have to choose one, please use MongoDB.

14th Step-Caching

Learn how to implement application-level caching in your application. Learn how to implement caching using Redis or memcached and in the application built in step 12.

15th Step-Create a restful API

Learn about rest and learn how to make restful APIs and make sure to read the rest section from the original paper of Roy Fielding. If they say rest applies only to the HTTP API, make sure you can fight someone.

16th Step-Understanding the different Auth methods

Learn about the different authentication and authorization methods. You should know what they are, how they are different, when they prefer one rather than the other.

1. OAuth - 开放式身份验证2. 基本认证3. 令牌认证4. JWT - JSON Web令牌5. OpenID的

17th Step-Message Agent

Learn about the message broker and learn when and why to use them. There are many options, but the RABBITMQ and Kafka are outstanding. If you want to choose one, learn how to use RABBITMQ.

18th Step-Search engine

As your application grows, simple queries to relational databases or NoSQL databases won't cut it, and you'll have to turn to search engines. There are a variety of options, each with its own differences.

19th Step-Learn how to use Docker

Whether it's replicating and producing the same environment, or keeping your operating system clean or speeding up coding, testing, or deployment, Docker can be a great way to make your development easier. I will leave a search for the answer "How will you help me". In this step, continue to learn how to use Docker.

20th Step-Understanding the Web server

If you have come to this step, you may have to resolve the server issue in the previous steps. This step is primarily to identify differences between different Web servers, understand limitations and different available configuration options, and how best to use these limits to write applications.

21st Step-Learn how to use Web sockets

Although not required, it is useful to get this knowledge in your tool belt. Learn how to write a live Web application using Web sockets and use it for some sample applications. You can use it in the blog application above to enable real-time updates to the list of blog posts.

22nd Step-Learn GRAPHQL

Learn how to create an API using GRAPHQL. Learn how it differs from rest and why it is called Rest 2.0.

23rd Step-View the graphics database

Graph models represent a very flexible way of dealing with data relationships, and graphical databases provide fast and efficient storage, retrieval, and querying. Learn how to use neo4j or ORIENTDB.

24th Step-Continue to explore

Once you start learning and practicing, you will certainly encounter what we have not covered in this roadmap. Just keep an open mind and a healthy appetite and learn new things.

Remember, the key is to practice as much as possible. It can be scary at first, and you may feel like you're not grabbing anything, but it's normal, and over time, you'll feel better about yourself.

Free interface Service-------->http://100boot.cn/
Free Applet Tutorial-------->http://100boot.cn/

Welcome to focus on it combat Alliance

326255-f67b0f0dd5fe5874.jpg

Reference links

Original Address---Modern backend Developer in 2018

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.