How to learn programming quickly and well

Source: Internet
Author: User

Liu Tieno Editor: Zhang Bland translation: nine technology

When I wrote this topic, I felt I was talking to the whole world like I was writing my first program "Hello,world". Hopefully this topic will help people who want to learn programming (including yourself) get a good start.

About Me

My name is Liu Tieno, you can call me Tim if you like. When I was in college, I started to learn computer programming, and before that, the computer was just a printer or a game console for me. But when I started programming, three factors made me benefit from the computer field. respectively:

1. Typing in fairly fast

2. Know some disk operating system commands and know some programming languages: basic and Pascal

3. Some like-minded people who love computers

Why should I mention this? Because it makes me no longer have a fear of computers, and I'm no longer afraid to interact with other people. I vaguely remember when I was a little boy, doing in a not very comfortable chair, facing the screen, completely overwhelmed. What a weird and awkward feeling it is! So, when you decide to learn to program, ask yourself a simple question-how familiar are you with computers? Do you often use computers? Are you able to run the Windows/linux system skillfully? How much software can you use? Of course, even if you're not very familiar with computers, that doesn't mean you can't learn to program. However, in your journey to conquer the computer, both psychologically and physically should be more difficult than those who are already familiar with computer operations.

I taught myself vb,delphi and flash programming at college. After I graduated, I became a software engineer. Then, have the opportunity to teach college students. Maybe because my parents are teachers, I can always easily describe things logically and clearly. So, the students are very fond of my class. It also encouraged me to step further and farther. I started translating and writing books, publishing online training videos and so on. After I moved to the United States, I started doing small business to help more people to learn computer programming. So far, I have taught hundreds of people how to learn programming in the United States. So, I think it's a very good time to summarize some of my experience and share it to everyone!

In the teaching of these years, my main teaching idea is how to learn programming quickly and well. You must be prepared for the "path of psychology" and the "Path of knowledge".

The Road to Psychology


Recently, I had a learning experiment: how to learn programming languages quickly? When I say "learning," I mean the language must be strong enough to pass interviews with the following three topic types:

1. Conquer the language itself, such as: syntax, keywords, operators and expressions, statements, object-oriented, basic libraries, and so on.

2. Algorithmic knowledge, such as: Common collections and algorithms (sorting, recursion). This includes classic algorithmic problems, such as dynamic programming

3. Object-oriented knowledge and skills, such as web and mobile development (based on this language), tools and frameworks

Finally, I found that it would take about 6 hours to complete project 1 and another 6 hours to complete Project 2. I don't have a test item 3, because when you get the job, most of them are willing to give you the opportunity to learn these things.
I'll take 12 hours altogether--isn't it pretty fast? I guess you must be eager to know how I did it-in this process, three important things are already engraved on my mind:

1, active learning-I am full of curiosity and interest in the programming language to learn, and love it from the heart. In any case, make sure you take the initiative to learn. Sometimes, stress can actually promote learning, but it doesn't last for a long time, and it doesn't allow you to master the language quickly.

2, understand what I want to learn-I have no teachers, no practice materials, and no exams, but I can test myself to see if I understand what I am learning. I know there are a lot of restrictions in the new field, so I wrote some questions in my notebook and answered them later (usually a few hours later). You will find that taking notes, conducting web searches, and collecting reference books as much as possible are very helpful to your study.

3, migration knowledge-because I am a very experienced software engineer, I can migrate old knowledge to help me understand the new language. In most cases, it can be done, especially for algorithms and ideas. But in some cases, knowledge transfer is wrong, I have to do a "migration---Test (code)---Understanding" check.

It's time for you to play! Even if you don't have any programming experience, you need to do the following three things with accuracy.

1, become an active learner--whatever the reason, you just want to learn these languages. I think you love this subject, you want to be a professional, or you are just curious, is a very good reason. They'll make sure you don't flinch. Because learning this road, is not a path, will be blocked by various obstacles. Various twists and turns are difficult in this way, including difficult to understand the various complex content, to solve the disaster problems, be laughed at and so on. Through my years of experience, I have found that maintaining a high level of confidence is the best way to stay motivated. I have two-thirds of students who have no programming experience and become active learners, but they do very well. Moreover, I found that those who performed very well tended to have a positive and optimistic partner (wife/husband/boyfriend/girlfriend). Because they encourage my students to stay on the right track, which will eventually make them successful in the computer field!

2, by asking the teacher, do exercises, mass tapping code, etc., to ensure that you can fully understand. Programming is a special skill, and all of your knowledge is useful and valuable in coding-if you don't know how to write code, you don't learn anything. The most effective way to measure how much you've learned is how smoothly you can write code and how much you learn. By the way, by my observation, students who feel guilty for not understanding the points of knowledge are more successful in the end. This is because they are more inclined to understand and work harder to achieve their goals.

3. Migrate your knowledge-I know you don't have any programming knowledge to transfer, but don't worry about worrying. A programming language is simply a natural language that is used to describe the world we see. Unless you have just landed on Earth from another galaxy, everything inside your brain can be translated into a computer programming language! For a new learner, knowledge transfer has another function, and you can use the knowledge you have just learned to solve problems you have never encountered. This is very common, especially when you meet an algorithmic problem. You will soon find that understanding and migration knowledge are always tied together. To put it simply, understanding knowledge is migrating knowledge and vice versa.

The way to Knowledge

People always ask me, "is it difficult to learn programming?" "And my answer is: I don't know. This is because different people in the learning process will encounter different difficulty problems. When I was a student, I often felt bored or interested, depressed or happy, etc. But it never seems to be difficult. Some of my students think programming is very simple, but some students think it is very difficult. Throughout the learning process, it is difficult for students to change their initial concept of programming (simple or difficult), even if the material becomes more and more complex. What does that mean? Is that programming depends on your attitude. Simply put, knowledge is knowledge, and your attitude determines how easy it is.

To learn any knowledge system, we must follow some order. If you follow these orders, you will eventually build your own structured information system in your brain. In my 15 years of software engineering career and 10 of programming trainer career, I have been fine-tuning these sequences. I have taught thousands of students in this order, including myself, and are still constantly improving it. Here is an introduction to this sequence:

1. Prepare a relatively good computer that runs fast, and then install an operating system (recommended Windows operating system). Don't let a slow computer waste your time.

2. Select a correct type of fingering. Also, be familiar with some Windows shortcut keys and text editors.

3. The first step in learning computer science is to learn a programming language. Here are the pros and cons of this language:

A.C language
"Advantages": You can learn a lot of the bottom of the knowledge, to give you a solid foundation.
"Disadvantage": C language does not support object-oriented programming, you can hardly use it to find a job directly

B.c++
"Pros": many usages are the same as C, but they support object-oriented programming
"Disadvantage": there are too many knowledge points to learn, relatively complex language, there are multiple versions to choose

C.java/c#/python/javascript
"Advantages": Simple grammar, hidden low-level knowledge points, readability, learn it easy to find a job
"Cons": You will lose a lot of the underlying knowledge points

D.html and CSS are not programming languages

E. assembly language is not suitable for beginners

4. If you want to choose a language, I suggest you choose Java/c#/python. You only have to choose one and learn it well, so other languages you will be studying within one months.

5. Find a teacher or a mentor. They must have at least 5 years of experience.

6. Find the official language to regulate your language, and all related books. But make sure you're not spending money blindly.

7. Pay attention to when to read books or documents, when to search, when to write code or debug bugs, when and how to ask the teacher (tutor). Never think of your teacher or mentor as your "bug-debugging little Expert".

8. Use and follow the following order when you are learning a language:

A. How many data types does the language support? What are their literal values?

B. How do I declare variables and constants? How are arrays defined?

C. How do I invoke and declare a function?

D. Learn a bit of library functions, such as input and output

E. How many operating systems are supported in this language? How do I use them to build an expression?

F. What are judgment statements and circular statements? How do I put them together for use?

G. Does this language support object-oriented? If so, how do you build a class and encapsulate members (variables and functions)?

H. How many standard forms of aggregation are supported in this language? (arrays, lists, stacks, queues, collections, etc.)

I. How does this language achieve inheritance and polymorphism?

J. How to implement the interface and solid law?

K. How do I implement a callback function?

L. Do you support the functional programming method?

M. Familiarize yourself with the standard library as much as possible. Different languages have different library functions, so ask a professional at this point

N. Use this language to learn the algorithm. Implement classic algorithms and solve puzzles

O. Use this language to write software like websites, mobile apps, etc.

9. Full-time students usually spend 3 months completing a to M, and then taking 2 months to complete n. It all depends on your understanding of the previous project. If you find yourself stuck on a project, then come back and try to understand. Remember to be patient.

10. Once you have learned a new point of knowledge, write the code and be sure to keep it networked on GitHub in Visual Studio.

Conclusion:


It's Christmas in two days. This little topic is a Christmas present for my students and their parents. I expect my students to be more successful in the new year, especially thanks to my editor Brandon Zhang, whose corrections and suggestions make this topic more readable. If you have any questions or suggestions, please send an email to [email protected].

Hope this topic can help you learn programming well. Good luck! Happy Christmas and Happy New Year!

Original address: http://www.timliu.net/Portals/0/Topics/HowToLearnProgrammingWellAndQuick.pdf

Developer Exchange Group: 53078485, looking forward to your joining

How to learn programming quickly and well

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.