It’s 2024, there’s no reason we should be afraid of non-ASCII characters.
I use an American layout and don’t have a numpad :(
You are paid according to your responsibilities, not your skills. Well, partially for your skills, but it’s not the be-all end-all of your salary.
Sadly, after a certain point, people become so rich that they can skirt their responsibilities, which is problematic, but that’s a separate thread.
especially when doing data science
500MB for Ray, another 500MB for Polars (though that was a bug IIRC), a few more megs for whatever binaries to read out those weird weather files (NetCDF and Grib2).
Downside: "^1.2.3"
as default versioning for libraries. You just pinned a version? Oh great, now I can’t upgrade another library because you had to pin something in yours…
That non-standard syntax has been a PITA for the last few years. That being said: They created that syntax for regular applications (and not for libs) in a time when the pyproject.toml
syntax was not anywhere near finalization.
I bet it’s darn amazing,
It is. In this older article (by Anna-Lena Popkes) uv is still not in the middle, but I would claim it’s the new King of Project Management, when it comes to Python.
uv init --name <some name> --package --app
and you’re off to the races.
Are you cloning a repo that’s uv
-enabled? Just uv sync
and you’re done!
Heck, you can now add dependencies to a script and just uv run --script script.py
(IIRC) and you don’t need to install anything - uv
will take care of it all, including a needed Python version.
Only downside is that it’s not 1.0 yet, so the API can change at any update. That is the last hurdle for me.
pyproject.toml
track the dependencies and dev-dependencies you actually care aboutuv.lock
file that contains each and every lib that’s needed.uv sync
and uv run <application>
is pretty much all you need to get goingpip3 freeze > requirements.txt
I hate this. Because now I have a list of your dependencies, but also the dependencies of the dependencies, and I now have regular dependencies and dev-dependencies mixed up. If I’m new to Python I would have NO idea which libraries would be the important ones because it’s a jumbled mess.
I’ve come to love uv
(coming from poetry
, coming from pip
with a requirements/base.txt
and requirements/dev.txt
- gotta keep regular dependencies and dev-dependencies separate).
uv sync
uv run <application>
That’s it. I don’t even need to install a compatible Python version, as uv
takes care of that for me. It’ll automatically create a local .venv/
, and it’s blazingly fast.
Python’s tooling is a mess.
Not only that. It’s a historic mess. Over the years, growing a better and better toolset left a lot of projects in a very messy state. So many answers on Stack Overflow that mention easy_install
- I still don’t know what it is, but I guess it was some kind of proto uv
.
Lofi Beats for the Medieval Knight You Always Wanted to Be
This is my go-to playlist whenever I need to go to work (typically I work from home).
edit: In case you don’t feel like feeling like a Knight, may I interest you into feeling like a Viking instead?
Shouldn’t it? Yes, just like the ability to unit test, but that doesn’t stop schools from skipping over them.
True, but that sounds boring.
There are YT courses available to support the book. Or rather, the book exists to support the courses:
Don’t mind the ages of these series - I watched them in full, and they’re generally still relevant. I say generally because I’m not sure if I’ll ever use a Tango Tree, but who knows!
PS: If you’re not sure if you don’t know the required Math, I created a graph of all MIT courses with YT videos here. The courses on the left are dependencies for those to the right.
That reminds me to read all his public letters (available on the website you just linked) soon. Using TTS, because that’s all too much text for my poor brain to handle.
Head First Java is also nice to learn OOP as well! Don’t worry that you’re learning an older version of Java. It’s good to know the old style, because not all Java code is fancy schmancy new ;)
Out of a lot of series I’ve read, the Head First is really geared towards beginners. Highly recommended for beginner to intermediate programmers.
I am going to toot my own horn… Or rather: MIT’s horn.
https://thaumatorium.com/articles/mit-courses/mit.drawio.svg
This is a graph of most of MIT’s CompSci courses, where the lines are dependencies. If you want to learn something on the right, learn the connected things on the left.
While there are video courses, the top link in each block links to MIT pages where they tend to recommend books for each course. The algorithm courses recommend “Introductions into Algorithms, Fourth Edition”, for example.
I hope it helps (even if I don’t think this is the be-all end-all to your question).
I did a “game design” school when I was younger, but couldn’t get a job as a programmer. Worked for a laboratory for a little over a year, and then went back to school to get a software engineering degree. I was 28 when I went into it, worked with “youngsters” of 18 years and older. It was completely fine.
I’m now 50k in debt, but I’m also making twice as much as I did with my minimally paying job at the laboratory. It’s going to be a boon in the long run, IMO.
Then, luck should be taken into account. Once you are done with your degree, perhaps the market will have recovered a bit, because I’m hearing a lot of negative feedback lately.
edit: If you’re not sure, you can take a peek at this graph of free MIT YouTube courses. Choose something interesting on the right, then figure out where to start on the left to get to your chosen point. Each course can easily take about 100 hours, which sounds a lot, but if you do them you can take that knowledge and more easily extrapolate information in the future.