First off, I just want to say congratulations to you, future/current/former Cal Poly CSC/CPE/SE Student.

You will get / are getting / have gotten one of the best values in college education, bar none. Cal Poly grads come out of gate with real hands-on project-based experience, debugging skills, and a good general understanding of what lies beneath the surface of the terminal / IDE. You also picked one of the best degrees to actually pay back your student loans. The people you attend classes with, work late into the night with, and socialize with are going to be some of the movers and shakers of your industry in the coming years.

But you know all of that already.

What you don’t know is that after you graduate, you will enter a “Time Warp”.

Let me explain.

If you are even remotely interested in graduating on time, you probably have a 4 year course plan. Here was mine:

alt text

This was based on the 2009–2010 course catalog. I put it into google sheets so I could better manipulate which courses could fit where. Yes, I actually took ballet. I spent many HOURS procrastinating by planning quarters or years ahead in my college career. It was addictive. I was addicted to the feeling of “optimizing” and “planning ahead”, even while I had work to do that was due that week. That I could move these units here or there to better optimize my future chances of success, almost like playing Tetris.

Then I stopped.

Why?

I graduated the Spring of 2014 and never had to take another course for credit. No more curriculums. No more worrying about flowcharts. No more incremental units to optimize and fit into nicely timed blocks of 10 weeks.

What did this mean? No more changing schedules and getting to learn something completely new every quarter.

One quarter my schedule looked like this:

alt text

And the next one was like this:

alt text

I’m sure many of you have a similar experiences with class schedules changing radically quarter to quarter. College schedules are nice in their own way: breaks in-between classes, classes starting later in the day, getting done with class early in the day, and even sometimes complete “days off” of class!

Now contrast this with my current schedule:

alt text

Please note that I work remotely (maybe worthy of another post), so this doesn’t quite factor in commute time. In the Bay Area, your door-to-door commute time could be upwards of an hour or more just one way. A “good” commute is 30 minutes one way! Note that this “good” case is an hour a day in total, 5 days a week. This means if you are lucky, you are spending 10 full days out of a year in commute time! I’ve made lifestyle changes to minimize that time and when I have to, I use that time wisely.

Here’s an example of a schedule with an hour-long commute:

alt text

One of the hardest things I had to get used to when entering the professional world was the feeling of being “at work” 8 hours a day. If you’ve had an internship or two, you’ll have had some sense of this. But even internship days are broken up by ping pong, lunches out, HR events, etc. As an intern, you likely aren’t tasked with any mission-critical functionality, so it is unlikely that you have to spend any late nights in the office under pressure to put out fires. The main purpose of an internship program is for you to succeed and give you a desire to come back and work at that company.

Once you are hired on your first “full-time” job, things subtly change from when you were an intern. In the first three to six months, there’s a bit of a learning curve where you are expected to ask your senior Devs / PMs / Managers / etc lots of questions to get adjusted to the development environment, team culture, and generally “learning how to adult”. You may feel like an impostor, but that’s okay! It is part of the process.

After that initial three to six month adjustment period, your only objectives after that are to make and effectively communicate significant progress on whatever you’re working on week-to-week, and meet deadlines as they come up. That’s it. Do those two-ish things and you’ll be a successful, gainfully-employed developer for the foreseeable future.

This is where the Time Warp happens: right when you become content, and settle into a routine. Your life is now chunked up into “product releases” instead of college “quarters”.

The important differences between the two are:

  1. Your schedule doesn’t change much after every release

  2. There won’t be vast differences in what you’re working on. You won’t be working on Machine Learning instead of Networks, OS instead of Mobile Dev, etc. Instead, you’re going to be focusing in on further mastery of your role (Mobile, Front End, Back End, DevOps, etc).

Maybe you think you can outsmart point 1 by taking a day or two or a week off after each release. Great, sounds like a step towards a healthy work-life balance! When you’re done with your PTO, it is “back on the treadmill” and on to working on the next release, further deepening the skills of your role à la point 2. This treadmill is how days bleed into weeks, weeks into months, and months into years. One day you’ll wake up and you’ll be 27-dreading-30 and you, dear reader, will also be writing your own alumni blog post :D

