Faisal Abid has been a contractor at Google, a CTO and also works on his own side projects. But he doesn't have a CS degree - he taught himself to code instead. Faisal Abid is based in Toronto, dropped out of college and is a self-taught developer with a love for programming. Today he shares his tips on how developers without degrees can learn to code and get hired for jobs.
Hey, so can you introduce yourself?
I was born in India and immigrated to Canada when I was 6, and currently, I live in Downtown Toronto. I’m an entrepreneur. I wear many hats during the day and do various things at any given hour. Currently, I’m the Co-Founder of Eirene Cremations where I work on tech, product, design and sometimes marketing. We're trying to make the opaque world of funerals and cremations more transparent.
I’m also the CTO at Bitstrapped where I design and build ML/AI and Cloud solutions for our clients. We’re a pretty smart and talented company and we work closely with some of the worlds biggest companies, so there’s a lot of great learning there.
I'm also a Google Developer Expert, which enables me to travel often and speak about Flutter, Android, Google Cloud and Google’s various ML initiatives. I've spoken at tons of conferences over the years on many different topics. It's quite fun to share your knowledge and give back to the community.
I’ve always been an entrepreneur first. I use programming as a way to realize those dreams. I’ve been part of many different startups, most recently I was the CTO at Zoom, and before that Senior Architect at League.
Aside from my startup Eirene, I have various side projects, where I’m experimenting with new technology, or ways to generate revenue and sometimes I just do something wacky to see what happens.
If you don’t have a CS degree, how did you learn coding? Did you do any particular courses or boot camps?
I found tutorials, open-source code, pirated Visual Studio, and messed around with it for hours, till I got something working. I tried to learn the full stack even back then, so not only did I learn how to build Visual Basic apps or HTML apps, but I learned about design by pirating Photoshop and following tutorials on Pixel2Life, or databases by running WAMP. Anything I wanted to learn existed on the internet for free if you knew how to get to it, so I did just that!
Did you have any specific people that inspired you to learn coding?
Bill Gates - I have always looked up to him and continue to do so. I love what he did with Microsoft, and being able to create so much impact with just software appealed to me. From someone I knew personally, my grade 3 teacher Mr.Tierney used to work at IBM, and encouraged me to look at Linux. I think my teacher combined with internet forums inspired me to create software.
I remember ordering Ubuntu online, and because they sent you a free CD, I used to order like 50, and leave it at the library and random places in the shopping mall.
When I first installed it, I partitioned my drive and destroyed it somehow. I never really got into Ubuntu, because Windows had all the software I needed, but I always loved playing around with it. When they came out with the Live CD’s that was great, at least I could try Linux without destroying my boot partition.
How has your life changed since becoming a professional programmer?
I feel like I hit the jackpot by getting paid to do what I love. I get to work with really smart people, solve hard problems and have the ability to impact the world with just my laptop.
That's an insane idea if you think about it. This is the only time in history, where humans have been able to sit at home, basically in their underwear and be able to impact the world in such a monumental way and create wealth while doing so.
I’m extremely lucky and privileged to be able to be a professional programmer. I imagine this is how George Clooney feels, being able to get paid to make and act in movies.
Has anyone ever asked about your coding qualifications when you have been talking to clients? Do you think a CS degree is unnecessary now?
I have never been asked about my qualifications. Clients and employers care about their bottom line, if they know your past work, or you can prove you know it, then they won’t ask you for a CS degree. If a client or employer asks for a CS Degree, they’re approaching this the wrong way and will probably turn away a lot of great employees.
A CS degree is useless if you have the work ethic and the drive to keep learning. CS is a fast-paced dynamic field, University is great to learn the work ethic, but most fail to prepare you for the real world.
Whenever I've hired anyone, I’ve always looked at their skillset by asking them tough interview questions, or sometimes just looking at their GitHub and understanding how they code. My eyes just skip over their school and degree credentials because it doesn’t matter.
Prepare for technical interviews with Algo Expert- "NOCS" gets you 15% off.
What advice do you have for someone who wants to get their first programming job but they don’t have the time or money for a CS degree?
You have it so good right now- in 2020 you have more information than ever existed to learn to program. Youtube, Coursera, Udacity, Stackoverflow, Khan Academy, the list is endless! The first thing I would suggest is picking up a course from Coursera on the fundamentals of programming and starting that ASAP.
While you are learning that, I would suggest you think about a small problem you may have, and just start building it. Don’t attempt to build the next Facebook, just try to solve your problem. You will run into a lot of roadblocks, but that is what CS is all about, running into problems and solving them.
Over time you'll learn to think very critically and be able to solve problems faster and more efficiently. I highly recommend you open-source everything you build during your first year of learning. This will help you a lot in building your portfolio and increase your chances of getting hired as a programmer.
Lastly, always be learning, don’t think that just because you’ve learned React, that it will pay your bills forever. Try to always learn the fundamental concept first and technology second. Technology changes all the time, the concepts stay more or less the same.
Can you tell us what an average day looks like for you just now? What are you working on and what is your lifestyle like?
My days are very atypical but an average day would be, waking up at 8ish, catching up on the metrics for my side-projects and startup, and then deciding if I want to work from home, cafe, or go into Bitstrapped's beautiful office and working from there.
During the day I'm working on client projects, whether that's DevOps work, ML work, Flutter, Android, Vue.js, or anything. I'm pretty agnostic to the type of work, as long as it has purpose and meaning. Then I'll decide to go home anywhere from 4-6pm, eat dinner, and start work again on my startup, side projects, or any pending client work.
Most people think I'm "working" all the time, but the truth is, it's not work to me, It's fun and it’s play. I earned my $1000 from my first programming job when I was 15, and in those 15 years, I don't think I've ever "worked" a day in my life, it's just been doing what I love, either for myself or for employers who've paid me to have fun solving hard challenges.
Have you ever had imposter syndrome and if so, how have you dealt with it?
I think I have imposter syndrome every moment of my existence. I try to deal with it by always learning, and improving myself to make sure people don’t find out I’m not good at this at all!
What are your coding dreams for the future?
I don’t know if I have a coding dream specifically. I love the pace that new technology comes out, it's awesome to know I have something new to learn and look forward too.
It’ll be fun to see how programming languages evolve. Rust has been super fun to work with, and in a side project I was able to rewrite my entire stack to Rust, giving me a major performance boost.
But I'm always on the lookout for the next fun thing to learn, get stuck on, bang my head for a while and have that A-HA moment. That’s why I love programming!