Wednesday, April 8, 2015

Udacity helped me land my first software engineering job!

The purpose of this post is to describe how I landed my first software engineering job with the help of Udacity’s Front End Web Developer Nanodegree. Udacity is an online provider of technical education that provides all of its course material absolutely free. They also offer an enhanced course experience at an affordable price. I chose to enroll in the enhanced experience and see if I couldn’t learn what I needed to get where I wanted. This blog post is not an official, formal review of Udacity’s Front End Web Developer Nanodegree program. Rather, it contains some highlights of my own personal experience. Nonetheless, if it helps you to make a more-informed decision, all the better.   

I acquired the skills to land a job as a software engineer in just four months (I started the Nanodegree program in December 2014 and finished in March 2015). The price I paid was $200/month, so $800 in total. The only “school supplies” I needed was my computer. Since I already had my computer before I started the Nanodegree program and I would have had it whether or not I enrolled in the program, I don’t consider it an additional cost. Also, I could’ve went to the local library and used one of the computers there at no direct cost to me.

The meat of the Nanodegree program consists of a collection of class projects, several of which are fully functioning JavaScript web applications. In preparation for each project, the student progresses through one or more relevant Udacity courses. The majority of the diligent student’s time is spent working on the class projects in a self-directed manner. This may include doing a little extra online research in order to round out one’s understanding of a particular topic.

Positive adjectives that describe my own Nanodegree experience include:  edifying, exciting, challenging, rewarding, worthwhile, engaging, motivating, and thrilling. Negative adjectives that describe my own Nanodegree experience include: frustrating and time-consuming. It is important to realize that each of these adjectives represents my feelings at a certain point in time and any single one of them does not fully and accurately describe my experience as a whole. Rather, the sum of all of them may describe my experience as a whole. If I had to choose one adjective to describe my Nanodegree experience as a whole, I would say it was worthwhile

As you may have noticed in the above lists of adjectives, I named more positive adjectives than negative ones. This is reflective of my experience; that is, there was much more positive than there was negative. I would like to elaborate a bit about the some of the positives.

One thing that is really great about the Nanodegree is that it is a well-defined curriculum. It provides goals and deadlines. It provides both lecture-based and project-based learning. These characteristics are crucial in staying on track and crafting engineering skills. Another part I am very grateful for is the networking aspect of the program. When you enroll in the program, you become a part of a cohort that sticks together until the Nanodegree is finished. You have the opportunity to network with and get to know many others that are on a similar journey as yourself. I am happy to say that I met some really awesome people (both students and instructors) during my journey. Udacity provides chat rooms where you can instantly contact students and instructors and get help if you’re stuck. Udacity also provides its own Q & A-style forum, similar to stackoverflow, where you can learn from others’ past issues and even get help on your own issue. I remember being stuck trying to get OAuth to work properly with the Yelp API, and when I posted on the forums, Mark N. (Udacity coach) replied at lightning speed. As if all this is not enough, you can schedule a one-on-one appointment with a Udacity coach to get live, specialized attention. There are also live video hangouts where you can ask questions and get feedback on your projects from Udacity coaches. Udacity also shows you how to research companies and network with individuals within those companies.   

In the above lists of adjectives, I named more positive adjectives than negative ones. This is reflective of my experience; that is, there was much more positive than there was negative. Now, I would like to elaborate a bit about the some of the negatives. It’s hard for me to list the negatives, because I am so happy with my Udacity experience. However, I’m afraid if I don’t, my opinion may be discredited as overzealous or incomplete.

Perhaps the heaviest-hitting negative factor of my experience was frustration. Frustration experienced when I was stuck on a certain part of a project. Frustration experienced from having to interact with students and instructors via online communications rather than in-person. Frustration experienced from having to sacrifice other things in my day in order to complete a project. Frustration experienced from wondering when it was all going to “pay off.” It is important to realize that all of these negative factors are some of the side effects of the infrastructure of online education rather than characteristics of the Udacity experience itself. Nevertheless, there was some frustration that I experienced during the program and it is worthwhile to mention it.

