Personal views and a proposed learning routine, connected to the project notes linked below. This is an essay about how I want to learn, rather than a measurement of jobs or productivity.
The pressure feels close to the work
AI's impact on frontend work feels substantial to me. Producing a first version of a form or page is becoming easier, and that puts pressure on skills built around implementing familiar patterns. It leaves me wondering how much of what I already know will remain useful, and what I should spend time learning next.
I want AI-assisted development to become part of my regular learning. There are details I still need to understand myself: why a component rerenders, where its data comes from, and what happens when a request fails. If I cannot follow the code after it is generated, the next change becomes harder to judge.
The fundamentals give me a way to judge the output
The recent request-scope note provides a useful example. A search box can look finished while an older response still overwrites the latest results. After an account switch, a pending response also needs to be checked against its original identity. Recognising these cases requires an understanding of asynchronous execution and state ownership.
I want to keep learning JavaScript's event loop, TypeScript data boundaries, browser behaviour and component lifecycles through problems like this. CSS layout, keyboard navigation and HTTP also remain part of that work. These topics help me explain a change and decide whether its behaviour matches the requirement.
Give AI a task that can be reviewed
A workflow I want to practise starts with a small change. I would give the assistant the relevant files, dependency versions, expected behaviour and known constraints, then ask it to explain the current implementation before editing. A bounded change is easier to inspect in a diff and easier to undo if the approach is wrong.
For an asynchronous search exercise, the task brief below makes the expected behaviour explicit. It is a proposed exercise based on the request-scope discussion, and would still need to be adapted to the project's actual API and test commands.
- Read the search component and its request helper. Explain how results, errors and loading state are currently updated.
- For rapid searches A then B, only B may update the current results, error or loading state, even if A finishes later. Preserve the existing interface and visual layout.
- Cover stale success and stale failure, and check what happens when the page is left. Use the existing test setup and report the commands and their actual output.
- Explain each changed file and any remaining gaps. Keep unrelated cleanup out of this change so the diff stays reviewable.
I need to be able to explain the change
After a change, I would read the diff and run the checks myself. A useful review asks where data enters, which state can change, and how failure is handled. If I cannot explain an unfamiliar helper, I can ask for a walkthrough and then check the explanation against the code and the relevant documentation.
The low-code form notes suggest concrete cases to try: required numeric zero, invalid dates, and duplicate field keys. For an upload component, reaching 100% transfer progress still leaves the question of whether processing is complete. These cases help me connect a feature's appearance to its actual contract.
When asking an assistant to diagnose a problem, I can use a minimal example and synthetic data. The useful context is the interface shape, failure and surrounding code; real account details and private business records do not need to accompany the example.
What I want to practise next
For the next round of study, I want to choose one small feature in an existing project, write down the acceptance conditions, work through an AI-assisted change, and leave a short review. The review can record which suggestion was useful, which was rejected, and which part I still cannot explain. That should give the next learning session somewhere specific to start.
There are already suitable questions in the recent notes: test an old request that fails after a newer request succeeds, reduce the shared layer's broad any types, or observe memory use while hashing a large file. I would keep a brief record of the environment, changes and actual results, including anything that remains unresolved.
Learning new AI tools matters to me, but I also want time to finish and understand these exercises. My next note should be able to show a specific change, explain why I accepted it, and link to a check that someone else can repeat.
Sources & further reading
Compiled from code and documents, with AI-assisted drafting and translation. Examples and proposed checks are learning material; only linked evidence establishes what was run.