Teach yourself how to code without breaking the bank!

A black and white picture of a hand on a mouse, keyboard and a coffee cup

I’ve been curious about web and app development for a while now. I switched my career from Cardiac Nursing to UI Developer/UX Designer 2 years ago. If you’re like me, it takes me a while to grasp concepts as I’m a bit of a slow learner. But sometimes the commitment to learn in depth courses can really set you back in the back pocket. So here are some interactive tutorials that won’t set you back while keeping it fun and interactive.

Online Schools

There are so many places to get started for FREE. I highly recommend

Code Academy

I started out with Codecademy, it’s grown a lot since I first started using it. It only used to have basic HTML, CSS, Javascript, jQuery, PHP, Rails…when I first joined. It’s grown immensely and cannot recommend it enough. I was still a nurse and coding in my spare time.

Code School

This is also a great place to start. It’s got really funny videos and instructors. I first learnt AngularJS with this course. I also have more in depth resources on learning AngularJS here. But in all honesty, it’s a got more than just AngularJS tutorials.

Udemy

I’m a bit of an addict to Udemy courses. Pro-tip: wait until they have a sale to buy courses. You can go through the video curriculum, wishlist them for later then buy them when they go on sale.

Khan Academy

Free large courses, not just coding. So sign up to get learning.

Lynda

(Free trial, not so free)

If you live in QLD, sign up to the SLQ website to get free Lynda courses.

TreeHouse

(Free trial, not so free).

Their videos and courses look really good. But I have never tried because of pricing, they do have a free trial. They do have a blog that does come in handy as well.

Free Code Camp

I “met” with Quincy Larson who reached out to me when I was answering questions on Quora a while ago. He’s got an awesome community called Free Code Camp. I’d recommend these courses for absolute beginners, it’s pretty good. Don’t be off put by the number of hours estimated to complete the course. Coding can be hard and it can take time which is why I like Free Code Camp so much…I felt like an idiot when I was trying to learn by myself a few years ago. It took me 9 months to build my first app. I could probably build it in 1 week now that I have more experience. I wish this was around then to help me out.

I’ve signed up just to learn the Backend Javascript.

Disclaimer: I did not get anything for mentioning this, Quincy and Free Code Camp are awesome.

HTML CSS

(client side / front-end )

Is essential in web development. HTML is your mark up that structure your website or web app. CSS makes it interactive and look pretty. Think of HTML as your bones, and CSS as the meat on that bone.

Basic HTML & CSS courses (FREE at the time of posting this blog…hopefully still free):

CSS Diner: Fun and interactive way of learning CSS

CSS Diner

CodeSchool:

HTML CSS Path

Learn Web Development

Udemy:

HTML Workshop

Learn HTML5 from scratch

HTML and CSS for beginners crash course

Javascript

(client side / front-end, except for Node.js)

Javascript is a browser language…it’s the most versatile language and gaining momentum as it has so many frameworks, libraries etc. If you’ve heard of AngularJS, ReactJS, EmberJS, BackboneJS, KnockoutJS, jQuery, Typescript, CoffeeScript…these are all built on top of Javascript. A special mention to Node.js of course as this is Javascript in the backend (server-side Javascript). Along with HTML and CSS, you can build some pretty interactive and awesome apps and websites.

I’m currently very familiar with Angular JS…although I’d like to try Ember and React. I’ve written another blog post on Helpful JS libraries for any project.

Ruby on Rails

(server side / back-end language)

Ruby is a great language to get started with development. It’s been made popular by packaging it up in the Rails framework. Google Ruby on Rails tutorials to get started there are plenty around for you to dip your toes into. You’d be surprised how easy it is build something of value with ease. So just to clarify again Ruby is a language, Rails is a framework built on top of Ruby to get started…seriously if you want to dip your toes into development try Ruby on Rails.

Try Ruby here

Rails for Zombies

http://railscasts.com/

Clojure

(server side / back-end language)

I’m not familiar with Clj (Clojure) but found some great resources.

http://www.tryclj.com/

http://clojurekoans.com/

https://learnxinyminutes.com/docs/clojure/

Python

(server side / back-end language)

I’m not familiar with Python but found some great resources. Python seems pretty similar to Ruby syntax to me but here’s a tutorial to see for yourself.

http://www.learnpython.org/

Git

(is a version control tool)

Version control is probably one of the hardest concepts to grasp as a self-taught coder. Luckily there are some great tutorials out there that are interactive. If you want to become a developer of any kind you need to learn git. Although there are apps for git such as SourceTree and GitHub Desktop to help you out, I’d recommend learning Command-Line Tools version of git as it is very fast to learn.  (I’ll be posting more on git in another blog post).

