From Philosophy to Software Engineering
Here’s a piece I’ve shared with several friends, philosophers, and former professional philosophers . Since I’ve shared it many times, I thought I’d share it here. Note that it was written in 2018 – everything here seems right to me, but it’s likely that it will become less useful overtime.
I’ve been asked by a number of academic philosopher types how I became a software engineer without any prior programming background. Here’s what I did.
While in graduate school for philosophy, I realized that I didn’t want to continue on the academic path. I considered other career options during the spring of 2016, one of which was programming. I was heavily influenced by this article.
I spoke to a few friends who had made the transition from philosophy to software engineering. They made the path seem feasible and fun – all true and good things.
Once you learn the basics of a language, you’ll want to level up either with more self-study or by going to a coding bootcamp. I estimated that I’d be able to find a job with a coding bootcamp significantly faster than self-study, which made a coding bootcamp worth it to me. I expect that’s true for most people. There are a few exceptions.
If you take this path, I’d be sure to only go to a good coding bootcamp like Hack Reactor or App Academy. Some other bootcamps are reasonable, others are terrible. I know people who have gone on to get jobs by going to other bootcamps.
I applied to App Academy and got in.
Bootcamps like Hack Reactor and App Academy do have interviews – prepare for these. They both give you prep material. Be sure to go through it. Do a practice round or two with a friend. Then ace the interview.
App Academy was great. Being in an environment with motivated people programming all day was energizing. Moreover, it was a lot of fun to quickly level up one’s programming skills. The curriculum was overall good and well-paced.
After App Academy, though they are working to change this, you’re pretty much on your own. Most students I know got their job through directly applying to a given company or through a reference. The mixed strategy of cold applications and references is probably the best way to go. To find references, reach out to people who you have any connections to, whether that is education or interest or anything else really. References are especially valuable as they significantly increase the probability that you’ll get a phone screen.
While applying to jobs, I continued to practice coding interviews. Coding interviews can be high-stakes fun, see if you can get into that headspace. At the beginning of your career the main problem is getting to the phone screen. Once you’ve done that it’s a matter of performing well in the interview.
In the end, the offer I accepted came through a job I cold applied to on stack overflow early 2017.
My anecdotal impression is that it has become slightly harder to be hired as a Software Engineer without any relevant experience or an undergraduate degree since 2017. Yet, it’s absolutely feasible. I’ve talked and worked with people who have done it.
How to think about this
If you’re considering leaving academia for tech, I’d ask the following questions:
- Why am I leaving academia? Can becoming a software engineer satisfy my goals?
- Would I enjoy programming?
- You can test this over the course of a month by learning some basic programming skills. Check out http://codecademy.com and https://coderbyte.com
- Would I be good enough at programming?
- If you’re studying philosophy at a decent school and find first-order logic a breeze, the answer is yes. The more relevant question is: "do I like this enough to become good enough?""
- Should I do a bootcamp, online school, take classes, or self-study?
- It can be a good idea to take CS classes at a prestigious institution (university) if you can get certification for it. This can help your resume.
- Estimate the time it will take to be hireable for each option. Look at placement records for the bootcamp, online school. Look at the cost.
- For self-study you’ll only be able to usefully assess this after you’ve spent at least a month learning how to program, since you won’t understand what it means to be hireable without some technical knowledge. Talking to software engineers will help.
- Talk to people who have done all three of these things.
- Should I focus on software engineering?
- A number of former academic philosophers have focused on the related ontology track and had fruitful careers. Because there are more jobs in software engineering and there’s more optionality, I chose software engineering.
Check out these resources for more:
Haseeb Qureshi has a great series of posts:
Cracking the Coding Bootcamp
How To Break Into The Tech Industry
Peter Hurford’s Guide
Apply to TripleByte when you’re ready to start interviewing. Most self-taught programmers and bootcampers fail, however, they’re a great service. The expected value of applying is high. Basically, they screen you and then put your resume in front of some of the best startups and companies in SF. If you get, the job search will likely be much much easier. They also have an excellent study guide.
Philosophers in Software Engineering Facebook Group.
Get in touch if I can help.