Recently, in the communication group often have the bitter force small white ask how to learn programming, interested in programming, but do not know, this is a huge to let the big God "speechless" proposition. In the knowledge, csdn and other forums, many peers have also discussed this kind of problem, small series on which the approval of the higher answer to the collation, to look to the tangled rookie some help, but also welcome the great God to add and shoot bricks.
1. Decide to learn, to be interested and to be really determined
Interest and patience is the cliché of the topic, the small part of the nagging, as long as remember a little, now programmers pay a big difference, the ability of programmers to enjoy high salaries, but only a little bit of the pseudo-programmer may not find work, if you want to rely on the code to live life, on the basis of interest in earnest study.
2, learn what, the choice of programming language is also a beginner's obsession
Language is just a tool, in time, each programmer can master a door or even many languages, but also with the development of technology to learn the latest and most convenient new language, compared to the language problem-solving ideas and methods are more important.
But as beginners, C and Python are the most recognized programming languages for beginners, but because of their own characteristics, the two languages also have a certain degree of antagonism, of course, other languages have been chosen for reasons.
C Language Entry threshold is higher, learning difficulty is relatively large, but many languages are affected by C, the basic concept of general concepts, learned C can lay a solid foundation for programming, but also reduced the difficulty of learning other languages later, in short, the C language is the first bitter after the sweet, just beginning to their hard-hearted.
reasons for choosing C:
1, most of the data structure, algorithms are written in C language;
2, with the help of C can learn more computer knowledge, understand the computer, understand the bottom;
3, C language is eternal, the threshold is high but after the infinite;
4, C design is the embodiment of the Unix philosophy, thin package, transparent, compact, consistent and so on to reflect incisively and vividly.
reasons for not selecting C:
1. c is close to the bottom, so you may get into the bottom details prematurely, but the underlying details are not universal. This is contrary to the idea of solving the problem;
2, the difficulty is relatively large, not easy to see the results, not conducive to beginners insist on learning.
Python is more friendly to beginners, relatively easy, more comprehensive function, easy to see the effect, reduce the boredom of beginners.
reasons to choose Python:
1, the function is very powerful to expand very wide, on the web, under the script, draw GUI, when got server;
2, grammar simple what platform are supported;
3, omitted a lot of details, easier to understand;
4, Python based on clear syntax and intuitive problem-solving solutions, as well as its powerful cross-platform GUI tools, can arouse a lot of beginners interest.
reasons for not selecting Python:
Easy to cause a poor base, there will be a lot of basic underlying concept confusion.
3. How to learn
Programming is a very strong knowledge of the operation, reading, but only the combination of learning and practice can play a very good effect, a learning method is reading-----------------------to do some things -
The study of classical tutorials is an important way to learn a lot of knowledge, but reading must be read through, learn C language has always seen all the C's introductory books have no new syntax. It is best to read some books on computer theory and basic knowledge in the first place, which is beneficial to the mastery of various knowledge in the future.
Programming language tutorials on various platforms have a lot of introductions, there are a variety of recommendations, small proposal to see a number of recommendations, everyone recommend the effect should be good.
Introduction to Computer class:
Introduction to Computer science and technology, "in-depth understanding of computer systems", "Modern Operating System", "Database system Concept", "Data Structure", "compiling principle"
C language : C Primer Plus, C programming language, C language programming: Modern methods, c pitfalls and defects, author says Mr Koenig, author of "Programming brilliantly", Steve Maguire, the C programming Languag E
C + + (recommended blog): "Problem solving with C + +"
Stage One
"C + + Primer"
This book is a comprehensive and authoritative description of C + + basic concepts, techniques, and modern C + + programming styles, and is the best guide for beginners in C + +. This book helps you write practical programs without having to master every detail of the language first. For senior programmers, this book is also an indispensable reference.
"Essential C + +"
A short, but practical, Introduction to C + + books, emphasizing the quick start and understanding of C + + programming. This book focuses on a series of increasingly complex procedural questions, as well as the language features used to solve these problems.
Stage 2
"Effective C + +" and "more effective C + +"
The author is Scott Meyers. You should familiarize yourself with them and understand each project clearly. The book revolves around 55 guidelines, each of which introduces a way for you to write better C + + program code, which is discussed in detail in specially designed examples.
"Exceptional C + + (C + + programming Anatomy)" and "more exceptional C + +"
Both of these books contain 40 C + + programming problems that will allow you to hone your skills and eventually become a good C + + programmer. These issues are carefully selected by Herb Sutter, consistent with the Iso/ansi C + + official standards, to help programmers maintain a good style in their design, architecture, and coding process, making the written C + + software more robust and efficient.
Stage 3
Inside the C + + object model (Deep Exploration of C + + objects models)
This book focuses on the underlying mechanisms of C + + object-oriented programming, including structured semantics, generation of temporary objects, encapsulation, inheritance, and virtual-virtual functions and virtual inheritance to help you understand the underlying implementation of the program in order to write more efficient code. The design and evolution of C + + (Designing and evolution of C + + language)
The author of the book is also the C + + language designer Bjarne Stroustrup, the author in the book comprehensively introduced the development history of C + +, the essential meaning and design background of various important mechanisms in C + +, the basic use and use of these mechanisms, discussed the C + + The appropriate application areas and their future development prospects have not overlooked the critical details and are not too bogged down in technical details.
Stage 4
"The C + + standard library"
This is the Standard Template Library dictionary, you can find all the STL related knowledge in this book. This book focuses on standard template libraries, inspection containers, iterators, function objects, and STL algorithms. Each element has a profound presentation, including its introduction, design, application examples, detailed explanations, pitfalls, unexpected hazards, and related categories and functions.
"Effective STL"
This is Scott Meyers's third C + + monograph, and the most authoritative book for learning STL. The author makes a detailed analysis of the 50 guidelines in the book, with examples. These rules enable C + + developers to maximize the use of STL's Generic programming and the STL (Generic Programming and STL)
This book describes the core concepts of generic programming: Concepts (concept), modeling (model), and refinement (improvement), and shows you how these concepts derive the basic concepts of STL: Iterators (iterators), Containers (container) and Function objects (functions object). As described in this book, you can think of STL as a library of concepts that you will learn about the formal structure of STL and understand its powerful advantages.
Stage 5
"Exceptional C + + style"
The author is Herb Sutter. The book also presents 40 C + + style-related issues, provides new insights into some of the critical C + + details and interrelationships that provide new strategies for today's key C + + programming technologies, such as generics programming, STL, exception security, etc., to help developers between overhead and functionality, elegance and maintainability, Find the perfect balance between flexibility and excess flexibility.
"C + + template"
This is a complete reference manual and tutorial on C + + templates that emphasizes the use of templates and includes examples from the real world. Every C + + programmer should read this book well.
"Modern C + + design (modern C + + designs)"
Author Andrei Alexandrescu opened a new situation for C + + programmers. This book provides cutting-edge approaches to software design, such as federated design patterns, generic programming, and enables programmers to write expressive, flexible, highly reusable code.
"Thinking in C + + (C + + programming Idea)"
The authoritative works of C + +, introduced the practical programming technology and best practice method of C + +.
objective-c: "Objective-c Programming"
python : Basic python tutorial, learn python the hard ways, Python learning Handbook, Python source anatomy, Getting started with Python programming, various online documents
Note : The above mentioned books are only a small part of the vast tutorial, welcome you to correct and add.
With the introduction of books, but also only to play strange when ready equipment, want to become a qualified and even excellent programmers have more way to go. Specific how to learn, learn how to expand the primary knowledge, supplement, improve, how to improve as a programmer's professional accomplishment, are programming small white people will face the problem, small series will be in the follow-up for everyone to share relevant experience.
Successful developers have one thing in common, focusing on a lot of programming, being professional, and looking at good programming habits as an art. In "The King of Comedy" Lucky Star Yin Tianxi that sentence "In fact, I am an actor" still ringing, since the decision to step into the ranks of apes, it is time to remind himself is a programmer, recognize themselves, recognize their career, happy forward. Welcome the Great God and the quasi-great God to discuss how to improve themselves, and share with you, of course, you can also dazzle how you inadvertently become inspirational representative.