Code School’s try Git course

Atlassian has a great interactive tutorial

a more in-depth tutorial by Atlassian

Once you get familiar with git create yourself a GitHub account and a BitBucket account.
I recommend a bitbucket account for free private repositories but definitely first create your Github account to link to.

Youtube

Free videos that you can search how to get started with coding. It’s incredible what you will find on here to get started. It can be a bit scattered, but there are some gems in there that people have taken the time to make good tutorials so invest some time and pop those headphones on to get going.

Stackoverflow

Stackoverflow is the developer forum for all your needs. It’s likely when you first start coding that someone else has run into the same problem. Stackoverflow is your friend, rather the awesome people that contribute to this awesome community are your friends. So if in doubt Google it but also Stackoverflow it.

Vim

(a text Editor on steroids)

I know a lot of Developers swear by Vim, I’m unfamiliar with it as I use Sublime. (I have post coming soon on my favourite IDE’s)

What Is Vim?

Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems.

Vim is often called a “programmer’s editor,” and so useful for programming that many consider it an entire IDE. It’s not just for programmers, though. Vim is perfect for all kinds of text editing, from composing email to editing configuration files.

Despite what the above comic suggests, Vim can be configured to work in a very simple (Notepad-like) way, called evim or Easy Vim.

What Vim Is Not?

Vim isn’t an editor designed to hold its users’ hands. It is a tool, the use of which must be learned.

Vim isn’t a word processor. Although it can display text with various forms of highlighting and formatting, it isn’t there to provide WYSIWYG editing of typeset documents. (It is great for editing TeX, though.)

http://vim-adventures.com/

http://www.openvim.com/

Overall, this post is supposed to give you a range of ways to learn how to code for free. I hope you find what you like and what you don’t like so that you get a taste of coding. I still love it. I hope you enjoyed reading this as much as I did writing this.

So there you have it…if you have your own suggestions to add please comment below!

Advertisements

Life After TWU: No rest for the wicked

How time flies. It’s been that long since I left India that another TWU batch have already gone through the same process! You read correctly…TWU 36 has already finished their time in India. I can’t wait to meet some the recruits. I arrived back in Brisbane on a Sunday night only to start work the next day. I was un-assigned for time being unsure about what was next for me. That Friday I got told that I would be on a project in Sydney! I was excited, nervous and a bit sad all at the same time. I was excited about the opportunity that was lying ahead, scared shitless about the opportunity…am I ready to be on a real project. I was sad that I would have to leave Brisbane again for a number of weeks, I had only just come back from India after 5 weeks only to tell my dear wife that I would be absent again for another 6.

I arrived in Sydney a bit jet lagged (you lose an hour due to day light savings), to meet with senior dev, my dev pair and the client. We basically had a discussion around what we were going to deliver by the end of six weeks. We had 4 epic stories, most of which I had no idea what this entailed. We broke down these 4 stories in smaller cards on a wall.
Looking at this wall of work made me feel sick. I didn’t have a clue how I was going to do this…we basically had to extend an existing web app to become a social recruiting tool similar to LinkedIn. Next we spent the next 2 weeks or so digging through the current tech stack. The tech stack involved a backend Salesforce, a local database, this would talk to Java Controllers then on the front end would be viewed as Backbone.js tempates combined soy templates using the Twitter Bootstrap framework. To my surprise this was a very similar tech stack to the project simulation that I had worked on in India for TWU.
I was able to draw on some knowledge that I had learned in TWU, even reuse some code. So I started with what I knew making designing new pagees/views on the front end and designing these features. I had a lot of control over this which as great but always asking my dev pair and client for feedback. There was a lot of trust within the team which really made the project fun. Don’t get me wrong I asked a lot of stupid questions to my dev pair, I felt sorry for her some days as I felt that sometimes I was a slowing us down. But this was not the case, the more I asked the more I learned, and as a result knowledge then shared across the team. This is really important, as it could slow down the productivity if one of us got sick then the project would be at halt. Before we knew it, time was creeping up on us, but we managed to deliver what we set out to build six weeks before.

The beauty of having only 2 devs, was that we could work on different parts of the project to avoid merge code conflicts when pushing to the main repository. We ended up pushing to prod the last day just before easter, half an hour before I had to leave for the airport. I was so proud that we pulled it off, sure there could be some improvements but the web app had significantly improved because of what we achieved.

It was a great sign, when the client asked for more features. Unfortunately, I was due to join another project. I spent the last day of the project working remotely in Brisbane to fix bugs and also documentation. The next day I was due to start on a new project to my wife’s relief in Brisbane. I’m now part of the design team working on a super secret project for Dominos Pizza. All I can say is that I’m learning a heap from talent team at ThoughtWorks about big projects, deadlines, SCSS and Angular JS.

Life at TWU: AW35OME

TWU Batch 35 at the Taj Mahal
Spending our free weekend in India at Taj Mahal

Since my last post it’s been a crazy ride. I was exposed to the world of TWU101 Training which exposed me to JAVA, TDD, and comprehending a lot of Social and Economic Justice Concepts such as Imperialism. I was so stressed trying to grasp these concepts by myself at home. I emailed my mentor who kindly helped me out with Java and TDD on a weekend day for 4 hours. My brain was absolutely fried. I was able to write some simple tests afterwards but learning TDD and Java at the same time is a challenge to say the least. I felt more comfortable as the course went on as it involved more Javascript, also learning basic SQL took me back to high school which was fun. As TW graduates in Brisbane we spent most of our time working on course work, at a client site. This made it awkward asking for help at times since our mentors were busy working and from a client perspective we didn’t want be distracting our mentors from their work. But I was glad I could ask for help when I needed it as the alternative is sitting in an empty as everyone is on a client site.

After the initial TW101 course, it was off to Sydney for induction for three days (sometimes called on boarding). The accommodation was quite close to the office and very nice. This was a great experience, I finally was face to face with people who interviewed me, other grads who were all on the same boat and my recruiter who I had only had online contact with. We went through the orientation of the company and the people presenting on different topics (sales, marketing, finance, recruiting, info-sec) were all to eager to answer questions for us all. It was our first exposure to Timesheets, Expenses, and other day-to-day inner workings of being a consultant at ThoughtWorks.
The things that surprised me, were that I was able to help others when starting out…I was able to guide people through a Mac, passing on my learnings of encrypting a Mac and show others some cool apps that are useful from the Mac Store. Being in Sydney also allowed the opportunity to meet grads from the previous batches and pick their brains about TWU in India. At the time it was also my wife’s birthday so she flew down and we had dinner at the Sydney Opera House, it was great to celebrate with her.

So on the third day we left for India, it was a long 24 hours of travelling. For the most part it was quite pleasant, the most unpleasant experience was waiting in Mumbai for 6 hours, boarding the plane then sitting there for an hour, to realise that the flight would only take 20 mins. It was kind of hilarious, watching the other grads fall asleep only to be woken up a few minutes later as we had landed. I got to know more about the other grads, sometimes exposing my insecurities about attending TWU. But I was rest assured that we were all learning and in the same boat which made me feel a whole lot better.

After all the travelling was over and we finally made it to Pune (Poona), I spent the night catching up on sleep. The first people I met were from the North America Region. To my surprise I met a great guy who made the change from finishing Grad School in Medical Research who also spent sometime in Med School. This was refreshing and we talked about having our own startups one day and also contributing to Health Projects such as OpenMRS a Medical Records System that is Open Source. I could go on about each an every person that I had the pleasure of meeting and collaborating with, but this blog would end up so long. But my point here is that I met many different people from all walks of life (North America, Canada, Brazil, China, Africa, Europe and UK regions), people who not necessarily studied computer science, people from all sorts of backgrounds. The traits we had in common that brought us together were that each of us are passionate, hard working and open to learning new things.
It was refreshing to see that we all got along so well, a testament to ThoughtWorks’ recruiting processes.

The ThoughtWorks University Batch 35 Logo
Our TWU Batch 35 Logo

We were then given assignments that touched on each of the 3 pillars of ThoughtWorks. Balancing project simulation (which was the majority of the time spent), Pillar 3 assignments along with Pecha Kuchas was a task and half to say the least. I learned so much from other fellow grads who took the time to proactively teach us all sorts of technical and non-technical concepts at lunch and learns. After these “lunch and learns”, I wasn’t so hesitant to try new technical things (in nursing Lunch and Learn concept is very similar to the “See one – Do one – Teach one concept”). I only wish I had the smarts and time management skills to organise one myself. Still feeling like a fish out of water now, I guess I wouldn’t know what to teach and L&L sessions.

As a TWU attendee you are living, working and hanging out with everyone… this constant contact with all these amazing people makes it difficult not to get attached. Nothing can prepare you for ThoughtWorks University, you just have to take it as it comes and go with the flow. Asking for help and seeking clarification is one the most important things I learnt that I needed to do. TWU is an experience unlike any other, I’m so glad to have been a part of it. For those of you in the pipeline for ThoughtWorks University, my advice is absorb as much as you can by asking lots of silly questions, ask for help and have fun.

