Code Year, 50% Complete

I’ve been working my way through Codecademy‘s Code Year track, to pick up some of the basics as I start teaching myself to code. While I understand that it’s not going to be the only resource I’ll need to draw on, I’ve found it incredibly helpful at this stage of learning.

I had chosen their yearlong coding track in the hopes that a yearlong guided course could keep me on track and studying regularly for my first year. While it’s done a great job in teaching me the basics and motivating daily study, I’ll need to find more learning tools soon. I’m just shy of a month of study and already 50% of the way through the Code Year track.

Whew, html and CSS

While I’ve really enjoyed working with the JavaScript tracks and the JS portions of the Code Year on Codecademy, I’ve found myself struggling quite a bit with the more advanced lessons. I’m looking into a one day course at General Assembly London to try and get a better handle on these concepts. General Assembly is a technology education venture offering online and on campus courses in 11 cities.

Luckily for me, Code Year covers more than just JavaScript. I’ve moved on to the the html and CSS portions of the course and couldn’t be happier. I’ve been moving a lot faster through these lessons and have felt far less out of place than I had with the JS lessons.

I have had an extremely limited bit of exposure to using html in the mid 90s. By extremely limited, I mean that I had a Geocities page and tried to learn html to wean myself off of their pre-made templates. I can still remember writing out html tags on my notebook in class, trying to memorize them and practice how I might want to use them on my site. In hindsight, I was perhaps not the coolest 8th grader…

While html seems to have evolved quite a bit since then, it’s kept enough familiar elements where I feel comfortable and confident working with it. This is the first time I’ve used CSS but have really been enjoying it. Something about having a separate sheet to manage the appearance of a site really clicks for me. Hopefully I’ll muddle together the skills to make this site more presentable in the coming weeks.

JavaScript and Language

I’ve spent the past two weeks working my way through Codecademy’s JavaScript track and the Javascript portions of their Code Year. Their Code Year track is a collection of 50 free online lessons designed to be taken over the course of a year. I would highly recommend this course to anyone interested in learning more about coding. This is the first real attempt I’ve had using any kind of programming language and have had a mixed set of reactions to the experience.

Having been a language student and teacher, I’ve felt quite comfortable with the bigger concepts behind programming. The use of commands within a set syntax to undertake tasks in a programming language feels a lot like learning the vocabulary and grammar to achieve communication goals in human languages. I’ve noticed two main differences in programming language and human language learning.

The most startling is the lack of flexibility around errors. Even in speaking or writing our native language, we produce countless errors which often don’t impact our ability to achieve our goals. If I ask for “two slices of cheeses” instead of “two slices of cheese”, I’m still likely to get my sandwich. People generally don’t care if you make small errors in communication. JavaScript cares deeply about most errors. Many of my longest problem solving sessions with the tutorials ended with finding a typo or transposition error. Programming languages, or at least this one, seem far less able to ignore errors than humans are.

While the demand for accuracy is taking some adjustment, the less forgiving and impersonal nature of programming languages also makes learning easier. In learning a human language you’re not only learning the grammar and vocabulary of a new language but also learning a new mode of communication which is steeped in the culture and values of its speakers. While small errors are often overlooked, failure to properly navigate the cultural nuances of your target language can keep you from your goals. Replacing a vous with a tu, for example, might quickly derail a conversation. In JavaScript the impossibly complicated nuances native to human languages seem absent, leaving you with a demanding but beautifully direct transactional exchange. If you supply the right vocabulary in accordance with the accepted grammar, you’ll get your result. While computer languages may be products of and dependent on human culture, the introductory levels of JavaScript that I’ve engaged with seem to require a far less demanding level of cultural awareness than learning Japanese has.

Getting Started

What this is:
A record of my attempts to teach myself to code.
Aware that many projects are started and never finished, I started trying to teach myself to code a month before starting this documentation of my process. Just to see if I was able to stick to my self study regimen, before making it public. While I would hope to document my struggles and successes, I’m prepared to document my eventual failure, should it come to that. I’ll also be taking a look at some of my side projects, as they develop and may get some general interest material in.

Who I am:
I’m Jessica Rose. I’m an American in my early 30s, living in Birmingham, England. I’ve worked as an English teacher, in tech sales and in customer service. I speak passable Japanese and am interested in literature, linguistics and the web. I’m not coming from an especially technical background so I look forward to guidance from the more experienced members of the public.

How I’m doing this:
I’m working with Codecademy, tutors and area groups geared towards developers, women in tech and cooperative learning. I’m currently seeking a mentor in the Birmingham area. In the longer term I would love to someday attend one of the Bootcamps designed at retraining people as developers. You can check out my progress at my Codecademy profile page or follow me on twitter @jesslynnrose.

First project:
Making this website look presentable. Expect improvements as my level of skill with WP and HTML (hopefully) improves.