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

Uuuggghhh. Bad title. The people who prop up Trump are Trump loyalists who are not necessarily conservatives. Trump, in his scorched earth conquest for extreme loyalty, pushed the most conservative politicians, by voting history, out of the Republican Party. Those people were super out-spoken against Trump including but not limited to Amash, Flake, and Cheney.


It pushed small numbers of people out on ideological grounds, but overwhelming numbers stayed. Trump got more votes in 2020 than anybody in history, except for his opponent.

80 million Republicans may not be loyal to him, but they did vote for him, twice. A voting booth doesn't care how enthusiastic you are when you pull the lever, and neither does the candidate. A vote is a vote, and as far as they are concerned any vote is a complete endorsement. Had he won he would have governed as if every Republican was devoted to him.


On the fence voters were not the subject of the article though.


> i) Like a framework, you are at the whim of TS devs as it gets updated (edited)

I have been using TypeScript for almost 6 years and not experienced this problem. Like everything else keep things simple, don’t chase trends, and so long as do right by your product everything will be smooth. I also don’t waste time with large SPA frameworks.

> ii) Libraries are badly documented

I don’t use many dependencies. The DOM and Node type definitions are extremely well documented and inspired me to write better documentation.

> iii) Error messages are hard to follow

For me this depends on the complexity of a given object or type definition. When things are primitive the error messages are more clear. My only suggestion is to keep your interfaces primitive.

> iv) It requires yet more transpilation

I use SWC as a TypeScript stripper. My nearly 50kloc project takes about 2seconds to covert to JS, which pushes out my total build time to about 2.5seconds.


> As others have noted, part of the problem here is that the engineers in question are actually not yet smart enough.

That is highly subjective and purely a result of both perspective and bias. While you can point fingers to say that someone is not yet smart enough they are likely pointing a finger back at you and claiming the same.

The only solution for something like Dunning-Kruger is humility. The only solution to find the best solution (objectively) to any criteria is by comparing measurements. The actual problem is that almost nobody measures things, because the effort is too great. Instead most people will compensate for their lack of measures with a hearty dose of confidence.

There are people who sell confidence for a living, such as salesmen and pundits. That is highly appealing to people who lack the necessary critical nature to ask the right questions or apply the smallest amount of doubt.


Hard disagree. Perhaps "not smart enough" is too strong a statement but "not capable enough" is certainly correct. Spend enough time in this industry and you'll find plenty of folks who can work well in a vacuum but cannot actually be strong both independently and working in a group setting. The latter has a lot of concrete details attached to it which has nothing to do with either perspective or bias. Ironically, you're applying an accusation of "perspective and bias" with a very sloppy brush of perspective and bias.


> Spend enough time in this industry…

I have 20 years in this industry. It’s full of stupid people pointing fingers somewhere else. Any time this is pointed out developers play the special snowflake game and pretend that software is something special or unique, but it isn’t. Everything is measurable just like any other industry.


What have you accomplished in your 20 years in the industry, out of curiosity?


I have written the fastest network transmission implementation for Node.js and made the front page of HN (under a different account) for creating an original diff algorithm among various other things. While I was doing that I was also holding a part time job in middle management in an unrelated industry. This original software wasn’t written by whining and blaming people for my sadness.


Note that my advice, if followed, has the effect of giving the OP's engineers more space to develop efficient implementations than they would probably get if OP acts on their instincts.

This is not a coincidence. If you look at my own public work at e.g. https://github.com/chrchang/plink-ng/tree/master/2.0/ and https://github.com/grailbio/base/tree/master/simd , you can see that I play the role of the "not yet smart enough" engineer, not the manager.


I'm 43 and feel the complete opposite. I am less coordinated and heavier than I used to be. I am learning advanced SQL for the first time and it feels like I am picking it up at a good speed, but still a bit slower than maybe if I were younger. I suspect this is more bias than mental degradation because I look at SQL and wonder why people would put such advanced logic into stored procedures which are limited by archaic conventions.

