Hacker News new | past | comments | ask | show | jobs | submit | throwaway35777's comments login

What we don't teach or reward today is the behaviors and engineering process to write high quality code.

A surprising number of inexperienced developers do the following: "once I get any working solution I should immediately open a PR" and let the senior engineers tell them what's wrong with it.

When the big money leaves this field I hope there will be more pressure for people to adopt good engineering practices. I love to work with folks who put good effort into trying to make high quality changes. Personal initiative and ethics are how high quality software gets written.


Agreed, this has been one of the habits I've had to break during my computer engineering PhD at a scientific research lab. Initially I was just submitting the first solution I came up with without much additional thought.

My senior developer mentors ended up having to effectively rewrite all of it because while it was technically correct and efficient, it broke all sorts of other good practices (eg didn't fit the existing coding style), or added in additional library dependencies without much thought towards long term maintainability and backwards compatibility.

It was taking so much time for the handful of already busy developers to go through my work that I had to learn to slow down, properly study the existing code and think about writing high quality code that fits the existing codebase. They didn't have the time to put down all their other work just to spend hours walking me through improving.

As you mention, it was like with learning art, it's impractical for a teacher to walk you through everything, you have to learn to identify errors and things you need to improve through your own meticulous study, relying on the teacher to give you hints when you're stuck.


You’re right and it’s even worse. Much of the content on “engineering” especially on YouTube teaches resource intensive and overly complex practices sold as good programming. Moving more work to runtime. Increasing dependencies. Relying increasingly on blocking RPC. Wasting memory, cpu and storage.

A rejection of performance and compatibility as the core principles of software engineering in favor of “syntactic sugar” and “idiomatic Haskell”


> folks who put good effort into trying to make high quality changes.

In my 13 years in the industry, I’ve never worked at a place that valued that. More features faster, how many points this sprint is all that mattered. It’s put me off software engineering altogether.


The process you're describing is the exact thing you want to happen: junior developers are trying to learn to write better code. Why should they waste their time researching not their code base when they can instead learn off their code base from people experienced with it?


Because that's what everyone does? You learn by studying other's people work and try to apply it to your own. Painters, musicians, architects, etc … all do it. Why not developers? Instead everyone's rushing to learn React without even knowing the DOM api. Or build a web app with 1000s of dependencies that could be done with a few PHP files. And then they say they need docker and k8s.


The entire debate is over which qualities count as "better". Even "readable" is subjective. Some people love Java with sentence-long variable names. Some love 1-letter vars. Some love 100-deep call stacks, some love flat code. Some love microservices, some love resident call-stacks.

Aesthetics matters.


Don't successful drugs also have to pay for the failed trials?


This is essentially true. Pharma is incredibly expensive (for lots of different reasons), with R&D taking up a huge portion of those costs.

So yes, it's safe to assume that part of the accounting around those published costs in the billions are all of the failed candidates that never even made it to trials (the failure rate varies depending on the area of biology and the type of drug, but it's generally around 9 out of every 10 candidates [1]. By the time you get to trials, that ratio gets even more abysmal).

Disclaimer -- I work for Recursion, a company built around this very problem.

- [1]: https://www.sciencedirect.com/science/article/pii/S221138352...

- [2]: https://www.recursion.com


R&D takes lots, but so does compliance --for good reason. But compliance costs a lot of money, directly and indirectly. Lots of people, lots of inefficient processes, etc.


Why do the phase testing not prevent overindexing failed projects?


Yes. They also have to pay for the $4.2B the companies spend on lobbying efforts in 2023.

https://www.nbcnews.com/investigations/lobbyists-spent-recor...


Seems like a lot, but in the context of $200B spent on R&D, 2% spent on warding off confiscation is probably money well spent.


Uhhh.. $4.2B is all lobbying, not just pharma?


And also for failed executive pay, and failed lobbying, which are much more expensive. In some cases (like Aduhelm) the marketing started before it was shown to have efficacy... so you have to pay for that very expensive failure too.

https://www.washingtonpost.com/business/2024/03/08/eli-lilly...


Stoicism was philosophy marketed to and practiced by the Roman elites, so that Logos reinforced the social hierarchy is not surprising.

