Hacker News new | past | comments | ask | show | jobs | submit login

Yup. That's because programming isn't just learning the vernacular. It's, first and foremost, learning to express concepts in a structured, super-precise way; learning to evolve systems in your head step by step, according to a set of arbitrary rules; learning the nature of computation.

Familiarity with this type of thinking is visible not just in computer-related endeavors, but often in everyday life matters as well.




IMHO, before all that, programming is admitting before yourself that you are very often wrong (either when coming up with a usable mental model or when applying that mental model or when observing the unforeseen effects).

It's the first leap and as you make it you can manage the emotions and the growth will happen.


We gotta keep beating this drum though. You get people saying programming is just learning Node.Js or learning X or learning Y, and you end up with bootcamps and no computer science. Just reading this thread has been a true journey.


Reading this thread was extremely frustrating for me as I have this idea in my head that everyone on HN is a seasoned software engineer. But obviously that’s not true, which is a good thing! And I certainly shouldn’t be frustrated at other people’s perspectives, it’s making me think about complexity a little more.

I think there’s a lot of misunderstanding of complexity by newcomers of programming. A lot of people are pointing to the current state of the Unix command line as an example of being overly complex and bad. And certainly you could point to this or that command line tool and say that could be better designed and you’d probably be right. But all the command line tools we are familiar with weren’t designed in one go, they grew over time to fill needs. It could not have been done in one go, the different needs of different users and the overlap and disconnect is too great to know all beforehand. And the same thing would happen if we started from scratch today. We would design something we think is great and multipurpose only to realize it doesn’t quite fit this new requirement so we will have to add an edge case. Maybe we could do better than the current standard, but it won’t be perfect, there will always be corner cases and competing requirements.


For some people, bootcamps could be the right entry point. I started by building websites in a wysiwyg editor :)




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

Search: