How should I learn programming?

Source: Internet
Author: User

Recently, in the Exchange Group, I often have a hard time asking me how to learn programming. I am interested in programming but cannot start with it. This is a huge proposition that makes the great gods "speechless. On zhihu, csdn, and other forums, many colleagues have also discussed such issues. The editor has sorted out the highly recognized answers to help the struggling cainiao, you are also welcome to add and shoot bricks.

1. Be interested and be determined

Interest and patience are a common topic. You just need to remember a little bit.ProgrammerThere is a big difference in wages. Competent programmers enjoy high salaries. However, pseudo programmers who just know a little bit about it may not find a job. If they want to survive by coding, they should study hard on the basis of their interests.

2. What to learn and the choice of programming language is also a problem for beginners

Language is just a tool. Over time, Every programmer can master one or more languages and learn the latest and most convenient new language as the technology develops, it is more important than the ideas and methods for solving language problems.

C and python, as beginners, are the most recognized programming languages suitable for beginners. However, due to their own characteristics, these two languages have a certain degree of confrontation, of course, other languages also have reasons to be chosen.

C language is difficult to learn, but many languages are affected by C. The basic concepts and concepts are common. C can lay a solid foundation for programming, it also reduces the difficulty of learning other languages in the future. In short, learning C language is bitter, sweet, and at first you have to be cruel to yourself.

Reason for selecting C:

1. Most data structures and algorithms are written in C language;

2. With C, you can learn more about computers, understand computers, and understand the underlying layer;

3. The C language is always-lasting, with a high threshold but will never be used in the future;

4. The design of C is the embodiment of UNIX philosophy. It is fully embodied in thin encapsulation, transparency, compact, and consistency.

Reason for not selecting C:

1. c is close to the bottom layer, so it may cause you to fall into the bottom layer details too early, but the bottom layer details are not universal. This is contrary to the problem-solving ideas;

2. It is relatively difficult to see results, and it is not conducive to beginners to continue learning.

Python is friendly to beginners, relatively easy to use, and has comprehensive functions. It is easy to see the effect and reduces the boredom of beginners.

Reason for choosing Python:

1. The functions are very powerful and widely expanded, with Web, script, Gui, and server;

2. Simple syntax supported by any platform;

3. Many details are omitted, making it easier to understand;

4. python is based on clear syntax and intuitive problem solutions, as well as its powerful cross-platform GUI tool, which can arouse the interest of many beginners.

Reason for not selecting Python:

It is easy to cause poor infrastructure, and there will be a lot of underlying concepts in the future.

3. How to learn

Programming is a highly operational knowledge. It is essential to read a book. However, only by combining learning with practice can we achieve good results.Read books-> Study Book examples-> do something yourself-> search for documents online-> read books.

Studying the classic tutorial is an important way to learn a lot of knowledge, but you must read through the book. When you are studying the C language, you have always seen that no new syntax is available in all C's entry books. It is best to read some books on computer principles and basic knowledge before the birth of a non-scientific class, which will facilitate the integration of various knowledge in the future.

There are many introductions on various platforms for programming language tutorials, and there are also various recommendations. We recommend that you read more recommendations in small series. The recommended results should be good for everyone.

Introduction to Computers:

Introduction to computer science and technology, in-depth understanding of computer systems, modern operating systems, database system concepts, data structures, and compilation principles

C Language: C primer plus, C programming language, C programming language: modern methods, C traps and defects, kenig, brilliant programming, Steve Maguire, the C Programming Language

C ++ (recommendation blog): Problem Solving with C ++

Phase 1

C ++ Primer

This book provides a comprehensive and authoritative explanation of the basic concepts, technologies, and modern c ++ programming styles of C ++. It is the best guide for beginners of C ++; this book helps you write practical programs without having to master the details of each language first. This book is also an indispensable reference for middle and senior programmers.

Essential C ++

C ++ introductory books with little content but great practicality emphasize Quick Start and understanding of C ++ programming. This book focuses on a series of increasingly complex program problems and the language features used to solve these problems.

Phase 2

Objective C ++ and more objective C ++

