Developer Central
Welcome to Developer Central!
Programming is about more than simply learning a programming language. Sooner or later you'll come across version numbers, software licences, command lines, release stages and all sorts of other things that everybody seems to expect you to understand.
What exactly is a beta? Why does some software have a version number like 2.4.1? What on earth is PATH? And which software licence are you supposed to choose?
That is what Developer Central is here for.
You don't need to know everything before you start. Pick something that interests you and let's get stuck in!
Development basics
Version numbers and release stages are some of those things everybody seems to know until you actually ask what they mean. Start here and we will make them considerably less mysterious.
- Understanding software versions
- Alpha, beta and release candidate versions
- Introduction to Semantic Versioning
- Other ways to version software
- Versioning your own software
The command line
If a box with a blinking cursor has ever made you quietly close the window again, this section is for you. Learn enough command-line knowledge to use development tools confidently without memorising an entire operating system.
- Introduction to the command line
- Introduction to the Windows command line
- Introduction to the Linux command line
- Environment variables and PATH
Software licensing
What can somebody do with code you publish? What can you do with theirs? These guides introduce the common licence families and point you towards the official material.
- Introduction to software licences
- Choosing a software licence
- The MIT Licence
- The GNU General Public License
- The GNU Lesser General Public License
- The GNU Affero General Public License
- Apache License 2.0
- BSD licences
- Mozilla Public License 2.0
- Creative Commons licences and software
Releasing your software
You made the thing. Fantastic! Now comes documenting it and putting an actual release in front of users without forgetting half the important bits.
- Preparing your first software release
- Writing a changelog
- Writing useful release notes
- Writing a useful README
- Software README template
- Game README template
Python tutorials
The Nathan Tech Python tutorials introduce programming fundamentals and then apply them to a simple audio game. Some of the original recordings are older, so current documentation should be used for installation and version-specific details.
Visit the Python tutorials section.
Accessible development
Accessibility is easier when you think about it while building the software rather than attempting to glue it on afterwards.
- Introduction to accessible development
- Keyboard accessibility for developers
- Accessible controls and sensible defaults
- Introduction to screen-reader testing
Developer tools
AccessiMD
AccessiMD is an accessible Markdown editor with Reader Mode, document navigation, table editing, searching, bookmarks, spell checking and more.
Read more and download AccessiMD.
Accessible Python Executable Builder
An accessible graphical interface for PyInstaller and Nuitka, helping you package Python projects as Windows executables without memorising a small novel of command-line options.
Read more and download Accessible Python Executable Builder.
JSON Editor
An accessible editor that turns JSON into an explorable tree while also providing raw and formatted views.
Read more and download the JSON Editor.
Legacy developer resources
Older BGT scripts and utilities are preserved for people maintaining existing projects. They are legacy resources rather than recommendations for starting new software.
View legacy developer resources.
External resources
Developer Central aims to explain the concepts, not replace the official documentation. These are useful places to continue when you need the full technical detail.
Image Description