Is programming bootcamp worth it over a CS degree?

Is programming bootcamp worth it over a CS degree?

Other urls found in this thread:

codingdojo.com
github.com/jwasham/google-interview-university
edx.org/microsoft-professional-program-certficate-data-science
twitter.com/NSFWRedditGif

no

yes

Depends if you can make a decent portfolio.

I'm going to apply for a CS major next quarter, currently doing 2nd out of 4 years at uni. If I change now and it's going to be the same result in less time, it will be tremendously cheaper.

Here's the said bootcamp: codingdojo.com

I know some sites they go through building different apps that are supposed to be your portfolio.

I'd say the bootcamps and online courses that guarantee a job or refund are better than nothing. A degree probably helps a lot too, any degree though.

I was going to go here too, but the reviews suck. The previous students also saying it wasn't worth it because all this school wants is your money and can care less about your success.

>not teaching yourself
fuck off reddit

People with degrees get nice cushy six figure jobs at Google and Facebook. People who go to bootcamps get stuck at some shitty SF meme startup that requires you to work 60 hours a week and pays minimum wage plus worthless equity.

Work for yourself and be your own CEO. Everyone knows CEOs make millions.

My best advice...

If your state has community colleges that offers bachelors, and they offer a computer science program then that is the way to go. It's a great in-between expensive schools and those bootcamp/cert factories. I spent $1200/semester while my co-workers went into all sorts of debt and what not. We work the same positions, making the same money. Just my 2 cents.

Sup Forums, ladies and gentlemen

I've been looking for a good bootcamp and it seems like a lot of them have alumni who just make template sites on their portfolio and not real projects..

Just do edx and get the MS certs and you should be fine.

THey also offer mini-masters programs with the possibility to transfer credits at some colleges.

Bootcamps are shite BTW - even the best ones, the ones that are free but take 20% of your salary for a year or more are a crock of shit because they mostly only teach you the languages, and rarely ever dive into the fundamentals and principles of CS or mathematics that will be required to build optimal code or understand the foundation of how multiple high level languages work.

Plus none of them I know of teach networking, which is also essential, even if they all teach fullstack.

tl;dr Even the boot camps that give you jobs afterward are shit because none teach the necessary skills to program anything other than code monkey pajeet tier code.

>MS certs

Can you link to the certifications? Not OP but interested

Just do this and get a job at Google. If not Google, you'll be prepared for anything a coding interview could throw at you.

github.com/jwasham/google-interview-university

edx.org/microsoft-professional-program-certficate-data-science

There are others, just search microsoft, there should be some for networks and backend SQL stuff too, I just cant find it atm.

self study > *

If you pay $100 to the state of deleware to incorporate a company, you can be the CEO of almost anything!

A programming bootcamp will teach you a few languages and a framework. To them, "full stack" = HTMl/CSS + Java script + node.js + Java + SQL, or Python + Django, or Angular. They'll help you build a few working products to show that you can go from nothing to a deployable project. I assume they'll probably at least introduce docker, version control, testing, devops, linux + bash, Agile, etc. too

CS is different. Here's an example of what is typically offered. Everything up until "Theory" is usually required and most people will take at least several classes beyond that
>Math
Calculus 1-3, DiffEq
Linear Algebra
Statistics
other CS-y math classes like crypto/graph theory
Discrete Math
>basic programming
One or two classes teaching Java, Python, C++, etc.
>Low level stuff that you 99% don't need but helps you understand computers
digital logic
computer architecture
operating systems
>CS fundamentals
Data Structures
Algorithms
Programming Languages
>CS Theory
Theory of computation (aka Automata/Formal Languages/Turing Machines)
AI
Formal methods (most boring shit on the planet but it gets a lot of funding)
>CS applied
Software engineering (make products)
Software design (learn frameworks)
Networks
Web design
Web architecture
Graphics
Mobile dev
>Misc. mixture of theory/applied
Databases
Big data / distributed stuff
Compilers
Modeling

>Extra
Advanced CS courses, e.g. more AI/ML courses, more theory of computation, more algorithms, etc.
Extra math/ other discipline classes (e.g. physics) that interest you
If you want, you can take even more low level EE/CompE classes, no big deal
Pure/mainly CS research: AI, machine learning, algorithms, networks, security, etc.
Opportunity to do cross disciplinary stuff e.g. scientific computing/simulation for chemistry/physics/bio/engineering/neuro/psychology people, AI for economics, bioinformatics, biomedical informatics, imaging

(pt 1)

(pt 2)
So if I had to summarize:

Bootcamps will teach you how to build something like a web (or mobile application, I forgot to mention that) from a popular production stack. You'll learn a series of languages and frameworks that will enable you to do make things like that. There is a huge market for people that know how to whip up these really practical things because almost every business wants to have both of these. Websites and mobile applications will definitely be a huge market for the foreseeable future.

