Methods, software and tools for learning programming


The learning of programming, like the learning of many other skills, requires first and foremost a theoretical foundation, and secondly, a great deal of constant practice. It’s a cliché, and maybe it’s something everyone knows, but it’s easier said than done. So if you want to learn programming well, you need some methods and perseverance.

For programming, the learning at the theoretical stage is relatively abstract. Prematurely hoping to master all the theoretical knowledge in one go and then start practicing, often the more you learn, the more confused you become. Therefore, from a big perspective, a better method is theoretical study-practice-summary-theoretical study-practice... This is a more efficient way of learning to continue to learn and practice over and over again. According to my own learning experience, there are some learning methods and tools recommended for you, I hope to be useful to you.


1. Determine the learning policy and route

First, think about how you want to learn. Like learning a language, make a plan before you start. Go online to see how others (especially those who have already learned) have learned, what classic books are recommended, and what warnings are given. Then, according to your current level, you can make a study plan that suits you, so that you can avoid the wrong way.

Recommend some good posts here, I hope there are some suitable for you:



2. Be sure to take notes

After choosing the route, you can start the theoretical study first, that is, read books and read books. In the past, I was a person who liked to read physical books, and liked to write down all kinds of insights in the blanks of the book when reading books. The advantage of doing this is that when you flip through the book again, you can not only find relevant knowledge, but also easily see the understanding of the text at that time. But when you read more books, five, ten, twenty... This kind of piecemeal annotation becomes more scattered and unorganized. Therefore, you can make comments on the book, but you must summarize it in time, and record the knowledge network of each chapter in one place, so that it is easier to integrate and understand, and you will also have an outline when you look up the general content of each chapter in the future.


3. Read more original e-books

I used to love to read physical books, which are very textured in my hand, and I can also temporarily leave the computer screen and take a short rest. But now my thinking has changed a bit for three main reasons. First, many technical books are written in English first by foreigners, and then we can buy Chinese versions after N years. Therefore, physical books (except domestic originals) often lag behind the original English versions. Second, it will be easier to take notes and excerpts while reading an e-book, and it will make it easier to post your thoughts on a blog to share with others in the future. Third, reading e-books on the computer can complete the various exercises in the book in a more timely manner. In the past, when I read physical books, I often wrote down the exercises I wanted to do first, and wanted to finish them together when I finally read the whole book. But the result is that either the book is not completely read, or some exercises are not impressed by the end of the book, so the exercises are easily stranded.

Now there are many open courses from famous schools on the Internet, which are also good learning resources. Feel and feel the classroom atmosphere of a famous school, practice English listening, and learn your favorite techniques, why not do it?



4. Summarize more, share more

It is a good way to write a blog to record the experience of reading books and programming practice. Not only by constantly blogging to motivate myself to learn and summarize continuously, but also in the process of writing a blog and sharing it with others to verify whether I really understand it. Blogs can be divided into two types: one is reading notes or excerpts, which play the role of memo; the other is more original, such as one's own perception in the process of programming learning, and an analysis of a source code.


5. Self-discipline and self-confidence, guard against arrogance and impatience

Learning is hard work, and it is difficult to persevere for a long time without certain perseverance and self-control. The only thing that can help is interest. The enthusiasm for technical learning and the thirst for knowledge can make you have fun without even feeling lonely and hard. In addition to self-discipline, you will encounter various difficulties in the learning process. I believe that you can learn and solve problems. Although everyone's aptitude is different, I always believe in a truth. As long as you are willing to learn, you will work harder than others with poor aptitude. The stupid bird will fly first, and you will have a day when you will accumulate a lot of money and become a blockbuster. It is gold that will shine. In addition, we must guard against arrogance and impatience, and do not rush for success. If you really like technology, what about a very simple problem that takes a long time to study, as long as you learn it happily. It is also enviable to be a simple and unpretentious programmer who is immersed in his own world every day.

Another point to pay attention to is the learning efficiency. It is much better to combine work and rest, relax for a while and then study when you are tired, rather than blindly starting to study when you get home, and keep learning until you can’t read it anymore.


6. Software and Tools

For the learning of different technologies, we need to build different development environments to help us learn.

For Java, Eclipse is essential. In addition, the practice code is not safe to store locally, so you also need a free code management service, such as Google Code's SVN service and GitHub. Programs written by yourself can also be deployed to free servers. Google's AppEngine supports Python and Java development. The domestic Sina AppEngine currently only supports PHP, which is a good choice for learning PHP.

For the learning of C language, of course, it is Microsoft's Visual Studio integrated development environment on the Windows platform. It can be combined with the learning of C language to easily learn the development of Win32. But better learning platforms are Unix and Linux. I've been using the Ubuntu Server virtual machine on VirtualBox to help me practice C, plus an SSH client to easily transfer source files between the machine and the virtual machine.

In terms of study tools, Evernote is of course an indispensable tool for taking notes. Categorized by learning topics, you will love the feeling of taking notes and picking online. In addition, you can also use Google Reader to subscribe to the RSS output of some popular sites and blogs, and go to see the latest developments every day.


The above is a summary of some of my learning experiences. I hope it will be of some help to you. I also welcome your good suggestions on programming learning.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=324098125&siteId=291194637