What language to start with first?

I’m doing the self-taught route (for now), already know a small amount of Python, and just completed the HTML basics course on here. If the end goal is to break into software engineering, what would be the best language to go all-in with?

Probably the first first thing should be a computer science course, for getting down the basic concepts

This one for example:

1 Like

Hey @hye345,

Great to hear you’re starting to learn.

I’d recommend a back-to-front approach. If your goal is to get a job in Software Engineering, first think about what type of role you would like. Do you want to be a Mobile developer / Web developer / Backend coder etc?

It it’s a little hard to tell right now, just think of what sounds cool to you.

From there, think of what type of company you’d like to work in, think of the city that you’d like to work in. Find your ideal companies you’d like to work for, and then have a look at their job boards. See what they’re looking for in terms of Software Developers and write down all the overlapping technologies and languages that different companies are looking for.

For getting started, do something that you find fun. From there, follow @ilenia’s advice, dig a little deeper into the languages that you decide to use, buy books on those languages and really understand the ins and outs of the programming language itself,

Hope that helps in some way!

1 Like

It’s not the language, is the concepts that matters for software engineering. The language is just a tool, so the idea of “going all-in” with a single language automatically boxes you in to what is available to solve a given problem. It will also limit how many approaches you can take for a given concept. For example learning OOP in Java and Python will give you a better understanding of the OOP concept in general, as the syntax between the languages will differ, but the concept is still the same.

Because of this, and because it sounds like you don’t have a specific preference of what you want to be building (or at least you didn’t mention any), I would say continue with Python, and keep building up your knowledge so you can build something complex, and learn more concepts of programming.

The best beginner languages are currently down to Python and Javascript. I personally usually recommend Python for the following reasons:

  1. The syntax is clear, concise and straight forward. This is hand’s down the main advantage of Python and the reason it is being taught in more and more institutions as a starter language. You should be learning how to program, not how to work around a given languages unusual syntax.

  2. Python has a ton of community support behind it. It’s very easy to find answers to Python questions online, due to the large community built around beginners.

  3. Python is super flexible. Python is known as the “swiss army knife” of languages, as it can perform a lot of tasks, and fill lots of use-cases. From basic system administration, to backing up full-stack apps, to machine learning (the newest and most popular use-case today). Python’s got the libraries and community to back you up.

Javascript is the language of the web, so if you know you will go into web I’d really think about learning about Javascript instead, as it’s taken over web development. There is no getting away from the language, as it’s pretty much the only language for front-end code (code that runs on browsers)
Learning programming with Javascript is a little more tricky, since Javascript has a super fast growing ecosystem, and yet is “dragged down” but a lot of choices made to the API back when the internet was still young. There’s massive lists of funky behavior and usual design choices baked into the language. On-top of this the syntax isn’t anywhere as clear as Python.

Finally, I’d want to again point out it you could totally learn programming/software engineering without learning either of these two languages. The key thing is to learn the concepts or programming, and software, and be able to apply it using some language. Each language has their own syntax, but concepts go across languages and platforms.

Goodluck and keep learning :smile:

1 Like

Hello @hye345.

Please don’t think so much about that, if you go around forums all responses will be the same, Python and/or Javascript. I think you should learn both. With Python you have access to powerful object oriented programming with clear syntax and a lot of applications and modules. With JavaScript you could use functional programming. With the differences of both you will learn more about how different languages are used.
There is a very good MOOC that could introduce you to to software engineering: “Software development micromaster” in EDX.

Thanks for the replies everyone! I’m still not sure what specific field I’d wanna go into. I’ve always been intrigued by cyber-security, hacking, computer viruses, etc. but that was more as a teenager, and perspectives will probably change at least a bit once in the trenches. For now, I decided to start with Python. Paid about $12 for a course on Udemy, just so there is some structure in the learning. Hopefully it’s money well spent!

1 Like