Wondering what language to learn?
Here's a thread of pros and cons for learning some of the most common languages
![Blaues Herz π](https://abs.twimg.com/emoji/v2/72x72/1f499.png)
Javascript
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Lots of jobs in JS
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Huge community
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Versatile - client-side, server-side (node), mobile (React Native), desktop (Electron)
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Vanilla JS is unlikely enough to get a job anymore
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Arguably not a great language for understanding comp sci foundations
![Blaues Herz π](https://abs.twimg.com/emoji/v2/72x72/1f499.png)
Python
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Easy to learn
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Extensive set of libraries
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Popular language with big community
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Takes longer to develop big applications
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Cannot build web apps or mobile apps on its own
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Will most likely require experience in another language for a job
![Blaues Herz π](https://abs.twimg.com/emoji/v2/72x72/1f499.png)
Java
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Popular in big applications from large corporations
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Portable - "Write once, run anywhere"
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Android apps
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Not ideal to run on the cloud
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Not commonly used in startups
![Blaues Herz π](https://abs.twimg.com/emoji/v2/72x72/1f499.png)
C#
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Popular in big applications from large corporations
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Fully integrated with .NET framework
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Go-to language for Microsoft/Windows app development
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Difficult to learn
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Not commonly used in startups
![Blaues Herz π](https://abs.twimg.com/emoji/v2/72x72/1f499.png)
PHP
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Still popular, especially in legacy codebases
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Commonly used for content-based websites (Facebook, Wordpress, etc)
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Big community
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Continuously dropping in popularity
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Difficult to become an expert
![Blaues Herz π](https://abs.twimg.com/emoji/v2/72x72/1f499.png)
Ruby
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Easy to learn
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Can learn Ruby on Rails, which is a great framework
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Extensive set of libraries
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Dropping in popularity
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Ruby on Rails is slow to start
![Blaues Herz π](https://abs.twimg.com/emoji/v2/72x72/1f499.png)
Go
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Growing in popularity
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Good for processing large amounts of data
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Easy to read and learn
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Only really popular in Silicon Valley
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
No native support for GUIs
![Blaues Herz π](https://abs.twimg.com/emoji/v2/72x72/1f499.png)
R
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Used for statistical analysis and machine learning
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Growing in popularity
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Vocational language
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Not many jobs in R right now
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Not a huge community
![Blaues Herz π](https://abs.twimg.com/emoji/v2/72x72/1f499.png)
C++
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Great for a first language (as well as C), providing good comp sci knowledge foundations
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Large set of libraries and compilers
![Thumbs up π](https://abs.twimg.com/emoji/v2/72x72/1f44d.png)
Used in game development
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Difficult to learn
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Does not support run-time checking
![Thumbs down π](https://abs.twimg.com/emoji/v2/72x72/1f44e.png)
Not as popular as other languages
This is not an exhaustive list! These are only some of the most popular languages according to Stack Overflow. There are many other languages that you might want to learn, like Swift, Perl, or Rust.
Remember the most important thing about learning to code is not about the language you choose. Changing languages is easy.
Just start somewhere - ANYWHERE. You are never stuck in a specific technology.
I hope this list can help people who are finding it difficult to know where to start. Now you have no excuses
![Zwinkerndes Gesicht π](https://abs.twimg.com/emoji/v2/72x72/1f609.png)
Good luck!
Tip: mention @twtextapp on a Twitter thread with the keyword βunrollβ to get a link to it.