Thank you 2013! What a year it has been.

I’m posting this to reflect on the year that was 2013. So much has happened this year. I kicked this year off at the New Years Eve Ball in Brisbane, dressing up as the Justice League. I bet you can guess who I went as…
Keep Calm because I'M BATMAN

Wedding preparations were never ending. Motivation would come in waves, some weeks were spent head down bum up and others were spend enjoying the fruits of our labour.

I married an amazing woman, my wonder woman. Our wedding was the best weekend of my life (and apparently my wife’s friend Bridie, who awkwardly told us it was the best day of her life…kind of a running joke in our circle of friends). It was absolutely perfect! The weather was amazing, the food was delicious and the company was first class. Surrounded by family and friends who travelled near and far to celebrate with us. I’ll never forget what an incredible weekend it was. My wife spoils me undeservingly, she puts others first before herself. A side effect of being a nurse. Her generosity is only outweighed by her beauty. I am so lucky to have her as my wife.

The greatest weekend of my life.

She supported my decision to resign from Cardiac Rehabilitation (2 weeks before our wedding). Believing that I would be able to follow my dreams of changing careers into the Web Development space in the I.T. industry. I cannot thank her enough for that.

meandalicia

I still worked at the hospital in the Coronary Care Unit. It’s such a great family that I have there. I’ve worked with these people for 5 years, I have learnt so much from them. Not just from a cardiac perspective but life lessons of generosity, loyalty, ambivalence and accountability. I finished my last shift yesterday with a bang. It was so busy and hectic. It reminds me how challenging this job can be and the type of people who willing to take on this challenge. I’ve made life long friends there.

Now I start my journey in 2014, in totally new space. I’ll be attending ThoughtWorks University in Pune, India at the end of January. I cannot believe I got in…you can read a more detailed version here.
It had been 13 weeks since I resigned when I got the call on the way to visit the in laws with our new addition to the family…Bruce, our puppy pug. I had just finished a long wind of interviews from ThoughtWorks, that stretched over a few weeks while picking up extra shifts at the hospital. It was such an experience, it almost felt like I was joining Google. It was intense, challenging and a lot of fun.

brucey
I was in the car trying to keep our hyperactive puppy under control when I was offered a position as a Graduate Developer. I huge wave of relief and excitement had washed over me (and my wife who was driving at the time). I did it! I thought to myself.
Then I started to feel excited! I got in! I told myself. Then I started to feel scared…What have I gotten myself into? Am I good enough to do this? The realisation of what I had achieved had turned into a feeling of low self worth. This stemmed from knowing I did not have any formal qualification and more so experience working in this space. I still feel like that now, I feel like I have to prove a lot more, and work a lot harder because of the lack of experience I have. But I’m going to take it on with my head down and bum up…as they say “Nothing is worth doing unless it is hard work”.

I’m working my way through ThoughtWorks assignments that they have sent me. But today I’m going to take it all in and celebrate what a great year 2013 has been, thank you Universe. Bring on 2014!

2014

Hour of Code: Do it!

This will be a quick one. To those of you who don’t know me. I’ve just been accepted into ThoughtWorks an Agile Software Consultancy Company. I start January 2014. What might surprise you is that I never went to University. Well that’s a lie I went to University and have a degree in Nursing. I’ve been a Cardiac Nurse for most of my career with humble beginnings in Gastroenterology. I was driven to learn how to code, to solve a problem while working as a co-coordinator of the Chermside Cardiac Rehabilitation unit in Brisbane. I wanted to cut down assessment time because there was sooo much paper work. One of the contributing factors was how long it took to conduct a 6 minute walk test. Sounds like it takes 6 minutes, but after recovery of the client, explanation of the test, explanation of results, calculating formulas and then having to document the results in 5 different places. It turned into a nightmare. I was so fascinated with this small problem, I decided to tackle it myself in my own spare time. I taught myself how to code and found other people who helped me learn. It started when I was introduced to CodeAcademy…it was the Year of Code…I taught myself HTML, CSS, Javascript (I’m still learning and have a long way to go yet) and managed to build an app that I wrapped in PhoneGap. My app is now downloaded all over world and although I’m not making millions. I still find it so rewarding to see people use my app and continue to improve it. I love coding so much that I resigned from my Cardiac Rehab Job (my last day was two weeks before my wedding) and decided to take my novice Web Dev skills to the next level. After blood sweat and tears I now have a portfolio I’m proud of (that I will continue to grow) and can happily say that I will be a Graduate User Interface Developer at ThoughtWorks. The point is if a Nurse from Brisbane can teach himself how to code and change his career to Web Development without a University Degree. I’m sure you can too. I’m very excited to be part of the “Hour of Code” movement. I hope to gain more experience at ThoughtWorks and one day build more robust software to tackle bigger problems in the Health Care Industry.

