110jawefopiwa | 1 year ago | on: Career Development: What It Means to Be a Manager, Director, or VP (2015)
110jawefopiwa's comments
110jawefopiwa | 1 year ago | on: So Long and Thanks for All the Words: A Toast to Douglas Adams
"I love deadlines. I love the whooshing noise they make as they go by."
-Douglas Adams
110jawefopiwa | 1 year ago | on: When will we fix the tools that run the world?
Presumably the CEO would believe that improving the quality of their company's products will lead to increased profits/revenue.
110jawefopiwa | 1 year ago | on: Static search trees: faster than binary search
110jawefopiwa | 1 year ago | on: Advent of Code 2024
I suppose. I do actually useful projects at work. AoC reminds me of why I personally loved programming in the first place - solving small technical puzzles. I don't like trying to make every single moment of my life "productive".
110jawefopiwa | 1 year ago | on: Advent of Code 2024
110jawefopiwa | 1 year ago | on: Advent of Code 2024
I find no particular pleasure in using an everyday language like Python for it, because as you said it's too easy.
I have used Haskell, Racket, and in some easier cases APL and it's been fun. Treating it more like a puzzle than an actual programming assignment.
When learning new languages, it's best to do something that actually makes you think in a different shape. If you know Python, don't do Ruby. If you know Java, don't do C#.
110jawefopiwa | 1 year ago | on: Self-Documenting Code
You're doing so much extra work here. Creating many new arrays, running a bunch of extra function calls, creating extra closures, and really obfuscating code from the engine. This will tank performance.
This is the point at which people come back at me with something about "premature optimization" being bad. That's all well and good, but if you prematurely pessimize and let these patterns creep throughout your codebase, you end up with products that are significantly slower than they should be.
I've spent quite a while working on JS engines, and it always impresses me how much extra work exists in JS developers' code, seemingly for no real reason, and it's slowing down the entire internet. This doesn't appear to be better for the developer, the user, or any potential future maintainers.
110jawefopiwa | 1 year ago | on: Amazon reveals first color Kindle, new Kindle Scribe, and more
Interestingly, I switched from Kindle to Kobo because it was lacking various basic features that made it not feel premium.
* Kobo epubs can show "pages in chapter" progress so I know how much longer there is until a nice stopping point, while Kindle only shows "minutes left in chapter" which is functionally useless.
* Kobo had blue light blocking night shift before Kindle Paperwhite (I think both have it now?)
* Kobo had a convenient feature where you slide your finger along the side of the screen to change brightness, instead of having to go into multiple menus to do this.
It's possible these things have been remedied, but especially the chapter progress thing put such a bad taste in my mouth that I never wanted to touch Kindle again.
110jawefopiwa | 1 year ago | on: Project Euler #912: Where are the Odds?
I've done a fair amount of Advent of Code and I wouldn't say it's at all "focused" on this. The vast majority of the questions use hash tables and graph traversal as the full extent of their use of math/DS/algos.
There's always one or two puzzles every year that require some particular math/CS insight but most of them just need you to know BFS and/or how to write a parser.
Your examples are also not bad, but they seem to be primarily concerned with "getting familiar with a new programming language" in the context of writing a web server, which is one of the parts of programming I try to stay away from. Most of your examples require less familiarity with the language's features and more with libraries you might use, which is less interesting to me personally (then again, I'm a PL fan and I write compilers for a living).
Meanwhile, I like AoC because I've used language features to take the fairly straightforward potential implementations and write them more elegantly in the language I choose. e.g. I use Monads in Haskell, or use Rust's easy threading to parallelize solutions, etc.
For me, learning a new programming language is largely uninteresting unless it changes the fundamental "shape" I think in, rather than what the exact names of the libraries I use change to. e.g. I already know Java so I'm not really going to bother "learning" C#. I already know Python so I don't really bother diving deep into Ruby, etc. However, I learn Haskell, Rust, Forth, Erlang, Scheme, etc.
110jawefopiwa | 1 year ago | on: I Am Tired of AI
For now. Given that most new devices seem to be fully hostile to the concept of general purpose computing (see phones, VR devices, TVs, etc), I wonder how long it will be before many of the computers that are sold are even more locked down than Chromebooks - just a few prompts for interacting with a preinstalled LLM.
VP - Tells directors to work faster
Director - Tells managers to work faster
Manager - unblocks team
ICs - do real work