Computer Science/Programming Languages
Do you think that it's worth going to college to get a Computer Science Major/Programming Experience? I heard that coding boot camps do the same, but for less than the tuition that colleges charge you. What are your opinions on learning programming/computer science on websites like this "https://pll.harvard.edu/course/cs50s-introduction-programming-python?delta=0"
Great question here, and I'm sure you're about to get a range of mixed responses. I can speak from personal experience, as someone who's gone through a software development bootcamp (years ago), and have been able to successfully work in the tech industry for 8 years, going strong.
In my experience, CS majors are very knowledgeable in data structures, systems design, algorithms, math, problem solving, and primarily backend programming languages (Java, Python, C, etc). The CS grads that I've worked with in the past have extensive understanding on architecture as well. Not to say that they don't contribute to front-end though, because again, some of the strongest front end engineers I've worked with come from a CS background.
Honestly, you have to figure out what type of learning environment fits your situation best. I wouldn't look at bootcamps as a shortcut of any sort, because truth be told, the learning never stops — to this day, I'm enrolled in several courses to continue learning programming languages and concepts. Having a continuous learning mindset is critical in this field, and will lead you to the most success. In fact, I think the link you posted is a great resource and I've taken similar courses in the past.
I should note: I also have a 4-yr BS degree, and I'll also say that attending university is not just about your degree. Attending university also helps individuals learn to network, collaborate, overcome obstacles, and learn to think critically. In fact, these are just some examples of some lessons that I've picked up from university, that a bootcamp wouldn't have been able to teach in a shorter period of time.
In the end, find what works for you learning style and personal situation.
I'm wishing you the best of luck because it's a great field to be in.
Randy recommends the following next steps:
"Worth" is a collection of a lot of variables, so this question isn't easy to answer.
Here are some of the involved questions that ARE easy to answer:
- Do you need to go to college to learn a programming language? -- No!
- Do you need to go to a bootcamp to learn a programming language? -- No!
- Do I have to pay for online courses to learn a programming language? -- No!
First, you CAN learn from free sources. The paid sources (of any variety) may have resources that help make the learning easier (or may not). Which details in a course make it easier to learn will vary by student as well, so which is "worth it" will vary a lot, but in terms of "just" learning the language, schools and boot camps both will lose out - they just cost too much if learning the language is the only criteria.
But of course, you're asking about more than learning syntax - learning the art and science of programming means understanding how to break down big, vague problems into modular patterns of smaller, detailed, solvable instructions. In that, schools and bootcamps will offer more comprehensive solutions compared to "just" online courses (with larger associated costs).
I keep lumping "schools and bootcamps" together, how about comparing them? It's not easy, since every school and every bootcamp will have differences, but essentially, bootcamps are going to focus on the direct programming experience while schools will have lots of tangental details that may prove valuable in the job/life or may prove to be an expensive timesink that never really offers enough value.
My personal advice would come down to this collection:
- First, everyone will have a different way of getting "pushed" to learn things at the point where they struggle. Everyone also has different levels of free time and expendable cash to explore without commitment. You will know your needs best, so you have to make the call about worth.
- If you have the capacity to learn a programming language from a free/cheaper course before deciding on a bootcamp or school, I highly recommend it. Knowing a language would not be all you need to start working in the industry, but would really reduce how many different things you are trying to learn at once if/when you do enter school/bootcamp. Programmers often know more than one language, because learning the syntax of one language is relatively easy once you've learned how programs break down and solve problems. Learning a second (or third, or fourth) language involves fewer steps than your first one. That said, programming is much more about using a language WELL rather than at all - the majority of work a coder does is CHANGING or fixing existing code, not writing brand new code, so learning how to write expressively and in a way that is friendly to changes is an art form that you never stop improving. If you learn a language first on your own, in any kind of larger environment (school or bootcamp) you will be able to consider these next level questions and get advice and guidance on improving THAT, where brand new students will often find themselves in the world without instruction by the time they are ready for that level of nuance. Side Note: Python is a great first language - even if you end up in a job that uses a different language, Python teaches very good habits and has concepts that apply to most other languages, while languages that are use more often in jobs tend to translate less well to other languages.
- A school degree is helpful to get the first programming job, which is by far the hardest to get. If you look at job postings they very often say "a computer science degree or related experience". After the first job (say, 1-3 years), you are able to point to "related experience" and the degree doesn't really matter as a particular point (hopefully you are still helped by SKILLS you learned, but the degree itself stops mattering)
- I have little experience with bootcamps so I'll say little rather than enter into guessing, but I can say that skills are what matter, and bootcamp skills are skills. When I've been involved in hiring decisions at various companies, I've never cared about where someone got their skills. (I did have one friend who got rejected from a job because he went to Devry and the interviewer thought that showed "poor decision making", but said friend landed a job at Amazon a week later, so that interviewer can masticate a lemon). There HAVE been warnings in the industry about particular bootcamps that make great-sounding guarantees about refunding tuition if you don't get a job, but the fine print says that you have to spend X time applying to jobs and if you reject ANY job (doesn't even have to be programming related, doesn't have to be a livable wage) then the guarantee is void. I'd be very cautious about trusting any similar guarantee, but I've not heard anything about bootcamps in general not teaching good skills, and one of my former co-workers teaches at a bootcamp so I have no reason to think poorly of them.
If I were suddenly young again and deciding what to do, I would say:
- An expensive degree (big name school) is generally not worth it
- A college degree has lots of benefits, but crushing school debt you can never escape is absolutely a problem, so I'd want to be comfortable where I'd end up and not desperate to land a good job before the debt payments removed my ability to handle the various costs of living
- A bootcamp covers the essential skills for cheaper, but if I don't land a programming job I don't have "a degree", so again, it's a risk-reward calculation.
- Learning what you can on your own is much cheaper, but eats up a lot of time.
- Getting that first job is truly brutal. I have plenty of students that get their degrees and land great jobs...but still take 6 months to get even a first offer. If you are looking in an area that isn't a tech center, it can be worse. Whatever plan you pick, make sure you allow for the reality that you may take a lot of time to get that first job, so you have to be able to support living in the meantime with some other job or source of income while looking (and after the time spent in school/bootcamp that tend to be demanding of time/money)
I know this isn't a straight forward answer, but hopefully I've helped highlight some of the benefits and risks involved with each.
Corp America nowadays expects that a candidate shall have an undergraduate/graduate degree before they consider you for the open position.
You do not need a 4-year degree to learn computer languages. However, learning only the languages is NOT sufficient to land a job. If you have a degree in Liberal Arts and take some computer language courses to land a job as a computer programmer - you still have a shot.
I seriously doubt that with high school diploma and knowing computer languages will get you where you want to go.
If you do NOT want to incur student loan debt, you shall consider 2-years in community college and transfer to a state school where most of the credits are applied. In most states in the US, state universities for the residents are still affordable.
Also note that just because you have a Computer Science degree or knowledge of Computer Languages, you are not going to get the job. Nowadays, most companies will ask you to take their test (3-hours) before you are given an interview. My son graduated with honors in Computer Engineering from a state university but Amazon/Facebook/Google asked him to pass the test which he did resulting in a six-figure income plus a signing bonus plus stock options. This was more than 5 years ago.
You are correct that there are many ways to learn the programming languages. There are plenty of resources you can find online and start your own programming.
However, in the college, it would give you overview of different aspects of Computer Science, not only on programming, e.g. the hardware & software structure, computer theories, database structure, etc. This can help to you determine which segment you would like to develop your career in the future. The most important is how you best utilize the computer resources. This is very fundamental knowledge you need.
Apart from the knowledge, you also will have opportunities to discuss and interact with the professors and your classmates. This can help to establish people network for your career development.
There are also other extra curriculum activities in the college that you may not have another opportunities to participate after you start working in full time.
Hope this helps! Good Luck!
You will learn more in the Degree than doing only specific program languages. Also degree pays you more