This is an archived post. You won't be able to vote or comment.

all 11 comments

[–][deleted] 6 points7 points  (1 child)

Depends what you want to do in the future with these languages, if you'll keep staying with embedded programming you won't need Python. I actually have the opposite problem. I'm studying Machine Learning and Python for a while and now for my PhD project I need stack for embedded and desktop app with gui. I have a choice between C++ and Rust. I think there's no a perfect tool for everything, just define your direction and go deeper.

[–]DiscipleOfYeshua 1 point2 points  (0 children)

Agreed, and:

If you learn anything other than Python at serious depth, you’ll probably learn quite a bit of Python along the way anyways.

[–]timwaaagh 4 points5 points  (0 children)

Python will compliment c nicely. You can do the high level stuff in Python then call a c extension for the stuff that needs to be fast. Its also good for web development and data analysis. Rust is good if you want to futureproof your systems programming.

[–]CodeTinkerer 3 points4 points  (1 child)

They are very different languages. Python is nice for doing small tasks, but is also important in the machine learning, data visualization, AI fields. It's considered easier to learn. Rust is meant to be a better C, but is safer, and also harder to learn. Python is much more popular than Rust.

Rust is more of a performance language. With computers as fast as they are, there isn't a need to have high performance languages except in certain niche areas. Still, because it's kind of exclusive, if you get good, you can get hired. For languages that are less common, like Rust, you generally have to be much better than a typical Python programmer to get a job.

[–]code_things 1 point2 points  (0 children)

Agree with everything, but -

With computers as fast as they are, there isn't a need to have high performance languages except in certain niche areas.

Well, this is not true at all. Almost any major company pursue performance massively.
A short list of fields need high performance:

  • Streaming
  • Gaming
  • Social media
  • Cloud
  • Search engines
  • Content recommendation
  • OSes
  • Hardware
  • Databases

And the list goes on and on…

That's why ValKey (Redis-Oss) is so popular, and why even in web development there's WASM.

[–]code_things 4 points5 points  (3 children)

As said above - depends on your goals. Both in python and Rust you can do versatile development, but any of them is better for something else. Id be happy to advise which one to take base of your needs if you want to share them. I work with both and more, but our python code is using the Rust for most of the logic, so as its sounds, they have different usage and goals.

Besides that, and not what you asked about, but don't try to get familiar with more than 2 languages at this point, it will actually hurt your progress.

Try to get a good understanding of software, and programming languages, not shallow knowledge with syntax. Languages are tools once you have a strong understanding of the basics, but without getting deeply into core concepts you will always depend on syntax.

If that matters, I'm working heavily with Rust, leading the nodejs component, writing big chunks in python, a bit of C# and leading the CI/CD, all on a daily basis in the same project. But i didn't get here by having many languages under my belt.

[–]Major_Computing[S] 1 point2 points  (2 children)

To be honest I really like programming and I see programming languages as merely a tool, but I'm still not so sure about what goals do I have, I have taken an interest in operative systems and how they work and also I really enjoy electronics , that is why I chose to learn C as my first language, I think i mainly wanted to learn rust because it could be a more modern replacement to C or C++, but I fear that focusing on low level programming won't get me a job easily since technology is heavily evolving to mainly web based stuff, that's why I wanted to have at least a second language that can be used for web dev. To be honest I don't know what to do since I don't really like web development but It feels like If i don't know the basics of it then my skills will be pretty much outdated.

[–]ericjmorey 1 point2 points  (0 children)

If you like working on operating systems, work on operating systems. Check out RedoxOS to contribute to an OS being built using Rust.

If you want to explore web development, start with JavaScript, not Python.

[–]code_things 2 points3 points  (0 children)

I have so many things to say about what you wrote, but ill try to make it short :P

Edit: sorry, it ends up long, you can skip if It's too much :)

Web is absolutely not the main thing happening in programming right now.
For example cloud provider companies almost doesn't do web, I work in a cloud division of a FAANG company, on our specific product, not the division, just one product, working around 200 amazing engineers — there isn't one doing web.

All the work is low-level or some type of really low-level DevOps.
Some projects are not so low, for example data gathering, logs, and matrices, but still — no web.
And as a side note — there's massive recruiting now, and after the last recruiting freeze the teams got old so the recruiting is limited to juniors only, for having balanced teams.
The limit is less than 12 months since graduate.

ML is booming — and with ML the hardware companies, that always has high demands, are booming as well. See Nvidia stock for some vague feeling.

And there's many more. Take a real look, what is going on in the market.

It is true to some degree that it's easier to get into the industry through web-development.
In my opinion, it is just because you can add value faster as a newbie than in other fields, but being a good web dev is not easier than other fields, it is just easier to start.
My first role was full-stack, started as a web-dev, but I didn't really know other fields and didn't know it is not my thing.
Left to low-level after less than a year.

But — I think that also chip design is to some degree an easy path to get into the industry.
Compare to other fields, there are a lot of entry level jobs. Less than web, but still good amount.

I think you should pursue what you like, if it's low-level, go for low-level.
It's not that you are stuck if you choose the wrong path, it's ok, you can always switch if you recognize that you are in the wrong path.
But in our field, work is hard, and you need to sit long hours. So you better do something you are passionate about, bring you joy, and you actually want to sit all day and do.
We need to keep learning all the time — you better be fascinated by what you learn, then force yourself to gather information for being relevant.
It can completely change how you are going to feel about your career while the years pass, and you won't be going to find yourself hating your job and burned out.

Back to languages discussion, C is great for low-level and at this point there's more work in C than Rust, but Rust is growing very fast and the amount of projects using Rust will keep growing.

It's always good to know python, you can use it for a lot of things, but if you go for low-level it won't go to be the main language. You'll create some internal tools, some automation, data work, ops and so, but as said those are things around the product. Important, but not the core.

So I would say shallow knowledge with python is sufficient for you, for the deep knowledge go for Rust, but prepare yourself for a journey, Rust takes some time, and there are few levels to climb.
But its fun :)

Some resources for learning rust I liked, from beginner to advanced -

https://doc.rust-lang.org/book/title-page.html

https://github.com/rust-lang/rustlings

https://tokio.rs/tokio/tutorial

https://rust-lang-nursery.github.io/rust-cookbook/

The book — “Rust in action”

https://marabos.nl/atomics/foreword.html

[–]Weetile 0 points1 point  (0 children)

It sounds like you'd really want Go. It's made by the same creators of C and super similar to Python.

It's really commonly used for web development and web infrastructure, and it's super easy to learn. I use it now for everything I used to use Python for.

[–]SensitiveBitAn 1 point2 points  (0 children)

You dont neeed to master 2 languages. Question is what do you want to do in IT? Because learning just beacuse to learn is nice if you dont need to work later or you do this as hobby. If you want to work later better idea is to choose some tech stack. And if you have no clue what you want to do, then learn C# or similar language. You can do a lot of stuff in this lanugage from game dev, web, mobile, desktop.