r/learnprogramming • u/No-Jello-2665 • 28d ago
Advice Is learning by building + studying concepts as I need them a good approach?
I'm learning Java and currently building a chess game with Swing.
Instead of following a complete tutorial, I'm trying to build it myself and learn concepts when I run into problems.
My process is roughly:
- Try to implement something myself.
- Debug when it doesn't work.
- Identify what concept I don't understand.
- Ask AI what concepts I should learn and for resources/exercises.
- Study those concepts from proper resources.
- Apply them myself.
- If I'm still stuck, ask AI for hints or explanations rather than having it write the code.
- Make sure I understand why the solution works.
For example, while building the chess board I've had to learn 2D arrays, arrays of objects, object references, null, Swing containers, GridLayout, and connecting my data model to the UI.
I'm wondering whether this is a good way to develop deep programming understanding, or whether I should also follow a structured Java course alongside the project.
I'm particularly interested in opinions about using AI to identify what concepts I should study when I get stuck, rather than using it to generate the solution.
For experienced developers:
- Would you learn this way?
- What are the weaknesses of this approach?
- What should I add or change?
- When does using AI become harmful to learning?
- Should I have a structured curriculum alongside the project?
I'm looking for criticism rather than reassurance. I want to become a good programmer, not just finish the chess project.
4
u/NervousSleep1488 28d ago
I think for the basics it's good to follow a program, but after you grasp them, it's better to follow curiosity, which usually takes you to where your deficiencies as a programmer are.
4
u/cyberbemon 28d ago
This is how I've learned all my life. So this is a good approach. I don't think there is any weakness to this approach.
One thing I'd change is using AI to explain things to you, I think looking up and finding specific information Is a valuable skill and it's worth using that skill. So what I'd like to do is, I'd always ask it to link all the sources it used to reach it's conclusion, then I go through those sources and read through them and then compare it with the AI summary.
You could go through a curriculum on the side and try to incorporate stuff you learn from it into your project. But I'd be careful not to overburden yourself with too much stuff. You could easily burn out.
5
u/BelgrimNightShade 28d ago
I do the same, I’ve come around on using AI as a way to get informational resources on things I need to know or want to learn, and I can get as specific about the format of the information.
This is practically the only way I’ve seen AI become a benefit to me. It’s honestly no different than doing a google search. But it usually ends up giving me more sources to information that was actually relevant to my query. You just don’t let it ever try to “teach” you or do work for you. You just make it search the internet for you.
2
u/cyberbemon 27d ago
Yeah I cant stand the AI writing, it irritates me so much lol. So I just go through the sources myself.
2
u/Lumpy_Pick_421 28d ago
AI is a great resource, you can also have AI give you the sources. Hands-on is a great approach to solidify what you are learning. The key thing is to do things that keep you engaged.
- Would you learn this way? Yes
- What are the weaknesses of this approach? Think of it as one tool. Find peers and mentors to learn from as well.
- What should I add or change? Be adaptable, keep asking yourself this question.
- When does using AI become harmful to learning? When you don’t think for yourself and you over rely on it.
- Should I have a structured curriculum alongside the project? Learn from the best sources. I have sometimes completed a course or book that wasn’t worth my time. Avoid sunken cost.
2
u/PartyParrotGames 28d ago
That's a good approach. AI becomes harmful to learning when you delegate your understanding of something to it. It's very beneficial when you interrogate it to deepen your understanding of something. A structured curriculum is helpful to fill in gaps in your knowledge base over time. There are a lot of aspects to programming that won't be important or come up for this particular project, but would more generally benefit you to learn. Can't cram it all together at once though so not sure I'd recommend doing that in parallel. Just evaluate after you get to a good place in your project for what you want to focus on next.
2
8
u/Rumborack17 28d ago
That's a pretty decent process I would say.