Showing posts with label ruby. Show all posts
Showing posts with label ruby. Show all posts

Tuesday, March 15, 2016

Working Title / Under Construction (So Many Puns!)

It's now been two weeks since I started working on a real life application. I have been thinking about that first "hello world!" program I wrote 8 months ago. Now I am submitting code to a company's most prized possession. Extremely intimidating is the phrase that comes to mind.

So I show up to work the first day, not scared, but anxious. I spent the first day setting up my work environment and getting acquainted. Once all that was finished, it was time to get into the code. Turns out I know much less than I can even imagine.

I spent countless hours over many months learning to code by following along The Odin Project -as well as a few tutorials not on their curriculum- and I can tell you that nothing compares to a real project. There are no tutorials that I know of that cover all the information and sheer scope of a real world application. There are so many intricacies, personal styles of the people that have committed code to the repository, and variances in the overall "way we do things."

The first task I was given was to write up an email template. Sounds easy enough: use some HTML and inline styling to take the designer's mockup and turn into a usable product. It turns out that nothing is as easy as it sounds, and it took me a week to get it done (actually it still isn't 100%). I can tell you that in all my studying it was never suggested that I work on my email technique. But that's just the way it is, and there is absolutely no substitute for work experience.

With that said, I feel like an internship is the best situation for me. While I've definitely suffered from "imposter's syndrome"  a few times already, I don't have the added stress of feeling the need to perform for a paycheck. Since I was upfront and honest about where I was at in my understanding of computer programming, I can take a step back and understand that while I may not have completely understood what I was signing up for, my mentor surely did.

This is not to say that I can just sit back and relax, or that I feel no pressure to level up quickly; I need to keep doing what I have been for the passed several months. Whatever task is sent my way, I will give it every ounce of energy I can, with the understanding that I will never know all there is to know about anything.

After two weeks of working here, I still believe 100% that I am exactly where I'm supposed to be, and that this path lies before me is the correct one to be traversing.


Wednesday, March 2, 2016

Will work for knowledge.

Man, life is good! Through a series of extremely fortunate events, I landed an internship at a real company, working on real software. Not only will I be working on a legit application, but I get real world work experience, deadlines and all. It was only 8 months ago that I wrote my first 'Hello, world!' program, not knowing the first thing about computer programming. I think its worth explaining how this opportunity came about.

When I first started learning to code, I was constantly searching the web for things like "How to learn computer programming" or "Learn software development," and things like that. In addition to all the code bootcamps and online schools, tutorials, and curricula (did you know that is the plural form of curriculum? Neither did I!) I found a blog written by Joshua Kemp. This guy taught himself to code and laid out a clear cut path for wannabes like myself. His story is also very cool, and is worth checking out.

Well, I ended up reading every single post of his from beginning to end - over three years of posts. In his first post, he basically said that he was starting a blog to keep himself accountable. I thought that was a great idea and decided to do the same. I have not blogged anywhere near as consistent as he, but I did blog nonetheless.

In addition to putting myself out there and keeping me accountable, this tactic also made it known to my friends and family that I was pursuing this goal. Fast forward to a couple of weeks ago, I had just finished an RoR app by following along Michael Hartl's Rails Tutorial and promptly posted a link to it on Facebook. A friend of mine came across it around the same time that the CTO of his company mentioned that he was looking for an apprentice. He put us in touch and the rest is history.

I didn't even mention the best part: the guy I am working under is a bonafide computer scientist. I personally believe he is a genius. Not only is he knowledgable, but he is also patient and willing to help me out with whatever I don't understand (which quite frankly is a large amount). The company is established enough that there is tons of work to do, yet small enough that I will be able to have direct access to my mentor day in and day out. At this point in my coding career, I have to believe this is the absolute best thing that could have happened for me.

As the title of this post implies, this is an unpaid internship. I have to say, I still think I am getting the better end of the deal on this one. No amount of tutorials or books or videos can beat working on a real project with a willing and able teacher/mentor.

A lot of things had to happen for this scenario to take place, and I have worked very hard for the last several months. But that work is already starting to pay off. I have finally found a career I can honestly say I love. My wish is that everyone I know finds the same, as there is nothing like the feeling that you found your calling.

