A journey from waitressing to corporate banking
Never in a million years did I think I would end up as a software engineer. That was the furthest thought from my mind when I went to my first day of university and signed up as a linguistics major. I imagined myself going to remote parts of the world to chase down and record dying languages, or being a translator for the UN – anything but corporate life.
Of course, those are dreams of a young naïve high school graduate and soon the realities of life made themselves heard. I remember going to one of my linguistic professors and asking him what kind of careers should I be aiming for with my degree. He laughed and said the number one career for linguistics majors was unemployment.
By that time, it was too late to change my major and I had big bills to pay that were already piling up with no obvious career prospects to aim towards. It was during this time that a friend mentioned the possibility of software engineering and it’s thanks to him that I discovered something that has driven my career ever since. The beauty of programming was that it didn’t require a degree I couldn’t afford and that I could teach myself as I continued to work my part time jobs to pay the rent.
It wasn’t until years later that I realized my high school dreams were too narrow minded; with programming skills, the world is your oyster and there is so much you can achieve. You can build the technology that records and parses dying languages, be part of a team that helps automate the translations at the UN, explore computational theory on top of being able to work almost anywhere with flexible schedules, and more.
I ended up with a small google Chromebook which had been jailbroken to run linux against its will, and a few programming textbooks, starting with Ruby on Rails. At that point, I had been working in a Cuban restaurant for a couple of years and so I would take the laptop and textbook to the restaurant with me, taking the early morning shifts to take advantage of the downtime to study.
Easy peasy I thought to myself, I’ll get a job in no time.
Becoming an adept programmer is hard and it takes dedicated time. Anyone who tells you otherwise is either lying to you or doesn’t know what they are talking about. It took me about two years from the day I opened my textbook of sporadic yet intense studying before I got my first minimum wage support role in tech and another two years before I got a job in a bank earning an adult wage. I do believe that if I hadn’t had work or school responsibilities those initial two years could have been shortened drastically, but it still takes time to absorb the concepts integral to programming and to mull them over in order to truly understand them.
Some days (especially when I was reading a C++ textbook) it felts as if I was hitting my head against the wall over and over again. At one point, I took my week’s spending money and placed a certain amount every 20 pages and wouldn’t let myself spend anything unless I earned it through reading. As much as I love technology now, at the time it was tough to push myself because the topics can be dull at times and changing the way your brain works, especially from a liberal arts perspective to a STEM perspective can be challenging and painful. But the metamorphosis waiting at the end was worth it.
To sum up so far: Teaching yourself how to become a programmer requires hard work and dedication You definitely will not enjoy every moment of it so prepare yourself for some slogs and find ways to reward yourself through the small daily steps Take advantage of whatever schedule life has imposed on you to study concepts and practice
The light at the end of the tunnel
Then one day, head bruised with banging it against the table with frustration, clothes nearly ripped to shreds with exasperation, close to giving up, you’ll experience a eureka moment. Suddenly, all those disparate concepts you’ve been filling your head with, all those early mornings or late nights trying to follow textbook tutorials and YouTube videos come together. The problem or sentence before you finally makes sense.
This is what I consider the first foundational hurdle, you’ve built your foundation and your way of thinking has slowly changed and now you can build. It’s still tough, and there will always be days where concepts go over your head the first time round you read them, but now, if you go slowly and cautiously, things you encounter will start to make sense, or at least you’ll now know what to google when you don’t know how to fix a bug.
This for me was when programming became less about earning money to feed my growling tummy and more about enjoyment. There’s a creativity in programming that once you get through the initial slog, can make it come to life and there’s a joy when you realize you can create beautiful things with just your imagination, hands, and keyboard.
So no, it’s not easy but nothing in life that is worth it is easy. I heard a fitness trainer once say that there is no magic bullet, no pill you can take to rapidly lose fat and gain muscle, no secret tea to get those perfect abs. At the end of the day, the way to get fit is through hard work and sweat, and it’s the same with programming. Your gym is your keyboard, your diet is reading, your exercises are in logic, and there will probably be tears instead of sweat. But I can guarantee, at least for me, it was 100% worth it.