{"id":551839,"date":"2025-05-12T15:19:37","date_gmt":"2025-05-12T14:19:37","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=education&#038;p=551839"},"modified":"2025-12-03T14:15:52","modified_gmt":"2025-12-03T13:15:52","slug":"five-lessons-for-novice-programmers-ai-world","status":"publish","type":"education","link":"https:\/\/blog.jetbrains.com\/ko\/education\/2025\/05\/12\/five-lessons-for-novice-programmers-ai-world","title":{"rendered":"Learning to Think in an AI World: 5 Lessons for Novice Programmers"},"content":{"rendered":"\n<p>This is the second article of the series <em>How to Learn to Code in an AI World<\/em>. Don\u2019t miss the first, <a href=\"https:\/\/blog.jetbrains.com\/education\/2025\/04\/23\/is-it-still-worth-learning-to-code\/\" data-type=\"link\" data-id=\"https:\/\/blog.jetbrains.com\/education\/2025\/04\/23\/is-it-still-worth-learning-to-code\/\">Is it Still Worth Learning to Code?<\/a><\/p>\n\n\n\n<p><strong>Imagine the following scenario: <\/strong><\/p>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>A<em> student is enrolled in an introductory computer science course. They have no previous programming experience and don\u2019t consider themselves very good at math or technical subjects. In this course, the teacher allows the use of large language models like ChatGPT and AI code completion software to help students with their work.<\/em><\/p>\n\n\n\n<p><em>When completing a homework assignment, the student carefully reads the prompt and begins to code. Almost immediately, an AI code suggestion tool generates a long function, which overwhelms them, prompting them to turn to ChatGPT instead. Believing it&#8217;s best to use AI as a tutor rather than an answer machine, they request step-by-step guidance. However, after reading the first point of advice, they scroll past the explanation in search of a quicker solution and copy the generated code. This code, however, does not fully match the problem and contains unfamiliar syntax, leading to confusion. After repeatedly passing their code back and forth between the IDE and ChatGPT, they eventually produce a version that passes the test cases, though without fully understanding how it works.<\/em><\/p>\n\n\n\n<p><em>When asked later about how useful they found the AI, they answered \u201cvery\u201d and appreciated its utility as a personal tutor in a class they struggle in. They lack awareness of the way they actually use the AI and have a skewed perception of their understanding of the material.<\/em><\/p>\n\n\n\n<p><em>Now imagine another student in the same class. She once attended a STEM-focused summer camp and is familiar with the frustration of learning to code. She does not find it easy, but has the experience behind her to know she is capable of producing working output.<\/em><\/p>\n\n\n\n<p><em>When completing the same assignment, the student carefully reads the problem description and begins structuring her solution by naming variables and adding comments to outline her approach. As she types, the AI-powered code suggestion tool provides frequent input, which she occasionally glances at but mostly ignores, preferring to follow her own plan. When she does accept suggestions, they are small and deliberate \u2013 filling in predictable elements like closing brackets or simple conditionals. While she encounters a few syntax mistakes, she methodically corrects them and successfully completes the assignment, passing all test cases in a short time. Looking back, she acknowledges that AI helped her move faster but credits her own structured thinking for getting to the right solution.<\/em><\/p>\n<\/blockquote>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"2560\" height=\"1440\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/05\/DSGN-22098-Banners-for-AI-world-blog-post-series-part-2-Social_featured_1280x720.png\" alt=\"Two beginner programmers are depicted. One is struggling to learn programming and one is not, one offloads their thinking to AI and misses crucial concepts, and one prioritizes the thinking skills.\" class=\"wp-image-566507\"\/><\/figure>\n\n\n\n<p>The example above is not hypothetical. This scenario was illustrated in a 2024 study about AI\u2019s role in <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/3632620.3671116\" target=\"_blank\" rel=\"noopener\">the widening gap<\/a> between struggling and non-struggling students. Although it may seem counterintuitive, the emergence of AI being there at any moment to write code for us might mean an increased emphasis on writing <em>more <\/em>of it by hand, at least in the beginning.&nbsp;<\/p>\n\n\n\n<p>Considering this, we\u2019ve introduced several AI-powered features in our plugin, including machine translation for course content, theory lookup, and AI hints. The goal is not to avoid AI entirely but to learn how to think effectively alongside it. The following five lessons will help you develop the skills and practices you\u2019ll need to navigate AI tools and become a stronger, more independent programmer.<\/p>\n\n\n\n<p>If you missed it, read part one of this series: <a href=\"https:\/\/blog.jetbrains.com\/education\/2025\/04\/23\/is-it-still-worth-learning-to-code\/\" data-type=\"link\" data-id=\"https:\/\/blog.jetbrains.com\/education\/2025\/04\/23\/is-it-still-worth-learning-to-code\/\">Is it Still Worth Learning to Code?<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Focus on <em>problem solving<\/em>, not output<\/h2>\n\n\n\n<p>Pauses in programming are useful, even if they feel like getting stuck. Novice programmers are often surprised at how much time will go into a single function or even a single <em>line <\/em>of working code. This slow and often frustrating process is necessary for building the kind of cognitive processes you\u2019ll need to become a better programmer.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1280\" height=\"201\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/05\/divider1-1.png\" alt=\"\" class=\"wp-image-566530\"\/><\/figure>\n\n\n\n<p>Refining your thinking will also improve your ability to quickly read and understand code you haven\u2019t written yourself. While this has always been important for collaboration, now that we have AI code assistants, developers are reading a <em>lot <\/em>more code than they used to. If a large-language model autocompletes your function, you want to be able to quickly accept or reject the suggestion without getting caught up in understanding the logic of it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hack your own psychology<\/h2>\n\n\n\n<p>If there\u2019s one idea that should leave the gated garden of research and make its way into classrooms immediately, it\u2019s the concept of <em>meta-cognitive awareness<\/em>. Granted, the reason it hasn\u2019t is probably because \u201cmeta-cognitive awareness\u201d is not a very enticing term \u2013 but the idea is quite simple. It\u2019s about your ability to recognize \u201cthinking traps\u201d and effectively problem-solve your way out of them.<\/p>\n\n\n\n<p><a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/2858036.2858252\" target=\"_blank\" rel=\"noopener\">Research has shown<\/a> that teaching beginners about these challenges produces immediate and lasting changes to the students\u2019 productivity, independence, and confidence. Given that, it might be good to take the time to learn them!<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1280\" height=\"201\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/05\/divider2-1.png\" alt=\"\" class=\"wp-image-566541\"\/><\/figure>\n\n\n\n<p>Here are a few meta-cognitive difficulties or \u201cthinking traps\u201d common in programming:<\/p>\n\n\n\n<ol>\n<li><strong>Right question, wrong answer (Forming)<\/strong> \u2013 You understand the problem, but you\u2019re using the wrong approach to solve it.<\/li>\n\n\n\n<li><strong>Stuck in a Rut (Dislodging)<\/strong> \u2013 Even when you realize your approach isn\u2019t working, you struggle to change it.&nbsp;<\/li>\n\n\n\n<li><strong>Wrong question, right answer (Assumption)<\/strong> \u2013 You perfectly solve a problem\u2026 just not the one you were supposed to.<\/li>\n\n\n\n<li><strong>So close, but so far (Location)<\/strong> \u2013 You zoom through the steps too fast, thinking you\u2019re almost done, only to realize you skipped something crucial.<\/li>\n\n\n\n<li><strong>Band-aid on a broken bone (Achievement)<\/strong> \u2013 You keep making small fixes in hopes your code will start working, but actually, it needs a total overhaul.<\/li>\n<\/ol>\n\n\n\n<p>Interestingly, <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/3632620.3671116\" target=\"_blank\" rel=\"noopener\">researchers found<\/a> that rather than helping with these challenges, AI actually <em>introduced<\/em> new meta-cognitive difficulties for beginners. Namely,&nbsp;<\/p>\n\n\n\n<ol>\n<li><strong>Falling Behind Without Noticing (Progression)<\/strong> \u2013 You think you&#8217;re keeping up with the course, but because AI assistance can generate working code that surpasses your current understanding, you&#8217;re falling behind and don&#8217;t realize it.<\/li>\n\n\n\n<li><strong>Distracting Pop-Ups (Interruption)<\/strong> \u2013 Every time you try to focus, an AI code-completion tool throws a suggestion at you, breaking your train of thought.&nbsp;<\/li>\n\n\n\n<li><strong>Following bad advice (Mislead)<\/strong> \u2013 You trust a suggestion (from an AI, a tutorial, or even your own guess) that seems right but actually takes you in the wrong direction.<\/li>\n<\/ol>\n\n\n\n<p>At the moment, most AI tools are not built with these challenges in mind. Even if they were, you are the sole expert of your own mind, and there is only so much an external resource can do to see the traps in your thoughts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Don\u2019t rush too quickly towards ill-conceived code<\/h2>\n\n\n\n<p>Although it looks good in the movies, speed-coding is unproductive for learning. Much of getting through your first programming assignments involves taking the time to understand the problem and then properly strategizing a solution. Both of these are mental processes and should be done <em>before <\/em>you start coding! While it\u2019s satisfying to generate a lot of code very quickly \u2013 in practice, the faster you write the code, the more time you have to spend debugging it<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"1280\" height=\"201\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/05\/divider3-1.png\" alt=\"\" class=\"wp-image-566552\"\/><\/figure>\n\n\n\n<p>Don\u2019t make the classic mistake of grinding through a vague idea until you\u2019re left with a steaming pile of broken syntax and semantic errors you\u2019ve put five hours into debugging and are too invested in to rebuild the right way. Much of that time would be better spent working out the data structures and program architecture before you write a single line. Once the logic of your program is solid in your mind, implementing it just becomes a matter of syntax.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Take steps to avoid the illusion of competence<\/h2>\n\n\n\n<p>Many novice programmers in <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/3632620.3671116\" target=\"_blank\" rel=\"noopener\">the study above<\/a> confidently believed they had solved a programming problem using AI tools, but missed the central lesson of the assignment. This unwarranted confidence, described as an <em>illusion of competence<\/em>, was compounded by the fact that using too many AI suggestions\u200b contributed to a<em> lack of awareness<\/em> of what was holding them back.&nbsp;<\/p>\n\n\n\n<p>Research uses the term <em>self-efficacy<\/em> to describe the confidence people have in their ability to complete specific tasks. A healthy level of self-efficacy fosters persistence and engagement, but when you overestimate your abilities, you may neglect critical reflection and fail to address gaps in your knowledge.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"5330\" height=\"822\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2025\/03\/DSGN-22097-Banners-for-AI-world-blog-post-series-part-1-Divider-2.png\" alt=\"\" class=\"wp-image-554057\"\/><\/figure>\n\n\n\n<p>While the illusion of competence can occur regardless of the tools used, AI can amplify it. By providing <a href=\"https:\/\/tripleten.com\/tools\/prompt-optimizer\/\" data-type=\"link\" data-id=\"https:\/\/tripleten.com\/tools\/prompt-optimizer\/\" target=\"_blank\" rel=\"noopener\">ready-made suggestions or solutions<\/a>, AI might give you the false impression that you have mastered a concept, even if you struggle to apply it independently.<\/p>\n\n\n\n<p>Here are some suggestions for avoiding this illusion in your own learning:<\/p>\n\n\n\n<ol>\n<li><strong>Prioritize active learning above all else<\/strong>: Writing code, debugging, and breaking down problems actively engages the brain more than reading or copying solutions. This engaged state is the key to activating the neural circuitry necessary for learning.&nbsp;<\/li>\n\n\n\n<li><strong>Try rubber duck debugging: <\/strong>Instead of going to an AI assistant when you get stuck, try the tested and true technique of rubber duck debugging, where you attempt to explain what the faulty code is doing, step by step, out loud. This technique helps you translate a vague intuitive understanding into concrete sentences, which almost always helps you see what needs to change.<\/li>\n\n\n\n<li><strong>Teach a beginner what you\u2019re learning: <\/strong>Even if you only know the basics, teaching someone else to program is genuinely one of the most underrated educational tactics there is. Novices usually ask questions that can reveal bigger ideas about the material you may have missed.<\/li>\n\n\n\n<li><strong>Code replays and critique<\/strong>: Anything worth doing is worth doing well. Seeking out peer reviews, instructor feedback, or even automated tools that offer detailed critiques can highlight areas of misunderstanding. This extra step will pay off.<\/li>\n\n\n\n<li><strong>Reframe mistakes as \u201cnegative expertise\u201d<\/strong>: Even if your DIY code is rife with bugs and flawed approaches, learning to be a good programmer is as much about knowing what <em>doesn\u2019t <\/em>work as it is about knowing what <em>does.<\/em><\/li>\n\n\n\n<li><strong>Build confidence <\/strong><strong><em>without <\/em><\/strong><strong>sophisticated tools: <\/strong>Challenge yourself to solve your next assignment without using an LLM or stack overflow. By depriving yourself of easy answers, you build stronger coding muscles. You may go back to the tools eventually, but these sessions can help build confidence and awareness of your understanding.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Understand the emotions of learning<\/h2>\n\n\n\n<p>All coders know that the mind of a programmer often oscillates between two extremes: there is either the ecstatic rush of implementing perfectly working code or overwhelming, frustrated confusion. Whether you\u2019ve been coding for a week or a lifetime, this emotional experience is pretty much the same. The trick is to learn to work <em>with <\/em>and <em>through <\/em>these experiences, not against them.<\/p>\n\n\n\n<p>To truly sustain your programming practice, you should work to foster true confidence, develop a productive response to frustration, let yourself be inspired to play and be creative, and take satisfaction and pride in your work. Understand that these are almost <em>more <\/em>important than the information you study, because they determine your attitude to programming. Developing and maintaining the belief that <strong>you are someone who enjoys programming<\/strong> will serve you well beyond the ability to work out each step of a sorting algorithm by hand.<\/p>\n\n\n    <div class=\"buttons\">\n        <div class=\"buttons__row\">\n                                                <a href=\"https:\/\/academy.jetbrains.com\/\" class=\"btn\" target=\"_blank\" rel=\"noopener\">Explore our course catalog<\/a>\n                                                    <\/div>\n    <\/div>\n\n\n\n\n\n\n\n<p>This is the second post in our series&nbsp;<em>How to Learn to Program in an AI World,<\/em>&nbsp;keep an eye out for the next ones on&nbsp;<a href=\"https:\/\/blog.jetbrains.com\/education\/\">our blog<\/a>&nbsp;in the coming months. If you missed it, check out part 1: <a href=\"https:\/\/blog.jetbrains.com\/education\/2025\/04\/23\/is-it-still-worth-learning-to-code\/\" data-type=\"link\" data-id=\"https:\/\/blog.jetbrains.com\/education\/2025\/04\/23\/is-it-still-worth-learning-to-code\/\">Is it still worth learning to code?<\/a><\/p>\n","protected":false},"author":1417,"featured_media":566507,"comment_status":"closed","ping_status":"closed","template":"","categories":[8075],"tags":[6847,8499,499,5120,63,8648,4271,8299,743,1013,3707],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/education\/551839"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/education"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/types\/education"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/users\/1417"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/comments?post=551839"}],"version-history":[{"count":10,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/education\/551839\/revisions"}],"predecessor-version":[{"id":664509,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/education\/551839\/revisions\/664509"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media\/566507"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/media?parent=551839"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/categories?post=551839"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/tags?post=551839"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/ko\/wp-json\/wp\/v2\/cross-post-tag?post=551839"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}