I broke my hand while biking to work and could only type with my left hand. Somewhat surprisingly, I got much "better" at writing code with AI over 2 months, and I'm sticking with the new style even now that I'm out of a cast.<p>Full disclosure: I work at Anthropic, and this was some intense dogfooding haha.
I found that having a good system prompt improves results significantly.<p>This is my system prompt for coding assistants:<p><pre><code> You are a senior full-stack developer, one of those rare 10x devs. Your focus: clean, maintainable, high-quality code. Here's how:
Key Mindsets:
1. Simplicity: Keep it straightforward.
2. Readability: Make sure code is easy to follow.
3. Performance: Optimize, but not at the expense of clarity.
4. Maintainability: Write code that’s easy to update.
5. Testability: Ensure code is simple to test.
6. Reusability: Aim for reusable components/functions.
Code Guidelines:
1. Early Returns: Avoid nested conditions.
2. Conditional Classes: Prefer over ternary for class attributes.
3. Descriptive Names: Use clear variable/function names (e.g., handleClick).
4. Constants > Functions: Use constants where possible.
5. DRY: Keep code correct, best practice, and DRY.
6. Functional & Immutable: Prefer functional style unless verbose.
7. Minimal Changes: Only touch what’s necessary.
Comments & Documentation:
- Comment functions explaining their purpose.
- Use JSDoc for JS (unless it’s TypeScript).
Function Ordering:
- Define composed functions earlier in the file.
Handling Bugs:
- Use TODO: comments for bugs or suboptimal code.
Minimal Code Changes:
Focus on the task at hand. Avoid unrelated modifications and avoid changing existing comments or code without necessity.
This approach ensures clean, maintainable, and testable code while minimizing technical debt.</code></pre>
“Claude’s Artifacts and ChatGPT’s Data Analyst have become my go-to solution for quick prototypes and single-use code, instead of Jupyter notebooks.”<p>This is so true! I was debugging a timing issue and printed a bunch of raw data in the terminal. It was super helpful to have Claude generate throwaway code to plot the data with python. Zero data cleanup and formatting needed from my end for the prompt to be successful.<p>I also find myself less attached to code AI writes for these mini “apps” or “utils” because I’ll never check them into the codebase. If I wrote it myself, I’d probably spend time cleaning it up and write some comments hoping I’d use it again in the future.
Hm. Says "hand" not arm.<p>I don't want to second guess whether there were other undisclosed injuries but the image does show someone who could possibly have carried on typing without the use of his right thumb? Like I did for this paragraph. (Albeit perhaps it would be more comfortable using a split keyboard for more comfortable right arm position? And probably after a few days of rest)<p>Or perhaps with left hand only, using sticky keys? Like I did with this paragraph.<p>OK so code is a bit more effort, and particularly Rust or PHP would not be as fun. Python is a bit more one-hand friendly. (Quiet at the back!)<p>But still. _Something_ was forced here, but it wasn't the use of AI. I'm thinking more the marketing.
Definitely an interesting report. The conclusions seem skewed by the author's existing coding skill and fluency though. If anything, I'd expect on aggregate these tools to disempower smaller businesses relative to their competition because their force multiplier will be proportional to existing skill and expertise. In other words, if I create something of value, it will be even easier for my competitors to copy it than it is today and they will have more resources and ability to execute quickly than they do now (if the tools do deliver on the promise they've been selling).
Why were you forced to work with a broken arm? Was squid game a reality show?<p>Anyway I liked what you wrote.
I just used "AI" for the past 2 months to write glsl code for me, since i had zero knowledge in webgl2 and GPUs in general. learned alot from reading the explanations it generates.<p>One thing I learned regarding LLM failing to do a task after two tries, is to tell it: "wow, this seems super complicated. Isn't it a simpler solution?"
Also telling it some half baked solutions like "can't you like loop over it in reverse" can put it back on track.
<p><pre><code> Our motor controller had a 100 page datasheet that was overwhelming and dense - but uploading it to Claude and then asking questions let us quickly resolve one of our issues!
</code></pre>
That's interesting. I've tried exactly this with chatGPT (enterprise install), and it failed pretty miserably when asking it basic questions about configuration/control. Although, I do have to add that the datasheet in question was a lot more complicated than a motor controller, and included a Firmware API guide.
No, this did not force you to use AI.<p>People have been coding without using hands thanks to voice recognition for quite some time. <a href="https://youtu.be/8SkdfdXWYaI" rel="nofollow">https://youtu.be/8SkdfdXWYaI</a><p>I will spare all my usual critique of AI because dang wants to ban me whenever I do. It doesn't mean all that doesn't stand.