https://dataintensive.net/ I can't recommend this book enough. I have a CS background, and still had quite a few "I can't believe this thing has been hiding in plain sight!" moments while reading it.
I'm now torn between reading this one first or the Architecture of Enterprise Applications.
Ask HN: What overlooked class of tools should a self-taught programmer look into
91–100 of 416 posts
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#92Earlier quoted context omitted.
Having used fabric in the past, I've always found it just as easy to use a shell script and make files. There's always some level of bootstrapping a project (installing packages/software, compiling libraries and dependencies) where it's easier to just to write a shell script than to program python to do. E.g. How do you get fabric installed on a system? There's also been this longevity of sorts that Make seems to hav…
I've been moving away from using shell scripts in a tools/ directory to using Python Invoke ( http://www.pyinvoke.org ), which is the library underlying fabric. I used bash scripts for years, but for a lot of reasons made the switch: - It was always painful to create small libraries of functions used across multiple scripts in a project - It's difficult to consistently configure them with per-user settings. I've writ…
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#93Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#94Read the curriculum of an undergraduate computer science course and read up on the things you haven't heard of. Some courses will even have lecture notes available. E.g. these four pages are the university of Cambridge masters in computer science: https://www.cl.cam.ac.uk/teaching/1819/part1a-75.html https://www.cl.cam.ac.uk/teaching/1819/part1b-75.html https://www.cl.cam.ac.uk/teaching/1819/part2-75.html https://www…
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#95If you're into python, look up decorators and coroutines. They will blow your mind.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#96Honestly I still find a lot of engineers don't know git properly. Like they know enough to commit and push but that's about it. It really helps to understand everything git has to offer.
git checkout -b
git log
git rebase -iRe: Ask HN: What overlooked class of tools should a self-taught programmer look into
#97Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#98Heh, funny that you mention that ZMQ is overlooked. While often though of a message passing library or serverless queue, Zero MQ has some pretty severe limitations that implementers fail to consider. To be clear, I think it's an amazing library which is unmatched in its performance, but it comes at a cost: reduced reliability. ZeroMQ will drop messages in a number of situations. The library does not handle delivery g…
But you're right -- ZeroMQ doesn't do queueing (except in some very limited circumstances), and if you need reliable delivery you must implement that yourself "on top of" ZeroMQ. I've done that, and while it's not a simple task, it is certainly possible.
You can get reliable delivery "out of the box" with other software, that in fact does do queueing. (kafka may be one, but I don't know enough to say).
But what you give up when you do that is performance -- ZeroMQ can easily be orders of magnitude faster than those other solutions, and for some applications (e.g., real-time market data) the work to provide a custom reliability solution on top of ZeroMQ is worthwhile.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#99IDEs - A proper work-grade IDE like Visual Studio will have some tools built into it that will save you tons of time. Features like "Edit & Continue" have saved my bacon many times by making intractably difficult bugs in algorithms much easier to understand because you can experiment with your code on the fly. There's also some more common features in most IDEs like being able to jump between symbols that saves a lot…
If you can only build a project by bumbling through menus and pressing a big green button at the end, that is worrying.
If you can only debug by immediately jumping into the debugger and single stepping that is also worrying.
Devs who reach for the tools appropriate to a given situation inspire much more confidence in their abilities.
Knowing the time saving features of your editor is a huge boost. However, the old editors have much more of these ;)
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#100https://ocw.mit.edu/courses/electrical-engineering-and-compu... In my experience, most hobbyist programmers are fine writing scripts and other small programs but have no exposure to the sort of ideas that are necessary for making large programs. This course at least exposes you to a lot of those concepts.