Copyright notice: This article is the original “Cdeveloper” article, can be reproduced at will, but must indicate the source in a clear place!

Starting from this article, I will share the technical articles of “Learning C language from 0” series. This series will include a series of tutorials such as basic, advanced and project application, which is convenient for beginners to get started with C language and friends who use C language as a review.

I share something actually not only apply to the C language, C language is known to all is a “process-oriented” language, “relative” some senior object-oriented language to some low-level, but the interior of the object-oriented or need to process, so we’d better learn a process oriented language.

As it happens, C language is a very excellent process-oriented language, and many OS are also developed in C. It is very beneficial to learn it. Even if you do not usually use C, it is very helpful to know its Pointers. This time, I would like to share with you some of the “development environment”, “books” and some of the “self-study experience” used in the process of self-study, for the reference of friends who like C language.

The development environment

C language development environment is relatively simple, there are basically two choices:

  1. Windows: Visual Studio, compiled using VC++
  2. Linux, Mac: VIm, etc., using GCC to compile

My advice is to try to use VIm if you know how to use vim. It doesn’t matter if you don’t know how to use VIm now. It’s important to learn C by using VS first, and you can learn VIM later. If you want to learn while using vim, you can refer to the basic ViM tutorial I wrote earlier, which introduces common ViM operations, which is basically enough.

C language Books

Most people on the net recommend a lot of books, see the person dazzling, I only recommend here I used, more classic.

Introduction to 1.

Title: “C Programming Language”

Written by Dennis M. Ritchie, the “designer of THE C language”, and Brian W. Kernighan, the renowned computer scientist, this book is an authoritative classic introduction to the standard C language and its programming methods. It is very basic. Attention: is the C language designer to write the book, that is to say, the originator of the book, you said that the entry do not look at what he wrote to see who wrote?

2. Advanced

Advanced books recommend C language three swordmen: “C traps and Defects”, “C and Pointers”, “C expert Programming”

Getting these three books right is pretty impressive.

3. Basic computer skills

“Understanding Computer Systems in Depth” is a book I wrote a separate article before recommended, this book is really good, can lay a good foundation for computer, highly recommended.

“Coding: The language hidden behind computer hardware and software” this book is not tired, I read it in a day, after reading you will have a more comprehensive understanding of the entire computer software and hardware, the first time some things may not understand, it is recommended to read several times.

My little self-study experience

There’s no easy way to learn programming, and C is no different, and C is a little harder than other languages because it has Pointers, but it’s not that hard when you get it. The fastest way to learn is: “Write more code,” “debug more,” “analyze more memory,” “practice more projects.”

For example, when I was learning variables, there were a lot of bytes of this type written in the book. I felt tired of reading it, so I directly wrote programs on the computer and looked at the number of bytes of the corresponding type in memory. After this writing program, debugging to finally you fully understand the knowledge point of the process, in fact, you have learned to write in the book, and is proved by practice, some details and then read the book can, I think this method is the correct way to learn programming language.

Do not hold a programming language book in the arms all day long to read there, so the effect is not very big, suggest you learn programming with a computer, while reading while debugging programs, with practice to test their learning right.

Project-driven learning is the most effective way to learn when you have the basics of C. Beginning point can write their own console project headphones, be sure to write something you interested in, such as writing a console application to manage your own information of class: add and remove check change implementation, function of preserving, speaking, reading and writing, after I learned C language to write a this stuff, although at that time very vegetables, but still quite a sense of accomplishment.

After that, you can find some excellent C language projects on Github. For example, I chose the “cJSON” project to write a JSON parser in C language, and the “TinyHttp” project to implement a simple server in C language. They are both very good, and you can go to see them if you are interested.

If think open source projects can’t read, then go to contact the teacher directly, see if the teacher there is project can help to do something, university teacher a lot of your projects, don’t be afraid of the teacher refused to, the teacher will be very happy to meet such initiative of students, even if he was not, after a project will contact you first, have idea of students must be brave take the first step: Contact the teacher.

If you do well in the project, the teacher will pay you in the end. The most important thing is that it is a kind of training for yourself.

The above information can be directly back to the background of the public account “C information” to obtain, this time to write these, please look forward to sharing it.

This article was originally published in the wechat public number “cdeveloper”, programming, career, life, follow and reply to the keyword “Linux”, “machine learning” and so on to obtain free learning materials.