Here are a few limiting beliefs I had and how I overcame them…
I need a degree to get a job
I learned that this belief is simply not true by reading these success stories: You can get a coding job!
I have to get the most out of my potential
I learned that this is not true by taking Calculus III and Linear Algebra classes. I hated these classes. These classes made me realize that the most important thing to me is doing fun and interesting things with code.
I cannot build unless I have a tutorial
I first started learning how to build without a tutorial here: How I built my carousel image slider.
I really learned how to use Google, documentation, others’ code starting with this post: How to Get Inspired about Web Development.
I have to build a single massive portfolio piece with many features
Many recruiters and technical people told me to put all of my learning and building into a single multifaceted website. But I ignored them because I had already started my daily sites and I was too stubborn to change course 🙂
I am glad I ignored them because I learned much more through repetition and daily building than I would have by building a single site. Special thanks to Omar for encouraging my daily site building.
I can’t do it. I can’t get hired, I can’t build a website, I can’t do this or that…
This belief is actually true. I cannot reach the outcome of many of my goals.
But I can take the next step and focus on the right actions. I can focus on the process and let the outcome take care of itself. This is liberating, to know that I only have to focus on the next step.
I recently found this celebratory email that I sent to my friends about a year ago.
I finished the Rails section!!!
Sure I had to take short cuts and skip a couple of parts.
But eh, after exactly 3 months, it is done!
But more importantly, what does this all mean?
I started the Odin Project on 12/12/15.
I blasted through and started Rails on 1/12/15.
I hit rock bottom on 2/14/15 or so. I couldn’t even start the project even after looking at others’ code, even looking at the instructions and each step done by others.
I really felt horrible, hopeless, lost, and confused. It was definitely a coding depth of despair.
That weekend I learned the Pomodoro Technique and the idea of doing the tutorial 2-3 times in a row from The Odin Project Facebook group. So that helped me slowly climb my way up from rock bottom.
I did the introductory Rails tutorial, which was at the beginning of the Odin Project, I did that 3 times in a row and for the first time ever I understood Rails.
Before there were 100 puzzle pieces and I could put 4 or 5 of the pieces in the right places.
After doing the tutorial 3 times, I could put a lot of edge puzzle pieces in place.
Then after going through all of MacKenzie Child’s 12 in 12 videos, I could see 30, 40, maybe 50 pieces of the puzzle.
So what lessons did I learn?
The most important thing is that my Google abilities are steadily increasing. This growing skill will be enough to keep me growing and growing.
I learned that it is important to ask for help, i.e. from Meetup, message boards, but only as a last resort.
Also take small steps, don’t try to reinvent Facebook.
If I do want to build Facebook, just start by building the sign up page.
Then a welcome page.
Just focus on small and consistent steps.
Make sure to give back, help others, do presentations, give whenever I can.
Most importantly, ask myself what do I really want? I asked myself a few times, do I really want to program and to become a web developer.
And my answer is, why am I up all of these late hours?
There’s no external pressure.
Of course I want to be paid, and be paid very well.
But I think every hobby, every job, is about problem solving.
I guess I am addicted to the problem solving.
It puts me in the zone, and that is the best part so far, getting in the flow where hours go by like minutes. It’s fun and interesting and I love it so far 🙂
It’ll be 3 years of coding in June, and so far so good. I hope this is a marriage made in heaven, I hope the honeymoon stays this way =)
Reading this makes me feel proud and grateful about much I have learned and improved, but also a little anxious and excited about the journey even further ahead 🙂
First get acquainted with the basics. Make sure that coding is fun and interesting. I recommend Codecademy for a free and fun introduction to programming.
If you prefer to blaze your own path, first decide on how frequently you want to build a site. Keep in mind that a greater frequency of building will result in more variety but less depth and vice versa.
Here is a great example of building a portfolio by creating weekly sites: How I finally learned to build stuff with Rails.
And here is inspiration in the form of learning by building daily sites: How to Get Inspired about Web Development.
What did I learn specifically from Ruby on Rails?
- I learned web development fundamentals including the difference between the front end (the part the user sees) and the back end (the database part).
- I learned how to use the Model View Controller (MVC) Design Pattern.
- I grew by attending and contributing to Meetup events.
- I made clean code a habit (most of the time… some of the time : ) Rails development taught me great habits like DRY (Don’t Repeat Yourself). This means if I am doing something repeatedly, i.e. printing out a first name and last name, I should not put this procedure everywhere. Instead, it is more understandable if I create a single function to print the first and last name, then call this function as needed.
- Testing including Test Driven Development (TDD). In TDD the tests are written first, then code is written to pass the tests. This can lead to cleaner code because of…
- Red Green Refactor. First create tests that the code will fail (Code is Red). Then make the code pass the tests (Code is Green). Then refactor (rewrite the code in a more understandable manner) while ensuring the tests still pass (Code is still Green).
- Keep code and folders organized. This means keep external code separate from my own code. Also make sure names of functions, classes, folders, basically everything, are descriptive of their actions.
Overall I am glad I began my journey with Ruby on Rails because the framework, community, and teaching materials make learning, understanding, and building websites very beginner friendly.
This used AngularJS and was based on this example. This site demonstrates AngularJS features such as Route Service, Templates, and Controllers.
The AngularJS routing conflicts with the Ruby on Rails routing. As a result, I built this site in CodePen. I will likely build a number of AngularJS sites that involve routing in CodePen.
To learn Routing and other AngularJS features, I will continue to use my favorite process–small and consistent steps that will snowball into massive learning and building 🙂
This site is an improved version of the Compound Interest Calculator because it performs the calculations instantly.
Update: I am getting the hang of the scope variables and bindings of AngularJS. I just need to keep building sites that use the features of AngularJS and I will improve even more at finding the documentation and examples that I need to build what I want.