“I wrote this letter to myself as a part of an assignment in the Udacity Front-End Web Developer Nanodegree course I’m previewing today…”
Source: Learning how to code is NOT easy
cool…”front-end web developer nanodegree.” i have no idea what that is. (ok, i can sort of guess.)
they can make all of this complex, and industry always will. i think its unfortunate, because the bells and whistles one person will say are necessary is just a bloated pain to someone else. if you teach computer science, you might still have a webpage done in html 3 without css.
but the worst part is, modern education insists that people start in the middle. its not completely crazy; if you can start in the middle, there are certainly rewards. you get to see the “big picture” before you even understand the details. you get started right away on results, before you even know how to achieve them. i mean thats how it is with software these days– people use it, but they still dont know how.
all the same, thats not the only way to learn about computers, and its not how i learned, either. when i started with computers, i only used two programs– a paint program (great for building skills with the mouse, also good for art) and basic. so you would get a little spiral-bound book out:
and simply follow the instructions. type this:
10 PRINT "hello world!" 20 COLOR 5 30 GOTO 10
then you would type “run” and hit enter. it would say hello, world! on the screen, then change the color to purple and say it again, and again, and again, until you hit ctrl-c.
if youre 5 years old and can read, you can do this. it starts out slow, but in a way that can grab your interest for the next 20 years.
ive had lots of hobbies. this one stuck– i kept teaching myself from that point onward until i wrote my own programming language. its not the best or the fastest programming language in the world (thats partly because i chose to implement it in python, and partly because speed or “being best” or fast, wasnt a design goal) but its designed to bring this sort of learning back for everyone.
if youre doing web design, youre already learning 2 or more languages at once. when it was just html, coding for the web was easy! just put little things in less-than/more-than signs < > and add the things you want to say, or links to pictures. a 5-year-old could do it.
more importantly, to someone that doesnt have a long background in coding, they may not realize that all code bears incredible similarities to all other code. on the surface, they can be very different. but the surface is abstract; its different because it was made differently, not because it has to be (or even really is, by the time it gets to the computer.)
im not attacking abstraction– my entire programming language is an abstraction over python, which is an abstraction over c, which is an abstraction over the code that the computer likes. but when you find that “coding is hard,” its hard mostly due to the abstraction making things complicated.
some of these complications make plenty of sense– others are only well-intended. some are even complicated for deliberate and dubious (market-grabbing) reasons.
if you want to become a professional coder, you can start with the easy stuff or you can start in the middle. but the “middle” these days is pretty complex stuff. im not sure why they dont take a little more time with the beginnings, because its not just that the basics are so much easier to learn (and teach.) they also give you a fundamental understanding of all the other stuff youre going to learn in the “middle.”
because all that complex stuff is based directly on the basics. thats a lesson that most of these kids arent getting, which is too bad. theyre learning for an industry first, and education second. theres really nothing wrong with doing it the other way around. it might take a little more time, and it can reach a lot more people without the feeling of “i cant do this, i cant do this.”
even if people knew there was more than one way to learn this stuff– that would help a lot.
why should it matter if coding is accessible to kids or not? #1 reason: by age 10 (on average,) they already identify as “computer people” or “non-computer people.” so many people fall into the latter category, and have a solid belief that they either cant learn, or that it will be painfully difficult. learning can be made difficult, but one of the things that contributes heavily to that is the belief that it will be– if you think learning is going to hurt, its going to be hard to get your attention long enough to prove you wrong.
i wrote fig specifically to get at the people who insist it is difficult. ive shown a handful already that programming can be fun and easy (without being cartoon-based, but based on typing actual code) but while im trying to become a better teacher, im also trying to learn how to “sell” the idea. the program is free, but time is valuable– so you still have to sell to people for the time they will spend.
to every person struggling– dont give up! but you do always have the option of trying more than one thing. coding can be easier, and you can help make it easier. either way someone has to share their passion for it, and that passion has to catch on. a lot of teaching is shared learning, and inspiration– good luck with it.
- license: creative commons cc0 1.0 (public domain)
- (not including the picture of the book i first learned to code with)