MIT Course 6.042j: Mathematics for Computer Science

What I did:

As a part of my software engineering course for my Graduate Unschool project, I completed the fall 2005 version of MIT’s 6.042j course, Mathematics for Computer Science. This means I read all of the course materials (textbook/lecture notes/solved problems and examples), successfully solved every problem of every homework assignment (equivalent to a perfect homework score), and synthesized the course into it’s essential elements, shown below. All of my completed solutions and my course synthesis can be found here. I’ve also included a few examples of my solutions so you can see what types of problems I solved, also below. If you want to read more about the learning process, scroll past the examples of my work.

The foundational knowledge and tools I learned/used while taking 6.042j.

Examples of my work

part 1

part 2

How I did it:

The learning method I’ve paired with the software engineering course is essentially an evolution of the learning method I developed and used in college. It is heavily based off of the core concept of Deliberate (or possibly Directed in my case) Practice, and I am evolving it by trying new techniques I found from Scott H. Young’s learning methods, more literature on Deliberate Practice, and other experimental tweaks. Below is an overview of the phases I broke the course into. These phases were completed in discrete chunks:

  • Coverage (5%)
    • I speed read all of the textbooks, and course notes (I try to do this in ~5 hours).
  • Practice (80%)
    • I make each individual problem set into an adaptive set. I then attempt each problem as if it were a normal homework assignment (using the PDF version of the book and in-class examples heavily for references) and make my best attempt at a solution. After completing my solution attempt, I immediately compare it to the official course solutions. If my solution is correct, I cross the problem off my adaptive set and move to the next unsolved problem. If my solution is incorrect, I compare my attempt with the solution, identify exactly where I went wrong, circle the problem, and move forward to the next unsolved problem. When I work my way to the end of the problem set (I call this a run-through), I start again on the problem set, this time going through the circled problems in order (being careful to not attempt the same problem in the same 24 hour period to avoid memorization). I continue to run through the problem set until I have crossed off every problem, then I group my solutions together and move on to the next problem set.
  • Synthesis (15%)
    • I identify every major concept and problem solving tool I used while completing the problem sets and put them in a list. I prune the list so that it only contains essential information, but I also ensure that nothing essential is missing so that the list spans the course (think of it as a basis for the course). I then write this into a one-page synthesis sheet so that the entire course’s information is organized in one place (this is useful so others can learn the course faster in the future, so you can refresh yourself quickly, and it could be used as a crib sheet).

There’s a lot more that goes into finishing an MIT computer science course in your free time than a just a learning method, and how I finished this course is very different than how I started because I constantly experimented with my approach and integrated what worked into my habits. I started in September 2015 after successfully completing MIT courses 6.01 and 6.02 back to back in two weeks each, with a huge plan for how I would complete all of the MIT courses on my list in just six months. I decided to experiment with taking courses simultaneously because it was what I was familiar with (traditional school), and I thought the spacing and connections would help. I’m glad I tried that because I realized that I was very wrong.

Attempting two courses at once divided my focus, and pushed the finish line further back (it should take twice as long to finish two courses if completed simultaneously) which made it more difficult to make progress because I’d experience decision fatigue when deciding what task I was going to attempt each day, and it made what was once a bite-sized achievable short term goal, completing one course, into an overwhelming project, causing me to procrastinate, fall behind, feel guilty, and become avoidant of my work.

Eventually I stopped working on Graduate Unschool completely. I went from regularly spending 6 hours a day 6 days a week making serious progress to going months without programming, forgetting where I stood in each course, and asking myself if I was ever going to follow through on my original intentions. Sporadically I’d have short intense spurts where I’d stay up all night making a new plan and plugging away at problems, but that energy would wear off, and I’d go back to my intellectual drought of pretending Graduate Unschool either didn’t exist or was a relic of my naive past.

