I love building things for the web. I love writing code. I love turning ideas into things. I love learning new things and being able to apply them in a practical manner. Being proud of your work and passionate for what you do is a wonderful feeling.

A few years ago I didn’t know how to write a single line of code, I wasn’t happy with my career, and I wanted to build things out of ideas I had. It’s a terrible feeling wanting to create and turn ideas into things but not having the knowledge to do so. I therefore set out to aquire the knowledge I needed to make this happen. For the first few months of learning software development, I was in a constant state of discomfort. Learning something new and non-trivial can feel messy and can frequently cause feelings of doubt when things get hard. Looking back, I learned that stepping outside of your comfort zone is necessary to learn new things; it’s all part of the process. I now have the necessary knowledge to transmute ideas into things through software development, and this was only made possible by stepping outside of my comfort zone until it expanded.

Reflecting on this recently, I’ve realized something really scary. I have’t stepped outside of my comfort zone in a long time! I began writing software professionally, got a cushy job, and got too “busy” to make things out of all those ideas I once had. I don’t feel like I’ve been pushing myself outside of my comfort zone to turn my ideas into things and consequently become a better software developer. So I have decided to start doing just that.

What I Plan To Do

I’ve started rebuilding a PHP application as an AngularJS client app that will consume a JSON API built in Rails. This PHP app was built by a friend of mine a few years ago and it allows mobile app developers and people who are looking for contractors to connect with each other. After a few conversations, I’ve decided to take on this project because it’ll push me outside of my comfort zone and provide a great learning opportunity.

The Project

There are currently a little less than 600 profiles created by mobile app developers on the site. However, not all the profiles are yet viewable. In order for a profile to become viewable, it must be accepted by an administrator of the site in order to maintain a standard of quality among the profiles listed. The problem is that the admin interface only provides a list of all the profiles and doesn’t provide the ability to filter between already accepted profiles and those that are still up for review. With close to 600 profiles, searching through all the profiles that haven’t been accepted can quickly become a nightmare. I’ve therefore decided to start out by rebuilding the admin interface and simply re-routing an admin to the new AngularJS app.

My Objectives

My objectives with stepping out of my comfort zone and taking on this project are:

  • Familiarize myself with PHP code
  • Learn the AngularJS framework
  • Improve my Javascript skills
  • Learn best practices for dealing with CORS related issues
  • Learn best practices for authentication when consuming an API from a client side app
  • Deploying a Rails API and AngularJS app to DigitalOcean
  • Containerizing dependencies in Docker containers
  • Marketing: Learn online marketing principles to attract new users

Conclusion

It’s easy to get comfortable with what you know and not attempt to learn new things. Stepping out of your comfort zone can be scary, bring feelings of self-doubt, and cause stress. But your comfort zone will never expand unless you step outside of it. It’s important to manage your comfort levels regularly to improve both professionaly and personally. I’ve decided to take another step forward.

What are you going to do today to step outside your comfort zone?