Hacker News new | ask | show | jobs
by auston 2342 days ago
I’ve always struggled with this, on the one hand I recognize my productivity/efficiency increase.

On the other...

I feel like tooling that automatically makes decisions for you can be a crutch if you don’t take the time to understand it.

It might be me getting older/grouchier but watching a dev use black or prettier because they don’t know how/are too lazy to indent their code properly is frustrating for me.

Or when I see new devs pick up User.find(id) in rails and sticking to the ORM without learning a lick of SQL - I think to myself how they’re selling themselves short.

But then I think, what don’t I know that I’m selling my self short on? Do I really know precisely how database storage works? or FS operations? Do I know the HTTP spec to the letter?

And I settle on the following: Any level of abstraction is fine - just try to identify what level you’re on so you can go down if needed or up when a new level of convenience becomes available!

3 comments

> It might be me getting older/grouchier but watching a dev use black or prettier because they don’t know how/are too lazy to indent their code properly is frustrating for me.

> Or when I see new devs pick up User.find(id) in rails and sticking to the ORM without learning a lick of SQL - I think to myself how they’re selling themselves short.

I think those are very different cases. Knowing SQL is a valuable skill which I'm pretty sure almost all developers end up using at some point in their careers, whereas there's no value in being able to format code. Maybe that will change once we start seeing people who learnt to code with automatic formatters and didn't develop any sense for what good syntax looks like, but I don't think we're there yet.

If I can add on to this, I'd say it's okay for new devs to use a tool such as prettier without knowing how it works as long as they know what it's purposes is and why they're using it.

I remember when I first started programming I often used tools without understanding what they did simply because a guide or Stackoverflow answer recommended them. It led to a lot of problems down the road, e.g. Googling for "how to add two numbers using jQuery".

When I try to teach junior devs, I'll let them use User.find... as long as they understand someone else is writing the SQL for them and that it isn't some magic database tool ;)

Similarly, I am embarrassed for devs who type their code in a coddling text editor because they are too ignorant to use ed, the standard text editor, properly.

Computers are for solving problems, not helping programmers, after all, right?

My sarcasm detector just exploded.

It’s all a continuum. A great test for mid career programmers is solving a problem from a blank text file. Especially true for more languages with great IDEs like Java or C#

Interestingly, that’s how I started coding and I’m still young(ish).

Borrowed a book from the library as a pre teen and followed along using notepad on my dad’s computer.

I didn’t see syntax highlighting or autocomplete until I was much older. So I can see why some people nowadays aren’t concerned as much with things like indentation. Syntax highlighting adds another dimension of legibility. I couldn’t imagine coding a website even just in plain old html without good indentation if there was no syntax highlighting.