Then one day, somewhere between a financial rock bottom and a personal career renaissance I reconnected myself with the original intentions of the Software Engineering Course. I found myself easily slipping into flow states while programming, loving it again, and wanting to get better and pursue a career in developing software, and although I didn’t have a formal education in computer science, I believed that this would fill in the gaps in my knowledge and signal to employers that I truly did “know my stuff”. I started ramping up my skills again, challenging myself everyday, and I eventually found a job as a software developer where I have been working for around seven months now. Just as I’d hoped, my job had me programming everyday, and consistently learning all sides of software development. My secondary intentions for the software course had been fulfilled, and I hadn’t even made it very far through my personal plan. I realized that it was very likely that I could continue to have a career in software without ever completing another MIT problem set or practice interview question. I also realized that I cared deeply about developing hard skills, I loved programming, and more importantly pursuing excellence and improving my programming skills as I started developing software full time. Through some introspection I found that I truly enjoyed the MIT Computer Science courses, and that completing them was important to me even after I’d successfully completed the career transition I originally thought the courses would help me with. With purified intentions, and a serious break from any disciplined self-learning routine, I made a little bit of progress everyday, built some healthy habits, finished this course, and most importantly gained insights into the learning process. My synthesis sheet clearly shows what I learned about math while taking 6.042j. Here’s what I learned about the learning process itself.

What I learned about learning:

  • Attempting two courses or topics at once divides your focus and slows progress and motivation for both. It is faster and better to start one thing, focus on it, finish it, and move forward.
  • Setting up a feedback system where you can see your progress everyday is extremely helpful and motivating. Including a mechanism where your progress measures and acknowledges both efforts and results seriously accelerates your learning. You’ll know exactly what to do when starting everyday, where to go, and when something is difficult and takes multiple attempts before you make any tangible results progress, you’re rewarding the important part of learning a difficult concept, the unseen internal progress that can only be made from serious attempts (both successful and unsuccessful).
  • Avoid large gaps away from your work. Taking a ~ 1 year gap in the middle of this course seriously set me back. It took tens of hours to figure out exactly where I had left off, what work I had already completed, and what remained. Even after straightening all of that out I had to complete a serious amount of redundant work, either because I’d lost a problem, or because I didn’t recognize a solution until I had already redone it.
  • Make frequent progress, however small. My recommendation is to improve your desired skill 1% everyday.
  • Increment the intensity of your approach to avoid overwhelming yourself and creating a system you’re likely to quit or burn out in. My recommendation is to start by completing one pomodoro (25 minute chunk of uninterrupted work) each day at the same time (since consistency matters), so it becomes a part of your lifestyle. At first you will feel resistance, but once it becomes a habit (meaning it no longer takes willpower to complete your pomodoro), you can consider adding another pomodoro, and repeating the habit incrementing process. If, after completing your regular pomodoros, you want to continue, feel free to keep working, but it’s important to realize that 25 minutes today and 25 minutes tomorrow will serve you better in the long term than 5 hours today and feeling too exhausted to start tomorrow.
  • Stream of consciousness work journaling helps your progress feel more meaningful, keeps you focused, and gives you a catalogue of your actions for you to analyze and learn from in the future. At the beginning of every session I write the date, every action I’m taking as I take it, and often what’s going through my head and what I’m feeling as I work. I keep my journaling short, personal, honest, and quick (~20 words per hour, I spend about a minute an hour total on the journal, so it’s not distracting. Instead I note my distractions in the journal so that I can move forward with my work.)
    • Here's an example of my stream of consciousness journal.

      Here’s an example of my stream of consciousness journal.

  • Document your work and keep it well organized.
  • Close your loops. I’ve already recognized the importance of keeping the phases of each course discreet, and in the process of completing this course I’ve realized it’s important to keep the courses discrete as well. This means finish one task before moving on to the next one. The only reason I’m typing out this synthesis (and not avoiding it like I did for the first two software engineering courses), is because I forced myself to complete all phases of 6.042j before continuing on 6.006. Once you’re finished with one task it clears up space in your mind that you can use to fully focus on the next task.
  • Give yourself credit for the work that you do. If someone want to visualize what I learned while completing 6.042j I can send them this page. Find a way to demonstrate your skills so you can benefit from your work.
  • Build your skills through iteration. You’ll be intimidated when approaching new things. Throw perfectionism out the window, finish something quickly, stop avoiding it, don’t fall behind on any of the pieces, get it out there, get feedback on how you can improve a few specific pieces of it (but again, just upgrade it, make it just a little better than your last one, don’t try to accomplish too much in a single iteration), and make it a little better next time. This is how you get better at anything. It takes patience and humility.
  • Break very difficult problems into digestible chunks. Sometimes concepts are so complicated you won’t be able to successfully complete it in your first attempt, and you won’t be able to even completely understand or internalize the solution on your first attempt (meaning you’ll get your second attempt wrong as well). Find your saturation point, find a piece of the solution that you can easily understand today, maybe one concept, maybe one problem solving mechanism, and briefly focus on that while analyzing the solution. Quickly write how it works, then when you reattempt the problem later, start by focusing on what you’ve internalized in this process. Now that you’ve chunked out a piece of the solution, the remainder will be less intimidating. Try the now truncated problem again, and you’ll be surprised how quickly you progress. Learn the problem, solution, and problem solving mechanisms in smaller pieces so you spend less time feeling stuck.
  • How to attempt problems you know you are unlikely to succeed at: Give it your best attempt. Don’t take too long (pomodoros come in handy for this). Make sure it’s a complete solution that can be turned in and be graded (you want to know where you’re going wrong, and why your assumptions were wrong). Don’t leave anything out that was asked for. Set yourself up for success, even if it is unlikely, because then you can close the gap between a successful solution and what you did more quickly/easily. It’s easy to fall into one of two unproductive traps: wasting multiple days attempting to figure something out that is too far outside of your current skill level, and giving up whenever you are uncertain and relying on the solutions to guide you. Instead of focusing on solving problems, instead focus on using problems to measure and push the limits of your skills. If you can’t solve it today, see how far you can get today, then focus on solving it tomorrow, and move forward.

