Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> No ones like programming that much. That's like saying someone love speaking English. You have an idea and you express it.

I can assure you both kinds of people exist. Expressing ideas as words or code is not a one-way flow if you care enough to slow down and look closely. Words/clauses and data structures/algorithms exert their own pull on ideas and can make you think about associated and analogous ideas, alternative ways you could express your solution, whether it is even worth solving explicitly and independently of a more general problem, etc.



IMO, that’s a sign of overthinking (and one thing I try hard to not get caught in). My process is usually:

- What am I trying to do?

- What data do I have available?

- Where do they come from?

- What operations can I use?

- What’s the final state/output?

Then it’s a matter of shifting into the formal space, building and linking stuff.

What I did observe is a lot of people hate formalizing their thoughts. Instead they prefer tweaking stuff until something kinda works and they can go on to the next ticket/todo item. There’s no holistic view about the system. And they hate the 5 why’s. Something like:

- Why is the app displaying “something went wrong” when I submit the form?

- Why is the response is an error when the request is valid?

- Why is the data is persisted when the handler is failing and giving a stack trace in the log?

- Why is it complaining about missing configuration for Firebase?

- …

Ignorance is te default state of programming effort. But a lot of people have great difficulty to say I don’t know AND to go find the answer they lack.


None of this is excluded by my statement. And arguably someone else can draw a line in the sand and say most of this is overthinking somehow and you should let the machine worry about it.


I would love to let the computer do the investigative work for me, but I have to double check it, and there's not much mental energy and time saved (if you care about work quality). When I use `pgrep` to check if a process is running, I don't have to inspect the kernel memory to see if it's really there.

It's very much faster, cognitively, to just understand the project and master the tooling. Then it just becomes routine, like playing a short piano piece for the 100th time.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: