Developers who can't code without 'AI' are not real devs. Really?

Hi, I'm Bishal. I've been seeing this take online for quite some time, and I have my two cents to share.

Who am I?

I'm a fairly new dev, recently graduating and working at a small tech startup for the past 2+ years. So this take is of someone fairly new to the field but has had to explore a lot due to the nature of our work.

Lil bit backstory..

Well, I saw LLMs becoming a thing in my 1st and 2nd year of college. I saw the tech world suddenly becoming very fast-paced. With traditional learning, I simply couldn't keep up (understanding core concepts, specifics of frameworks and languages, designs and architectures, etc.). I saw people talk about topics on threads I didn't have a single clue about. Opened opensource codebases and found myself in a maze (Not saying they are maze, I just didn't have the knowhow to navigate). Yet, for someone who's found myself in love with tech, the anxiety of not being able to understand these was killing me. Equally rewarding was the joy of occasionally putting two and two together. Hence, to me, reliance on LLMs to understand/develop software became like a second nature.

How do I work?

And after heavily relying on them since 2022 I've come to some realisations and opinions. To convey those I'd like to tell how I currently use LLMs in my day-to-day life and tackle problems.

For example, let's say I'm working on developing X. And I can divide X as follows-
  • Code Structure as A 
  • Business logic as B, C, D
Now, let's say I know how to do A and tackle B. I got some Ideas about tackling C, D or sometime none. My initial task is to handle A and B. Then take 2 and 3 LLMs and give them the same prompt to solve C and D (If I have some Idea, specify those as well). 

Then comes the part of reading and understanding the generated code. Reject if I see generated ones to be what I call 'hot garbage' (Which it most of the time used to before all these Thinking Models), further divide tasks, do further research (both using LLMs and googling) and iterate. 

Then again, sometimes I do know how to code C or D, but I'm unsure if my way is optimal or if I'm writing bad code (especially when working with a new technology). So, I ask LLMs if I'm writing bad code, what I'm doing wrong, and if there is an easier way to achieve what I'm trying to do. 

Now, I'm the kind of guy who only learns by actually doing it. For example, while learning a new language or tool, I tend to build something. I ask LLMs to generate the initial code. Then ask if I don't understand something. Like -
 
- "Hey, in this go code, why put the 'go' keyword in front of the block?"
- "Ouu, okay, it's called goroutine and works as such..."

or

 - "Hey, I'm working with rust, and when I move this variable inside a thread and again try to reference it, why is my Intellisence screaming?"

 - "Ouu, you can't do that because one owner for a piece of data at a time and ..."


Does that not make me a real dev? 

Now, some might say it is a very jack-of-all-trades, master of none type of mentality. On one hand I agree and the other disagree. I agree there are people (I would call them devs) who solely rely on these to build anything without any understanding. And that is bad. But think about it. Would they have learned anything at all if they hadn't had to?

Such tools are helping me and many others like me learn and understand at a substantial rate way efficiently. Sure, you might say - 

The aspect of researching is diminishing. 

I'll say - 

No, it has just changed to people relying on LLMs quite a lot and a little less on traditional methods

You might say -

Whenever I walk in, I see them work, and Claude or chatGPT is open beside.

To which I'll say-

Yes, they are open. Maybe helping them brainstorm 2 or 3 possible solutions at once or maybe helping them with syntaxes as being able to work with multiple languages has its downsides too, and they would rather save their brainpower for the critical thinking aspect of the work.

So before judging the book initially read maybe for a few days. And if you still don't see the story progress maybe think next time before selecting another story.


Is it all sunshine and rainbows? 

No. It is not. What this blog conveys is my opinion on this growing bias. Sure, there are issues. Namely -
  • Overreliance - becoming dependent on AI instead of building core knowledge
  • Skill gaps - missing fundamental concepts that traditional learning enforces
  • Surface understanding - knowing how to use code without truly understanding it
  • False confidence - believing you know more than you actually do.
But we cannot also leave the -
  • Learning acceleration - absorbing concepts at a substantially faster rate
  • Brainstorming companion - exploring multiple solutions simultaneously
  • Massive Productivity and Innovation Boost - to put it simply, small teams, big dreams.


To Conclude

In the past few years, I've grown as a developer. From being able to somewhat understand what alien those devs in the threads were speaking to being able to apply DFS on those big repo mazes, I've come a long way these 4 years. These tools have helped me a lot in this journey. So I'm fairly in-debt to these and will keep going forward too, I suppose. And as my inexperienced brain tells me these tools will only grow, improve and evolve, the only logical thing to do here is to grow, improve and evolve with them.


What's your experience with LLMs in development? I'd love to hear how others are navigating this rapidly changing landscape.


Comments