The importance of the foundation (Programmer's Path)

Source: Internet
Author: User

Learning programming for several years, feel a lot of detours, and a lot of learning younger brother learning sister again in the same way I did, inevitably some sad. Recently in the Web
Also saw many predecessors of the experience of the proposal, and then combined with their own learning experience here to talk about the importance of the foundation, I hope to help you less to take a few bends
Lu.
What is the basis? is to take our university's discrete mathematics, algorithm and data structure, operating system, computer architecture, compiling principles
and other courses to learn, the computer system, CPU itself, operating system core, system platform, object-oriented programming, the performance of the program to have a deep grasp.
Beginners may not realize the importance of these foundations, learning Jsp,donet,mfc,vb's friends will even scoff at these, but in the beginning did not learn
A good foundation to learn JSP or donet will have a very bad effect, and trapped in it.
When I was a sophomore, I didn't know anything about programming, I went to the door, C + +, and I was not sure what to do, and the teacher said MFC didn't know what it was.
See other classmates learning to learn from the net, and then learned that. net,j2ee,php is what, I think software development is to use these, and on
Those specialized courses and we learn SQL Server Ah, CSS Ah, Ajax ah, no relationship, on the feeling ah, it is better to go home to self-study for a diploma?
It's better to train and waste so much money. So every day basically did not go to what class, every day on the site, a few semesters to do three sites. Feel done
These sites are learning some skills, no progress, these skills are like someone else's name, tell you you know, online can also search. Then
Think of the. NET learning on the line, the more difficult to make the Java EE, API programming do not think, the operating system is far behind. Later with the study
In-depth and read many of the online predecessors of the recommendations of these foundations of the importance of some experience.
Although. NET or Java development is not directly used in the compilation, operating system these, but do not grasp these foundations is a big problem, because you only know
It does not know all of them, in the MFC and. NET inside the control of everything is done, very convenient, but the problem may not be solved, some in
Search on the internet can not be searched. This is the foundation did not play well, do not know its principle is not aware of the cause of the error. When you are learning. NET, you often discuss those controls
Should not use others say try not to use and do not know why? Not to use it because you're developing at the top, you don't know how it works. You may not be able to solve
, but it should be used, or else people develop it, but to understand its principle after the use will be very convenient.
To write good code is also a solid foundation, if the data structure and algorithm is not good, how to optimize the performance of the program, how to
Select the appropriate data structure from the class library. If you do not know the operating system, how to understand the principles of these development tools, they are based on the operating system
Of Do not understand the Assembly, the principle of compiling, how to know how long the program to run the amount of memory, you can not compile efficient code.
If you do not learn the foundation to learn from the beginning. Net,java the more difficult these are, the more technology they involve, and not only
In the update, for three layer ah, mvc,orm these architectures, you will only use and do not understand why use, feel the heart is empty, feel did not learn. And you put
Object-oriented, software engineering, Design patterns these fundamentals learn to look at these can be a constant change.
Let's not be fooled by the new word and the technology. NET, XML and so on is tempting, but if its foundation is not solid, it is like in
Foggy walk, can only see in front of, can't see farther place. These fresh technologies cover up many of the underlying principles, to really
Learning technology or go down to the cloud, solid basic knowledge to learn, with these foundations, to master those new technologies is very easy.
To start programming, you should first learn C + +, System API programming, because they are closer to the bottom, learning that they are more able to understand the principle. Learn the C + +
Programming and the basics, then learning mfc,.net These will be more relaxed, and very practical. Suppose that learning VB programming takes 4 months, learning basic courses and
The program design of VC takes 1 years. So if you learn VB First, then to learn the latter, time will not be reduced, or 1 years, and conversely, if you first learn
The latter, to learn VB, maybe you only need 1 weeks to learn very skillfully.

The surface of the teaching appears to be horse flush right in fact are internal organs heart, Guo Jing Apprentice Hong Seven began to practice the Dragon 18 palm by virtue of this is the deep inside
Work, swallow Viper blood plus practice the week Bo pass to teach nine Yin Canon and plus kung fu hands each other Bo technology, finally trained to walk the lake's martial
Work, this shows Ma Yudao to Guo Jing is the most basic, but also the most important concept, programming is like building, the foundation did not play well sooner or later has
One day it will be carried away, and the higher the cover, the greater the loss. These underlying knowledge and textbooks are neither useless nor profound to learn, but I
The foundation that we must master.
These are personal humble opinion, said is not very clear, we can look at the experience of these predecessors, I believe that after reading, we will have some experience
Said so much is nothing but to warn you to lay a solid foundation, not just the pursuit of fashionable technology, lay a good foundation to learn the technology or
Taking part in training will be better for your own development.
How is the foundation so important how to learn it well? I think it's good to learn them. Compare the aspects of these basic courses and read more classic books like
Introduction to Law, Programming Zhu Ji Nanxiong, Code encyclopedia (specifically in this forum in each book section), etc., these classic books can not only help us lay a good foundation, but also
To our program life can also have a great impact, I believe that after careful study of these books, our procedures will be very smooth. However this
Some books are not good to read, some even very difficult to read, domestic universities use these books as textbooks, these books are biased in theory, they will inevitably read.
Some are dull. So think of building a forum, we discuss learning these books, you will learn more practical and more solid more interesting, so you can
For the future study to lay a solid foundation.
1. For the computer beginner or the foundation is not very solid friend to indicate the direction, must pay attention to the internal organs
2. Recommend classic books for learners, indicate which books should be read and how to practise their internal skills.
3. To provide learners with a place to communicate, more easy to learn, not so boring
4. The chapters of each book are discussed separately, more specifically, will learn more practical and more solid
5. The discussion is all about classic books, each of which will benefit us, and it makes sense to discuss each book separately.

1. Introduction to Computer Science
Introduction to Computer Science
2. Fundamentals of Computer Mathematics
Advanced mathematics
Linear algebra
Probability theory and Mathematical statistics
Discrete mathematics and its application
Discrete Math Tutorial (North University Edition)
What is math?
Specific mathematics: Fundamentals of Computer Science
3.C language
Rectification C Programming
C Primer Plus
The C programming language
C and Pointers
C Expert Tutorials
C Pitfalls and pitfalls
C language Doubts
C Standard Library
495 C-language questions you need to know
4. Algorithms and data structures
Data structure (Tsinghua Edition)
Data structure and algorithm analysis-C language description
Programming Zhu Ji Nanxiong
Programming Zhu Ji Nanxiong II
Introduction to Algorithms
Computer Programming Art Vol. 1
Computer Programming Art Vol. 2
Computer Programming Art Vol. 3
5. Fundamentals of Electronic Technology
Analog electronic Technology (Tongshibai version)
Digital logic and digital Integrated Circuits (Tsinghua Edition)
6. Assembly language
Assembly language (Wang Shuang version)
80X86 assembly Language Programming tutorial
Intel assembly Language Programming
IBM PC Assembly Language Program design (foreign version)
Advanced assembly Language Programming
80386 in protection mode and its programming
Hacker anti-compilation Secret
Programming of 32-bit assembly language in Windows environment
7. Principles of Computer hardware
Computer composition-structured approach
Microcomputer principle and Interface technology (Chen Guangjun version)
Computer Architecture (Morning Edition)
Computer composition and design hardware/software interface
Intel microprocessor architecture, programming and interfacing
Computer Architecture (Quantitative research Methodology)
Programming Excellence Track Vol. 1
Programming Excellence Track Vol. 2
In-depth understanding of computer systems
The Secret of coding
8. Database System Principles
Database System Concepts
Introduction to Database Systems
Database system implementation
Computer Classics Book Summary,: http://bbs.theithome.com/read-htm-tid-308.html
9. Compilation principle
Compiling principle (Tsinghua 2nd edition)
Compiling principle and practice
Compiler principles: Principles, techniques and tools
Modern compiling principle-C language Description
Advanced Compiler design and implementation
10. Operating System Principles
Operating System Concepts
Modern operating systems
Linker and Loader
Self-cultivation of programmers: linking, loading and library
Write your own operating system
Design and implementation of operating system
11. Computer network
Computer network (computer Networks)
Tcp-ip Detailed Volume 1
Tcp-ip Detailed Volume 2
Tcp-ip Detailed Volume 3
Internet interconnection with TCP/IP (first volume)
Internet interconnection with TCP/IP the second volume
Third volume of Internet interconnection using TCP/IP
12. Software engineering and object-oriented programming
C + + Programming Ideas Vol. 1
Java Programming Ideas
Software Engineering (software.engineering)
Software Engineering: The research methods of practitioners
Object-oriented analysis and design in layman's
Head First design mode
Tao Nature: An object-oriented practice guide
Object-oriented Analysis and design
Agile Software Development: principles, patterns and practices
Design patterns: The basis of reusable object-oriented software
Test-driven development
Refactoring-Improving the design of existing code
Code Daquan
Programming Practice
The way programmers do it: from the handyman to the expert
A productive programmer
The beauty of code
Human Moon Myth
Construction and interpretation of computer programs
Papawaqa-Microsoft creates NT and the future of the life-bolted
Code optimization: Efficient Use of memory [US] Chris Kabaski
Master of Programming Proverbs (Liang)
Game Tour-My programming sentiment (Cloud wind)
13.windows Programming Basics
Principles of Windows operating system
Inside Windows 2000
Deep parsing of the Windows operating system
Bible Night reading: Programming from assembly language to Windows kernel
Windows programming
Windows core Programming
14.linux/unix Programming Basics
Bird's Linux private cuisine: Basic Learning Article
Bird's Linux Private cuisine: Server Erection
Linux Programming
UNIX Environment Advanced Programming
UNIX Network programming Volume 1
UNIX Network Programming Volume 2
UNIX programming Art
Unix shell example fine solution
15.linux/unix kernel source code and driver
linux kernel design and implementation
Linux kernel source scenario analysis
In-depth understanding of the Linux kernel
Linux kernel full comment
Linux device drivers
16.c++ language
c++ programming ideas 2
Essential C + +
C + + Primer
C + + programming language
Design and evolution of the C + + language
Accelerated C + +
Effective C + +
More effective C + +
Exceptional C + +
More exceptional C + +
C + + Design New thinking
Deep Exploration of C + + object Model
C + + meditation record
C + + templates:the Complete Guide
C + + FAQs
17. The standard library STL uses the
c++ standard library
Effective STL
Generic programming and STL
18. STL Source code
stl source anatomy
19.java language
Java Programming Ideas
Java Programming specification

Some books are not good to read, some even very difficult to read, domestic universities use these books as textbooks, these books are biased in theory, they will inevitably read.
Some are dull. So think of building a forum, we discuss learning these books, you will learn more practical and more solid more interesting, so you can
For the future study to lay a solid foundation.
1. For the computer beginner or the foundation is not very solid friend to indicate the direction, must pay attention to the internal organs
2. Recommend classic books for learners, indicate which books should be read and how to practise their internal skills.
3. To provide learners with a place to communicate, more easy to learn, not so boring
4. The chapters of each book are discussed separately, more specifically, will learn more practical and more solid
5. The discussion is all about classic books, each of which will benefit us, and it makes sense to discuss each book separately.


Bbs.theithome.com

Programming is like practicing, if learning. Net,mfc,vb and other specific language and tools are drilling (moves), on the basis of learning is the internal strength, only focus on the moves and the internal strength is not a solid is impossible to become a master. A lot of people will think that "Shoot the Hero Biography" in Ma Yudao long nothing teaches Guo Jing, Ma Daochang

The surface of the teaching appears to be horse punch, but actually are the internal organs heart, Guo Jing after seven began to practice the Dragon 18 palm by virtue of this is the deep internal strength, swallow viper blood and the practice of the week Bo Tong Nine Yin Canon and the addition of Kung fu hands each other Bo technology, finally trained to walk the martial arts, This shows Ma Yudao to Guo Jing is the most basic, but also the most important concept, programming is like building, the foundation did not play good morning and evening will be carried away, and the higher the cover, the greater the loss. These underlying knowledge and textbooks are neither useless nor profound to learn, but the foundation that we must master.

  These are personal humble opinion, said is not very clear, we can look at the experience of these predecessors, I believe that after reading, we will have some experience

Of In order to facilitate everyone to read, I put these predecessors of the proposed article into a PDF, you download it below! I hope it will help you. PDF Address: http://bbs.theithome.com/read-htm-tid-123.html

  Said so much is nothing but to warn you to lay a solid foundation, not just the pursuit of fashionable technology, lay a good foundation to learn those skills or participate in some training, for their own development will be better.

The foundation is so important how to learn it well? I think it's good to learn them. We should look at some classic books, such as the introduction of algorithms, Programming Zhu Ji Nanxiong, code Daquan (specifically in the section of each book in this forum), and so on, which will not only help us lay the groundwork, but also To our program life can also have a great impact, I believe that after careful study of these books, our procedures will be very smooth. However, these books are not good to read, some even very difficult to read, the domestic universities use these books as textbooks, these books are biased in theory, they will inevitably read a bit dull. So think about building a forum, we discuss learning these books, you will learn more practical and more solid more interesting, so that you can lay a solid foundation for future study.

The importance of the foundation (Programmer's Path)

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.