On the converse my primary programming skills have never been sharper. There is a caveat to this. I feel like I am an expert in what I do, which means I am confident in what I know and what I don't know. It also means there is a lot I have unlearned or intentionally avoided because such practices are anti-patterns or decrease productivity. Some of these things I deem "poor choices" are extremely common conventions which may indicate I am only a beginner from the perspective of a less practiced person who cannot live without such "poor choices".

I believe my programming skills are sharp because I am doing things outside of work that nobody else is doing. I have now reduced my OS GUI to a load time of around 165ms in Edge (130ms in Chrome). I saw a code package from Google on Github on the front page of HN either yesterday or the day before describing a means of file transfer cross-os. My personal JavaScript application has been doing that for years. Soon that personal JavaScript application will have a command terminal that executes in a web browser that works on both the local device and remote computers cross OS.

I once read about this in a book. I cannot remember if that was Blink, Outliers, or Good to Great. Performance follows practice, but the practice must be strenuous, such that you are continuously solving ever more challenging problems. Its the difference between a hobbyist whose skills will degrade over time, a professional whose skills are actively maintained but not advancing, and an expert whose skills continue to increase. As an example most senior developers I have met believe they are awesome because they are doing the same things they were doing 5 or more years ago, but now they are so much faster at it. That isn't awesome, its steady state.


This code sets an event listener on the window object for the keydown event. That means when the window has focus (or any child thereof) and a keyboard key is pressed that handler will intercept the event.

On keyboard events there is a key property which names the keyboard key pressed to result in the event execution. This handler is only looking for the 4 arrow keys and modifying an object assigned to variable inputDir. What’s interesting is that inputDir is reassigned to a baseline on each key press irrespective of the keyboard key.

Objects in JavaScript are what other languages call a hash map, a key/value pair. Key names are always string data types and there is no type or value restriction on object values. This particular object has two keys assigned: x and y. Values are reassigned respectively to an arrow key press.


I must tell why my confusion came here: Earlier in the code, we’ve done this:

    //head of snake
    let snakeArr = [
     {
       x: 13,
       y: 15
     }
    ] 

Here x,y means the grid row 13, grid column 15. That is why I’m confused. We’re using same variable names in 2 places with different meanings. In this question, we’re using x,y for direction(up,down etc).

How are we able to do this?


Further on this - inputDir is just vector, which says where to movement is happening.

As initial is x=0, y=1, it means it will increase position Y by 1 - in other words it initially goes downwards.


One major inhibitor (perhaps the most major inhibitor) of high IQ people is social repression. For example you cannot get a better software job merely by having a higher IQ. You have to find the right opportunity specifically looking for a high IQ person. Doing so greatly reduces odds of candidate selection for both the candidate and prospective employer.


If you want to maximize odds for selection focus on what’s most popular according to current practice. Be at the center of the bell curve.

If you want to be awesome then go be awesome, but you will fail many interviews before you are selected.


The timeline presented in the article is about 80 years of trajectory. Software appears to be following the same pattern through a more condensed timeline.


If you are thinking in terms of tools you are thinking in terms of building, not product. Stop dicking with tools and just build a minimal product. Think only about the minimal product goals. I find many developers go to tools first because it’s all they know.


Spot on. Devs/Engineers come in with a technology they think everyone needs while in reality nobody needs.

I have seen so many people talk about finding product market fit and they don't even really have a product. They only have a technology.


A couple of reasons:

* Most people will never voluntarily measure things. Instead people form intuitive assumptions and extrapolate performance and potential from that. This happens all the time for almost everybody.

* Business people need corporate promotions and incentive pay. The best way to achieve such is to pitch a popular idea full of shine and glitter. As an example have you ever participated in a "hack day" event? It does not matter what your final product is (or isn't). What matters is the 2 minute pitch at the end.


Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: