Live data from Hacker News

Ask HN: What overlooked class of tools should a self-taught programmer look into

news.ycombinator.com

91–100 of 416 posts

Re: Ask HN: What overlooked class of tools should a self-taught programmer look into

#91
post #17
post #16

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.

Edit: I meant Patterns of Enterprise Application Architecture by Fowler in my comment above. Recommended by DHH.

Re: Ask HN: What overlooked class of tools should a self-taught programmer look into

#92
post #64

Earlier 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…

it's also far, far, far easier to make it work predictably on multiple platforms. and easier to understand and change later. that can get nightmarishly hard in make/bash, once you go outside the super-simple realm.

Re: Ask HN: What overlooked class of tools should a self-taught programmer look into

#94

Read 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…

Thank you very much. This is very valuable.

Re: Ask HN: What overlooked class of tools should a self-taught programmer look into

#95
post #85

If you're into python, look up decorators and coroutines. They will blow your mind.

This is still my favorite mind-blowing introduction to them, from 2009: http://www.dabeaz.com/coroutines/Coroutines.pdf Don't have hardware interrupts or threads but still want a multi-tasking operating system? Not A Problem.

Re: Ask HN: What overlooked class of tools should a self-taught programmer look into

#96
post #93

Honestly 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.

The three most important basic git operations to know (in my opinion)

    git checkout -b
    git log
    git rebase -i

Re: Ask HN: What overlooked class of tools should a self-taught programmer look into

#98
post #76

Heh, 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…

The "MQ" part of the name is unfortunate, but apparently came about because of the original idea to come up with a "better" implementation of AMQP (http://zeromq.org/docs:welcome-from-amqp).

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

#99
post #87

IDEs - 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…

I find that it is usually the opposite. Devs who don't use big IDEs like visual studio are much more likely to know why things fail in a build pipeline etc.

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

#100
post #46

https://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.

The latest course is available here: http://web.mit.edu/6.031/www/sp19/
Post reply on HN