Job Recruitment Website - Zhaopincom - How do programmers become independent developers?
How do programmers become independent developers?
Ordinary developer
Skilled developers, senior development engineers and technical team leaders
Technical experts, architects, front-line managers
Scientist, Chief (Senior) Architect, Head of R&D Department.
In today's article, we will discuss how ordinary developers become skilled developers.
Let's first define the ability level that an ordinary developer should achieve, and then introduce what he should improve before entering the next stage.
The ability level of ordinary developers
Let's look at a picture I often mention-a picture of the growth stage of technology:
Ordinary developers are in the first growth stage: the promotion of special abilities.
The promotion stage of special ability is the primary stage. If you want to do things well, you must first have some basic abilities. For example, a programming language (Java/C++/ Python/JavaScript, etc. ), an IDE (Visual Studio/Qt Creator/Android Studio/Eclipse/WebStorm, etc.). ) and a technical framework (Netty/Qt/SSH/MyBatis/AngularJS, etc.). ).
The most important thing at this stage is to improve your special ability, so that you can quickly get what others have arranged for you and show your value.
At this stage, at least the following standards must be met:
Able to understand and complete leaf tasks decomposed by others.
Can independently complete the development of a functional module.
Take the front-end developer as an example. At this stage, you must be able to convert the page prototype in the UI into a real web page that can be run and operated. For example, login pages, such as product details display pages, should be able to realize visual pages and business logic jumps.
Take Android application developers as an example. At this stage, you must be able to handle functions such as login and payment. Take the login function of the App as an example. You should be able to use specific layout and components to achieve an adaptive login interface, and also learn to use the SDK of third-party accounts such as WeChat and Weibo to achieve third-party account login.
It may be difficult for you to design a complete set of login functions (including password encryption, single sign-on, Cookie use, verification code, password retrieval, third-party login, multi-terminal synchronization, role authentication, user data storage, etc.). ), but when a skilled developer or senior developer finishes the design and assigns you a small function, you should be able to understand the design and realize it, and be able to integrate with the whole login system and work normally.
When you can handle these things, your special technical level is at least like this:
Skillfully build the required development and test environment.
Familiar with the basic grammar of programming language, have a knowledge map of language, be familiar with the basic functions of language itself, and understand the advanced functions of language.
The API of the prior art framework can be called to realize specific functions.
You can select the appropriate group from multiple groups of APIs that realize the same function.
Can skillfully use the development environment and various auxiliary tools for debugging.
It can solve software bugs that are easy to reproduce and simple in logic.
Can learn the basic API of a new framework independently, and complete the basic realization of a function with reference to DEMO.
My summary may be imperfect or have bugs, please correct and supplement it in the message area.
I think of an example around me, which coincides with the topic we are discussing
I once chatted with my friend G, and he said that X, a programmer doing front-end development in his department, has been using jQuery to realize various pages, with redundant code and messy structure. After Vue.js came out, G wanted to use it in the new version, so he arranged for X to learn Vue.js, let him refer to the function and layout of one or two pages of the company's products, simplify the design, and make two pages with asynchronous data request function to see the effect. As a result, a week later, X told G that Vue.js was too complicated to understand the development documents and codes and could not continue. ...
If you are in the state of X, it means that you are still in the stage of ordinary developers, and you can only code and realize specific subdivision functions under the guidance and arrangement of others.
If you want to advance, you must first reach the level described in the list listed above (that is the basic requirement), and then ask for targeted learning and promotion according to the ability of skilled developers, and steadily enter the next stage.
The key difference between ordinary and skilled.
Compared with the previous technology growth stage chart, skilled developers are in the middle stage and have their own skill system.
To understand what it means to have your own skill system, let's first look at two groups of concepts:
Knowledge, knowledge system
Skills and skill system
Simply put, knowledge is information that can cause changes, and skills are a combination of a series of thoughts and actions that use knowledge to solve problems. But this is not easy to understand. Let's give an example in the field of software development. Virtual function in C++ is a knowledge point. It is a skill to define the module interface with this characteristic of virtual function and realize the dynamic loading of modules.
Next, for the convenience of writing, I no longer distinguish between knowledge and skills, but directly equate knowledge with skills, and even replace skills with the word knowledge. Please distinguish according to the context when reading.
The relationship between knowledge and knowledge system, skills and skill system is just like the relationship between trees and forests, just like the relationship between knives, scissors, screwdrivers and Swiss army knives on Swiss army knives.
For example, we should be able to understand what a system is.
The so-called knowledge system is the combination of several interrelated knowledge that can be used to solve specific scene problems.
Well, it's much easier to look back at the difference between ordinary developers and skilled developers now.
Ordinary developers have all kinds of discrete knowledge because they keep completing tasks, doing projects and contacting and using all kinds of "knowledge points", but these knowledge are rarely related to that knowledge. The knowledge he has is a straggler, as shown in the figure below:
When your knowledge points are not related, it is difficult for you to think systematically and get a solution when you encounter problems.
Skilled developers, on the other hand, have gone through the process of combing and integrating knowledge points, connecting scattered knowledge points around an application scenario to form a knowledge system. Just like the picture below:
When you have a knowledge system, when you encounter problems related to scenes corresponding to your knowledge system, you can quickly find relevant knowledge, systematically analyze the problems and finally solve them.
You see, whether there is a knowledge system leads to a very important difference between skilled developers and ordinary developers: skilled developers can be independently responsible for the design and development of a module or subsystem, have the ability to analyze and solve problems and decompose tasks, and can assign tasks to ordinary developers.
Advanced training direction
Well, from a technical point of view, the difference between ordinary developers and skilled developers is that the knowledge of ordinary developers is not systematic, while skilled developers have built a knowledge system related to application scenarios.
In this way, if ordinary developers want to advance, the direction is clear: build their own knowledge system.
So, how to build a knowledge system? First of all, refer to my other article: building a knowledge map to make yourself more valuable. If there is an opportunity in the future, I will reconstruct a new article and talk about the topic of building a knowledge system.
- Previous article:What does a packer do in Hengan Paper?
- Next article:What is the treatment of Zhengzhou Radio and Television Information Network Co., Ltd.?
- Related articles
- Stay in Zhengzhou for the New Year on the spot. Who knows some interesting places in Zhengzhou?
- What is the job of a flow controller?
- Guizhou famous university
- Is Fuxiang Wood Industry famous? What about Fuxiang Wooden Doors?
- Write a job advertisement and reply to the advertisement composition in English.
- I want the impression of the internship of the silver jewelry shop assistant. No matter whether you copy and paste it or not, can you send me what you think is suitable for me? You can also write it y
- Chen Anzhi Dream Speech.
- Is Xiamen Institute of Technology a strong school?
- How to work in Ukraine
- Which lawyer is the best in Yingke Law Firm?