Ben Watson, a well-known developer. GeoEye is a leader in its development team. This article is published on his blog and describes ten ways to learn new technologies.
This articleArticleThis is a point of view drawn from my article "five features of efficient developers. From my own career and habits, I have considered many ways to learn effectively.
1. read books. A large part of thousands of programming books are useless at all. However, there are still many books that greatly improve your (programming) capabilities. I have always insisted that searching for useful information in similar books is easier and faster than searching for useful information on the Internet. Read technical books to better grasp the core content. Books are also very helpful in terms of theory, architecture, and design. However, to find high-quality and authoritative information, it is not as wide as the range of information available on the Internet.
2. ReadCode. This is also a method I like very much. If I do not have many years of professional programming experience, I will not read a lot of complex code at the beginning of my learning. If I start learning earlier, I will be betterProgramMember. However, at the beginning, I will learn from some open-source projectsSource code(Of course, these codes cannot be related to my work, or I did not write them myself ). Start this job from the programs you will use or programs you are interested in. I learned from the paint.net website and have accumulated many programming technologies on. NET.
Reading other people's code can provide you with more different working ideas, which is more than the way you think.
3. write code. Remember to write a lot of code. Basically, the best way to learn is practice. If you do not write code, you cannot thoroughly learn the internal things (in a language. At the beginning, you can copy some simple programs from some technical guides and books. Of course, this type of copying requires completely manual input, rather than copying and pasting. The effects of the two types vary greatly. The main purpose of this method is to internalize knowledge and think about its usage, rather than blindly copying it. In the learning process, it is easy to find new API call methods from time to time.
The most important thing is to write a program of your own, whether it is a simple game, a program involved in open-source projects, or a simple plug-in for your own use. Write programs in different ways, try to use new technologies, new skills, and new design methods. Make sure that the current project is better than the previous project. To be a good developer, this is the core.
4. Communicate with other developers. Similar to news descriptions of apple, Microsoft, Google, and other large companies, (communicating with other developers) can help you solve complicated problems. Although this does not make you feel that you have become a team orCommunityBut this method can expose you to more different ideas.
Different types of projects require different design methods, code technologies, development processes, and design ideas. If you work in a small group, you don't have to contact too many people. You just need to find some people (to discuss) in the user group meeting. If this is not the case, participate in discussions with others in the online forum (in this case, you need to work harder to find high-quality discussions ).
6. Teach others. Compared to simply reading code and other jobs, teaching other people can help you learn a technology more deeply. This method has remarkable results. Teaching others a technology also enables you to focus more on this technology and understand it more deeply than others. You will also face some problems.
"If you cannot understand a concept for a six-year-old child, you do not fully understand it ." Albert Stein said.
The teaching scenario can be endless: one-to-one communication with working partners, meeting off, informal weekly meetings, learning tea sessions, classrooms, discussion sessions, etc. How about a 30-minute informal meeting between developers with the same idea every week? Every week, let a few people learn more about the topic, teach them the technical knowledge, and start the discussion. If you know that you are going to teach the team members what they are learning, do you want to know more about this technology?
6. Listen to the network radio station. If you have free time, you can subscribe to online radio programs. My favorite programming program is. Net rocks. This program also has some video programs called dnrtv. This will allow you to instantly capture the latest and best technologies. A person cannot learn all the knowledge, while a network station is just a way to learn a wide range of knowledge.
7. Read the blog. There are far more blogs than readers, but some of them are excellent. I don't recommend blogs here, because there are enough blogs on the Internet. This is a good way to contact the developer who is actually developing your favorite and used software.
8. learn new languages. Even if you have excellent knowledge in C (++, #)/Java and other languages, there are still many other problems that can be solved.Programming Language. Learning new languages is a challenge to your existing way of thinking. This is not just another language, but also a re-architecture of thinking. Indeed, all languages will eventually be compiled into assembler programs, but this does not mean that advanced languages have no value.
9. The learning method is incorrect. In addition to learning how to do it, you must also learn not how to do it. Read dailywtf.com frequently to learn lessons you don't know. Learning appropriate object-oriented design methods, code writing methods, and the code that must be written is a good way, but it is easy to develop bad habits if you are not careful. An incorrect understanding of the concept is a crucial part of project development.
Wikipedia provides a thorough classification of many incorrect methods.
10. Be humble.
Learning means:
use better knowledge to replace imperfect knowledge
increase the knowledge you do not know
only by recognizing that you are lacking can you have the motivation to learn. In the final analysis, it is modesty, right? If you begin to think that you have mastered all the required knowledge, then you are in danger. It takes a lot of effort to pursue knowledge and internalize it. We all know this, but we must always remind ourselves.