Typing isn't the fun part of it for me. It's a necessary evil to realize a solution.
The fun part of being an engineer for me is figuring out how it all should work and fit together. Once that's done - I already basically have all of the code for the solution in my head - I've just got to get it out through my fingers and slog through all the little ways it isn't quite right, doesn't satisfy x or y best practice, needs to be reshaped to accommodate some legacy thing it has to integrate that is utterly uninteresting to me, etc.
In the old model, I'd enjoy the first few hours or days of working on something as I was designing it in my mind, figuring out how it was all going to work. Then would come the boring part. Toiling for days or weeks to actually get all the code just so and closing that long-tail gap from 90% done (and all interesting problems solved) to 100% done (and all frustrating minutia resolved).
AI has dramatically reduced the amount of time the unsatisfying latter part of a given effort lasts for me. As someone with high-functioning ADD, I'm able to stay in the "stimulation zone" of _thinking_ about the hard / enjoyable part of the problem and let AI do (50-70%, depending on domain / accuracy) of the "typing toil".
Really good prompts that specify _exactly_ what I want (in technical terms) are important and I still have to re-shape, clean up, correct things - but it's vastly different than it was before AI.
I'm seeing on the horizon an ability to materialize solutions as quickly as I can think / articulate - and that to me is very exciting.
I will say that I am ruthlessly pragmatic in my approach to development, focusing on the most direct solution to meet the need. For those that obsesses over beautiful, elegant code - personalizing their work as a reflection of their soul / identity or whatever, I can see how AI would suck all the joy from the process. Engineering vs. art, basically. AI art sucks and I expect that's as true for code as it is for anything else.
> Perhaps he and other true geniuses can understand things transcendently. Not so for me. My thoughts are serialized and obviously countable.
You needn't be a genius. Go on a few vipassana meditation retreats and your perception of all this may shift a bit.
> any kind of theorem or idea communicated to another mathematician needs to be serialized into language which would make it computable
Hence the suggestion by all mystical traditions that truth can only be experienced, not explained.
It may be possible for an AI to have access to the same experiences of consciousness that humans have (around thought, that make human expressions of thought what they are) - but we will first need to understand the parts of the mind / body that facilitate this and replicate them (or a sufficient subset of them) such that AI can use them as part of its computational substrate.
Likewise. I was 2-3 days into testing positive and had a fever that could not be controlled by maximum strength OTC antipyretics, awful cough producing glue-like greyish globs, headache, blood oxygen consistently 2-3% below typical for me, extreme fatigue.
~48 hours after beginning Paxlovid I felt almost back to normal. spO2 returned to typical wake / sleep levels, lungs clearing, little fatigue, etc.
Based on how sick I was when I started treatment, if historical patterns of recovery from respiratory illness are any indication I would have expected an additional ~9-14 days of tapering symptoms at minimum.
Instead I was basically totally normal again after ~5-6 days.
If I get COVID again I will absolutely ask for Paxlovid.
I wonder about this too - and also wonder what the difference of order is between the historical shifts you mention and the one we're seeing now (or will see soon).
Is it 10 times the "abstracting away complexity and understanding"? 100, 1000, [...]?
This seems important.
There must be some threshold beyond which (assuming most new developers are learning using these tools) fundamental ability to understand how the machine works and thus ability to "dive in and figure things out" when something goes wrong is pretty much completely lost.
> There must be some threshold beyond which (assuming most new developers are learning using these tools) fundamental ability to understand how the machine works and thus ability to "dive in and figure things out" when something goes wrong is pretty much completely lost.
For me this happened when working on some Spring Boot codebase thrown together by people who obviously had no idea what they were doing (which maybe is the point of Spring Boot; it seems to encourage slopping a bunch of annotations together in the hope that it will do something useful). I used to be able to fix things when they went wrong, but this thing is just so mysterious and broken in such ridiculous ways that I can never seem to get to the bottom of it,
What models are you using that you feel comfortable trusting it to understand and operate on 10-20k LOC?
Using the latest and greatest from OpenAI, I've seen output become unreliable with as little as ~300 LOC on a pretty simple personal project. It will drop features as new ones are added, make obvious mistakes, refuse to follow instructions no matter how many different ways I try to tell it to fix a bug, etc.
Tried taking those 300 LOC (generated by o3-mini-high) to cursor and didn't fare much better with the variety of models it offers.
I haven't tried OpenAI's APIs yet - I think I read that they accommodate quite a bit more context than the web interface.
I do find OpenAI's web-based offerings extremely useful for generating short 50-200 LOC support scripts, generating boilerplate, creating short single-purpose functions, etc.
Anything beyond this just hasn't worked all that well for me. Maybe I just need better or different tools though?
I usually use Claude 3.5 sonnett since its still the one I've had my best luck with for coding tasks.
When it comes to 10k LOC codebases, I still don't really trust it with anything. My best luck has been small personal projects where I can sort of trust it to make larger scale changes, but larger scale at a small level in the first place.
I've found it best for generating tests, autocompletion, especially if you give context via function names and parameter names I find it can oftentimes complete a whole function I was about to write using the interfaces available to it in files I've visited recently.
But besides that I don't really use it for much outside of starting from scratch on a new feature or getting helping me with getting a plan together before starting working on something I may be unfamiliar with.
We have access to all models available through copilot including o3 and o1, and access to chatgpt enterprise, and I do find using it via the chat interface nice just for architecting and planning. But I usually do the actual coding with help from autocompletion since it honestly takes longer to try to wrangle it into doing the correct thing than doing it myself with a little bit of its help.
This makes sense. I've mostly been successful doing these sorts of things as well and really appreciate the way it saves me some typing (even in cases where I only keep 40-80% of what it writes, this is still a huge savings).
It's when I try to give it a clear, logical specification for a full feature and expect it to write everything that's required to deliver that feature (or the entirety of slightly-more-than-non-trivial personal project) that it falls over.
I've experimented trying to get it to do this (for features or personal projects that require maybe 200-400 LOC) mostly just to see what the limitations of the tool are.
Interestingly, I hit a wall with GPT-4 on a ~300 LOC personal project that o3-mini-high was able to overcome. So, as you'd expect - the models are getting better. Pushing my use case only a little bit further with a few more enhancements, however, o3-mini-high similarly fell over in precisely the same ways as GPT-4, only a bit worse in the volume and severity of errors.
The improvement between GPT-4 and o3-mini-high felt nominally incremental (which I guess is what they're claiming it offers).
Just to say: having seen similar small bumps in capability over the last few years of model releases, I tend to agree with other posters that it feels like we'll need something revolutionary to deliver on a lot of the hype being sold at the moment. I don't think current LLM models / approaches are going to cut it.
The other side of this challenge is that the "technology" is mostly irrelevant for above-average applicants with solid CS chops.
I apply for lots of jobs featuring technologies I haven't used (beyond toy personal projects or something in college) because I have a long history of picking up new tools and being productive in weeks or months at most - because I understand the underlying semantics of the tool regardless of its presentation, syntax, etc.
Keyword scanners (and humans focused on keywords) are unable to hire me for roles where I haven't used the technology (much) before - and I guess that's fine and well as I am indistinguishable on paper from someone who doesn't know what they're doing.
Just presenting it as another part of the challenge of both finding good people and for good people finding good jobs.
I haven't used the remarkable but I bought a screen protector for my iPad that's intended to yield a paper-like writing and drawing experience when using the Apple pencil. It gets pretty close I think.
N.B. if you go this route you'd need to replace the Apple pencil tips a bit more regularly than you otherwise would given the rougher surface you're "writing" on.
I want to share a personal anecdote, as I recently spent quite a bit of time deciding whether or not to leave Mac OS for linux (Manjaro) this year for my personal computing needs - primarily because of gaming. Ultimately, I did make the switch.
Several years back, Apple broke most of my steam library with Catalina.
I wasn't a serious gamer, but I had a lot of nostalgic games from the aughts and early 2010s that ran great (pre-Catalina) on my top-of-the-line mid-2015 retina MBP.
I finally retired that machine this year and bought a higher-end gaming pc for less than half of what it would cost me to get a less-than-the-best Apple Silicon MBP.
Yeah, it's heavy. Battery life isn't great. But my phone has replaced so much of my mobile computing needs that I don't really need to take a laptop with me when I'm traveling unless it's for work, in which case I'll have my company-issued machine with me anyway.
I never thought I'd leave MacOS for Linux - but I recently got back into gaming and basically wasn't willing to spend $4k+ on a machine I couldn't game on when all of my personal project needs, etc. can be attended to on a cheaper gaming laptop.
The fact that Apple Silicon is an absolute beast, graphically, made it all worse somehow. Like having a Ferrari in your garage that you aren't allowed to drive - only pay for and look at.
Am I Apple's target demographic? Apart from being a developer - probably not. I don't do a lot of multimedia stuff (at least, I don't do anything that isn't adequately served by a PC with a solid GPU). Because I grew up on linux I'm right at home there with all of my non-work dev / geek / fun stuff and that probably makes me an outlier.
Apple's success clearly speaks for their business savvy - and, there's now a number of chinks in my (previously 100%) Apple loyalty across my wide array of gadgetry (several Apple TVs and one each for me and my wife of: laptop, ipad, iphone, watch, airpods). After a disappointing battery experience with my airpods - I replaced them with some excellent-sounding soundcore buds. My apple watch needs to be replaced soon and I'll probably get a Garmin (again - battery life and consistent failure to capture VO2 max on outdoor runs, other frustrations). I enjoy VR gaming and plan to upgrade from a quest 2 to a quest 3 instead of buying a vision pro. What's next to go in my Apple line-up? I don't know but I've become much more open to shopping around for non-Apple tech than I was in, say, 2016 when it seemed to me that nothing else could compete with Apple.
I wonder how true this is for Apple's "geek core" of tech professionals, and how much of it is just my unique little anecdote? And, in any case - does Apple care? They've cornered the market for both the technical-artistic and "luxury" class. Plenty of meat on those bones without worrying about the geeky whims of the pesky few that are open to (and capable of) something like abandoning Mac OS for Linux.
Still, it was sad to give up my Mac OS personal computing environment. I love Apple - but for what I care about, Apple just doesn't seem to love me. We'll always have our iOS time together I guess, for now anyway.
* $3500 price tag
* 2D / "Arcade" games support (lol)
I'm a buyer 3-4 generations in if price comes down significantly and I can replace my monitors with it. The seamless use with a mac for work will be really nice - but isn't worth $3500 to me for a gen 1 device / experience.
For now, I'm probably just going to get a Quest 3 when it drops this September. In terms of a virtual work environment - immersed is _almost_ there on a Quest 2. Maybe Quest 3 will be the ticket to a compelling experience. If not, well... I still have my library of dozens of VR games to make it worth $600 (or w/e).
Still, excited to see what Apple does with this platform over the next five or so years. The "macbook air" version of this a few years down the road will probably be more my speed!
Anecdotal: the app "One Sec" broke my twitter habit over the course of a few weeks.
Via iOS' automations feature the app allows you to configure a per-app waiting period during which you can decide you don't actually want to open whatever app you've tried to open.
Do you find yourself making better use of your time, or do you substitute one time waster with another? I can definitely see how this would help me be more productive during my work hours though...
That's usually where those things fail for me. Still, I don't really consider them worthless - the goal is not to prevent you from wasting your time, but to make you aware you're wasting your time and turning a muscle memory action into something you actually have to think about.
In my experience phisical separation is the best for when you don't want to use your phone (for example, when going to bed or if you want to focus on discussions when having lunch) but that is not always possible - then apps like one sec or other tricks like setting your phone to gray scale, moving icons around, focus mode, screen time... All serve to nudge your brain into thinking if you really want to waste time.
For making better use of your time... Eh. Everyone struggles differently of course, but I'm unlikely to go out and run, or do focus work, when I would waste 30 minutes scrolling through Instagram. But if you make sure to have better alternatives (reading a curated feed, listening to a audiobook/podcast) then they can nudge you that way. Finding a better alternative is entirely up to you. I do find that writing down things you want to do, no matter how silly it sounds ("of course I want to read more books!") helps, especially as you can always reference to that list later when you're bored.
Second data point. I love that app. Well worth all the money.
I've also customised the automations so I have added friction to opening, for example, Slack after 6PM or on weekends. However it opens immediately during working hours.
Can vouch that this has worked for me as well with Instagram. Just hope one day they would give you the option to remove the "Explore" page. Same with YouTube shorts.
Typing isn't the fun part of it for me. It's a necessary evil to realize a solution.
The fun part of being an engineer for me is figuring out how it all should work and fit together. Once that's done - I already basically have all of the code for the solution in my head - I've just got to get it out through my fingers and slog through all the little ways it isn't quite right, doesn't satisfy x or y best practice, needs to be reshaped to accommodate some legacy thing it has to integrate that is utterly uninteresting to me, etc.
In the old model, I'd enjoy the first few hours or days of working on something as I was designing it in my mind, figuring out how it was all going to work. Then would come the boring part. Toiling for days or weeks to actually get all the code just so and closing that long-tail gap from 90% done (and all interesting problems solved) to 100% done (and all frustrating minutia resolved).
AI has dramatically reduced the amount of time the unsatisfying latter part of a given effort lasts for me. As someone with high-functioning ADD, I'm able to stay in the "stimulation zone" of _thinking_ about the hard / enjoyable part of the problem and let AI do (50-70%, depending on domain / accuracy) of the "typing toil".
Really good prompts that specify _exactly_ what I want (in technical terms) are important and I still have to re-shape, clean up, correct things - but it's vastly different than it was before AI.
I'm seeing on the horizon an ability to materialize solutions as quickly as I can think / articulate - and that to me is very exciting.
I will say that I am ruthlessly pragmatic in my approach to development, focusing on the most direct solution to meet the need. For those that obsesses over beautiful, elegant code - personalizing their work as a reflection of their soul / identity or whatever, I can see how AI would suck all the joy from the process. Engineering vs. art, basically. AI art sucks and I expect that's as true for code as it is for anything else.