If you want to move fast, use the tools you’re most comfortable with!

Gabriel C. Troia
4 min readFeb 16, 2022

You’re a software dev that is about to start a new project. Everything’s cool, you’re pretty excited about the opportunities and all the good things that’ll come out of it but before you begin you’re faced with the old-time dilemma:

Should I build it in the old but boring (😑) tech stack I’m already so familiar with or should I try something new (🤩)?

TLDR; Focus on learning if you have the time and interest. On deliverability if you want to bring your idea to the world asap, or do both by staying in the 80–20 healthy ratio.

Longer version:

You already know some React or Vue, a bit of Express and even played with Typescript, but you’ve heard that Python or Ruby are in demand nowadays, and now you don’t know what path to take?

I think this is a valid question software developers should ask themselves, but it always boils down to 2 things mainly: delivering vs learning.

So to put it simpler ask yourself:

What do I want my ROI on this project to be?

1. Knowledge Expansion, Self Actualization, Learning.

You might have more time than usual on your hands for this project or you’re not too interested in delivering something right away or at all, or you’ve heard X language could be better at this type of project in the long run.

Then by all means go the route of learning something new. I might even suggest that if you are already proficient in languages like Javascript or Typescript for example, not only to learn another one such as Python or Ruby (which are pretty similar btw) but go further and learn about a different paradigm altogether such as Functional Programming in languages like OCaml, Clojure or Elm-lang (this one is really fun).

Or if you’re already comfortable with that then play with some IOT and low level programming like C or C++.

Get your hands dirty with some Rust and get really familiar with the intricacies on ownership and memory management of a modern type system.

Heck, pick up Gang Of Four and dive into some new (old) Design Patterns or a Fowler book and go deeper into Architectural ones.

Anything new you learn, make sure it’s exciting, relevant and helps with your (secondary) goal of delivering a project at some point.

I used to take this path a lot in my early days, and although I’ve learned a lot thanks to it, I also found myself burning the night oil many a times, which later on translated into some mental-health issues stemming from insomnia and anxiety so make sure you are conscious and intentional about this decision!

2. I want to put my idea in front of other people asap.

If this is the case then your job is pretty straightforward, and although could seem a bit boring while you’re building it, don’t fret too much as there as so many other domains you can learn about.

And especially in this case, since your goal is to see if there are enough users that find your idea useful, you will need to develop those entrepreneurial skills anyway. It’s quite a fantasy, that I’ve been (still am?🤔) guilty of believing in as well, that “You’ll build it and they will come”, because it so rarely happens.

More often than not, you’ll build it and while that is great in itself, no one will actually come. Or at least not without you doing something about it. In order for the users to come you need to promote it somewhere (marketing skills), you need to demo it to some people (pitching/public speaking), you need to make it visually appealing (design), to eventually sell it (sales), or if not to hire someone who can do some or all of these steps (talent recruitment and resource management/financial skills).

So, my advice here is: don’t worry if it seems dawning at first to mechanically type code on the screen without too much excitement. There are always new things to learn and get excited or frustrated about :)

3. A combination of both

This is probably my favorite because it’s a mix of both, and as long as I keep a healthy balance between delivering and learning, things should be pretty smooth. At the end of the day what I’m looking for, is a bit of a challenge, and to feel that I’m curious and excited enough to keep going. Learning something new definitely achieves that for me, but so is the thought of deploying something that the world hasn’t seen yet 😁.

So I try to keep it at a healthy rate of 80–20 / 70–30 of using what I already know vs learning something new just for the sake of it, and get the best of both worlds!

What is you approach when it comes to this dilemma?

Also, to be fully transparent I want to build more in public, and I’m learning and trying things on Twitter. If you find me there, please give me some much needed feedback! :)

--

--