That's a good point, and there's very little information about how programmers jump from beginner to intermediate. Here are 10 things you need to do to achieve this change.
1. Learn another language
It doesn't matter what language you're learning, but learning another language (no matter how many languages you already know) will make you a better programmer. It's better to learn a language that is different from the language you use everyday. For example, if you are a C # programmer, learning vb.net or Java will not help you learn Ruby or groovy big.
I say "learn another language" means to really learn it. Learning a language includes three areas of knowledge: syntax, built-in operators and libraries, and "How to use". Front two simple; I think an experienced programmer, depending on the language, can have enough grammar to maintain code in half an hour to a few hours. Operators and libraries are just the process of accumulation of knowledge, when you want to know what to understand, and then consult the reference material is not too late. There is only a third, "How to use it"-it takes you months to deal with the language, and the real miracle happens. I suggest using the style of the language to make a project that fits the language.
After really learning another language, I'm sure your programmer's level will go by leaps and bounds.
2. Learn advanced search techniques, tools and strategies
As a good programmer, it's not just a matter of skill, it's the technique of finding information that's becoming more and more obvious. For most people, simply entering the "Modern language and development framework" is a general discussion, not to be remembered much. As a result, your ability to do the job usually depends on your retrieval ability. Unfortunately, knowing how to find accurate and high quality information is not just a matter of running to TechRepublic to find the answer, or typing a few words on your chosen search engine.
"Technology (Techniques)", "means (tactics)" and "strategy (strategies)" seem to be one thing, in fact not. You need to learn the technology is to master your favorite search engine of the Advanced search system, you need to understand such as Boolean operators, how to filter the results (such as "Non" keywords, domain constraints, etc.), the keyword word order play what role, and so on. In a word, RTFM (read the fucking Manual, reading those fucking manuals).
You should learn these tools, such as how to approach a specific search, and what you actually want to check out. It's easy to check for bugs-just find the wrong code-but many search keywords are much more difficult to select.
As for strategy, you need to learn something, including what kind of search engine should be used (hint: Ordinary search engine is not necessarily the best choice), the use of ordinary search engines should visit which site, or even to which forum to ask for help, and so on.
3. Help others
Teaching others is always one of the best ways to learn all things. In contrast, because you are a novice in the field of development, it is understandable that you have nothing to teach to others. But it doesn't make any sense. Remember that what you learn is what you learn from others or elsewhere, so try it and become someone else to ask. Try to spend a little time every day trying to answer techrepublic questions and other sites. You can also learn a lot from reading other members ' answers.
4. Be patient, practice often
Research has shown that it takes 10 years, or 10,000-20,000 hours of deliberate practice time, to be an "expert". It's been a long time. Also, becoming an expert is not the same as doing the same task in the 10; It usually means doing a broad range of tasks in a specific area. It takes a lot of time and effort to become an "expert", and it's not enough to be a programmer for a few years. Want to be a senior software development engineer around age 30? Either get an early education/training, or you'll be willing to do a lot of work, reading and practising in your spare time. I started programming in high school and sacrificed a lot of rest time to track industry development, learn new skills, and so on. As a result, I had more time to get intermediate and senior programmers than most of my colleagues, and over time they turned into a lot of money.
5. Shut out of dogma
It's time to be honest: maybe the beginner programmer doesn't know enough to say that there is one best way to do something. It is good to respect a friend or authority, but until you have more experience, do not say what they think is your own. Simply, if you don't know enough to find these things on your own, how do you think you know which "expert" is right? It was a bit harsh, but please believe me, I've seen too many of you for a few years because of the temptation of some stupid advice, or of the so-called experts who don't know what they're talking about. A good example of this is the misuse of object-oriented structures. For example, many beginners read about object-oriented information, and suddenly their simple application class diagram looks like the Eiffel Tower.
6. Learn a little advanced ideas
To be an intermediate programmer, a large part of it is to embody some of the concepts that are good in the code. As far as I'm concerned, it's multithreading/parallelism, regular expressions, and how to change the dynamic language (the latter two start to degenerate as I drift away from Perl). How did this happen? Multithreading and parallel processing is because I read the relevant article, I think it looks interesting, and then I figure it out, then I always use these techniques to write applications. I did a job that was written in Perl and used a lot of regular expressions. I also used a process engine template and built-in database system to write my own e-commerce engine; I spent almost 2 years on it.
Find something that really fascinates you. Maybe it's image processing, maybe database design, and so on. Even if you are an entry-level programmer, try to become an expert in one's own area of concern. This will allow you to get to the intermediate level fairly quickly, and once you reach that level, your expert path is halfway through.
7. Learn the basic theories in your field
Writing "Hello World" is different from understanding how those words are displayed on the screen. You will become more proficient by studying the "basic/underlying work (groundwork)" that supports the work you are doing. Why? Because you will understand why things work this way, and when things go wrong, you know where the problem is, and so on. By mastering the underlying mechanism of your work, you become better.
If you are a Web programmer, read the HTTP RFC and HTML specification. If you use a code generator, take a good look at the code it generates, and if you use database Tools, look at the underlying SQL statements it generates.
8. Look at the code of the Advanced programmer
Look at the code written by a senior programmer at work and ask how things have been done in some particular way, and why? If possible, look at open source projects. Even if other programmers don't have the best programming habits, you'll learn a lot of programming experience. Of course, be careful not to learn bad habits. I mean not to apply the same things to others, you have to be able to understand what can be done and what is reasonable, and then imitate others.
9. Learn the Good habits
Stupid variable names, bad indentation habits and other messy signs are the best marks for an inexperienced programmer. When a programmer learns how to program, it is often not imparted to less interesting details like code formatting. Even though learning these things does not make your code better, and does not make you a better programmer, it also ensures that you are not considered an entry-level programmer by your peers. Even if someone is a senior programmer, if his variable is named after his 97 cats, or if the function is called "dosomething", they don't look like people who know what they're doing. It also makes the code more difficult to maintain in the process.
10. Have fun.
Want to be obsessed with tedious work? Hate work. To upgrade to a mid-level programmer is not just to get a growing paycheck, but to really enjoy the job. If you don't like your job and you're a beginner programmer, how do you think that being an intermediate or advanced programmer is going to get better? Change jobs or change careers. Conversely, if you love what you're doing, that's good! As long as you stick to it, I promise you will be a better programmer. (Justin James)