That being said, the philosophy has many practical lessons to teach. Meditation and philosophy helped me personally through a long illness.


It's a bit of a stretch to call Epictetus part of the elite - he's was a slave.


Wow! What do you work on? Is the problem the ability of the candidates -- do you think it's possible for a "good" engineer to get productive on six months?


There also used to be Triplebyte. It filled a niche of talented people who have bad resumes and don't know anybody. Found a great job through them when I was starting out.

Real shame there's nothing to replace it, there's huge arbitrage in the market of good people who don't know people. If I were starting out now I don't know what I would do, how do you even meet people.


How did triple the identify those people? I remember the name, but not their service.


They did tons of open tech interviews for basically anyone who could pass an online quiz, and if they thought they found a good candidate Triplebyte would provide them as higher quality / prescreened candidates to other tech companies looking to make a hire (for a recruiting fee).

I got my first job through Triplebyte actually. I think I would have gotten one without it since I was getting interviews and getting better at them. Even though I had passed the Triplebyte tech screen I got very few company "matches" or opportunities through them, but one ended up working out for me to get my foot in the door.


I recall that they were on HN previously: https://news.ycombinator.com/item?id=23279837 (I haven't looked at their service and don't have plans to.)



What exactly is their intention?


Banning content that is both critical of the government and extremely popular with younger people

There's a lot more leftist/anticapitalist content (and political content in general) on tiktok compared to youtube shorts and instagram reels.


Is there more of that type of content? Or is it pushed up by the tiktok algorithm more than other social media? I don't think this is the case, but you are not in a position to state that categorically.


I don't think you'll ever be able to get a straight & correct answer to that question, but I don't think it really matters, because the effect is the same.

I and every friend I've talked to about tiktok has seen much more political content on tiktok than other short video apps.


You don’t think it matters whether you are viewing the authentic crowdsourced views of your countrymen, or the boosted political propaganda of an adversary?

Really?


I'm not sure why you're arguing with me, I never ascribed merit or claimed it was good or bad


Gee I wonder why that is.

Who owns the damn thing anyway?

Oh right. Communists.


No content has been banned, though.


Are there any places like it nowadays?


I'm sure there are but they can be hard to find. Most of them will be smaller companies with really stellar hiring.


Living in a city is like being in a trance. The experience reminds me of Insomnia.


There is an excellent old book on the subject, How to Win Friends and Influence People. I was lacking in this area and my career improved greatly after reading it.

In general, people are cautious when giving criticism because it carries implications.

Say a manager gives negative feedback to a subordinate. The subordinate now believes the manager doesn't like them. The subordinate follows the standard advice: start looking for another job. Manager now has the larger problem of hiring a replacement.

It's best to reinforce positive behavior. Little trick I learned: compliment people. Find an reason to say "nice work" on every code review. DM people and say "nice presentation", "great design". It works.


> There is an excellent old book on the subject, How to Win Friends and Influence People. I was lacking in this area and my career improved greatly after reading it.

I've read the book, as a matter of fact. :) Although it's been quite a few years, I recall feeling like it was mostly a guide on manipulating people, and it didn't make a great impression on me, personally. I'm glad it was helpful for you, though!

> Say a manager gives negative feedback to a subordinate. The subordinate now believes the manager doesn't like them.

I hear this and think back to what I said in my previous comment about the value of their feedback. There are certainly things a manager could say that would leave me feeling disliked in a personal way, but I can easily separate genuine feedback about my work or my ideas from personal statements.

> It's best to reinforce positive behavior. Little trick I learned: compliment people. Find an reason to say "nice work" on every code review. DM people and say "nice presentation", "great design". It works.

I, too, believe in the value of giving genuine compliments, and I try to make sure I tell people any time I think they are doing good work. A clever solution deserves acknowledgement, for example. I suppose it just doesn't feel genuine when I'm using them to soften the potential blow of constructive criticism.


> I recall feeling like it was mostly a guide on manipulating people, and it didn't make a great impression on me, personally.

Any action will affect other people in some way. What matters is how you choose to utilize that capability.


Don’t DM them, give positive feedback publicly, negative feedback privately.


{Montana, North Dakota} --> {Washington}?


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

Search: