Editor's note: Every programmer wants to be in the technical aspect further, becomes the program to reach the person, the development master, the technical master ... This will not only get a better position and higher remuneration, but more importantly, the development of a master also represents a developer of their own affirmation and the technical dream of loyalty and pursuit. But how to become a master of development. Maybe we can get some inspiration from the following blog post. Author Rick Wagner is a Java Enterprise Architect with more than 20 years of development experience as a senior programmer and cobole language enthusiast. In his article, he points out that the fundamental difference between a beginner programmer and a top programmer is the breadth and depth of the technology, which Rick thinks is the key to getting the program master to step in.
"51CTO" 20 years ago, when I first started working on data processing, I was working for a company that worked on outsourcing for banks. At first I was just an intern, graduated with the first level of programmer-"junior programmer". In fact, within our company, the title has been a number of mysterious signs, such as my junior Programmer's logo is "E07."
Soon, I found out how our company identified the level of the programmer:
Beginner programmer = E07
Programmer = E08
Senior programmer = E09
Superhero = E10 (a very rare breed)
These levels not only represent technical ability, but also salary, of course, salary is closely related to these rank rankings, this is not change, whether 20 years ago or now.
Like all junior programmers, I want to spend one or two years working at the E07 level and then gradually climb up. But one thing has always puzzled me:What is the difference between the advanced level programmers and the programmers who have stayed at the beginning?
One day, I developed a project with a great E10 programmer named James. In the course of this project, we had a pleasant conversation, and his words impressed me deeply: "work all the same, whether you are E07 or E10”。
I was dumbfounded. At that moment, I realized that the work I did in this project was as important as what James did. I was doing data analysis and coding, and James was doing data analysis and coding. Although he works at the highest level of E10, he uses the compiler I use, and the data he uses I use, and the development environment he uses is the same as mine. If part of what he does is in trouble, part of what I do will also be hindered. In this project, we walk together.
Don't get me wrong, although the job is done, the beginner programmer is certainly not as valuable as the program. Today, I have to admit this widely accepted fact. But at that time, this idea of mine brought me immeasurable benefits until today.
I'm trying to find out what the difference is between my friends and E10. What's the difference between him and me? I came to the conclusion that he was better than me in at least two ways:Breadth and depth。
breadth means a wide range of technology-controllable tools, skills and methodologies。 At the time, I only had some COBOL programming experience, and E10 's friends were not only COBOL, but also proficient in compiling, JCL (a work-control language), operating system, and many other skills. Today, this is a Java-only programmer standing next to another Java programmer, who also knows the popular framework for C + +, C #, Ruby, Python, Erlang, and every language. If a project just needs to use Java, then these two Java programmers are equal. But if more technology is needed for the next project, this equality will change.
Another aspect isdepth refers to the knowledge content and foundation in the field of work.。 In the past, the COBOL code I wrote might be as good as my E10 friend. But if my program has a bug, my approach is to just watch the diagnostics report for constant debugging. Not only will my friend do this, he will also read some of the core dumps and turn some important data into assembler (he can get some inspiration) and so on. In another project that we do interface programming with, he can better understand the platform we operate and know how to take advantage of the functionality provided by this platform. Again, my source may not be much different from his, but if we need to step down one level ... Yes, there is a clear dividing line between us.
In today's world, this may mean that the program cow can know how to adjust the JVM, select useful data analysis tools, and the program Bull knows how to install, configure, Debug, and configure the platform. The cow knows how to build a compilation environment, and the novice programmer may only know how to develop it according to a defined scheme (platform).
The breadth and depth of the technology, I think, I found the key to become a master. I need to learn more and try to mention my breadth and depth (until today, I'm still working on it.) )。 The of with James more than 20 years ago made me know where I needed to improve, and it was a lot bigger for me to promote my career than I thought. If you are a novice in this industry, I hope the above mentioned above will help you.