Toward the end of the Nanodegree curriculum, I began researching companies in my city that I would potentially like to work for. I made a spreadsheet of all the potential companies and started contacting them, taking detailed notes on each one. Within a few weeks, several opportunities began to take shape.

 There is a motivational speaker by the name of Les Brown who once spoke about how when a person takes action toward his or her dreams and goals, the universe tends to work in his or her favor. After taking action on one of my goals, I was both surprised and thrilled to learn of all the job opportunities that were out there for the taking and all the people that were willing to help me along the way.   

I would like to give a special shout out to my Udacity coach, Poornima Sundararaman. Thank you Poornima for your guidance and support throughout my Nanodegree journey!  

                                                                                                                                                    

Friday, January 23, 2015

Professional Presence Update 3

Reflect on the code review you just completed. 
What did you learn? 
I learned how to optimize a website for speed. There are several factors to take into consideration when trying to make a website run lightning fast. I learned how to measure and optimize those factors. 

What are you going to do differently on the next project?
Hmmm, this is always a tough question. It's like when an interviewer asks you to list some of your weaknesses. Ha ha. Nobody likes to talk about their weaknesses (that is, if they even believe they have any major ones). But I will say that perhaps I will try to achieve more balance in my schedule on the next project. I prioritized working on this project over doing other things when the opportunity arose. That could have been for better or worse, but I like to think it was for the better because it shows that I am dedicated. I probably could have exercised and eaten more and healthier. 



Thursday, January 8, 2015

Professional Presence Update 2

Reflect on the code review you just completed. 

What did you learn? 

I learned how to make a basic 2D frogger game using JavaScript. I learned about 2D animation and collision detection, both very interesting and useful topics. I also learned a bit about Object-oriented JavaScript, which is very useful as well. 

What are you going to do differently on the next project? 

I am not sure that I can say I am going to do something differently on the next project. I think this project went rather well. Of course it was challenging, but that does not mean it did not go well or that I did not do something the right way. I enjoyed figuring things out myself and seeking help from the internet and other Udacians in order to implement different features. I guess if I could do one thing differently on the next project, I would finish it more quickly than I did this project. I took a couple weeks off because it was the holiday season and I was working still working my other job and wanted to spend time with family. I think it was a wise decision. 

Tuesday, September 23, 2014

Stackoverflow.com, to you I am truly indebted!

What's up folks!

It's been a few days since I've posted anything, I know. I was meaning to make a post a couple days ago, but I got distracted with work and other things. But, I wanted to mention something kind of cool that I recently discovered. 

But, before I do that, I want to give a shout out to my friend Molly Schulstad from Madison, WI. What up Molly! Molly truly is a genuine, kindhearted, inquisitive (hehe) person and is going to make an exceptional nurse pretty soon. See you at work Molly :)

