Skip to main content

Posts

Showing posts from 2015

Job as Entry Level Developer

After 4 months of work, sometimes focused, sometimes not, I accepted a job as an Entry Level Ruby on Rails Developer yesterday. This is after starting with zero knowledge on November 1, last year. Beyond knowing a little about coding (but getting the definitions of  REST and AJAX wrong), what were the reasons for the job offer?  I think it was the meetup group I started in January that made me stand out from the rest. The motivation for the meetup group was to help me become a better coder and to indulge my teacher instincts. After some initial meetings at the library and my home, an IT hub in town offered to host us. This meant extra advertising and prestige for the group. After announcing the meetup group at an Agile meetup group for developers, I got some volunteers to give talks. The first volunteer offered a talk on Ruby. As I was comfortable with Ruby I prepared a coding tutorial .  After the tutorial, which was attended by some beginners and some advanced developers,

CodeSchool vs Codecademy(or 'How socket inherits event listening methods and implements asynchronicity')

In this review I'm going to focus on the pedagogy that I see evident in some CodeSchool courses and compare them to  Codecademy. By pedagogy, I mean: 'How does CodeSchool teach?' and ' Does it do a good job of teaching?'. I'm going to argue that despite high quality videos, colourful web pages, and often ssspppeeeeeakkkiiiing...rrrreeally...slowly..., CodeSchool's pedagogy is inferior to that of Codecademy. There are many fantastic resources for learning to code on the web, and CodeSchool is one of them. So far I have completed courses in Ruby, Rails, Javascript, HTML/CSS, Jquery and Git on CodeSchool. The courses have all included high quality videos and colourful, interactive exercises- as well as  massive  pdf files of the slides ( the files take more than a minute to load on my machine .) The question is: does the higher production value mean better educational quality? The 'Try' courses on CodeSchool(such as Try Ruby and Try jQuery) are f

Algorithm Analysis - 1

Currently, I'm learning to perform algorithm analysis using Big-O notation. In one resource I found the following problem: You just dropped a box of glass toys and  n  toys in the box broke in half. You'd like to match the halves of the toys so that you could glue them together, but the only way to tell whether two halves belonged to one toy is to physically pick up the two pieces and try to fit them together. Express how long this matching process will take in terms of  n . The answer given is n^2 (n squared) with the following explanation:  You have to compare every piece with every other piece. If you have 1 toy and it breaks in half, you have 1 comparison to make. If you have 2 toys and they both break in half there are 4 pieces and you have to do 6 comparisons. If you have 3 toys, there are 6 pieces and you have to do 15 comparisons. If you have  N/2  toys, you have  N  pieces and you have to do N-1 + N-2 + N-3 + ... + 1 =(N)(N-1)/2  comparisons. This is  O(N^2).

IF YOU'RE A CODER, EXERCISE IS PART OF YOUR JOB.

If you're an elite footballer, cyclist or Hollywood star, part of your weekly routine probably involves hitting the gym. You're not paid to go the gym- you're paid to play football or repeat lines for £10,000 a word. However, you can't be a great athlete or (these days) a Hollywood star if you don't maintain a high level of physical fitness. Though the link may not be as obvious, I am going to argue that: To be the best coder you can be (or any kind of knowledge worker) you need to exercise regularly. (Before I'm accused of insensitivity, I'm not arguing that those unable to exercise due to disabilities can't be great coders. To claim that, I would have to be ignorant of people like Stephen Hawking. I am only making a general claim (i.e. 'on average')) I'll assume you already know about the benefits of exercise for your health in general, so we won't talk about the benefits of exercise in reducing risk for conditions like heart dis

Back in the Swing

Over the past few days I've made some satisfying progress with Ruby, specifically regarding I/O operations and interacting with APIs.  I designed a Hangman game where you can save and load games to which I'm going to add an AI that plays against a human. For the NE Coding Newbs meetup next Thursday, I'm putting together a tutorial on designing a Tic Tac Toe game in Ruby. The tutorial is aimed at beginners so I'm working on putting in as much scaffolding as possible. My Django Essentials book arrived so I'll be working on that as my second project (Odin Project being the main one).

The Desert of Despair

Using this ( http://www.vikingcodeschool.com/posts/why-learning-to-code-is-so-damn-hard )  as a guide, I now realise I've entered the 'Desert of Despair' stage of this journey. Thanks to the design of the Odin Project, I jumped off the 'Cliff of Confusion' a couple of months ago. The Odin Project has students designing programs from scratch at an early stage, interleaving 'hand-holding' tutorials to teach new tools. What does the landscape look like in this desert? Dwindling level  appropriate (i.e. intermediate) tutorials. If you are creating something original, it is hard to identify where exactly to go next. How does one escape? Only by putting one foot in front of the other and sending out occasional SOS signals.  Trying to jump straight into developing a web app (beyond the basic blogger sort) proved too much at this stage. The lesson was valuable though.  I realised I need to learn more about I/O operations, databases and APIs among oth

10 week update

    With the exception of the week over Christmas, I have been studying coding for every week for 10 weeks now. I estimate that I have spent 300 hours on study so far. Realistically, not all of that time was spend coding, much of it was spent reading forums looking for help, watching lectures, reading books as well as brushing up on mathematics. So, perhaps half of the time (150 hours) could truly be called coding practice.    Without a mentor, it hasn't always been easy deciding on the path to take. I spent the first 2 weeks on Java, as that was the first course I found. Then I discovered The Odin Project and spent the last 7 weeks learning Ruby, Javascript and SQL. Over the last couple of weeks I started some Python study, including an online course.  Just before Christmas I also discovered FreeCodeCamp which focuses on Javascript.  I believe that I've finally discovered the best path. Last week I volunteered as a mentor at my first CoderDojo. Last night, I attended my f

Reasons for Retraining

10 weeks ago, after looking over the many possibilities open to me, I decided to retrain myself as a programmer. I made the decision due to a number of factors. They are not listed in any kind of order. The availability of free online materials teaching programming. The fact that programmers are unlikely to suffer deskilling. (Every week a biochemist spends outside the lab, is a week they are not practising their lab skills. A programmer can continually learn and practise from home.) The fact that, over the years, I have become more interested in and adept with mathematics. (If I could redo my degree now, I would choose Computer Science or Physics). Creating things (even abstract things like programs) is incredibly rewarding. Not only is there the intellectual satisfaction, there is the sense of accomplishment when your program executes correctly. The wide availability of jobs in software & web development  These were the reasons I made the initial decision; since the