'The Imposters Handbook' is good for foundational knowledge, it was written for exactly your use case. https://bigmachine.io/products/the-imposters-handbook/
Ask HN: What overlooked class of tools should a self-taught programmer look into
151–160 of 416 posts
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#152This is the most pragmatic way I've found to learn and stay in touch.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#153Honestly 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.
I've learned more messing up when using fancy git rebase stuff than any tutorial.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#154Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#155Shell scripting for processing text. You can often get so much done with so little code and effort. Also on a semi-related note, I think as a self taught programmer, it's easy to get stuck on things that seem cool but are just procrastination enablers (I know, I've been guilty of it for 20 years). Like, if you're about to start a new project and you want to flesh out what it's about, you really don't need to spend 5…
This 1000x. I put of just getting by with shell script for some years and when I finally decided to get deeper into it, it's magical. A good series of piped commands with tools available basically everywhere can solve problems you had no idea could be so simple to solve.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#156A few decades ago, a new programming environment exploded: the web. Looking for a ridiculously useful tech stack? Look no further: HTML, HTTP architecture, SQL backend... a guide written at the time: http://philip.greenspun.com/panda/ Paul Graham also wrote about why the web was such a deal, IIRC in the Beating the Averages essay. In particular: you can use whatever tools you want and avoid deploying to client machin…
PostgreSQL + PostgREST + react-admin == fantastic stack. You can write an entire application in SQL and PgPlSQL but using an HTTP JSON API as the interface with a static and responsive BUI. This allows you to be extremely agile in development and ops (because, e.g., you get to use logical replication). I can't say enough good things about this approach.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#157If some stuff is domain specific or have much theory involved doesn’t mean it’s not considered a fundamental concept in some areas of work.
If some other stuff was very useful for you doesn’t mean it’s universally applicable. For example, if you had worked on a high-frequency trading bot, I don’t think you would have used neither Python, nor ZMQ or other general-purpose messaging middleware, nor even OS-provided TCP/IP stack — they all cause too much latency.
I’ve been programming for living since 2000, worked in a lot of different stuff from web dev and enterprise to videogames, embedded, robotics and GPGPU. Yet I can name many huge areas which I hadn’t seen close enough, or at all, along with libraries and tools used by people working there.
Every time I start working in a new area, or when I resume working in an area after a long (years) pause, I read a lot of relevant stuff. Continuous learning is the key to stay good, IMO.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#1581. Makefiles. See @aequitas' comment for more.
2. Terraform. Seriously, just using this tool taught me [a lot of] devops. It's fantastic!
3. Docker (as a tool!)
I'm going to go into the third one a bit - I feel like Docker is mostly thought of as useful for deploying things to the 'net (kubernetes, ECS, etc), but I think it's also amazing for local development and build pipelines. I actually have no idea one way or the other how much other people use it this way as well, so maybe it's just me that's finding it unexpectedly awesome for this.
Put together the right CLI command + Dockerfile, and you can hand someone a repo and they can launch a complete, reliable development environment in a single command without any other system prep. No more worrying about which dependencies need to be installed in what way; it's like `rvm` + `bundle exec` but for EVERYTHING. No more dealing with whatever custom system modifications someone has going on. `git clone`, `make dev` move on with life.
And then you can also have Dockerfiles that are specifically for producing your build artifacts, and then completely ignore the container for execution. This is how I'm using both AWS EMR and Lambda.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#1591. Earlier use of VMs and now Docker containers -- It was around 2004 that I got introduced to VMware tools to create, configure and run VMs. Life was never the same after that. No more fretting about installing pre-beta software for the fear of hosing my perfectly working system. There was a time when I had multiple servers running VMWare hypervisor, each running multiple systems. Then around 2014 I switched to using Docker containers for similar purposes and haven't had a need to use VMs.
2. Jupyter notebooks/pandas/plotly -- Can't imagine how one can explore data without this.
3. SQLite -- Perfect for writing unit tests for code that deals with SQL databases.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#160Also, WCF for all your inter-computer communication needs. I wouldn't be developing software today if I weren't introduced to low-trouble application development with Visual Studio