1,196 karma · joined July 16, 2013
As a thesis statement it is wildly out of sync with all but a few of the bullet items, most of which have almost no relation to "CS fundamentals". Working on projects outside of class/work is broadly applicable to any field, as is contributing to large projects as part of a team or group; neither of these requires "CS fundamentals." OO programming and learning specific languages are likewise disconnected. Some of the points aren't bad with respect to being required in order to be a good software engineer, but even those are too scant on detail (even for a bullet list).
Most of the "learn about" points are vague. In particular, as an example, the point about DS/algorithms is awful. What does "learn about" mean? Satellite engineers "learn about" materials, orbital mechanics, radiation and E&M, but they aren't in general expected to know the fundamentals (as a physicist would understand the term) of the theories of particle physics or gravitation for example.
The bullet points read like a survey of random computing related topics. There is no focus or cohesion connecting them to being a good software engineer. It reads like somebody's random meanderings when contemplating something they might find interesting within the field of computing. It's not a guide; it's a disconnected hodgepodge.
Remove everything that isn't related to being a good engineer (that would be almost all the points about sub-discipline-specific items, like machine learning), elaborate on the DS/Algorithms points, and provide something in the guide to actually support the opening statement (good luck).
That specific enough for you?
Also, polygraphs are pseudoscientific nonsense.
Another thing to consider: what is particularly newsworthy about it to the general public? Software technology focused people would find this very news worthy. I have little sympathy for a business of any size that uses github as its primary repository: the most-current source should be maintained on an internal server, in my opinion, and companies that require github to be fully available to operate are doing it wrong. I mean one of the primary advantages of a distributed repo is that there is a complete history for every node that has synced with the most recent commit. There shouldn't be a strong dependence on a central repo.
To me a request for portfolio contents beyond the contents of a resume is an indicator that the would-be employer is interested in people who are easily exploited or cajoled into working lots of unpaid overtime, or else that they don't actually trust the candidate's resume; both of these are negative indicators. A heavy focus on DS/algorithms for engineering positions is an indicator that the employer either doesn't understand the difference between academics/theory and engineering or, worse, thinks the latter is trivial, irrelevant, or otherwise beneath CS; both also negative indicators.
I find that to be not true. Most engineers suck at regurgitating the correct textbook CS algorithm or data structure from memory, but they are very good at engineering, which is what the overwhelming majority of programming is.
If I had to choose between a CS major and a ME for an engineering project that involved software development I'd choose the ME almost every time, all else being equal. The exceptions would be cases where academic CS knowledge is required. They exist but not nearly as frequently as Silicon Valley would have anybody believe.
They don't blow any curves necessarily but they do appear to be smarter or more able, and that impacts everything from teaching assignments to thesis committee solicitation.
The President is not the equivalent of the CEO of a private corporation. And like so many of the things around technology in government the last couple of years, this one is probably more for show than anything else.
It is my second job in this area, and I'm a bit (~15%) better compensated this time than last.
To put this in context: I'd consider myself average, maybe slightly above in some contexts, below in (many more) others, and my current salary (full-time, all-in) is closer to $200k than $150k. The majority (about 80%) of that is base salary, not "bonus", stocks/options, or benefits. If I can get a ("senior developer" level, not management) job with that compensation, the people in this valley who are much better than me (and that would be most, or at least many, many others) ought to be able to command significantly more.
They have the best interests of founders in mind only insofar as their pocketbooks and reputation benefit from it. That's at best an intersection that doesn't contain all the elements in both sets.
Disclaimer: I'm a pretty cynical and skeptical person by nature. I'm especially suspicious when people with a lot of money at risk say, well, just about anything. My experiences have lead me to believe that it is an extremely rare individual who will not go to great lengths to protect and accumulate his wealth, even to an extent that many would consider sociopathic, and further that this trait is amplified geometrically as wealth is accumulated.
I mean how likely is it that "Hashtable/JS interpreter/JVM implemented in C" is going to be a big hit on HN? Not often. But since Go, JavaScript, and other insert new hotness language here are popular things somehow it's more interesting to retread old ideas with them. That's not the sign of a young master demonstrating his skill, it is the sign of an immature field that hasn't figured out how to distinguish what is new and important from what isn't.
It's unfortunate in particular for the people who do do these projects for fun or learning. These people have their work hijacked for a showoff culture's mutual backpatting.
Sometimes it is done just to learn, but it seems a bit silly to do it in public as it were.
America has a real strong strain of the "I'm not poor, I'm merely a temporarily embarrassed millionaire" sentiment.