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

> But programming is exactly the same.

Respectfully, no. You're right about picking up programming languages, but missing the nuance about developing different genres of software.

I develop utilities, material simulation systems (think finite element, boundary element, etc.), and used to develop an AI system (a multi-agent collectively intelligent system, an autonomous marketplace).

The knowledge required in each one of these is vastly different. First one requires OS knowledge and is generally I/O bound, so you try write good code, talk sensibly with the OS, but you don't need to optimize beyond the obvious pain points.

Writing simulations is completely different. I do care about the language, how it behaves, how I can extract every bit of performance from the CPU, while implementing numerical differential equations which needs to be exact, accurate and precise, while not compromising the performance of the codebase. I benchmark memory and CPU separately and as a whole, while not deviating from ground truth values. Otherwise things go very bad.

AI system was latency sensitive. I needed to make it fast while not bogging down the system as a whole, it needed to scale while being intelligent about what to do, and be flexible enough. This required strategies, self-tuning, etc. It was no neural net, so it was a completely different beast.

System programming is similar. Latency sensitive, talking correctly with the OS, and not bogging the system down while doing useful work.

Learning programming languages is easy. Implementing differential equations with demoscene levels of optimization while being exact and accurate is not.

Heck, even the usage patterns for the same programming language is different between different genres of software.




I feel like you're mixing the domain which you are programming in, versus "programming" as a concept, while I'm focusing purely on programming.

I do understand that different domains require different skills, that much is evident in itself. But then we're moving on from just discussing programming to also discussing programming domains, which detracts a bit from the core discussion.


My first comment already had domains in "pivoting" parts, so I didn't change the scope from comment to comment.

So domains is at the core of the discussion since the beginning, as the programming itself. At least that's how I formed my comment, and that's my intention while writing that comment.


But if you're talking about domains in the programmer's example, you'd have to do the same for the cello player's example.

So in that case it would be that the cello player could seamlessly (without training) change between genres for example, which clearly isn't true.


Changing genres are easy. Some of my orchestra mates were multi-genre (jazz/classic for example). I used to play metal and classic back in the day.

What’s hard is changing instruments, which I have given as an example in one of my comments. Yes I did go thorough that one, too.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: