How I decided which languages to use for my tech startup
Tags: startup, python, javascript
Published: 2021-11-08 23:18:30

This is article numero dos (that means number 2) in the series about starting [Arbington.com](https://arbington.com/). 

**Lets talk about how I decided which languages to use at [my startup](https://arbington.com/)**. 

## What it boils down to...

Simplicity. Efficiency. Community support. And.. do I know it?

It all boils down to these four things. And most startups probably say this, I get it. I ain't _that_ unique :P 

## Simplicity 

Which language is the easiest to read, write and learn? 

Python. 

Even if you disagree, it's Python. Like, it's just a fact of programming. 

I need code to not become a crazy nest of curly brackets. Something I can hack away at and it maintains it's cleanliness (to some degree). 

It's easy for future developers to pick up and learn quickly, and easy to read through to understand the business logic. 

Plus, there are a lot of Python developers so I'll never be worried about finding a developer (it's the worlds most popular language, officially). 

And! It has an insane ecosystem of packages that lets you install awesome tools super fast. Need to make an API request? Use `requests`. Need to parse HTML? Use BeautifulSoup4. This kind of "need _x_, use _y_" pattern goes on for AGES. 

## Efficiency 

Python is relatively fast. As is JavaScript. Both of which I use **A LOT**. 

Are they the fastest out there? Heck no. But they are well supported, popular, and _fast enough_ for what I need. 

## Community support 

I touched on this a little in the `Simplicity` section. But having access to packages, libraries and frameworks is very important. 

Don't reinvent the wheel. 

And when you inevitably have questions, are there a sufficient amount of answers available on the web? 

Python ✔️ 
JavaScript ✔️ 

## Do I know it? 

This is the most important part, to be honest. 

Build using languages you know. Don't learn a programming language just to build something new. That's how you write unmaintainable code. 

So, I built using what I know. But I also know other languages, so I also chose what was simple and easy for future developers to pick up after me. 

## Why is this important to you? 

You're going to see lots of companies showing off their tech stacks and you'll be pulled in 100 different directions with no idea what to learn. 

Pick a language, learn it, then apply for those jobs (if you're looking for a job). You can't be the perfect dev for every company, ever. Just do what you can, and see which jobs exist for you. 

## So what languages (and other things) do we use? 

Remember the above because I'm going to blow your mind with one of these. 

Here is what we use: 
* HTML/CSS/JavaScript (because that's what 100% of all websites use) 
* jQuery. Not React.js. React is awesome! But it's slow to code when your company is moving at the speed of light. Told you - mind blown yet!?
* Tailwind CSS. It's awesome once you learn about it and how it works. Truly, it's powerful. We wrote like 50 lines of custom CSS, the rest is all in the `class=""` attribute. 
* Python. Because it's powerful, simple, etc. 
* Django. It's a batteries included framework that lets you get a lot done with very little code, and it's super secure (and open source!) 
* PostgresQL. Just needed a database, and Postgres is a world class database and it's also the one Django devs prefer. 

Yes, we use jQuery. Why? It's simple, we know it inside and out, it's fast to develop with and the barrier to entry is incredibly low. And it's a wee bit less typing than vanilla JS with cross browser compatibility. But we'll eventually move to something else like Vue or React, I'm sure. 

## Where to learn all the coding things

If you're looking for an awesome place to learn how to code, definitely take a look at [Arbington.com](https://arbington.com) - start with 14 free days, then it's only $15/month for HUNDREDS of coding courses. 

In the next article I'll highlight which frameworks and libraries we use, and why.