Giter VIP home page Giter VIP logo

c_training's Introduction

Overview

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 book Learn 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.

Main features

  • 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/

    ๐ŸŽธ slate an API generator

  • 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
    • Third-party library
      • Database
        • PostgreSQL
        • redis
      • GNU Scientific Library
      • Test framework
  • writing robust code

    • Debug
    • Automated test

Memory leak testing

  • 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.

gdb usage

Configure a handy text editor

Warnings and directions

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.

Standards to tell you whether or not you are qualified

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.

c_training's People

Contributors

complicatedphenomenon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.