How to become a legendary full-stack engineer

How to become a legendary full-stack engineer

[[134501]]

Make a simple app like this:

A weather app with a clean and refreshing interface, and clear weather information at a glance. It can not only accurately predict the weather for the next 10 days, but also display the historical weather information of a certain place. It has a custom reminder function and supports web version, iOS version, and Android version.

Why do you want to make such an app? Because you like to travel, but you can't find a weather app that can provide you with weather information for the next month or a specific month; because you are lazy and don't have the habit of checking the weather forecast every day, you want to get a reminder when the temperature reaches above 30 degrees or the temperature difference is +/-7 degrees the next day; because you want to become a Full Stack Engineer, you must constantly train the capabilities of each stack.

Web version

You decide to use MySql to store user data and NoSql to store historical weather data. You use Redis as a cache to cache some of the most frequently requested weather data. You write the backend in Python, with simple functions and a simple background. You can quickly get users to register and log in, and retrieve and return weather data for a city or historical weather data for a place.

After the backend is developed and tested, the next step is the web frontend. You are well aware of the importance of a good UI design for an App, and you also understand that UI design is not just for aesthetics, but more importantly, to improve the readability of information and the usability of the program. Fortunately, your daily accumulation came in handy this time. You studied the hundreds of excellent UI design works you saved before, and you took out Norman's classic book - The Design of Everyday Things from the bookshelf and read it again. In the end, you used black pen and white paper to finalize the first version of the UI, which is simple and intuitive, without any redundant design, and the arrangement, spacing, size and color of all elements are just right. You believe that even if the weather is bad, users will be happy as long as they use this App.

So let's start writing the front-end. Oh, don't worry, I forgot about Icon and Logo, but what should I do if I don't know PS, AI, or Sketch? Let's learn. You like to make friends in different fields. Just a few weeks ago, you met a friend who is a designer at an event. She spent an afternoon teaching you the basic use of Sketch and gave you some advice on your UI design. You treated her to dinner to express your gratitude, and then immediately went home to readjust the UI based on her suggestions. This time, you drew the UI in PS, and also made Icons and Logos.

The next week, you learn HTML, CSS, and Javascript and nail the front end.

Release the App

You posted a status on WeChat Moments and asked someone to help you do Beta testing. They all asked you what app it was. At first, you simply answered that it was a weather app. But you found that this did not arouse their interest. You felt that you needed to package it with words and stories. This is not only an answer to others' questions about "what app is it", but also an important skill on the road to becoming a full stack engineer.

You visited the homepages of all your favorite products and got some inspiration from their copywriting; you read the classic On Writing Well and found that good copywriting and good design are actually very similar to good code. They all focus on communication, how to make others understand what you want to express effortlessly. Your story should be attractive, your product introduction should be explained clearly in 1 minute, and make sure your parents can understand it without any pressure.

Everything is ready, and the product is launched. The response is good, and the number of users continues to increase. Many users want a mobile version, so you immediately invest in the development of the iOS version.

iOS version and background optimization

You spent less than a week learning the basic syntax and tools and then started developing the app. You know that Learn by Doing is the best and fastest way. Since you learned the basics of design before, you quickly finished UI and Icons, and soon the iOS version was released. The release of iOS brought more user growth, and the pressure on the backend server was quite high. You knew it was time to optimize the backend.

You spawned two more servers on AWS and wrote a script to automate the deployment process.

You switch to the uWSGI protocol and use uwsgi as the Application Server.

You use Nginx for concurrency, load balancing...

Company Establishment

As the number of users continues to grow, you will receive more than 10 or 20 emails from users every day. You are very grateful to these users who are willing to spend time writing emails to you. You believe that they are your most important users and potential paying users. If you treat them like God, they will also treat you like God. So except for emails sent during bedtime, you will reply to every email within 2 hours.

Sure enough, such efforts will bring huge rewards. Not only will they be surprised and very grateful for your quick reply, they will give you a ★★★★★ rating in the app store, they will share your app on social networking sites, and they will even offer to donate to you.

You smell business opportunities from the rapid user growth, and you start thinking about how to make money. You are determined not to allow advertising, and you believe that even the most accurate advertising will affect the user experience. You have designed two different payment plans, and you plan to use A/B testing to see which plan is better. You send emails to 200 users to invite them to try paying. You have carefully polished the content of the emails and wrote "CEO & Founder" at the end. By analyzing the user behavior of the two plans, you decide to use the first plan.

