Learning new tools by implementing the same project using different languages/frameworks.

by Joe Jean | on Mar 30, 2016 | under: Programming


I’m always looking for ways to improve my technical skills. And one thing that I hear a lot as advice to software developers is to keep trying new tools and frameworks. So, I have decided to try a couple of languages/frameworks that I either have never used before or have little experience with. The best way for me to do that is by building the same application using those different languages/frameworks.

So far, I have selected the following tools:

  1. C/kore.io
  2. Go
  3. Racket
  4. PHP/Laravel
  5. Java/Spring
  6. Ruby/Rails

The project will be a web application displaying beautiful pictures of Haiti. It will be a place for people to share and view beautiful pictures of beautiful places in Haiti. As this is a toy project, I’m intentionally keeping it simple feature wise. Users will be able to login with Facebook and upload pictures. Once uploaded the picture will be available for viewing by anyone including non-authenticated users. The uploader can add multiple tags to a picture. Users will also be able to like, dislike a picture; to do that they will need to be logged in as well.

In order to be able to focus entirely on the language/framework that I’m trying to learn via the backend implementation, I’m currently building a frontend template using Knockout.js and Bootstrap 4. Then, I will just use that template in all of the versions of the project regardless of the technology that I will be using for the backend. Once the frontend is built, I will just need to focus on the backend work which is where I will get to really learn the new technology.

Since I'm currently busy working on my Capstone Project, I haven't given myself any specific timeline to complete this. Istead I have decided to commit at least 30 minutes a day to this project. As John Resig has mentioned here, working on a side project everyday even for just an hour is better than working on it over weekends for long hours.

I’m very excited about this new journey and I hope to learn a lot. I will do my best to keep you updated on the overall experience all the cool stuff that I will be learning.


© 2014-