From zero -based to software development, what way should you go? Introduction to see these 5

From zero -based to software development, what way should you go? As an engineer who has developed for nearly 20 years, I believe I still have a lot of experience in this area! Recently, I saw a similar confusion, so I wrote this article, I hope it will be helpful to everyone!

1. Strong learning ability, hobbies are the best!

The IT industry is a place for talents. Therefore, we must determine that you have a certain learning ability and a certain hobby in order to go farther!

2. Play a computer basis

1. Computer hardware structure and interface

2. Computer operating system

3. Computer principle and daily maintenance

4. Network technology

从零基础到软件开发,应该走怎样的路?入门者不妨看看这 5 条

5. Database, etc.

These basic courses or knowledge have consolidated the foundation. Many code farmers who have been on the job for several months are really dare to compliment! Can be called a programmer!

Third, at least proficient in a language

If you want to have an in -depth understanding of the computer, the assembly language is the best. If you want to do software, Java, C/C ++, Python are very good choices.

Here I use the words of the previous article to briefly introduce the C language and C ++:

C language is facing process, and C ++ is object -oriented.

Select C language when programming is introduced. At the same time, C language is also one of the compulsory courses of university computer -related majors!

The difference between C and C ++:

C is a structured language, which focuses on algorithms and data structures. The design of the C program is the first to consider how to use a process to perform the output (or implementation process (transaction) control) of the input (or environmental conditions).

从零基础到软件开发,应该走怎样的路?入门者不妨看看这 5 条

C ++, the first consideration is how to construct an object model so that this model can fit the corresponding problem domain, so that the state information of the object can be output or implement the process (transaction) control. Therefore, the biggest difference between C and C ++ is that their ideological methods are different for solving problems. The reason why C ++ is more advanced than C is because “the concept of design has been integrated into C ++.”

The biggest difference between C and C ++: lies in their ideas for solving problems. The reason why C ++ is more advanced than C is because “the concept of designing has been integrated into C ++”, as far as the language itself is concerned, the concept of algorithm is more in C. So it is not important to C, wrong! The algorithm is the basis for programming. If there is no good algorithm, good design is the same. Moreover, “C plus good design” can also write very good things.

从零基础到软件开发,应该走怎样的路?入门者不妨看看这 5 条

Learn C ++ to detect from these aspects:

1: Compatible part of C language;

Therefore, learning C ++ must be based on the premise of learning C language. Similarly: Learn the upper -level language such as PHP, JS, Java, and must be premised on C/C ++. In violation of this principle, you will encounter technical bottlenecks that cannot be surpassed. Your programming career will be discounted. For example, when learning PHP, the difficulty is not the if … else … these grammar, but such as PHP’s object -oriented, PHP interface, database optimization, server load balancing, cluster technology, network programming, etc. Essence

2: Object -oriented programming thoughts: class, inheritance, polymorphism.

3: generic mechanism.

从零基础到软件开发,应该走怎样的路?入门者不妨看看这 5 条

4: Template mechanism: function template, template -like template

5: The data structure and algorithm in its standard library STL. You mainly need to know what the implementation of them. Although you do n’t want to write it, you need to know the source so that you can use it with confidence. Such as: How to implement the container Vector, List, MAP?

6: Non -standard library, such as: Boost.

Of course, it is also the data structure and algorithm in it. These contents have been written for you, you often use the interface many times. Therefore, familiarity with it is a simple thing. The key is to explore its implementation plan.

7: Do a few items, including console, graphic, and further extended QT programming.

8: Game programming

9: Linux operating system

Although you don’t need you to develop on Linux, you have to understand Linux, and there are more things involved in it. Such as processes, threads, pipelines, queues, messages, communication, etc.

Fourth, proficient operating system

从零基础到软件开发,应该走怎样的路?入门者不妨看看这 5 条

Software is actually programming on the operating system. Only by in -depth understanding of the principles and mechanisms of the new system of operation can become a senior programmer. For example, the hierarchical mechanism of the operating system, the management, process, thread, message queue, etc. of memory! API and API calls.

5. Have professional technology

1. Data structure and algorithm

2. Deep mathematical skills

3. Familiar with related technologies such as hardware and network

4. Professional technologies in other fields, such as finance, law, project management and other industries

从零基础到软件开发,应该走怎样的路?入门者不妨看看这 5 条

Only in this way can we become expert -level programmers in a certain field! Develop your own comprehensive quality, and lay the foundation for senior project managers and entrepreneurship!

Self -learning C/C ++ is very difficult to program. You may wish to learn from some like -minded friends!

C language C ++ programming and learning communication circle, follow+private message [C/C ++ programming]

WeChat public account: C language programming learning base

从零基础到软件开发,应该走怎样的路?入门者不妨看看这 5 条

There are some source codes and information sharing. Welcome to switch to partners who also learn programming. Exchange growth with everyone will think faster than themselves!

Programming software