I'm surprised nobody's mentioned spreadsheets - specifically Google Sheets or something scriptable and hosted. Recently I've built up a small system which sucks in data from a few places (fitness, task management, calendar,..) and analyses it against several goals I've set. This means I can see how I'm progressing towards what I want without even touching it anymore. They're a really nice UI for bootstraping projects…
Similarly Microsoft Access. I learned Access for my first job (100% of my job was moving tasks into Access, 3 years later I helped some interns transition to a SQL server+web application). 10 years later I'm still using Access for some aspects of my new job. The ability to quickly prototype something and receive almost immediate value is vastly underestimated (I know of one company which runs all of their tasks out o…
Ask HN: What overlooked class of tools should a self-taught programmer look into
131–140 of 416 posts
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#132Unit 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…
There's a qualitative difference between working in a well-tested code base that's very hard to describe convincingly. A lot of my early development experience was in code bases that had little or no testing. Experiencing a well-tested code base totally changed things for me. Instead of work being a death-of-a-thousand-cuts experience, it became pleasant, steady progress.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#133A new version of "The Pragmatic Programmer" recently came out. [EDIT: not available yet, only preorder at amazon, beta version available at pragprog.com.] That book is all about tools and methods that a self-taught programmer should look into: https://www.amazon.com/Pragmatic-Programmer-journey-mastery-...
Very frustrating, as I considered the first edition to be essential and upon reading your comment, instantly went to purchase the 2nd edition.
Edited to add: Found a date, Amazon is listing it as October 21, 2019.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#134Earlier quoted context omitted.
Racket is a very good Lisp for beginners, DrRacket makes it easy to get up and running with little effort.
Agreed. Racket is from a particular school of thought, and you won't get all Lisp family ideas from it, but it's great. You can start up DrRacket (a simple IDE for students that can also be used for professional work, and has some powerful features in it), or just use your favorite editor and the `racket` command-line program and REPL. There's way too much documentation at: https://docs.racket-lang.org/ You can also…
#lang sicp
https://github.com/sicp-lang/sicpRe: Ask HN: What overlooked class of tools should a self-taught programmer look into
#135Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#136If you're strictly asking about things a self-taught hobbyist programmer may have missed, then I second the suggestions here to skim through a CS degree curriculum and dig into anything that's unfamiliar. As one possible example, maybe you're solving a problem trying to parse some text, and you're in over your head with ad-hoc regexes and conditionals and type casts and exceptions all over the place. If you've seen t…
Really? That was one of the very first topics in my first semester. How do you teach CS without grammars and the Chomsky hierarchy?
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#137Read 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…
The Cambridge course isn't perfect, but they do a very good job of making as much teaching material as possible publicly available.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#138Earlier 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…
>The big downside of Make, alas, is Windows compatibility. Isn't the big problem that you have no idea what it's doing to your system? Also that you aren't expected to be able to undo it. You can read the makefiles, of course, but it seems simpler not to have to. (Just update the necessary packages yourself, to the latest version.) Forgive me if this is naive of me.
Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#139Excel. Seriously. For more things than you imagine Let's say you want to make a property assignment for some class; this.a=x.a this.b=x.b ... While you probably would want to do this some other way to start with, and while you of course can solve it using some emacs wizardry, I can whip that up in Excel using some formulas in a matter of a minute. Moreover, I can keep adding to it when I realize something was missing…
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?
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(statements)
Spreadsheets can be an incredible tool-- as an interactive environment that allows non-programmers to express domain knowledge and quickly automate parts of their workflow, they're really unparalleled. But this isn't a very good example of something that Excel is particularly well-suited for.Re: Ask HN: What overlooked class of tools should a self-taught programmer look into
#140Makefiles. 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…
One of the worst problems with using windows (in my opinion) is that there’s no native GNU make.
If you just want a Make, there is [2] which can be installed separately and is part of the GNUWin32 collection.
[1] https://www.msys2.org/ [2] http://gnuwin32.sourceforge.net/packages/make.htm