Programming Questions

  • Newest
  • Popular Tags
  • Ask A Question
  • Should I pursue a CS degree?
    Hey guys, thanks for reading. I want to be a good software engineer/developer. I've been reading about being self-taught and dev bootcamps. A lot of people seem to advocate those over the traditional option of getting a degree. I don't really care about a credential. I just want to be excellent at programming. Is a CS degree the best route? Some people say there will be crucial gaps in your knowledge if you don't get one. Others say a CS degree doesn't give students adequate experience for actual jobs. I am loving coderbyte and have a lot of books on coding, however, all the resources are a little overwhelming. Can anyone give a recommendation? What should I do if I want to become an excellent programmer? I am learning a good deal working on my own projects, looking things up as I need them, but will a structured approach take me further? What do you think of dev bootcamps? What do you think of the CS degree? Thanks!
    MeatMachine posted this question on 5/15/14 | degree, job, bootcamp, math, cs, academy
    Answers
  • +
  • 2
  • -
  • I'm biased because I'm starting a bootcamp next month. I've met several hiring managers at startups that won't hire CS grads because almost none of them know how to actually code. You don't spend your time programming as a CS undergrad, mostly just learning theories.
  • +
  • 2
  • -
  • Hi, I think depending on what your intention is and what is your definition of good software developer/engineer. If you want to get a job and you like programming, you can definitely do without a CS degree and go into bootcamps, or at least find a good mentor. I think online tutorials are not enough, I've been trying some, and learning by myself. It is because there are too vast of materials out there, knowing which one to pick and which one not to pick I think is almost half of the battle of becoming a self-taught programmer. Definitely with persistence, keep learning, reading a lot of materials. trying hard, spending your time perfecting your craft, as with any traditional crafters do, will significantly improve your skills more than any average CS graduate. On CS degree, the thing is, I have a lot of friends with CS degree from a famous university in NYC here. Most of my friends are college fresh grads. I can say that most of them are not job-ready. Simply because what they've been learning in CS degree is very broad in itself, without any specific skills that are usable in real work place. What I mean by very broad skills are, they know how computer works, they know how to code, but they don't know how to make real product (e.g: social networking website, an iphone app, a game, etc) because those skills require a very narrow set of skills (e.g: to become a web developer you need HTML, CSS, JavaScript, Ruby and probably you need to have knowledge of Bootstrap, SASS, LESS, SCSS, jQuery, Node, Angular, Backbone, Ember, Rails, VCS, Test Driven Development, Best Practices, etc). I do however has this one friend in CS degree and Math (dual degree) that straight after university got a great paying job and moved out to SF. He was able to get a job because he didn't just simply sit and did the curriculum in his study, but actually went out and took his education beyond that and actually took real-world programming problems and techniques. He learned to be in touch on whats happening in job market in terms of usable skills. I can say that most of his friends, while also excellent in their grades, didn't push themselves beyond whatever their degree required them. His friends mostly just got internship jobs (yes, they are CS degree graduates!). Actually, most of my CS degree friends also need to go into programming bootcamps to make their skills more relevant in the job market today. On the other hand, if you want to go into academia, I think you do need a degree. I have one friend who is considering a CS degree because he wants to work and teach in academic setting in cyber security. There is an interesting movie to add to your perspective, "The Internship"
  • +
  • 1
  • -
  • I was pretty much in the same boat as you last year. I decided to study Maths instead of CS in the hope that I could pick up most of the relevant skills. That wasn't really the problem, learning to code yourself isn't that hard. Having a degree in something like Math will probably make your skillset as a programmer a lot more varied which is always good. I just dropped out of my course, i had a 4.0 GPA from the frist year. I realised that if you love code, and your given the opportunity to fuck around with code in an educational enviorment, why wouldn't you? I can't think of any reason not to do it, especially if you like it. My other piece of advice would be to try and persue an atypical CS Degree. I'm going to study something called Computational Thinking next year. I would say a traditional CS degree would be pretty mind numbing. If your going to college why not do somehting you enjoy, you'll breeze through and get a degree at the end. If your in the US, tuition is pretty expensive so I don't know. University is (basically) free for me. You should look for internships during your summer holidays, they'll give you an edge when it comes to knowing stuff thats required in industry. Whatever you do you should do something you enjoy. Also I do not for a second believe that HR people "Dont hire CS grads" because they can't code. That is utter BS. If you have no experience, and your self taught good luck getting hired. A CS degree isn't the be all and end all, but its much more of a foot in the door than having no degree. If you are self taught you should put as much as your code on github as possible. Not just because Git & Github is awesome, but employers can easily tell if you know anything from your github or other portfolio stuff
  • +
  • 1
  • -
  • You might pick up a thing or two in college, but in my experience they don't teach much beyond theory. That could be because my degree is in CIS and not strictly CS, but for me, college didn't do as much for my technical knowledge as it did understanding the business side a little better. I would say, generally, any college degree is WAY overhyped, but not completely useless. Just don't expect because you have a degree means you'll get a job much easier.
  • +
  • 1
  • -
  • Thanks for the feedback, guys! Thx for sharing your background as well! Guess I've got a lot to think about...
  • +
  • 1
  • -
  • As a CS master student, I would say you do not need the CS degree to become a very good programmer. To become an excellent programmer, however, I think will require a CS degree or equivalent knowledge, because at some point lacking knowledge of things like algorithms, datastructures, networking-principles, cryptography and other concepts that rely heavily on theory will make it impossible to raise your level any further. I would not say that it is impossible to learn these things by yourself, but I think it will be harder to reach the same level. In the end it probably also depends a lot on what you want to work as. If you want to do websites with js and python it will probably not be that important. If you want to code complex services and systems in java or c++ it will probably become quite important, because the problems are typically non-trivial and coding the solution is the easiest part of creating a solution. Sometimes it takes a month to find the solution whereas coding it takes an hour.
  • +
  • 1
  • -
  • I have been a part of the industry for over 20 years. 15 of those years I didn't have a degree. I was a certified professional for many years. The industry appears to have an attitude where, if you can display the skill set, you will be accepted. However, if you do have a degree, it opens a few more doors. You can always circle back around and pick one up later in life (as I did). Just one of many possible answers.
  • +
  • 0
  • -
  • I do recommend a CS degree. It will teach you critical thinking skills. It is affordable at UoPeople.edu. I take 2 courses per term, and there are 5 terms per year, the cost is $100 per course. So, you're talking $1000/yr, which is less than $100/month. For practical programming experience, I recommend any of the free coding websites, when you get good enough, you can transition to a paid site like coderbyte. Both formal schooling and practical experience have their purposes in improving your overall job/career opportunities. Good luck
  • +
  • 0
  • -
  • @RyanDagg, where are you from??? haha I have been frustrated for quite some time now, I am really only pursuing my bachelor's degree just to get the job, it seems like every company looks for your bachelor's degree and quite frankly that does not justify what you know. I have to say I am posibly a 9/10 in Java and know quite many languages and employers seem to not care about your knowledge only your degree. That is on my experience...Im from San Diego CA, and want to eventually work at Oracle...well see, as far as the relevance of my comment to the OP, I think that as long as you have great projects out in the wild and not just knowledge I think you could get a job you want
  • +
  • 0
  • -
  • Depends on lots of factors. If you listen to this for 3 or 4 minutes they give a good answer to your question. shoptalkshow.com/episodes/071-rapidfire-17/#t=31:10
  • +
  • 0
  • -
  • I just got a job as a professional developer, and I do not have a CS degree (I studied physics and math but got by with almost no programming). If you want to really know what you are doing, you should probably get the CS degree. It is true that you don't necessarily come out ready to work, but the people I know had a framework for learning what they needed that made the training process easier and faster. If you are very self-motivated, dedicated, and intelligent, a degree isn't necessary... but if you find a subject interesting and have the option of studying it at a university - why not do it?
  • +
  • 0
  • -
  • As a recent bootcamp grad, I would strongly suggest you NOT go that route if you want to learn to be a developer. My personal experience was that I learned only a fraction of what I expected, and that came at a cost of many thousands of dollars. If you want to be a developer, there are a great many resources on the web. You will be best served by learning as much as you can, then building as much as you can. Here, check out Michael Hartl's amazing work: www.railstutorial.org/book/ This will teach you Ruby, Rails and the basics of web developent and TDD. It's a treasure in electrons. Do it, then grow from there.
    Log in to write an answer.