xenmaster's learn-how-to-code tools

Python is a great beginner language that can do many things from task automation, website backend engineering, and programming for embedded systems. It more or less does a lot of what C does, but sits on top of it so you don't have to muck around in the convoluted world of a lower-level programming language.
Learn this if you don't know what you really want to do, but are interested in a general purpose language that has many applications and is easy to learn.
License model
- Free • Open Source
Application type
Platforms
- Mac
- Windows
- Linux
- Symbian S60
- BSD
- AROS
- Haiku
- AmigaOS
- OpenSolaris
- MorphOS
Languages
Pick one and start learning!
A good language to learn if you have no idea what programming is, but would like to learn something about it. This program was originally developed to teach children how to think like programmers, but there's no reason it won't help the novice do the same! Learn the basics and then move on to something useful below.
License model
- Free • Open Source
Application types
Platforms
- Mac
- Windows
- Linux
- Online
A superb language if you are interested in learning how to program for the web. JavaScript has it all and is growing bigger every day. It has implementations for the front end, the back-end (using NodeJS), mobile (React Native and Native Script) and for building desktop apps (Electron).
Learn this if you enjoy the idea of pulling your hair out trying to get the development environment to work right (and keeping up with the 200 javascript frameworks and tools out there).
License model
- Free • Open Source
Application type
Platforms
- Mac
- Windows
- Linux
- Online
- Android
- iPhone
- Chrome OS
- BSD
- iPad
- AROS
- Haiku
Java is a powerhouse programming language that has been used for building cross-platform systems that will run on anything. Everything from desktop, server, web, and mobile applications (for android) can be made with Java.
Learn this if you want to make money and be able to get a job pretty much anywhere.
License model
- Free Personal • Open Source
Application type
Platforms
- Mac
- Windows
- Linux
- Online
- Android
- Java Mobile
- Symbian S60
- HP webOS
- Blackberry
- Android Tablet
- BSD
- Blackberry 10
- Kindle Fire
C# is a hip new language that is used for building anything from websites using .net and games using Unity.
Learn this if you are willing to sell out to Microsoft in exchange for a great tool to build games and websites on Microsoft's infrastructure.
The lower level beast of a language, anything you write with this will run quickly and with precision - if you can avoid the pitfalls related to using a lower level language.
Learn this language if you want to work with system drivers, embedded devices, or if you want to develop software that runs fast.
License model
- Free • Open Source
Application type
Platforms
- Mac
- Windows
- Linux
- BSD
- Self-Hosted
Just as python take the pain out of using C, Kotlin was designed to remove the friction of learning Java to develop Android apps. It's also finding a home in the data analtytics space too!
Learn this if you want to build your own apps for Android, but not really if you want to work for a company that already has an established Android presence (unless they feel like rewriting their code).
License model
- Free • Open Source
Application types
Platforms
- Mac
- Windows
- Linux
- Online
Similar to Kotlin, Swift is used for developing mobile apps, except this language is specifically geared to use for developing iPhone apps.
Learn this if you want to make more $$$ on the most consumer software platform out there.
License model
- Free • Open Source
Application types
Platforms
- Mac
- Windows
- Linux
Go is a language invented by google that is meant to reinvent the C++ language in an easy to learn fashion. It also happens to be highly opinionated, making it a lot easier for open source project contributors to all remain on the same page, which is why projects like Docker, Kubernetes, Ethereum, and TensorFlow all rely on Google's Golang. This language is also used with the Buffalo toolset for back-end web programming, which results in a compiled binary capable of executing tasks a lot faster than interpreted languages and without the need for managing dependencies.
Learn this if you are looking for an easy language to learn that is supporting a lot of high paying jobs or opening up an open source project.
License model
- Free • Open Source
Application type
Platforms
- Mac
- Windows
- Linux
- BSD
- Self-Hosted
- Go (Programming Language)
PHP is a scripting language originally designed for doing backend work for the web. It's been falling out of favor lately, but many sites in existence today are still running on PHP and so are many content management systems out there, like Wordpress for example.
Learn this if you enjoy working with something old and ugly that lots of folks are still using.
Community Resources
From question and answer to chat programs, the below are great ways to connect with your fellow coders.
Stack Exchange is a fast-growing network of 84 [and counting] question and answer sites on diverse topics from software programming to cooking to photography and gaming. We are an expert knowledge exchange: a place where physics researchers can ask each other about quantum...
+7Stack Overflow, part of
Stack Exchange, is a free, community-driven, reputation-based Q & A site for computer programmers. No membership is required to ask questions or provide answers to questions by others.
Web-based Git hosting service facilitating collaboration, with features like issue tracking, social networking, and wikis for project management.
License model
- Freemium • Proprietary
Application types
Platforms
- Mac
- Windows
- Online
- Android
- iPhone
- Android Tablet
- iPad
+6Gitter is a chat and collaboration tool for developers and users. It's a place for developers to talk.
License model
- Free • Open Source
Application type
Platforms
- Mac
- Windows
- Linux
- Online
- Android
- iPhone
- Android Tablet
- iPad
Integrated Development Environments (IDEs)
Eclipse is primarily a Java IDE, but it can be modified with plugins to accomodate any language. It also happens to be free and open source.
While this platform works with many languages, it's ideal use case is C# and the Mono environment. It's free for personal use and while the professional version is considerably more expensive, it has everything you need for both development and deployment to the Microsoft Azure cloud environment.
There is also another version called MonoDevelop that is a bit unpredicable on non-Windows systems, but still a good get since it's free.
License model
- Free Personal • Proprietary
Application types
Platforms
- Windows
- Online
- .NET Framework
+5If you are a Javascript developer, this IDE comes with everything you need to develop for both frontend and backend in Javascript.
+3The ideal Python IDE, it has all the bells and whistles when dealing with Python code. There is a community edition and a professional one that comes with added functionality. If you are serious about Python, spring for the full version, it's worth it!
For those using Python for data analytics, check out Jupyter, which is a different IDE that specializes in this discipline.
Android Studio is the official development platform for Android and accommodates both Java and Kotlin programming languages. It has excellent documentation and tutorials abound for how to use this platform.
License model
- Free • Open Source
Application types
Platforms
- Mac
- Windows
- Linux
- Chrome OS
+2XCode is the go to tool for developing software for iPhone using either Swift or Objective-C, Swift's older and more clunky cousin. This is also a free tool for anyone who has a Mac (unfortunately it doesn't run on anything else).
Text editors
While many of these tools can be extended with plugins, the primary use case for these systems is editing text.
A free, open source, and very powerful text editor specifically geared toward the windows platform. It has code highlighting and multiple modes for editing code depending on what you are
License model
- Free • Open Source
Application types
Platforms
- Windows
- PortableApps.com
+10Notepad++ has a brother that works on Linux and this is it! I've found it actually have more language formatting options than Notepad++ and can be found on many linux distributions' repositories. Also works as a snap package if you are on Ubuntu.
This is an electron app that is cross platform and is ideal for those people who work in multipane windows writing code. This also has an extensive plugin ecosystem that can be used to extend the use of the tool.
License model
- Free Personal • Open Source
Application types
Platforms
- Mac
- Windows
- Linux
- Chrome OS
- BSD
- Electron / Atom Shell
+2Similar to the above, but with an even bigger ecosystem of plugins and the backing of one of the biggest names in tech, Visual Studio Code is different from Visual Studio, but still a very popular option. It basically can be used to work with any language mentioned on this list, and a few of the weird ones that aren't.
License model
- Free • Proprietary
Application types
Platforms
- Mac
- Windows
- Linux
- Online
- Chrome OS
+2It's not free, but it is available on every platform and is profesionally maintained and fully capable of dealing with just about anything you throw at it, Sublime Text is the go-to tool for many professsional developers.
+2The ideal text editor for the system administrator, not so great for coding unless you are comfortable with the command line.
License model
- Free • Open Source
Application types
Platforms
- Mac
- Windows
- Linux
- BSD
- Haiku
- AmigaOS
- OpenSolaris
- MorphOS
- Flathub
- Flatpak
- Snapcraft
Learning Resources
Each of the items here has a different use case
This is more of a repository of learning resources for people who want to learn about a particular technology. Just pick which language or tool you want to learn about and this site will point you in the right direction!
License model
- Free • Proprietary
Platforms
- Online
- Android
- iPhone
License model
- Freemium • Proprietary
Application types
Platforms
- Online
Similar to the above, you learn a lot in the courses that are available. They aren't cheap, but there are frequent sales, especially around the holidays that make it worthwhile.
License model
- Paid • Proprietary
Application types
Platforms
- Online
- Android
- iPhone
- Android Tablet
- iPad
+4Udacity is trusted by many professionals as a way to get a bonafide learning experience dealing with technology. Unlike the a la carte courses above, Udacity has learning programs called NanoDegrees geared towards getting you knoledgable in a particular area that recruiters and employers will recognise.
Khan Academy is a free resource for learning many things, including the basics around the math and computer science basics that can turn you from a decent code to a great engineer.
License model
- Free • Proprietary
Application types
Platforms
- Online
- Android
- iPhone
- Android Tablet
- iPad
For folks working with web technologies, this is the #1 resource. It's basically like W3Schools, but better and has very detailed documentation about pretty much everything having to do with the frontend web development world.
+1This is a great resource for tutorials, books, and articles about what's what in the web development world.
Enjoy the best tech conference videos, webinars and tutorials and share it with friends, colleagues, and the world.
License model
- Free • Open Source
Application types
Platforms
- Online
For tutorials, you will have to do some digging, but there are quite a few channels that are golden for learning on the fly.
License model
- Freemium • Proprietary
Application types
Platforms
- Online
- Android
- iPhone
- Chrome OS
- Android Tablet
- iPad
- Apple TV
- KaiOS
- Fire TV
- Nintendo Switch
- Xbox
+10