Learn C, improve your CV & stand out from the crowd when applying for developer positions. Become a better Linux admin.
Why should you learn how to code C?
It makes you a better programmer – in all languages.
C is the mother of all languages, almost all other programming languages are based on C. By learning the “basement”, you improve the ceiling and the entire structure.
It looks really good on your resumé/CV.
Most programmers (and their bosses) know that people who code C, are mostly better coders in any language. It makes your job application or freelance bid stand out from the crowd in a positive way.
It makes you a better sysadmin.
You can be a good sysadmin without knowing how to code but if you aim to be great at Linux, then you must know how to code C. Most Linux software (and most of Linux itself) is written in C. If you want to understand the system in depth, then learning C is your best option.
It improves your general knowledge of computers.
In order to write advanced C code you must understand the hardware. C is very connected to the hardware. There are no classes or objects or any other filtered layers between you and your hardware. You manipulate the RAM directly with your pointers and you execute kernel system calls in direct contact with the operating system. By learning advanced C, you learn to understand the OS and your computer’s hardware.
What you’ll learn
- Learn the basics of the Linux operating system
- Move on to the advanced features of Linux
- Learn the basics of programming in C
- Learn how to write advanced C code for the Linux operating system
- Learn how to create advanced internet services, like writing your own web server
- Learn how to write secure code
Table of Contents
1 Writing output to the screen
2 Reading input from the keyboard
3 Integer numbers
4 Decimal (float) numbers
5 Troubleshooting your code
6 While loops
7 If statements
9 Random numbers
12 ASSIGNMENT dice game
13 SOLUTION dice game
17 For loops
18 Introduction of Advanced section
19 Dynamic memory allocation
20 Read from keyboard with a timeout
21 XOR encryption
22 Ncurses 1 Screens
23 Ncurses 2 X and Y
24 Ncurses 3 Arrow
25 Function pointers
26 Linked lists
27 The & (ampersand)
28 Sockets 1 Building a simple TCP client
29 Sockets 2 Creating a sample TCP server
30 Forking your code
31 Build your own webserver 1 Accepting connections
32 Build your own webserver 2 Parsing HTTP requests
33 Build your own webserver 3 Handling routes and an HTTP response
34 Build your own webserver 4 Reading and sending files
35 SOLUTION Build your own webserver 5 Finishing the webserver