Table of contents
To those asking if you can land a developer job without an IT/CS background, the answer is a resounding yes.
I work for an Australian startup that has rapidly expanded into AU, NZ & SEA and is looking to penetrate US and EU markets, despite the economic downturn caused by the pandemic.
We're doing it at scale, as our tech team consists only of 5 people, all working remotely. (Originally they were only 3. I came in late last year. I recruited another Filipino dev, the team's first junior, and he was onboarded just last week.)
And the kicker? I do not have a formal IT/CS background. I just share a fiery passion for it.
I am a former EE professional. I shifted into web dev at age 33. And have since held tech leadership roles.
In a similar vein, the junior dev I mentioned was a physics graduate.
Our CTO maintains that even though he managed to get a formal CS degree, a large chunk of the program was largely unnecessary.
My younger brother took almost the whole of 2018 off to learn how to code. Formerly a business analyst, he is now single-handedly building and maintaining the web technology stack of an SG-based machine learning defect analysis startup (phew!). He made the shift at age 31.
I know a lot of people who are now working software development jobs without holding any CS/IT degrees, some don't even hold any degree at all. And there are a lot of influencers in the tech world who come from backgrounds unrelated to tech.
Dan Abramov, co-creator of Redux and member of the core ReactJS team, doesn't have a CS degree. Heck, as Dan mentioned in 2017, "only one person in the React team has a CS degree" (https://twitter.com/dan_abramov/status/938052930913128448).
Elon Musk, a founder of Paypal, SpaceX, and Tesla, has famously said that you don't need a degree to work for him (https://www.businessinsider.com/elon-musk-college-not-for...).
This is not to say that degrees are altogether worthless. But it isn't a given that because you have a degree, landing a tech job is a sure thing. It can certainly give you a great advantage, yes, but without the right attitude, you're bound to fail.
Self-learners are flooding the tech scene because, by default, they are inherently passionate and incessantly curious about programming and the science of computing. Why else would they forego sleep or a weekend out just to learn how to code?
Yes, "flooding": https://qz.com/.../two-out-of-three-developers-are-self.../
If you combine the passion and attitude of a self-learner with the "prestige" of a CS degree, that would be ideal. But with the experiences of people I know, along with my own experiences, a large chunk of CS degree holders (but not all) seem to have an air of arrogance around them. That to me and many others like me is a major turnoff. I have rejected so many applicants just for closed-mindedness.
If you're an aspiring tech professional, here's my 14-point advice:
Don't focus too much on the degree, focus on the learning.
Unless it's something that's required (i.e. license), certificates don't mean anything. FOCUS. ON. THE. LEARNING.
Drop the arrogance. You don't know everything. Thinking that you know everything closes your mind to learning. FOCUS. ON. THE. LEARNING.
Learning never stops. FOCUS. ON... Ahhh, you get it by now.
The world is a much better place if we all adopted a respectful and collaborative mindset. Share what you know and listen to other people who share their knowledge.
When you've already accepted that you don't know everything, also know that you don't have to learn everything. Learn only what you need to do your job well, plus a few subject areas that pique your curiosity. Seriously, keep on learning what you need to learn but stop trying to learn everything. You will die. Literally.
Build personal projects. Create fun and cute apps. Solve real-world problems with tech. Learn, fail, and try again.
If you don't have a degree, know that you would need to work twice, thrice as hard to catch up. The good news is you have the luxury to pick your path early on, and not be swamped by stuff unnecessary to a good professional career (like college philosophy classes, which I enjoyed btw).
Work on your communication skills. Both written and oral. I can't stress this enough. Miscommunication is disastrous. Half of our job is trying to communicate requirements and implementations, especially to non-technical people. Tailor your message to your audience. If you're talking to non-tech people, drop the jargon and speak in terms that they can easily relate to. Metaphors work well here, but don't overdo it.
Accept that not everything will go your way. Your team may choose a framework you don't like, and that's ok. Or they may adopt a coding style rule that goes against what you're used to, and that's ok too.
Detach yourself emotionally from your code. Let go of your ego. The code you write today may not fit the ever-changing business requirements and best practices of tomorrow. You or a colleague may need to refactor, rewrite, or delete your code in the future, and that's so okay.
We live in a global world now. Don't limit yourself to local opportunities, which tend to overwork and underpay their employees anyway. Globalize your market. Look for dev opportunities from foreign companies/startups, remote or otherwise. This is true especially now that the pandemic has forced a lot of companies to adopt the remote workplace. But again, communication skills play a major role here (see #9).
Attend and support tech meetups. Don't be afraid to give talks. Connect and broaden your network. A lot of the good opportunities that aren't listed on job websites are gotten through network referrals. But most importantly, make lasting friendships.
Have a hobby outside of coding. Burnout is a real thing.
Ah, this has turned out to be a lengthy one. If you've made it this far, I congratulate you. This only means that you probably already have the right attitude needed for a great tech career. (Or you might have too much time on your hands. I won't judge. Lol.)
I wish you all the best of luck in your dev journeys. Padayon!