• Yihan Pang / Home Page
  • Publications
  • Blog Posts
  • CV
    Yihan Pang

    Yihan Pang

    An Ph.D. student researching in Computer Architecture & System Software

    • Champaign, IL
    • LinkedIn
    • Google Scholar

    How to learn good coding practices

    How to learn good coding practices

    Use Linux

    • It is critical to get familar with commline tools and using Linux is the best way to learn.

    Learn fundamentals

    • Introduction to Computer Systems
      • C Primer
      • C Coding Style and Conventions
      • gdb Cheatsheet
      • C Programming Tools
      • x64 Cheat Sheet

    Write good C code

    • Clean Code: A Handbook of Agile Software Craftsmanship
    • Linux kernel coding style
    • Greg Kroah-Hartman’s coding style

    Know your build system: GNU Make

    • Makefile Chearsheet
    • GCC and Make: Compiling, Linking and Building C/C++ Applications
    • GNU Make in Detail for Beginners

    Know your build system: CMake

    • CMake Tutorial

    Unit Tesiting: googletest

    • GoogleTest-Primer
    • GoogleTest-Advanced-Topics

    Be lazy. Automate repetitive tasks using script.

    • Python Programming Language
    • Bash Scripting Tutorial for Beginners
    • Bash scripting Tutorial
    • Bash Guide for Beginners
    • ExplainShell.com

    Don’t be afraid of assembly

    • x86 Assembly Primer for C Programmers
    • x64 Cheat Sheet
    • OSDev.org: Inline assembly
    • Inline assembly for x86 in Linux
    • Inline assembly in Linux Kernel
    • Stack frame layout on x86-64
    • x86 calling conventions
    • objectdump cheatsheet

    Improve your code gradually

    • Refactoring: Improving the Design of Existing Code

    Understand C++

    • A Tour of C++ (C++ In-Depth Series)
    • Effective C++: 55 Specific Ways to Improve Your Programs and Designs
    • More C++ Idioms

    Deeply understand C++

    • Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
    • Design Patterns: Elements of Reusable Object-Oriented Software
    Sitemap
    • Follow:
    • Feed
    © 2025 Yihan Pang. Powered by Jekyll & AcademicPages, a fork of Minimal Mistakes.