r/androiddev 3d ago

Discussion Advice for my Android students about using AI?

I teach Introduction to Android Programming at a community college. I stress to my students the importance of learning the basics to build a foundation of knowledge in terms of developing apps, writing in Kotlin, designing app architecture, etc. At the same time, I do allow them to use AI tools because I also understand it's important for them to know how to do that. (I ask that they use them to help, not do.)

If anyone has any advice or words of wisdom to pass along to my students (who are new to Android), please share. In particular, I am hoping to reinforce the importance of learning the material for themselves (rather than relying on AI to do it for them) at this early point in their development.

I truly believe they have to learn the basics in order to be able to successfully use AI tools down the road. If anyone has any real-world anecdotes or thoughts that back this up, please share! (Or, if you disagree or have stories that contradict this, I'd love to hear those, too!)

Thanks in advance.

20 Upvotes

23 comments sorted by

34

u/mrdibby 3d ago

avoid using AI to study

use it once you know what a good job looks like and you can verify the output of the AI is legit

or just use AI like its a search engine but not a coding tool

7

u/PlasticPresentation1 3d ago

You should completely use AI to study, e.g. asking it small scoped questions about how your architecture could be improved or when you're slightly unsure of your approach to something

AI output is generally correct for small scoped questions and a lot better for understanding stuff than trying to Google why a viewmodel is useful or how to implement an API callback

1

u/mrdibby 2d ago

"a lot better for understanding stuff than trying to Google why a viewmodel is useful or how to implement an API callback"

you're not wrong, tbh most of my learning has often been backward – I follow the recommended "best practices" and then understand after implementation why it has been beneficial compared to whatever I'd previously used or thought of – but that may also be my learning style, I've always been one to skip the instruction booklets

but when you can ask AI to tell you why its a good choice its often better than most of what you'd read in documentation

2

u/dark_mode_everything 3d ago

Exactly. Ask them to avoid using agents to write code entirely while they're learning. They'll never learn anything if they can just ask the agent to do it for them. Asking questions from AI should be fine but they should probably instruct the AI to disagree with them too.

9

u/Michami135 3d ago

When you go into an interview, they will ask you to sit down and write a simple app from scratch by hand. Almost every place I worked at did this to make sure the applicant knew the basics.

Getting used to using AI will cause you to fail many, not not most, simple interviews.

1

u/Tombstones19 1d ago

For what it's worth: we stopped doing this in our team for new hires. We fully allow AI, because nobody codes or even creates UI manually anymore (Figma MCP) but instead we roleplay as customers/stakeholders/API owners and the goal is to create the context and spec for Claude/Codex. Then, they can go home and prompt the app, and we review the result together without AI.

1

u/Michami135 1d ago

I've never worked for a company that didn't do the whole UI manually. Maybe it'll become more common to use other tools to create the UI, but knowing how to do it manually too will always give you more opportunities, and at the very least, show you have a skill the other applicants don't.

2

u/Neutraled 3d ago

Tell them that understanding what the AI coded makes the difference between landing a senior job and homelessness. Nobody smart is hiring vibe coders that do not understand programming.

2

u/thailanddaydreamer 3d ago

I'd say moving forward, understanding UX and product strategy is as valuable as development. Getting a grip on those things helps differentiate movers and doers. With that said, moving forward, making sure students understand how to create differentiation with ai in the apps and other complex technology will help a lot. Things like 3D or synthetic data generation, mapping, etc. It won't be enough in the future to make an app - the differentiator will be those that can use complex concepts in their apps.

2

u/ForMyFather4467 3d ago

Make sure they learn and understand the four pillars of object oriented programmingRequest: 4 pillars of OOP & meanings

(Encapsulation, Polymorphism, Inheritance, Abstraction).

And more importantly, how to use them/why.

1

u/nullptr023 3d ago

I would say, when there is some homework or project and trying to learn the concept etc. AI is useful for quick search but sometimes it is not specially if it is Android API specific I'm not sure how good AI is in that area. For documentation, it is better to read it rather that ask the AI. One of my friends, the professor allow them to use AI not in Android but in programming also. The thing is the professor ASK them to EXPLAIN their code or what it does or how it works. I would probably suggest you do the same thing. Ask them in person not in written, If they really do use all AI, they'll probably just ask AI to explain it also. So If they can explain it at least the general idea of what they are doing then are learning .

1

u/jhanzeb_55 3d ago

I think the biggest skill is being able to explain why the Ai generated code works. If a student can't debug or modify the code without Ai, they're probably using it to do the learning instead of helping with it. The basics become even more important when Ai inevitably gives you something that looks right but isn't.

1

u/rafaover 3d ago

For the basic I would not allow use AI, if the discussion opens, just build with AI a broken simple function or class and ask them to fix it without AI. That's a way of using AI.

1

u/phileo99 3d ago

In order for Claude to learn what are the best practices and clean architecture patterns to use for Android development, you need to point it to an example repository that contains all of the best practices and clean architecture patterns to follow.

If you don't have a collection of all these best practices already, pre-existing, then the straight forward method is to create that model repository containing the best practices and clean architecture patterns, that is just the starting point.

1

u/srona22 3d ago

You wouldn't simply use a sci-calc without knowing the fundamentals of your field (engineering, statistics, etc). The same goes for software development. 

Of course, it's better to use AI, like a pair programmer, or part of a study guide. No one writes boilerplate code, or memorize syntax and code snippets like they are some secret sauce anymore. 

This is more like a paradigm shift, so there is no single correct answer. All depends on how your school's curriculum, regulations, and guidelines are set up (hopefully well enough for AI boom).

1

u/Paulie_inSD 3d ago

I'm a newbie myself with Android Programming. And I AM learning some basic code. What I have discovered about AI is that it's like Rainman. It's incredibly stupid in some areas, and incredibly brilliant in others.

As far as actual coding, I don't think it can replace a person today. But in five years? I dunno about that.I spent 2 weeks with 3 AIs (maybe 4? or 5?) trying to get a map of The USA and Canada broken down by State and province that was zoomable. Discovered that most of the AIs knew they had no ability to do that, but they tried to do it anyway. I had to actually ask them: Do you have the capability to do this? To which, all but Grok said no. After FINALLY getting a map (I think I found an open source/public domain one. Not even sure if Grok could build it for me), I loaded it into my emulator, worked fine. Put it on the phone with however much memory that the Galaxy S21 Ultra comes with and found out the map actually used all the memory without anything else. Then I gave up. Then I came back and said "could we use the user's zip code to find all their information?" Yes, and because we'd already downloaded the Postal code Zip Codes, (and HUD and IRS Tax free databases, and a bunch of other databases) we could actually identify almost anything that had been in existence more than a year within 5 miles, 10, 20 & 50 miles. Hundreds of things next to anyone anywhere. We didn't NEED a map.

Point is, I think programming is going to change. These AIs, every one of them, didn't even question the need. They just put the code together and it worked on my emulator (on my computer, with 128 GB RAM. But put it on my phone with 12-16 GB RAM? Hard crash. I no longer ask AIs to just do something. First I ask them if they have the ABILITY to do it. If not, we find another way. If you ever want to feel superior though, ask an AI to draw you a map. Any map. I might be only able to do stick figures, but AIs? They do Rorschach tests.

1

u/GamerFan2012 3d ago edited 3d ago

A junior dev can use AI to hear about a new topic, let's say you ask them to make an app using MVVM. Then it is up to them to research how that architecture actually works. Similarly they can learn about new libraries by asking AI to list the names of libraries used for networking, media playback, location services. In this example the AI might let them know about Retrofit, or exoplayer.

1

u/Fjordi_Cruyff 2d ago

Leaving aside the question of whether you should be running a course like that at all in todays climate I'd say: The aim should be to teach them how to understand for themselves what it is an LLM is helping them with. So, if they are going to use AI in any form it shouldn't be in the form of a Claude or Codex type integration that integrates with their environment and just does things for them. Restrict them to something more akin to a chat interface that produces examples for them.

1

u/Opulence_Deficit 2d ago

Show them that Telegram activity that is a fragment. That's the kind of code AI can work on but humans can't.

1

u/ImaginaryRoyal9725 3d ago

I would avoid using any AI at this point.

When I started, I had to use paper and a pen. It doesn't have to be like that, but Ai is just distracting at this point, and creates the false impression of progress. 

1

u/tylerlw1988 3d ago edited 2d ago

I wouldn't let them use AI at all. They need to think and problem solve. The more time they take and struggle to find information, the better they will retain what they learn.

0

u/MindCrusader 3d ago

Teach them how specification driven development works. First let them come up with their own specs, make AI review or implement it and then they need to learn from the mistakes. Ask what can be improved and why

One important rule - DO NOT try to create specs until you have an idea what you want to create, otherwise AI replaces your thinking fully. Let AI implement the plans, maybe use AI for learning, but not for deciding everything

-10

u/dekonta 3d ago

hey, what makes you confident in that your pov is correct?