Current location - Training Enrollment Network - Mathematics courses - How can I become an excellent programmer? Even engineers
How can I become an excellent programmer? Even engineers
First of all, declare:

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!