Skip to main content

How do I stay motivated?

Recently I was asked "How do you stay so motivated and persistent in your daily routines?"

I realized that the question wasn't easy to answer. There isn't a one-fits-all solution; each routine has it's own answer.

Before I begin, it's important to mention that I have a wife, a 20 month old kid and a German Shepherd: each require my attention. Also important to mention is that I have 2 programming jobs working for someone else, and I own 2 businesses. My wife has been a Godsend helping me with many rudimentary routines. Three years ago we sat down and evaluated our life. We came to the conclusion that the best course of action would be for her to quit her job and devote her primary attention to family, followed by a position allowing her to work-from-home: This wasn't necessary, however it makes the person feel like they're contributing to the family.

I think the best way to begin is by summarizing each activity:

1. I like to read at least 20 articles each day: 10 articles related to the tech industry, mainly Computer Science; 2 articles in Bosnian (I'd hate to lose knowledge of knowing an additional language); 3 articles from ScienceDaily.com (I find the vocabulary scholarly and somewhat challenging); and 5 articles from current events sites such as CNN, Business Insider, etc.

I enjoy reading so it's really not a chore. It did take practice to get into the habit but now it seems effortless. I wanted to downgrade to 10 but almost had a panic attack and made up the rest of the reading between 11:00pm and 12:00pm on that one April day.

To keep myself motivated I've opened up a Twitter account. Every time I read an article I post a tweet with the article name and website. It helps me keep track for the day since I can easily count how many tweets were sent out that day, and it's an extreme confidence booster to see the amount of reading translated to total tweets. It's also convenient since most website have a Facebook share and Twitter tweet buttons. I opted for Twitter because of the count.

At the time of this writing, I'm at 4,764 tweets. I started keeping track on Thanksgiving Day, November, 2014. Since Thanksgiving, 192 days have passed and I haven't skipped a day: that's an average of 25 articles per day. The reason the number is higher than 20 is for one simple fact: reading more articles leads to reading more articles. Every once in a while I'll find a few more articles that just seem too interesting. I'll read them and it'll mess up my Twitter count from being nice and even. It drives me crazy -just like it's driving me crazy right now- and I'll catch up to that nice and clean divisible by 10 number (In this case I would need to read 6 more articles).

So not only does posting on Twitter help me keep track of the total count, it encourage me to read at least 20 and it encourages me to keep a nice clean number :)

One last thought related to articles; I feel like I cheat if the article isn't lengthy enough.

2. I read 3 different books each day. This one took some time to get right. The first type of book that I wanted to read was a novel; the second type was a web-development related book (since I'm in that field), and the third book was a book on programming in general (something outside of the scope of web-programming). I realized that since my day was packed, I'd have to resort to night. We have a routine for my son: 8:00pm we start his bedtime preparations and at 8:30pm he's in bed. From 8:30pm to 9:00pm is when I read my novel, out loud, to him and my wife (since she's present). Currently it's the Book Of Love by Kathleen McGowan. We finished "The Expected One" not too long ago: I'm a fanatic when it comes to religious books even though I'm an atheist (there's some irony for you).

At 9:00pm I'm out of the bedroom and I open up my Web-Development Programming book. I just finished 2 books this week: Effortless E-Commerce by Larry Ullman and Essential PHP Security by Chris Shiflett. Tomorrow I'm starting on Advanced PHP Programming by George Schlossnagle. I prefer to read this type of book for 1 hour or one chapter, whichever comes later. Most of the time I'm crossing the 10:00pm mark.

At 10:00pm...ish I start with another programming book. Since I've thought myself programming and have a great career, I decided that the only thing left is to get my education. After 6 years of reading PHP, SQL, JavaScript, etc, web-related programming books, I feel fairly confident with picking up another language. I did so with Python and am currently undergoing a smooth transition into Java. To go back to school to learn to program feels like a waste of an education. I decided to go after my passion: Theoretical Computer Science. I'll still have to go through most of the same classes as everyone else, but I'm going to take advantage of each class. I'll be taking classes with professors how have advanced knowledge of the subject that they're teaching, preferably with a PhD, published numerous times, and with great reviews on their knowledge of the topic.

With that rambling out of the way, the second type of book that I'm reading right now is on Java Programming: Introduction to Java Programming by Y. Daniel Liang. That should help me transition into school relatively smoothly. That usually takes me to about 11:00pm, if there weren't too many exercises, but more realistically to about 11:30pm.

For the books, I keep a Facebook Book Log. Facebook has an easy was to search for books and store them to your Book Section of your profile. Once again, I like to see the number go up.

