Notes on my Coding Journey

Firstly, please excuse all the jargon code references and newbie coder jokes.
I am currently on day 12 (yes, I now have a day by day folder system, and I did make these from the Command Line) of a 12-week intensive coding bootcamp at CodeCore in Vancouver. It feels pretty weird to be writing things in Word — shouldn’t this be done in Atom via the Command Line? Maybe my next post should be written in markdown and I’ll continually push my changes to GitHub — having access to someone’s previous thoughts, clumsy sentences and typos really does make for a thrilling read!
Imagine if writers started doing that — future literature students wouldn’t be comparing three or four revised manuscripts, but rather thousands of lines of added and deleted code (what horror!).
Coding for the Humanities Student
My experience with coding up until now was Codecademy online courses and Udacity’s Front End Nanodegree. Codecademy is a good intro to language syntax, but so far removed from how you would practically use this syntax. Udacity helped me to create projects to add to my portfolio, but they tell you how to approach each problem and basically walk you through how to do it so there really isn’t that much original problem-solving going on.
Algorithms
So far what I have struggled with most is algorithms. After our respective introductions to Ruby and JavaScript, we did a day on algorithms and then algorithms in JavaScript and Ruby. Algorithms are basically using logic and a coding language to solve a problem. Apparently, this is what engineering undergrads do a lot, so while some of my peers have taken university-level courses in algorithms, I last had to solve a problem using variables in high school.
While algorithms are a weakness for me, they definitely get easier with practice. I think I am even moving forwards from using patterns of code that I have used before -–“there’ll definitely be a loop in here somewhere, so let’s start with that”/ “did someone say ‘for(var i=0;i<array.length;i++)’ ” — to actually being able to think through the logic that you should use to solve this problem. It also definitely helps to print stuff out as much as possible.
Syntax
Syntax-wise, both Ruby and JavaScript (and probably JavaScript a bit more) just need a lot of practice so that the syntax (the methods you can call and on what variable types, and how you write functions/methods/classes/modules) becomes second nature. This is probably my strength, as it takes practice, repetition and perseverance.
The Devil in the detail
Sometimes, when I don’t know what to do, it feels like I am coding like a granny who parks by touch — reverse the car slowly until you hit something — or write some loops and print out ‘i’– or let’s see what happens when we refresh the page!
Usually I am quite far along (or sometimes I am totally nowhere) and the problem is missing commas/curly brackets (jshint is now my friend!) or I am using the wrong method for the data type that I am working with. So this is why coding by touch and just constantly testing stuff out is so important. Another great thing I have learnt from Codewars is that it is very important to add error checking to check that you are only allowing the data type that you want, because sometimes your code will work using node in the Command Line, but this does not mean it will pass on Codewars.
So long for now…
This is all I have summed up of my experience so far. Feel free to look at my GitHub projects, I made a Team Randomizer using Ruby and Sinatra last week. I will keep posting about my coding bootcamp — look forward to SQL, postgres and Ruby on Rails next week :)