Being Agile in Your Java Programming with AI


Coding is not just about repetitive iteration but about creative innovation, same as life.

I have been teaching an online Java course since last September, and it is still ongoing.

At the beginning of the class, I introduced Copilot and CodiumAI, but some students didn't find them helpful. I also mentioned that if they don't know the answer to a question, the best practice is not to ask the teacher right away, but to first try asking ChatGPT.

I mainly had them work on a project with a team, rather than focusing solely on learning Java grammar. I taught them the concepts of data structures, operating systems, and object-oriented design. That is really important for their future careers as developers.

We have two projects in each of the two sessions, one is the primary project, which is the Restaurant Order System, and the other is the enhanced project, which is Facebook Threads.
The UI(Java Swing) of Restaurant Order System

The Restaurant Order System is practically based on the design of the BlockingQueue.

The UI of Facebook Threads was created by Anna

The Facebook Threads project is more complex, utilizing the MVC (Model-View-Controller) architecture with a separated frontend(React) and backend(Java Spring).

However, since the class is a Java programming course, we focus only on the backend, using the same frontend for practice. They also need to learn how to deploy a web application on the cloud with CI/CD (Continuous Integration and Continuous Deployment(using github action)).

Students are required to team up with someone they just met and figure out how to analyze the software specifications and arrange the development schedule. I focused more on training their problem-solving skills than on their programming skills. Eventually, I realized that it’s not easy for juniors to learn new knowledge in this way. As adults, they have been shaped by spoon-feeding education and repetitive commands from supervisors.

Unfortunately, in the age of AI, this approach is no longer workable and will eventually be replaced by robots.

I understand that in the early stages, students heavily rely on repetition to retain new knowledge in their memory. Although it may seem workable, once these rookies face difficult issues and lack problem-solving skills or a solid understanding of core programming concepts, they will likely fail and feel frustrated.

Right now, in the workforce, employers primarily need senior employees and engineers. They don't have the time to wait for juniors to learn at a slow pace because the market is tough and competitive. The only way for juniors to learn quickly is by acquiring new skills, supported and scaffolded by AI tools.

On the other hand, when you work with AI for a long time, you have more time to focus on programming concepts, analyze the process context, and the infrastructure of your application, rather than just repeatedly writing code.

Let’s look at a clear example from Java. Why Java Spring framework use so many decorators(annotation)? since it emphasizes non-repetition and simplicity.

@Data, @Bean, @Autowired, @RestController,@Configuration are all designed to reduce duplicate code and simplify development in Spring Framework. You don't need to know how decorators work internally. All you need to understand is their behavior and the results you want to achieve.

I strongly encourage all students to write code with the assistance of AI tools like Copilot, CodiumAI, and ChatGPT. They not only help you write code but also explain its behavior and underlying concepts. Additionally, knowing how to ask the right questions is a crucial skill for the future. That’s why we start by asking ChatGPT.


In the future, coding itself in the field of Computer Science may not be as important. However, the ability to make decisions and explain why you choose one approach over another will be the most valuable skill to develop.

This is the key lesson I truly want to teach my students.

Comments

Popular posts from this blog

Agile Tour spending 2 years in University of NCKU

The agile journey in St. Kitts and Nevis

How I Introduced Agile into the EHS company within three years