DEV Community

loading...

Which programming language would you start with and why?

bobbyiliev profile image Bobby Iliev ・1 min read

Hi all 👋

If you were just getting started with coding now, which programming language would you pick?

Here is a list of the most popular programming languages according to GitHub for Q4 in 2020:

Most popular programming languages 2020

I started a Twitter poll, so feel free to vote here as well!

Discussion (37)

pic
Editor guide
Collapse
raphael_jambalos profile image
Raphael Jambalos

I'll start with Python because of its versatility. It can be used in

  • web development
  • data science
  • scripting
  • etc

It's also easy to learn and will help you get started with the OOP concepts quicker.

Collapse
bobbyiliev profile image
Bobby Iliev Author

Very good point! I love it!

Collapse
darkain profile image
Vincent Milum Jr

This question comes up a ton, but I personally think it is misdirected.

It shouldn't be based on popularity. It shouldn't be based on what a peer enjoys using.

What should it be based on?

Well, first off, what is the problem domain? Figure that out first and foremost. Understand the problem domain as best as possible. Then and ONLY then, figure out which tools are best served to address that problem domain.

For reference, I'm saying this as someone who's worked with 50+ languages over 20+ years. I have my personal favorites, but they're married very closely to my problem domains, so that makes sense. Others have languages they love/hate too, and its generally related to what is best suited for their problem domains.

Collapse
natescode profile image
Nate

Agreed. First language should generally fit the following criteria.

  1. Plenty of learning material (strongly correlated with popularity but I learned to program my TI-84 just from the manual).
  2. Low barrier to entry: don’t need to download SDKs set environment variables etc.
  3. Be able to build what you’re initially interested in building.

Generally JavaScript fits this criteria the best. Though I have a strong preference for strongly typed languages myself.

Collapse
u8nc profile image
MiAn

I was about to re-phrase your response into another version of the original question: "What language of the 50 you have used, solved more of the problems than others?"
But then I realised the error of putting things that way because that would be imprinting a solution not appropriate for the task just based on that 50? What do we do for case 51 boss?

When we implement a language we are bringing into being the perceptions of the person that created the language, who did so for a purpose presumably because nothing was in existence at the time.

But has someone else since addressed a core concern of management level types ? and that quite like would included this: "Is this code solution able to be understood by new or replacement staff in the future, with the orginal coder no longer present?" So eventually Language creators try to accommodate that aspect and make their language cover as many cases as possible in an attempt to make it universal in it's ability to solve.

Sometimes I wonder if they are 'universalising' our perceptions instead with smoke and mirrors on the task at hand to accept their offering. The real first tool to reach for might well be some literary work that engages critical thinking in us.

I wouldn't like my mechanic to service my car with just a few tools. They may cite their skill is so high they can fix anything with a roll of barbed wire and pliers. I think you'd be politely saying good by to that workshop.

I love using Forth, the RPN nature of it alone puts my mind into a relaxed state. From there I might see something in the problem that represents my perception of how to use leadership to bring the outside world to effective and productive satisfaction. But I would not foist it upon the people who contracted me, so I have to find a language that translates my perception faithfully into what it does, and submit my account.

And therein the original question rears it's head. "which one"?

Collapse
bobbyiliev profile image
Bobby Iliev Author

Very well said! I wish more people could read your comment!

Collapse
yoursunny profile image
Junxiao Shi

If I'm a freshman taking my first programming class, I want it to be Rust.
It's strongly typed, has no memory leaks, and easy to get started.

