Coding takes time and practice. Here I recommend some online sources aimed at helping a beginner get better at software development.

Learn

I love the W3 Schools site. It often comes up in Google results and I want to spend more time browsing the site.

It covers:

  • Tutorials
  • Reference
  • Examples
  • Exercises

Mostly around HTML/CSS/JavaScript, but they also handle JS frameworks, Python, Java and more.

For the frontend side, the tutorials often have editable examples to demo HTML/JS/CSS behavior in your browser. For example, how to make an accordion, a menu sidebar or animate an image gallery.

Code challenges

You can find code challenges as algorithms to solve here - I liked Leetcode but there are plenty on the list.

Top 10 Most popular coding challenge websites of 2016

What to build

I recommend that you install and use the Programming Ideas 2 app on PlayStore.

Regardless of your choice of scripting language, you can enjoy this app as it is outlines the concepts and you figured out how to code it. Even if you just think through it or write it down on paper, this is a great exercise in exercising your creativity and logic.

You can find something to test your skills in a language and build something fun and useful such as:

  • Number calculator
  • To-do app
  • Factorial solver
  • Fibonacci solver
  • High-performance multi-threaded application like a web server or web scraper

Limiting yourself to a well-defined or well-known problem can let you focus more on the logic and writing code than on figuring out the real-world behavior. But of course if you like an application that you make, you can take it further to make it public and production-ready.

Write down a couple of ideas from the app. Make some notes in Trello or a notebook so when you are itching to build something, you have a list ideas to draw on.

For a focus on more real-world applications, see Most common applications to build with Ruby. If you build with JavaScript or Python, you’ll find these are common projects to build too.

  • Web application
  • E-commerce
  • CMS
  • Custom Database Solutions
  • Prototyping