This is my computer, baby. Of course it's all someone else's. Look at your Excellency:
I have treasured this post for several years, just reposting it. Why is this post good? See for yourself. I am a senior majoring in computer science, and this article has benefited me a lot.
First, why learn programming?
Everyone has different motives. Roughly:
1, in order to find a good job; Or in order to have better opportunities and better development.
2. Seeing that others are super powerful, I also want to learn.
3. It is needed in many occasions in practical work.
I have been determined to be a programmer and a software engineer since I was a child.
5. Revitalize the software industry in China.
. . . . . .
================================================
Second, how to learn programming?
1, read more books.
Sending bad books to mislead other people's children not only wastes time and energy, but also undermines people's confidence. Sending bad books will make people not know for a long time and will make people doubt themselves.
Learning ability.
There are many books now, but there are few good books, especially those that are recognized as valuable. After years of testing
And the only great works left are extremely rare. In the history of China, there are many books about literature and novels, but only one is huge.
, but only & gt just wait for Four Great Classical Novels.
The same is true of programming.
2. Do more.
This is very important. It is especially important.
"I think it's an armchair strategist. I don't know if it should be done." This is a famous sentence by Lu You, which also applies to programmers.
noodle
================================================
3. What language is the best?
This mainly depends on the application field, and each language has its own advantages and disadvantages.
1, assembly language and c language are widely used in the field of single chip microcomputer and industrial control. In addition, C language is also a common language, which is the starting point of learning C++/c#.
2, C++ system programming and many other aspects, the most commonly used compiler is VC.
3. Make a splash in C#/Java network programming.
4.VB is universal.
5, Delphi, etc. . . . . .
Personal suggestion: If you haven't programmed, start by learning vb. You can learn c++/VC directly if you have a foundation.
===================================================
4. Are there any good books?
A few years ago, Mr. Hou Jie, a famous technical writer in Taiwan Province Province, wrote an influential book review article called "Four Kings of MFC". essay
This means that in the sea of MFC books in Wang Yang, as long as you study and study four of them carefully, you can "look at the mountain and never look back". Although Mr. Hou
Take MFC as an example, but this principle is also applicable to many specific technical fields other than MFC, which is an interesting statistical phenomenon.
Usually in a specific technical field, there will naturally be 3-5 top books, which cooperate with each other to form a complete one.
The whole system. It is enough for learners to study these books carefully. I am happy to call it "four books and five books"
Phenomenon. " For readers, if you can find the "Four Books and Five Classics" in this respect, it is the most experienced whether it is time or money.
Economic choice. A few good books are better than a few bundles of bad books. I think everyone has this experience. Here, help you choose "in various technical fields"
Four Books and Five Classics ".
There are countless books on programming, among which there are countless classics, but most people who have experienced it agree that if you want to get started quickly.
Door and put into programming practice as soon as possible, as long as four or five books are enough, that is, just read classic and Bible-level books.
Yes
Never too old to learn. Programmers are a lifelong learning profession. They should keep reading until the day when they give up programming. So,
The good books you want to read are by no means the ones recommended below, hehe.
In short, since our time, energy and money are limited, how can we get the maximum benefit at the least cost?
[/equote]
[Notes]
Classics and Good Books Classified Best-seller List
================================================================
1、Java
Java Programming Language (3rd Edition)-Four Classic Novels of Java-james gosling (Father of Java).
Java Programming Thoughts (2nd Edition)-Four Classic Novels of Java-Bruce Erker
Java Programming Thoughts (3rd Edition)-Four Classic Novels of Java-Bruce Erker.
Core Technologies of JAVA 2 Volume 1: Basic Knowledge (7th Edition)-Four Classic Novels of Java-Kay horstmann
Core Technologies of JAVA 2 Volume 2: Advanced Features (7th Edition)-Four Classic Novels of Java-Kay horstmann
Effective Chinese version of Java-four classic novels of Java-Joshua Bloch.
Mastering Struts: Java Web Design and Development Based on MVC-Sun
Mastering Hibernate:Java Detailed Explanation of Java Object Persistence Technology —— Sun Qinwei
Tomcat and Java Web Development Technology-Sun Qinwei
Java and Patterns-Hong Yan.
2、c#
C# programming-Charles Petzold "Windows Programming Taishan Beidou" -C # language "Eternal Dragon Slayer"
Introduction to Chinese version of C#-Stanley B. Lipman -C # language "Eternal Dragon Slayer"
. NET Framework Programming (Revised Edition) -Jeffrey Richter's "Windows Programming Taishan Beidou"-the masterpiece of the four kings. network platform
C#Windows Programming-Charles Petzold Windows Programming Taishan Beidou-Four Kings. network platform
Inside story. NET programming technology. NET platform.
The essence of. NET-Volume 1: Common Language Runtime (Chinese Version) -Chris Sells- Four Kings' Works. network platform
3、C++
C++ Programming Language (Special Edition) -C++ VIII donkey kong-bjarne stroustrup "Father of c++"
C++ Primer (Third Edition) Chinese Version -c++ VIII donkey kong-Stanley B. Lipman
C++ Primer (4th Edition) Chinese Version -c++ VIII donkey kong-Stanley B.Lippman
C++ standard library-self-study tutorials and reference manuals-C++donkey kong-Nicolai M.Josuttis
The Design and Evolution of C++ Language -C++ VIII donkey kong-bjarne stroustrup "Father of c++"
Deep exploration of C++ object model -c++ donkey kong-Stanley B.Lippman
Essence C++ Chinese Version -c++ VIII donkey kong-Stanley B. Lipman
Effective C++ Chinese 2nd Edition-C++VIII donkey kong-Scott meyers.
More effective Chinese version of C++ -c++ VIII donkey kong-Scott meyers
C++ Programming Thoughts (2nd Edition) Volume 1: A Guide to Standard C++-Bruce Erker
C++ Programming Thoughts (2nd Edition) Volume 2: Practical Programming Techniques-Bruce Erker
C++ Programming-Tan Haoqiang.
C++ Programming Course (2nd Edition)-Qian Neng
C++ Primer Plus (5th Edition) Chinese Version-Stephen Prata
As extensive as the c++ programming language and c++ primer in Sikuquanshu.
Inside the c++ object model, mountains are heavy and waters are heavy.
Library Encyclopedia c++ Standard Library
The accumulation of engineering experience is effective c++, more effective c++, and excellent c++
C++ Eight donkey kong:
1, father of Essen Tital c++- Lippmann -c++, short-branched, focused on the core, light and short, beginner.
2.C++ programming language-the father of c++, technical authority, profound words and profound thoughts, and the representative of C++encyclopedia.
The Bible.
3. Introduction to C+c++-Lipman-the best textbook of c++ and the representative of c++ encyclopedia.
4. Inside the c++ object model-Lippmann-it is very good and very difficult to reveal the bottom of C++.
5. Effective c++- Through 50 programming examples, the expert experience is displayed, and the writing is interesting and simple.
Author: reprimand 2006-7-116:18 reply to this speech.
-
3 C++ original, super classic: why learn programming? How to learn programming? What language is the best? have
6. More effective c++- Through 35 programming examples, the expert experience is displayed, and the writing is interesting and simple.
7.c++ standard library-encyclopedia of C++standard library.
8. Design pattern: the basis of reusable object-oriented software-good!
4、c
C programming language (2nd edition, new edition)-C language "Eternal Dragon Slayer"-Brian W. Kernigan "Father of C Language"
Chinese version of C Primer Plus (5th edition) -c language "Double Sword of Eternal Dragon Slayer"-Stephen Plata.
C Programming (3rd Edition)-Tan Haoqiang.
Encyclopedia of C Language (4th Edition)-Herbert Schild.
C language interface and implementation: the technology of creating reusable software.
C Language Reference Manual (5th Edition)-Samuel P. Harbeson.
C programming course -H.M. Deitel/P.J. Deitel
Traps and defects-andrew koenig.
5、VB
Visual Basic。 NET Technology Insider-Three Musketeers of VB Programming-Francesco Balena "Chief Master of VB"
Windows Programming-Visual Basic.NET Language Description-Three Musketeers-VB Programming-Charles Petzold's Windows Programming Taishan.
Beidou "—
NET Framework Programming: Visual Basic.NET Language Description-Three Musketeers-VB Programming-Jeffrey Richter's Windows Programming Taishan North
Fighting "-Francisco Balaine" VB Chief Master "
Visual Basic 6 Encyclopedia of Programming Technology-Francesco Balena "VB Master"
Visual Basic.NET from entry to mastery.
Advanced VISUAL BASIC programming.
6. Delphi
Entering VCL (going deep into the core-analysis of VCL architecture)-Li Wei
Delphi 7 Efficient Database Programming-Li Wei
The Practice Road of Object-oriented Development (Delphi Edition)-Li Wei
7. Venture capital
Windows Programming (5th Edition)-Charles Petzold's Windows Programming Taishan Beidou-
Windows Core Programming ——Jeffrey Richter《Windows Programming Taishan Beidou—
Windows Advanced Programming Guide-Jeffrey Richter "Windows Programming Taishan Beidou"-
Explain MFC (2nd Edition)-Four Kings of MFC-Hou Jie.
MFC Windows programming (second edition)-the four kings of MFC "-Jeff proise
Insider of Visual C++ Technology (4th Edition)-Four Kings of MFC "-David Kruglinski"
Deep analysis of MFC-Four Kings of MFC-George Sheppard.
Visual C++。 NET Technology Insider (6th Edition)-Four Kings -MFC "-David Kruglinski.
8、vf
Visual Foxpro programming reference manual-Zhang
Expert Clinic -Visual FoxPro Development Q&A 160- Zhang
Visual FoxPro 6.0/9.0 Solution and Example-Zhang
Visual FoxPro software development mode and application case-Zhang
9. hackers
Applied cryptography (protocol algorithm and C source program-Bruce Schneider)
The Truth of Network Information Security —— Bruce Schneider
Hacker Exposure: Secrets and Solutions of Network Security (5th Edition)-Stuart Macclure
The Insider of Software Encryption Technology —— Xue Kan University
Encryption and Decryption-Software Protection Technology and Complete Solution-Xue Kan Institute
Encryption and Decryption (2nd Edition)-Duan Gang
10, assembly
Intel Microprocessor Architecture, Programming and Interface (6th Edition) -Barry B. Brey
80*86, Pentium assembly language programming-Barry B. Bray
32-bit Assembly Language Programming in Windows Environment (Second Edition)-Luo Yunbin
IBM-PC Assembly Language Programming (2nd Edition) is an excellent textbook in China-Shen Meiming and Wen Dongchan.
IBM PC Assembly Language Programming (5th Edition) is an excellent foreign language textbook-written by Peter Abel and translated by Shen Meiming and Wen Dongchan.
1 1, driver development
Author: reprimand 2006-7-116:18 reply to this speech.
-
4 C++ original, super classic: Why learn programming? How to learn programming? What language is the best? have
WDM device driver development guide.
Windows 2000/XP WDM device driver development (2nd edition)-Wuanhe.
WINDOWS 2000/XP WDM device driver development-Wuanhe.
12, network
Computer Network 4th Edition Chinese Edition-Three Musketeers of Network Programming -Andrew S. Tanenbaum
Detailed explanation of TCP/IP Volume 3 -Richard Stevens- Three Musketeers of Network Programming.
UNIX Network Programming Volume 2 -Richard Stevens- three musketeers of Network Programming
Connecting to the internet with TCP/IP
Advanced TCP/IP programming.
C++ Network Programming-Douglas Schmidt
Advanced programming in UNIX environment (second edition) -Richard Stevens
13, algorithm
The art of computer programming. E. knuth-double sword of "leaning on heaven and killing dragons"
Introduction to the algorithm-Thomas H. Coleman-Algorithm "Eternal Dragon Slayer" Double Sword.
Discrete mathematics and its application
Specific Mathematics-Fundamentals of Computer Science-Donald. E. Knut
14, graphic programming
Windows graphic programming-Feng Yuan -Charles Petzold's book Graphic Programming.
15, data structure
Data Structure C++ Language Description 58.00 (Data Structure C++) William Ford, William Top Liu Weidong Shen Guanlin.
Data structure algorithm and application -C++ language description "49.00 Satge Sani Wang Shilin Sun Xiaodong and other machinery industry press.
16, Software Engineering
Design pattern-the basis of reusable object-oriented software
Refactoring-improving the design of existing code
17, operating system
In-depth understanding of computer system (revised edition)-Randall E. Bryant
18、Unix
UNIX Network Programming Volume I Socket Network Application Programming Interface
UNIX programming art
Advanced Programming in UNIX Environment (English Photocopy 2nd Edition-UNIX Programming Bible)
Advanced Programming in UNIX Environment (English Photocopy Edition) (Second Edition)
Advanced Programming in 99-UNIX Environment (2nd Edition)
Advanced Programming in UNIX Environment (Second Edition)-The Bible of Unix Programming
UNIX network programming volume 1: windows socket API (3rd edition)
UNIX Network Programming Volume 2: Interprocess Communication (2nd Edition) (English Photocopy)
UNIX Network Programming (2nd Edition) Volume 2: Interprocess Communication
UNIX programming environment
UNIX Network Programming Volume I Socket Network Application Programming Interface
UNIX system programming
Advanced programming in UNIX environment
Advanced programming in UNIX environment (English photocopying)
Analysis and Programming of 88-LINUX Kernel
UNIX Network Programming Volume I Socket Network API (English Version 3)
UNIX network programming volume 1: windows socket API (3rd edition)
UNIX Network Programming (2nd Edition) Volume 2: Interprocess Communication
UNIX Network Programming Volume 2: Interprocess Communication (2nd Edition) (English Photocopy)
UNIX network programming (2nd edition) Volume 1: windows sockets API and X/Open transport interface API.
UNIX Network Programming (Volume 1): Network APLS: Sockets and XTI (2nd Edition) (photocopy in English)
Advanced programming in UNIX environment
Advanced programming in UNIX environment (English version)
Advanced programming in UNIX environment (second edition)
Unix technical manual
19、Linux
Linux kernel development
Complete comments on Linux kernel
LINUX kernel analysis and programming
GNU/Linux Programming Guide (2nd Edition)
Linux Device Driver (3rd Edition)
Embedded Design and Linux Driver Development Guide —— Based on ARM 9 Processor
Linux Device Driver 3rd Edition (English Photocopy Edition)
Design and Implementation of Linux Kernel (Second Edition)
Design and Implementation of Linux Kernel (English Photocopy Edition) (Second Edition)
Linux technical manual
20, game programming
Windows game programming master skills (second edition
Game Journey —— My Understanding of Programming
OpenGL super collection: third edition
OpenGL programming guide (fourth edition)
Advanced programming of Java games
Introduction to J2ME Mobile Game Programming
Game Journey —— My Understanding of Programming
Artificial Intelligence in Game Development (English Photocopy)
3D Games: Volume 2 Animation and Advanced Real-time Rendering Technology
Object-oriented game development
Advanced programming of Java games
Master 3D game programming skills
The essence of game programming
Object-oriented game development
3D Game Volume 1: Real-time Rendering and Software Technology
3D Games: Volume 2 Animation and Advanced Real-time Rendering Technology …
Introduction to J2ME Mobile Game Programming
Direct3D Game Programming Tutorial (2nd Edition …
2 1, mobile development
Windows mobile phone application development
Development of SYMBIAN OS C++ mobile phone application
68-Windows Mobile mobile phone application development-Fu Xi Qi Xu Yujun
48-SYMBIAN OS C++ Mobile Phone Application Development (Volume II)-Author Richard Harrison, translated by Zhou, Wang Boxin.
68-SYMBIAN OS C++ mobile phone application development-by Richard Harrison, translated by Zhou.
Windows CE.net Kernel Customization and Application Development-Zhou Yulin Ning Lu Yang Gui Qiang Fu Linlin
Development skills and examples of embedded system Windows CE-Fu Xi
Palm OS programming practice-out of print
22, single chip microcomputer
Simple Introduction to Single Chip Microcomputer —— Zhou Jian (Ordinary Teacher)
Typical module design example navigation of single chip microcomputer-seeking truth from science and technology.
For example, 805 1-Zhang Yi and Chen Jibei.
KEIL CX5 1 V7.0 Single Chip Microcomputer High-level Language Programming and μ Vision 2 Application Practice-Xu Aijun
Application Programming Technology of Single Chip Microcomputer (Revised Edition)-Zhou Hangci
Practice and application of 805 1 single chip microcomputer.
MCS-5 1 Series Single Chip Microcomputer Practical Interface Technology-Li Hua.
23, serial port and parallel port communication
Programming Practice of Visual C++/Turbo C Serial Communication-Gong Jianwei
VISUAL BASIC and RS-232 Serial Communication Control (Latest Edition)-Fan Yizhi
24. Electronics
Introduction to Radio Mapping and Circuit Fault Analysis (2nd Edition)-Hu Bin.
Brief Introduction to Testing and Maintenance Technology of Radio Components (2nd Edition)-Hu Bin.
The chart details how to read the map by electronic technology-Hu Bin.
Chart detailed electronic components-Hu Bin.
Chart detailed components and actual circuits-Hu Bin.
[/equote]
How to become a programmer
[Notes]
Through the following four stages of training, people can become an ordinary programmer without any programming foundation.
The first stage: master a programming language.
Learning content: learn any mainstream programming language. Such as C++ language.
Learning goal: to master the grammar and basic programming skills of a language.
Study time: about 3 months.
Note: Programming languages and programming tools are two different things. Programming languages refer to C++, Basic, Object Pascal, etc.
Programming languages are abstract grammatical rules, such as Chinese and English, and programming tools refer to
Visual C++ 6.0, Visual Basic 6.0 and Delphi 7.0 include source code editor and program compiler.
Integrated and visualized software development tools. C++ source program can be written in Visual C++ 6.0, and can also be used.
Notepad, the same C++ source program can be compiled and executed with Visual C++ 6.0 or C++ Builder 5.0.
Compile and execute, so: C++ is not equal to Visual C++ 6.0.
The second stage: master a programming tool.
Learning content: learn any mainstream programming tools. Note that the programming tools should be consistent with the programming language learned in the first stage, such as what you learned.
The programming language is C++, so the programming tool should be Visual C++ 6.0 or C++ Builder 5.0.
Learning objective: To master the basic usage of this programming tool, such as menus, components, program tracking and debugging, and writing Windows programs.
Study time: about 3 months.
Note: this stage focuses on the use of programming tools, and at the same time, it is further familiar with programming languages, and finally achieves proficiency in writing various basic Windows programs.
The third stage: master the course "Algorithm and Data Structure"
Learning content: algorithm and data structure, recommend Xu Zhuoqun's Data Structure, published by Higher Education Press.
Learning goal: master all kinds of commonly used algorithms and data structures.
Study time: about 4 months.
Note: This is an essential software development course. There was once a classic computer professional book called Data Structure+Algorithm = Program.
This shows the importance of data structure and algorithm. It can help us to establish good program analysis and design ability.
The fourth stage: realize a simulated small software project.
Learning content: the development process of software projects.
Learning objective: To master the basic development process and methods of software projects.
Study time: about 4 months.
Note: I have completed a simulation small software project myself, and I strongly recommend to be a MIS (Management Information System) software and a reference book.
Case series of small and medium-sized information management system development, People's Posts and Telecommunications Publishing House, with detailed and effective examples,
On this basis, we can develop practical MIS software by extending it.
This series contains a variety of development tools, you can choose the one that suits you: VISUAL FOXPRO6.0 database system development example navigation.
JAVA database system development case navigation and VISUAL BASIC database system development case navigation.
VISUAL C++6.0 Database System Development Example Navigation and ASP. NET database management system development example navigation "
DELPHI database system development example navigation, POWERBUILDER 8.0 database system development example navigation.
Finally, the completed simulation software will be carved into a CD, which will be used as your own work for an interview, thus embarking on the glorious road of your own professional programmer!