Complex numbers, as a convenient representation for certain operations, in the same way as we use negative numbers to represent debts.
Ask HN: Concepts that clicked only years after you first encountered them?
111–120 of 946 posts
Re: Ask HN: Concepts that clicked only years after you first encountered them?
#112Re: Ask HN: Concepts that clicked only years after you first encountered them?
#113Re: Ask HN: Concepts that clicked only years after you first encountered them?
#114Socialism When I got out of my middle class bubble, made friends with people working multiple jobs and struggling to make ends meet, and experienced a period of financial instability; I began to realize that something wasn't working in our current system. Then I started struggling with burnout and other issues and found that corporations were happy to just replace me. I also found that management wanted programmers t…
That’s not supposed to happen. Adding a way for people to make income is supposed to incentivize better content and allow people to invest in that content. Instead what you get is a flood of addictive and sensational / tabloid trash.
… or another way of looking at it is that you do get “better” content but better is not defined in a way that truly benefits anyone.
YouTube is the most dramatic example. The quality of the whole platform tanked hard when monetization was added.
After seeing this a few times I have started noticing it everywhere. The profit motive just doesn’t incentivize quality the way we are taught that it should. It can when the incentives align but they often do not.
Another common example is actual reductions in quality to drive more spending like engineered obsolescence or “nerfing” software to drive lock in. The incentive is to produce an inferior product since that is most profitable.
This doesn’t mean I think the answer is a government bureaucracy running everything like a single monopoly. That leads to a whole other set of perverse incentives and an inability to go elsewhere.
Re: Ask HN: Concepts that clicked only years after you first encountered them?
#115Re: Ask HN: Concepts that clicked only years after you first encountered them?
#116Unit testing and using dependency injection to write test-able code. I'm not sure if it was years, but it wasn't immediate. I just didn't understand why dependency injection was good at first, and not just someone's weird personal code style choice. I thought it was just people being "Enterprisey" which I'd encountered many times over the years. Once I committed to unit testing, I realized how necessary it is. Unfort…
> dependency injection The term is unfamiliar to me -- is it related to "fault injection"?
Re: Ask HN: Concepts that clicked only years after you first encountered them?
#117Earlier quoted context omitted.
Another solution is to eliminate classes and only use structs or similar plain objects. Makes mocking and testing functions much easier. At this point I see no reason for OOP whatsoever and consider it a big mistake.
Getting rid of data abstraction and encapsulation is throwing the baby with the bath water. The abstract concept of OOP (messages between complex objects, as defined by Alan Kay) is an attempt at mimicking biological systems. Most modern languages implement data abstraction, but call it OOP, where they encapsulate some functionality with the data it operates on. Really helped with varying data formats in the AirForce…
Similar, OOP is an obfuscated way to run a function with a context. The first time you separate the data in the context from an object, it’ll be hard to get it right and make it easier than to just use Objects and Methods. But once you’ve done it two or three times, it’s as easy as breathing.
You can optimize loading the context to be better than copying a bunch of unaligned data in lots of ways, but polymorphism is a common way to get there.
Re: Ask HN: Concepts that clicked only years after you first encountered them?
#118I'd been writing DSP code in C and MATLAB during undergrad while thinking I knew every possible aspect thanks to the deep study we had as part of coursework across all the transforms methods in our ECA & Communications coursework in India. Also, dad was a self-taught hands-on Analog electronics whiz whose day job was in Telecommunications Training, and I had uncles and aunts in the Telecom/Electronics/ATC industry, so I had all these resources from a very young age to revisit the concepts that were being taught to me in school, against practical applications over and over.
In week 2 or 3 of ECE490 at UofR, Prof. Heinzelman[1] broke a barrier that I did not know existed in my understanding of DSP. It was pinned to me realizing that the intuition between Fourier and Laplace transforms being the same. It was a moment that I haven't experienced since, in that I felt my brain got re-wired within that hour. It must help that her father[2] basically wrote the textbook on speech processing.
Re: Ask HN: Concepts that clicked only years after you first encountered them?
#119(2) Recursion
Re: Ask HN: Concepts that clicked only years after you first encountered them?
#120Unit testing and using dependency injection to write test-able code. I'm not sure if it was years, but it wasn't immediate. I just didn't understand why dependency injection was good at first, and not just someone's weird personal code style choice. I thought it was just people being "Enterprisey" which I'd encountered many times over the years. Once I committed to unit testing, I realized how necessary it is. Unfort…
Another solution is to eliminate classes and only use structs or similar plain objects. Makes mocking and testing functions much easier. At this point I see no reason for OOP whatsoever and consider it a big mistake.