Full-stack engineers and stack engineers

Source: Internet
Author: User
Tags solr

Full-stack engineers and stack engineers

After I modified the blog's slogan, it was of course only a test. Life is an interesting cycle. When we try to walk out of the city, we are pulled into the city again.

What is a full-stack engineer?

In this era, no one will master all programming languages and skills, but it will be in the future, but it is not human beings who master all these technologies. Therefore, what we need is people who know a variety of technologies and can independently complete products.

When we need to build a mobile CMS, we will choose before different technology stacks, or RequireJS + Backbone + jQuery + Mustache, or ReactJS + Backbone, of course, it may also be AngularJS. What we need to do is to select the best solution from it and then implement it.

This means that we need to have a better knowledge, which will lead to a lack of in-depth understanding of some technologies. The two are a good opposite. a good balance between the two may mean mediocrity. Sometimes this is not the case, but most of the time. Either become an expert, or become a full stack, or balance them.

Full stack engineers VS experts

The human brain is like an empty loft, and some furniture should be installed selectively.

What Conan Doyle said makes sense. Because the size of the attic is limited, it is assumed that it is a bookshelf. The shelves of Full-stack engineers will be filled with a variety of technical stacks from MySQL, SQLite, MongoDB, Redis and other books; expert books are a collection of professional books on MySQL optimization, MySQL reconstruction, MySQL authoritative guide, DBMS, and so on.

If they are all a book, the full stack engineer's book is an index. Expert books are more about the content itself.

Therefore, everyone chooses different storage methods and databases.

For our brain database, we usually store Key-Value (ps: We only have key, value is Google and books). For experts, we store Documents. With the same capacity, we can learn more. As shown in, the left-side Relational Data Model is a full-stack engineer, and the right-side is an expert.

Key

I have been confused for a long time: Why do I need to go to Google for some knowledge points while others can do it independently. I realized that I am more suitable for Internet companies. It is said that there is no Internet office environment in some telecom equipment manufacturers. However, in most cases, this is not a disadvantage.

We will solve the problem faster, because we have some experience in this area. The disadvantage is that sometimes we cannot analyze the problem in depth.

How to become a full-stack engineer

This is an interesting question, which is also discussed in zhihu. In my opinion, the most important thing is curiosity and creativity.

Create

Remember that you already have a clear goal before going to college, and you should be able to do everything you want. Therefore, a knowledge system, or index, is built along this goal.

When we had an idea in our hearts, I began to brainstorm from a key, such as the previous map search. Our function is to persistently display GEO information and coordinate on the map.

1. First, I will list all the frameworks I have used in my mind, and select the background framework:

Django (Python), Flask (Python), Ruby On Rails (Ruby), Sinatra (Ruby), NodeJS, Laravel (PHP), Spring (Java)

After exclusion, only Django, Flask, and NodeJS are left. Then, due to the built-in Geo support of Django, Django is chosen.

2. Next, choose the Persistence Solution:

Due to the built-in ORM of Django, this step can be easily passed. However, I chose SQLite3 to facilitate local debugging and copy data to the server.

3. Then, for space search support:

So we have two search engines and one Database: ElasticSearch, Solr, and MongoDB. Due to Django's support for MongoDB, it is easier to search results by using search engines. Then find the Haystack, and you can see that Solr needs to manually update the index and then select ElastiSearch.

4. Now, mobile development:

Cross-platform support is naturally Cordova, and Hybird or Ionic is easy to use.

5. Practice

This step is naturally not a problem, and it has always been a matter of practice.

In the process of continuous creation, we will learn more and have more options. Next time, we will try again with different technology stacks. With the previous system, further horizontal exploration is also a good breakthrough. For example, we use Python to build a prototype, and then we use Java to implement it.

Curious

Unlike experts, full-stack engineers are more likely to be attracted by new technologies. As for whether it is good or bad, I want everyone to understand it.

When ReactJS comes out, it will try to play.

When Ionic is still being tested, demos will be made one by one.

Interestingly, as we have seen in the essence of technology, new technologies are based on old technologies. There is no technology to be born out of nothing. So it is not difficult to learn a new technology, but sometimes it is difficult to go deep.

Full stack Programmer (advanced tutorial)

After thinking for some days, I understand more things. It also seems that two more interesting growth routes have been found:

Architecture Design

When I tried to write a CMS named Echoes, I found several books on the shelf:

  • Architecture beauty
  • Model-Oriented Software Architecture
  • Field-driven design
  • Implementation field-driven design
  • The art of Software Framework Design

I found that some of the models mentioned in the book seem to be quite common. To understand them, it has become very simple. It looks like the epitome of one project after another.

More important points are:

Architects are not the best programmers, but they must have a wide range of knowledge.

Only by having more knowledge can we make a good decision. If we only go deep into some knowledge, then we cannot always make the right decision. Therefore, it must also be a good growth direction.

Become an expert

...

I have never agreed with the bucket theory that we will be limited by the lowest wooden boards. But one day we will be restricted by the highest piece. After all, we will realize that we will try to put all the boards at the same height to ensure the water capacity. But what if the highest board is not that high? So, why not keep it as high as possible at the beginning?

So what I want to say is that we need to become experts in some areas. It is easy to become an expert in another field when we become an expert in a certain field.

When I ask Senior programmers about growth (ps: less than a year after graduation), I develop to experts. For a Java Web programmer, the idea of growth may be to go deep into Spring, explore the Tomcat underlying layer, and go deep into JVM. The problem is that they are all complicated, but we cannot give up on such growth opportunities. What we can do is to learn these principles from a simpler language and then add them later.

For Spring, there will be Flask and Tornado. For Tomcat, can we go deep into Gunicorn? For JVM, there will also be Python VMS, but there are still many JVM books. When we know this at a simpler level, it will not be difficult for a bloated language.

Summary

We are always growing. We can decide the direction of growth ~~.

Others

For full-stack programmers, refer to the Web Developer roadmap.

Follow my projects on GitHub

QQ chat group: 321689806

Weibo: @ phodal

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.