Skip to content

YorkEarwaker/Coding-Practice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

126 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coding-Practice

Sandpit to;

  • improve coding proficiency in a number of different programming languages.
  • improve technical competency in a number of related activities; testing, devsecops, ...
  • improve standards compliance

Notes

Goals and objectives aligned to the Athropogenic Global Warming AGW project

Technical competency

  • Programming languages and toolchains
  • Repository, evaluate GitHub, learn Github practical everyday use things, integrate Github with other things like git,
  • Learning coding stuff, primarily tailored to AGW project, secondarily other things,

Architecture competency

  • Hands on use of technology to better problem solve and design things

Status

TODO

  • <todo: consider, start C anc C++ and Assembly learning projects, >
  • <todo: consider, dead tree version of, Effective C: An Introduction to Professional C Programming by Robert C. Seacord, >
  • <todo: consider, start Rust learning project, >

DONE

  • <done: intent to commit, return to coding proficiency and related competencies, >
  • <done: investigate GitHub offerings, wip >

References

Programming Languages

  • Assembly WP, likely rarely
  • C WP
  • C++ WP
  • Java WP
  • JavaScript WP
  • TypeScript WP
  • Python WP
  • MicroPython WP
  • Rust WP

Style Guides, coding standards - dogma, as it varies between languages and frameworks and organizations, it would be nice to have some common standards based on human centered concerns evidence and non functional requirements like readability modifiability maintainability extensibility testability and so on, this would help with automatability which is a machine based concern

  • Coding convention, WP
  • Naming convention, WP

AGW project convention - <todo: consider, place elsewhere >

  • First cut of trying to identify an overall style guide coding and naming conventions for the AGW project .
  • Bicycle shedding, needs to be done but gets in the way of doing anything productive to have to worry about these sorts of conventions,
  • Required to short circuit coding wars dogmatism which impacts; team cohesion and moral, productivity, consistency, and other non functionals.
  • It is defined upfront, no arguments, refer to standard authority, submit a change request and rationale for governance review,
Language Primary Source Extension Common File Naming Style Header/Interface Extension Key Rule
C .c snake_case or flat_case .h Short, descriptive
C++ .cpp, .cc, .cxx PascalCase (for classes), snake_case (for utils) .h, .hpp Class name often in file
Java .java PascalCase (matches class name) N/A Must match public class name !
Python .py snake_case N/A PEP 8 compliance
MicroPython .py snake_case N/A PEP 8 compliance
Rust .rs snake_case N/A Consistency with code style
JavaScript .js camelCase or kebab-case N/A Project style guide dependent
TypeScript .ts camelCase or kebab-case N/A Project style guide dependent
Assembly .s, .asm snake_case or flat_case N/A Platform/assembler specific
  • Table generated by Brave Leo AI to questions like - compare file naming standards for C C++ Java Rust Python MicroPython JavaScript TypeScript Assembly
  • <todo: consider, add jsx mjs mts for js/ts modules, add column compiled binary i.e. .o for C object, ? to consider other similar file naming conventions, >
  • <todo: consider, limit to .cpp and .hpp for C++ for AGW project, cross compatability with C a special case tbd, >
  • <todo: consider, keep Key Rule column, point to standard if there is one, ?>

Following, various resources for learning programming languages listed above. Not recommendations, not necessarily all good practice, an attempt at finding a better understanding.

  • <todo: consider, decide on which ones are relevant to AGW project, and prune accordingly >

asm

Learning

  • Learn MIPS Assembly in Y minutes WS, cheat sheet

C

Books

  • The C Programming Language, WP, Kernighan & Ritchie, ANSI C original reference <todo: consider, is this still worth buying as a dead tree? The language has moved on since K&R ANSI C to multiple revisions in ISO standards. >

Learning

  • Learn C in Y minutes WS, cheat sheet
  • Learn C, WS w3schools

C books/references, comparisons, lists,

  • The Definitive C Book Guide and List, WS, 15 Jan 2019 (edited), StackOverflow
  • 8 C Books That Separate Experts from Amateurs, WS, 28 June 2025 (updated), BookAuthority

Style Guides - C

  • Ubuntu C/Vala Style Guide, WS, Ubuntu, Unity, <todo: is there a genral style guide for Canonical/Ubuntu ? to source, if it/they exist, >
  • GNU C Style Guide, WS, GNU

C++

Books

  • The C++ Programming Language, WP, Bjarne Stroustrup, standard reference

Learning

  • Learn cpp WS, course
  • Learn C++ in Y minutes WS, cheat sheet
  • Learn C++, WS, w3schools

C++ books/references, comparisons, lists,

  • The Definitive C++ Book Guide and List, WS, 18 Jan 2021 (edited), StackOverflow

Style Guides - C++

  • Cpp Core Guidelines, GH, cpp org WS Bjarne Stroustrup
  • GNU Octave C++ Style Guide, WS, Octave, GNU
  • Google C++ Style Guide, WS, Google
  • CppCodingStandards, WS, OpenStack
  • Programming in C++, Rules and Recommendations, WS, Imperial
  • other to list,

Project structure - C++

  • Canonical Project Structure, WS, 2018, paper
  • Source File Organization for C++ Projects Part 1: Headers and Sources, WS, 22 June 2016, Simplify C++
  • Source File Organization for C++ Projects Part 2: Directories and Namespaces, WS, 29 June 2016, Simplify C++

News Papers

  • C++ File Extensions: .cc vs .cpp – Key Differences, Best Practices & Modern Usage for Linux Systems, WS, 16 January 2026, W3Tutrorials

About

Sandpit. Improve coding proficiency in a number of difference programming languages

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors