I posted on twitter the other day and Quincy asked me to write about about my experience. Hopefully it helps someone out there. Follow me on twitter for more stories to come. @codelikeagrey
I know many of these are well organized. A road map if you will. So far, I’ve started this piece over multiple times. Trying to figure out what to say. I’ve read countless posts on the subject honestly envious. Wondering, when would it be my turn?
This will not have bullet points. I’m not going to list out how to become a Data Engineer - at least not in this post. Everyone’s path is different and there are so many of these that outline how you too can get a job in the tech industry!
Instead, I’d like to talk about my journey, about how many of us feel – the frustration that mounts not only learning to code but searching for a job as a non-traditional candidate.
This story starts in the summer of 2015. I’d just watched a documentary on Aaron Swartz, while also becoming recently initiate in the world of Linux. This became the perfect storm to peak my interest into the world of programming and tech.
I’ve always been an idealist at heart. As such, I decided I wanted to learn to code and ultimately contribute to the Linux kernel. Juxtapose that with the actual pragmatist that I am in reality and I did what any good C programmer would do; I ordered K & R.
It was not long before I realized that I was punching way above my weight class. My first failure. First of many I should say. While I did not make it very far the first time through K & R, it did instill within me a desire to keep going - to eventually figure this programming thing out. I was, and to some degree still am, pretty awful at programming. However it was through this struggle, this puzzle, that I became hooked.
That fall I would enroll in a local technical college and take a couple of programming classes. One was a computation with multimedia class where we used Python to manipulate images and sprites. This turned out to be much easier to digest than the cryptic K & R book I cut my teeth on earlier that summer. I also took a micro-database class where we used Microsoft Access that I literally remember nothing about.
One of the best things to come from this time happened in my Python class. My professor gave us an opportunity to earn some additional credits if we enrolled in cs50. (If you’re unaware of what cs50 is, it is an introduction to computer science course from Harvard and it’s free. I would come to understand that this is one of the premiere foundational courses for a self-taught developer.) Like K & R however, it would prove to be too challenging and, although this wouldn’t be my only run in with cs50, I did not complete the course work. However, as with K & R, I became more intrigued with the world of coding and building things from nothing.
Unfortunately due to some financial issues, I was only able to go for one semester. While not a failure, still a major perceived set back. I was new to the programming world, and I hadn’t discovered all the online resources that were available to someone like me. After I couldn’t go back, 2016 was a relatively quiet year in terms of my coding journey. I eventually pivoted into learning about system administration. The same platform that hosts the cs50 instance, had a handful of courses on Linux. So i spent the early part of the year learning about the command line and file systems, things that I didn’t understand at the time would really benefit me later.
To be fair to my former self, I hadn’t been entirely too serious about this programming thing. It was just something I liked to do. Something challenging intellectually. Something that I really hadn’t had a stimuli for in such a long time. So while 2016 was a dark time for me personally, the seeds I had sown in 2015 were begin to take root.
Later that year I remembered how much I enjoyed programming and - wanting to climb out of the dark place that I was in - began again to devote myself to learning to code. I finished up a Linux course that I had put off. I opened my text book on computation with multimedia again and began to walk through the chapters.
Due to personal circumstance and my desire to truly make it in this industry, I ended up moving all the way across the country from the place I had called home for the majority of my life. I knew that it was going to be hard to get a job without a degree, but that level of difficulty would only be compounded attempting to accomplish it from a small town in the American South. So at the very end of 2016 I left. It was heart-breaking. I left some important people behind, but I knew it must be done to put myself in a position to provide for the ones I loved most dearly.
The next resource I came across was in the early part of 2017. Some random redditor posted a link entitled something to the affect of “Viking Code School just released their entire prep work for free.” I had never really given much thought to becoming a web developer. Truth be told I wasn’t even sure what kind of developer I wanted to be, just that I really wanted to program and build things. As I looked through the material an idea began to take hold of me. Maybe front-end development would be my way into the industry. I didn’t burn with a passion to build user interfaces, but I did burn with a passion to build things and I most certainly did not burn with a passion for whatever it was that I was doing at the time. So I dove in head first.
My biggest take away from the prep work was that programming indeed was still hard. Learning HTML was relatively straight forward. CSS was, at times, very frustrating. Mainly because I didn’t know all the properties that were available to make my layouts look how they were meant, but ultimately it was something that I overcame and learned relatively well. The course’s git section referenced some videos that were actually stellar. The things I learned from that section would eventually help me explain a “professional” git workflow to some developers I was working with in a remote setting for the Chingu Cohort later that year.
After I went as far as I could go, the universe sent me another try. I’d heard of FreeCodeCamp, I mean who hasn’t? It’s one of the most talked about free resources for learning web development, but I had never really considered it. I thought it was more along the lines of Code Academy which I felt completely underwhelmed by. (Perhaps it was just me, but I went through Code Academy for the Viking Code School prep work and while I went through the tutorials completely I did not feel like I knew how to do anything except that exact tutorial. I hadn’t gotten any better at programming much less thinking like a programmer. So for whatever reason I decided to check out FCC.) Little did I know, this would completely change the way I viewed web development and becoming a professional programmer completely.
Up until this point I wasn’t really sure that any of this would lead anywhere. I was just chasing after something, a dream of a better life and aimlessly drifting from one resource to another hoping something would just click. FCC was the first curriculum that I had encountered where it started from the beginning and was project based all the way to the advanced stuff. I was completely devoted to completing the program. I don’t know if it was because I though it’d lead to a job or if I was just tired of hoping around from resource to resource with no goal and none completed. So I decided I wasn’t going to look or do anything else until I completed FCC.
I would go on to complete my front-end certification. I felt an amazing sense of accomplishment finally finishing something I set out to complete. After FCC I would join one of the Chingu Cohort voyages.
It was my first experience working with other developers - and remote at that! (The Chingu Cohort is an organization that developers apply to in order level up and create a portfolio to help find a job.) My first team ended up not working out. I’m not really sure why. Maybe they couldn’t make the commitment, maybe it was above their skill. All I know is our slack channel went dark. From the material they sent out and the surveys we took before, this can be a somewhat common occurrence. So I reached out to the organizer and asked if there was another team I could join. As it turns out there was. We made a bunch of head way and I got to help out on issues that they were currently dealing with (mainly the git workflow that I had learned from Viking Code School’s curriculum), but ultimately we did not complete our project. This time it was indeed do to schedules and skill level, but I did learn a bunch from this experience that again would go on to help me later on.
At this point in my journey I was living in San Diego, California. I was reaching the end 2017 and I had come a long way in just a year, but my journey wasn’t over yet. I made another move, this time to Portland, Oregon. In the months prior to this I applied for a Google Udacity Scholarship. The scholarship would allow me to study for a Udacity Nanodegree in Font-End Web Development. I had no real hope that I would be chosen, but in fact I was!
As it turns out, the scholarship program was two phase. The first phase was a complete introduction to web development. As I had spent the entirety of 2017 on my own introduction to web development, I completed the first section very quickly. I mean like three days quickly and the first part was a six month long journey. Lucky for me (or unlucky depending how you look at it) the acceptance into the second phase wasn’t based on skill. Participation was a key element. So we who finished early built side projects and shared on the forums. We also helped answer questions. I watched plenty of better people drag as many beginners to the finish line as they could. It really was inspiring and showed the better parts of humanity that I think get lost in this industry will all the political discourse that is thrown around.
One really awesome thing that would end up being the reason I became a Data Engineer was the meet ups that happened during phase one. There were so many of us in the first part of the program that in bigger cities there would be upwards of twenty people pursing the scholarship. I met some really cool people in the Portland area and got to actually hangout with other people like me. Up to this point my coding journey was incredibly lonely. I had worked with a couple people remotely but I had never really hung out with other people who had the same interests as me in a setting that wasn’t “work”.
Ultimately I was selected for the next phase in the summer of 2018. We were a significantly smaller group in phase two. From my understanding only about 10% of phase 1 made it to phase 2, after all it was a competition of sorts. So I got to work. I learned about a bunch of things that had never really been covered by the resources I’d used. Granted they were relatively new ideas, including service workers, progressive web apps, build tools and frameworks.
In the fall of 2018 my son was born. Life was getting extremely busy and crazy. As a result, another failure on my part. I didn’t complete the Nanodegree. The thought of letting the chance pass me by as there were others who wanted the scholarship as well weighed heavy on my heart. I know sometimes life gets in the way but it didn’t help knowing that could have been something to help my chances of landing my first job.
After the dust in my life settled a couple months after the birth of my son, I came across another resource - the OSSU curriculum. My desire to be a web developer was always eclipsed by my desire to be a great programmer and engineer. As someone with a non-traditional background I’ve always been interested in acquiring a “proper” foundation.
While I started the OSSU curriculum a friend that I had met in our Udacity program reached out to me. He was already working at a tech company; however, it was not in a programming role when I had met him. He had apparently been promoted to a Data Engineering position and asked if I was still looking for a job.
Obviously I jumped on the chance. It wasn’t the first role I had interviewed for but it was the first referral I’d ever had in the industry. After I sent them my CV and a project that I had worked on during phase one of my Google Scholarship, I went through two phone interviews with the other Data Engineers that I’d be working with. When I got the green light from them I later met with the head of Data Engineering and over lunch I told him a brief overview of what I’m writing now.
I’d like to think that all of my set backs gave me a more realistic perspective about what to expect and what I wanted out of a programming job and company. Apparently he liked what he heard and then introduced me to two more people that I would go on to interview with - the top tier of the customer engagement department whom the Data Engineers work closely with. After everything was said and done they thought I’d be a great fit and made me an offer.
One thing I learned from this experience was that, while knowing how to code and demonstrating that is an obvious prerequisite, being a good cultural fit for a company will go a long way. In all five of my interviews with this company it felt natural. We laughed and shared common experience on what the greater programming and tech industry was like at large.
Wanting to break into this industry I spent a lot of time on Medium and Reddit and other programming circles watching from afar the culture I wanted so badly to be part of. I dove into as many communities and resources as I could. In the end learning to program was incredibly important. But learning to navigate among other programmers and communicate well with them was what got me my Data Engineering job. I am not the greatest of programmers, and I think I’ve demonstrated that I literally kept failing until I got a job. My programming skills weren’t even what got me the job. My network is what eventually came through in the end. I had shown my ability to the guy who ended up referring me and he vouched for me.
If I could impart one piece of wisdom to someone else who was in my position. Failure is part of the process. Keep failing. Keep pushing. Keep dreaming. There are other things at work besides coding skill, especially when coming from a non-tradition background. I have used close to a dozen different resources through my time thus far - some far better than others. My greatest strength, however, was pairing up and networking with other people. The happiest time on my journey was when I was relating with other people in my position. I could have just stayed alone and kept learning all I wanted and that might have worked. But what got me my Data Engineering job, and what gets most people who are self-taught their jobs, was the people I helped and learned with.