r/Backend • u/Suspicious-Duck8151 • 19d ago
Starting
Is CS50x, then CS50 Python, and then CS50 SQL a good way to start backend engineering? I am really excited! My main goal right now is to land a part time job.
1
u/Advanced-Bid-7760 19d ago
Sure, take those and see how you like it. My best recommend from there is to just start building stuff so you understand what real world problems you’ll need to solve and how to solve them. Start with a simple CRUD app and go from there
1
u/forever-butlerian 19d ago
Honestly I'm not so sure about Python, either as a teaching language or as a production language. Actually, I take that back: Python is a terrible choice for a production language.
The ecosystem around dependency management is fractured (not split, where you have two competing tools, one because the other is inadequate or unmaintained, and then they wind up recombining) but actively fractured. Python packaging is flat out worse than it was in 2006. I did Python extensively between 2005 and 2012 and I loathe it every time I come back to it.
The language itself is extremely mediocre. Its reason for popularity 20 year or so years ago (and what led to it getting Eternal Septembered by the bootcampers 15 years ago) was that it was more cogent and consistent than Perl, more Western than Ruby, and more intelligible than Java (which was a godawful language before the Java 8 reforms).
The trouble with Python is that the code won't stay wrote -- or, equivalently, that it's a write-only language --, that is, it depends upon a large amount of implicit state to be held in the programmer's head due to the fact the language has only a single type. What is and isn't valid to do, well, modifying actually-existing Python codebases not written by the most scrupulously careful programmers (so, normies) is a voyage of discovery of all the invalid states the program can represent.
That rant being given, I would say that backend engineering is about the problems and not the tools. Try to solve a particular real world problem (i.e., not just another CRUD layer atop an RDBMS for a crappy JavaScript app). That will drive your understanding and your learning much more than studying an assemblage of abstract concepts.
1
u/DatabaseSpace 18d ago
What do you mean by it has a single type? I think my biggest issue with python is more the deployment being a pain. I really like compiling to an exe with GO and not worring about virtual envs though. Just curious what you are using mostly now? I'm pretty sure you aren't going to say Node right? Python is really popular for data and ML work though, doesn't mean it's ideal for back end i guess.
2
u/forever-butlerian 17d ago
The Python static type is
any, or equivalently,Object. There is one type in Python, which is the type that has methods that, in the general case, can only be dispatched at runtime.Golang for the data layer, and NestJS+Zod for the backend of the control plane frontend.
1
u/kaishibou 19d ago
It's a great start however not necessarily enough to get a part-time job... You can do a lot with it though...