tikiman163
Joined 7 years ago
Joined 7 years ago
My next statement will be controversial, and is largely anecdotal, but there is very little to no research that contradicts my opinion, so I'm going to say it anyway. Smart, capable people who simply "don't test well" are almost non-existent. Even if they did, you can't accurately identify who doesn't test well except by giving them a job and letting them prove they were capable when they aren't under testing pressure. I have met hundreds of people who claimed they simply didn't test well, and only one of them later proved it by being genuinely capable and competent.
The thing that pisses me off the most about this whole debate, is that it only really matters if you think it matters whether you went to one of the top 10 universities available to you. Frankly, most employers will throw out your application if it says Harvard School of Business. The number of management jobs that want Harvard graduates is less than half the graduating class, and Business majors have it easier than most of the engineering degrees in that respect. If you're an electrical engineer, there are fewer than 100 jobs Nation wide, and they are already occupied. If you want to be a civil engineer, straight up forget about it. The medical and legal schools are the only exception, and those are graduate schools only.
There is far too much focus on whether the top 10 university admissions are fair and equitable, and far too little focus on whether we have affordable universities that meet decent educational standards for everyone who could reasonably earn a useful degree.
We definitely shouldn't be trying to get rid of standardized tests. There are arguments that can be made about their content, especially historically, but they have merit in showing whether a student is ready for certain classes. At a normal university, they use SAT and ACT scores to decide if you can skip algebra and go straight to calculus, or if you need to take even more basic classes before algebra, and they do this for science and English courses as well. Having such a laser focus on how the top 10 or top 50 schools that actually turn away applicants because they're at capacity is a massive failure to see the actual big picture when it comes to education.
Just because it seemed obvious what you were doing and how things worked while you were writing the code doesn't mean it is, or that it will stay that way. Especially if that code ends up getting abstracted out. In line comments demystify code for the next guy way better than any amount of well written documentation.
As for what they're making you do with the RFC documents for changes, try writing your stuff as an ordered multi-tier list. The first tier should be the "manager" description of the change. The next level should be the more technical description of changes. The third tier is the location in the code where that change needs to be made (like a file path sort of thing, but you could use name spaces and even method names if you want). The forth and final tier if you need it would be cross references to other related items in the list and implementation notes/challenges specific to the file path. I've used this approach in the past myself. It's much faster, and it allows you to write a spec doc that isn't a huge waste of your time because it allows you to half write your code at the same time. It also provides a sort of semantic map from how the manager thinks about things to how you think about them, making it much easier for a manager to discuss it with you without having to write nearly as much.
Another benefit to this is you can often use stuff from the second and forth tiers to add in line code comments.
Second, please, please, please stop listing your BMI as if it were a definitive measure of health. To begin with it doesn't correlate well with actual percentage body fat because it doesn't differentiate between fat and muscle. Second, the study which created the BMI was based on a population sample from a single town and all participants were within 4 inches of each other in height, and nearly all were effectively average height with similar lean body masses. If your lean body mass does not conform to the expected range from that study, BMI cannot accurately determine if you are obese, skinny, a body builder or just tall/short.
Finally, rapid weightloss is dangerous, and if you're eating fewer than 1k calories in a day while experiencing extreme fatigue and brain fog, you are more likely to be losing significant muscle mass than fat. This is may be extremely because your heart could be weakened, which could kill you. It's great that your cholesterol and overall weight is down, it's terrifying that you're eating so few calories while being unable to maintain enough physical activity to keep your body from canabilizing vital muscle tissues.
Don't get me wrong, starting a business is extremely hard work, and I'm sure you did everything you could, but when every 5th word you say or write is essentially a buzz word, people don't respond to that. Also, if all of your advertising was digital, then you need a minimum startup capital that can pay influences to make people aware of you and your product. It sucks, but unless you have a sizable following or are yourself a really good salesman, you're more likely to fail.
This is something I've studied extensively, and it's painful every time I have to tell a friend they would suck at running their own business.
It was extremely shitty what the neighbor did, but the neighbor had no authority or control beyond making an unfounded complaint. The cops and everyone involved after that point she be ashamed at just how much they screwed over the lives of everyone in that family. Most people don't know this, but just being arrested, even if no charges were filed will show up on your credit score and background check forever. Those parents aren't stuck with a couple of shitty weeks they can move past, they'll be explaining that arrest to every potential employer and loan officer for the rest of thier lives. That assumes they even get asked to explain it, rather than a generic rejection letter they can only assume is due to one unbelievably unqualified cop making an insane decision.
What I mean is that even if you've followed a specific set of programming principals, code practices and design patterns consistently across the life time of the application, there will still have been initiatives to change how things are done. Maybe they want to use a "better" authentication library, or add a material framework that has capabilities they need. The exact initiative, and how valid the request or decision is doesn't matter. These initiatives may occur one at a time, or be competing with each other for priority while being incompatible without anyone noticing. But some of them will fail to be completed, and someone has to back out the changes that shouldn't go to prod. Inevitably something will get left behind. Over 5-10 years this can have a shockingly large impact on the code base in ways engineers frequently notice but don't understand how the code got to the state its in.
This frequently means dead code, unused dependencies, comments that don't make any sense, properties on objects that are never displayed or referenced by business logic, and multiple classes/services which accept the same inputs and produce the same outputs but do the job just differently enough you can't be sure it's the same. That, and over abstractions (any piece of code which branches based on the context of "who's asking").
And frankly few things any me more than someone who felt the need to implement their own logging implementation, especially in C# (yes I know we're talking about React, but people do the same stupid crap in that case as well). Reinventing the wheel has to be done on occasion, but you need to ask yourself if it has to be you that makes it happen,and whether it already has been.
This is very dangerous behavior for any application. You don't want the front end to determine how much the shopping cart costs or to just tell the backend they've paid, therefore add the items to the orders list. Even if there isn't blatantly obvious security concerns, you should still never let your front end blindly determine data state changes. All such business logic belongs in the backend as much as possible.
What he's talking about is when business logic is split between the front and backend, which makes everything much harder to test on top of increasing the likelihood of duplicate code or even code which does the same thing but looks different enough to not be caught as duplication (which means changing business logic requires finding all the places it was implemented and changing them all, and if you miss any its unlikely anyone else will realize it until it hits prod).
The UI should always just be a shell that sends requests to a backend which determines which updates to make. There are exceptions like when a user makes form based changes to an object, but the only business logic in that case is "let the user decide what the value should be and persist that choice as is". If any additional changes may need to occur as a result of their change, your backend should make them. Even if you just need to determine if a change shouldn't be allowed because of related data, send a request to your backend requesting the answer and any relevant data necessary for display purposes, not the data necessary to make that determination.
There are exceptions to what I've said, but even in those cases, the backend should still verify whether the front end's result is correct. While the front end was working, a change could have gone through in the backend which invalidates that change. This is why things like concurrency/version tokens can be very important.
In any case, Graphql may have capabilities that look like they help keep business logic in the backend, but it doesn't stop programmers from putting business logic in the front end anyway. No matter how you try to look at it, spreading business logic out across your applications various layers always has unintended consequences for maintainability and even scalability.
Also, anybody who thinks accusing a rescue diver of pedophilia purely because he told them not to interfere with rescue efforts is pretty far from being a genius. Musk has been lucky his whole life, people just rarely see his failures.
Basically, his press is full of shit. The claim that he learned to program and wrote a video game at age 10 is quite ridiculous. Seriously, there are online websites where you can play his "game". It's Space Invaders, except theirs only one alien, you can't have multiple projectiles on the screen at the same time, the alien doesn't fire at you unless they get extremely close, if the alien fires at you it locks your controls making it virtually impossible to dodge and prevents you from firing back, and when you successfully hit the alien it immediately respawns at a random location which may be in range of you, resulting in you immediately dying. My own nephew programmed significantly more impressive games at age 10, will people start following him and assume he's never made any mistakes if someone who owns an emerald mine gives him hundreds of millions of dollars to invest into new technologies and the businesses don't ultimately fail?
This next bit is mainly speculation, but the reason Musk is actually trying to back out is partly to do with the fact that signing the merger contract caused his other companies stock prices to drop and public speculation that his existing business would suffer if he needed to focus on running Twitter. The second and more widely believed version of events is that partly due in fact to his other stock prices dropping, Musk cannot afford Twitter without having to sell more of Tesla and SpaceX than he is willing to. Musk is already down to owning only 17% of Tesla and less than 50% of SpaceX, although that's complicated as some percentage of Tesla is owned by SpaceX and vice versa along with the Boring company in such a way that Musk effectively has majority control over SpaceX whenever he wants. If he has to sell additional stock to cover the purchase of Twitter he would very likely lose the ability to control everything except possibly the Boring Company.
What's more, the contract he signed effectively puts him in a position of buying Twitter at a substantial loss as the stock market has significantly fallen since Musk signed the deal. He would effectively be losing significant control of his two primary sources of wealth in exchange for something he has likely since discovered he cannot run the way he wants.
In short, this was a bad move financially when Musk first announced his intentions, it was extremely foolish of him to waive due diligence, and it became financially even worse shortly after he signed the deal, partly due to the facts that people lost trust in him for waiving due diligence while making a financially inadvisable move, partly due to the fact that he's actually pretty bad at math and doesn't understand the stock market, and partly because the stock market took a nose dive right after he foolishly waived due diligence and signed such a financially ruinous deal.
If you're thinking Musk is smarter than I'm making him out to be, please consider that Musk tried to insert himself into a cave rescue he had nothing to do with, was told not to interfere with the professionals that know what they're doing, and retaliated to being told to butt out by publicly accusing the rescue team lead of being a pedophile despite knowing nothing about the man.
Trying to offer to help without really understanding the situation isn't necessarily a bad thing, but randomly accusing someone of being a pedophile because they were critical of you is so far beyond acceptable behavior it's amazing Musk wasn't banned from Twitter as a result (it was where he made the accusation publicly). That level of harassment violates Twitter's ToS, plain and simple.
I hope Twitter users don't have to deal with too much chaos as a result, but if it half bankrupts an idiot who openly accused a rescue diver of being a pedophile, despite knowing nothing about the man, and merely because he told Musk not to interfere with rescue operations, then let Twitter deal with a little chaos.
Some people are saying they aren't doing testing, I know this to be incorrect in one very important way. When it comes to people, the ways in which a co-worker is going to be wrong are predictable. When it comes to AI written code, there is zero predictability as to what could be wrong.
Trying to test AI written code is like writing code with no try catch blocks, and expecting the application to not crash within 15 minutes of giving to the end user. They will try everything you didn't think to explicitly handle, and when it comes to AI there is no try catch block for subtly incorrect or incomplete logic.