How I learned to Code
medium.com
medium.com
Not to toot my own horn, but this is exactly the approach I take when I teach students to code (which I have done quite a lot of).
You can see the basic sequence of projects I use here[1]..
Then at Zed Shaw's prompting I wrote a book: Learn Java the Hard Way[2].
[1] http://programmingbydoing.com/ [2] https://learnjavathehardway.org/
Doing project after project, each stretching your ability is a really good way to learn ANY skill, but especially coding.
First, a bit about my background. I got my first computer 6 years ago, and within a year, I was obsessed with learning to build for the web. Shortly after, this obsession took me to a few online forums dedicated to development and other similar works. I built a crappy content management system for a game that I played occasionally, which was given to people who ran servers for that same game. Shortly after, I myself started a private server for that game, and developed a lot of interesting game mechanics and interactions that did not exist in the official game. This private server grew to be very popular and had about 3000 players online simultaneously at any given time of day. Soon after, this private server received a cease and desist order by the company that owned the game, and I pulled the plug.
During that time, I met my (future) co-founder through one of our players. We went on to co-found Windows7Center and Windows8Center.com (offline as of 2012), and over 3 years, gained quite a bit of success and popularity. During those few years, between these efforts and school, I took on freelance web development work to satisfy both my passion and my family's monetary needs.
I then decided against taking my full scholarship to law school, and attended a local technical college for Computer Science. After finishing my 1st year in Computer Science, I left school to pursue full-time opportunities because of financial difficulties that arose. Up till now, I've been working full-time for close to 2 years.
When I found out Amazon was hiring in Vancouver, B.C, I applied. I was interested but I was not yet prepared to leave my job in the case of an offer. A few months later, I left the company I was in, and around the same time, was asked to participate in Amazon's phone interviews. Throughout the process, they were aware that I had only completed 1 year of college.
My interview was with a senior engineer working in the same area I was applying for over in Seattle, and went quite well. Subsequently, I was flown down to Seattle for a full day of on-site interviews (for a Vancouver position). Long story short, the interviews went well, and after going through the 7 interviewers, my last interview was with the lead recruiter from Vancouver, who had flown down to interview me.
He then proceeded to spend the remaining 35~40 minutes drawing on the whiteboard the compensation details of the position, including signing bonus, equity options, performance bonus, how I could choose between more options or cash for the bonus, the benefits of choosing one over the other, the base salary, etc. He said "when I send you the offer on Wednesday, you will see _______" on a couple occasions. Then he walked out with me and explained that the team in Vancouver was very diverse and full of cool people, how it was much like a startup, and that I would love it. (I guess he was "selling" me the opportunity) He then said "once you accept the offer, we will fly you back down around 3 weeks later to do the training here, because the Vancouver offices are still quite small and we don't have that many hires that week".
Fast forward a month, and after 3 emails from me checking back with them, I received nothing. No offer, no email, nothing.
It's been a while since that whole experience, and after reaching out to a few employees at Amazon to help me gather some information about what happened, a recruiter told me "All of Amazon’s development roles require a bachelor’s degree". Of course this is not entirely true, as they do have engineers without degrees, but apparently I was rejected without notice because of my lack of a degree.
I am obviously old enough to not have benefitted from a CS course in HS, is it did not exist. So, to have gone 8 paragraphs deep into this post and still there was no mention of a particular language or medium to learn left me quite dry. Again, not to take anything away... I'm just saying.
The way I learned to code... Codecademy/google tech talks/web/books: in this order. I decided to focus on Javascript because of ECMAScript 5, NodeJS++ gave JS a new look and promising future. Codecademy got me off and running fast but then I finished all the courses and still felt like I did not know sh1! The tech talks helped me understand the context of -this- and that. The books were for Ninja-hood.
I hope more people write about how they learned for those of us coming from other industries and majors. Perhaps I will blog of my travails of a bootstrapping, indie, tech start-up... At the moment, still busy playing catch-up and learning to code.
I am obviously old enough to not have benefitted from a CS course in HS, as it did not exist. So, to have gone 8 paragraphs deep into this post and still there was no mention of a particular language or medium to learn left me quite dry. Again, not to take anything away... I'm just saying.
The way I learned to code... Codecademy/Google tech talks/web/books: in this order. I decided to focus on Javascript because of ECMAScript 5, NodeJS++ gave JS a new look and promising future. Codecademy got me off and running fast but then I finished all the courses and still felt like I did not know sh1! The tech talks helped me understand the context of -this- and that. The books were for Ninja-hood.
I hope more people write about how they learned for those of us coming from other industries and majors. Perhaps I will blog of my travails of a bootstrapping, indie, tech start-up... At the moment, still busy playing catch-up and learning to code.
This is huge. It took me a quite some time to believe in this concept when I first started learning to code. I spent weeks on sites like Codecademy but thought their projects were irrelevant or too small. It wasn't until I took the Thinkful [https://www.thinkful.com] course that I realized I need to complete these small projects before moving on to bigger things. A project-intensive curriculum should be the trend in all University CS classes.
I have a full-time job which makes finding time to learn very hard. I'm trying for 3 years and feel like I haven't made any progress because I made nothing in this time.
I know about Python, Javascript, Django, Flask, what a callback is, how to create a REST Api and many things but all the information is scattered. I can't make anything on my own.
Spending a couple hours a week is just not enough. I wish I didn't have to provide for my family and I could just give up everything and find a small to no fee job just to learn.
Another drawback is you can't find any jobs for Python or any other open source language in my country, 95% of the jobs are Microsoft or PHP.
Nothing new is created here, everyone is copying others work and just changing it a little bit. I looked at elance for a job but people with significant experience always proposes even for the simplest jobs.
So I'm doing it just because I like to and still hoping for an opportunity.