You Can't do it All (At the same time)
My entire existence in the programming world is based on both ambition and experience.
When I graduated from Penn State and I took my first job at Hivelocity Hosting, I was already someone who had learned my "key skills" through long nights in my dorm room. Although classes gave me a chance to learn about design patterns and concepts in building large applications, it was at night where I learned about how to string together a few things to get a website online.
In fact, this is how a lot of programmers start out.
Each of us has stories of long nights where we were stuck until three in the morning because we forgot a semicolon in our code. It's on these nights that we furiously scour Google to solve one issue and walk away with a wealth of knowledge on debugging in general. It's an organic progression and something that passionate people all have in common.
If nights like that were the primer for my career then my first job was the base coat. Whenever anyone asks me where I learned something or why I do things a certain way I tell them that I learned it at Hivelocity. We were a small team building internal applications, but the skillset of the people there was unreal. I learned how to work in a Linux environment, how to talk to and work with servers, how to write smart Python with a testing suite alongside of my code. I took away so much from it and don't know where I would be without that experience.
As I moved onto my next job, I felt better equipped for the programming world. It was almost as if I had a leg up on things.
Through all of this though, I continued to work through the night. Practice makes perfect they say and I practiced a lot. As the time I had dwindled down due to being a husband and now a father, I realized that being able to practice things wasn't as easy as it used to be. I had other commitments and needed to assess what was most important to work on.
This logjam is my new reality and quite frankly I'm still trying to find out how to balance my ambition with my time.
Last week I wrote a post about my New Year's Resolutions for programming and as it turns out, I think I tried to tackle them all at once without even realizing it.
This is impossible (for me).
While I still learn some things on the job, this is nothing like my first job where I came in raw. I've been around the block now and have a good understanding about how things work. My job is less about my personal advancement and more about pushing a product. So with that, all of my learning now rests on the premise that I will have time before or after work.
Let me reiterate, husband and father (of a 7 month old). Time is precious and it wasn't until I received an email yesterday from my greatest mentor at Hivelocity that I realized I was taking on a lot more than I could handle. He saw I started a new repository for something I wanted to write in Go and wanted to contribute as part of his own resolution to push public code. I was flattered but also took a step back and wondered to myself when I could get started working on that project.
I have a lot going on. I'm currently:
- Working on a SaaS with my brother-in-law for our newly established company CodeZeus.
- Note that we also have one or two other SaaS applications in mind to build.
- In Week 2 of my Cryptography class on Coursera.
- Preparing for two algorithms classes on Coursera that start next week.
- Writing a Python API wrapper for XMLStats so I can mess with NBA stats and give to the community.
- Planning on starting my Go project that I mentioned before.
- Reading a couple of books on Python.
When I look at that list, I can't believe myself. It's so much to be focused on and not enough time to manage any of it. I do things in pieces now and pick the side project I'm most interested in for the night.
All in all, I realized yesterday that I can't do it all (at the same time). Instead, I'm going to focus on these classes first and foremost. They all are done in March and then there is a part two for each of them that I was planning on taking. I would still like to, but I will need to judge how I handle the first semester of work. Next to that, I want to dedicate my free time to work on applications for CodeZeus. Then when I have the time I want to work on learning Go but I plan on taking that process slow.
I think it's good to have side projects but when you look at everything you're working on from 10,000 feet above and you can still see the imprint, then you're taking on too much. Instead of overwhelming yourself, prioritize and make a plan.
A good plan will get you through anything.
comments powered by Disqus