I also have a local zsh autocomplete macro that let's me type things like "git rename annotated branch" and ctrl-g and it will get me the actual command. There's also a ctrl-r mode that searches my history using natural language. This is connected to a locally run ollama so my keys don't leak.
I’m not sure the core thesis is correct for two reasons. I’ve been around the block a few times now and I don’t think I’ve ever lived in an era where people were like “the current state of design is awesome”. There are always rose-tinted think pieces with some dubious stats about how things are awesome in the past.
Secondly, idiomatic is good if it matches your mental model. However, what does idiomatic mean in the context of billions of people coming from various computing starting point. Just as a simple thought exercise, how do you design idiomatically for people who are most familiar with Windows era computers and people who start with touchscreens, both generations who are still alive today?
The Mac desktop era before its iOS-ification was, in fact, awesome. It was a triumph of consistency. The UI guidelines were excellent. Nearly every application worked in predictable ways. I appreciated it at the time and I miss it terribly.
Yes and no. My question is, what do you want to achieve by going through a boot camp? Using the certification as a pivot for career change? Having an short period of time where you can focus and intensely study the subject? I think it's important to consider what specifically about the boot camp route is important to you, because there are a lot of other ways to be proficient in coding.
Tutorials on various common "patterns" (RoR web apps, iOS apps etc.) are of good quality and easily available these days. As a PM in big tech, you can try to find little ways to contribute into the product's code base, which will teach you both programming and engineering practices. In my experience (disclaimer: was a PM), engineers are delighted when PMs show interest in code, and at least a few would be excited to hand hold you through the process of setting up your dev box, building the product etc. It's not a bad way to get better while making hand and fist full of money.
That said, like any other craft and practice, programming is layered and specializes. It takes 5-10 years to be "good", and it takes equals amount of time to be good in a specialization (say machine learning for example). Even for a good ol' engineer to move from building web apps to building machine learning systems, the barriers are still non-trivial. Furthermore, consider that a career in software engineering is perhaps more akin to spending 20% of your time building somewhat sexy* new thing, and 80% of your time doing boring boiler plate work, trying to pull your hair out digging through other people's APIs and code, and wondering why the build and CI system is so broken. If that's what you want to do, then go for it.
* most likely it's just a boring CRUD app using somewhat unfashionable technology.
>engineers are delighted when PMs show interest in code
In particular, if you want to go for sink or swim, switch to a technical PM role in your dev platform (like the Dart, STL, app model, or cpp teams). You'll be forced to learn more about how developers work and what goes into a language. Can highly recommend it.
I think it's more apparent if you have to move and you're forced to pack everything into boxes. If you've stayed at one place for long enough, there'll be enough "trinkets" accumulated such as plates, mugs, spoons, forks, knives, mugs, wine glasses, lunch boxes, peeler, graters, freezer bags, candles, lighters, etc. etc. It's the things that are in the cabinets and drawers that we frequently unaccount for.
Just generic ones from Office Depot. I have four big ones (3x6 or so?) and one smaller one hanging in my living room (which is more of an office for the startup right now, than it is a "living room").
I watched the talk and was caught off guard by his mention of Larry Tesler. I can understand why because that did usher an era of easier to use text editors.
However, I'd like to emphasize that there is always a place for tools that are sufficiently complex such that it allows the craftsman wield it proficiently. Past a certain point of simplification, a tool would lack the necessary vocabulary to express things succinctly. Like why Jargon is necessary sometimes.
However, I think Vim is fundamentally a finite state machine. While complex, once you grok the mental model of how it works, everything else comes quite naturally. So fear not.
I find it interesting that emacs is basically the modeless Vim. I imagine that there are modes involved, but chorded input is basically modeless. I wonder if it makes a difference to the craftsman. Perhaps I should learn emacs to understand the difference.
I'm currently going in sort of the other direction. I'm usinge evil-mode which is VIM implemented in Emacs. Emacs does have many of the powerful features of VIM but what it lacks are composable commands. So what in Emacs would take NxM separate commands can be supported in VIM/Evil-mode with N edit commands and M movement commands (not to mention the modifiers like (i)nside or (a)around). I find myself intuitively using combos ive never used before, it just makes sense that they would work whereas I would have had to learn them individually in Emacs. What Emacs has that VIM lacks is it's amazing customisability, I love switching to scratch and changing how my editor works on the fly, I also totally rely on Org-mode along with my customisations of it (I even use it to generate my website!). I'm sure it's not for everyone and I wouldn't recommend it to someone without Emacs, or at least VIM, experience but for me Evil-mode really feels like the best of both worlds.
(commenting from my phone so please excuse weird autocorrect thingies)
you don't need modes for richness of expression and complexity- Modal errors can mystify even the most experienced of users- and waste vast amounts of time while you're learning to use VIM. Emacs is really no better. Sublime Text 2 is as close to modeless as I've seen, but there's still a long way to go.
https://archives.fifthrevision.com/color-generator/index.htm...
I also have a local zsh autocomplete macro that let's me type things like "git rename annotated branch" and ctrl-g and it will get me the actual command. There's also a ctrl-r mode that searches my history using natural language. This is connected to a locally run ollama so my keys don't leak.
reply