So what does this Time Warp mean? Let me be clear: I am by no means disparaging or saying anything negative about corporate life. I quite enjoy it and it has enabled me to do many of the things I’ve always wanted to do inside and outside of work. I am merely describing my experience of what the first 4 years of being a professional software developer feels like.

The Time Warp is going to happen, so you may as well set your life up in such a way that you’ll be proud of what you’ve done with it. If you come home after work and watch Netflix and scroll through InstaFaceTubeChat every night until you go to bed, your life will look different than someone who goes to the gym after work, or participates in an art, craft, or other hobby that builds some sort of skill over time. Generally, Mastery of a skill is more satisfying than doing a more idle activity like binge watching TV.

Side note: I’ll admit even watching movies and TV shows can be a “skill developing” hobby if you treat the film like a text and closely “read” it, like one of my favorite youtube channels/podcasts does: Wisecrack.

If you do some “Thing” that is structured and social that you find satisfaction in outside of work, and you can find “work-life balance” on a daily basis. You won’t feel like you need a long vacation (but you should still take one!) to feel refreshed and re-energized. This Thing can also be called a “Third Place”.

It is important to note that this Thing is not a romantic relationship! You may or may not find one in the process, but that isn’t the goal. You will need this Thing to be a permanent, unshakeable part of your life; something you can always do and lean on whenever life gets hard for a period of time. I’m not saying that you can’t get personal fulfillment or support out of a relationship — you definitely can! What I am saying is that it would be an unfair expectation to put on an person to give you personal fulfillment, socializing, and relief from stress 100% of the time. You have to be able to manufacture your own personal fulfillment. As my freshman year college roommate once wisely stated, “You have to live with yourself for the rest of your life. You may as well learn to be your own best friend.”

“But Mike!”, you say, “My passion and personal fulfillment come from Software Development / Programming / My Profession! Can’t I just do more side projects to get more personal satisfaction?”

Sure, if that is really what you want. Think through your decisions carefully and what they mean in 10, 20, 50 years — when the Time Warp really kicks in. If you decide you are full steam ahead on being the “Best Software Developer” / “Next Zuckerberg, Jobs, Gates, and Woz Combined”, consider the opportunity cost of spending all of your time honing one craft. There’s health, social, and personal development opportunities that you are sacrificing by doing more of the thing that you already spend ~8 hours a day doing.

It is generally good financial investment advice to “diversify”. This means your retirement account is not completely wiped out in the case of any one particular investment significantly loses value. Same with your life.

What happens when you spend so much time and energy on your job, and then one day, your manager calls you into a meeting and tells you that the company needs to lay people off, and you’re one of them? (Haven’t experienced this yet, but a definite possibility!) If the entirety of your personal identity is wrapped up in your career, then you will be absolutely crushed. If you spent the other 50% of your waking life doing something else besides work/coding/hustling and getting personal satisfaction out of that, you won’t be nearly as crushed. You’ll still be worried about getting a paycheck, but you’ll be in much better shape mentally to get up, dust off, and find a new job.

This is especially true when you have been using your time outside of work to socialize with others who are likely employed at different companies than you are. As corny and self-help-y as it sounds, “your net-work is your net-worth”. In this case, using the financial analogy again, you are “diversified” in that you have actual friendships with people who would stick their neck out for you and put in a good word for you at their place of work. I am not advocating for being a sociopath and go to “networking” events every week just to get numbers in your phone. What I do suggest is that by making the Thing that you do a social activity where you are actually friends with those people, you are killing two birds with one stone.

TL;DR: Have a consistent Thing that you do outside of work that adds balance to your daily life. A Thing that can grow into something that you can be proud of 5, 10, 20 years from now.

Enjoy your time in college, if you are there. If not, enjoy your time where you are at, but with a purpose. Embrace the Time Warp!