Current location - Education and Training Encyclopedia - Education and training - How to teach yourself to be a programmer?
How to teach yourself to be a programmer?
The best way to teach yourself programming is to find resources on the Internet.

At present, there are countless computer resources on the network. Many of them are basic to proficient video tutorials. Explain through video. Let you know the key knowledge. You can find a video that suits you. Then reading it is basic.

The following are some good websites for online learning: massive open online courses, Geek College, Rupeng.com, Chanz Podcast, Netease Open Class, etc. Take notes. When watching the video, be sure to take notes.

Take a screenshot of the key parts in the video and explain them in words. I formed my own notes. These notes are important to you. By taking notes, you don't need to watch videos anymore. It is enough to check your notes when reviewing, which greatly saves time.

Here is a good software for taking notes: the code explained in the CherryTree practice video. I think you need to write it yourself at least three times. When writing the code, I used the notes written on it. By looking at the screenshots of your notes, you can slowly explore and write your own code. Of course, if you practice to a certain extent, you need to do a project properly. Consolidate your knowledge.

Basic skills of programmers

1, a skilled development tool

As a programmer, mastering at least two or three development tools is the basis of programmers. Among them, C/C++ and JAVA are the most recommended development tools. C/C++ has become a sharp weapon in development tools because of its high efficiency and flexibility. Many system-level software is written in C/C++.

JAVA's cross-platform and good combination with the WEB are its advantages, and JAVA, its related technology set JAVAOne, is likely to become one of the mainstream development tools in the future.

Secondly, it is best to master a simple visual development tool, such as VB, PowerBuilder, Delphi and CBuilder, which reduces the development difficulty and can strengthen the programmer's concept of object model. In addition, you need to master basic scripting languages, such as shell and perl. And at least understand these script codes.

2, familiar with the database

Why is the database so important? As a programmer, there is a natural reason: many applications are centered on database data, and there are many database products, among which relational databases are still the mainstream form, so programmers should master at least one or two databases, be very clear about the key elements of relational databases, and master the basic syntax of SQL skillfully.

Although many database products provide visual database management tools, SQL is the foundation and a common database operation method. If you don't have access to commercial database systems, it is a good choice to use free database products, such as mySQL and Postgres.

3, understand the operating system

At present, the mainstream operating systems are Windows, Linux/Unix. Skillful use of these operating systems is necessary, but it is not enough. To be a real programmer, you need to know the operating system, its memory management mechanism, process/thread scheduling, signals, kernel objects, system calls, protocol stack implementation and so on.

As an operating system for developing source code, Linux is a good learning platform. Linux has almost all the features of a modern operating system. Although there is little information about the implementation mechanism of Windows system kernel, a lot of information can still be obtained through the Internet. Understand the network protocol TCP/IP.

With the popularity of the Internet today, if you haven't mastered the TCP/IP protocol stack, you need to make up this lesson quickly.

Network technology has changed the running mode of software. From the earliest client/server structure, to today's WEBServices and to the future grid computing, it is inseparable from the network protocol support based on TCP/IP protocol stack. It is necessary to master the TCP/IP protocol thoroughly.

At least, you need to know the ISO seven-layer protocol model, the principles of common protocols such as IP/UDP/TCP/HTTP and the three-way handshake mechanism.

4. Understand the importance of DCOM/CORBA/XML/WEBServices.

With the development of technology, the seamless combination of software and network is an inevitable trend, and the location independence of software system is one of the important characteristics of future computing mode. DCOM/CORBA is an intermediate platform for two mainstream distributed computing. DCOM is an extension of Microsoft COM (Component Object Model) and CORBA is a specification supported by OMG.

The importance of XML/WebServices is self-evident. XML is called "Esperanto" on the Internet because of its structured expression and super expressive ability, and it is one of the cornerstones of distributed computing.

5. Don't separate software engineering from CMM.

In the development of large-scale software systems, engineering development control has replaced individual heroism and become the guarantee for the success of software systems. A master programmer is not necessarily a good programmer. An excellent programmer organically combines excellent programming ability and development skills with rigorous software engineering ideas.

Programming is only a part of the software life cycle. An excellent programmer should master the basic skills of each stage of software development, such as market analysis, feasibility analysis, demand analysis, structural design, detailed design, software testing and so on.

6. Ability to understand requirements

Programmers should correctly understand the requirements described in the task list.

It should be clear here that a programmer should not only pay attention to the functional requirements of software, but also pay attention to the performance requirements of software. He should be able to correctly evaluate the impact and potential threat of his module on the whole project. If a skilled programmer with two to three years of project experience doesn't understand this, it only means that he may have tried, but he hasn't.

7. Modular thinking ability

As an excellent programmer, his thoughts can't be limited to the current task. Think about whether the module he wrote can exist without the current system and be directly used in other systems or other modules through simple encapsulation.

Doing so can make the code reusable, reduce repetitive work and make the system structure more reasonable. The improvement of modular thinking ability is an important index to improve a programmer's technical level.