{"id":222,"date":"2023-11-27T06:30:26","date_gmt":"2023-11-27T06:30:26","guid":{"rendered":"https:\/\/redmonk.com\/kholterhoff\/?p=222"},"modified":"2024-02-22T15:58:05","modified_gmt":"2024-02-22T15:58:05","slug":"can-ai-code-assistants-really-teach-junior-developers-to-code","status":"publish","type":"post","link":"https:\/\/redmonk.com\/kholterhoff\/2023\/11\/27\/can-ai-code-assistants-really-teach-junior-developers-to-code\/","title":{"rendered":"Can AI Code Assistants Really Teach Junior Developers to Code? Ask a Redditor"},"content":{"rendered":"<p><img decoding=\"async\" class=\"alignnone size-full wp-image-225\" src=\"http:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/robot_teacher.jpeg\" alt=\"\" width=\"100%\" height=\"7680\" \/><\/p>\n<p>Anyone paying attention to the marketing language around AI code assistants will recognize the push to position these tools as not merely developer-led (in the vein of \u201c<a href=\"https:\/\/thenewstack.io\/trust-but-verify-to-get-ai-right-its-adoption-requires-guardrails\/\">Trust, but Verify<\/a>\u201d), but also as experts able to lead developers. Take, for example, GitHub Copilot. Earlier this month during the opening keynote for GitHub Universe <a href=\"https:\/\/www.linkedin.com\/in\/colinmerkel\/\">Colin Merkel<\/a>, a Software Engineer at GitHub, explained that:<\/p>\n<blockquote><p>with Copilot, you now have an expert available anytime to answer questions about your code base right from your browser or IDE.<\/p><\/blockquote>\n<p>Of course, <a href=\"https:\/\/redmonk.com\/kholterhoff\/2023\/11\/01\/10-things-developers-want-from-ai-code-assistants\/\">as I have already written<\/a>, mid and senior level developers don\u2019t accept this line of argument at all. Most tend to view these tools as occupying the subservient role of \u201c<a href=\"https:\/\/news.ycombinator.com\/item?id=38227090\">an endlessly enthusiastic savant intern<\/a>.\u201d I have yet to encounter a single experienced practitioner that thinks AI code assistants don&#8217;t require their oversight and direction. Nonetheless, vendors have been eager to suggest that their AI code assistants are increasingly able to stand in as authorities.<\/p>\n<p>It makes good business sense for GitHub and others marketing AI code assistant products to suggest that these tools no longer fill a supporting role, but have instead apotheosized into full-fledged experts. AI code assistants able to program at the level of senior engineers would be an obvious boon for businesses with software engineering departments. Companies want to see tangible productivity gains before investing in these tools, and team <a href=\"https:\/\/www.nber.org\/system\/files\/working_papers\/w31161\/w31161.pdf\">happiness<\/a> has so far been a less compelling selling point than increased throughput. Aspirations and intentions aside, the AI code assistant <i>expert<\/i> remains in the realm of science fiction. What may happen in the next year, five-years, or decade is yet to be seen. Perhaps with products personalized to a company\u2019s codebase like GitHub Copilot Enterprise even the notoriously skeptical professional developers that congregate on Hacker News will acknowledge the possibility of an AI code expert.<\/p>\n<p>But today there is a demographic of developers that already treats AI code assistants as experts: junior developers.<\/p>\n<p>The needs and experiences of early career developers around AI code assistants has been woefully understudied. This is a shame as nowhere is the issue of whether AI code assistants are experts or interns more important or contentious.<\/p>\n<p>I argue that beginning programmers can benefit from AI code assistants. Although caution should be exercised by new developers until (if ever) these tools can actually serve the role of experts, but there is no sense in gatekeeping this tech. <a href=\"https:\/\/redmonk.com\/kholterhoff\/2023\/06\/27\/ai-is-for-tinkerers\/\">AI is for tinkerers<\/a>: beginning, expert, and every ability level in-between. New learners should be encouraged to experiment with these tools early and often in order to discover some of the unique and surprising ways that AI has already augmented the education of many new developers. My goal in this post is to shine a light onto how this segment of the developer community\u2014a group which is as enthusiastic and curious about the potential of these AI code assistants as their more seasoned counterparts\u2014are using this tech. Pedagogical use cases for these tools are only beginning to be theorized, and what group is better situated to discover them than newbies themselves?<\/p>\n<p>&nbsp;<\/p>\n<h2>Is This A Junior Developer?<\/h2>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-223\" src=\"http:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-21-at-11.25.48\u202fAM.png\" alt=\"\" width=\"100%\" height=\"972\" srcset=\"https:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-21-at-11.25.48\u202fAM.png 1112w, https:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-21-at-11.25.48\u202fAM-300x262.png 300w, https:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-21-at-11.25.48\u202fAM-1024x895.png 1024w, https:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-21-at-11.25.48\u202fAM-768x671.png 768w, https:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-21-at-11.25.48\u202fAM-480x420.png 480w, https:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-21-at-11.25.48\u202fAM-717x627.png 717w\" sizes=\"(max-width: 1112px) 100vw, 1112px\" \/><\/p>\n<p>Before hopping into my findings, I want to outline several of the unique challenges that hindered this inquiry. First, because developers are always learning it is necessary to differentiate between the experiences of junior developers learning how to code, and mid and senior level developers that can code already, but are using AI code assistants to learn a new language, tool, library, or part of the stack. Both of these developer types use AI code assistants, but for this article I am only concerned with the former.<\/p>\n<p>Another challenge is the imprecision and negative connotations attached to the junior developer rank. The term &#8220;junior&#8221; promotes ageist assumptions equating relative youth with inexperience or, worse, incompetence. What is more, the term &#8220;junior&#8221; is unreliable and prone to ambiguity. Experience level is generally self-reported and subjective, particularly online. Ability often has to be inferred when researching the experiences of new learners. External hiring practices within the discipline offer little help. After my own <a href=\"https:\/\/www.neboagency.com\/blog\/from-academic-to-developer-why-career-changes-are-no-longer-off-limits\/\">stint as an intern<\/a> for an engineering department, I jumped straight to the rank of \u201cFrontend Engineer\u201d not owing to my virtuosic skill but because my company didn\u2019t have juniors.<\/p>\n<p>It\u2019s also worth mentioning the sources and methods I employ, and why I ultimately chose to focus on Reddit. There is a lot of promoted content about AI targeted to early career developers which I do not consider useful to my inquiry. <a href=\"https:\/\/www.freecodecamp.org\/\">FreeCodeCamp<\/a> has extensive content tagged <a href=\"https:\/\/www.freecodecamp.org\/news\/tag\/ai\/\">#AI<\/a>, such as \u201c<a href=\"https:\/\/www.freecodecamp.org\/news\/ai-in-your-serverless-app-amazon-bedrock\/\">How to Integrate AI into Your Serverless App With Amazon Bedrock<\/a>\u201d by <a href=\"https:\/\/twitter.com\/SamCompleteCode\">Sam Williams<\/a>, an <a href=\"https:\/\/completecoding.io\/\">AWS Consultant and Trainer<\/a>. Similarly, the <a href=\"https:\/\/community.codenewbie.org\/\">Code Newbie Community<\/a> feed includes a post by <a href=\"https:\/\/www.udemy.com\/user\/ariel-weinberger\/\">Ariel Weinberger<\/a> entitled \u201c<a href=\"https:\/\/community.codenewbie.org\/matan\/every-developer-should-know-how-to-add-ai-to-his-toolkit-4ndg\">Every Developer Should Know How To Add AI To His Toolkit!<\/a>.\u201d Although these types of posts reveal the ubiquity of AI in the early career developer community, they are less interesting to me for two reasons. First, this are top-down content fed to junior developers and not grassroots examples highlighting their unique voices and perspectives. Second, I saw no promoted posts in this type of forum that urged new learners to use AI code assistants as tutors. This was curious to me, as the use case of the AI tutor is touted so frequently. Khan Academy\u2019s AI tutor <a href=\"https:\/\/www.khanacademy.org\/khan-labs\">Khanmigo<\/a>, for instance, promises to automate computer science instruction:<\/p>\n<blockquote><p>Learning to code has never been more accessible. Khanmigo\u2019s interactive experiences and real-time feedback will help learners hone their computer science skills.<\/p><\/blockquote>\n<p>Khanmigo, which is still in beta, is intended to democratize access to 1-on-1 instruction while offering significant support to overburdened educators. However, as we near the end of 2023 Khan Academy\u2019s AI tutor has not caught on in the developer community as a means for reskilling or upskilling.<\/p>\n<p>Reddit is hands-down the most vibrant community hosting conversations on the subject of how junior developers use AI code assistants. Unlike StackOverflow or Hacker News, which have historically been unwelcoming to new coders, Reddit has whole subreddits devoted to learning how to program that act as safe spaces for these newbies to discuss their needs, struggles, and experiences. The remainder of this post dives deeply into these important conversations. It is my hope that by offering qualitative insight into the AI code assistant&#8217;s pedagogical function we in the tech industry can expand the conversation around this transformative technology, both in terms of personas and use cases.<\/p>\n<p>&nbsp;<\/p>\n<h2>\u201cI just copy and pasted the code to see if it worked (it did)\u201d<\/h2>\n<p>The subject of how AI code assistants succeed as instructional aids is taken up with great enthusiasm across the span of Reddit\u2019s programming communities. Many host questions and conversations relating to whether GPT should be used to reskill in the discipline of software engineering.<\/p>\n<p>Below is one illustrative example from the <a href=\"https:\/\/www.reddit.com\/r\/learnprogramming\">r\/learnprogramming<\/a> subreddit posted by user <a href=\"https:\/\/www.reddit.com\/r\/learnprogramming\/comments\/169stpd\/do_any_of_you_use_chatgpt_to_learn_should_i_use_it\/\">prog_22<\/a>:<\/p>\n<blockquote>\n<h3>Do any of you use chat-gpt to learn (should I use it)?<\/h3>\n<p>I created a chess game with vanilla javascript<\/p>\n<ul>\n<li>Phase 1: just got it working.<\/li>\n<li>Phase 2: Refactored it into different modules (with vite).<\/li>\n<li>Phase 3: convert it into TypeScript (as I&#8217;m not yet 100% confident with ts, I need to mess around with just js first).<\/li>\n<li><b>Phase 4: gave chat my <\/b>validatePawn<b> module and asked it questions.<\/b>*\n<ul>\n<li>review it for me = not all that useful but if I ever go on an interview and if I talk about my code like chat talked about it, it&#8217;s better than nothing<\/li>\n<li>if I want to refactor it using design patterns, which ones apply? and it told me:\n<ul>\n<li>Chain of Responsibility, Template Method, Visitor, State<\/li>\n<\/ul>\n<\/li>\n<li>Then I asked it to rewrite the method using each pattern and it did<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>I just copy and pasted the code to see if it worked (it did).<\/p>\n<p>I could then learn how those patterns work and ask it more questions: &#8220;I have this Chain of Responsibility pattern for validatePawn, I know nothing about Chain of Responsibility pattern, please explain&#8221;<\/p>\n<p>Or is this total bull and it will lead me to nowhere?<\/p><\/blockquote>\n<p>Before considering the responses to prog_22\u2019s question, it\u2019s worth pausing to tease out how this junior developer uses ChatGPT as a teaching aid. Before turning to AI, prog_22 has already learned enough JavaScript to create a game, likely through online video tutorials such as Ania Kub\u00f3w\u2019s \u201c<a href=\"https:\/\/www.youtube.com\/watch?v=Qv0fvm5B0EM\">Code CHESS in JavaScript (Super simple!)<\/a>.\u201d These online guides typically include boilerplate code snippets that are either shown on the screen or else packaged in a repository for easy download (<a href=\"https:\/\/code-projects.org\/chess-game-in-javascript-with-source-code\/\">here&#8217;s one<\/a>). In my experience, tutorials like Kub\u00f3w\u2019s are exercises in <a href=\"https:\/\/en.wikipedia.org\/wiki\/Copypasta\">copypasta<\/a> or, if the student is feeling ambitious, typing out code blocks character-by-character as they appear on the screen. Regardless of which strategy prog_22 adopted, they refactored their chess code to make it work in alternative frameworks and libraries. Only then did prog_22 use ChatGPT to further tinker with their project using design patterns and by requesting a generic code review.<\/p>\n<p>It is interesting that prog_22 does not use the numerous AI code assistants that can be added to the text editor, and instead confines themself OpenAI\u2019s ChatGPT. As the examples I discuss later demonstrate, this is not uncommon and I think has much to do with friction and familiarity. ChatGPT supports a copy and paste workflow that feels natural for developers wary of learning new tools and UIs. In fact, there is tremendous overlap between the typical pattern of copy and paste used in tutorials and supported by forums like StackOverflow, and what prog_22 describes doing with GPT: \u201cI just copy and pasted the code to see if it worked (it did).\u201d In this way, AI code assistants are just the newest permutation of copypasta up\/reskilling.<\/p>\n<p>But, of course, AI code assistants extend the copy-and-paste tutorial experience so familiar to self-trained developers. For this reason it is important that prog_22 implies anxiety about whether GPT is a useful pedagogical tool, or if it is even safe. In fact, the purpose of their post is to ask questions: \u201cshould I use it? &#8230; Or is this total bull and it will lead me to nowhere?\u201d<\/p>\n<p>&nbsp;<\/p>\n<h2>Hey, who\u2019s driving this thing?<\/h2>\n<p><iframe loading=\"lazy\" title=\"If you\u2019re here \u201cWho\u2019s Driving the Car?\u201d || \u201cWho\u2019s flying the plane?\u201d  Supercut\/Compilation\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/arxTe28OsK0?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>Without a deep understanding of development best practices or a structured education in computer science, junior developers that use AI-generated code snippets have effectively let AI take the wheel and steer. In the hands of new developers ChatGPT, Copilot, Duo, Code Whisperer, Cody, and others are no longer code assistants, but code drivers.<\/p>\n<p>Prog_22 reveals their own uncertainty about whether copying and pasting AI generated and imperfectly understood code is acceptable. However, the risk seems worth it to this Redditor because by asking ChatGPT questions about the code it generates they are discovering more about what it does. Of course, there is no guarantee that ChatGPT\u2019s explanations are correct. Prog_22 is learning from a tutor that must be constantly fact checked. By all measures, this unreliable instructor introduces a topsy-turvy reality. Tutors are supposed to fact check their students, not the other way round. And yet a reversal of roles is typical for online education. Our <a href=\"https:\/\/en.wikipedia.org\/wiki\/Post-truth\">post-truth<\/a> reality has democratized access to wide swaths of human knowledge, while at the same time obscuring facts within algorithms tuned to maximize views rather than advance truth. Today it is more important to know how to track down information and then determine this source&#8217;s reliability, than to know everything outright.<\/p>\n<p>Prog_22\u2019s question about whether to use ChatGPT is not out of character for Reddit\u2019s programmer community. Permutations of this basic question appear in numerous other developer subreddits. Here is a sampling of similar posts:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.reddit.com\/r\/csharp\">r\/csharp<\/a>:\n<ul>\n<li>\u201c<a href=\"https:\/\/www.reddit.com\/r\/csharp\/comments\/11onzit\/is_it_ok_for_beginners_to_learn_programing_from\/\">Is it ok for beginners to learn programing from Chat GPT?<\/a>\u201d<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.reddit.com\/r\/learnpython\">r\/learnpython<\/a>:\n<ul>\n<li>\u201c<a href=\"https:\/\/www.reddit.com\/r\/learnpython\/comments\/12jgthb\/using_chat_gpt_to_help_with_coding\/\">Using chat gpt to help with coding<\/a>\u201d<\/li>\n<li>\u201c<a href=\"https:\/\/www.reddit.com\/r\/learnpython\/comments\/16nocri\/using_chatgpt_all_the_time_to_code_it_is_a_real\/\">Using ChatGPT all the time to code! It is a real battle within myself<\/a>\u201d<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.reddit.com\/r\/reactjs\/\">r\/reactjs<\/a>:\n<ul>\n<li>\u201c<a href=\"https:\/\/www.reddit.com\/r\/reactjs\/comments\/143sx3l\/learn_how_to_use_gpt_to_actually_make_you_a\/\">Learn how to use GPT to actually make you a superhero, rather than a copy paste bot.<\/a>\u201d<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.reddit.com\/r\/gamedev\">r\/gamedev<\/a>:\n<ul>\n<li>\u201c<a href=\"https:\/\/www.reddit.com\/r\/gamedev\/comments\/158mkb9\/its_insane_how_useful_chatgpt_is_for_learning\/\">It&#8217;s insane how useful ChatGPT is for learning gamedev<\/a>\u201d<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.reddit.com\/r\/learnprogramming\">r\/learnprogramming<\/a>:\n<ul>\n<li>\u201c<a href=\"https:\/\/www.reddit.com\/r\/learnprogramming\/comments\/vjmdgu\/thoughts_on_github_copilot\/\">Thoughts on GitHub co-pilot?<\/a>\u201d<\/li>\n<li>\u201c<a href=\"https:\/\/www.reddit.com\/r\/learnprogramming\/comments\/oifr8z\/using_github_copilot_while_learning_programming\/\">Using Github Copilot while learning programming? Is it good or bad?<\/a>\u201d<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.reddit.com\/r\/FlutterDev\/\">r\/FlutterDev<\/a>:\n<ul>\n<li>\u201c<a href=\"https:\/\/www.reddit.com\/r\/FlutterDev\/comments\/10exvo0\/to_new_people_learning_flutter_use_chatgpt_while\/\">To new people learning Flutter, use ChatGPT while doing your Course<\/a>\u201d<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Clearly there is significant demand among junior developers occupying every level of the stack (frontend, backend) and multiple verticals (game developers, web dev) for AI code assistants to serve as tutors. However, these self-described beginners worry that they err in using these tools.<\/p>\n<p>Let\u2019s now turn to a representative sampling of the responses that questions like prog_22\u2019s attract. Over and over, the answer to queries about whether AI code assistants should be used to learn programming is a resounding No. According to the bulk of Redditors participating in developer subreddits, early career developers should avoid these tools. As Redditor <a href=\"https:\/\/www.reddit.com\/r\/csharp\/comments\/11onzit\/comment\/jbti0vn\">Slypenslyde<\/a> elaborates in the C# community:<\/p>\n<blockquote><p>The problem with trying to <i>learn<\/i> at this level is so far nobody&#8217;s made an AI that focuses on being <i>correct<\/i> because that is difficult. So asking ChatGPT a question is about the same thing as asking Google and picking the &#8220;average&#8221; of each tutorial. Considering <i>some<\/i> example code is dead wrong and <i>other<\/i> example code is wrong in subtle ways, there&#8217;s a chance ChatGPT will show you things that seem to work but fail subtly. A newbie is the person worst-equipped to deal with untrustworthy code, and an AI is something most well-equipped to deliver it. (For example, I&#8217;ve seen people get weird answers from ChatGPT and when they ask it, &#8220;Can you tell me why you think that?&#8221; it happily sends them to whackadoodle conspiracy theory sites to back up its claims.)<\/p><\/blockquote>\n<p>Many offer the caveat that once the junior developer reaches a certain level of ability they can begin using AI code assistants to speed up and support development, but for newbies these tools are unreliable. According to <a href=\"https:\/\/www.reddit.com\/r\/csharp\/comments\/11onzit\/comment\/jbtrivk\">BigYoSpeck<\/a>:<\/p>\n<blockquote><p>An absolute beginner should stay well away from it just like a child learning arithmetic should leave a calculator well alone. But once you&#8217;re into more advanced work it&#8217;s a good brainstorming tool.<\/p><\/blockquote>\n<p><a href=\"https:\/\/www.reddit.com\/r\/csharp\/comments\/11onzit\/comment\/jbtrivk\/\"><img decoding=\"async\" class=\"alignnone size-full wp-image-224\" src=\"http:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-22-at-2.16.27\u202fPM.png\" alt=\"\" width=\"100%\" height=\"794\" srcset=\"https:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-22-at-2.16.27\u202fPM.png 1498w, https:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-22-at-2.16.27\u202fPM-300x159.png 300w, https:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-22-at-2.16.27\u202fPM-1024x543.png 1024w, https:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-22-at-2.16.27\u202fPM-768x407.png 768w, https:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-22-at-2.16.27\u202fPM-480x254.png 480w, https:\/\/redmonk.com\/kholterhoff\/files\/2023\/11\/Screenshot-2023-11-22-at-2.16.27\u202fPM-1183x627.png 1183w\" sizes=\"(max-width: 1498px) 100vw, 1498px\" \/><\/a><\/p>\n<p>Fair enough. The sages of Reddit emphatically counsel junior developers to avoid AI code assistants, and some target new programmers explicitly because this demographic is overly dazzled by it. According to <a href=\"https:\/\/www.reddit.com\/r\/gamedev\/comments\/158mkb9\/comment\/jtfvpfp\">House13Games<\/a>:<\/p>\n<blockquote><p>Get a book and learn from a proper source. Chatgpt writes shit, buggy code.<\/p>\n<p>I see beginners getting impressed all the time though. Probably because they can&#8217;t see what&#8217;s wrong with it.<\/p><\/blockquote>\n<p>It&#8217;s worth pausing to here to state that although the notion AI code assistants write bad code is not universal across Reddit or the dev community more broadly, suspicions against this tech are not unwarranted. The problem of hallucinations remains unresolved\u2014an issue that general AI chatbots like ChatGPT exacerbate by not being trained on a particular knowledge base. Dedicated AI code assistants, and those utilizing the latest LLMs like the recently released GPT-3.5 Turbo model or even GPT-4, are bound to do better. Consider that <a href=\"https:\/\/news.ycombinator.com\/item?id=38251929\">many<\/a> <a href=\"https:\/\/news.ycombinator.com\/item?id=38249667\">Hacker<\/a> <a href=\"https:\/\/news.ycombinator.com\/item?id=38228358\">News<\/a> <a href=\"https:\/\/news.ycombinator.com\/item?id=38241324\">users<\/a> <a href=\"https:\/\/news.ycombinator.com\/item?id=38227641\">laud<\/a> GPT-4&#8217;s abilities, and vendors are sharing impressive statistics regarding the amount code written by their commercial AI code assistants. <a href=\"https:\/\/www.tabnine.com\/\">Tabnine<\/a>&#8216;s homepage, for instance, claims that its assistant generates &#8220;approximately 30% of code for millions of users.&#8221;<\/p>\n<p>&nbsp;<\/p>\n<h2>Will the Real Junior Developers Please Stand Up?<\/h2>\n<p>Most of the commenters on posts asking whether or not to use AI code assistants to learn are not new coders and don\u2019t reflect how early career developers actually act and feel. The anti-ChatGPT-for-learning camp is weighted toward mid and senior level developers; they are not junior developers themselves. Therefore, focusing too much on these responses and <a href=\"https:\/\/en.wiktionary.org\/wiki\/reply_guy\">reply guys<\/a> is unwise. It not only fails to reflect the lived experiences of developers in the process of reskilling themselves, it actually obscures their distinctive perspective.<\/p>\n<p>I went looking for the voices of junior developers to see if what they have witnessed bears out the warnings of more senior devs. Unsurprisingly, many do. <a href=\"https:\/\/www.reddit.com\/r\/learnprogramming\/comments\/169stpd\/comment\/jz5aw4r\">One Redditor<\/a> draws from his own disastrous experience to caution against copying and pasting imperfectly understood GPT written code snippets:<\/p>\n<blockquote><p>I recently wasted 30 minutes trying to get it to do something with mpv that wasn&#8217;t actually supported by mpv (I forget all the contexts). GPT just flat out lied to me: &#8220;Yes, MPV does support X thing, here is how to set it up&#8230;&#8221;<\/p>\n<p>After enough coding and scratching my head, I finally checked the documentation myself and caught onto what was actually happening, I told GPT &#8220;That feature isn&#8217;t supported&#8221; and it replied &#8220;That&#8217;s correct, MPV does not support X feature. Here are some alternatives.&#8221;\u201d<\/p><\/blockquote>\n<p>This developer would have been better off executing a command + F from the MPV documentation, instead of asking ChatGPT. But the ability to bypass technical documentation is precisely the use case so many developers of all ability levels want. As <a href=\"https:\/\/www.reddit.com\/r\/ChatGPTCoding\/comments\/15dzjej\/comment\/judy5kg\">anki_steve<\/a> explains, ChatGPT:<\/p>\n<blockquote><p>removes the tedium of referring to the manual for simple questions with simple answers, making the process much more enjoyable for those of us without photographic memories.<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<h2>Education Beyond Copypasta<\/h2>\n<p><a href=\"https:\/\/getyarn.io\/yarn-clip\/fec4a759-9ffb-4835-8dcb-0da20c25350c\/gif#xsLvejgB.copy\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/y.yarn.co\/fec4a759-9ffb-4835-8dcb-0da20c25350c_text.gif\" alt=\"That&#039;s his name: Henry Jones, Junior.\" width=\"854\" height=\"480\" \/><\/a><\/p>\n<p>So now I am finally arriving at the upside of AI code assistants for teaching junior developers.<\/p>\n<p>A remarkable number of junior developers on Reddit report having positive experiences with AI code assistants, and GPT specifically. Despite warnings from more seasoned engineers, what junior developers are finding is that AI code assistants provide what Redditor <a href=\"https:\/\/www.reddit.com\/r\/gamedev\/comments\/158mkb9\/its_insane_how_useful_chatgpt_is_for_learning\/\">Jerricoda<\/a> characterizes as:<\/p>\n<blockquote><p>a balance between mindless copying and pasting youtube tutorial code, and doing everything on your own but ripping your hair out because nothing makes sense.<\/p><\/blockquote>\n<p>5 years ago, self-trained engineers relied on free tutorials, often YouTube videos, to learn programming. Today, these tutorials can be supplemented with AI code assistants.<\/p>\n<p><a href=\"https:\/\/www.reddit.com\/r\/ChatGPTCoding\/comments\/15dzjej\/learning_to_code_faster\/\">Vivid-Hat3134 <\/a>shares their successful ChatGPT-enhanced reskilling journey in the <a href=\"https:\/\/www.reddit.com\/r\/ChatGPTCoding\/\">r\/ChatGPTCoding<\/a> subreddit:<\/p>\n<blockquote><p>started coding about 2 1\/2 years ago with a Raspberry Pi model B. Despite working full-time as a locksmith and being 33 years old, I dedicated my free time to learning programming. While I didn&#8217;t take formal classes or workshops, I made progress and developed a basic understanding of computer programming. Discovering ChatGPT and image generation AI humbled me, realizing how much I still had to learn. In the past couple of months, using ChatGPT, I&#8217;ve learned more than I did on my own over the years. I don&#8217;t rely on GPT to give me code directly; instead, I ask for examples and explanations to understand and utilize the information better. Understanding my work is crucial to me, as working without comprehension could lead to disastrous results. No matter the field. My encounter with ChatGPT had been nothing short of transformative. What began as a mere curiosity to understand AI and coding as a whole, turned into an adventure of self-discovery and continuous learning. With ChatGPT as my tutor and study partner I realized that the possibilities of coding were limitless, and my passion for technology grew stronger with each passing day.<\/p>\n<p>Long story short, I made leaps and bounds in my skills thanks to ChatGPT, at a higher rate than I had expected or even hoped for. Maybe I was already becoming less ignorant or GPT really did give an educational edge, either way I wanted to share my thoughts. Sorry if this isn\u2019t within the rules etc, just needed to share.<\/p><\/blockquote>\n<p>Now, for good or ill, I have known developers who attained mid-level status in their careers after 2 years, so categorizing this Redditor as a junior developer is possibly contentious. However, I contend that they fulfill the remit of my research precis. Moreover, this positive reskilling experience has profound implications for those looking to use AI code assistants as a tutor.<\/p>\n<p>Vivid-Hat3134 sketches out a map to AI-enhanced self training. Instead of serving as a source for code blocks to copy, \u201cI ask for examples and explanations to understand and utilize the information better.\u201d In this way, Vivid-Hat3134 uses GPT to accelerate their learning process and gain a better understanding of programming concepts. Importantly, this Redditor\u2019s experience does not contradict the notion that it is unwise for true beginner-level engineers to use AI code assistants owing to the frequency of hallucinations. At its best, the code assistant becomes a \u201cstudy partner\u201d for junior developers, rather than an expert.<\/p>\n<p>&nbsp;<\/p>\n<h2>Conclusion<\/h2>\n<p>New programmers can benefit from AI code assistants. If approached in a proper spirit these tools are boons to learners. Despite the difficulties I have outlined this is a positive outcome, as the train has left the station in terms of keeping newbies away from AI code assistants.<\/p>\n<p>To understand how junior developers are using AI to up\/reskill you can\u2019t do better than listen to Redditors. If you seek out the opinions of the self-described early career developers on this platform it quickly becomes clear that AI code assistants fascinate folks in the process of learning to program, and may even support them on their journey. While no one recommends blindly copying and pasting into a production environment AI-generated code, these assistants have proven themselves to be excellent, if far from expert, study partners.<\/p>\n<p><b>Disclaimer:<\/b> Microsoft (GitHub), GitLab, and AWS are RedMonk clients.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Anyone paying attention to the marketing language around AI code assistants will recognize the push to position these tools as not merely developer-led (in the vein of \u201cTrust, but Verify\u201d), but also as experts able to lead developers. Take, for example, GitHub Copilot. Earlier this month during the opening keynote for GitHub Universe Colin Merkel,<\/p>\n","protected":false},"author":50,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","footnotes":""},"categories":[32,12,25],"tags":[],"class_list":["post-222","post","type-post","status-publish","format-standard","hentry","category-ai","category-devx","category-upskilling"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/redmonk.com\/kholterhoff\/wp-json\/wp\/v2\/posts\/222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/redmonk.com\/kholterhoff\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/redmonk.com\/kholterhoff\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/redmonk.com\/kholterhoff\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/redmonk.com\/kholterhoff\/wp-json\/wp\/v2\/comments?post=222"}],"version-history":[{"count":0,"href":"https:\/\/redmonk.com\/kholterhoff\/wp-json\/wp\/v2\/posts\/222\/revisions"}],"wp:attachment":[{"href":"https:\/\/redmonk.com\/kholterhoff\/wp-json\/wp\/v2\/media?parent=222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/redmonk.com\/kholterhoff\/wp-json\/wp\/v2\/categories?post=222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/redmonk.com\/kholterhoff\/wp-json\/wp\/v2\/tags?post=222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}