Graduate Unschool Progress Report: Week of 8/15/2016

CourseWhat Was my Goal?What I did...What I learned...How Can I Improve my Approach?Potential Next Steps...
SWE•Attempt 2 6.0042j problems from ps3 √•Attempted 3-3c, 3-4a,b,f
•Attempted & solved 3-3b, 3-4c
•One way to prove maximal is proof by contradiction assuming an element > the maximal element
•DAGs are described by their sets of vertices & edges
•Listen to classical music/OSTs to focus on solving math problems/proofs
•Save longer problems for the beginning of sessions so I'm not interrupted mid-problem
•Attempt problems more aggressively even when I'm completely unsure of what to do
•Attempt 3-4f (6.0042j)
•Work through circled problems on ps3
SOLO•Read & highlight IWT through Ch 7 X•Read and highlighted actionable advice from Ch 4-6•How to set up automatic transfers across financial accounts•Spend one long session knocking out the entire book so I can do more meaningful work•Finish highlighting the book
VSK8•Finish the 10x results podcast √
•Make a vert learning plan X
•Skate the 10ft bowl in McKinney X
•Finished listening to and taking notes on the podcast
•Turned my notes into action steps
•You can deconstruct something by asking why repeatedly and searching for untested assumptions•Do all future note taking with pencil and paper•Do a 5 minute discovery journal on "Why can't I do a 2ft b/s air?"
•Analyze the results for untested assumptions
•Make a learning plan for learning backside airs
•Skate the 10ft pool in McKinney
APPD•Spend 30 min focused on APPD √
•Complete 1% of BF √ (2% complete now)
•Completed 1% of BF•How to compile in XCode•Use the correct BF website•Complete the next BF exercise
Overall•Spend 30 min/day focused on GU everyday X•Spent ≥ 30 minutes on GU 6/7 days•The more I regularly I spend time on GU, the easier it becomes to get started everyday
•Once I knock out my minimum requirement I feel energized and excited to keep going, usually after switching courses
•Work on GU every single day, no matter what. This way it is no longer is a choice, just a part of my life•Work on GU everyday, even if it's only for 5 minutes

Notes: After reading How to Fail at Almost Everything and Still Win Big I’m testing the system of making progress on Graduate Unschool a no-exceptions daily habit. This is what made my 1% a day course work so well in the past, uninterrupted consistency, and I know once I go a few weeks without missing a day this project will require significantly less willpower.

Residue of my progress this week

Residue of my progress this week

Graduate Unschool Progress Report: Week of 8/8/2016