(I haven't actually learned much of Rust but I know the basics)

Collapse
rishitkhandelwal profile image
Rishit Khandelwal

Rust is amazing

Collapse
bobbyiliev profile image
Bobby Iliev Author

Nice! This makes me want to try out Rust!

Collapse
phantas0s profile image
Matthieu Cneude • Edited

I would say Golang.

  1. It's pretty simple because it's opinionated. See below.
  2. It has a C-like syntax, it's easier to learn another language based on C afterward.
  3. It's quite trendy and there is a big community out there.
  4. It's fast.
  5. The tooling is awesome. Learning a programming language is not enough; knowing how to use the tools can be a pain.
  6. It's opinionated, which means that you have often only one way to do something. I think it's great for beginners.
Collapse
bobbyiliev profile image
Bobby Iliev Author

I've been wanting to try out Golang for a while now! And now I've bought a Udemy course after reading your comment :D

Collapse
gaesrare profile image
Gabriel Ramirez

As someone that went through the university path, I'm biased towards strong typed languages first. And that's because I consider the need of syntax and organization of the code make you learn more concepts than you would do if you jump right into a script language. For that reason I would say C++ is a good start, but only if you have the time to spend learning languages.

If we want to learn something on the go and make cool projects at the same time, I would say Python and JS are great first starters. I would go with python first in that case.

Collapse
bobbyiliev profile image
Bobby Iliev Author

Fully agree with you! I could not have said it better!

Collapse
alexgeorgiev17 profile image
Alex Georgiev

An interesting discussion, Bobby! I believe that a lot of people will choose the language that they believe will help them to land a job offer or an internship in a company. In my opinion, this should not be considered a wrong attitude since, in the end, people don't work for free, but in your spare time, you can be interested in some cool projects so you also should enjoy programing and love it or at least like the language you've chosen to learn.

Collapse
bobbyiliev profile image
Bobby Iliev Author

You've got a very good point there Alex! Love this!

Collapse
alexgeorgiev17 profile image
Alex Georgiev

It's just my point of view, everyone is free to agree or disagree. Love your content, Bobby! Keep up the good work!

Collapse
ksaaskil profile image
Kimmo Sääskilahti

I'd recommend Scala, for getting hands-on experience of both functional and object-oriented programming. My first course was in Java and it took years to learn that not everything needs to be a class 😁

Collapse
bobbyiliev profile image
Bobby Iliev Author

Sounds very good! I personally have never used Scala before.

Collapse
nald_dev profile image
Nald Dev

I'll be honest, javascript has a lot of hatred despite being the most used programming language.

Javascript maybe not perfect for everybody, but from javascript it lets me to explore creating file system based programs, frontend, backend etc, when you stuck you have huge community

It's the programming language that let me to be explorer, creative in lots of aspect

I wish when I was a teenager I would choose javascript to be my first programming language to start

Collapse
bobbyiliev profile image
Bobby Iliev Author

I'm totally with you on this one! Actually, my brother @boiliev is just getting started with JavaScript and he is still in high-school.

Collapse
fluffynuts profile image
Davyd McColl

the top two (pyhton and javascript) are, imo, the best choices:

  • both have a lot of good free tooling available, large communities, lots of code examples & free courses
  • both run on just about anything, have lots of packages & decent package managers
  • python is very well structured, good for learning as it doesn't have a lot of strange behaviors
  • javascript is available in the browser - another place one can learn and make; it has a few more gotchas because of the history of the language
  • python will set you up for a career in data science or back-end dev, or systems / user-facing apps
  • javascript can set you up for back-end or front-end dev

I'd say try an intro course to both, and pick the one that you're having the most fun with. Come back to the other in a few months because learning a new language is good for expanding your general programming abilities.

Collapse
bobbyiliev profile image
Bobby Iliev Author

Very good points! 🚀

Collapse
jessekphillips profile image
Jesse Phillips

It is easy to think the first programming language would be a general purpose language. In reality the first one is best served in a domain of fun.

But for general purpose, I like D.

Collapse
kjwong3 profile image
Kelly Wong

One related to something I'm interested in. I feel like it's more important to have something motivating me to keep studying than the theoretical advantages of any particular language.

Since I like games, maybe Lua to get into Lua LOVE, or C# for Unity.

Collapse
sgriffiths profile image
Scott Griffiths

Universally Python seems to be the way to go as it can be used across the board and most roles will let you get away with having python skills but not strong in C# / Java etc.

Other than that I really like Rust and think that it has a lot of benefits and very straightforward to pick up

Collapse
bobbyiliev profile image
Bobby Iliev Author

Indeed Python gives you a lot of opportunities in the fields of ML, AI, Big Data, Web Dev and etc.!

Collapse
natescode profile image
Nate

JavaScript

Because it fits 3 main criteria.

Just please PLEASE don’t stop at JavaScript. Learn OOP, functional programming and for crying out loud learn why statically typed languages are valuable.

1) Low barrier to entry

