{"id":22913,"date":"2023-06-29T13:38:07","date_gmt":"2023-06-29T13:38:07","guid":{"rendered":"https:\/\/www.codemonkey.com\/?p=22913"},"modified":"2023-06-29T13:38:13","modified_gmt":"2023-06-29T13:38:13","slug":"should-kids-learn-text-based-coding","status":"publish","type":"post","link":"https:\/\/www.codemonkey.com\/ru\/blog\/should-kids-learn-text-based-coding\/","title":{"rendered":"Should kids learn text-based coding?"},"content":{"rendered":"<p>For a long time, coding was text-based. It pretty much went without saying. You would need to write a computer program using letters, numbers, and words. For example, let\u2019s say you had a picture of a monkey, and you wanted it to move across the screen. You might write something like this:&nbsp;<\/p>\n\n\n\n<p><em>monkey.move(10)<\/em><\/p>\n\n\n\n<p>This code would tell the monkey to move a distance of 10 units. If you changed the number in the brackets, you could make it move more or less. This is an example of text-based coding. There are loads of text-based programming languages, which work in different ways, but they all use letters, numbers, and words to tell the monkey what to do.<\/p>\n\n\n\n<p>In the 1980s, people began to experiment with a new type of <a href=\"https:\/\/www.codemonkey.com\/ru\/blog\/what-coding-language-should-your-child-learn\/\" target=\"_blank\" rel=\"noreferrer noopener\">programming language<\/a>. Visual coding, as it\u2019s usually known, doesn\u2019t use words and numbers. Instead, it uses pictures and symbols. For example:<\/p>\n\n\n\n<p>\ud83d\udc35\u27a1\ufe0f\ud83d\udd1f<\/p>\n\n\n\n<p>Those are just emojis. They wouldn\u2019t actually do anything. But they should help you to imagine what a visual language looks like. The pictures are nice, clear, and intuitive, and a lot easier to work with than text-based code. But at the same time, it\u2019s more limited than text-based coding \u2013 there\u2019s only so much you can do with it.&nbsp;<\/p>\n\n\n\n<p>In general, visual coding (which is also called <a href=\"https:\/\/www.codemonkey.com\/ru\/blog\/what-to-know-about-block-coding-for-kids\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0432\u0438\u0437\u0443\u0430\u043b\u044c\u043d\u043e\u0435  \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/a>) is great for beginners, but if someone wants to code at a higher level, they\u2019ll need to learn to use a text-based language eventually. You can use visual code to move a monkey around, but not to build a complex website or app.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Should kids start with visual coding?<\/strong><\/h2>\n\n\n\n<p>In a lot of cases: yes.&nbsp;<\/p>\n\n\n\n<p>A visual coding language will help a child to understand some basic coding principles in a nice, easy way. They don\u2019t need to worry about remembering syntax, or spelling words correctly, or anything else like that. They can just drop pictures into place, and run the code, and watch the monkey slide across the screen.<\/p>\n\n\n\n<p>Pictures are more fun than words. They\u2019re bright, interesting, and nice to look at. For a child, it can often feel boring and daunting to stare at a wall of text. That\u2019s why children\u2019s books have pictures in them \u2013 it\u2019s more likely to grab their attention.<\/p>\n\n\n\n<p>Because of all this, most kids do better when they start with a visual programming language. They can use something like <a href=\"https:\/\/scratch.mit.edu\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0426\u0430\u0440\u0430\u043f\u0430\u0442\u044c<\/a> \u0438\u043b\u0438 \u0436\u0435 <a href=\"https:\/\/blockly.games\/\" target=\"_blank\" rel=\"noreferrer noopener\">Blockly<\/a>, which let them drag colorful blocks around the computer screen, and arrange them into lines of code. Kids can even get started with this before they\u2019ve learned how to read and write. With no words to worry about, reading levels are irrelevant.\u00a0<\/p>\n\n\n\n<p>At some point, children will outgrow whichever visual language they\u2019re working with. When they do, they\u2019ll need to move on to a text-based language. This is the most popular way of doing things: learn the basics of code through a visual language, then progress onto text-based when you\u2019re ready.<\/p>\n\n\n\n<p>That\u2019s how we do things at <a rel=\"noreferrer noopener\" href=\"https:\/\/www.codemonkey.com\/ru\/\" target=\"_blank\">CodeMonkey<\/a>. Our courses start with <a href=\"https:\/\/www.codemonkey.com\/ru\/courses\/beaver-achiever\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u0431\u043b\u043e\u0447\u043d\u044b\u0439<\/a>, before moving on to text-based languages like CoffeeScript and Python.\u00a0<\/p>\n\n\n\n<p>But is that the only way to do things? Of course not. Even though it isn\u2019t the norm, there\u2019s nothing stopping a kid from learning a text-based language first. It\u2019s a lot more work, but it has some benefits. That\u2019s what we\u2019ll be talking about next.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"900\" height=\"543\" src=\"https:\/\/d3sujgifhk94se.cloudfront.net\/wp-content\/uploads\/2023\/06\/29133744\/text-based-coding-for-kids.jpg\" alt=\"\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435 \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\" class=\"wp-image-22915\" srcset=\"https:\/\/d3sujgifhk94se.cloudfront.net\/wp-content\/uploads\/2023\/06\/29133744\/text-based-coding-for-kids.jpg 900w, https:\/\/d3sujgifhk94se.cloudfront.net\/wp-content\/uploads\/2023\/06\/29133744\/text-based-coding-for-kids-300x181.jpg 300w, https:\/\/d3sujgifhk94se.cloudfront.net\/wp-content\/uploads\/2023\/06\/29133744\/text-based-coding-for-kids-768x463.jpg 768w, https:\/\/d3sujgifhk94se.cloudfront.net\/wp-content\/uploads\/2023\/06\/29133744\/text-based-coding-for-kids-18x12.jpg 18w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Getting started with text-based coding<\/strong><\/h2>\n\n\n\n<p>If a child is old enough to read and write, they can give text-based programming a go. In terms of choosing a language, there are a number of options out there, including Python, JavaScript, and Ruby.&nbsp;<\/p>\n\n\n\n<p>Of the three, <a href=\"https:\/\/www.codemonkey.com\/ru\/blog\/why-python-is-so-important-for-kids\/?utm_adgroup=wv_360_np&amp;utm_adgroup=wv_360_np\" target=\"_blank\" rel=\"noreferrer noopener\">Python<\/a> is probably the best place to start. It uses simplified syntax, which makes it easier to read and write compared to other text-based languages. There are also lots of apps and websites which can help a child learn Python. One thing\u2019s for certain: when you\u2019re learning Python, you\u2019ll never run out of resources.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/www.codecademy.com\/\">Codecademy<\/a> is a great option for this. They have a rich curriculum and offer free courses to help a child learn to use Python. They also cover other coding languages, such as JavaScript and Ruby, but those are slightly harder.\u00a0<\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.codemonkey.com\/ru\/courses\/banana-tales\/\" target=\"_blank\">\u0411\u0430\u043d\u0430\u043d\u043e\u0432\u044b\u0435 \u0441\u043a\u0430\u0437\u043a\u0438<\/a> is also an excellent resource for Python learning. This is an educational video game, where players need to control their character by writing lines of code. For example, they might tell their character to move forward, stop, pick up a key, turn left, move forward, and pick a banana.\u00a0<\/li><li><a rel=\"noreferrer noopener\" href=\"https:\/\/www.amazon.com\/Python-Kids-Playful-Introduction-Programming\/dp\/1593274076\" target=\"_blank\">\u2018Python for Kids\u2019<\/a> is a book written by Jason Briggs, with an emphasis on fun and excitement. The book guides kids through all kinds of Python-based coding challenges, featuring monsters, secret agents, and more.\u00a0<\/li><\/ul>\n\n\n\n<p>Whichever resources you choose, there is something important to remember. This won\u2019t be as easy as visual coding. Even the simplified syntax of the Python language is considerably harder than learning to code with nice, simple pictures.<\/p>\n\n\n\n<p>For starters, there\u2019s the keyboard to think about. You can\u2019t write a text-based coding language without knowing how to type. But small children don\u2019t have the best motor skills, and high-speed typing is usually out of reach. They don\u2019t even know where to find all the letters. They\u2019ll type an M, then spend several seconds searching for the O, then several more seconds searching for the N, the K, the E, the Y\u2026<\/p>\n\n\n\n<p><em>monkey.move(10)<\/em><\/p>\n\n\n\n<p>It could take a child well over a minute to type that out. Well over a minute, with some typos and backspaces along the way. When that\u2019s the kind of speed you\u2019re working at, coding can feel like a slog. Especially compared to visual code, when you don\u2019t need to type a thing.&nbsp;<\/p>\n\n\n\n<p>Text-based programming is also more likely to go wrong. A misspelled word, or a missing bracket, will stop a program in its tracks. Children will find themselves debugging, and debugging, and debugging again \u2013 far more than they would when they\u2019re using a visual programming language.&nbsp;<\/p>\n\n\n\n<p>In summary: a text-based language like Python or JavaScript takes a lot of time and patience. That\u2019s really the name of the game here: patience, patience, patience.&nbsp;<\/p>\n\n\n\n<p>And we aren\u2019t just talking about the kid here. As a teacher or parent, you must also be patient with the process. Support them, encourage them, and congratulate them on every small achievement, even if it\u2019s as small and simple as finishing a line of code. This long journey will feel a lot more bearable if you celebrate every step.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Is it worth all that time?<\/strong><\/h2>\n\n\n\n<p>For most kids, probably not. It would be easier to start with a visual language, which lets them relax, have fun, and worry about learning a text-based language later. In some cases, starting with a text-based language will even cause more harm than good. Children will decide that they hate coding, and never touch it again when they\u2019re older.<\/p>\n\n\n\n<p>But it definitely depends on the kid. While some children will hate the slow process of text-based languages, others will excel, and rise to the challenge. They love how difficult it is, and feel proud and excited when they finally manage to fix a bug and get the code to run.<\/p>\n\n\n\n<p>For a kid like this, text-based programming might be worth a go. After all, there are some benefits of starting early, without learning a visual language first.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>#1. Text-based languages have a higher ceiling<\/strong><\/h3>\n\n\n\n<p>With a visual language, the ceiling is extremely low. Kids can have some fun, and build some cool little programs, but that\u2019s all they can really do. Text-based languages don\u2019t have that problem. As kids get better and better, they create more and more things \u2013 the sky is the only limit.&nbsp;<\/p>\n\n\n\n<p>Eventually, they might even find themselves using this language in a professional setting. Google programmers work in Python. Most of the internet runs on JavaScript. If these are the languages your kids will be using when they\u2019re older, why not start learning them now?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>#2. You can get through the struggles early on<\/strong><\/h3>\n\n\n\n<p>Let\u2019s say your kid starts off with a visual programming language. They learn the basics, have some fun, then hit that ceiling we just talked about. They realize it\u2019s time to move on to a text-based coding language, just as so many children do.<\/p>\n\n\n\n<p>They\u2019ll still need to go through a bunch of struggles and mistakes. They\u2019ll have to unlearn some of the things they used to take for granted with their visual language, and start over with a bunch of new rules and techniques for their text-based language. They\u2019ll also need to practice typing, and get into the habit of debugging lines of code.&nbsp;<\/p>\n\n\n\n<p>It might be slightly easier after doing some visual coding first, but it will still be slow, and a lot of hard work. Some people think, if you\u2019re going to go through this process anyway, it makes more sense just to get it out the way as early as possible.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>#3. The struggles are good for character building<\/strong><\/h3>\n\n\n\n<p>In the past, we\u2019ve talked about the transferable skills that children can learn through coding. They become more patient, and resilient, and calm in the face of problems. They\u2019ll still learn these skills through visual coding, but if they manage to navigate a text-based language, their patience and resilience will develop on a whole other level.\u00a0<\/p>\n\n\n\n<p>Just to be clear, this will only work if a child is already strong, and hard-working, and really wants to do this. It won\u2019t help anyone if you force them to learn a text-based language when it isn\u2019t something they want to do. Instead of becoming more patient and resilient, they\u2019ll be left feeling sad, frustrated and demoralized.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Final words<\/strong><\/h2>\n\n\n\n<p>As we\u2019ve already mentioned, in the majority of cases, it\u2019s better to start with a visual language. Once children have learned the basics of coding \u2013 and most importantly, decided if they like it \u2013 they can start to learn a text-based language later. It\u2019s like learning any skill: it\u2019s best to start with something fun and simple, and worry about complexity later.<\/p>\n\n\n\n<p>But in certain cases, if a child is keen to learn a text-based language, and you think they have the patience to see it through, there\u2019s no harm in giving it a go. At the end of the day, they\u2019ll be getting a headstart on the kids who don\u2019t start a text-based language until they\u2019re older.<\/p>\n\n\n\n<p>But remember: if your kid finds it slow, or boring, or difficult, don\u2019t force them to keep going forever. The last thing you want is for them to develop a hatred of coding in general because they started text-based coding too soon. If they\u2019re not having fun, it\u2019s never too late for them to change their mind, and try visual coding instead.<\/p>","protected":false},"excerpt":{"rendered":"<p>For a long time, coding was text-based. It pretty much went without saying. You would need to write a computer program using letters, numbers, and &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.codemonkey.com\/ru\/blog\/should-kids-learn-text-based-coding\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Should kids learn text-based coding?&#8221;<\/span><\/a><\/p>","protected":false},"author":31,"featured_media":22914,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"image","meta":{"footnotes":""},"categories":[704,710,715],"tags":[],"class_list":["post-22913","post","type-post","status-publish","format-image","has-post-thumbnail","hentry","category-coding-for-kids","category-coding-languages","category-why-learn-coding","post_format-post-format-image"],"_links":{"self":[{"href":"https:\/\/www.codemonkey.com\/ru\/wp-json\/wp\/v2\/posts\/22913","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemonkey.com\/ru\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemonkey.com\/ru\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemonkey.com\/ru\/wp-json\/wp\/v2\/users\/31"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemonkey.com\/ru\/wp-json\/wp\/v2\/comments?post=22913"}],"version-history":[{"count":1,"href":"https:\/\/www.codemonkey.com\/ru\/wp-json\/wp\/v2\/posts\/22913\/revisions"}],"predecessor-version":[{"id":22916,"href":"https:\/\/www.codemonkey.com\/ru\/wp-json\/wp\/v2\/posts\/22913\/revisions\/22916"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemonkey.com\/ru\/wp-json\/wp\/v2\/media\/22914"}],"wp:attachment":[{"href":"https:\/\/www.codemonkey.com\/ru\/wp-json\/wp\/v2\/media?parent=22913"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemonkey.com\/ru\/wp-json\/wp\/v2\/categories?post=22913"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemonkey.com\/ru\/wp-json\/wp\/v2\/tags?post=22913"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}