Recently, I’ve seen people discuss on Twitter about
whether a college degree is required to get into a tech job and if
having one gives you any competitive advantage over the self-taught
ones. I believe I can add a cent or two to that discussion. I am going
to tell my story and experience so it might encourage others.
I am a self-taught developer working for around 7 years now. I don’t
have a computer science degree or not even a bachelor’s degree for that
matter. In my observation, a college degree is not mandatory to get a
job in the tech industry but having one will be helpful in various
situations.
I am from India, so my experience related to jobs and hiring is based on the Indian job market. Your country’s job market might be different.
Those saying a computer science degree is required to be a software
engineer are likely to be gate-keepers. A degree has very less effect on
how great a developer can be. Computer science and Software Engineering are two different things and having a degree might help but it is not a precondition to become a great developer. Remember, most of the real learning happens in the job. I know a lot of great devs in both category
and vice-versa. Having a degree alone will not make you a great
developer.
It is not very easy to get your first job without a CS degree. I had
to take an internship without a salary for a few months and then I was
paid a little stipend, only to be fired after 6 months. But It wasn’t
hard getting another opportunity with that little experience. From this I
learned that acquiring real work experience is invaluable when compared
to a degree.
Once you got your first job and gained some considerable experience,
not having a degree will become less relevant. If you can spend the time
and money on education to get a degree, go for it. Things will be much
easier if you have one. But If you are not in a position to do it,
consider putting some hard work in building your portfolio, and start
applying for jobs.
Don’t assume you’ll have to know everything on the job description to
be able to apply for the job. Companies will always be ready to
negotiate on technical skills because it is easier to train people
technically. When I applied for the internship I know next to nothing
about coding, and I was selected.
I mean no disrespect to the universities or their curriculum, but
after all these years we should really start questioning the relevance
of teaching COBOL in universities (They taught me in Madras University).
This is mostly from my personal experiences and I would love to hear
your thoughts about it.
You might feel intimidated by the things you don’t know when compared
with your colleagues. Imposter syndrome kicks in and you’ll panic that
someday they’ll find you that you’re not good. The little secret is your
colleagues might also feel the same way. Our industry is filled with
lot of smart people and insecurity comes bundled with intelligence. Try
to use imposter syndrome and try to learn the following concepts as you
gain experience.
1. Data structures and Algorithms
2. Different programming paradigms such as OOP and FP
3. Design patterns
4. Accessibility
5. Big-O-Notion (this should be part of #1 in my understanding)
6. Memory management
7. A low-level language such as C
8. Software development life cycle
9. Agile methodologies
10. Different estimation techniques
11. Different kinds of testing (Unit, Integration)
12. Relational databases
The above list is based on my experience and personal understanding
of my week areas, as you grow into your career you should be able to
identify and prepare your own list. In the above list, no one is going
to be needing most of the items for their day to day job. But in an
ever-changing industry, having a solid understanding of the basics is
necessary to keep yourself open and flexible for any situation.
I hope I told everything I had in my mind related to this topic. Do
you have a degree or not and what’s your story of getting into the tech
industry? Danny Thompson recently had an interesting thread of self-taught developer’s story. Check that out if you’re interested.