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.
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.
The good parts
- You won’t have a student loan and don’t have to run every day to
repay it. It can be daunting from my personal experience and from some people I know. - You don’t have to spend X years of your life studying for exams and those years might actually be a head start for your career.
- College degrees are becoming less and less relevant to the actual
things you have to do on the job. So it is not assured that you’ll land a
job offer after finishing your degree or you’ll be employable. - Companies may not hire you for not having a degree. In India, a
lot of companies won’t consider candidates without a college degree regardless of their skills or experience. This will limit your choice to startups and mid-sized companies. - You might sometimes find it hard to understand the concepts
related to computer science. It is not impossible to learn them on your own. You need to be self-aware of your gaps and constantly work on improving them. For example, I had trouble with understanding the big O notion which is used to measure performance of the algorithms. I still have troubles with data structures and algorithms. It is possible that you might face similar issues. - In my personal experience, people tried to take advantage of me in negotiations. Since getting a job without a degree is pretty rare in India, they might have thought that I didn’t have any other choices.
- People are saying that your academic qualification is taken into
account when validating your VISA applications. My US VISA (B1)
application is rejected twice. but I’m not sure that’s because of my
educational qualification. It is not an official statement from US
embassy, it was just response of some people when I asked about the possible reasons for the rejections.
The bad parts
My thoughts
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.
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.
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.
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.
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 got a job, now what?
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
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.
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.