5 ms·
We can’t really call the field engineering if this is the standard. A fundamental understanding of what one’s code actually makes the machine do is necessary to
by silver_silver 2y ago
We can’t really call the field engineering if this is the standard. A fundamental understanding of what one’s code actually makes the machine do is necessary to write quality code regardless of how high up the abstraction stack it is
- cudgy 2y agoSure if you are doing embedded programming in C. How does one do this in web development though where there are hundreds of dependencies that get updated monthly and still add functionality and keep their job?
- kragen 2y agoMaybe switch to less frequently updated dependencies and rewrite the easy ones in-house?
- pdimitar 2y agoYes, and I should overrule half the business decisions of the company while I am at it. Oh, and I'll push back on "we need the next feature next week" and I'll calmly respond "we need to do excellent engineering practices in this company". And everybody will clap and will listen to me, and I will get promoted. ...Get real, dude. Your comments come across a bit tone-deaf. I am glad you are in a privileged position but you seem to have fell for the filter bubble effect and are unaware to how most programmers out there have to work if they want to pay the bills.
- ori_b 2y agoYes, sometimes things are unfixably broken, and it's impossible to build anything good. For everything else, there's MasterCard.
- pdimitar 2y agoAny golden MasterCards with $50M one-time limit you could offer for free? I can think of a few things to fix with those. RE: unfixably broken, well, not necessarily in concept but de facto you are sadly correct. Most people resist even the provably good changes.
- klibertp 2y ago> For everything else, there's... ...the very definition of brokenness :D Not much of a (good) choice there...
- inkyoto 2y ago> For everything else, there's MasterCard. I'm pretty sure that the original meme was «In God we trust; for everything else, there’s American Express» (with or without cocaine).
- kragen 2y agoI know a lot of people have terrible jobs at profoundly dysfunctional companies. I've had those too. That situation doesn't improve unless you, as they say, have the serenity to accept the things you cannot change, the courage to change the things you can, and the wisdom to know the difference. Not everyone has a position where they have the autonomy to spend a lot of effort on paying down technical debt, but some people do, and almost every programmer has a little. I think it's important to keep in view both your personal incentive system (which your boss may be lying to you about) and the interests of the company.
- pdimitar 2y agoThe serenity in question boils down to "I'll never make enough money to live peacefully and being able to take a two years sabbatical so let's just accept I'll be on the hamster wheel for life and I can never do anything about it". No. I'll let my body wither and get spent before my spirit breaks. I refuse to just "accept" things. There's always something you can do. BTW is that not what HN usually preaches? "Change your job to a better one" and all that generic motivational drivel [that's severely disconnected from reality]? Not throwing shade at you here in particular, just being a bit snarky for a minute. :) RE: your final point, I lost the desire to keep view of both my personal and my company's incentive systems. Most "incentive systems" are basically "fall in line or GTFO". Before you ask, I am working super hard to change my bubble and get a bit closer to yours. To say it's not easy would be so understated so as to compare the description of a lightning hit on you and you enduring the said lightning hit. But as said above, I am never giving up. But... it's extremely difficult, man. Locality and your own marketing matter a lot, and when you have been focused on technical skills all your life and marketing is as foreign to you as are the musical notes of an alien civilization... it's difficult.
- kragen 2y agoI can't recommend others follow my path. Some of the results have been pretty bad. Hopefully your path works out well. We all die in the end.
- silver_silver 2y agoThe current state of web development is unfortunately a perfect example of this quality crisis. The tangle of dependencies either directly causes or quickly multiplies the inefficiency and fragility we’ve all come to expect from the web. The solution is unrealistic because it involves design choices which are either not trendy enough or precluded by the platform
- kragen 2y agoSteam engines predate the understanding of not just the crystalline structure of steel but even the basics of thermodynamics by quite a few decades.
- silver_silver 2y agoYes and they’re far less efficient and require far more maintenance than an equivalent electric or even diesel engine, where equivalent power is even possible
- BlueTemplar 2y agoWhy do you assume that the same doesn't apply to electric and diesel engines ?
- jmb99 2y agoWe don’t have to assume, because we know. We can calculate and measure the efficiency of gasoline and diesel engines, and electric motors. We know that electric motors are highly efficient, and ICE engines are not.
- BlueTemplar 2y agoWe're not talking about efficiency, we are talking about engineering developing before science.
- kragen 2y agoSteam engines currently power most of the world's electrical grid. The main reason for this is that, completely contrary to what you said, they are more efficient and more reliable than diesel engines. (Electric motors of course are not a heat engine at all and so are not comparable.) Steam engines used to be very inefficient, in part because the underlying thermodynamic principles were not understood, but also because learning to build safe ones (largely a question of metallurgy) took a long time. Does that mean that designing them before those principles were known was "not engineering"? That seems like obvious nonsense to me.
- retros3x 2y agoThe problem is that software is much more forgiving than real life engineering project. You can't build a skyscraper with duct tape. With software, especially the simple webapps most devs work on, you don't NEED good engineering skills to get it running. It will suck of course, but it will not fall apart immediately. So of course most "engineers" will go the path of least resistance and never leave the higher abstractions to dive deep in concrete fundamentals.