Self-taught programmer vs. College education

What is better - to be a self-taught programmer with a lot of hands-on experience or spend the same amount of time in college getting a degree in computer science? My take would be the former.

  • Self Taught Programmer

  • Sometimes the hands on programmer is better.  They have the experience of trial and error and figuring things out.  The college degree doesn't necessarily mean you are better.  They may be learning more concepts and being able to address various problems.  For me it depends upon the person.  I can see it both ways.  Then again, even though I am a retired educator I do believe that college may not be the right fit for everyone.  Experience is a major plus.  .

  • Whatever works best for you/

  • Whatever works best for you/

  • It a catch 22 situation depending if you want to work in that particular field, you will probably need a degree to even be considered for the job and on the other hand experience would help so in a nutshell having both a degree and hands experience would help.

  • Both are probably pretty equal tbh. Although I would say the school route would probably overall better as then you could say/show that you spent the time to get certified/accredited through a school which most jobs are usually looking for

  • If you have to go into major debt to get your CS degree, then just go the self-taught route or perhaps even enroll in a coding bootcamp.

    Otherwise, if you have the time for it then getting a degree would be valuable to have for sure.

    But it’s important to know that you can get a programming job without a degree with enough determination and effort. You have to really want it and be self-motivated.

  • If you have the certifications, does it matter how you learned it?

  • Both? The thing about college and straight programming work is that you don't really do much involved programming in college. Or rather, you do very particular exercises that can get involved, but don't reflect real-world work. You learn some academic theory and math that can help lay the groundwork for being a better programmer and computer scientist, or mathematician, except that increasingly degrees eschew the math and treat it as an engineering degree, but less rigorous (consider computer engineering instead for rigor). Programming jobs are notorious for testing applicants in ways other jobs don't feel the need to do, or can't practically do, and it can get pretty toxic but it comes from degree mills churning out unproductive graduates that found a way to worm through classes but understand little academically and can't do much practically. So graduates often need either an extensive interview or some sort of example or portfolio they can point to for assurances that they are either ready or at least capable and trainable. However, the thing about self-taught folks is that they will not be presumed to have credibly done the above types of things on their own. It will be assumed that they did whatever code school or youtube or on-the-job or whatever intro they had and just went with it. They may be effective with the languages they use, maybe even better "programmers" and more experienced employees in general - which is a lot of the work out there - but they'll likely be limited in where they can go. 

    There's a rope tug in computer science undergraduate education between the rigmarole of academia and advanced work and the ever-moving and at times tedious mess of programming and software engineering tracks that are focused on immediate job placement. You don't need to be in school for 4 years to learn to do some basic programming and a bit of theory. But a lot of "job training" is irrelevant or arbitrarily replaceable in research and academia; computer science undergrads are often unprepared for high education and serious work, having neglected math and wasting time on other things in undergrad. That said, on paper a lot of schools differentiate between cs and software engineering degrees, even if the actual curriculum is essentially the same. 

    As in all things, the individual is the most important thing. A motivated and curious person will learn most things on their own anyway, and get into things of their own accord, whether they're in school or not, or go to school later, or whatever the path is. If you want a job as quickly as possible, you don't need a full bachelor's degree (you should still do something, don't just find a random IT job - if you even can - and hope it will propel you somewhere you want to go quickly; you're liable to waste years); if you want more open doors or advanced education or academia, then get a degree. Either way, still do all the stuff on your own anyway, and get involved in things, do things, because that's where you'll need to stand out anyway.