First of all, we need to know, in the career of programmers, which is more important, talent or interest and hard work?
And my answer is that people who say talent is important are just making excuses for not working as hard as others. I have also read a lot of articles recently about how to improve myself. Most of the articles are based on the research conclusions of K. Anders Ericsson. In other words, although the achievements of geniuses have a certain relationship with their talents, psychology The more we examine the life experiences of geniuses in depth, the more we will find that the role of talent will become smaller and smaller in the later stages, while the role of acquired reserves will become more and more obvious.
I find that when most people improve their programming level, the recommended methods are some very basic things. For example, reading code, understanding code, writing code, participating in projects, discussing code, etc. Of course, these practices can indeed help programmers improve their level, but their actual effect is obviously very small.
Below I will talk to you about the advantages and disadvantages based on my own experience in learning programming:
1. Practice through programming competitions
I will participate in various programming competitions. Generally speaking, it is not realistic to use competitions to learn new languages. It provides a weak feedback loop—we only learn whether our program outputs the correct output, but the design process is not judged. This method can only help everyone understand new algorithms or features, but at a practical level, the effect is weak. It focuses more on "performance" rather than "practice".
2. Learn and improve through online courses
There are many excellent tutorials on the Internet for learning, and there are many latest technologies and development experiences shared by experts, which are helpful It is very useful to improve your own level. Here we strongly introduce the Online Video Course of php中文网. They will launch a latest video course every week. There are php中文网’s own original videos as well as videos from some well-known institutions and individuals. The key is All free, these quality courses are very helpful to improve my development level!
3. Read books about programming
Reading related books can help us quickly improve our knowledge reserves, so the "level improvement" plan will have this requirement. Here I recommend 5 great programming books to everyone. These essential books have really helped me a lot. They are worth reading again and again, and each time they give me deeper and more penetrating insights into software engineering. If you haven’t read these books yet, what are you waiting for?
These 5 books are:
"Code Encyclopedia (Second Edition)"
"Midas to Gold: Visitor-First Web Design Tips" (i.e. "Don' t Make Me Think》)
《Humanware》
《The Way of Programmer Training: From Small Workers to Experts》
《The Facts and Fallacies of Software Engineering》
4. Learn fast search techniques and methods
Being a good programmer is not just about skills, but your skills in finding information are also very important. This trend will become more and more obvious. You should learn how to approach specific searches and understand what you are actually looking for. Information filtering can be improved by building a mental knowledge map. Finally, as you search more and gain more experience, you will know some high-quality websites and some common documentation locations, which will make it easier to solve your problem, including which search engine you should use (tip: ordinary search engines may not necessarily is the best choice), which website should be visited before using ordinary search engines, and even which forum should be sought for help, etc.
5. Help others
If possible, help those who ask for help. This is a good thing and what smart people do. Teaching others is always one of the best ways to learn anything. Remember, everything you learn is something you learn from someone else or somewhere else; so give it a try and try to spend a little time each day trying to answer the questions on the site, and other sites as well. You can learn a lot just by reading other people's responses.
6. Coding more is king
Research shows that it takes at least 10 years, or 10,000 to 20,000 hours, to become an “expert” Being a programmer for several years is not enough time for deliberate practice.
Want to become a senior software development engineer around the age of 30? Either get education/training early on, or you have to be willing to do a lot of work, reading, and practice in your free time. I started programming in high school and sacrificed a lot of my downtime to follow industry developments, learn new skills, and more. As a result, I became an intermediate and senior programmer much earlier than most of my colleagues, which turned into valuable experience over time.
7. Look at the code of senior programmers
Look at the code written by senior programmers at work, and then ask them why they completed the project in a certain way. You can also learn from their good programming habits and get reflection from them. But it is worth noting that you should not copy other people's things mechanically; you should be able to understand what is feasible and what makes sense, and then imitate others and constantly explore the language that suits you.
8. Attitude is the key
If you don’t like your job and your current level is still junior, how can you become an intermediate level or make the situation better? , you might as well change your job or career. On the other hand, if you love what you do, then great! Be less impetuous, calm down to appreciate the true essence of technology, and do it in a down-to-earth manner, and you will eventually have a good destination. As long as you stick with it, I guarantee you'll become a better programmer.
Everyone has their own way of growing up. The above suggestions are only for reference. I wish you can find a bright road of your own as soon as possible!
This article is submitted by Xifeng, a netizen of php Chinese website! Please indicate when reprinting!