HN user

vshan

457 karma

Hello there.

Posts13
Comments50
View on HN

"How many of you are from consulting? Oh that's bad. You should do something.

No seriously, I don't think there nothing inherently evil in consulting, I think that without owning something over an extended period of time, like a few years, where one to take responsibility for one's recommendations, where one has to see one's recommendations through all action states and accumulate scar tissue for those mistakes and to pick oneself up off the ground and dust oneself off, one learns a fraction of what one can.

Coming in and making recommendations and not owning the results, not owning the implementation I think is a fraction of the value and a fraction of the opportunity to learn and get better.

You do get a broad cut at companies but it's very thin, it's like a picture of a banana, you might get a very accurate picture but it's only 2 dimensions, and without the experience of actually doing it you never get 3 dimensional, so you might have a lot of pictures on your walls, you can show it off to your friends, I've worked in bananas, I've worked in peaches, I've worked in grapes, but you never really taste it, that is what I think."

I'd argue the opposite really, re: 'using C/C++ at all is probably "too clever"'. By using modern C++ features it is possible to enforce a Rust-like model of ownership, without any memory management (eg. we don't use 'new' or 'delete' anywhere in our codebase). This helps reduce what the author calls "complicated, Klein-bottle-wannabe tricks", labyrinthine Java classes of GC goodness where you don't know where the code begins/ends.

The weed work is the most painful though. We get through it at work because we have to. But for any personal hobby projects, I feel nails scraping blackboard level of frustration when some build issue or other trivial minutiae come up.

GitHub Classroom 6 years ago

I so wish all of this content was public. How lovely would it be for skill development if all of us had access to these assignments and projects with auto-graded tests.

Yes, I've had the opportunity to contribute to some existing projects but I've been limited to making feature contributions. I feel like my "system design" skills don't get exercised as much which is why I wanted to go for a greenfield thing.

I feel the opposite way. When I was studying at university, I found it quite hard to motivate myself to do boring assignments, but after joining a BigCo and talking to customers who are direct beneficiaries of my work, it is much more rewarding and I feel more naturally motivated.

From Nat Friedman, future CEO of GitHub (https://www.reddit.com/r/AMA/comments/8pc8mf/im_nat_friedman...):

"Developers are really particular about their setup, and choosing an editor is one of the most personal decisions a developer makes. Languages change, jobs change, you often get a new computer or upgrade your OS, but you usually pick an editor and grow with it for years. The last thing I would want to do is take that decision away from Atom users.

Atom is a fantastic editor with a healthy community, adoring fans, excellent design, and a promising foray into real-time collaboration. At Microsoft, we already use every editor from Atom to VS Code to Sublime to Vim, and we want developers to use any editor they prefer with GitHub.

So we will continue to develop and support both Atom and VS Code going forward."

It's astounding how much of Kubernetes is simply marketing. Google doesn't even use it internally.

Service Fabric[0] is leagues ahead of any cluster orchestration framework, heck, it's a complete distributed systems platform which powers all critical Azure services (Cosmos DB, Cortana, SQL DB). It is the only framework that allows native stateful applications; your state doesn't need to be delegated to another service. It offers Reliable Collections (Java and C#) which are persistent, replicated and sharded native collections.

I wish more devs knew about SF.

[0] https://github.com/Microsoft/service-fabric

“It's not that students don't "get" Kafka's humor but that we've taught them to see humor as something you get -- the same way we've taught them that a self is something you just have. No wonder they cannot appreciate the really central Kafka joke -- that the horrific struggle to establish a human self results in a self whose humanity is inseparable from that horrific struggle. That our endless and impossible journey toward home is in fact our home. It's hard to put into words up at the blackboard, believe me. You can tell them that maybe it's good they don't "get" Kafka. You can ask them to imagine his art as a kind of door. To envision us readers coming up and pounding on this door, pounding and pounding, not just wanting admission but needing it, we don't know what it is but we can feel it, this total desperation to enter, pounding and pushing and kicking, etc. That, finally, the door opens...and it opens outward: we've been inside what we wanted all along. Das ist komisch.” ― David Foster Wallace, Consider the Lobster and Other Essays

"When we were learning about manufacturing at Mac, we hired a Stanford Business School Professor at the time named Steven Wheelwright, and he did a neat thing. He drew on the board a little chart, first time I met him. He said, you can view all companies from a manufacturing perspective this way.

"You can say there's five stages-- one, two, three, four, five. They have all these things. And stage one is companies that view manufacturing as a necessary evil. They wish they didn't have to do it, but damn it, they do. And all the way up through stage five, which is companies that view manufacturing as a competitive opportunity for competitive advantage. We can get better time to market, and get new products out faster. We get lower costs. We get higher quality.

"And in general, you know, you can put the American flag here [puts it under 1], and put the Japanese flag here [puts it under 5] [Laughter] [Applause]. And that's changing, however.

"By the way, just going back to software for a minute, I often apply this scale to computer companies, and how they look at software. See, I think most computer companies are stage one. They wish software had never been invented. I put Compaq in that category. And IBM is maybe stage two, and things like that. And I think there's only three companies in here [pointing at 5] and that's us, Apple and Microsoft, in stage five. We start everything with the software and work back."

Wow. I think this is a great way to look at how companies look at ML/AI: You have Facebook, Google, MS, Amazon trying to use it as a competitive advantage, whereas I'm sure there are some companies (medical?) that wish these systems were never invented.

This also shows why you would want to be at companies that look at software as a competitive advantage: as an engineer you are the profit centre and not the cost centre.

1. On Computable Numbers, with an Application to the Entscheidungsproblem by Alan Turing

2. A Mathematical Theory of Communication by Claude Shannon

3. Recursive Functions of Symbolic Expressions and Their Computation by Machine by John McCarthy.

4. Bitcoin: A Peer-to-Peer Electronic Cash System by Satoshi Nakamoto

5. Reflections on Trusting Trust by Ken Thompson

6. Time, Clocks, and the Ordering of Events in a Distributed System by Leslie Lamport

7. As We May Think by Vannevar Bush

8. The Anatomy of a Large-Scale Hypertextual Web Search Engine by Sergey Brin and Lawrence Page

May not be hot tech like ML, but traditional symbolic AI is still pretty useful in stuff like Natural language processing. Plus, it's a great way to learn functional programming too.

Book rec: Computation Semantics with Functional Programming. It goes through the whole gamut of formal languages, lambda calculus, propositional logic, predicate logic, logical inference engines, nl semantics etc. It uses Haskell to build concrete examples for each section, and contains a concise tutorial on the language too. Very self-contained. No prerequisites required.