3. The time frame between 11:00pm and 12:00pm is somewhat optional in the sense that I like to watch video tutorials unless I haven't completed the top readings. The type of tutorials that I enjoy viewing at this time are related to computers in general but not related to programming. I'm currently watching a series on Computer Networks.

4. When I was in High School, I was excellent at German. I took 5 classes and even competed in the Governor's Honors Program in GA. I came in second place behind the guy that lived in Germany for 2 years...needless to say he was disqualified after they found out but it ruined my chances of getting 1st place. So I've downloaded an app teaching me the German language vocabulary. When do I have time for this? Full disclosure, when I'm in the bathroom lol. I found that I was aimlessly scouring the internet with absolutely no direction in mind and realized that I could fulfill that time frame with something productive :) So I downloaded an app called "Fun Easy German Learning" and have been steadily learning about 4-5 words each day.

5. I also know the importance of math in more complex programming, especially related to Theoretical Computer Science. Therefore, I'm going to repeat Calculus and Calculus II in college before continuing on to more higher-level classes. I've also started relearning all of the math since Algebra 1: a little boring at times, but necessary in my opinion. Khan Academy has a mobile app and it's great. I'll watch a couple of tutorials between 8:00pm and 8:30pm while my wife is getting my son ready for bed.

6. I also practice writing code for 8 hours each day. That's easy. I found a a couple of jobs that utilize my skills as a web-developer. I take each new skill that I learn and integrate it into the web applications. It makes for more secure, better functioning websites for them, and it gives me plenty of practice.

7. Most important, when I'm with my family, I spend each second fully devoted to them.

So to summarize the summaries, I've dedicated specific times of the day when I do each task. I keep a constant watch on the tweet count. I keep constant watch of the Facebook book count. I remind myself of the South Korean gamer strategy: practice for 16 hours/day since the Americans will practice for 12 hours/day. In a week they would have practiced 28 more hours than the Americans which is more than 2 additional days gained in training each week. Full disclosure, I don't play video games and don't find them entertaining...go figure.

Last but not least, I find something that my dad said to me a long time ago incredibly important: We should never stop improving ourselves.

We should value our knowledge and always strive to improve it.

Comments

Popular posts from this blog

Beginner Java Exercise: Sentinel Values and Do-While Loops

In my previous post on while loops, we used a loop-continuation-condition to test the arguments. In this example, we'll loop at a sentinel-controlled loop. The sentinel value is a special input value that tests the condition within the while loop. To jump right to it, we'll test if an int variable is not equal to 0. The data != 0 within the while (data != 0) { ... } is the sentinel-controlled-condition. In the following example, we'll keep adding an integer to itself until the user enters 0. Once the user enters 0, the loop will break and the user will be displayed with the sum of all of the integers that he/she has entered. As you can see from the code above, the code is somewhat redundant. It asks the user to enter an integer twice: Once before the loop begins, and an x amount of times within the loop (until the user enters 0). A better approach would be through a do-while loop. In a do-while loop, you "do" something "while" the condition

Programming Language Concepts Questions/Answers Part 3

1. What is an associative array? - An unordered collection of data elements that are indexed by keys. 2. Each element of an associative array is a pair consisting of a _______ and a _______. - key and a value 3. True or False? Java supports associative arrays? - True. As a matter of fact, Perl, Python, Ruby, C++, C# and F# do too. 4. What are associative arrays called in Perl? - hashes 5. Why are associative arrays in Perl called hashes? - Because their elements are stored and retrieved with a hash function 6. What character does a hash in Perl begin with? % 7. In Perl, each key is a _____ and each value is a _______. - string - scalar 8. In Perl, subscripting is done using _______ and _______. - braces and keys 9. In Perl, how are elements removed from hashes? - using delete 10. In Perl, the ________ operator tests whether a particular value is a key in a hash. - exists 11. What are associative arrays called in Python? - dictionaries 12. What is a dif

Creating your own ArrayList in Java

Wanted to show that certain data structures in Java can be created by you. In this example, we'll go ahead and create an ArrayList data structure that has some of the methods that the built in ArrayList class has. We'll create 2 constructors: The default constructor that creates an ArrayList with a default size of 10. Constructor that allows an initial size to be passed to the array. We'll also create a number of methods: void add(Object x);  A method that allows you to place an Object at the end of the ArrayList. void add(int index, Object x);  A method that allows you to place a value at a given location. Object get(int index):  Allows you to retrieve a value of the arrayList array from a given location. int size();  Allows you to get the number of elements currently in the Arraylist. boolean isEmpty();  Tests to see if the Arraylist is empty. boolean isIn(Object x);  A method that sees if a particular object exist in the arrayList. int find(Object x);