I don't think anyone would argue with the fact that developing software requires skill. Nobody just wakes up one day after having never programmed before and becomes a senior software architect. But getting a job, meeting the right people and even figuring out exactly which technologies to study requires not only skill but also luck.
One great example of a combination of skills and luck in the same domain is a game of poker. Yes, you could have played every day for the last thirty years but there’s still a chance to be beaten by someone who has never played before and just learned the rules yesterday. And that’s the excitement that the game provides. If you’re playing tournaments, as long as you still have chips, you are still in the running for a potential win.
My friends often call me lucky when I happen to win their money on Sunday nights. And that might be partially true but I am also putting myself in a position to allow myself to get lucky. There’s a term in poker - “implied pot odds”. In simpler words, it’s the estimation of the amount of money you can win after an opponent’s bet is matched. So I may not be getting the correct price to make certain calls at the moment, but if I read my opponent’s hand well and I know he’ll pay me off if I hit my miracle card, I may decide to take that chance and make what’s the wrong decision in the vacuum. That doesn’t really change much when you play another game - the game of life.
Yes, you could have played every day for the last thirty years but there’s still a chance to be beaten by someone who has never played before and just learned the rules yesterday.
Most of us had a crappy but tolerable job
Before I got into programming, I had a job that started as a somewhat fun job that also allowed me to do a lot of reading and studying during the downtime. I was working in a call-center but I got lucky enough to do chat support for one well-known company. From the time I had started and for the next few months, most of the time I had to answer only one chat, which meant that I never had to solve issues for more than one customer at the time. That allowed me to read the college textbooks for some of the general education classes whose context I can barely remember (the most memorable thing that I can recall is Anne Hutchinson but partially that’s because she’s my wife’s namesake) but if there is a benefit that such classes provide it is the teachings of a sense of urgency and the ability to meet deadlines.
Fast-forward several months and what was a tolerable job with some free time for personal development had changed to be a stressful job that nobody wanted to go to. And like in most corporations, it came with a pay-decrease. Well, technically they considered it as a pay-increase because they added the whopping 20 cents an hour to our base salary. Except, if you were a high-performer like I had been, it meant a pay-cut for you since they got rid of performance bonuses.
The decision was made about leaving the crappy job
By then, I had already decided that I was going to leave. Yes, I could have pursued a supervisory position there, but the idea of having to come in at 3 am to cover for European time zones or having to work six or seven days a week with no extra payment didn’t sound too convincing. Which, the payment itself was about $36,000 a year. At the time it sounded really good. When you’re making $10 per hour, that’s almost doubling your wages. But I had decided that it just wasn’t for me at the time, so I started looking at what I can do to acquire the skills to get into the IT industry.
I have always liked messing with computers. Actually, now that I am writing this, even before we had a computer, I had taken apart pretty much all the electronics we had in the house when my age was barely 8 years. Of course, my parents didn’t appreciate it, but I also had never touched the TV. You know, that old-type TV with a tube inside. It was just too scary to accidentally get killed since I had thought that if an attempt was made to take it apart and mess something up, it would explode.
Regardless of how hard I tried, I never seemed to make any progress.
The choice to get into IT
The choice to get into IT wasn’t always obvious though. It took me a few years to figure out what I really want to do as a career. Of course, if I had the cheat codes and could just allow myself to get an infinite amount of money so I didn’t have to work, the choice would have changed since I’d be able to try doing a new thing every day and never run out of options. But it took me a few years to realize that it wasn’t the reality and one can reach the American Dream only by putting in a lot of work into it and a lot of debt under them. But that’s a topic for a different conversation.
I had found that CompTIA offers some IT certifications that are supposed to help you acquire technical skills and get a foot in the door into the IT industry if you’ve never studied it in college or never went to college. So I bought some books and online training and started learning. A lot of my time on and off the job was contributed to that. Except, regardless of how hard I tried, I never seemed to make any progress. A lot of it was reinforcement where I already knew what it was talked about but I may not have known the exact term for it. But some of it just seemed too irrelevant and those things are the hardest ones to memorize (a lot of it required more of memorization than understanding. For example, knowing which command prompt commands you can run to perform a particular task). So I had never felt like I was ready. And since I wasn’t in a rush to get it done, I just kept reading the books hoping that one day I will feel ready.
Setting a deadline was more than just putting a date on a calendar by when I should feel ready. It was about purchasing and scheduling the actual exam.
Overcoming the "Not Ready" excuse
Except, that day never comes. I don’t think there’s a single person on the planet who ever just feels “ready” as in “I can solve any problem that is thrown at me in any amount of time given to me without having to Google anything”. If you are such a person, could you write me an email? I’d like to interview you.
And then I had realized that I had to do two things. 1. Set a deadline. 2. Get immersed.
Setting a deadline
Setting a deadline was more than just putting a date on a calendar by when I should feel ready. It was about purchasing and scheduling the actual exam. When you’re making $10 per hour and your wife is not working because she got injured at work and had to seek a lawyer to get that taken care of, these few hundred bucks for the exam do seem like a fortune. And a lot of thoughts come into mind, like “what if I fail?”. So after talking for a bit, we decided that the money comes and goes but the skill remains. And if that can get me out of that toxic environment which I had started to truly hate, that’s worth it on its own.
True story: I once asked a customer how she’s doing and her response was “irrelevant”.
So I had purchased what's called a bundle. It allowed for two tries for the exam and also came with a video course to help prepare for the exam. That’s how I had handled setting the deadline part. Of course, the deadline could always be moved a bit but I imagine at some point the purchase would expire and you’d have to pay for the exam again. I can’t recall with 100% certainty but I feel pretty confident that I did not have to reschedule. And here’s why.
Immersion. Yes, being able to read the books at work was a nice opportunity but there were a couple of problems that arose. Firstly, it wasn’t really that efficient. Having to juggle between answering the customers’ requests and learning definitely slowed the progress down quite a bit. And depending on the customer, sometimes you just had to take a break. True story: I once asked a customer how she’s doing and her response was “irrelevant”. Of course, she gave me a bad review after the chat since I asked irrelevant questions. The second problem was that it wasn’t an easy ride anymore and often we had to talk to two or three customers at once. So there was no downtime left. I had barely had time to respond to all of them fast enough. My performance started to suffer and I had made a decision to take unpaid time off.
This was a really hard decision to make, especially since at the time we practically had no savings, and my wife’s job situation was still unclear. After some discussion, we decided that I should do it anyways. And that’s when immersion began. I didn’t just stay home for two weeks and watched TV. Instead, I studied for about 12 hours a day for the next two weeks with rare breaks to eat and go to the bathroom. After two weeks, I still didn’t feel “ready”. There were still things I was unsure about. But within the next week or two, I went to take the exam. And passed.
I couldn’t really believe it! It did feel like I got lucky. But only those get lucky who take risks and buy lottery tickets or participate in other forms of risk activities (stock market, poker tournaments, etc.). This was my poker hand and I had played it well enough to make a profit. Or did I?
Applying for only two jobs and landing one of them
Sometime before my exam, I applied for an IT position at one of the local universities through a referral. I had an interview and had thought I’d really enjoy working there. But a few weeks had passed, I told them I got my certificate and a week later they let me know that they decided to proceed with someone else. In hindsight, I realize that it was the best thing that ever happened to me - not getting a job there. Having to drive for 30 minutes and then wear trousers and a button-up shirt regardless of how hot it is doesn't seem very appealing anymore. Though, I’d probably still prefer it over the toxic environment I was in but not anymore.
...I’d come home in the evenings and study everything I could find on the topics I didn’t understand.
The only other job I applied for was a job as a technical operations specialist for a software company. Their job posting just had me excited and it was written with some humor mixed in. I wrote them a cover letter in a similar format with some joking in it, and the rest is history. It took me five months to become a Quality Assurance Analyst, and about a year and a half to secure a software development position.
And yes, I did get lucky during that process as well. But I didn’t get lucky in a way you may imagine it. During my downtime in the “ops” world, I’d ask my boss if there’s anything else I can help him with. I also kept asking people how to get to the next step, which was a QA. And then I’d come home in the evenings and study everything I could find on the topics I didn’t understand (which was a lot of them!).
After I was a QA for about a year, my boss told me that I should apply for a developer position that opened up. I told him my excuse that I’ve used my entire life - “But I am not ready”. He said that I am ready and should do it anyways. So I did. I did fail my first two or three first interviews. Though it feels like I failed all of them. Maybe I got lucky again. Or maybe even though I wasn’t quite ready yet, my work ethic had some weight on it (I am always there and always on time unless I had scheduled time off). Then I failed the second interview. Well, maybe not necessarily failed, but I wasn’t quite ready yet either. But instead of going around and being mad at decision-makers (which was half of our developers, if not more), I just asked what I can do better next time.
Also, ever since I started in QA, I was a frequent presenter of interesting things in the form of cross-training, where QA and Developers would gather together and listen to a presenter and then ask questions. I had done quite a few of those, and one of them was a few days after my second interview. The topic was “Machine Learning”. It went pretty well and I went on vacation. While I was out for a week, or maybe two, they had interviewed a couple of other candidates and apparently one of them was so bad, they decided that my second interview wasn’t that terrible after all, and my machine learning presentation was impressive enough, and so I got a job offer. It was a nice pay jump from what I was making in QA at the time, so of course, I said “yes” without even negotiating. And yes, it’s probably more money than I would have ever seen at the company for which I was doing customer service.
Lucky again? Probably. Did I put myself in a position to get lucky? Definitely! By applying for a job without being “ready”, by letting people know that I’d really like the job, by studying after hours (which I continue to do) and by being positive and not reacting toxically to failures, I have created my own luck. And yes, there are definitely people who have helped me get there to whom I am very thankful.
To summarize, these are a few important things I have defined that helped me go from working in a toxic environment doing a job with almost no potential to having a job that opens up an endless amount of opportunities.
Having a deadline
You’ll never be ready. So you better tell yourself when is the readiest you can be without giving up more time.
This one is hard. Not everyone has an opportunity to do so for different reasons, whether it’s because you have kids who you want to play with after work or a spouse that wants to watch a movie. There are a couple of solutions. If you have downtime at work, use that to study and not watch Youtube videos of other people playing video games (unless, of course, you have your own Youtube channel and are seeking ideas on how to grow it). Otherwise, you’d have to either start getting up before anyone else or going to bed after everyone else. Or you can do as I did and just take time off, paid or unpaid. Just make sure you will use the time wisely.
Being vocal about your wishes
Let people know what your goals are. It’s amazing but people actually enjoy helping others achieve their goals. It’s good for society in general if all of us have a better standard of living.
Reacting to failures
It’s normal to be rejected. Just don’t go around and complain about anything.
It is often hard to know what decision is the best decision, whether it’s a game of cards or life. I had gotten lucky and got great implied odds after having joined a software company. But it’s important to realize that I did take steps and put myself in a position to get lucky. Studying, getting a certificate, applying for a job, interviewing, having a great work ethic, letting people know what my goals are and etc. It all contributed towards hitting that miracle card that made me win. And while my goals are still a lot larger than just having a job, looking back at this journey helped me realize that getting lucky isn’t easy, requires a lot of work, and includes weekends spent indoors when the weather outside is so nice.
Do you believe one can make his own luck?