Hacker News new | ask | show | jobs
Pursue a CS degree?
7 points by jimmierock 3390 days ago
I'm currently a law student looking for a career switch into engineering.

I have taken 6+ CS classes by now and I really enjoyed them. I'm not half bad at it. However given my resume, its been pretty difficult to get technology companies to give me a shot.

Im wondering if is worth pursuing a CS degree. I can probably get it done in 2 years. I can probably get into a fairly strong undergrad or graduate program in Canada.

Your thoughts would be appreciated!

6 comments

I was on track to attend law school (accepted into a top5 US law school) before I detoured into programming. I consider it one of the wisest decisions of my life but, to be honest, the engineering landscape was quite different in 2011 (no such things as coding boot camps and such). Not sure how things would fare if the same decision were made today. Getting a degree sounds wise, since it would differentiate you from all of the other people trying to get into the field through boot camps and the like. If you can get into a school with good career fairs (and outreach internship programs) then that's probably your best bet.

Though I did not personally pursue a CS degree, I would still recommend it since it's quite difficult to learn algorithms, data structures, and lower level stuff (compilers, assembly, etc) without being in a program that forces you to learn it. All that stuff is necessary (but not sufficient) to land a gig at one of the top tech companies.

Also, if you opt out of the school route, it helps to try landing a gig at a crappier company so that you can basically get paid to learn stuff (but you should probably leave once you stop learning things, otherwise you may stagnate).

Can I ask what you are doing instead and how you picked up programming skills? I have tried doing algorithm and data structures myself in depth. It honestly feels hopeless at times. And did you ever think about detouring into law again?
I did not get a CS degree because it turned out that I didn't need to (I am a software engineer at one of the 'big' Silicon Valley companies and have upward trajectory in my career). However, learning algorithms/data structures is not easy (as you mentioned) and if you aren't the type who can sit down with a bunch of textbooks over the weekend and bulldoze through them, then a structured setting which forces you to do exactly that may benefit you. And getting formally schooled will help you from having 'gaps' in your CS education which can (and probably will) happen if you opt not to get a degree (getting a CS degree doesn't mean you won't have gaps either, actually).

And no.. I don't think about going back into law. That field is horrible.. you get saddled with debt and then you make mediocre money (even at big law firms) with insane hours. It makes me sad that people feel desperate enough to even consider it. The only type of law that is probably economically worth pursuing is patent law (in terms of work life balance) but that's really some scum of the earth type stuff, especially with software patents..

I need to ask some questions. Stay with me here. I've helped hire/build/lead engineering teams - so I'm asking to help structure the guidance I give, as you're looking for a life change. Q's) Why are you leaving law? Why interested in engineering? What types of tasks interest you the most in engineering? Do you know your personality type (Big 5 / MBTI, etc)? What does success and happiness look like in 10 years for you in this path?

Attorneys can make fantastic engineers - depending on personality type. Sometimes straight engineers can see the "trees, not the forest". Some attorney types are good at "forests, and seeing the trees". I firmly believe the logic paths taught in law school should be required in engineering disciplines. Often, the engineering mind can make things too complex to begin, or too pedantic to continue.

Thanks for the response! Here are my reasons.

First, I think the legal industry as it stands is due for a huge shake up. Alot of junior associate work will be automated away.

Second, I enjoy creating things. Law doesn't really put me in a position to do that. Making my first silly game was really cool.

Third, my personality fits better with engineers. People are more relaxed and interested in solving problems rather than focusing on appearances.

Fourth, the dream. I spent sometime in the West coast and want to see if I can make it as an entrepreneur.

Does that help?

Thanks in advance!

Yes - it does a lot. It seems like the switch would be good for you. I agree that junior associate and mid-associate work is being iterated away. Don't discount the intersection of the two interests in law practices of cybersecurity, robotics, and machine learning law among burgeoning areas. Those are locations one could make a mark "on the intersection". I was trying to determine how extroverted your personality is; I have a CompSci but I'm fairly extroverted - and it has become a "secret power" of mine. As an aside, you don't need CompSci or Law to become an entrepreneur. If you want to be a non-web oriented engineer - a CompSci program would be heavily useful. A web engineer can get entry with a head full of knowledge, projects, and a good "code school". Edit I realized how disjoint each sentence is, but hopefully it helps.
Awesome thanks. I agree there's definitely some interesting possibilities between law and tech especially in regulatory research. Do you have a particular preference for undergrad v grad?
I'm a lawyer and coder. Happy to talk about that intersection and opportunities there if you'd like. My email is in my profile :)
I don't know if this is something you want to do, but I have a full time development job with no more education than High School and attending one of those Bootcamps. So technically you don't need any degree at all to break into this field. That said, it is much harder to get into larger companies (FB, Google, etc) without a degree. As well as certain subsets of the industry (I won't be able to get into some jobs that needs fluency in algorithms or low level languages). So it's a trade off. But if you really really want to, you can get in on the merit of knowing what you are doing, work a couple of years, and be right up there with the rest of them.
I see alot of mixed news about bootcamps. How did you make the decision to attend one, and how did you know which one to attend?
Yeah, they are saturating the market these days.

I decided to go for it because I was unsatisfied with my degree path (I was in business), and a scholarship more or less fell into my lap.

I filtered the bootcamps based off the curriculum they offered, which I decided my prefrence based on what tech was hot, both in the industry and in my region of the world (South Central US). I then filtered by reviews and success/employment rate. Finally I scheduled an interview with all the remaining options and talked with them to to get as much of an idea as I could on what kind of place they were. I finally applied to one, and thankfully was accepted.

Awesome, thanks. If you could attend a top university at the same price as a bootcamp would you have done it?
Strongly advise enrolling on some sort of undergraduate/graduate program. A lot of tech companies are looking for experience the most as opposed to a computer science degree. I myself have completed a 3 year degree, however, I do not think it's 100% necessary. What got me onto the job market is obtaining an internship which built my experience. I am now a full-time software engineer working in London. So yeah, try enrolling on a graduate program, take some courses online to learn more programming and programming concepts. You should be set.
Thanks for the comment. Do you think there's a difference between pursuing a undergrad degree v grad? From my limited experience so far is that undergrad classes are better in terms of teaching fundamentals.
Depending on where you live, an undergrad degree tends to be either 3 or 4 years. A grad, assuming you mean a masters, is usually 1 year. Agreed, an undergrad degree does teach you the fundamentals, but i reckon your focus should be on trying to get as much experience as possible.
Not sure where you're located, but if you want mobility (be able to work in other countries), a degree will help a lot in getting work visas.
I'm Canadian! I would prefer to end up in the West coast/California, but I don't think I can afford a top US degree.
You don't need to go to a US school for a CS degree. They accept Canadian universities.
The answer is yes. The number one thing that attracts me to a CS major is the fact that I can build stuff that stays around forever. It’s like teaching a really stupid baby to do something. My prof told me on the first day of class that computers are really dumb, but are really good at following instructions. Almost too good, to the point they do everything to the letter. If you can talk to the computer in it’s language, and make it do what you want it to do, then you’re golden.
Awesome thanks. A related question, what are your thoughts on a complementary discipline? If you want to be sort of an all around engineer not just CS?
Well, with cs, it spans the range from theory through programming to cutting-edge development of computing solutions. There are lots of options to choose within the cs's career path:

Career Path 1: Designing and implementing software. This refers to the work of software development which has grown to include aspects of web development, interface design, security issues, mobile computing, and so on. This is the career path that the majority of computer science graduates follow.

Career Path 2: Devising new ways to use computers. This refers to innovation in the application of computer technology. A career path in this area can involve advanced graduate work, followed by a position in a research university or industrial research and development laboratory.

Career Path 3: Developing effective ways to solve computing problems. This refers to the application or development of computer science theory and knowledge of algorithms to ensure the best possible solutions for computationally intensive problems. As a practical matter, a career path in the development of new computer science theory typically requires graduate work to the Ph.D. level, followed by a position in a research university or an industrial research and development laboratory.

As for me, I think if you want to follow a path in career 1 then additional business and management discipline that can be a benefit in a long term that if you want to take a lead role within the corporation in your future.

Hopefully, that might be a help to your questions. Let me know what you have any others questions.

Awesome, thanks for the detailed response. I would love to follow up. How should I contact you?
Here's my email: cxchan@ualberta.ca. Feel free to contact me when you have any question about CS. :)
Yeah if you want to get into the industry a bachelor's degree in CS is worth it especially if it'll only take two years.
Do you think there's a difference between bachelor v masters?
Yes. In my opinion though a masters isn't necessary unless you want to go into something really specialized like machine learning. Otherwise a bachelors is enough. If you have a choice masters > bachelors, but if a masters would take significantly more time then just get a bachelors. For most software engineering jobs a masters won't be necessary.