Hacker News new | ask | show | jobs
by goodusername 1915 days ago
Lately I've been focusing more and more on writing code which is easy to read, and it seems to require good language skills more than anything else. Things like descriptive naming, keeping the same level of abstraction in a function, writing good commit messages or documentation all seem to require language skills rather than technical skills.

But it might just be my personal bias for what is considered good code that gives that impression.

1 comments

They are both very much required. Having poor math skills is likely to indicate poor abstraction skills, which in turn results in poor models. Having poor language skills will likely result in not being able to communicate those mental models, no matter how good they are.

You can be an amazing linguist, if you had to create hundreds of classes because you couldn't abstract something better, it will still be incredibly taxing. Whether it is more, less or equally taxing with an amazingly but shoddily named model, I don't know. I've seen extremes on both sides produce garbage I didn't want to step into, though I could make a case for overly mathematical people potentially covering a bridge in lack of linguistics by sticking to equations and models.

Interesting. As a counter argument, linguistics and grammar also involves a great deal of abstraction, which seems closely related to OOP concerns.

But I will say that familiarity with equations and mathematical symbolics tends to be very useful for reading and understanding code.

To me, so much that is part of coding falls back on math. Proof by induction is a fundamental part of being able to write a loop, model recursion or determine complexity. Binary numbers require understanding bases and exponents. I don't think one can be a really good coder without knowing a lot of fundamental math. That said, math is a lot more accessible with the internet of today vs the resources available to me in school 30 years ago -- my high school teachers couldn't point me in the right direction when I was asking questions about what was ultimately related to Fourier transforms.

I was both a mathie and coder throughout school, and took multiple language courses when they were available to me in high school. The skills certainly complement each other. A mind should be flexible, and the more one learns, the more flexibility the mind has. But it all relies on having an environment that nurtures and feeds natural curiousity.