Beginning and re-beginning
My first experiences with coding were in middle school. I didn't quite realize it at the time, but I was writing rudimentary programs on our graphing calculators and having a ball programing conditional statements in a choose-your-own-adventure fashion.
Nothing really stuck, though. I had a penchant for accounting and numbers came easily, but I didn't invest into my math and engineering interests until much later.
My first college major was piano. That didn't last long. I took a long sabbatical during the truly pretentious days of the early 00's coffee scene to work as a barista and fantasize about owning my cafe.
When the froth settled, I returned to college. This time taking an assortment of histories, creative writing, statistics and anything else that seemed halfway interesting. Naturally, this leads to one of two places: English teachers and business majors.
I chose the later and it was not until the final semester of my senior year that I began second guessing this seemingly logical and well-rounded pathway.
Derivatives and starting over
I'd put off Calculus until the absolute last semester, and once the class began, it became apparent that a) I was going to have to re-learn trigonometry, and b) I really liked math.
So, while my classmates complained about the rigor with which our professor held us to, I soaked up the integrals and the sounds of chalk-on-slate while supplementing his lessons with Khan Academy material to fill in all the trigonometric blanks in my head.
This taught me another two things:
- I really missed the boat when picking business as my major
- There was a world of free educational material on the internet
The real world
My business degree gave me access to a "real job" at the company I had worked at through college. After a couple years, though, I began to get curious about other options.
I took a Calculus II summer class. (like you do)
I talked to a friend about cyber security.
I took one of the first MOOC's over at edX: an intro to computer programming with Python from MITx.
I decided I was supposed to be an engineer.
School and kids 👶
Another degree seemed the logical step if I was going to hop careers into engineering. So I went back part time while working and took the first two years' worth of an engineering degree. You know: all the easy stuff...Cal III & IV, Physics, Chemistry, Differential Equations, Linear Algebra, Engineering Mechanics...oh, and a Java course that was absolutely dreadful.
I knew engineers designed and built stuff. And I knew they got paid well. I was loving learning, and began to try and figure out what branch of engineering I would go into.
I decided Civil. Then Computer. Then Electrical. Then Nuclear. Then Civil again...maybe Environmental. Then Software.
I really didn't have a clue, and I was continuing to manage the chain of cafes I had been employed at for years. My previous pipe dream of ownership seemed like a possible future. But did I want that any more?
My wife and I had our first child 👶 during the final semester of that two year pre-engineering degree in the spring of 2016, and I began to take a hard look at the options I had:
- Continue in a state college engineering program-probably in Knoxville, TN as we were about to move.
- Transfer into ASU's online program
- Pivot into either software development or a hybrid path
I was pretty sold on a traditional degree being valuable to my situation. I enrolled in ASU, but at the same time got a promotion at work with some solid assurances for my family. I pulled out of ASU in order to move from Mississippi to Tennessee, and began to scout out programs at UT.
Opportunities continued to open up at my day job, and we had our second child 👶👶 after moving to Knoxville. I was unable to devote my full time to pursuing the last two years' of a degree, and I was unable to start over in a new career.
I felt pretty stuck: I really wanted to pivot, but it just didn't seem possible. I looked at a masters program in Data Analytics, but the timing and logistics didn't work out for it either.
Every six months or so, I'd dabble back in freeCodeCamp or Udemy and get my creative juices flowing for web development. I stumbled across the Indie Hackers community. I began listening to entrepreneurial podcasts. I became intrigued with a new idea: web development as a pathway into engineering and/or entrepreneurship.
Maybe I wouldn't have to wait until timing permitted me to return to school.
When the 2020 pandemic hit, I dove back into freeCodeCamp with the expressed intent of honing my web development skills while I continued to manage my business. I began to hear many stories of people successfully learning on the side and eventually landing jobs or starting companies.
We had another baby 👶👶👶 in 2020 and were all-in on raising a family. My job was fully remote, and I had enough margin to study when and where I could on the side. My previous formal education pathway and traditional engineering school slipped further into the background.
I'd still love to go through a masters program some day, but it doesn't serve an explicit purpose right now.
I began to have a blast.
I really enjoyed the process of building things. I was fascinated by the stories of ordinary people building extraordinary things on the internet using little more than the skills I saw that were within my grasp.
Furthermore, I saw the opportunity to create digital products for a potential worldwide audience pool rather than relying on physical good in a fixed place and time.
Keep leaning forward 📈
I'm in a unique situation. I have a great job with benefits that would be hard to replace in an entry level position. Throughout the course of the last two years, I've worked at optimizing my role there by automating what I can and then using any free time to continue to learn and develop my technical skill set.
Certifications are certainly a slippery slope. It's easy to get caught in a pattern of hopping from one to another, but I have found value in pursing a few, and ultimately using them as guide rails to learn specific things I'm interested in through projects.
freeCodeCamp is great at this: all their programs use project based learning techniques where you learn enough to build a user-story-specified project at the end. I just wrapped up their Relational Database course and it was a wonderful learning experience in SQL and troubleshooting.
Hashnode's hackathons have been a great tool as well, giving opportunities to flex and stretch skills while competing. I built a very small project for my very first hackathon experience earlier this year.
In January of 2022, Quincy (founder of freeCodeCamp) posted a challenge which I've just finished up. It included blogging as part of the developer path he laid out, and I've found that writing has been a great tool to utilize in my learning process.
My 222 day version of #100DaysOfCode
After accepting the "Become a Dev" challenge, I did what all good students do: I built a new spreadsheet. 😂
Here's my track record for the last 222 days' worth of that journey. And it's a testament to how long I can take to complete 100 days of coding!
To be fair, we had our fourth (and final? 👶👶👶👶) child in May, so I knew that I was going to likely be having forced breaks in my coding streak.
Even so, I managed to stick with it. And I think I've been able to maintain a healthy balance of work + family + exercise + learning.
Not plowing through to the point of exhaustion has actually been a critical lesson learned from these last 222 days. It's important to keep margin in my life. I need healthy relationships in and outside my family. I need to be reading books (fiction, not coding), listening to music, running, ect.
Those extra-curricular activities kept me from coding every single day, but they also kept me more sane and healthy than I would have otherwise been.
I don't know what's next, career-wise. But I know I'm going to be coding along the way.
I don't know if I'll truly seek another job or keep doing this on the side. But the more I code, the more intrigued I am with roles outside of just a "programmer".
Developer relations, product management, startup founder, data scientist and more all interest me.
I know this: I'm going to keep leaning forward and learning.
I've just released the v0.1.0-alpha of unMove, a css animation library that I'm building to learn a few things:
- Proper use of GitHub, PR's and codebases
- Maintaining an open source project
- Structured project management
- Collaboration with others
As disparate as my journey to code has been so far, I'm truly excited to see where it takes me next, and I look forward to the doors that open...especially the ones I didn't realize were there to begin with!
Come say hey on Twitter. You can find me here: twitter.com/EamonnCottrell