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
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
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 >
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
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 >
Learning
- Learn MIPS Assembly in Y minutes WS, cheat sheet
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
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
Books
- The C++ Programming Language, WP, Bjarne Stroustrup, standard reference
Learning
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