10 tips to get you started from beginner to intermediate
Good afternoon. I
bring to the attention of the community a translation of the article “10 tips to go from a beginner to an intermediate developer”. Its author, Justin James, is a Levit & James employee who holds a position that includes programming, network management, and system administration. He has been constantly blogging on TechRepublic since 2005. Writes articles for MSDN Magazine.
A few tips for beginning developers who want to take their careers to the next level.
No matter what language you learn, learning another language (despite how much you already know) will make you an even better developer. It will be better to learn a language that is significantly different from what you are currently using. In other words, if you are a C # developer, learning VB.NET or Java will not help you as much as Ruby or Groovy will help.
When I say, “Learn another language,” I mean that it should really be studied. Learning usually consists of three areas of knowledge: syntax, built-in operators and libraries, and "how to use it." With the first two, everything is easy; I think that an experienced developer can understand the syntax of the language (so that he can support the code), for a period from 30 minutes to several hours, depending on the language. Operators and libraries are simply a matter of accumulating knowledge and the desire to turn to reference material until the necessary information is remembered. But the third point - “how to use it” - can only be learned in months of working with the language. And there all the magic happens. I advise you to make a project that is well suited to the language you are learning and should do this project in the style of that language.
Learn a different language for real, and I promise that your abilities as a developer will begin to unfold even more.
More and more, the expression “good developer” begins to mean not only your skills, but also your ability to search for information. Modern languages and development concepts are becoming too cumbersome to remember all the details. As a result, your ability to do work often depends on your ability to find the information you need. Unfortunately, to make a search for the necessary, high-quality information, you need to do more than just go to Habrahabr for an answer or enter a few words in your favorite search engine.
The words “technology”, “tactics” and “strategy” may sound like synonyms, but they are not. Technologies that you need to learn are modern search engines on your favorite engine; you need to learn things like logical operators, as well as filtering the results (negation keywords, domain restrictions, etc.), what role word order plays, etc. Those. essentially RTFM.
You should study the tactics: how to begin any specific search and know what exactly you are looking for. Everything is simple with errors - you just need to look for the error code. But the choice of keywords to search is a much more complicated task.
Regarding the strategy, you need to find out which search engines to use (hint: general purpose search engines are not always the right solution), which sites to visit _before_, how to use general search engines. And also what forums to apply for help.
Learning another person is one of the best ways to learn something yourself. It is quite understandable that you will think that you cannot really teach anything else, since you yourself are relatively new to software development. This is nonsense. Almost everything that you know, you have learned from other people; so try to be such a “different person”, thanks to which someone else can learn something. Spend a few minutes a day trying to answer questions on TechRepublic or another similar site. In addition, you can learn a lot by reading the answers of other participants.
The study shows that the process of becoming an expert takes about ten years or from ten to twenty thousand hours of practice. This is a lot of time. Moreover, becoming an expert does not always mean doing the same work for 10 years; often this means performing a wide range of tasks in a particular area for about 10 years.
It takes a lot of time and energy to become an expert. Working as a developer for several years is not enough. Want to become a senior developer ?already in the first years after 30 years? Then either start your training earlier, or you have to be prepared and have a desire to work hard, read and practice at your leisure. I started programming in high school, and devoted many extracurricular hours to networking with the IT industry, learning new skills, etc. As a result, I achieved the positions of intermediate and senior developers in my career much earlier than most of my peers.
It's time for brutal honesty: novice developers probably don't know enough to claim that there is one best way to solve the problem. It is good to respect the opinions of a friend or an authoritative figure, but until you become more experienced, do not pass off their opinions as your own. The fact is that you still do not know enough to understand these things yourself, how can you then determine which of the experts is right? I know it sounds harsh, but please trust me; I have met quite a few promising developers who themselves have hindered their careers or their growth for years, because they clung to someone’s stupid advice or followed some “experts” who did not really understand the things they were talking about. Great example- abuse of object-oriented architecture. Many novice programmers will read some information about OO, and once - class diagrams of their simple applications began to look like the Eiffel Tower.
As an intermediate developer, it’s important to have a few concepts that you work well with. For me, these are multithreading and concurrency, regular expressions and how to use dynamic languages (the last two fade out as I move away from Perl). How did this happen? I have mastered multithreading and parallel processing since I read many articles on this topic and tried to figure it out myself; I continued to write applications that used these technologies. I had a job where I had to use a huge amount of regular expressions in Perl. also, I ended up writing my own e-commerce engine that worked on Template Processing and has an integrated database system. Then, I spent about two years working on it.
Find something that truly captivates you. It can be work with an image, or maybe a database design or whatever. Even if you are an entry-level developer in everything, try to become an expert in at least one area. And it pretty quickly helps you advance to the intermediate level. And being there - you will be halfway to the expert.
One thing is to write “Hello World,” but another thing is done — to understand how these letters appear on the screen. Having studied the “basics” of the area in which you are engaged, you will begin to feel much better and more confident in the field itself. Why? Because you will understand why things work the way they work. What could be the problem when something does not work, etc. You will become better at learning what is happening at a lower level than the one at which you work. If you are a web developer, read the HTML and HTTP RFC specs . If you are using a code generator, look at the code that it generates. If you are using database tools, check out the underlying SQL generated by these tools. You can continue for a long time.
At your work, familiarize yourself with the code written by senior developers and ask how and why it was done in this way, and not otherwise. If you can, look at the code for open source projects. Even if other developers do not have good habits in writing code, you can learn a lot about how the code is written. But be careful not to pick up bad habits. The point is not to blindly imitate what other developers are doing, but to understand the essence of things, to understand what and how it works, to know what it makes sense to do, and try to imitate just that.
Nothing gives out such an inexperienced encoder as stupid variable names, lack of indentation (code formatting) and other signs of sloppiness. Unfortunately, very often, a developer learns to program and leaves aside less interesting details, such as code formatting. Although this habit does not improve either your code or even yourself as a developer, it to some extent leads to the fact that you will no longer be perceived as an absolute beginner. Even if someone is a senior developer and writes code in which the variables are named after the 97 types to which they are reduced or their functions are called “doSomething ()”, such a programmer looks like a person who does not know what he is doing. Its code becomes difficult to maintain in the future.
Want to get stuck on the treadmill of your career? Then hate your job. All that is needed to move up in this matter is not only a persistent desire to bring home an ever-increasing salary, but also the ability to enjoy your work. If you do not like your job and you are a junior developer, why do you think that being a middle or senior developer is better? Change the job. On the contrary, if you like your craft - it's just great! I guarantee that you can become an even better developer if you continue in the same vein.
Original article http://blogs.techrepublic.com.com/programming-and-development/?p=1139&tag=rbxccnbtr1
bring to the attention of the community a translation of the article “10 tips to go from a beginner to an intermediate developer”. Its author, Justin James, is a Levit & James employee who holds a position that includes programming, network management, and system administration. He has been constantly blogging on TechRepublic since 2005. Writes articles for MSDN Magazine.
A few tips for beginning developers who want to take their careers to the next level.
No. 1: Learn another language.
No matter what language you learn, learning another language (despite how much you already know) will make you an even better developer. It will be better to learn a language that is significantly different from what you are currently using. In other words, if you are a C # developer, learning VB.NET or Java will not help you as much as Ruby or Groovy will help.
When I say, “Learn another language,” I mean that it should really be studied. Learning usually consists of three areas of knowledge: syntax, built-in operators and libraries, and "how to use it." With the first two, everything is easy; I think that an experienced developer can understand the syntax of the language (so that he can support the code), for a period from 30 minutes to several hours, depending on the language. Operators and libraries are simply a matter of accumulating knowledge and the desire to turn to reference material until the necessary information is remembered. But the third point - “how to use it” - can only be learned in months of working with the language. And there all the magic happens. I advise you to make a project that is well suited to the language you are learning and should do this project in the style of that language.
Learn a different language for real, and I promise that your abilities as a developer will begin to unfold even more.
No. 2: Master modern search technology, tactics and strategy.
More and more, the expression “good developer” begins to mean not only your skills, but also your ability to search for information. Modern languages and development concepts are becoming too cumbersome to remember all the details. As a result, your ability to do work often depends on your ability to find the information you need. Unfortunately, to make a search for the necessary, high-quality information, you need to do more than just go to Habrahabr for an answer or enter a few words in your favorite search engine.
The words “technology”, “tactics” and “strategy” may sound like synonyms, but they are not. Technologies that you need to learn are modern search engines on your favorite engine; you need to learn things like logical operators, as well as filtering the results (negation keywords, domain restrictions, etc.), what role word order plays, etc. Those. essentially RTFM.
You should study the tactics: how to begin any specific search and know what exactly you are looking for. Everything is simple with errors - you just need to look for the error code. But the choice of keywords to search is a much more complicated task.
Regarding the strategy, you need to find out which search engines to use (hint: general purpose search engines are not always the right solution), which sites to visit _before_, how to use general search engines. And also what forums to apply for help.
No. 3: Help others
Learning another person is one of the best ways to learn something yourself. It is quite understandable that you will think that you cannot really teach anything else, since you yourself are relatively new to software development. This is nonsense. Almost everything that you know, you have learned from other people; so try to be such a “different person”, thanks to which someone else can learn something. Spend a few minutes a day trying to answer questions on TechRepublic or another similar site. In addition, you can learn a lot by reading the answers of other participants.
# 4: Be patient and keep practicing
The study shows that the process of becoming an expert takes about ten years or from ten to twenty thousand hours of practice. This is a lot of time. Moreover, becoming an expert does not always mean doing the same work for 10 years; often this means performing a wide range of tasks in a particular area for about 10 years.
It takes a lot of time and energy to become an expert. Working as a developer for several years is not enough. Want to become a senior developer ?already in the first years after 30 years? Then either start your training earlier, or you have to be prepared and have a desire to work hard, read and practice at your leisure. I started programming in high school, and devoted many extracurricular hours to networking with the IT industry, learning new skills, etc. As a result, I achieved the positions of intermediate and senior developers in my career much earlier than most of my peers.
No. 5: Leave your dogma at the door
It's time for brutal honesty: novice developers probably don't know enough to claim that there is one best way to solve the problem. It is good to respect the opinions of a friend or an authoritative figure, but until you become more experienced, do not pass off their opinions as your own. The fact is that you still do not know enough to understand these things yourself, how can you then determine which of the experts is right? I know it sounds harsh, but please trust me; I have met quite a few promising developers who themselves have hindered their careers or their growth for years, because they clung to someone’s stupid advice or followed some “experts” who did not really understand the things they were talking about. Great example- abuse of object-oriented architecture. Many novice programmers will read some information about OO, and once - class diagrams of their simple applications began to look like the Eiffel Tower.
# 6: Explore Some Advanced Ideas Thoroughly
As an intermediate developer, it’s important to have a few concepts that you work well with. For me, these are multithreading and concurrency, regular expressions and how to use dynamic languages (the last two fade out as I move away from Perl). How did this happen? I have mastered multithreading and parallel processing since I read many articles on this topic and tried to figure it out myself; I continued to write applications that used these technologies. I had a job where I had to use a huge amount of regular expressions in Perl. also, I ended up writing my own e-commerce engine that worked on Template Processing and has an integrated database system. Then, I spent about two years working on it.
Find something that truly captivates you. It can be work with an image, or maybe a database design or whatever. Even if you are an entry-level developer in everything, try to become an expert in at least one area. And it pretty quickly helps you advance to the intermediate level. And being there - you will be halfway to the expert.
# 7: Learn fundamental theories and principles in your field
One thing is to write “Hello World,” but another thing is done — to understand how these letters appear on the screen. Having studied the “basics” of the area in which you are engaged, you will begin to feel much better and more confident in the field itself. Why? Because you will understand why things work the way they work. What could be the problem when something does not work, etc. You will become better at learning what is happening at a lower level than the one at which you work. If you are a web developer, read the HTML and HTTP RFC specs . If you are using a code generator, look at the code that it generates. If you are using database tools, check out the underlying SQL generated by these tools. You can continue for a long time.
No. 8: Look at the code of senior developers
At your work, familiarize yourself with the code written by senior developers and ask how and why it was done in this way, and not otherwise. If you can, look at the code for open source projects. Even if other developers do not have good habits in writing code, you can learn a lot about how the code is written. But be careful not to pick up bad habits. The point is not to blindly imitate what other developers are doing, but to understand the essence of things, to understand what and how it works, to know what it makes sense to do, and try to imitate just that.
No. 9: Learn Good Style
Nothing gives out such an inexperienced encoder as stupid variable names, lack of indentation (code formatting) and other signs of sloppiness. Unfortunately, very often, a developer learns to program and leaves aside less interesting details, such as code formatting. Although this habit does not improve either your code or even yourself as a developer, it to some extent leads to the fact that you will no longer be perceived as an absolute beginner. Even if someone is a senior developer and writes code in which the variables are named after the 97 types to which they are reduced or their functions are called “doSomething ()”, such a programmer looks like a person who does not know what he is doing. Its code becomes difficult to maintain in the future.
No. 10: Have Fun
Want to get stuck on the treadmill of your career? Then hate your job. All that is needed to move up in this matter is not only a persistent desire to bring home an ever-increasing salary, but also the ability to enjoy your work. If you do not like your job and you are a junior developer, why do you think that being a middle or senior developer is better? Change the job. On the contrary, if you like your craft - it's just great! I guarantee that you can become an even better developer if you continue in the same vein.
Original article http://blogs.techrepublic.com.com/programming-and-development/?p=1139&tag=rbxccnbtr1