Mischa Spiegelmock edited this page Mar 12, 2018 · 34 revisions

Creating software is a discipline with many facets and areas of specialization. Learning to program is a good start, but not the only thing you need to be familiar with.

Important Background

Read this stuff first, so you have some idea of what your code is actually doing. This information is not directly applicable, but is important for a solid understanding of the connection between the abstract concepts you deal with and the underlying technology you are manipulating.


You should probably be using a UNIX-style system for development. In practice this means OSX or Linux. Most open-source software is designed for a UNIX-like environment and virtually all hosting is done on linux. Yes some people are still using windows but we're going to pretend they don't exist. If you're on a windows computer, you can run Linux in a virtual machine or install it.

Computing from the Bottom Up - An amazing resource covering the entire underlying system of computing for beginners. Goes from the lowest-level simple pieces up to more complex, explaining each layer of abstraction. A perfect way to get a proper feel for the way computer systems are put together. Written in plain English for people that know nothing about how software works.

What's next?

Some sample project ideas to get you started.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.