That’s a good idea, and there’s very little information about how programmers can jump from beginner to intermediate. Here are 10 things you need to do to achieve this transformation.
1. Learn another language
It doesn’t matter which language you learn, but learning another language (no matter how many languages you already know) will make you a better programmer. It is better to learn a language that is different from the language style you use everyday. For example, if you are a C programmer, learning vb.net or Java will not help you as much as learning ruby or groovy.
When I say “learn another language”, I mean to really learn it. Learning a language involves three areas: syntax, built-in operators and libraries, and “how to use them.” The first two are simple; I think an experienced programmer, depending on the language, can master enough grammar knowledge to maintain the code in half an hour to a few hours. Operators and libraries are just the process of knowledge accumulation. When you want to know what you want to know, it’s not too late to consult the reference materials. Only the third, “how to use it” – takes you months to deal with the language, and the real miracle happens here. I suggest using the style of the language to make a project suitable for the language.
After really learning another language, I’m sure your programmer level will advance by leaps and bounds.
2. Learn advanced search technology, means and Strategies
As a good programmer, it’s not only about skills, but also your skills of finding information. This trend is more and more obvious. For most people, just typing in “modern language and development framework” is a general statement, not much to remember. Therefore, your ability to do your job usually depends on your retrieval ability. Unfortunately, learning how to find accurate and high-quality information is more than just going to TechRepublic to find out, or typing a few words on your chosen search engine.
“Technologies”, “tactics” and “strategies” seem to be the same thing, but they are not. The technology you need to learn is to master the advanced search system of your favorite search engine; you need to know such things as Boolean operators, how to filter results (such as “non” keywords, domain restrictions, etc.), what role the word order of keywords plays, etc. In a word, RTFM (read the Fucking Manual).
You should learn these tools, such as how to approach a particular search and what you actually want to look up. It’s easy to look up errors – just look up the error code – but many searches are much more difficult to choose keywords.
As for the strategy, you need to learn something, including which search engine should be used (hint: ordinary search engine is not necessarily the best choice), which website should be visited before using ordinary search engine, even which forum should be visited for help, etc.
3. Help others
Teaching others is always one of the best ways to learn everything. Comparatively speaking, since you are still a novice in the field of development, it is understandable that you think you have nothing to teach others. But it doesn’t make sense. Remember that everything you learn is what you learn from others or elsewhere; so try to be someone else’s “other person.” Try to spend a little time every day trying to answer TechRepublic’s questions, as well as other websites. You can also learn a lot by reading the answers from other members.
4. Be patient and practice often
Research shows that it takes 10 years, or 10000 to 20000 hours of deliberate practice, to become an “expert.” It’s been a long time. What’s more, being an expert doesn’t always mean performing the same task for 10 years; usually that means performing a wide range of tasks in a specific area. It takes a lot of time and energy to become an “expert”; a few years as a programmer is not enough. Want to be a senior software development engineer around the age of 30? Either get an education / training as early as possible, or you have to be willing to do a lot of work, reading and practice 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 get intermediate and senior programmers much earlier than most of my colleagues, and as time goes on, that translates into a lot of money.
5. Reject dogma
It’s time to be honest: maybe junior programmers don’t know enough to say there’s the best way to do something. It’s good to respect the views of friends or authorities, but until you’re more experienced, don’t make their views your own. Very simply, if you don’t know enough to find these things independently, how do you think you know which “expert” is right? It’s hard to hear, but please believe me. I’ve seen a lot of young programmers who have been deluded by some stupid suggestions or follow some so-called experts who don’t know what they’re talking about for years. A good example of this is the abuse of object-oriented structure. For example, after many beginners read some information about object orientation, all of a sudden, their simple application class diagram looks like the Eiffel Tower.
6. In depth study of advanced concepts
To be a middle-level programmer, a large part of it is to show some good concepts in the code. As far as I’m concerned, it’s multithreading / parallelism, it’s regular expressions, and how to make changes to dynamic languages (the last two start to degenerate after I get away from Perl). How did this happen? Multithreading and parallel processing is because I read the article, thought it looked interesting, and then I figured it out for myself; then I always used these technologies to write applications. I’ve done a job in Perl that uses a lot of regular expressions. I also used a process engine template and built-in database system to write my own e-commerce engine; at that time, I spent almost two years on it.
Find something that really fascinates you. Maybe image processing, maybe database design, etc. Even if you’re an entry-level programmer, try to be an expert in your area of interest. This will allow you to get to the intermediate level fairly quickly, and once you get to that level, you’re halfway there.
7. Learn the basic theories in your field
Writing “Hello world” is not the same as understanding how those words are displayed on the screen. By learning the “ground work” that underpins your work, you’ll become better at it. Why? Because you can understand why things work in this way, when things break, you can know where the problem is, and so on. By mastering the underlying mechanisms of your work, you will become better.
If you are a web programmer, read the HTTP RFC and HTML specifications. If you use a code generator, take a good look at the code it generates; if you use a database tool, take a look at the underlying SQL statements it generates.
8. Look at the code of senior programmers
Look at the code written by senior programmers at work, and then ask how things are done in a 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 about programming. Of course, be careful not to learn bad habits. I mean don’t copy others’ things mechanically; you should be able to understand what works and what makes sense, and then imitate others.
9. Learn good habits
Stupid variable names, bad indentation habits and other messy signs are the best markers for an inexperienced programmer. When a programmer learns how to program, he is often not taught the less interesting details, such as code formatting. Even though learning these things won’t make your code better or make you a better programmer, it will make sure you’re not seen as entry-level by your colleagues. Even if someone is a senior programmer, if his variable is named after his 97 cats, or his function is called “dosomething()”, they don’t look like people who know what they are doing. And it makes its code more difficult to maintain in the process.
10. Have fun
Want to be obsessed with monotonous work? Hate work. Upgrading to an intermediate level programmer is not just about getting a growing salary, but about really enjoying the job. If you don’t like your job and are still a junior programmer, how do you think that becoming an intermediate or senior programmer will get better? Change your job or career. On the other hand, if you like what you do, that’s good! As long as you stick with it, I promise you will become a better programmer. (Justin James)