_hardwaregeek
Joined 9 years ago
Joined 9 years ago
Any social engineer can tell you that appearances are half the battle. A white male in a hardhat with a clipboard could get into most construction sites. A white male in a suit could probably get into most office buildings.
There's some rather vehement responses in this thread. I wonder how many people are threatened by the idea that their accomplishments are partially due to them "looking the part" and not just their work and skill.
And citing parsing isn't a great example. Parser generators have been around for ages. And they're usually not the hard part anyways. Defining a simple grammar and parsing it, even manually, isn't that terrible of a task. Getting decent error messages and figuring out recovery? That's trickier.
Code generation has certainly gotten easier. But you still need to go through the process of figuring out how to lower your abstractions. My language is still extremely basic but I've still had to map my high level types and control structures down to WebAssembly. LLVM won't do that for you.
There's also more that your average user expects if you want a language that people use. Decent tooling is important, so a language server and some syntax highlighting packages in different editors. Good error messages. Decent type inference. Most of these you can eschew in the first few iterations of your language but eventually you'll need them.
I feel bad criticizing this post because writing a language has been one of the most instructive experiences I've had. I've learned so much about code generation, typechecking, the WASM spec, etc. But it's still a lot of tough work to get to something people can use. I'm not sure parser generators and LLVM make it that much easier.
It'd be interesting seeing the long term effects high school sleep schedules have on people. I wouldn't be surprised if poor sleep patterns in adolescence lead to insomnia and other issues later in life. I definitely felt like my high school sleeping patterns were damaging to my mental and physical health.
I wonder if companies like TripleByte are actually successful in solving this issue. I've avoided them because I'm skeptical of recruiting companies, but it might be a good idea to have people take one coding screen and have it apply to multiple companies.
I'd love to do away with coding screens in general. I glanced at the doc for Stripe and it looks great. I'd have loved to read this doc, but the last time I applied to Stripe I got a HackerRank followed by an auto-rejection. I get why coding screens exist, but it's so annoying to be batted away because I failed blind automated tests.
Or I could chain an ok_or_else on an Option but ugh now Rust is complaining that I'm capturing a reference to self. Screw it, I'll rewrite it to be an if let with a return. Part of the problem there is that we know an ok_or_else with try! will execute the closure and return if the value is None, but Rust's borrow check doesn't know that.
None of this is Rust's fault. It's just that it's hard to combine ergonomic closures and borrow checking.
GitHub: nicholaslyang Email: [email protected]