I will continue to write about this miraculous journey, with the hopes that someone, somewhere is inspired to chase down their dreams. So here is to the future, and especially to the now!

Tuesday, February 2, 2016

Finish line on the horizon

It's coming up on 7 months since my first post, which means its been almost 7 months since I started learning to code. I can feel the progress. My brain functions differently now. I can almost feel it processing things and I am more aware of every step I take.

While I didn't necessarily meet my goal of blogging consistently, I have kept up with the more important aspect of the goals I initially outlined by burning the midnight oil on the computer regularly.

Many adjustments have been made in order to keep up a fast pace. Recently I began training myself to function on 6 hours of sleep nightly. I figured that I could squeeze in at least 2 extra hours on the computer nightly by sleeping less. It's working so far.

This week Salem and I finished up the second set of problems for CS50. Man, I have a lot of respect for anyone that can succeed at Harvard. This is an entry level course and the second week's problem sets are already very intense. Luckily I have a bit of background knowledge, so the material isn't completely foreign to me. It is difficult though, and having someone to collaborate with helps tremendously.

In addition to CS50, I am finishing up a tutorial on Rails that has me building a Twitter-clone. It's my first Rails project from scratch, and the building blocks for the Craigslist-style website I will be making for a friend.

Having several projects underway at all times gives me plenty of things to do on any given night, as well as keep things interesting. Sometimes that's all it takes when I'm having one of those days and just want to lay around and watch TV.

This is an opportunity to drastically change my life for the better, and all I have to do is keep striving for the finish line... One late night at a time.


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.

Friday, July 17, 2015

So many variables!

In the short amount of time that I have been at this, I have devised seemingly hundreds of "paths" to take to become a developer. There are so many languages, text editors, frameworks, etc. that it can be overwhelming to think about. So I took some advice, and focused more on the type of programs I'd like to make: the type of work I think I'd like to end up doing. From there, I worked my way back.

I ended up deciding to take on Ruby. Since I am working on a Windows laptop (for now) I went ahead and used RailsInstaller to get everything up and running. It was quick and easy, with no hiccups whatsoever.

*Since I am new to all of this, I believe that doing as much from the command line as possible is best. However, I do not plan on working with Windows for much longer, and rather than spend a few hours trying to learn DOS and Powershell, I will do it the right way when I get that Mac

My immediate goal is to complete the application process for a web development boot camp called App Academy. I only know what I have read about them, so I won't turn this post into an advertisement. This would be the quickest, albeit absolutely toughest route to take to become a paid developer. Wednesday is my personal deadline for being fully prepared and taking the first coding challenge.

If I don't get accepted, it will not deter me one bit. I know deep down that this is what I want to do, and that with enough work I can get really really good at it. And I feel very fortunate to live in a time that all of the information I need is at my fingertips. There are countless stories of people who are self taught that now have rewarding careers as programmers. It's a beautiful thing.

It's getting late, and my brain is fried from 3 hours of studying. I have been working through Chris Pine's Learn to Program. Yes, I would definitely recommend it to a friend!

Until next time...

Tuesday, July 14, 2015

Hello World!

I know, I know: very unoriginal title. Well, it fits. I am starting this blog to record and share my experience as a 28 year old starting from scratch on a journey to learn computer programming and ultimately secure a job - a paying job - as a developer.

My life has been a series of ups and downs, twists and turns. Everything that has happened has lead me to this very post. For the first time in a very long time, I feel 100% in my bones that I have found what has eluded me for my entire adult life: a career path.

I am whats called a "Jack of all trades, master of none." I have a history of diving head first into something, only to get tired of it, or realize I can't be the best in the world at it, and quit. I have been doing this since as far back as I can remember,

So, for the past few weeks, I have been looking into what it takes to become a computer programmer. It honestly started from pure curiosity. Sure, I know some people in the field, and I understand the money can be great, but what got me looking into it was an article I read online. I don't even remember the name of the article. I read a lot. My head is full of useless information.

I followed links from the article on down the rabbit hole, and next thing I knew I was signing up for an MIT OCW Intro to Computer Science class. After 2 lectures, I was in love. And now, almost a month later, I am still in love.

So, this is my journey to become a developer:  Starting from scratch.