Friday, January 22, 2016

So close, yet so far away.

Any time you take on a new hobby or start to learn a new subject, there comes a point where the shininess wears off, the allure starts to fade, and it becomes work.

That's how programming has been for me, honestly. At first everything was awesome. Each and every little "intro" tutorial would yield a small but huge success, and the vast amount of knowledge available was awe-inspiring. I wouldn't hesitate to show off my simple programs (Hello World, anyone?!?!) and revel in my awesomeness.

But after a few months of continuous study, fun time is over, and the real work begins. You get to the intermediate tutorials (good ones are relatively more difficult to find, I might add) and now you are looking at weeks of work. No more freshly finished programs every hour or so, we are talking days and weeks! This is where I start to lose interest. The instant gratification is waning, the results appear to be slowing; the fun is gone. So I stop. I find something new, or just do nothing new for a while. 

If you know what I am talking about, then you know how it feels looking back on all the times this has happened, and seeing a bunch of unfinished dreams and ideas that were never realized. I started to believe that this was just the way things were, and the way they were gonna be for me. 

All it takes is grit. 

See, I have been learning how to code for almost 6 months now. I am well into the "work" stage, and I haven't given up. It's hard! Every day I make what feels like inches of progress. That tutorial I am working on: 8 days in, averaging 5 hours a day of work. Not even half-way finished. But I know that the end product is going to be exponentially more gratifying than those initial programs. 

What's more, just the fact that I can say that I am still at it feels amazing. Knowing that I am pushing myself further than I can ever remember in the past, and that there is something waiting for me on the other side of all of this: a career.

This is about more than learning a skill to better myself, this is about bettering myself by doing things differently than I always have. 

Back to work!

Thursday, January 14, 2016

What are we going to do today, Brain?

Things are getting real. I mean literally: I am building my first Ruby on Rails (RoR) app. Ok, it's just a sample app, made by following along Michael Hartl's Rails Tutorial. It is a simple Twitter clone, but it's a real app nonetheless.

This tutorial takes you from a blank slate, all the way to deploying a finished, working product. It teaches test-driven-development, version control with git, setting up a development environment, Ruby, Rails, etc, etc. Every section of every chapter subtly reminds me of the massive amount of information I still have yet to learn. There are links to almost every topic that is covered that he expects someone like me to not understand. At first, this was a bit annoying and seemed cumbersome. Turns out I truly appreciate the thoroughness and consideration.

Aside from the tutorial, I am working on a couple of projects using WordPress. While these websites are relatively simple and I do not plan on mastering PHP, they are still great exercises in understanding file structure. Also, there is plenty of HMTL and CSS practice to be had. I am also making money while I learn to code, which is pretty sweet!

As if my plate was not overly full already, I finally found a fellow  programmer in training  who is willing to take Harvard's CS50 course on EDX with me. CS50 is an introduction to computer science course. I have to say this is extremely exciting because I believe that in order to ever be a great programmer, I need to learn the fundamentals of computer science. Ideally, I will get much further into this topic than just the fundamentals -but this is a good start, as far as I'm concerned.

I have been wanting to take this course for a while now, but after looking over the course syllabus and watching the first few lectures, I felt strongly (it is recommended) that two should play this game. Well, thank you Salem Hamidi! Turns out I went to high school and played baseball with him, and he is also an aspiring programmer. I won't put his life story on here, but props are due. Thank you sir!

If it seems like I have a lot going on, that's because I do. I also have a life to live, believe it or not. But right now becoming a software engineer is a high priority, and sacrifices have to be made sometimes. Until this point in my life, my priorities were all out of whack. Sometimes I feel like I wasted a lot of time and didn't think about my future enough. But then I remember: I actually thought about my future quite a bit, I just didn't do anything about it.

Today, me and my brain are working on a better future for the both of us.

Wednesday, January 6, 2016

This is my late New Year's post. I have a habit of getting things done late. Maybe I should make it one of my new year's resolutions to fix that. Maybe one should be to fix my grammar.

The truth is, there are so many things about me that I would like to "fix." There are so many, in fact, that to list them would turn this post into a sad diary entry. I have good news though: I am moving passed the HTML and CSS portion my programming adventure, and getting into the real stuff.

My next project is a Craigslist-type website, which I will be building using Ruby on Rails. Very Exciting! I also have a couple of smaller projects that I will be making using WordPress.

As I sit here, writing this post, I feel very determined. I sort of let myself slack off over the holidays. Even the short period of time away from the terminal has got me a little anxious. I know to never do that again. At least not for a while.

Time to set up my first RoR environment. Wish me luck...