Advise for Junior software developers using AI
TLDR: Use AI to decompose tough problems, not to bypass understanding them.
This post is primarily meant for junior developers Or for mentors wondering how to ensure your juniors are learning. The example is tech specific but the approach can be useful for anyone tackling unfamiliar problems and being forced to use AI.
Several of my earlier posts on AI have mentioned that I’m worried about how AI will impact the capabilities of junior developers. That it takes away the opportunity to learn something deeply. On the other hand, managers are now delegating more complex tasks to junior developers. Tasks they may NOT fully understand and can ONLY do using AI.
The tendency at this point is to take what your manager gives you and feed it to the AI. Have it do all the work & share what it produces. The output is typically so large & complex that it is too much effort to understand.
Instead, here is a strategy that you can adopt to both get the job done & to learn in the process.
Say you have a large architecture revamp to size, plan & perform but don’t know where to start. Here are the steps you can follow:
Step 1: Read the brief & rephrase it as a one-two sentence question to AI. Now ask it to come up with questions that need to be asked & answered first. The questions should cover the overall goal and should be phrased from several perspectives. In this example, from developers, designers, architects, PMs, timelines, other stakeholders, etc.
Step 2: Ask these questions of yourself. Try & answer them before going back to AI. Even partial answers are useful. The objective is to build your own understanding first and identify where your knowledge gaps are.
Step 3: Then ask AI to break the task down - but coarsely. AI agents tend to go deep immediately. You do not want this. The idea again is to take the breakdown & introspect/review. See what the AI missed.
Step 4: Take each step in the plan & repeat step 3 until you are satisfied with the granularity. Think about verification, optimisation (what can be done faster? which steps can be done in parallel). Then use AI to verify your work.
The final plan is ideally, one document containing the goal & an index to the steps in the plan. Each document corresponding to a step should have the necessary details that you can give to an agent for implementation or size independently.
The critical aspect here is that you are using AI to break down the task and that at every step, you are both learning & verifying. The final plan & strategy will be one you will be able to commit to with confidence. You are using AI to help you understand and break down the problem until you can reason about it yourself.
PS: This also has a few other benefits. The structure you’ve now created is more easily consumed by AI. You’ve ensured that the AI has both an overarching goal & the sequence of steps to follow. Each step will consume less tokens (since a smaller file is going to be read) and the AI is less likely to miss the forest for the trees.