Which development ecosystem to choose?

dark room with computers

Last week, I shared my one-year plan to become a remote & freelance developer. I ended my post saying that the next step for me would be to choose a development ecosystem to focus on.

Today, being a “software developer” doesn’t say much about what kind of work one is really doing. The daily work of someone coding the behaviour of a factory robot or a flying drone looks nothing like the daily routine of a mobile app developer working in the banking industry. The tools and languages used are very different, as well as the constraints and the skills required. Actually, there exists almost as many different kinds of developer jobs as there are developers!

Moreover, each development ecosystem requires a lot of work and focus to be mastered. There used to be a time when it was possible to be a “jack of all trades”. But  today, at the speed at which the software industry is evolving, it is simply impossible to keep up with all the domains. For instance, the code written in the C language to pilot a drone can really look like chinese to a front-end web developer who’s never worked with embedded systems, and vice-versa (of course, if you’re chinese, then I should say that it reads like french ^^).

That’s why I knew I had to focus on one ecosystem, at least to start my career in software development. But which?

During my studies and various internships, I mostly focused on back-end focused languages, such as C++ and Java. I actually never wrote a single line of code related to front-end web technologies (i.e. HTML, CSS and JavaScript) during my 5 years at university. The truth is, I had the feeling that “web developers” were not considered as real engineers by my teachers, and this feeling contaminated me. I thought very condescendingly that I would leave this kind of work to people “less qualified”.

The main reason for this feeling is that for a very long time JavaScript was mainly used to do some cute and simple animations on a web pages, like adding animated snowflakes around Christmas time or dynamic clocks that told the time in the status bar. That’s why sofware engineers didn’t pay much attention to that language, and didn’t even consider it as a real programming language. But in recent years, something remarkable happened on the web. Companies like Google started to release complex and interactive web applications like Google Maps. Moving a map around with our mouse, zooming in and out and making server requests without reloading the page seemed like magic. And it was all done with JavaScript!

And with the cloud, more and more traditional software companies were moving their applications to the web, providing what is now called SaaS solutions (Software as a Service), relying on complex use of JavaScript.

JavaScript was becoming ubiquitous, was now working on the front-end and the back-end (with NodeJS), and seemed to have a very bright future.

These arguments were enough for me to decide to focus on the JavaScript language. Moreover, it was the language I played with when I used to put in 2 hours a week to keep some coding skills alive, and I really enjoyed it.

Choosing a language was not enough. JavaScript’s ecosystem is famous for providing a multitude of options: tools, libraries, frameworks, etc. And each of these takes some time to master. Today, you won’t find many “JavaScript developers” on the market. Instead, you’ll find “AngularJS” or “ReactJS” or “MEAN stack” developers. But what these tools have in common is that they all require a good mastery of the JavaScript language (which has grown pretty complex with time). And the more one masters the fundamentals, the easier it is then to pick new tools.

I thus decided to start by focusing on the web fundamentals: HTML-CSS-JS, and worry later about more specific tools to use. Since I never really worked with them, I was a complete newbie and had to start almost from scratch (which was both a refreshing and humbling experience).

But I knew that by putting 10 hours a week consistently, I would be able to build my coding muscles one challenge at a time.

I now had a basic high-level idea of where I wanted to go, but no idea where to start in practice…

So what did I do next to convert these plans into action?

As usual, thank you for reading and stay tuned!

2 Replies to “Which development ecosystem to choose?”

Leave a Reply