As a Principal SWE, who has done his fair share of big stuff.
I'm excited to work with AI. Why? Because it magnifies the thing I do well: Make technical decisions. Coding is ONE place I do that, but architecture, debugging etc. All use that same skill. Making good technical decisions.
And if you can make good choices, AI is a MEGA force multiplier. You just have to be willing to let go of the reins a hair.
As a self teaching beginner* this is where I find AI a bit limiting. When I ask ChatGPT questions about code it is always about to offer up a solution, but it often provides inappropriate responses that don't take into account the full context of a project/task. While it understands what good structure and architecture are, it's missing the awareness of good design and architecture and applying to the questions I have, and I don't have have the experience or skill set to ask those questions. It often suggests solutions (I tend to ask it for suggestions rather than full code, so I can work it out myself) that may have drawbacks that I only discover down the line.
Any suggestions to overcome this deficit in design experience? My best guess is to read some texts on code design or alternatively get a job at a place to learn design in practice. Mainly learning javascript and web app development at the moment.
*Who has had a career in a previous field, and doesn't necessarily think that learning programming with lead to another career (and is okay with that).
I can't summarize 40~ YOE of programming easily. (30+ professional)
I can tell you: Your problems are a layer higher than you think.
Coding, Architecture, etc. Those get the face time. Process, and Discipline, and where the money is made and lost in AI.
To give a minor example: My first attempt at a major project with AI failed HORRIBLY. But I stepped back and figured out why. What short-comings did my approach have, what short-comings did the AI have. Root Cause Analysis.
Next day I sat down with the AI and developed a PLAN of what to do. Yes, a day spent on a plan.
Then we executed the plan. (or it did and I kept it on track, and fixed problems in the plan as things happened.) On the third day I'd completed a VERY complex task. I mean STUPIDLY complex, something I knew WHAT I wanted to do, and roughly how, but not the exact details, and not at the level to implement it. I'm sure 1-2 weeks of research could have taught me. Or I could let the AI do it.
... And that formed my style of working with AI.
If you need a mentor pop in the Svalboard discord, and join #sval-dev. You should be able to figure out who I am.
Thanks for reply. I have notifications off so didn't realise you had.
I guess it sounds like a bit of a trap in some ways. Those without experience (noobs like me) are gifted a tool that can suggest to them solutions or strategies that you'd typically come across only after many years working/learning peeling back the onion. You don't really have the taste or canniness to know how best to use those tools without the experience, which you typically gain by working and gaining the experience!
I cycle regularly and it actually reminds me a little of the many people who've taken to ebikes recently. I'm generally in favour of ebikes for adding another mode of non-car transport out there but I definitely see a lot of newish ebikers attempting manouveres that only experienced cyclists would do, because you wouldn't do it if you didn't have the strength to get up to speed and have the handling. But ebikers are able to bypass the strength and skills training and get themselves in somewhat dangerous situations that you'd only find yourself in if you were a pretty strong cyclist and had the bike handling skills to match your speed.
A bit of a tangent there!
I do like spending time planning. Problem is as a relative beginner there's only so much you can add to your plan when you're still learning how to do so much. I do use AI to help advise on my strategies, toolkit approaches rather than do the code though. It does send me really inappropriate solutions though quite regularly that a human would (hopefully) avoid because the human understands the wider context or at least will ask questions.
I'm excited to work with AI. Why? Because it magnifies the thing I do well: Make technical decisions. Coding is ONE place I do that, but architecture, debugging etc. All use that same skill. Making good technical decisions.
And if you can make good choices, AI is a MEGA force multiplier. You just have to be willing to let go of the reins a hair.