Scott Meyers. You should read them carefully and understand each project clearly. This book introduces a better method for writing C ++ code around 55 guidelines, and discusses it with specially designed examples.

Predictional C ++ (C ++ Programming analysis) and more predictional C ++

These two books contain 40 C ++ programming problems that will allow you to hone your skills and eventually become an excellent C ++ programmer. These problems are carefully selected by Herb Suter, which is consistent with the official ISO/ansi c ++ standard and helps programmers maintain a good style in the design, architecture, and coding process, this makes the C ++ software more robust and efficient.

Phase 3

Inside the C ++ Object Model (in-depth exploration of the C ++ Object Model)
This book focuses on the underlying mechanism of C ++ object-oriented programming, including structured semantics, generation, encapsulation, inheritance of temporary objects, and virtual-virtual functions and virtual inheritance, it helps you understand the underlying implementation of the program to write more efficient code. The design and evolution of c ++ (Design and evolution of C ++)

This book is also written by Bjarne stroustrup, a C ++ language designer. In this book, the author comprehensively introduces the development history of C ++ and the essential meaning and design background of various important mechanisms in C ++, the basic usage and usage of these mechanisms have discussed the applicable application fields of C ++ and their future development prospects, without ignoring the key details and failing to fall into technical details.

Phase 4

The C ++ standard library (C ++ Standard Library)

This is a standard template library dictionary. You can find all STL-related knowledge in this book. This book focuses on the standard template library, check containers, iterators, function objects, and STL algorithms. Each element is deeply presented, including its introduction, design, application examples, detailed explanations, traps, unexpected dangers, and related categories and functions.

Negative STL

This is Scott Meyers's third book, C ++, and the most authoritative book to learn STL. The author makes a detailed analysis of the 50 guidelines in the book, and uses them as an example. With these rules, C ++ developers can use STL generic programming and the STL (generic programming and STL) to the maximum extent.

This book describes the core concepts of generic programming: concepts (concept), modeling (model), and refinement (Improvement), and shows you how to export these concepts to the basic concepts of STL: iterators (iterator), containers (container), and function objects (function object ). As described in this book, you can think of STL as a library composed of concepts. You will learn the official structure of STL and understand its powerful advantages.

Phase 5

Predictional C ++ Style

The author is Herb Sutter. This book also raises 40 C ++ style-related questions, and provides new insights on some important C ++ details and relationships, it provides new strategies for today's key C ++ programming technologies (such as generic programming, STL, and exception security, it helps developers find a perfect balance between overhead and functionality, between elegance and maintainability, and between flexibility and flexibility.

C ++ Template

This is a complete reference manual and tutorial on the C ++ template, which emphasizes the use practices of the template and contains examples in the real world. Every C ++ programmer should read this book well.

Modern C ++ design (modern c ++ design)

Andrei Alexandrescu opened a new situation for C ++ programmers. This book provides some cutting-edge methods for software design, such as joint design patterns and generic programming, so that programmers can write expressive, flexible, and highly reusable code.

Thinking in C ++ (C ++ programming ideas)

An authoritative book in the C ++ field, which introduces C ++'s practical programming technology and best practices.

Objective-C: Objective-C Programming

Python: Basic Python tutorial, learn python the hard way, Python learning manual, Python source code analysis, Python programming getting started, and various online documents

Note: The books mentioned above are only a small part of the huge tutorial. You are welcome to correct and add them.

With the entry-level books, we only have the equipment ready for the strange times. There is still more to go to become a qualified or even excellent programmer. How to Learn it, how to expand, supplement, and improve it after learning the basic knowledge, and how to improve the professional cultivation as a programmer are all problems that programmers will face, I will share my experience with you later.

Devstore notes: SuccessfulDeveloperThey all have one thing in common. They will focus on a lot of programming and are very professional. They will also regard good programming habits as an art. In the king of comedy, the phrase "Actually, I am an actor" is still in our ears. Since we decided to step into the ranks of ape, we must always remind ourselves that we are a programmer, recognize yourself, recognize your career, and be happy to move forward. You are welcome to discuss how to improve yourself and share it with everyone. Of course, you can also become an inspirational representative.

How should I learn programming?

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.