I’m looking for feedback from the community. My son made a plan to get a 4 year degree from a decent state university in computer science but is having second thoughts. He is looking at ~$130K in costs and 4 years of not working vs trying to find work and build a resume organically. He’s a fine young developer who loves C++ and learned Java, web dev, and EDA in his teen years for fun. His written several languages and toy compilers, ordered PCBs for his own gaming device, and built a social network in the 6th grade. He’s looking forward to higher level coursework but dreading the intro classes. His motivation for getting a degree was to be marketable to employers, but also to gain a better understanding of fundamentals. With AI making entry level programming jobs scarce, does it really make sense to invest the time and money? If not, what sort of pathway into a programming career would be a good alternative? Any and all advice appreciated.
It says when trying to figure out what to study, think about what might give you most options for the future, a future that you might have almost NO way of predicting now. He calls this "staying upwind." He gives an example:
Suppose you're a college freshman deciding whether to major in math or economics. Well, math will give you more options: you can go into almost any field from math. If you major in math it will be easy to get into grad school in economics, but if you major in economics it will be hard to get into grad school in math.
And given a choice between studying two subjects that interest you, but one is easier for you and one is a bit harder (but still within your abilities), opt for the harder one:
The best protection is always to be working on hard problems. Writing novels is hard. Reading novels isn't. Hard means worry: if you're not worrying that something you're making will come out badly, or that you won't be able to understand something you're studying, then it isn't hard enough. There has to be suspense.
You don't have to automatically agree with everything in his essays as Great Truths, but it's worth considering his ideas.
https://www.joelonsoftware.com/2005/01/02/advice-for-compute...
The moral of the story is that computer science is not the same as software development. If you’re really really lucky, your school might have a decent software development curriculum, although, they might not, because elite schools think that teaching practical skills is better left to the technical-vocational institutes and the prison rehabilitation programs. You can learn mere programming anywhere. We are Yale University, and we Mold Future World Leaders. You think your $160,000 tuition entititles you to learn about while loops? What do you think this is, some fly-by-night Java seminar at the Airport Marriott? Pshaw.
The trouble is, we don’t really have professional schools in software development, so if you want to be a programmer, you probably majored in Computer Science. Which is a fine subject to major in, but it’s a different subject than software development.
I don't know. Some people will do better if they follow the established path. Others blaze their own trail and don't do well in rigid environments. I know I did not.
Ten years later, the best part of my studies are the ones that felt like a distraction and a waste of time back then: mandatory engineering and liberal arts classes. I would have learned programming on my own either way, but these other things added so much depth to my life!
I think that there are so many ways to live your twenties and grow as a human and as a professional. I strongly doubt that saddling yourself with debt is the best way to do it. Given four years of your full attention, you can achieve so much more, provided that you have the curiosity and discipline to try. I just wonder where the strength to explore the world beyond your main interest would come from.
It's a fairly recent phenomenon. (I'm old, so recent may mean different things depending on you frame of reference.)
I got my start before university by building websites for people, then eventually web apps. I had a successful little business by my first semester.
How long ago did this happen?
Most people have an addiction to food and shelter and can’t wander through life aimlessly finding themselves trying to be a better citizen of the world.
Learning programming and being employable directly out of school is entirely different.
So that's another option to consider: do the CS degree part-time while working on breaking into the industry. You can adjust your workload each semester depending on circumstances, so it's flexible for someone job hunting.
[1] https://www.coursera.org/degrees/bachelor-of-science-compute...
I have considered enrolling in a university precisely for the same reason, but I never would have thought that something like that would be considered "valid".
I guess I'm full of questions for you, but in short:
- Where are you coming from and what is your target destination?
- Have you made 101% sure that this way of studying would be acceptable to the employers in your prospective destination country?
- Does one need $20-25K up front, or is there a payment plan?
Thanks if you decide to answer, and I wish you a good luck.
Happy to answer. Feel free to get in touch on one of the socials in my profile to discuss further.
Q1. I'm from Australia, and the target destination is USA. Although I have no firm plans, I want to have the option in future. Australian's have access to a particular visa called E-3, which I have failed to obtain in the past due to lack of degree.
Q2. Yes. Upon completing this, I will have a BSc in Computer Science from the University of London. It's a bachelor's degree as good as anywhere. The exams are proctored, and all the exams/assignments are graded via Goldsmiths University. It's 100% legit.
Q3. You pay per module, so you don't need to pay up front. You just pick how many modules you want to do that semester and pay for them. The only requirement is that you must complete enough modules per semester to finish within 6 years. Since the education is directly related to my work, it is also tax-deductible in my country.
So I think the real question is less "should you get a CS degree" (I would have said no in 2015 too), and more "should you plan for a career in software development".
I did end up with a CIS degree (computers in the business college), rather than a CS degree (engineering college). I’m not sure how the required coursework might influence the development of various soft skill. It was never something explicitly taught, just things I was forced to develop in order to get through to graduation.
Yes, it's possible to make it without a degree, but it makes things a lot more difficult. Don't second guess it. Do it!
Also, no reason to dread the intro classes IMO. Given his experience, it shouldn't be hard for him to ace them and race on ahead to bigger and better things. I learned some interesting things in intro CS, despite also coming in with prior programming experience.
Feel free to send me a message if you have any questions.
On the practical end, your degree is still a big filter for how companies screen applicants. A lack of a CS degree makes it way more difficult to get in the door. I know there are counterexamples, but 99% of my coworkers had CS degrees. Unless the money is a huge burden, or the school you would go to really is crap, then yeah, the degree makes the rest of the journey much easier.
As advice, try to get evaluated out of the intro courses and skip to higher level stuff. Often if you can show a prof that you can program (before the school year begins) you can place right into a course that is at your level.
The AI arguments are also facile. A CS degree is still the best training to be ready to use AI effectively. You understand more about how it is built than everyone else, plus you know way more about every tool surrounding the AI, and would have an easier time making your own.
I know some people have success with alternative paths. But the main road is the main road for a reason here.
Edit: Please also look at the best schools for CS, and don't just discard them as options. My coworkers out of these schools got even more out of their classes and costudents than I did. Your son sounds talented, and the best schools can help talent go even further.
Not to discourage choosing math over CS, of course.
You just have to do it for the right reason: Because math is friggin' cool, and programming is easier to learn on your own than math, and there is a skill transfer that goes from math to programming that doesn't go the other way.
I don't really mind it either, if I want to do something novel I do things on my own.
I’ve found myself drawn to areas of CS such as graph machine learning and programming language theory where I wish I had stronger math chops beyond calculus, linear algebra, and introductory discrete math.