In your browser of choice, right click ‘inspect’ and in the console tab type (or go to repl.it

console.log(“hello, world”)
Enter fullscreen mode Exit fullscreen mode

and boom! You just wrote and ran code in under 10 seconds. Most downloads take longer. No installs, no compilers, no SDKs, no environment variables etc.

2) Plethora of learning material

Not that popularity is everything but there’s more free learning material and code for JavaScript than any other language.

3) Useful for what you want to build

JavaScript runs in browsers, servers, desktops, robots, mobile apps etc.

Want to build a game without complex editors, tools or engines? HTML5 Canvas with JavaScript!

Want to build a mobile app? Ionic, react-native and native-script.

Want to build a desktop app? Electron!

Just don’t stop there :-)

Happy coding !

return 0;

Collapse
bobbyiliev profile image
Bobby Iliev Author

This is brilliant! 🚀

Collapse
mrdulin profile image
official_dulin

Golang.

  1. There are very few grammars and keywords.
  2. Strong typing to ensure code safety
  3. There is basically only one way to complete a function
  4. I like the concurrency model of goroutine+channel
Collapse
jmdejager profile image
🐤🥇 Jasper de Jager

I'd start with typescript. A good way to get to know typings and easy to get an app up and running with frameworks like angular, so you can keep the joy in programming 😊

Collapse
onpikono profile image
Ondrej Pinka

IMHO depends on what interests you. Algorithms? Almost any language will do. Kernel and drivers hacking, embedded software? C, C++, Rust. Backend? Many many languages will work. Frontend? JavaScript, its clones or transpilers, infinite (and growing!) number of frameworks, or Wasm if you dare. Full-stack (same language for f/e and b/e)? F#, C#, Clojure, OCaml, Kotlin, JavaScript, Rust and many more. For mathematical / computation modelling (e.g. used in finance) probably F#, Haskell, for statistics and data analysis Python, Julia, F#... Databases? SQL and all its flavors.

Or if thinking more in paradigms - for procedural probably C, C++, Python, Go... For object oriented probably Java, C#, C++, Smalltalk, Python... For functional dynamically typed languages it would be any flavor of LISP, Elixir, for statically type it would be for example Standard ML, F#, OCaml, Scala, Haskell... For maths, proof theory, category theory and what not, probably Idris, Haskell, Coq, TLA+...

If thinking about platforms: for .NET it's F#, C#, VisualBasic, for Java VM it's Java, Scala, Kotlin (both of them are cross-platform and work on pretty much any major OS) for BEAM it's Erland and Elixir...

I am sure I missed many, I meant no offense :).

When I was a young person, there was no internet and PC was as expensive as a car, if not more. Now the options are almost limitless but with difficulty of choice and risk of being overwhelmed :).

Collapse
sidchaudhary04 profile image
Siddharth Chaudhary

I started with swift

Collapse
eljayadobe profile image
Eljay-Adobe

I'd pick Python first. Versatile, and a gentle learning curve.

If not Python, then I'd pick F#.

Collapse
kallmanation profile image
Collapse
tvinko profile image
Tomaž Vinko

I would start with

  • Python to explore ML and other packages goodies
  • C/C++ to understand working with memory because that's hidden to Python world
Collapse
epsi profile image
E.R. Nurwijayadi

I started with many languages, but all very basic stuff, with the same algorithm.

epsi.bitbucket.io/lambda/2020/11/0...

Collapse
arushikulkarni profile image
arushikulkarni

Java is always recommended if you're looking for an easy and even fun programming language to learn first. Java is the most widely used programming language over the globe. Based on Oracle, 3 devices operate on Java. Java is a fantastic precursor to understanding other programming languages (such as C, C#, and C++). Java is a good core language. It has Object Oriented Programming Language (OOP). Learning OOP requires students to learn a specific degree of logic. You need to learn and understand the procedures at both the particular and the subjective. Again, this provides a perfect foundation for learning programming generally.
Java course in Nagpur
Java classes in Nagpur
Java training in Nagpur