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.
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.
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.
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.
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).
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.
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.
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.
From question and answer to chat programs, the below are great ways to connect with your fellow coders.
Stack 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. Registered users collect 'karma' by participating, and can subsequently up- or down-vote answers by other users, leave comments and edit content in a wiki-style fashion.
GitHub is a web-based hosting service for projects that use the Git revision control system. It is written in Ruby on Rails by Logical Awesome developers Chris Wanstrath, PJ Hyett, and Tom Preston-Werner. GitHub offers both commercial plans and free accounts for open source projects.
The site provides social networking functionality like feeds, followers and the network graph to display how developers work on their versions of a repository.
GitHub also operates a pastebin-style site at gist.github.com, wikis for the individual repositories and web pages that can be edited through a git repository.
GitHub has a built-in, highly functional Issue Tracker.
Gitter is a chat and collaboration tool for developers and users. It's a place for developers to talk.
- Unlimited public chat rooms for free
- Unlimited and searchable chat history
- Unlimited integrations
- Private chat rooms free up to 25 users
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.
The 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.
CodeLine is a great IDE for developing in C, C++, and PHP for folks looking to deal with the less cool, but still incredibly useful languages. This is a free tool that works great with all three.
Coding assistance The IDE analyzes your code, looking for connections between symbols, to provide code completion, quick navigation, clever error analysis, formatting, and refactorings.
Ergonomic design Together, powerful static code analysis and ergonomic design make development not only productive but also an enjoyable experience.
Integrated tools Mission-critical tools such as rest-runner, coverage tool, full-featured debugger and version control integration are at hand — no plugin hustle included.
IntelliJ plugin ecosystem In case you need anything in addition to the already rich set of built-in tools, the IntelliJ plugin ecosystem is there to help you.
LiteIDE is a simple, open source, cross-platform Go IDE.
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.
XCode 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).
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
Notepad++ 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.
Similar 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.
It'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.
The ideal text editor for the system administrator, not so great for coding unless you are comfortable with the command line.
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!
The gold standard in learning to code. It's not free, but definitely has great courses.
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.
Udacity 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.
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.
This 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.
For tutorials, you will have to do some digging, but there are quite a few channels that are golden for learning on the fly.