To all friends who want to be programmers

Source: Internet
Author: User
I have graduated from computer science for more than a year.
After graduation, I am engaged in software programming. I often have other professional friends who want to do this.
I want to know how to work in software programming, because I am not deeply involved,
I can't believe it, but my friends trust it. I have to seriously consider this issue,
To help friends select and return their trust.
This is the origin of this article.

Let's talk about my personal experience first. (Isn't it a little conventional,
However, I think it is helpful to understand my experiences;
I have always believed that those who do not understand the life experiences of gulon will not really understand the work of gulon.
I have studied at a famous Southern University.
(Because you are not angry with me, I really want to talk about my Alma Mater.) What I Want to learn is computer science.
When I took this course, I almost never listened carefully to a professional course and went to class to read a newspaper and sleep,
Watch videos, watch novels, watch football matches, and take the test.
All of them pass the test. (In contrast, I chose business administration and economics.
I can't hear about trade, but I have a high score. Maybe this is my real interest .)

All in all, the University is a mix of students, who have a good understanding of the major,
Should not meet the graduation requirements. (I also regret it, but there is something
I didn't know how to cherish it. If God gave me another chance,
I will definitely catch it. Watch more American movies and watch less Hong Kong movies. Now, I am back on campus.
But the university study gave me a simple knowledge framework (total
I have described my knowledge framework as follows,
"It's not made of steel bars, it's made of straw,
I dare say that the knowledge framework of many undergraduate graduates is just
"Straw ". Until now, I have always felt that my basic knowledge is still very weak,
I always wanted to take some time and take a good look at the Basic Books. (This task is being planned and implemented)
After graduation, I will be assigned to a research institute. When a leader asks me to select my future work direction,
I did not hesitate to choose software (and I do not know whether it is right or wrong, but I will never regret it ).
This research institute is mainly engaged in R & D and production of Communication Control Equipment with hardware as the core; software is an aid,
Therefore, we do not pay much attention to it. Many software developers have switched jobs, and most of them stay here are one.
Some "fake/wilting" programmers who have already been deprecated and will be deprecated (literally "software personnel ").
There is no sense of high tension or high-tech research and development here; software development is very low in technical content,
That is why most people have only half a year of learning and development experience, which will be reused in the future.
(I have asked other students who have worked in the institute. They say they are all the same. Why, our national defense research and development team)
For the development of software, the will of leadership, and old experiences, the adoption and development of new technologies
Has played a decisive role, with no clear requirements, no clear development plan and progress,
Every day, week, and week are a waste of valuable time. Finally, the things developed and modified until they become garbage.
I have come to realize that either they are useless, or they are trying to find a way out.
Don't expect any brilliant experience from your work ).
Some emotional disputes occurred during the period, seriously affecting the learning plan and effect, until now the impetuous heart is still somewhat impetuous.

 

During this period, I read some books, read some articles, and compiled some small routines,
I have made some technical development work and talked with some predecessors and experts.

 

I have been thinking about a few questions; how to learn about software development? How to develop software,
Where is the secret of foreign software development? Why is our software industry always low?
Is it true that we cannot survive Microsoft? When our programmers are wasting their time
What do you do? How is software development classified? How can we take the path of our national software?

I have been thinking for a long time, and I am still thinking about it. But I know one thing is for sure,
That is, we must go out of our software on our own! People will always be behind others' ass!

Well, let's write about our experiences and complaints first. It's time to go to our topic.

(2) Are you suitable for programmers? Do you know what is going on with programming?

1. Programmers mean programming. (If you only want a job with a high salary,
Just wait for the boss to make a salary when drinking coffee. I advise you to find another job that is more suitable,
For example, it's true, brother. This job is not suitable for you)

2. Whether you want to learn text or academic principles, the editing process may require romance, but more logic and rigor.
(Frankly speaking, it's boring before you have fun)

3. are you passionate about new technologies? Do you have a thorough exploration spirit?
(Enthusiasm is definitely the most important thing! Do you think about your character as a programmer ?)

 

4. When a programmer is by no means a good job, he must learn and think about it at all times.
(Until you become the one who can guide others to learn and think, you will be able to secretly laugh, another group of dummies)

5. The future of programmers is very confused. (But I think it's important to look at yourself! I hope that you are a Pursuing person,
Not just mixed bowl meals. Because the real pleasure lies in creation. If you can change the history of the software industry,
That's the hero. He doesn't want to be Bill Gates or Dennis Ritchie or Bjarne stroustrup,
I will say that you are not pursuing it. There is a joke about the future of programmers, maybe you haven't heard of it yet. You should hear it and extract it as follows:

A programmer is confused about his future, so he asks God.
"The omnipotent God, please tell me what will happen to me in the future ?"
God said, "My child, ask Lippman. The number of programmers he leads may be the largest on the earth"
So he asked Lippman.
"The future of programmers is to control programmers," Lippman said"
The programmer was not satisfied with the future, so he asked God again.
"The omnipotent God, please tell me what will happen to me in the future ?"
God said, "My child, you ask gates, he may have the most property on the Earth now"
So he asked gates.
Gates said, "The future of programmers is to extract programmers"
The programmer was not satisfied with the future, so he asked God again.
"The omnipotent God, please tell me what will happen to me in the future ?"
God said, "My child, ask Hou Jie. the readers of the computation books he wrote may be the most on the earth"
So he asked Hou Jie.
Hou Jie said, "The future of programmers is tempting programmers"
The programmer was not satisfied with the future, so he asked God again.
"The omnipotent God, please tell me what will happen to me in the future ?"
God shook his head, "Alas, my child, you should not be a programmer ")

6. It is fun to be a programmer. (When you learn new knowledge and new thoughts and opinions,
When you have a new product and discuss your achievements with your confidant... I ask you, do you think this is fun ?)

7. It is not difficult to be a programmer. (Is there any difficulty in the world? For ...; Not .... Do you have the determination and confidence ?)

8. Do you really want to be a programmer? Is it your own idea?

9. Are you willing to spend money to buy books? (Reading a good book is definitely the best way to learn programming. You will say,
Now computer books are really fucking expensive. No way. Who makes knowledge and technology in the head of the people?
In other people's books. when you write a book, you can set the price to a lower one. Remember that you have a lot of money but want to buy it.
It is very difficult for the books. If you are willing to buy books and good books, it is better not to read bad books,
They do more harm than their benefits. You can ask experts or read Hou Jie's book reviews about what books to buy;
Prepare a small notebook to record the name of the book you want to buy. When you visit the bookstore, buy it if you want. Remember to read it. Don't just buy it .)

10. I tell you that a program is a software program for any purposeful and expected action sequence.

11. Compile a program.

12. Have you thought about it? (If you want to become a programmer, you can continue to read it;
Otherwise, you can continue to find another way out .)

(3) Basic knowledge and concepts that a programmer should possess

1. What is a computer, what is a CPU, and how it works.
(I won't tell you the answer to these and the concepts to be mentioned below,
You can read the corresponding teaching materials. I will elaborate on the teaching materials in the next section and remember to understand them !)

2. Concepts of machine language and micro-instruction set.
3. program concept.
4. The Assembly Language is a low-level language, but not a machine language.
5. What are the main advanced languages? (C, C ++, basic, Pascal, Fortran, C #, Java, etc;
If you are a hero in the Chinese software industry, you also need to write a language. You 'd better not use English)
6. Compile the program and explain the concept and principle of the program. (Compilers are prepared by experts and experts)
7. html and XML are distinguished languages.
8. Prolog is an artificial intelligence language.
9. Concepts and Principles of operating system OS. (Windows98, Windows2000, Windows NT,
UNIX, Linux, and so on are all operating systems. There are also some real-time operating systems that are embedded into the OS. These are definitely experts)
10. In Windows programming, Windows API is called.
(Many programmers in China only compile Windows programs, using VB,
I suggest that most of these programmers are low-level coders. I call them coder)
11. VC ++, VB, BC, BCB, Delphi, and VF are only programming tools and environments, not programming languages.
12. Structure-oriented design concepts.
13. object-oriented concepts. (It's important, bro)
14. Concepts and Principles of software engineering. (If you want to be a boss, you need to study it carefully,
System analysts have a higher level than the coders, and their salaries are high)
15. Concepts of databases. (Be familiar with the names of some famous database systems and languages,
Such as orcle, SQL, DB2, and dybase)
16. Understand network concepts.
17. Understand multimedia concepts.
18. be familiar with and master the data structure and basic algorithms.
19. Is the requirement too high? Don't worry about it and make progress without knowing it.
(Once you start learning, you will have a basic concept in a month;
Two months later, you will feel like you have a comprehensive basic knowledge. When you know what the program is,
It indicates that you are getting started. There are also many people who have compiled the program for many years and are not getting started yet,
You don't want to follow suit. Be confident and patient. How can it become a major event ?!)
(4) Recommended teaching materials
--The recommended teaching materials are mainly for concepts. It is best to choose teaching books from famous schools.
1. Computer composition principle (familiar)
2. Data Structure (master)
3. Operating System (understanding-> familiarity)
4. The C Language)
5. compilation principles (understanding Principles)
6. Assembly Language (understanding)
7. Computer Network (understanding)
8. Software Engineering (understanding)
9. Relational Database (familiar)
10. The C ++ Languege (master)
11. Object-oriented Design (master; combined with C ++ learning)
(5) Experience
1. A real programmer uses C ++ (said by an expert)
2. Compile the program;
3. Brainstorm;
4. Have a good programming style;
5. Read books, read good books, and read original books as much as possible! (I have repeatedly stressed this point, so you must have a choice in your studies,
Stick to reading good books and famous classical books, and do not waste some practices on shoddy books; stick to Reading mass books)
6. Have your own learning plans;
7. Summarize your own experiences and lessons (prepare a notebook and record errors and experiences)
8. Do not be afraid to learn new things;
9. Have the idea of software engineering;
10. Be good at discovering problems and then look for answers;
11. Ask experts for advice. (open your mind until you become masters)
12. Communicate with peers (not good at communication)
13. Understand the essence of software and do not be confused by the ever-changing appearance;
14. What you really want to learn is the programming language and method. It is not a library, a class, or a tool;
(It is relatively simple to learn what databases to use, but I think it is far from enough)
15. wiodows programming is mainly used to learn Windows OS and Win32 APIs;
16. have time to learn about embedded development;
17. have time to learn about PDA software development;
18. Learn about the. NET Framework and C # language. Maybe it is your new parent;
19. Be patient and never be impetuous;
20. Add comments to the program and keep your old program;
21. The more you learn, the more you know, the closer you are to experts;
22. If you are free to visit csdn, you will have many confidants;
23. Be confident to become an excellent program;
(6) Recommendation of some good books
1. The C programming language (keinighan & Dennis Ritchie 1988)
2. The C ++ programming League (Bjarne stroustrup 1997)
3. Inside the C ++ Object Model (Lippman)
4. Objective C ++
5. More effective C ++ (Lippman)
6. predictional C ++
7. c ++ efficient Object-Oriented Programming
8. Design Patterns
9. Thinking in C ++
10. The standard C ++ Le (recommended)
11. The art of computer programming
12. Programming windows (Charles Petzold)
13. VC ++ 5.0 technology insider
14. Introduction to MFC
15. software requirements
16. Advanced windows
17. c ++ Primer
18. Win32 programmer Reference Manual
19. Using TCP/IP for Internet connection
20. essence of COM
(7) learning plan
--This learning plan is set by myself. I will share it with you for your reference and make progress together.
1. Computer composition principles
2. Operating System
3. Data Structure
4. Assembly Language
5. c
6. C ++
7. VC technology insider
8. Programming windows
9. in-depth introduction to MFC
10. Advanced windows
11. Inside the C ++ Object Model
12. Thinking in C ++
13. Objective C ++
14. Database
15. Network
16. Embedded OS and Programming
17. Hardware Microcontroller
18. NET and C #
19. Software Engineering
20. UNIX and Linux

 

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.