Author: Rick Wagner Source: 51cto Release date:
Editor's note: eachProgramMembers all hope to go further in technology and become programmers, masters of development, and technical masters ......; This not only provides a better position and a higher reward, but more importantly, a developer also represents a developer's affirmation of himself and his loyalty and pursuit of technical dreams. But how can we become a developer? Maybe we can get some inspiration from the following blog. Rick Wagner is a Java enterprise-level architect. He has more than 20 years of development experience as a Senior Programmer and a cobole language enthusiast. HeArticleIt is pointed out that the fundamental difference between junior programmers and top programmers lies in the "breadth" and "depth" of the technology they master. Rick believes that this is the key for programmers to advance to programmers.
20 years ago, when I first started to develop data processing, I worked in a company that undertook outsourcing work for a bank. At first, I was just an intern. After graduation, I became the first programmer-"junior programmer ". In fact, in our company, we have made some mysterious marks on these titles. For example, my junior programmer's logo is "E07 ".
Soon I found out how our company identified the programmer level:
◆ Beginner programmer = E07
◆ Programmer = e08
◆ Senior Programmer = e09
◆ Superhero = E10 (a rare breed)
These levels not only represent technical capabilities, but also salaries. Of course, salaries are closely related to these levels. This will not change, whether it was 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 top-level programmers and those who have been staying at the beginning?
One day, I worked with a great E10 programmer to develop a project named James. During the project, we had a pleasant conversation. His words impressed me:"Work is the same, whether you are E07 or E10".
I was dumbfounded. At that moment, I realized that what I did in this project is as important as what James did. I was doing data analysis and coding, and James was also doing data analysis and coding. Although he is working at the highest level of E10, I am also using the compiler he uses; I am also using the data he uses; the development environment he uses is the same as me. If some of his work is difficult, the work I do will also be blocked. In this project, we work together.
Don't get me wrong. Although I do the same job, junior programmers are definitely not as valuable as those programmers. Today, I have to admit this widely accepted fact. But at that time, my idea brought me immeasurable benefits until today.
I tried to find out what the difference was between me and E10's friends. What are the differences between me and him? I have concluded that he is better than me in at least two ways:Breadth and depth.
Breadth means a wide range of tools, skills, and methods at the technical level..At that time, I only had some experience in COBOL programming, while E10 was not only a friend of COBOL, but also proficient in compilation, jcl (a work control language), operating systems, and many other skills. Today, this is equivalent to a Java-only programmer standing by another Java programmer, he also knows the popular frameworks of C ++, C #, Ruby, Python, Erlang, and every language. If a project only needs to use Java, the two Java programmers are equal. However, if more technology is required for the next project, this equality situation will change.
Another aspect isDepth refers to the knowledge content and skills in the field of work..In the past, my COBOLCodeMaybe it's as good as my E10 friend. However, if my program has a bug, my solution is to watch the diagnosis report for continuous debugging. My friend will not only do this, but will also read some core dump data and turn some important data into assembler (he can get some inspiration from it. In another project where we program the interface together, he can better understand the platform we operate on and know how to use the functions provided by the platform perfectly. Similarly, my source code may be similar to his, but if we need to go to the next level ...... Yes, there is a clear line between us.
In today's world, this may mean that programmers can know how to adjust the JVM and select useful data analysis tools. Programmers know how to install, configure, debug, and configure the platform. The cool knows how to build a compiling environment, while the novice programmer may only know how to develop based on the determined solution (Platform.
The breadth and depth of technology, I think, I found the key to become a master. I need to learn more and try to talk about my own breadth and depth (today, I am still working hard !). More than 20 years ago, a discussion with James made me know where I needed improvement, which is much more advanced than I thought in my career. If you are a newbie in this industry, I hope the above mentioned can help you.
Happy coding!
Original article: a secret key to 'Senior 'level programming
Link: http://rickwagner.blogspot.com/2010/02/secret-key-to-senior-level-programming.html