4 ms·
I was a junior and then mid dev for about 5 years before AI really entered the workplace and then a mid to senior dev for another 2 years in which we used AI on
by nadersobhi 2mo ago
I was a junior and then mid dev for about 5 years before AI really entered the workplace and then a mid to senior dev for another 2 years in which we used AI on a daily basis for writing code. I have since left the industry and am now in academia where things are a bit different, so I didn't quite catch on to the use of AI for code review or agentic systems to build out massive features. I am saying this to contextualize the points I give below.
- Work with the LLM, don't have it work for you.
- Your intuition about needing to hand-code, make mistakes, and then learn from them is correct. So, where possible, try to do as much hand coding as possible, and use the LLM to accelerate where needed, while setting up the correct expectations with whoever you have to report to.
- E.g.1 You are asked to implement feature X, and your boss asks for an estimate for how long X will take. Think about how long it would take you to do X without an LLM and try to give an estimate as close as possible to that.
- E.g.2 You are now working away on X and realize that you have to do this mundane setup of something simple but necessary. Something like parsing a CSV and formatting it in a certain way. Give that to the LLM while you continue to work on the more intense engineering aspects of your tasks.
- You can use the LLM as your teacher. While working on things, try to avoid giving it large tasks that are related to technical aspects or ideas that you're unsure about. Instead, prompt the LLM so that you're asking it incremental questions related to your task.
- You will need to learn about some core principles for building systems and the communication and organization of the components therein. Again, you can use the LLM to aid you in this task rather than having it do the work you only rubber-stamp.
- I.e., Sketch out a plan for how you are going to create the systems that you are tasked with working on and then use the LLM to "grade" your plan, while scrutinizing the responses it gives you so that you understand why something does or doesn't make sense.
- Here, systems can be entire applications that have to do something, or a few classes that you have to implement in a large legacy codebase.
The main advice I have is to use the LLM to teach you things and learn where you went wrong or right, while taking advantage of it to speed up things that have become second nature to you.