I got into ThoughtWorks!

HOLY CRAP! I GOT IN! Since the the last blog post I had just handed in my solution for the technical UI problem. I then progressed to a Skype Interview with a Front-end developer (Adam) via Skype. After Adam had spoken to my recruiter Sam, I was then asked to progress to the Cultural Interview via Skype again with Emma and Cassie. This was an interesting one, I had essentially no preparation other than reading about agile, thinking about the parallels of working as a nurse and transferrable skills I could bring to ThoughtWorks, and studying the ThoughtWorks website back to front for a few days. The feedback I got was good, but something that was pointed out to me, that I have to understand is that I need to stick to project even if I don’t like it (which is fair enough, there are things we do as nurses that most people wouldn’t do, so I’m up for that). I guess I answered this as a nurse and not a ThoughtWorker. I gave the example of a patient who needed to quit smoking, but had no intention of quitting, I would give them the an informed choice…but leave it up to the patient if they continued smoking. After all, you can bring a horse to water, but you can’t make it drink. I guess it was the wrong analogy to use, when answering those types of questions. I was then was asked to finish the remainder of the interview process in the Brisbane office. This involved sitting for a Logic test (I had never done a logic test in my life!), once I got into it, it was actually a lot of fun. I didn’t answer all the questions, but I was pretty confident that the ones I did answer I answered correctly. Then came the Consultancy exercise, with two other ThoughtWorkers who basically ran a role playing exercise. They asked me to build something that could fly, one consultant was adamant that the object must WIN, and the other as set on it being PRETTY. I proceeded to make several paper aeroplanes and got them to test it out. I guess I’m more pragmatic when it comes to things like this, I worry about the functionality of something before how it looks. So trying to please both “stakeholders” was intense, I really do like the role playing it’s a great way to learn. I was then asked questions about my workflow, you know, why I did the things I did. I’ve never been asked that, it’s quite refreshing to have been asked how I think. After that was done, I was asked to present on something I was passionate about. I had prepared a prezi (which can be viewed here) on Heart Health. I am still passionate about it, especially since my last job entailed telling people AFTER they had their heart problem and NOT BEFORE. So it was refreshing to present this to an audience (2 recruiters, 1 via Skype) who essentially had no experience with Heart Disease. After I presented I was then asked about the 6 minute walk test App that I developed and how it fit into the Heart Health. I showed them a demo which I had only built a week ago. The feedback I got from the presentation was good too, but there were a few things that I was told to improve. Firstly, I was told that the information presented was interesting, but I needed to express what the objective of the presentation was not obvious. My objective was to provide information to an audience so they had some idea on how to prevent a heart attack. Secondly, it went a bit long…I did notice that the presentation took longer than practiced at home. But, I didn’t expect to have present my 6mwt App as well. In hind site, I should have just presented how the 6mwt App worked and why I developed it. The last item on the agenda that day, was a 12 minute aptitude test, there were 50 questions…i think I got through about 30ish questions. So that was my morning at at ThoughtWorks Brisbane on Wednesday 13th November. I got a phone call on my way to Straddie, for a family trip with my wife and new puppy pug “Bruce” to offer me a place in the ThoughtWorks Grad Program! I was beside myself, and still am. The next challenge is now about staying ahead of the game. I feel that I have a lot to prepare for now that I am in. I really want to do well in ThoughtWorks University in India. If anyone has any advice or resources to help me prepare to do well in ThoughtWorks please comment.

Next Stage ThoughtWorks! Technical Interview

Today has been awesome…to reveal how awesome it is I have to go back to Friday. Friday I was having lunch with my wife and her friend as she just got a new promotion! Then I get a phone call from ThoughtWorks who I haven’t heard in a while, that they would send me a UI problem. I received the problem in the form of a PDF, and out of respect to ThoughtWorks I won’t be posting the UI problem PDF on this post. But my solution is in the video…I am so proud that I was able to produce a solution with nothing but my own experience and other resources such as google, stackoverflow, js fiddle, js bin. It was very exhilarating being stuck to the screen this weekend and focusing on this project. Especially when I was happy enough with my solution, to zip it up and send it to ThoughWorks.