# Which Domains of Programming Are Least Represented in the Project-Based Learning Tutorial List?

> Discover which programming domains like Swift and OCaml have fewer tutorials in the project-based learning repository. See how Python and JavaScript dominate the list.

- Repository: [practical-tutorials/project-based-learning](https://github.com/practical-tutorials/project-based-learning)
- Tags: tutorial
- Published: 2026-02-24

---

**Swift and OCaml are the least represented programming domains in the `practical-tutorials/project-based-learning` repository, each containing only two tutorial entries compared to dozens in mainstream languages like Python and JavaScript.**

The `practical-tutorials/project-based-learning` repository curates a comprehensive list of project-based tutorials organized by programming language in its [`README.md`](https://github.com/practical-tutorials/project-based-learning/blob/main/README.md). When analyzing which domains of programming are least represented in the tutorial list, a clear pattern emerges: niche and systems-oriented languages contain significantly fewer resources than popular web and application development stacks.

## Methodology: Counting Tutorials in README.md

To determine representation levels, we analyzed the bullet-point entries (`- [title](url)`) under each language-specific heading in the repository's [`README.md`](https://github.com/practical-tutorials/project-based-learning/blob/main/README.md). Each bullet represents one tutorial project. We excluded table-of-contents links and section headers, counting only substantive tutorial entries.

## The Least Represented Programming Domains

Two domains stand out with the minimum count of tutorials.

### Swift: Only Two Tutorials

The Swift section contains exactly two entries:

- [Hacking with Swift – Learn Swift by doing 39 projects](https://www.hackingwithswift.com/read)
- [Retro first-person shooter from scratch](https://github.com/nicklockwood/RetroRampage)

### OCaml: Only Two Tutorials

Similarly, the OCaml section lists only two tutorials:

- [Implement a Language with LLVM in OCaml](https://llvm.org/docs/tutorial/#kaleidoscope-implementing-a-language-with-llvm-in-objective-caml)
- [Writing a Game Boy Emulator in OCaml](https://linoscope.github.io/writing-a-game-boy-emulator-in-ocaml/)

## Comparison with Other Domains

All other programming domains in the repository contain three or more tutorials. Mainstream languages dominate the list:

- **Python** and **JavaScript** each contain dozens of project tutorials covering web development, data science, and automation.
- **Go** features extensive systems and networking projects.
- **C** and **C++** maintain strong representation with game engines, operating systems, and compiler projects.

Even emerging languages like **Rust** and **Elixir** exceed the two-tutorial threshold, making Swift and OCaml the definitive outliers.

## How to Contribute New Tutorials

The repository maintains contribution guidelines in [`.github/CONTRIBUTING.md`](https://github.com/practical-tutorials/project-based-learning/blob/main/.github/CONTRIBUTING.md). To address the underrepresentation of Swift and OCaml:

1. Locate the appropriate language section in [`README.md`](https://github.com/practical-tutorials/project-based-learning/blob/main/README.md) or create one if it does not exist.
2. Ensure your tutorial follows the existing format: `- [Project Title](URL) - Brief description`.
3. Verify the tutorial is project-based and includes substantial coding exercises rather than pure documentation.
4. Submit a pull request referencing the contribution guidelines.

## Summary

- **Swift** and **OCaml** are the least represented domains in the `project-based-learning` repository, each with only two tutorials.
- The analysis counted bullet-point entries (`- […]`) under each language heading in [`README.md`](https://github.com/practical-tutorials/project-based-learning/blob/main/README.md).
- All other programming domains contain three or more tutorials, with popular languages like Python and JavaScript hosting dozens.
- Contributors can add tutorials via [`.github/CONTRIBUTING.md`](https://github.com/practical-tutorials/project-based-learning/blob/main/.github/CONTRIBUTING.md) to help balance representation.

## Frequently Asked Questions

### How many tutorials are in the Swift section of the Project-Based Learning repository?

The Swift section contains exactly two tutorials: "Hacking with Swift – Learn Swift by doing 39 projects" and "Retro first-person shooter from scratch." This makes Swift one of the two least represented programming domains in the repository.

### What OCaml projects are listed in the tutorial repository?

The OCaml section lists two specific projects: "Implement a Language with LLVM in OCaml," which teaches compiler construction using the LLVM framework, and "Writing a Game Boy Emulator in OCaml," which guides developers through building a functional emulator. Both entries represent advanced systems programming concepts.

### Why are some programming languages underrepresented in the project-based learning list?

Underrepresentation typically reflects community contribution patterns rather than editorial exclusion. The repository relies on pull requests from practitioners, and niche languages like Swift (primarily Apple ecosystem) and OCaml (functional systems programming) have smaller communities contributing beginner-friendly project tutorials. The [`.github/CONTRIBUTING.md`](https://github.com/practical-tutorials/project-based-learning/blob/main/.github/CONTRIBUTING.md) file provides guidelines for adding entries to these sparse sections.

### How can I add a tutorial to an underrepresented language section?

To add a tutorial to sections like Swift or OCaml, fork the `practical-tutorials/project-based-learning` repository, edit the [`README.md`](https://github.com/practical-tutorials/project-based-learning/blob/main/README.md) file to include your tutorial in the format `- [Project Title](URL) - Description`, ensure the project is genuinely tutorial-based with coding exercises, and submit a pull request following the contribution guidelines in [`.github/CONTRIBUTING.md`](https://github.com/practical-tutorials/project-based-learning/blob/main/.github/CONTRIBUTING.md).