Personal Challenge #2, Day 7

Every second accounted for, 7 days later. What did I learn, achieve, and what will I continue to do/change..

The challenge revealed a way to achieve maximum efficiency. Through planning out every second of my day, I found that after a couple of days, I had done more than weeks of slowly inching forward. Planning is key, and having my entire day scheduled gave me something to fall back on when things get tough.

This is how I planned out my day, after I woke up I would immediately challenge myself to get out and run. Then, I would start working on Android Development until lunch, and I would go back to Android Development with 30 min breaks after each 2 hour session. The breaks were probably the most important part, and I had to rough tune along the way to account for over scheduling and under scheduling.

The reason behind having multiple breaks thrown into my day, was to first give my brain a breather and also make it easier to follow through (less stressful). Breaks also helped when I was around the 5th or 6th hour of Android Development for the day, and I was feeing hungry. I would look up at the clock every 10 minutes and having that break coming up, I felt like I didn’t need to cheat, and it made it easy to continue until the dinner bell rang.

When things got tough, and I wanted to stop, the schedule I spent so much time setting up gave me support to fall back on, and that helped me a lot during the challenge. However, the scheduling didn’t always go as planned. There were multiple times where I would be really energized to code, but I scheduled to long of a break. Out of sheer, wanting to stick to my plan, I didn’t come back until the exact minute, but I could see how that could be an area to improve on.

The biggest mistake I made, was changing my schedule too lightly. Of course, situations will arise where moving around time slots will be necessary, but not shortening or stretching activities. A proper reason to change something around mid day, would be when some unforeseen obstacle pops up. An example, I had to run up to my college financial aid department, to fill out some paperwork, and the time I gave that entire process was much less than the actual time it took. That’s not the biggest issue, all I had to do was move the time slots around to make up for that overlap. Here is a rough look at what my days would consist of.

Typical Plan (General Outline w/o specific time slots):

  • Wake up -> Run -> Shower
  • Grab a snack -> Start 2 hr Android Development session
  • 30 min break -> 30 min Code Review
  • 15 min break -> Start 2 hr Android Development session
  • 30 min break -> 30 min Code Review

And so on…

Reflecting back on the past 7 days, I can tell you that it was not all smooth sailing. The challenge did require some pain, but the pain was worth it. Everyday, I stuck to my 6-8 hr planned Android Development I felt empowered. When I looked back at the week and I had run 8.5 miles from start to finish, I felt accomplished. Having a detailed plan of attack, with every second accounted for, afforded me the opportunity to make tweaks and follow my progress a lot better. I also, got my hands dirty in a whole slew of stuff like Navigation Drawers, interfacing, apis, SQL/PHP, and using built in SQLite to create a database inside the app rather than using XAMPP with SQL/PHP to host a server that would house my database then using GET requests to query the database. Transitions are fun.

I’m in the middle of moving back home to Portland, Oregon so I don’t think I’ll be able to continue this challenge until I get reestablished up there. However, I do want to continue pushing myself in this manner. It’s only been a week, but I could tell after the first 2 days that doing this everyday multiplied by a couple of months would be lightyears ahead of my current knowledge.

John Sonmez (Simple Programmer), said “Find what will get you to your goals 100% and do that. People have told me that if I can run 20 miles, I can run a marathon (26 miles). However, if I can run 30 miles then 26 miles will be easy, and that’s how I 100% get to my goal of running a marathon.” This spoke a lot to me, and is partly why I decided to do this challenge. I was seeking a way to 100% reach my goal and take hope out of the equation. My goal is to become a working software developer, and this is how I get there.

Starting off as a Programmer

The difficult part is not having direction, and not having direction stems from not knowing what direction leads to what end point. You’re completely new, everything is being seen and read for the first time. So you do what most new programmers do and turn on YouTube. You play your first video about a language you heard mentioned a few times, and you follow along, take notes, and get some idea about what programming is.

My mistakes..

The biggest mistake I made when I began my current journey was not researching the terminology. What does full-stack mean? What does front-end, back-end, web developer, web designer, and *insert language* developer mean? So I did what I described in the first paragraph, I turned on YouTube and played a video about JavaScript, all the while not knowing that some concept of HTML (used for displaying content on a website) and CSS (used for making that content look good) was required to get the most out of what I was learning. Yet, I didn’t understand this so I decided to take a 14 hour course, and by the end of it I had no idea how I would go about implementing anything I learned (where does JavaScript even go!?).

Now, this is where I made an even bigger mistake. I stopped. I looked at this OOP jargon (Object oriented programming) I took notes on and it made some sense, but it didn’t transcend past words on a page. And thus I switched to a different language, SQL (think databases). I decided to learn SQL because there was about to be job openings at my work. Although, I didn’t end up getting that job I made a similar mistake to when I tried to learn JavaScript. I was back to understanding the syntax, but not able to make those words on my notebook into a database (again, where does the database go!?).

The solution was easy..

I tried to do too much from reading and watching. When the entire time I was taking notes, I could have built something and been learning at the same time. The biggest break through for me was when I started learning while building projects. And even though I didn’t know everything and got stuck a lot, I had something to show for it, which kept me motivated. It’s great to build your toolbox of knowledge by reading about the way something works, but beware of burning out. After, I had invested lots of time into JavaScript and had no real way of showing someone what I learned, other than describing what “could happen”. I lost the reason for why I started in the first place. So I began researching how other people learned to code, and that’s when I came across the best way for me. Build a project, while you learn the language. 

You can start building a project with zero prior knowledge using lots of different sources, but make sure you think about out how committed you are. If you are anything like me, you love free content, but you don’t want your time to be wasted. So my recommendation, is Udemy.com.

Udemy, isn’t super expensive as there are always deals, but it goes back to my earlier point. You don’t want your time to be wasted. If you are willing to invest in yourself then you should be fine spending a small amount of money. Free sources are great, but I learned more from a $20 course on Udemy (that had 47 hours of content) then ALL of my earlier sources combined. And by the end of it, I had a couple of projects to be proud of.

Final thoughts, JavaScript isn’t a bad starting point, so don’t walk away thinking that. It was just the way I went about learning JavaScript that was flawed, same thing with SQL. And if you don’t know what language to start with, look up “Top programming languages for 2016” and spend a little time researching salaries, openings, and what those languages primarily build. Let google searches guide your hand, and once you decide on a language. Find a course and start (whether it’s YouTube, Treehouse, Udemy, or any other site). The point is, you have a desire to program most likely because you wanted to build something. So build something, and learn while you do it!