Why learn anything new?

In the world of software development, a new tool, language, or version releases constantly. The ability to be agile in an Agile environment is crucial. One day you may be writing in Java and the next day in Ruby. There are many different approaches to stay up-to-date or learn something new. Things like open-source projects, free tools, training websites, and user groups are available to anyone who wants to learn.

Let's build a base!

Just about every tool or language has a documentation section: Oracle, Node, Spring, etc. These documents can give the user a solid base of understanding. Most of the main tools used in coding have a simple programming example that consists of the "Hello World!" function. A good practice to increase knowledge of whichever tool you want to use is to implement a few different projects using the examples.

Creating a list of 10 simple projects to code in every language can be very helpful to getting your initial understanding to a certain level.

Free? Don't mind if I do.

There are many different types of technologies out there, and thankfully there are a few that offer a significant amount of training for free. From databases, to websites, to going back to school, there are a lot of choices for learning.

  • MongoDB offers their training classes for free, from simple command line interactions without a client to advanced deployment, including replicated database servers.
  • w3Schools is a great tool for web developers learning new skills or brushing up on a topic. Many different topics are available for learning.
  • edX is a site which offers free courses from select schools. This site has an entire section dedicated to Computer Science.

Open things up a little

The shift towards open-source projects has granted users the ability to analyze working code. This gives people the opportunity to see an actual, functional application. By contributing to open-source projects, you can get a better understanding of the code. GitHub offers a section dedicated to users who want to look through or contribute to source code. If a developer wants to follow and contribute to a popular repository, the trending section gives them those projects. The explore section offers a list of different projects, allowing users to investigate other coding projects until they find one that intrigues them.

How good am I?

If a software developer wants to take a more hands-on approach to learning, there are multiple websites that contain rankings. All of these are free as well!

  • CodingBat offers multiple language support with increasingly difficult problems to solve. Codingbat also has solutions available, with easy-to-follow steps that can help you achieve the most efficient answer.
  • HackerRank offers a more competitive approach to learning multiple languages and skills. Most problems you solve have a point value associated, which is reflected and updated on your profile. Companies can then search the rankings for potential candidates.
  • Project Euler is a site offering a large list of problems. They also keep track of how many people have solve each particular problem. This site leans towards mathematical problems solved with computer programming.

The World Wide Web is your oyster

There are, of course, many more sites for continued learning. A simple Google search will easily reveal plenty of good options. Good use of a search is a weapon to be honed. If you don't see a site that you know and love listed here, please leave a comment with the web address and a quick message about why you like the site!