C programming is a general-purpose, procedural, imperative computer programming language developed in 1972 by Dennis M. Ritchie at the Bell Telephone Laboratories to develop the UNIX operating system. C is the most widely used computer language. It keeps fluctuating at number one scale of popularity along with Java programming language, which is also equally popular and most widely used among modern software programmers.
C programming language is a MUST for students and working professionals to become a great Software Engineer specially when they are working in Software Development Domain. I will list down some of the key advantages of learning C Programming:
-
Easy to learn
-
Structured language
-
It produces efficient programs
-
It can handle low-level activities
-
It can be compiled on a variety of computer platforms
-
C was invented to write an operating system called UNIX.
-
C is a successor of B language which was introduced around the early 1970s.
-
The language was formalized in 1988 by the American National Standard Institute (ANSI).
-
The UNIX OS was totally written in C.
-
Today C is the most widely used and popular System Programming Language.
-
Most of the state-of-the-art software have been implemented using C.
Learning C right now, been wanting to get on this. It's going to be FUN !!.
LEARNING THE C PROGRAMMING LANGUAGE AND ITS APPILICATION
- This repository consists of all the C programming projects done with ALX Africa Full stack Software Engineering course in partnership with Holberton School by IamNaeto.
- All main.c files are prewritten by the school. We build functions that produce a specific output while also taking into consideration edge cases.
- C is fun but its not that easy, so I have some notes that will actually show you the journey and thought process.
- C Books and PDF's to check out and use as a reference.
- To help you track down that bug, start reading your code aloud.
- Pretend that a programmer friend is sitting right next to you.
- Explain what your code is doing and how it works. As you talk through your code, you’ll find the problem. If you don’t, have your imaginary friend ask you questions during your explanation.
Don’t worry about going mental.
You’re a C programmer.
You’re already mental.
😅- As a bonus, talking through your code also helps you identify which portions need to have comments and what the comments should be.
- 0x00 : Hello, World.
- 0x01 : Variables,if,else,while.
- 0x02 : Functions, nested loops.
- 0x03 : Debugging.
- 0x04 : More Functions and nested loops.
- 0x05 : Pointers, arrays and strings.
- 0x06 : More pointers, arrays and strings.
- 0x07 : Even more pointers, arrays and strings.
- 0x08 : Recursion.
- 0x09 : Static libraries.
- 0x0A : argc, argv[].
- 0x0B : Malloc, free.
- 0x0C : More malloc, free.
- 0x0D : Preprocessor.
- 0x0E : Structures, typedef.
- 0x0F : Function pointers.
- 0x10 : Variadic functions.
- 0x11 : Write our own printf project.
- 0x12 : Singly linked lists.
- 0x13 : More singly linked lists.
- 0x14 : Bit manipulation.
- 0x15 : File I/O.
- 0x1C : Makefiles.
- 0x1D : Binary trees.
- 0x1E : Search Algorithms.
- Pointers and Arrays : Code snippets and notes on Pointers and Arrays from Concept Page.
- Data Structures : Code snippets and notes on data structures.
- Dynamic Memory Allocation : Code snippets and notes on how dynamic memory allocation works with
malloc
andfree
. - Heap vs Stack : Code snippets and notes on what is a heap, a stack and how they work.
- Simple Shell Concepts : Code snippets and notes on the concept for the simple shell project.