So the thing I wanted to mention is how I recently discovered that programming doesn't have to be as lonely as it often is, especially for those of us who are self-taught. As a side note, as cool as it is to say that you're a self-taught developer, I would argue that you're self-motivated, not exclusively self-taught. Why? Because you are learning from the same resources that schooled programmers are learning from, produced by the same people. The difference is that you don't have someone standing over your shoulder checking in with you. The reason I even bring that up is because I think when someone hears about someone that is self-taught, they become impressed like the person being described is some genius inventor like Thomas Edison. Sure, be impressed by his or her self-drive and dedication, but let's realize that the self-taught do seek out and receive help from professionals in the field via forums, for example. In fact, that brings me to my original point, which is learning programming and the challenge of building real things is much less painful and lonely if one knows how to seek help. One of the most prominent resources for frustrated programmers is a site called stackoverflow.com. I recently used this site to get help troubleshooting the application that I was building. After trying to figure out the issue for over seven hours through online research and manual testing, I decided to resort to using stackoverflow. Within ten minutes of posting my issue on stackoverflow, I received quality responses from three different programmers (check it out). And whatta ya know, I didn't have to read through all three because the solution posted by the first responder worked perfectly. Amazing. I can't express the sense of relief and gratitude I felt when the issue I had been working on for over seven hours was finally resolved in just minutes Perhaps the best way for you to know how I felt would be to do it yourself. I wouldn't recommend trying to get stuck for seven hours, but if you want to learn programming, then you surely have a lot of fun to look forward to if you know what I mean. Now, I know what you're thinking... "Julian, you're an idiot. You waited seven hours to ask for help when your issue could have been fixed in under ten minutes?" Well, well, well. Hold on now, gimme a chance to explain myself. I didn't resort to posting my issue online right away because I don't think that's what a good problem-solver does. I think it's important to troubleshoot everything on my own to my best ability with my current knowledge and see if I can't just fix it myself. If I do fix it myself, then it's a win and a confidence boost. If I don't fix it myself and I seek out help, I still learned a lot in those seven hours of troubleshooting it, no matter how painful they were. I heard a quote by Thomas Edison one time that said something about how it took him over a thousand or ten thousand different approaches before he successfully invented the light bulb (Now, if you're thinking, "Thomas Edison didn't invent the light bulb, moron," then I'd say that argument is irrelevant here). And Edison mentioned that in all those failed attempts, he didn't learn nothing; rather, he learned thousands of different ways of how not to invent a light bulb. Maybe sounds dumb on the surface, but I can sort of relate to what he's saying, because what he's really getting to is that when you fail at something several times, you learn about different parts of the system and what makes certain things tick. In other words, you learn a lot of important underlying things that you otherwise never would if you just got it right on your first attempt. Another reason I didn't want to just go straight to stackoverflow without trying to figure it out myself is because that is frowned upon. I mean how can I expect to carry myself as a professional if I outsource my thinking to other generous, hard-working people. That doesn't seem like a good thing to do. Furthermore, according to the guidelines on stackoverflow (this is not verbatim), questions posted should show thorough research effort. I mean, think about it. Would you want to sit there and answer questions that could've easily been figured out by doing a quick google search? And do you really think the programming community wants the stackoverflow space cluttered with such questions? I don't think so. Anyway, that's why I chose to spend seven hours working on the problem before I resorted to seeking help. To continue on with the particular situation, though, I found it very warming when one responder to my question, a fine gentleman named Santiago, commented that he was so glad to find someone else also using the same technologies as he. He also wished me luck with my project and told me he looked forward to reading about my experiences. That was a very good feeling that he took a personal interest in me, which is what inspired me to blog about this. Thanks again Santiago! I quickly thanked him, checked out his website and even followed him on twitter

In short, stackoverflow is an indispensable resource if you're an aspiring programmer. Make sure to make good and honest use of it. And don't forget to contribute to the community as well by helping others resolve their issues too.

Alright, peoples, I am going to go be productive. 

Have an amazing day! 

P.S. Feel free to leave any comments or questions :) 

Wednesday, September 17, 2014

My first blog post!

Hey blogheads! Thanks for checking out my blog. My name is Julian and this is my first post of all time, well at least for this blog.

Anyway, I am creating this blog for a few reasons. First, I am in the process of establishing an online presence for myself. Having a blog is a great way to do just that. Also, keeping a journal (or blog) is a great personal exercise for many reasons. I'm sure all you fine, intelligent people can relate. 

So, this is a personal blog which is really kind of cool because it means there are no limits as far as what I'm able to talk about and, effectively, what you can discover about me. And maybe even what I can discover about myself. Reading about people from a personal standpoint is so much more interesting, isn't it? I mean, take Abe Lincoln for example. In school, we learned he was the sixteenth president, he wrote the Emancipation Proclamation, he was an abolitionist, and every other factual bit about him. And were we intrigued? Well, I don't know about you, but being inundated with factual information that has no immediate practical application to my life can be a bit much. I mean, I view myself as a nerd that loves learning and acquiring knowledge, but at some point, the FACTS get boring. But, wait. I haven't gotten to the punchline yet. Why did I bring up Abe Lincoln? Well, it turns out the other day I was listening to the audiobook How To Win Friends and Influence People by Dale Carnegie, and Mr. Carnegie speaks about Abe Lincoln from a personal standpoint. Wow, what a difference this made with respect to how engaged I was in learning about one of the great men in history. 

From the audiobook: 

I made a special study of Lincoln's method of dealing with people. Did he indulge in criticism? Oh, yes. As a young man in the Pigeon Creek Valley of Indiana, he not only criticized, but he wrote letters and poems ridiculing people, and dropped these letters on the country roads where they were sure to be found. One of these letters aroused resentments that burned for a lifetime. 

