Like many people, I too have been pondering the purpose of college. It took me forever to complete, I have mortgage like loan terms setup where I will be paying if off for the next 25 years, and I cannot remember the last time anyone asked me about my education background. Part of me is thankful that I was able to attend and finish school, but a another part of me is upset about the burden I now have for what sometimes seems useless. I now have three children and I have been thinking about what they will do and how can I best support them in choosing their futures. I am exploring all of this to help me reason with our state of education. I would like to share my findings with you. This is my opinion and it is ok to respectfully disagree, but I think we all can agree that upper level education needs reform in some way or another.
Let's just start by addressing the claims that in three months in a bootcamp can better prepare you for a career than four years at a college. It is not a fair question and that claim should be disregarded completely and neither route is a guarantee of a successful career. All bootcamp and computer science degrees are not created equally. Any poor program will leave you ill prepared for any career. Completion of either program does not validate a student proficiency. A diploma does not come with a GPA on it and I am not sure if you can really fail out of a code school.
Code schools are focused topic education establishments that survey the current needs of technology companies and train people to fill those roles. They from a practical place using a hands on approach to train people. Students learn from industry professionals, technology forums, and the completion of projects. Instructors are not required to have a degree. Code schools take about three months to complete and can cost people up to $20,000. Graduates expect to quickly get a job making a ton of money and be great at it.
The time and cost model is quite attractive but lets look a little deeper. Have you ever thought about the expenses saved not being in college but working? If you were hired after your bootcamp making just $60,000 a year, that's almost a quarter of a million in income that you would take in instead of being in a 4 year degree. You kind of have to appreciate what that is as so many people come out of college crippled with debt.
The curriculum does not come out of super pricey text books. It comes directly from professional developers. Content is directly relevant to the tech ecosystem. Code schools focus on what they say you need to know instead of general knowledge. You will not learn life science, economics, literature, or non tech history. You will learn the latest in industry standards and best practices. You will learn the tools used to be a master of your craft. You will go through career preparation and work on interviews. You will probably have accumulated over 500 hours coding and a solid portfolio.
You will not learn much about data structures, algorithms, or low level operations of a computer. You most likely will not learn about foundational concepts in technology. You probably will not talk about memory allocation, packets, artificial intelligence, data mining, robotics, or computer vision. I doubt you will go into networking or computer hardware.
Right now many employers do not see a bootcamp certificate as equal to a degree. This means that you may not have interviews lined up once you graduate like you may think.
There are a few things to be aware of when taking a bootcamp. Do you know whether or not the teacher is qualified? They may be a great developer but a horrible teacher. They may be a great teacher but a terrible developer. You can say the same about a college, but at a university there are some sort of guidelines. That being said, I feel some of those regulations can keep the best teachers out of play. Also think about what the school is teaching. They could just be teaching the latest trend and that trend will fade out. When that happens, will you be in trouble because you were too specialized?
Universities are broad topic education establishments that teach a lot of theory. The course content is regulated by the schools accreditation. They teach from a philosophical place focusing on lectures. Students learn from professors, reading text books, and writing papers. Instructors have many degrees. Universities take a minimum of four years and can cost well over $100,000 to complete. Again, graduates expect to quickly get a job making a ton of money and be great at it.
College takes time and it is expensive. It is getting more expensive every year. A lot of the time and cost goes into the broad spectrum of classes that are required for degrees. A computer science major will need to take classes in non computer science fields. This can be seen as good and bad. Not every one knows what they want to be when they start college, so it is good to expose these young adults to all sorts of options. Also you may find that you are interested in topics that you would not expect. But is this worth the cost? That will be a personal answer.
A lot of the degree specific courses will be super heavy in theory, taught from a lecture hall, and reinforced through text books. The knowledge presented will be well rounded. The concepts are solid and have proven themselves over time. They teach a great foundation of knowledge and they will grow your ability to think critically.
There will not be as much project work and the projects you do will most likely not be as industry relative as a code school. The general take away I have from my reading is that university CS students do not write enough code, they do not have a strong portfolio, and are not prepared for a real job. Some companies claim that it takes longer than desired to get them to a productive place on a team.
Another troubling piece of info is the score cards the department of education has released on different programs. Here is the Computer Science one. Graduation rates look low, salaries look low, and graduation costs are high. It's not exactly the sales pitch that draws the masses.
I am not saying all colleges and all students are like this, but colleges place a lot of focus on the college life. Join some greek thing, go to football games, and have some kidney failure. You will not get that same experience in a code school and for some the social growth thats happens in college is super important.
I read an article from Triplebyte; they did a study on candidates that they have been placing. They found that bootcamp grads as a group tend to be better than college grads at web programming, writing clean and modular code, but worse at algorithms and understanding how computers work. Bootcamp grads match or beat college grads on practical skills but lose on deep knowledge. Bootcamp grads do better on web questions involving web servers, databases and load balancers. College grads do better on low-level design questions involving bit/bytes, threading, and memory allocation.
I also watched an interview that CourseReport did with the Director of Education at a successful code school. He has his PHD and taught inside universities for 10 years but left the system because wasn't designed to successfully train his students. Computer Science students do not write nearly enough code in universities, to be successful.
Disclaimer: if you think college is the greatest thing out there and you just can't wait for you kids to be an alpha omega whateva just like you, skip this section :)
Ok, so I really tried to be impartial with my findings and I apologize if my world view is slightly jaded. I hope you can appreciate my effort to report something I don't fully support. I went to college; I have a 4 year degree. My $100,000 dollar piece of paper is in a box in the garage. I should get it framed or burn it.
I was constantly struggling in my college because they were not teaching what I knew I needed to know. They are a school that takes pride in their technology training. When I had a question, they would open the teacher edition book and give me the answer. I would regularly post questions on forums and get real answers from members of the web community. The classes I needed and wanted to take were not offered when I needed them so I had to take something else that would count towards graduation. The program is flawed, the best teacher I had was a professional that came in to teach a class. Every time I send out a monthly payment for my student loan I am reminded of how college failed me.
After college I went to a bootcamp of sort run by a company. This was way before bootcamps were even a thing. What I learned in 6 weeks was above and beyond anything I ever learned in school (although college business law was amazing).
I do not think colleges are evil. I actually think they do have a place in our society just not our dev community. The code school needs to step up and teach computer science and the college needs to bow out... Ok, rant complete.
Both routes will create success and failure. Both routes will have flaws and amazing components. It's not a one answer fits all kind of question. Each person needs to evaluate what is important to them and pick the path that will get them there.
People who will succeed will work hard, commit to the process, put the time in, inside and outside of the class, and do what it takes to succeed. This is true for both code schools and colleges.