Next, you believe it is time to set up a company. To save time, you spend 2,000 yuan to find a park to register your company. The company name has been a headache for a long time. You don't want to simply use the name of this app as the company name. You know that the company will make other excellent products in the future. You hope that the name is simple and easy to remember, and its meaning is also a symbol of your company culture.

The company is registered, but you have to go to the bank yourself. You contacted some media editors and invited them to try your product; you redesigned the product homepage and started writing a blog for the product; you registered accounts for the App on major social networks, both as a community customer service and for publicity... These things greatly reduced your time to write code. In the past, you used the amount of code as an indicator of your work efficiency that day, so these days you always feel that you haven't done much work.

This development has already exceeded your expectations. This app has almost become your whole life from a side project. You and your girlfriend only go out for a date once every two weeks, and she keeps complaining. You haven't gone out to play and drink with friends for a month. You haven't exercised for two months... You realize that YOU CAN NOT DO THIS ALONE, you need help, you need to find someone to do this together.

But don’t you want to be a Full Stack Engineer? Are you one now?

Full Stack Engineer

Design, backend development, front-end development, mobile development, operation and maintenance, PS, copywriting... It seems that I know everything. Does this make me a Full Stack Engineer?

No, this is just the first step to becoming a Full Stack Engineer. You know that you only know a little bit about each stack, and you are still far from being a senior or expert. It takes a lot of time and energy to master each stack. Your energy is limited, product development is urgent, and you are overwhelmed. This road is too lonely because you don't need to collaborate with anyone. Do you have to hand over some stack tasks to others? Does this mean you have to give up on becoming a Full Stack Engineer?

No! It's not.

What is an Engineer? "Engineers are versatile minds who create links between science, technology, and society."

The essential job of an engineer is to design and develop products that are used by the public.

A true Full Stack Engineer discovers problems and needs in life, designs solutions, and develops the initial version of the product. In order to achieve his goal, he is willing to learn skills and knowledge in any field. At the same time, he does not pursue completing all the work by himself. If someone can do better than him in some aspect, he will warmly invite them to join.

Eventually, his position may no longer be Engineer, he no longer designs UI, no longer writes code... His job is no longer to design and build an app or product, because he has a bigger and more important task to do - design and build a team or a company which builds great products.

At this time, society gave them another title - entrepreneurs. Although everyone has forgotten their identity as engineers, they are still engineers in their bones and deep in their hearts. When they need to start over, they start from designing and developing products without hesitation. Nikola Tesla, Ferdinand Porsche, Henry Ford, Jack Dorsey, Mark Zuckerberg, Elon Musk... Counting the entrepreneurs who have changed or are changing the world, most of them have an engineer background and are passionate about design and creation. They learn skills and knowledge not to become experts in a certain field, but because they are needed to achieve their goals.

The above are the Full Stack Engineers that I recognize.

<<:  Xiaomi is going to acquire BlackBerry?

>>:  Tingyun releases 2014 China Network Performance Report

Recommend

How to understand the product points system from the user's perspective?

The role of points in the entire product process ...

The only meaning of community operation

In the past three or four years, the growth rate ...

62 films directed by Tsui Hark (1979-2018) HD collection Baidu Cloud download

62 films directed by Tsui Hark (1979-2018) HD col...

APP promotion scenario: let users actively download your product!

"Scenario-based" is a prerequisite that...

Can plants catch a cold or have a fever? - Plant Attack and Defense

Produced by: Science Popularization China Author:...

10 Questions Programmers Should Ask Themselves

Want to be a web developer? Then throw away those...

Which keyboard is better? MacBook Pro vs. Razer Blade

Razer updated its gaming notebook series this yea...

How to develop and build WeChat Mini Programs with zero basic knowledge?

WeChat mini programs are applications that can be...

14 seconds! China's own CPU + operating system achieves a leap forward

1 second, 2 seconds, 3 seconds... Several "c...

Download Yang Chunhu's Baoding tongue diagnosis recording from Baidu Cloud

Brief introduction of Yang Chunhu's Baoding t...