I decided to share my observations on the topic of professional growth, a question that worries many developers. I hear around me: “I have stagnation, I want to develop further, but I don’t (do not give) such an opportunity. On this project, I can not improve. I am degrading without working with new technologies. ” Let's take a look at the path the developer has been following since his career began.
1. Hello World period
The developer understands what a computer program is, meets the concept of a programming language, libraries. Begins to develop something independently.
')
2. Period of awareness
The developer sees that his crafts differ from the applications that he constantly uses. He begins to copy the missing elements into his system, encounters problems of entropy of program code, comes to understand the need for an elementary process, asks questions of style, and becomes familiar with patterns.
3. Period of maturity
The developer already has an idea of how software systems are developed, is well-versed in his field, tests, refactor, uses advanced (read simple) approaches in development.
4. Period of search (I don’t know what to call it)
Moving from period 1 to period 3 to the developer, moments of insight were found, he understood that new knowledge was opening up completely new horizons for him. And here he is looking for step N4. Technology, methodology or landmark where to go next. Studying all the new and new patterns, he realizes that the usefulness of the knowledge obtained (acquired) is decreasing. It is difficult to find something that will radically change its professional level. And now he wants to meet the developers of the 4th level, to gain experience from them. And when he finds “advanced” programmers, with disappointment he realizes that they only have advanced level 3, maybe 3.255 but not 4 at all.
So does this fourth level even exist? It is possible that someone ingenious will come up with an approach that will fundamentally change our understanding of software development, allow us to take a step as significant as in the transition between previous levels. Where to grow further?
I think it is not necessary to look for level 4 in technology or methodology. In the end, technology does not solve anything. The fourth level should be sought in approaches to UI design, interactions with users, in the “quality” solution of your daily tasks.
In the race for new knowledge, technological knowledge, you need to be able to stop in time and understand that you already have enough technical knowledge to accomplish the tasks. And one more technology will not take you to a new level. It is much more important to learn to look more broadly at the solution of daily tasks, from the point of knowledge of end users, customers, and investors. The fourth level is at the junction between development and task. To go to it you need to become a “less” developer. Kill the "only programmer".