Introduction
Welcome to the VERSO Open Resource Library — an open source toolkit for students getting started with research computing, open source software, and collaborative development.
This library is maintained by students and staff at the University of Vermont through VERSO (Vermont Research Open Source Program). Whether you're brand new to coding or looking to level up your open source skills, you'll find practical guides here.
If you see anything that needs updating, or want to contribute, visit the GitHub repository.
How to Use This Library
The library is organized into three sections:
- Concepts — foundational ideas and practices (version control, testing, ethics, licensing, etc.)
- Tools — practical guides for specific software (Git, GitHub, VS Code, Python, Docker, etc.)
- VERSO Standards — conventions used in VERSO projects (commit messages, AI use, etc.)
Most pages include a References section with links to additional resources if you want to go deeper.
Where to Start
If you're new to open source software development, here's a suggested reading order:
1. Learn the Command Line
The terminal is how you interact with most developer tools. Start with the Command Line page to get comfortable with basic navigation and commands.
2. Learn Git
Git is the version control system used by almost every software project. Understanding Git is essential before contributing to any open source project.
3. Set Up GitHub
GitHub is where most open source projects live. You'll need an account to contribute. Learn how to fork repositories, open pull requests, and work with issues.
4. Set Up Your Editor
Visual Studio Code is a free, powerful code editor used widely in research and industry. The page covers setup, extensions, and the built-in debugger and terminal.
5. Pick a Language
The library currently has guides for:
- Python — the most common language in research, data science, and scripting
- Swift — for Apple platforms and research apps using frameworks like ResearchKit
6. Learn Key Concepts
Once you have the basics down, explore the Concepts section:
- Testing — how to write automated tests
- Debugging — how to find and fix bugs
- Security Basics — keeping secrets out of your code and handling data safely
- APIs — how to fetch data from external services
- CI/CD — automating testing and deployment
- Licenses — understanding open source licenses
- Documentation — writing good docs for your projects
Contributing to This Library
This resource library is itself an open source project, and contributions are welcome. You can:
- Fix a typo or unclear explanation
- Expand an existing page
- Add a new page for a topic that's missing
- Translate content
See the README for instructions on running the site locally and submitting changes.
Additional Resources
- ArchWiki — Arch Linux's wiki; contains detailed guides on many Linux and development topics applicable beyond Arch
- The Odin Project — free, comprehensive web development curriculum
- Missing Semester (MIT) — a course on the command line, editors, Git, and other tools often skipped in CS curricula
- GitHub Skills — free interactive GitHub courses