It's a project mainly about introducing C
, meanwhile, a certain amount of CPP
is involved . It aims to become a useful reference to look up the key usage of features in C and obeys the modern standard as much as possible.
lcthw
is the handy practice on the bookLearn C the Hard way
by Zed A Shaw.library
is third party library.GSL
is used to assist scientific computation supported by GNU Scientific Library.POSIX
make use of the hardware's improvements.
-
Documentation
Make documentation for part of the code base.
❌
Doxygen
is not an idea tool to make documentation to me, I really can't agree with its taste. (I was wrong, I didn't know what I was talking about.)Basic procedure
-
doxygen -g
-
customize
Doxyfile
eg: Modify the items as below
PROJECT_NAME = "C Training" PROJECT_NUMBER = "1.0" # Where to put the file generated by doxygen Doxyfile OUTPUT_DIRECTORY = "docs" # Extract the comment from all source code in the specified directory EXTRACT_ALL = YES QUIET = YES # Specify what to include in documentation. INPUT = LeetCode/Tree LeetCode/LinkedList RECURSIVE = YES GENERATE_LATEX = NO
-
doxygen Doxyfile
-
Edit code comment while checking
index.html
in a browser. -
publish it to github pages
https://goseeky.wordpress.com/2017/07/22/documentation-101-doxygen-with-github-pages/
-
-
New features on C
- Object Oriented programming
- Generic programming
-
Informative
- Basic
- Library
- Array
- Dynamic array
- Pointer
- Function
- Memory management
- Advanced
- OOP
- multithreading
- Error handling
- Data structure
-
Linked List
-
Stack
-
Queue
-
Heap
-
Hash table
- Linear probing
- Chaining
- Re-Hashing
-
tree
- Binary tree
- Binary search tree
- AVL Tree
- Red black tree
- beta version
- B Tree
- B+ Tree
-
Graph
- Breadth-First search
- Depth-First search
- shorted-path algorithm
-
- Algorithm
- Sort
- Bubble sort
- Select sort
- Quick sort
- Merge sort
- Heap sort
- Bucket sort
- Counting sort
- Insertion sort
- Radix sort
- Search
- Binary search
- Sort
- Third-party library
- Database
- PostgreSQL
- redis
- GNU Scientific Library
- Test framework
- Database
- Basic
-
writing robust code
- Debug
- Automated test
- Applying Docker to solve the the problem of no proper
Valgrind
for a specific OS version. - Developing inside a Container!
The Visual Studio Code Remote - Containers extension lets you use a Docker container as a full-featured development environment. It allows you to open any folder inside (or mounted into) a container and take advantage of Visual Studio Code's full feature set.
-
Vim
. -
Atom
-
VS code
The small program is tomorrow's building block in a larger project. So avoid writing any one program ugly, think it over and over to make it robust and exquisite.
There are some standards to test whether or not you are qualified to do the programming job. You shouldn't say things like -I have no idea of how to be a qualified programmer again.
It's not hard to be a good programmer compared with to be a good physicist.
There are many resources already available online. You need to go through several tests. You can clearly see different stages which you are in along the way toward realizing what you long for.
- What the basics you are supposed to know.
- There are many problems for you to take a try.
Tackling down the problems help you to understand how things work better. - When you can ask for an interview?
- Code Jam: Advanced level to participate.
- leetcode, take the challenge.