r/AskProgramming • u/Appropriate-Tea-7936 • 3d ago
What AI should I use to help me learn programming, and what are some better alternatives to learning on w3schools.
Hi, I am just starting in programming and wanted to know what really good sites you guys recommend besides w3schools.com (I have heard a lot of hate for it). Are there sites that, when I want to learn a language, teach the ENTIRE language and not just the basics? What I mean by that is that it goes in depth- not just the syntax and how to write the code, but the logic. Another question I wanted to ask is: what AI can help me learn programming? ChatGPT doesn't seem very good, but I can try. Is there an AI you recommend for helping teach you programming? Not for coding with AI, but for teaching code with AI. Thanks!
4
u/framauro13 3d ago
Honestly, find a Udemy course for the subject you want to learn. I'd avoid AI for learning unless you have focused, specific questions about a topic and you want to deep dive.
But a guided tutorial will be more beneficial IMO.
4
u/MistyHero99 3d ago
If you comfortable with writing basic code. I would suggest you to make some small project with your chosen language.
But without taking any help from AI. Just the docs and Google if you need. AI can be used to explain stuff or review code. Don't use it to solve the problems though.
1
u/nazarland 3d ago
first learn the basic of programming then build some project , when build you will make mistake that mistake will help you in future
1
u/karurosagu 3d ago
The logic comes first before the language, any language and it's part of the fundamentals You also need a basic understanding of how data moves around in memory so that you have an idea of what to do and what not to do, 'cause the thing is that you ca try to do anything, but without that knowledge everything will be a disaster
1
u/Square-Yam-3772 3d ago
Most AIs can tutor pretty well imo. They can go as in-depth as you want
You have to have the right expectation though. Learning a language takes time with or without AI.
People typically spend years in universities only to get some competency in programming languages.
I assume you are aiming higher with "learning the entire language" so that will definitely take time.
2
u/thisisappropriate 3d ago
There's quite a risk with using AI in an area you don't know anything about - it will be confidently incorrect sometimes, and it might back that up with "citations" (which may be incorrectly summarized or may be the only source on the internet that says that thing). Like you'll see on learn programming subreddits etc posts that ask "how do I do (odd thing that would rarely be done or is counter to how a library or language works)?" and usually someone has to link the XY problem website, but AI will happily just answer the question and now you have some poor new programmer getting the last 3 characters of a file name.
I've used AI for coding at work and it's attempted to take some very odd rabbit holes that I've had to fork out of or rethink my entire prompts and I've seen people take those holes and get very lost in them, and I fear for juniors and learners who think that ChatGPT or Claude can make the program, especially because it can work but it's not right and they'll find out when they have to work with other humans or code without AI.
0
u/Square-Yam-3772 3d ago
Not really. There isnt any bad consequences if it is a learning situation. No code is pushed to production etc
Understanding why some code is bad is part of the learning process. It is not all that different than dealing with tutorial code from the internet.
I personally learned a thing or two from these AI "odd rabbit holes" because it never cross my mind that things can be done that way (not that i would recommend it)
Programming is one of those subjects where the learner can verify things easily on their end so AI tutoring works really well here
Other areas would be worse i.e. drilling holes to the wall
2
u/thisisappropriate 3d ago
The problem isn't (or at least, isn't entirely) "the AI can give you wrong code", though that can be shit when learning, like there's a reason that if you picked up a random "coding for beginners" book, you'll find debugging somewhere around chapter 4, so if your AI "tutor" hasn't covered that and the code you typed doesn't run because it's incorrect or bad, you're having a bad time.
The problem is that AI is not deterministic. You ask it to teach you programming from 0, maybe you know a bit about AI and context and stuff and you actually ask it to break down learning programming into sections and provide a prompt for teaching each one - but if you take someone who knows nothing about programming, they also are likely to know nothing about LLMs or prompting, they'll likely just say "teach me X" and converse from there. And it can work (in theory).
But you take a lesson plan that you know nothing about, and you flesh out each lesson and it looks good. The problem is that imagine you know nothing from coding, you don't know that loops exist, you don't know that variables exist, you don't know that functions exist. Now imagine that the initial prompt reply didn't include for loops, the output says "section 3: loops such as while". You get there, you say okay let's do section 3, it teaches you about while loops. At the end, it gives you a loops exercise, you say "hey chatgpt, how do I make a while loop happen 3 times?" it answers the question you asked, cool now you do while x < 3, great. You have just missed a concept that exists in many languages and you don't know it yet. Occasionally, you get confused, this is an easy exercise but you're like 3 while loops deep and it's hard to keep track of what you're breaking or continuing, but it works. If you ask questions with a lot of context around while loops, you get while loop answers back.
AI may sometimes be an alright tutor.
It can investigate code and often manage an explanation of code or bugs, and it can be helpful for devs who already know the concepts as they can see when it's going off/has gone off the rails, like that was definitely not a 3 new files and a test suite kind of prompt what happened. Like yes, you can validate the code (assuming you ever had running code or ever ran the code), but you can't validate the knowledge before you know it and you don't know what you don't know - a beginner doesn't know the missing hole and doesn't know what is an obvious code smell vs a best practice and there's the risk of AI validating something incorrectly (ever told ChatGPT/Claude that it's wrong, had it tell you "oh yes, so sorry" only to realise later that you were wrong?).
But I'd not call it a teacher.
I wouldn't recommend that someone with 0 background knowledge learns by googling "python learning order" opening the first Medium article from some rando, copying the first "section" into google and learning by reading code from the first Medium article that search finds. I'd suggest a curated experience of a course that has many people who have followed the same course and have given feedback, and presumably reached the end and still understood things being doing at the end point.
1
u/Square-Yam-3772 3d ago
...have you actually test this out yourself?
Ask AI for a lesson plan for a complete beginner and compare it with a typical curriculum. I doubt that you would get some weird incorrect version that would lead people down the wrong path. (Ai most likely would just pull the data off the internet since it is readily available)
OP also didnt say he/she is going to rely on AI as the only source for learning. OP could be reading a textbook. Op mentioned w3cschool so it is not like he has been getting spoonfed by AI
I think you should give more credits to complete beginners. Maybe they are not as incompetent as you think they may be
1
u/thisisappropriate 3d ago
Honestly, it's not my faith in the competence of the learner, it's in the competence of the AI tools.
The OP said "Are there sites that, when I want to learn a language, teach the ENTIRE language and not just the basics? What I mean by that is that it goes in depth- not just the syntax and how to write the code, but the logic" so I'm working with the assumption that they are seeking a singular resource or collection of resources that teach programming (with the lens of a single programming language being learned at the same time).
I know the problems I've seen from people who are new to AI and junior devs so I did not test before saying that I have doubts and problems. I have watched juniors confidently spend days on small changes and appear with something that seems very much like they shot themselves in the foot 2 days earlier and didn't know better, and in theory, they knew at least the concepts and the language and had seen the best practices.
But sure, I popped open ChatGPT (memory off), asked "Make me a plan for learning python. I have no experience in any programming languages. Provide an AI prompt for each lesson/section." in two separate chats and picked a few prompts to try out in their own fresh chats and "I'm a beginner, teach me python" in a third and basically "okay next"'d my way through a few lessons. The teach me python and one of the AI prompt ones skipped over IDLE, but fine. One of the plans from ChatGPT omitted maths operators entirely. And despite nothing mentioning lists at any point before, all of them happily used the list in the loop examples (which courses and books also do, but they'll at least call out that you've not seen that before, it's called a list and will turn up later). At which point I ran out of tool use on the free version so I moved over to z.ai where my personal plan for out of work dicking around exists, because I'm not using my work account for it :D
z.ai : Plan - included IDLE. Skipped modulo operator. The prompts it wrote were less cohesive, resulting in holes (like the math operators explicitly called out the functions, so the resulting chat focused on those, where a better prompt would have probably been less specific to cover all possible operators)
Ordering example:
- In lesson 7, loops, it included an exercise in which I would need to get a random number. Modules are covered in lesson 13 including specifically calling out learning the random module and how to import
z.ai Single chat - did one in GLM-5-turbo and one in 5.3 flash. Both were inclined to turn something that would have been a full explanation or a page in a book, into something for your to try and pick up and maybe do on your own
Flash:
"On your computer: Download Python from python.org, install it, and use the included program IDLE or a free editor like VS Code."
Your Learning Roadmap
✅ Basics — print, variables, input (today)
Making decisions — if/else statements
Repeating things — loops
Lists — storing many values at once
Functions — writing reusable code
Mini projects — number guessing games, calculators, and beyondBut I'll give 5.3 flash credit in one area, it's the only one that gated skipping anything behind actually giving it my code to critique. And it did tailor it's reply to my code (eg. after giving it a string in the format it was using with + joining, it introduced f strings). On the other hand, it entirely skipped all maths (another?!).
All plan > separate chat versions had the issue that they did not know what I'd covered so they used things that weren't yet taught.
I'll grant that splitting out from one chat to others to preserve context on a single thing is probably not how a general user will work.
A user looking at a plan like the one from GLM 5.3 flash might think "that can't be everything" and re-prompt or question the model. But they might not. A user who has never touched programming isn't going to think "there's a good reason that maths operators are commonly taught to beginners so where are they?" And a user seeing the ChatGPT one that skipped maths is going to see a super long super comprehensive plan and not notice that there's no maths at all. I asked where the maths goes and it said it would put it in lesson 2 (it was not in the prompt, so it wouldn't have been taught there), but that because I was a beginner actually it would make maths it's own section as lesson 4 right after learning inputs. But why would a learner have asked that, unless they reached a point where they needed maths and asked "why didn't I learn this?" Now, putting some lesson prompts through chatgpt / glm 5.3 some eventually gave examples containing maths (mostly *) so the learner would eventually work that out and either just use it or ask about it, but if they just assumed it wasn't covered because it was obvious or wasn't needed, they're not going to push and learn about ** or // and you can work around those just fine.
So, yeah, they're probably not skipping something like for loops, or lists or functions that usually appear on a learning list, but it's entirely possible to accidentally miss a segment that's usually an aside / not a section on it's own.
----
Findings:
Single long chats with simple prompts seem more likely to shorten the plan and keep lessons closer to "blog" length that seems prone to either skipping or shortening smaller course parts.
Having it split the course into a plan with sections and prompts results in prompts and section summaries that miss things usually not listed in a course's video titles on udemy, and the model expanding on that prompt or section does not rehydrate that to include things that also get included in those videos.
Plan into chatting is slightly better (lessons were more complete, exercises generally didn't skip ahead), and some users might go this way. But if the plan missed something, it still didn't add that back in or catch itself (it might do if hitting the terms later, but didn't go through that far). As I went past the first few though, it started condensing
I shouldn't be allowed both internet access and free time simultaneously. I'm far to easy to send down a rabbit hole.
I would still not suggest that a beginner asks AI to teach them programming.
----
I'll also note:
I think that most people are too willing to ask the AI to show them things and then assume that because they understand it, they know it (same as if it was a leetcode and you look up someone's blog post on it, it's the outsourcing instead of doing that I have the issue with rather than the AI in that). Because of this, I would avoid suggesting AI to someone unless it was super clear how they planned to use it and even then, I might skip it.
I regularly see AI miss obvious things or skip sections when it's not forced into things, so the above missing of things like installs or maths is the sort of thing I was thinking of. I'm glad to see it not missing obvious sections like a type of variable or type of loop, but still.
imo, AI in learning only really lives in the space between a comprehensive course and deeper learning. If someone was doing a course and wanted to ask chatgpt "hey, the python course I'm doing just introduced the random library, can you explain how the random package in python generates a random number? What maths does it use and how do I find the code for that package?" in between their course lessons? Go right ahead. "How do I do X" lives in google (because you can see that 8 different results say "don't" before you get the chatgpt reference that says "like this") until you can smell the "uh, that might not be right"
----
So, you know, my original opinions and light rabbitholing are coloured by those opinions.
If you think my prompts or thoughts are not aligned with how a beginner would do this and have looked into this yourself, I'd be interested in your side.
But yeah, if OP is just using it as a reference (I'd still avoid because I believe in learning how to use all available resources and AI has the lowest barrier for entry so if you can learn google, then you can manage chatgpt later), then it's not going to miss chunks because there's not chunks to miss in a question and the biggest risk left is basically "asking the wrong question" and if you're just doing questions here and there, you'll probably learn something from that (even if just "oh, AI is super literal")
1
u/Square-Yam-3772 3d ago
I think you are trying too hard to find faults in this. A typical computer science student isn't going to perfectly absorb all the details from a textbook, chapter to chapter.
I am pretty sure a serious student will eventually discover IDLE or list or the mod operator... (the student can literally ask AI at any time, "hey what is this?" "I haven't learned this yet. can you tell me more about lists?"
just think about your finding objectively: if someone with 0 python knowledge actually learned and absorbed the knowledge introduced by AIs from these lesson plan, they already made progress in their python learning journey.
I find the idea hilarious that somehow AI tutoring isn't working because AI skips over concepts or ideas. Do you think that human teachers are immune to skipping over things with the teaching material?
learning isn't a straight path anyway. OP's idea of "entire language" will change once OP actually start learning more about programming.
I don't see a reason for complete beginners to avoid AI especially in subjects like programming.
what is your background anyway? did you study programming in universities? if you did, maybe you forgot what it was like. I personally think AIs these day are probably better than your average distracted TA or professors teaching introductory material.
1
u/thisisappropriate 3d ago
If someone wants to learn from AI, I'm not going to stop them, really I'm just trying to advocate for being well aware that if you were to ask AI "make me a training plan for this programming language" or "what do I need to know in x to do y", you'll find the hole later and that it will not be comprehensive.
I didn't go to uni for computer science, I did a statistics heavy biology degree many many years ago and have self taught programming, mostly with projects/work (R at uni, python, js in various flavours, java, etc since). I'm well versed in finding holes in my own knowledge because I've followed a pattern of learning what is needed and nothing more. I've picked up courses and books here and there over the years to fill in those "you don't know what you don't know" shaped holes. To me, a well structured textbook or course is worth it's weight in gold, not because I'm memorizing every part of it but because the exposure allows me to know something exists in that space for when I need it later and I can reference back to it later if needed.
I've worked as a dev for a number of years now in a mid size tech company. And I've seen people at work try to break into dev from other teams, be given resources and then tell me "the course is going well and if I get an error I ask chat and it helps me", then they suddenly say a week later, "yeah I don't understand that bit, let me ask chat" until eventually they stop progressing or get frustrated because they can't do it (count of 3 so far, various stage drop outs, but unless they can self drive enough to get past learning fundamentals, there's no resources for extending mentoring). So I have maybe higher skepticism than most about how people handle learning with AI.
1
u/Square-Yam-3772 3d ago
I think finding holes is going to happen even with the perfect study plan and with amazing tutors. I don't see that being an issue with AI tutoring specifically.
it sounds like your skepticism comes with the fact that some people lean on AI too much and didn't fully learned their craft etc. That is a separate topic to me imo. (even without AI, some people just find others to do their course work for them, the stereotypical group project situation etc. AI is just easier)
People dropping out is normal. I am sure that happens in biology or any other subjects too. I also don't see that being an AI specific issue.
personally, I think "anything goes" as long as it helps with learning. AI, stackoverflow, github, reddit, whatever. OP can fall in love with AI, fall out of love with AI, circled back to AI, doesn't matter. It is never a straight path. Same goes for any tools or websites.
not using AI for learning in these day and age seems very counterproductive imo.
0
7
u/StructuredChess 3d ago
To help you learn: None
To assist you in certain projects once you already know how to code: Claude