However, you could end up having learned something that will quickly become obsolete. Ruby on Rails was huge in bootcamps until it became eclipsed almost over night by {flavor_of_the_month}.js. React, Angular, Ember, jquery (a little less this one), meteor, backbone, PHP, node.js - essentially, any web library or framework that you can name - all suck donkey dick, mostly because javascript sucks donkey dick and nobody has found and agreed upon a good replacement for it yet, so they're constantly getting recycled in and out with whatever new bullshit comes into style. As a result, if you have only a surface-level understanding of the "full-stack" you're using, when part of that stack goes out of style, you go out of business.

I've also been using "full-stack" in quotes so far because what startup memers neglect to mention is that none of this shit is anything close to a full-stack. What you are really doing is putting together a 1-5/6 piece puzzle using different pieces and different connectors between pieces, with a little bit different within the pieces each time. Each of those pieces in turn is built up of its own pieces, which are built on their own pieces, etc. So while you may get really good at driving the car so to speak, if you never figure out how that car works, you'll never be able to repair it or build your own

(cont.)

That's what CS does differently.

Rather than showing you how to "drive the car" (assemble a web/mobile app), CS first teaches you the very basics of what "cars" are, what a car can do, what they look like.

It then teaches you what all the individual parts are almost from the ground up, from building a basic CPU, to building and simulating a full micro controller, to implementing parts of your own OS.

It shows you the best data structures to use in particular situations, what the advantages and disadvantages of each are, and how to analyze and design efficient algorithms that use them.

It teaches you about how programming languages work, how high-level code is processed by low-level code to make machine code. It teaches you what any given line of code may look like "under the hood." You learn alternative programming paradigms (i.e. not imperative) and computational theory, even if you never use them in practice, to understand fundamentally what "computing" is

You learn the math and theory needed to do applied stuff beyond the scope of javascript.

You also can learn all the stuff boot campers will learn in addition to all the theoretical stuff they will most likely never learn.

This isn't all to say that CS is fundamentally better than bootcamps. But there is a tradeoff and people tend to overlook some of the bootcamp negatives and CS positives.

Bootcamps can get teach you enough to get a job and be able to make stuff.

CS may or may not teach you enough on its own to get a job. You can graduate with a CS degree at some places without ever using git or writing software someone could actually use. But you will learn more and have much more solid fundamentals. A CS degree can teach you material that will enable you to do much more than what a bootcamp will enable you to do. But of course it's more time consuming and expensive

From a good bootcamp you can learn all the basics to function as a "blue-collar" programmer. Right now it means that you get paid rather well, have a cushy office job, and you are in demand. Everyone needs skilled programmers who can get things done. This is not rocket science, it's most likely just programming some adapters that move and transform data, creating basic web applications, and making minor changes to existing codebases. It's fucking boring. However it's a position from which you can advance and specialize.

Now most people with CS degrees end up in those "codemonkey" positions. To really make a difference you should get a PhD from some area that interests you. But keep in mind that specializing in a narrow field makes you more of a scientist than a tradesman.

By formal methods do you mean formal semantics like operational semantics?
That shit is fucking great.

It's the same concept but more general. At my university there's a lot of research on formal verification for embedded/low-level programming. Here's an example of what it looks like:

We have three controllers A, B, and C. Each controller executes one or more atomic tasks. These tasks can have other tasks executing as preconditions, race-conditions within a task and potentially between tasks of other controllers, etc. In large systems, where we can't simply trace through execution by inspection, we develop safety and liveness requirements and then develop ways to test the system to ensure that liveness is enforced and safety requirements are not violated.

It's very boring and complicated imo. Although I do believe that safety doesn't need to be, I think in general this stuff is not too interesting. But it's very necessary because certain systems like cars, rockets, electrical and transportation grids, are often both extremely complicated and expensive so they need to have verifiably correct software

hey look were engineers now

Do you want to be a dime-a-dozen front end web dev? Then yes. Otherwise go to fucking university.

We do a lot of general and specific research in formal verification at my university too.
I'm probably gonna do my master project on it.

I'm one of the few who finds it interesting but it can be very boring getting into.

I have a loose idea that software engineering in the future should be based more practical used formal verification instead of the mess it is right now.
Formal systems should be designed and proved by an engineer and then people can implement it.
Software sucks so much today, the industry has to change drastically.

That's super true, as people being to build more complicated software using huge almost "black box" libraries we expose ourselves more and more to undesirable behavior that can be almost impossible to debug.

I like how languages like Rust are gaining traction but I do believe we need tools capable of formal verification that are compatible with modern popular languages too (aka C). All the auto/smart shit is a good start but I wonder how far off we are from IDEs/compiler that will have this integrated well enough that it will almost become an afterthought

(also if your university is in a city beginning with N then I bet we know or know of each other)

No big city starting with N here man.

I can't stand this cringey "Data Science" cert Shit

Really building good Predictive Models requires a deep understanding of Statistics and years of practice