CourseWhat Was my Goal?What I did...What I learned...How Can I Improve my Approach?Potential Next Steps...
SWE•Work for 30 minutes √
•Attempt a problem from 6.0042j √
•Start LoS √
•Attempted 3-2b (format problem set #-problem #)
•Read 1/3 of LoS's intro to rapid learning
•Attempted & solved 3-2c
•Spent ~1.5hrs focused on SWE
•A topological sort on a partial order x is a total ordering y s.t. a x b => a y b
•Construct topological sorts starting with the min & max, then fill in every element from the set
•Make connections to everyday life to accelerate learning
•Dilworth's Lemma: For every t, every partially ordered set with n elements has either a chain of size ≥ t or an antichain of size ≥ n/t
•Continue moving forward (it's going well)Attempt 3-3c (6.0042j)
SOLO•Spend 30 minutes focused on SOLO √
•Read & synthesize actionable advice from IWT for 30 minutes √
•Read and highlighted actionable advice from halfway through Ch 2- most of Ch4 in IWT•The purposes of using retirement accounts (IRA, 401k) are the tax benefits & special matches from employers
•Gradual habit changes are more sustianable
•Speed read the book faster•Finish highlighting Ch 4
VSK8•Spend 30 min focused on VSK8 √•Listened to 'How to 10x results', took relevant notes for my deconstruction phase•Constantly testing assumptions is what allows you to find learning hacks•Listen to the podcast at my workspace, not on the couch•Finish the podcast. Follow insights in my notes.
•Make a learning plan for learning backside airs
•Skate the 10ft pool in McKinney
APPD•Spend 30 min focused on APPD √
•Complete 1% of the bitFountain app course (BF) X
•Completed the opening & closing panes exercise on BF•How to perform the basic text editor display functions on XCode•Start XCode before journaling (long start up time)•The next BF exercise
Overall•Spend 30 min of focused time on GU everyday X•Spent ≥ 30 minutes on GU 4/7 days
•Spent ≥ 3.5 hrs (= 30 min X 7) on GU over the week
•Started & maintained a daily GU work journal & a daily progress report
•The journaling & daily progress reports make me feel more focused•Use fun activities to get me started (MIT problems/SOLO work)
•Batch together tasks with large start up times (APPD)
•Spend Sundays making these progress reports (I'm writing this on Tuesday)
•Decide on my weekly goals ahead of time
•Spend 30min/day focused on GU everyday

Notes: Although I’m still not working very much I feel like I’m starting to actually make real progress. It’s been 6 months since I’ve correctly solved a problem from an MIT problem set, which is really motivating. I realize that I’ve been procrastinating on days where I’ve planned to work on the app development or skateboarding courses, and that I really look forward to working on software engineering and the solopreneurship courses. I’ve been spreading my time equally over all the courses so far, but as I try to solidify the habit of dedicating 30 minutes each day to Graduate Unschool I might want to focus on the activities I’m most excited about until the time commitment becomes a natural part of my life.

My big win of the week. The powerset is partially ordered by the "subset of" relation.

My big win of the week. The powerset is partially ordered by the “subset of” relation.

Graduate Unschool Progress Report: Week of 8/1/2016

CourseWhat Was my Goal?What I did...What did I learn?How Can I Improve my Approach?Potential Next Steps...
SWEWork for 30 minutes √Decided on objectives & course materialsWhat I'll be doing and whyAttempt an MIT problem and read/experiment with the 'Learning on Steroids' online course (LoS)Start LoS. Attempt a problem from MIT's 6.0042j course
VSK8Spend 30 minutes skating vert √Learned to skate my new vert board. Attempted to skate transition again. Filmed my starting point bs airVert skills atrophy quicklyHave a plan so I don't get confused or discouraged when I get to the skateparkStructure the learning approach using Tim Ferriss' 'How to 10x Your Results, One Tiny Tweak at a Time' podcast.
SOLOWork for 30 minutes √Decided on mini-courses and objectives. Clarified the learning method.Action is the underlying learning method. What I'll be doing and the underlying method. A course a week is not a goal, action matters.Compile all actionable tips into a journal. Cross them off as I complete themSynthesize 'I Will Teach You to be Rich' (IWT) into an actionable list
APPDWork for 30 minutes XNothingForce myself to start and complete the smallest possible section of the app course I'm takingGet 1% further in my online app developer course
OverallSpend 30 minutes a day XPublished 'Unquitting Unschool'. Made structural changesThe hardest part is getting started. Once I start the 30 minutes flies by, but now my willpower is mostly exhausted with starting.Make a progress report format (this). Keep a general Graduate Unschool journal. Update progress report fields every time I workSpend 30 minutes a day of focused on Graduate Unschool (GU) everyday

Notes: I feel like I didn’t make as much progress as I would have liked, but I made more progress than last week, and I identified a few changes I can make to improve next week. I understand this is not impressive, but right now it’s about sticking to my plans and moving forward, not impressing anyone.

The peak of the highest backside air I could land. The starting point for the vert skateboarding course.

The peak of the highest backside air I could land. My starting point for the vert skateboarding course.

Unquitting (Graduate) Unschool

This is a follow-up to my first post on this blog, the announcement of my Graduate Unschool project. I am writing this not with the excitement, enthusiasm, and optimism that shines through my original post, but instead with a lump in my throat, a knot in my stomach, and a deep sense of shame and embarrassment. I’ve tried to write other articles for the past few months, but I always felt somewhat dishonest for not addressing what’s going on with the largest and most ambitious project I’ve ever attempted (the sole thing I intended to base this website around) especially because it went so differently than I originally planned or expected. This is the article not the article I wanted to write. This is article I needed to write.

First, a little background on what I attempted. A year ago I decided that instead of attending graduate school I would create my own graduate school, make the courses up, hold myself accountable, and be extremely transparent about the process. I always seek to take on more and more, and after feeling bored and unchallenged at the end of my college experience, I decide to make this the most intense and difficult endeavor I’ve ever attempted. I designed five different courses, each with a unique and extremely difficult end goal, and each paired with a different learning method. The purpose of the project was to simultaneously learn about the topics I was most interested in, and to test and develop new learning methods, making the focus of the project primarily on learning how to learn. Below I have listed the course topics, goals, and learning methods, as well as where I currently stand with them.

Course Topic

Learning Method

End Goal

Current Standing

Software Engineering

Recursive Learning/ Deliberate Practice

Complete 9 MIT CS Courses, 150 Programming Puzzles from CtCI, and develop 2 board game AI Systems

Completed 2/9 MIT Courses, 2/10 problem sets on 6.0042j, 4/7 problem sets on 6.006, and <10 CtCI puzzles. No progress on board game AI.

Vert Skateboarding

DiSSS

Land a 1-2 foot high Caballerial on a ramp taller than 12 feet

Landed a 1 ft backside early grab in an 8 foot bowl

Solopreneurship (Solo-Entrepreneurship)

One Course of Action each Week

Complete 26 “homework assignments” based on self-improvement media. Create 26 actionable one pagers

4/26 one pagers (~15%)

App Development

Antifragile

Build an iPhone app and distribute it through the AppStore

Very Little Progress

Secret Course (Social Skills)

1% Improvement a Day

Improve my social skills by 515%

Complete

I gave myself a hard deadline of six months for the project, and intentionally chose goals and benchmarks that I believed would be completely impossible to accomplish in that time frame. I chose to do this because I saw getting close to perfect scores on tests and in college classes as a sign that I wasn’t pushing myself enough, that what I was attempting was too easy for me. Success to me has never been defined by how well I’ve performed, but instead whether or not I tried my absolute best, gave everything I had, and put my whole heart into it. Graduate Unschool was set up so that I could leave everything on the table and still potentially come up short.

Here’s what ended up actually happening. I was misled by my passion to start early. I became achievement focused instead of process focused and funneled my energy towards accomplishing the end goals instead of learning as much as possible. I stopped living in the present; I moved from wanting “to do” to wanting to “have done” my tasks (I didn’t want to sit down and do another MIT problem set, but I wanted to have completed the software engineering degree). I never expected anyone to follow, care about, or even read my progress and articles, (before announcing Graduate Unschool I’d spent almost a year blogging, and had never had more than three people read a single article), but when I realized that more people than I regularly have social contact with were keeping up with the project, I felt a pressure to perform. A pressure to not fail. Instead of trying my best simply to move forward everyday, I took my impossible goals seriously. I worked myself to complete frustration and exhaustion for a few weeks, then burned out. I felt guilty about my failure. I avoided the project. I made unsuccessful plans to catch up in secret, and I found myself with a guilt driven avoidance of the topics and learning methods I’d originally wanted to focus my life around.

Looking back it’s easy for me to speculate as to why this went so wildly different than I planned: I never even explored the learning methods because I was so caught up in accomplishing things, I was neither public nor transparent about any of it, but I’m ready to move forward and learn from this failed learning project.

I’ve given this a lot of thought and the truth is, I still care, I still want to learn, and I think I have partially purified my intentions. I’m going to take what I’ve learned from this past year and use it to approach the project in a healthier, more adaptive way. Instead of having harsh deadlines to fall behind and beat myself up about, I’m implementing the most powerful learning method I encountered during the project, consistently improving 1% a day, across the project as a whole. This keeps me grounded, it’s achievable without being easy, and moves me forward fast (at an exponential growth rate) without becoming overwhelming. I’m going to shift the focus off of myself and the end goals, and refocus it on learning about the learning process, and what new insights I gain as I progress through the project each week. This means I will no longer have to toil, writing a giant self indulgent article about my emotional state every time I give a Graduate Unschool update. Instead I will be posting weekly progress reports, regardless of how much progress I end up making that week, so that I can actually be public and transparent without becoming ego-protectant and narcissistic, as I’m afraid I became last time. Finally, there will be structural changes made to every course and the project in general, but these changes will be adaptive. They will happen as I move through the courses and learn more. I’d rather start moving in the right direction today than wait until I devise the perfect plan to start.

There was so much about college that I loved. The moments where I finally figured something out and dropped whatever I was doing to test it. The long hours of complete engagement in the problem solving process. The days where I unexpectedly acquired a new skill. The idea that there was always something left to learn. Graduating college was the truly disappointing part, but I think it’s because I was in it for the journey, not the destination. When I arrived I wondered why did I do all this work? Was this a giant waste of time? Did I even want this? I think I finally understand the answers to these questions. I did the work because I enjoyed doing the work. Time that you spend engaged and working on yourself is never a waste, even if it doesn’t turn out the way you expect it to. No, I never wanted to arrive anywhere, I was just enjoying the journey.

My learning journey will never end, and Graduate Unschool should be about making the journey as enjoyable and engaging as possible. I need to love what I’m doing everyday and not want it to end because even when I reach my foolishly intense end goals I don’t want to stop learning. This time I never want to arrive. I want to spend the rest of my life as a student. I want to hold true to the tagline of this website, learning full time, but I want to make it clear that the goal is to learn, not to learn full time for a couple of years then retire. I want to learn how to learn so that I can learn more. This is my manifesto for a lower pressure, healthier approach to my creative projects and my life in general. Consistency over intensity. Purpose over passion. Iteration over perfection. Humility over ego. Honesty over silence. Doing over being. Wanting over needing. Working over talking. Giving over expecting. The present over the future. Loving over infatuation. Unquitting unschool.

"When we lose we have a choice: Are we going to make this a lose-lose situation for ourselves.... Or will it be a lose ... and then win?" - Ryan Holiday

“When we lose we have a choice: Are we going to make this a lose-lose situation for ourselves…. Or will it be a lose … and then win?” – Ryan Holiday

Solopreneur Mini-Course #4: Creating a Deadline Calendar

Everyday I have ideas for projects I want to pursue or articles I want to write for my blog.  Some of these ideas have stayed in the back of my mind for months, and I’ve either never gotten around to completing them, or (for most) even starting them.  Writing an article for my blog always seems like it will be a lot of work, work that doesn’t have a straightforward payoff, and work that nobody is expecting me to do except for myself.  My blog was updated sporadically at first.  I would go months without writing, which would lead to me feeling guilty about not writing, causing me to put more pressure on myself to write really good articles.  This pressure would build up to the point where I would eventually trash partially or fully completed articles because I felt they weren’t as good as I needed them to be.

The sporadic updates of my blog. A black square means I posted something on that day, grey means I didn't.

The sporadic updates of my blog. A black square means I posted something on that day, grey means I didn’t.

Things changed when Ryan and I started the Paleomodern Polymaths podcast, which I regularly release once a week.  My blog started gaining more consistent and reoccurring popularity, particularly around the episodes.  This made me more comfortable updating my website, and allowed me to put less pressure on myself to make perfect content.  I started writing more, trying more new and different things, improving, and began feeling a genuine sense of fulfillment and enjoyment around working on my blog.  Around the same time my blog took a dramatic, and unanticipated (but not unappreciated) jump in popularity.  I went from being lucky to break 100 page views in a month to breaking 1000 in December, which was partially due to one of my posts trending on stumbleUpon, something that was and is far outside of my control.  Diving deeper than just the numbers, I noticed the more I put out, the more often people would find, explore, and actually read or listen to the articles and podcasts on my website.  I went from one or two people asking about my blog every month, to regularly getting recognized in public by people with whom I hadn’t connected with in years (or sometimes ever), who had read, listened to, or enjoyed something on my website.

January came and went, and I wrote more than ever before, but still maintained a desire to produce more and to grow my web traffic.  Recently I’ve been very influenced by Sam Hyde of Million Dollar Extreme, and Ryan Holiday, both of whom are absolute masters of their craft, and are unexplainably prolific.  They put out so much incredible content every week, that it’s hard for me to even keep up with reading and watching it all (and I rarely do).  As an attempt to explain to myself how they do it, I came across the idea that really prolific and consistent artists often use deadlines to get accomplish more.  I’m a firm believer in Parkinson’s law, which, as explained by Tim Ferriss in The Four Hour Work Week, “dictates that a task will swell in (perceived) importance and complexity in relation to the time allotted for it’s completion.  It is the magic of the imminent deadline.”  The podcast came out every week because I gave myself a deadline to put it out every week, and its quality only got better as I got used to actually working on it, putting it out, getting feedback, and repeating, instead of being a perfectionist and mulling ideas and first drafts in my head for months, hoping it would lead to the right blog post.  From a combination of the ideas I mentioned above, I decided to make a solopreneur mini-course as an attempt to be a more prolific artist.  As silly and arbitrary as this might sound, I also set a stretch goal around the results of the experiment; 1000 page views in the month of February.  I wasn’t sure if it would be possible, but I gave it a shot following the one-pager I outline below.

Solopreneurship Mini-Course #4: Using Deadlines to Consistently Output More

Before the Month (or other time period you are planning on being prolific over) begins:

Get a calendar and mark off what you want to release on the corresponding days.  These are your deadlines.  It’s important to be specific about what you’re releasing (e.g. Episode 10 of Paleomodern Polymaths, a College Article), so that you are clear about what you want to output, without being overly specific (e.g. A podcast episode where I ask Raymond about overcoming his fear to ask Andrea out, an article titled ‘What To Do When You’re in Class’), so that your constraints aren’t too narrow and you are free to be creative within a limited space.  This also allows you to complete tasks even when factors that are outside of your control are present (Ryan deleting his podcast audio, forgetting the most impactful scenes of Knight of Cups, etc…).

An additional tip is to have deadlines for similar objectives occur regularly, like releasing a podcast every Thursday, a college article every other Monday, etc…

Setting up the deadlines

Setting up the deadlines

At the Start of the Month:

Put the calendar on your wall, where you, and others will be able to clearly see it.

During the Month:

Cross off tasks when they have been completed, and again when they have been delivered (in my case posted to my blog or sent to my e-mail list).  Also cross the days off as they pass.  Use different colors or shapes to cross off the different days, so you can clearly keep track of your progress.

Using the calendar, notice I'm getting ahead on a few projects because I see the whole month, instead of just the next blog post

Using the calendar, notice I’m getting ahead on a few projects because I see the whole month, instead of just the next blog post

The Day you Have a Deadline:

For simplicity, it’s important to ensure that every day’s deadline occurs at same time.  My deadlines are 5pm of the day I have marked on the calendar, because refusing to work after 5pm made me feel more free when I was in college.  Staying up late to work is stupid.  The whole point of deadlines is to use them as a tool, not a prison.  The deadlines are rigid, when you hit the deadline you need to deliver your work no matter what state it is in.  Imagine you are in a college course that often gives partial credit, but does not accept late work.  You need to turn something in, and understand that after the deadline passes, it is in it’s final state and out of your hands.  If the deadline has no stakes and is not rigid, it isn’t real, you won’t follow it, and this course will not work.  You need to have skin in the game.

The end result, finished early

The end result, I finished early

Now, I’ll review the mini-course.  I followed the one-pager above for the month of February, where I planned on releasing 2.25 blog posts a week for the entire month including: four podcast episodes, two solopreneur mini-course articles, two college articles, and one personal article.  Up until this point, I’d never released more than 6 posts a month, and I’d averaged 1.75 posts a month since starting the blog, so this was certainly an ambitious goal.  Following the calendar, I did exactly what I set out to.  I never missed a single deadline and I never put out any incomplete pieces of work.  In the first week I cut it close a few times (I posted a few final drafts at 4pm), but pretty quickly I started to get on top of my game, and I wanted to finish articles early to avoid the stress of an impending deadline, so I decided to finish a podcast episode a day or two early, and schedule it to be automatically posted at the deadline.  There was something incredibly satisfying about crossing the tasks off my calendar.  I could see myself progressing, and would receive a small rush of dopamine and publicly visible satisfaction for my work (this is why the calendar is posted where others might see it).  It was even more satisfying to cross items off much earlier than the anticipated deadline.  If I finished something an hour early I would be relieved it got out, a day early I would feel responsible and free, a week early and I would feel like an efficient content producing machine.  When I pushed things out ahead of schedule I would feel not only as though the blog was my job, but that I was killing it at my job.  I felt like a high performer again, a feeling that drove me to achieve much of what I achieved in college.

After front-loading a project I started to experience a runaway positive feedback loop; finishing a task early would give me more time to finish the next task, which would then make me feel good about my work, causing me to want to do more work, and finish the next task even further ahead of schedule.  At one point I looked at my calendar and saw that I only had a few tasks left, which motivated me to finish the work for the entire month early, so I could have everything on my calendar crossed off and I could close the book on the month of February.  Viewing productivity as simply completing the tasks one sets out to complete in the time they want to complete it, this course was extremely successful at making me productive, more so than anything else I’ve ever tried for the blog (so far).

What about my biggest fears?  If I write too much won’t I run out of my reservoir of writing ability and energy (or maybe even things to say), and as a result will the quality of my work fall?  Going into the experiment I was concerned that I would put out some lower quality pieces of work simply because I was producing more work.  I thought maybe I’ll release something I’m not proud of and that will motivate me to work harder so that it doesn’t happen again in the future, which would be a built-in motivation mechanism for the deadline system.  This is a good time to explain that February was probably the busiest month of my post-college life, outside of the website.  I traveled to Dallas and Palo Alto for the first 9 days or so of February, during which I had absolutely no quiet time to work on creative projects.  I went to Phoenix two or three times to visit friends, and I have an on/off work philosophy, which means I work when I’m at work, and with friends I am simply with friends (not working).  I also discovered early on that I would be moving to Dallas, so I went through the entire moving process, including packing all of my belongings, tying up most of the loose ends I had in Tucson (I still have a few left), and driving to Dallas before March 1st.  I also continued to work to prepare for the accelerator I was moving to Dallas to participate in.  I thought Pryzm’s acceptance into the program implied that my lens would be manufactured sooner than I’d previously anticipated, so I wanted to accelerate the progress of my design.  Normally all of that would be an excuse to push all of my blog goals back a month, but I actually found myself working harder, and producing better work than I ever had before (for the blog).  I started to view crossing items off my calendar as a game, which made it fun to chip away at my goals whenever I had a few spare minutes (I wrote the StumbleUpon article at Chris’ house the day I got off the airplane, and wrote 3 college articles on the flight home from San Jose).  I was writing more frequently, which gave me more experience writing, and allowed me to improve as a writer.  As obvious as this sounds (I practiced writing more, which made me a better writer, which led me to write better articles), I legitimately thought my work would be worse if I put it out more frequently.  I fell victim to this perfectionist delusion that we have the perfect ideas deep down in our heads, and if only we could find the perfect mood, environment, headspace, and block of uninterrupted time it would simply flow out of us.  This mini-course helped me realize how delusional these thoughts were and are.  You get better at everything through practice, so forcing myself to practice more, especially in a way in which I receive feedback, (like publicly posting articles and sharing them to my friends on Facebook) should (and will) make me a better blogger, podcaster, and writer.

I started to feel the effects of this practice early on, and by the end of the month I was able to edit and post podcast episodes in half the time it had taken me a week before, and my writing was clearly improving, to the point where my friends were reaching out to me to tell me my that “my new stuff was getting better”, a compliment I value much more highly than “you are a good writer” (or another ‘fixed mindset’ piece of feedback).  In the end that’s really all I hope to experience with my creative projects, continuous improvement, not a delusion of a project suddenly (or ever) becoming “good” or “perfect”.  The theme of my website and my life is learning, and if you aren’t making progress you aren’t learning.  This experiment put me in the exact place I want to be with my website, a clear idea of how to improve (publish more), and some objective feedback that shows that I’m improving.  I achieved both of these through this course, making it undoubtedly a success.  In short, using a calendar with deadlines caused me to complete more tasks than I had before, put me wildly ahead of what I thought I could accomplish and when I could finish it by, improved the quality of my work, reframed deadlines from intimidating and anxiety inducing to a fun game-like challenge, and demonstrated to me an effective learning method.  Will I continue to use it in the future?  I’m buying a new whiteboard today so I can plan out the rest of April.

Also, I received more traffic in February than I ever had before (or since) on the website, by a significant margin, despite the fact that I had absolutely no unexpected traffic spikes.  Instead, it was all pure organic traffic, from people intentionally clicking on and reading my articles.

Objective results

Objective results