Code Workshop

repositories, stories, and documentation

This image
The source for this image is an SVG file generated from a photo of my desktop, using a converter application from Adobe's website .
"Good judgement comes from experience, and experience comes from bad judgement."
- Jim Horning

Jim Fawcett
Hi, I'm Jim Fawcett. I enjoy talking about and developing software. This is my site and I'm glad you stopped by. The site is intended for anyone interested in software development, especially for developers using C++, Rust, C#, HTML, JavaScript, and CSS. All are welcome.
Disclaimer
I am building this site to learn about things that interest me and provide reference and learning materials for others. Code here is exploratory and/or expository. I make no claims of fitness for production. I think most of what you see here is correct, clearly stated, and follows accepted idioms. The earliest material may not always be so, but I do go back to make improvements. You can help by advising me here of needed improvements.

In late 2022 I started using browser-based ChatGPT to:
  • create repository README.md files
  • build unit tests, starting with Rust libraries
That worked well, but trying to use ChatGPT for text improvements and other code generation did not.
By mid 2025 AI terminals like Claude Code were released and were remarkably effective for:
  • adding new features to existing code, debugging, and finding code smells
  • creating new web pages that are similar in structure and content to existing pages, basically acting as fairly complete templates that required small amounts of editing to serve their purposes.
I now use Claude Code like a quick and smart assistant that occasionally may misinterpret my requests. When creating code I usually start with hand-crafted code to which I add features, debug and make quality improvements using Claude Code augmented with markdown files to set context for the projects. Also, AI actions have proven useful for generating tabular references, regular expressions, and listing all the options for terminal commands. Most of the W3C web components presented here have been generated by ChatGPT from non-component JavaScript and CSS I've developed in a series of Test projects. The results are surprisingly good, but need to be checked for errors in following instructions, code quality, and text content. Generated code may be functionally correct but needlessly context specific so the code is hard to reuse. At this time a small fraction of the text and code displayed in this site have been generated using guided AI assistants. AI assistants remove a lot of the friction in development and are constantly being improved. I expect that I and most other developers will use AI assistants when generating many of our code products.
This site is all about code: Repositories, Stories with examples, Bites that focus on language features, and bits that compare several programming languages. Site resources are divided into Tracks. Each track focuses on a specific area, e.g., languages, web development, other software development, basics, and code experiments. Each track has a button in the top menu that opens a "Track Explorer". Thanks to Mike Corley for many reviews and suggestions that have helped improve this site.
You are looking at a new version of the first site I built to learn Rust by trying to explain how it works. That had fairly complete content, but was too hard to use and maintain, and some contents needed simpler explanations. This NewSite structure and mechanics are complete and most content has been ported from the old site. It is simpler to use, but is still a work in progress with a few missing links. Porting the last remaining pages and simplifying material from the first site will happen as quickly as time permits.

1.0 Purpose

Code Workshop is a personal website serving three goals: The intended audience is software developers at any level - especially those working with C++, Rust, C#, Python, or web technologies.

2.0 Content Tracks

The site is organized into eight topic tracks, each with its own Track Explorer and navigation tree:

Table 1. - Content Tracks

Track Maturity Contents
Rust Most complete Full story (7 chapters), bites, code bits, references repositories
C++ Complete Story, bites, code bits, references, repositories
C# Developing Story, Bites, repositories; more bites and bits planned
Python New Foundational content
WebDev Solid HTML, CSS, JavaScript instruction with live examples
SWDev Developing Design, patterns, beginning deployment, software engineering
Basics Solid Memory models, processes, kernel resources
Site Intermediate Navigation guide, site map, first thoughts on site design documentation

3.0 Content Formats

Each track delivers content in one or more of these formats: Stories are ebook-style multi-chapter progressions. The Rust Story, for example, moves from data models through ownership, safety, structures, traits, and generics - seven chapters in all. Bites are single-page deep dives on one language feature, related to story chapters. Rust Bites cover ownership, borrowing, moving, mutation, and more. Most tracks have Bites. Code Bits are small compilable examples in C++, Rust, C#, Python, and JavaScript, shown side by side for cross-language comparison. Repositories link to documented GitHub repositories holding real tools, libraries, components, and demo projects organized by track. References are quick-reference guides, currently available for Rust, C++, C#, Python, and SWDev, with plans to provide for the other tracks as well.

4.0 Key Takeaways

Visitors to this site gain:
Repository home: https://github.com/JimFawcett
Syracuse University website: https://ecs.syr.edu/faculty/fawcett
Feedback
Comments and suggestions are welcome. Post them here. I'm especially interested in:
  • What you liked and did not like
  • Is navigation obvious and easy?
  • Which discussions are too complex or too simple?
  • Are Stories, Bites, and Code interesting?
  • Is the site visually appealing?
  • Is the SiteMap easy to use? Are widgets (expanding images, badges) intuitive?