How i decided to bite the bullet and learn programming

The year is 2012, and poor old me is still doing some css and html stuff, something inside me (my alter ego) keeps on telling me i need to learn something new, i keep on knocking it off,i browse one of the facebook groups that i am a member of and i see some company in Dar es salaam advertising that they will be having a programming course, i decided on the spot that i should try it, over the  weekend, i picked up my stuff and off to Dar i went.

When i arrived in Dar, it was a saturday so the next monday morning i made a call to my "prospective trainers" only to get a guy who was speaking like he didn't know what i was talking about. He went all Gary Coleman on me, "whatchu talkin' bout Willis?", you can tell i almost got "different strokes".

Anyways i had to pack my stuff and go back to Arusha. On my way back something happened, first i decided i was gonna save some money and go for a proper programming course in India (haha, that was very stupid of me) but it shows i had that fire lit under my belly.

Fortunatelly i met an old friend who told me about some "guys"( i will talk about them at the end) who could help me out, so he arranged a telephone meeting with them and we agreed that they would come over to Arusha and conduct the training at our office premises.

Lesson # 1 - Desire and passion beats all obstracles!

So my first task was to convince my staff that we were no longer going to be designing for the next 2 months and we'd be doing some learning (this was a selfish move on my part but i didn't think it was a good idea to have people training me alone while everybody was there), i can tell most of the guys didn't like the idea but hey learnining is a necessary evil.

We started our java programming course, all the way from variables, objects, classes, methods, the stuff that you need to know to get started, unfortunatelly time was very limited so when the training finished we were still doing some command line programs,

You can tell people were not very impressed with the whole programming thing. Taking a website designer from beautiful looking pixel perfect designs to that ugly looking command line is nothing to get a pixel happy guy excited about, you get the idea, but i on the other hand got excited about it so i made it a routine to learn everyday i get to work , i needed two hours where nobody was supposed to ask me anything because i was learning.

Lesson # 2 - Practice as much as you can

My routine sometimes got interrupted but i was starting to grasp the ideas and was getting lots of "aha!" moments. I found different online tutorials, did a lot of googling, learned the other things that our trainers didn't teach us, got myself addicted to coding (problems with my girlfriend started surfacing, i was no longer dating her, i was dating codes). I don't know how she's doing right now, i haven't spoken to her since... i don't really know since when.

Lesson # 3 - Girlfriend will get mad at you, may even dump you, but i think its worth the risk?

So far my learning was going well, i decided to start using databases on my test applications, this got me so pumped up because i was now able to create a desktop application that had persistent data, this kept me very motivated until i got a call from one of my client that needed me to go over to Mombasa to finish a project we started a few months back, this was around september 2012 and my java learning experience came to an end.

Lesson # 4 - Interruptions are a big "mojo" killer

In Mombasa i wasn't getting time to learn, it was just working from morning, i couldn't even get time to rest because after working the whole day, Mombasa is very live during the night, lots of noises and activities and the weather is very different from the one we have in Arusha, Mombasa is very hot while Arusha is cold, i hate hot weather,

Lesson # 5 - If its not working fix it! or find a working solution

When i came back from Mombasa, around March i was filled with guilt. I was feeling like i had wasted a lot of time and money doing all that java training only to lose my "mojo" at the end, so i decided to take a different approach, i was going to try learning Ruby because "i heard it was simple" and also object oriented, and since i already knew a thing or two about OOP, i decided to give ruby a shot.

Long story short, Ruby really seemed simple to me, i guess my previous learning experience had a lot to do with this, the concepts seemed easy to grasp and the book i was reading "Programming Ruby" is a really good book. In a very short time i had grasped almost all the main concepts and i now decided to do Ruby on Rails.

Lesson # 6 - Ruby on Rails is just Ruby, and it sometimes makes you feel like you are cheating because everything just makes sense and you can learn it without learning Ruby first.

Ruby  on Rails is only difficult if you have  "Command Line Phobia". I had tried rails before but stoped the first moment i saw somebody go to the command line and type some commands, This time i decided i was gonna bite the bullet and push myself through, so i followed a tutorial from start to finish. I wish i could say it was a smooth sailing but it wasn't especially the whole Test Driven Development thing i was having problems understanding (this may not be a problem to others), so i decided i was gonna go without it first then come back and pick up a few tips, i'm now well versed on this but i wish i had not left it behind, its still okay though.

Lesson # 7 - Rails can help you learn lots of new things

Learning Ruby on rails has been a very good experience for me, i have learned a lot in the past 4 months than any other time in my career, new things that i never seemed interested in (coffeescript) is now in my repertoire, new ways of doing things (unobtrusive javascript, not necessarily a rails influenced outcome, but in some ways yes), due to the understanding of MVC and REST, i am now learning some MVC javascript framework called ember js and i'm having little trouble with it so far.

Lesson # 8 -Never ignore the designer, you're gonna need him/her or just start off as a designer, people hate crappy looking web apps

When i look back at all this experience, there's a few things that come i can really think helped me, one of them is that, when you want to learn web development, you better start off as a web designer, this will help you enjoy seeing your beautiful concept live, populated with ruby objects, again i may be wrong on this but hey this is my story and not yours.

To end this story of mine i have to give some thanks to Mbwana Mbura & Bonaface Chacha of Niafikra who were the guys that taught me java (however short the course was, it gave me an introduction that i needed to keep pushing myself hard), and by the way i have not abandoned Java, i'm still learning it.