Mr. Carnegie goes on to talk more about specific situations in Lincoln's life that I thought were very interesting. I think I naturally found Mr. Carnegie's coverage of Abe Lincoln more exciting than my school's because he portrayed Lincoln as a normal human being subject to emotions and capable of making mistakes. It's more interesting to hear about how Lincoln became angry with someone and started ridiculing them in a public newspaper than just trying to swallow a set of events with dates, isn't it? What do you think?  

Anyway, I hope this blog is that much more interesting because I will be talking about my personal life in addition to my professional life. 

Oh, so I mentioned that I was listening to How to Win Friends and Influence People on audiobook. Audiobooks are pretty amazing because you can read (technically, listen to) books while you are doing other things. For example, I usually throw on my headphones and listen to an audiobook while doing the chores around the house. You can't exactly read a book and do the chores at the same time, can you? So, I like to think of audiobooks as getting free time. I mean if you think about it, our time is limited. And let's say there are a given number of books that you are determined to read before you die. And let's say we somehow know that it will take you 240 hours to read those books. If you just sit down and read for 240 hours, you will have accomplished your goal of reading the books, but you will have also spent 240 hours of your life that you cannot get back. Now, take audiobooks. Let's say instead of sitting down and reading the books, you listened to your desired books with your headphones while you were doing other simple mandatory tasks such as chores around the house. And let's say the number is the same here, so it takes 240 hours to listen to all the books and have them complete. In conclusion, if you choose to digest the books via audio, you are essentially giving yourself 240 bonus hours, or 10 days of bonus time to use on anything you want because you won't have to sit down and read for 240 hours. Now, I'm sure some of you are thinking that reading a book can be better for the mind because it takes much more mental energy to read than it does to listen and you could miss parts of the material if you are doing other tasks because you could get distracted. Well, that is up for you to decide. I'm not going to argue either way on that. All I know is that I have really enjoyed listening to audiobooks while doing simple tasks. And if I notice that I missed a part or that I started wandering, I just skip back a few seconds and listen to the bit again. Oh, and also, I think it makes doing these otherwise mundane tasks more interesting because you're not thinking about how you would rather be doing something else, because you ARE doing something else -- you are improving yourself personally, professionally, mentally and spiritually. 

Another thing I wanted to mention in this post has to do with a real-life experience I had in dealing successfully with people, which is what Mr. Carnegie's book aims to teach. Currently, I am about a third of the way through How to Win Friends and Influence People.  One of the major things you must do, according to Mr. Carnegie, is become genuinely interested in others. Roughly two years ago (before I had read any of Mr. Carnegie's book), I was in the market for a new phone. I decided to call up my cell phone company and order a phone that way rather than pick one up in person. It turns out the gentleman I was connected with was from Colombia, which is a spanish-speaking country. I don't recall his name, but let's just say it was Jose. Looking back, I realize that the transaction went so well because I took a genuine interest in Jose. The first personal thing I asked him was where he was from. I'm always curious where the people that help you over the phone are at, aren't you? He told me that he was from Colombia, and then I quickly followed up, "Hablas espaƱol?" We exchanged some pleasant brief words in Spanish during which I told him that I was a fan of Shakira, a popular singer from Colombia. I also asked him about his professional aspirations. When we got back to talking business, he mentioned that the iPhone 4S that I was interested in was going to cost me $200 up front. I jokingly replied, "But I want it for freeeeeee." We both subsequently laughed. Just a few moments later, he enthusiastically said, "You know what Julian, I am going to help you out." Oh yeah, you know it. He gave me the $200 iPhone 4S for free. Absolutely free. Well, I didn't pay him any fiat money, but looking back maybe I gave him something just as valuable -- a genuine interest in him personally. I think about it now and it blows my mind how I took an interest in a person over the phone thousands of miles away, a person with whom I'll probably never have any further contact as long as I live, and the effect was so positive and so true that this person was eager to give me a highly valuable electronic device completely free, with no strings attached. 

Alright, I am going to get some work done on my personal website that I'm currently building. See ya later blogheads! Is that even a word? Blogheads? I think I just came up with it. It has a nice ring to it. 

Oh, by the way, here are my social links if you would like to check me out online...


Make sure to reach out to me with any questions or comments.

I would love to hear from you :)