Should kids learn to code?
Should kids learn to code?<p>That&#x27;s a great question. I also wonder if adults should learn to code, or my peers who would be young adults.<p>I&#x27;m 24. I started programming when I was 10 years old by reading a &#x27;For Dummies&#x27; book teaching Basic. I hardly read the book because it came with a CD with the language and the language&#x27;s help system had tutorials which I jumped into right away.<p>I spent the next four years developing video games in Basic. I learned C and continued to make games and also started working on other types of simulation. I&#x27;ve picked up web programming incidentally, taken courses in high school, worked as a programmer, researcher, and software engineer, majored in computer science in college, and have a steady job as a software engineer.<p>Earning my degree has been amazing for me because it&#x27;s introduced me to highly technical aspects of the field that would otherwise be inaccessible to me or present large barriers to entry.<p>An interesting trend is for school systems to embrace computer programming &#x2F; computer science as a skill and teach it as a class or to introduce it into the curriculum in general -<p><pre><code>  &gt;  Britain became the first ... to introduce compulsory computer science on 
  the school curriculum for all children aged five to 16.
</code></pre>
Equally, though, this could be off-putting for many kids. Depending on how it is introduced, it might scare away those who would otherwise be interested in programming or less so another design field in computer science. Oddly enough:<p><pre><code>  &gt; “One 13-year-old told me she would rather be in garbage disposal than work 
  in technology,”
</code></pre>
It&#x27;s really surprising that this sentiment isn&#x27;t more widely felt. Maybe it is the sort of tech-bubble, get-rich-quick, new technology enthusiasm and excitement that gets people to push through the initial, `this is boring, difficult, and unfulfilling&#x27; feeling that I would really anticipate from anyone making a cold dive into code.<p>In fact, I&#x27;ve had the opportunity to mentor some kids around the ages of 10-12 and that&#x27;s exactly the response I&#x27;ve seen to the programming or code side of development, where they will be increasingly excited to design applications in a much, much higher level way. But directing software design should really be considered a lower field than implementing it, in my very humble opinion.<p>And this point, about some being disaffected by being compelled to learn something, underscores another unfortunate fact - and that is no matter how someone is introduced to computer science or computer programming - something will be outside of their control.<p>Some start by programming in Python or JavaScript, some start with C (many engineers) or Java, others have began with Fortran or Basic or Visual Basic, and others begin to learn computer science with Scheme. There are so many vastly different programming languages and platforms that exist, and even different <i>programming paradigms</i>, and each is easier to use or understand to different minds.<p>But it would take an expert oracle to know what the best introduction is for every individual to give them the best chance of success in computer science. Some scientists can&#x27;t even agree on what text editor to use.<p><pre><code>  &gt; Puzzlingly, though, IT had the highest unemployment rate of any subject 
  analysed by the Higher Education Statistics Agency.
</code></pre>
Here is another annoying fact. In the midst of a rise of bootcamps, there are still those who can&#x27;t find jobs. And the fact that so many people can jump into monthly groups to learn to &quot;program&quot; doesn&#x27;t mean that there is a stable, sustainable system for them to work in.<p>If it is what I believe it is essentially web design or scripting education that&#x27;s going around, there&#x27;s really only a few months of work for any group of graduates, and the opportunity to float along the top at any organization that takes them on.<p>To imply that a bootcamper will become a major technical lead in any kind of reasonable time or with anywhere near the same level of effort as a regular graduate seems extremely disingenuous, and the fact that six figure salaries are being touted as results from these camps seems to show a real economic failure.<p><pre><code>  &gt; The coding bootcamps springing up in London and Edinburgh are essentially 
  a pop-up solution.
</code></pre>
That would be an accurate description, although I might be cynical.<p><pre><code>  &gt; ... Scratch, a computer language developed specifically for young 
  children. 
</code></pre>
I&#x27;ve seen Scratch and I think it&#x27;s fantastic. Along with Logo and other platforms for introducing logic and computation, I think it&#x27;s perfect for children and new-comers. Compare for example the sort of weights and blocks that some children are introduced to when learning algebra initially.<p><pre><code>  &gt;  Perhaps that is the single most honest argument for teaching 
  everyone to code: to give everyone an equal shot
</code></pre>
That&#x27;s definitely a fair point, but there&#x27;s never going to be a way for this to be true universally and that is just a fact. The ecosystem for programming and development is varied and depending on what you want to do, it&#x27;s going to require vastly different skill sets.<p>Another reality is that there are so many people doing so many different things and technology is such a competitive field that there is almost a guarantee that someone, somewhere is attempting to achieve the same thing in a complete different approach. Who has the fair advantage?<p>Then it&#x27;s explained that having experience or skills with computer programming, &#x27;knowing how to code,&#x27; or being introduced to the field results in `Aha!&#x27; moments like ...<p><pre><code>  &gt; &quot;‘It would be so cool if this existed,’ and then implementing it the same 
  day – it’s like a superpower,&quot;
</code></pre>
In reality, if you have a complicated idea for something that you want to see created.. it&#x27;s going to take work. If you have a simple idea, then yes, it may be simple to create! And it is empowering to have the skills to create or begin to create something, or to know where to find those resources and how to begin.<p>Then this article ends on this point:<p><pre><code>  &gt; &quot;How many young people ... have what it takes to be great developers? ... 
  &quot;But they won’t be, unless we give them the chance.
</code></pre>
This is probably the core idea to education, school, training, and jobs. In order to find opportunities... they must exist, and in order to achieve skills they must be attainable or at least known to someone.<p>But in the same vein, how many people would make excellent astronauts if there were a much broader space program? It&#x27;s something where there&#x27;s always a trade-off in time and skill between anything a person might become employed doing.<p>Shameless plug, part of why I developed the Duck programming language was to make a very accessible programming environment, and I still intend to expand it as best I can to allow easy programming! I&#x27;m also working on a new language that is lower-level and it intends to facilitate clean, efficient and safe programming while encouraging higher-level paradigms like functional programming. There aren&#x27;t a lot of functional, imperative languages out there that still avoid automatic memory management, and I think that&#x27;s a loss.