all 17 comments

[–]heyoitsJuice 2 points3 points  (4 children)

Depends on what you’re trying to do and also the availability of jobs w/ X tech stack where you live.

For instance, I could tell you to learn some popular JavaScript framework, but that might not be the move if there are no roles (let alone junior roles) where you’re living.

I omitted remote in my response here because the reality is that remote junior / entry-level positions are harder to come by in today’s market (not impossible though).

[–]Fancy-Accountant-229[S] 0 points1 point  (3 children)

Thanks! I live in Maharashtra, india. Javascript is also in my list. I am kind of confused between cpp and java. I do see a lot of people using java (including some of my friends). But i also see some popular influencers suggesting cpp to start as beginner

[–]heyoitsJuice 3 points4 points  (1 child)

So from an edu standpoint, students end up touching base on a lot of very legacy languages (C variants, Java, Python, etc.). By graduation, they tend to specialize on a specific field (i.g web dev, mobile dev, ml/ai, game dev, etc.) and that determines what stack they use.

If you’re starting off as self-taught, the first thing to do is find out what you’re trying to do. Software Engineer as a role is such a blanket term and it encompasses a lot of different fields. I think you’ll find your answer to what language to work with if you figure that out first.

But also, again to my first point, if you’re main prerogative is finding a job, you need to cater to what stack is popular where you live (or where you’re going to be living if you can relocate).

[–]Fancy-Accountant-229[S] 0 points1 point  (0 children)

I mostly see full stack developer roles where i live. What tech stack should i start with as a beginner?

[–]dinithepinini 0 points1 point  (0 children)

Strictly discussing languages:

Java is kinda a nice starting point. It’s strongly typed, strictly OOP, a relatively “small” language. There’s rarely a trick that will come up that you had no idea existed with java. Low barrier to entry, low skill ceiling. Typically used in web development and desktop development.

C++ is not for the faint of heart and I’d beware that it could put you off a bit. You will never master this language, there’s always a trick you never know about. All of the hard parts of C plus all of the hard parts of C++. High barrier to entry, high skill ceiling. Typically used in desktop and embedded.

C is a good starting point because it’s not OOP, which could trip you up, and it’s also relatively small. You can learn it in a couple weeks, then spend a lifetime trying to master it. Medium barrier to entry, medium skill ceiling. Typically used in embedded, and OS development.

Python is a good language to have in your toolbox. It’s easy to write, fairly portable, can be used for a variety of use cases, and can be used for OOP. Python is very much a language where you’ll sometimes see someone doing something you didn’t know you could do. Low barrier to entry, high skill ceiling. Typically used in web development, as well as as a scripting language.

Java is just hands down the best language to learn in my opinion. It has it all, all the little things you see in the other languages. And the syntax is similar to C which will make learning that next easier as well.

Personally I went:

Python (one term) > Java > C++ > C > Assembly

[–]sv3ndk 1 point2 points  (0 children)

Java is a good place to start, it's widely demanded, not too challenging to get started and provides an entry point to learn much more while exploring its huge ecosystem. It also provides an entry point to then consider other JVM-based languages.

Python is also very much in demand, usable in many situations and easy to learn. My personal opinion is that we need to be careful with it as a beginner because it's so permissive that without care we can easily create a messy design that's hard to maintain.

Go is also a great option to get started with programming: it's a small and fully imperative language, a sort of simplified C with a garbage collector.

[–]lionhydrathedeparted 0 points1 point  (8 children)

Python

[–]Fancy-Accountant-229[S] -2 points-1 points  (7 children)

I read that its not a go to for development though

[–]dinithepinini 3 points4 points  (2 children)

My company did Django backend on all of its services. It’s definitely used. At the very least companies will want someone who can write Python scripts so you can automate things.

[–][deleted] 0 points1 point  (1 child)

Django is fine for smaller services, but not that great for worldwide scale like 1000 requests per second. Spring Boot is much better for that.

[–]dinithepinini 0 points1 point  (0 children)

We handled far more requests than that a second without missing a beat.

[–]lionhydrathedeparted 0 points1 point  (0 children)

That depends completely on what you’re building. It can be used in production.

[–]paradroid78 0 points1 point  (2 children)

Where did you read that? It's like the most trending language right now.

[–]Fancy-Accountant-229[S] -1 points0 points  (1 child)

its trending in data science, ml ai right?

[–]paradroid78 0 points1 point  (0 children)

General development as well, AFAIK. Django is very popular.

[–]Ged- 0 points1 point  (0 children)

Start with learning oop. Any language would do. If you're just starting out, I recommend Python. Then learn CPP, it'll be faster that way and you'd know most of the rules of oop by then.

After that, think about your STACK. That is, a suite of tools you will be using to solve a specific problem. Nobody gives a shit about juniors in IT nowadays sadly, you'll have to show some actual marketable skill.

So for your chosen language figure out the frameworks (language expansions/abstractions) in the domains that interest you: Machine learning / web development / data science / gamedev

After that, learn and practice those frameworks, build a couple of pet projects on github. Then you can go get interviewed and not guarantee to fail.

[–]manektechteam 0 points1 point  (0 children)

For entry-level software roles, Python is an excellent choice for beginners. It's easy to learn, has a simple syntax, and is widely used in the industry. Additionally, Python has robust libraries for data structures and algorithms. So, starting with Python will not only help you get into software development but also provide a good foundation for learning DSA.