Live data from Hacker News

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

news.ycombinator.com

191–200 of 416 posts

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

#191
post #186

Earlier quoted context omitted.

Nope. I develop in Python, Java, and Kotlin on Windows and never touch WSL. Make is available natively through Chocolatey (a Windows package installer), but I prefer Gradle. (I also write code to run on Linux, but still prefer Gradle.)

Why don't you use WSL? I can barely understand why you'd want to develop on Windows (ok, for non-Windows-only products) with it, but without it...

It isn't perfect. The IO performance is currently poor and it doesn't play well with Windows Defender (wastes a lot of CPU). Also, since your IDE would live in Windows, you can sometimes have issues with Windows and Linux both interacting with the same files.

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

#192
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…

Groxx replies hits the point. I might work with a small number of platforms, but the "super-simple" qualifier is the point. The point at which you need dictionaries (associative arrays) in your install script, not to mention settings management beyond a make include is the point at which you've outgrown make.

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

#193
When I went from amateur Python programmer to Google Cloud developer support, I remember being completely blown away by technology and design patterns I've never heard of that goes into modern web/enterprise architecture. I had to learn it all the hard way, but these days there are great free (or mostly free) courses you can take to learn this stuff.

For Google, check out the study guides for their certifications, specifically Cloud Architect (basic overview), Cloud Developer, and Data Engineer.

https://cloud.google.com/certification/

Be sure to follow along with the recommended Coursera and Qwiklabs tutorials and do the exercises. You'll learn about all kinds of neat stuff, like scalable application design, container technology, monitoring+metrics, various types of database technologies, data pipelines (including Pub Sub messaging), SRE best practices, networking+security, and machine learning.

I currently work on AWS, and don't find it a good starting point for diving in to these things quickly, but most companies use it so it wouldn't hurt to learn I guess. I still recommend GCP over AWS to start with, as their technology is far more interesting and focused, and quicker/easier to work with.

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

#194
One minute ago I discovered that HN comment threads are collapsible by tapping/clicking the "[-]" on the right side of a comment header. I think that could fall under the class of non-obvious tools (maybe not for a hobbyist, but as a long time HN reader I'm shocked I never noticed it before)

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

#195
post #108

Earlier quoted context omitted.

I'm not following. What good is it to have equivalent of "this.a=x.a this.b=x.b ..." in Excel, when what I need is to have this in code in my editor? Are you saying you use Excel to create the code, then copy/paste it into your editor? Or what?

I think the parent's using Excel essentially to do repeated template expansion: e.g. for a given set of member variable names ([a, b, c...]), give me the assignment statements I'd need to use those in a constructor. Which I could do pretty trivially in Excel... but could also do trivially in about two lines of Python: vars = ["a", "b", "c"] statements = ["this.{0} = x.{0}".format(var) for var in vars] print(statement…

Those can often be done in a decent text editor with regexp-like search and replace.

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

#196
post #186

Earlier quoted context omitted.

Nope. I develop in Python, Java, and Kotlin on Windows and never touch WSL. Make is available natively through Chocolatey (a Windows package installer), but I prefer Gradle. (I also write code to run on Linux, but still prefer Gradle.)

Why don't you use WSL? I can barely understand why you'd want to develop on Windows (ok, for non-Windows-only products) with it, but without it...

If you're already using a Vagrant or Docker-based development workflow, WSL doesn't really add much, and takes some things away. I/O performance, for example.

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

#197

Earlier quoted context omitted.

In 2019 Makefiles are a useful tool for automating project-level things. Too often webapps will require you to install X to install Y to run producing artifact Z. Since Make is old and baked and everywhere, specifying "make Z" is a useful project-level development process. It's not tied to a language (e.g. Tox) nor a huge runtime (Docker). Make is small enough in scope to be easy, and large enough to be capable witho…

Will not be a problem for much longer :) https://www.theverge.com/2019/5/6/18534687/microsoft-windows...

Hopefully Windows 11 is just a reskinned Ubuntu running all the old Windows programs through Wine.

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

#198
post #48

Unit testing, mocking, and various other testing techniques. Why? Any project of sufficient complexity is very hard to test. If all you're doing is code -> build -> run to debug your code, you can very easily break something that's not in your immediate attention. The problem is that good unit testing is hard, and time consuming. It can be so time consuming, that unless you can really plan in advance how you test, yo…

Are there any resources out there you would recommend for learning testing techniques in a Python context?

TDD with Python: https://www.obeythetestinggoat.com/

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

#200

Makefiles. I always dismissed them as a C compiler thing. Something that could never be useful for Python programming. But nowadays every project I create has a Makefile to bind together all task involved on that project. From bootstrapping the dev environment, running checks/test, starting a devserver, building releases and container images. Makefiles are just such a nice place to put scripts for these common tasks…

I hate makefiles.

That said, I wholeheartedly agree with the comment.

It's sad that something so central to a project and so useful and important to so many people seems like it hasn't advanced ... ever.

Developers generally do the minimum with Makefiles and get out. They are similar to 1040 forms in popularity.

I've always had a dream of a redesigned "make" system... with import statements, object oriented rules, clear targets, rules and files clearly seperated, structure and organization... sigh.

Post reply on HN