Posted by speckx 3 hours ago
File under "old man yells at clouds."
I think it's worth asking what a CS degree is for. Is it
to teach you how to code and make you obviously hire-able
by industry? Maybe it's to teach you how to think about
data and code? If you think it's the former, then AI is
probably going to be a problem for you. If the latter,
it's neutral to somewhat good.
I've been hiring CS grads for 4 decades (yikes!) and
there's definitely been a shift. Not all existing
programs are bad. Not all young software devs are bad.
But... the percentage of recent grads that seem to
understand what data processing systems are about has
definitely fallen.
Us old farts in industry must share some of the blame
here. Our industry seems to be pretty boom or bust.
Someone comes in with a stack of money and tells people to
build { the web | blockchain | AI | virtual worlds | etc }
and suddenly there's a rush. At the start of the gold
rush, we're not sure how to build everything that's going
to be the next google [[1]] so we fill the room with young
kids who have seen some recent tooling and will work
cheap. We don't develop them. We want them to be
compliant drones dancing to a tune played by a CTO and
VP/Eng who got their jobs because they're the children of
the fund investors who gave the startup a bunch of money.
And then we go back to Universities and tell them "OMG!
Your not bar-raising your grads by teaching them __fill in
the blank__!" [[2]]
So... I don't doubt it looks like AI is destroying the
degree. But maybe it's just making it hard to ignore
previous problems with the uni to industry pipeline.
And I didn't mention the Mythical Man Month once in this
comment. I'm getting better.
1. I'm not sure too many people want to be Google at the
moment, but over the last 25 years, they've certainly
done well.
2. I'm intentionally misspelling "you're" because in my
time in industry, I've found only about 15% of people
would pass a 7th grade spelling test. What are you going to do with your new-found CS knowledge?
Are you going to make the next google? Are you going to
get a job at the local insurance company processing
claims? Teaching yourself without a degree is a bad path
if you want to do grad school.
Maybe you want to understand how software works so you can
have a better understanding of the world and participate
more fully in society? Well... I can't argue with that.
I'm bearish on using AI to teach yourself CS because AI
doesn't teach people CS. If you learn something about CS
because you're looking at the output of an AI model, it's
sort of a side-effect.
We probably have a very different idea about what "CS" is.
I think of it as an organized exploration of notation,
processes and proofs related to a branch of applied
mathematics whose subject is general purpose computing
devices. Asking an AI "give me a function to calculate
the fibonacci sequence in rust" isn't going to help you
understand a) where the fibonacci sequence came from, b)
what recursion is (and why and how it was introduced) and
c) how the lexemes in a programming language map to an
abstract process which when reified delivers the fibonnaci
sequence.
I've picked a pretty simple example as a straw-man, mostly
because I think it //should// be knocked down. If this is
what you're doing to "learn CS" then more power to you,
but you're probably not doing yourself any favours.
You probably can use AI with prompts like "generate
example code that implements the abstract factory pattern
and explain how each function relates to the pattern" and
get a fairly decent explanation. Modern agents can keep
enough of a context you can ask it some decent questions
if its examples aren't entirely clear.
I've used and seen other people use Claude Code to
interatively generate design work. Mostly APIs. It's
hardly ever right the first time and Claude Code sometimes
barfs if you ask it to explain why it did a particular
thing. But it's mostly decent and in a few cases it has
pointed out a few ragged edges I didn't notice.
But... I learned how to map between human requirements and
software on my own. I don't know if someone could learn
expert level design by examining the output of a tool that
was trained on mediocre code.
And Claude Code really doesn't understand how to interpret
my prompts about TLA+ and Coq/Roq. It doesn't generate
complete BS. I'm thinking there's just not enough
training data included.
In the old days, if you went to a decent school like
Harvard or Yale or CMU, you could be reasonably assured
the education wouldn't be bad. [[1]] You could go to a
cheaper state state school and get a decent education,
though there was always the chance you would get a crap
instructor or two.
There's an idea that you can teach most people to be
effective software developers by putting them in front of
a terminal with a man page and a c compiler. I believe
this is bullshit. This technique will work for //some//
people, but not as many as sitting you in a class-room and
having an expert explain what the important bits are and
stepping you through the reasoning of why.
I think "learning by AI" may work for //some// people, if
they figure out how to ask the right questions. I
recommend reading decent books like Gries' "The Science of
Programming" or Knuth's "Literate Programming." (You also
have to read SICP because it defines a base level
understanding that all those CS grads have supposedly
learned.)
But I'm reminded of the end of the movie Hidden Dragon,
Crouching Tiger (spoilers ahead) where it is revealed the
antagonist learned kung fu from a well regarded book, but
since they couldn't read, they only looked at the
pictures. They understood the forms but not the
motivations for why the forms were developed. The
antagonist was a formatable foe, but was eventually
defeated because that minor difference in context was
sufficient to lead to their defeat.
I don't think you can learn to be an expert computer
scientist exclusively by reading books / papers. But you
can come close. I don't think you can learn to be an
expert computer scientist exclusively by asking AI to give
you example code, explaining it and critiquing your code.
Mostly because "being an expert computer scientist" is
less about being a 10x coder and more about understanding
the relations between abstract concepts, notation and
symbolic manipulation, how concrete problems are
represented and manipulated and how this all relates to
concretization using computing machinery.
AI gives you an answer, not the understanding embedded in
the text from which the answer was derived.
But if you do it right and you ask AI the right questions,
that understanding can be revealed.
I think my sense is that it is very easy to use AI wrong
and difficult(ish) to use AI as a learning tool. I
sincerely wish you well and would love to read a blog
about your experience.
1. Do not ask about MIT. They're beyond salvaging.I'm also now reminded that this is ran by that same guy who complained about the MIT license allowing people to do whatever they wish.
1) Get the degree, do not drop out - In our society educational status signaling still counts and plays a good huge part in whether you can successfully get a job, do research, get tenure etc.
2) Learn AI to offload labour but not your brain - AI exhibits "Jagged Intelligence" and is "Probabilistic". So you must confine it within explicit guardrails. Always have the "Map of the entire Forest" in your Head and have AI contribute only in constructing "the Trees within the Forest" and that too where you know the peaks of its jagged intelligence lie.
3) Focus on end-to-end Software Engineering and learn how to do everything yourself with no external dependencies other than AI. Specifically, learn to map Requirements -> Formal Specifications and do Formal Verification against it. You need to become the overall "Systems Engineer" (as it used to designated in the old days).
4) In addition, use AI to learn about business functions viz. marketing/sales, accounting, legal etc. so you can setup yourself easily as a OPC. This is your Nirvana.
5) Because AI can go deep in any one particular area, cultivating cross and inter disciplinary knowledge, studies, skills are more important today. You must truly build a "M/T" shaped skillset.
6) Always keep in mind Grant Allen's dictum viz. "I have never let Schooling interfere with my Education". AI is an excellent Socratic dialogue partner to learn anything quickly. Practice Maieutic Prompting with AI so you can appropriately constrain it and accelerate your learning curve.
7) Never ever stop learning something actively (can be Mental, Verbal or Physical). The subject you are learning can be anything but the key is to do it with mindful self-effort. It has been shown that people who are curious, continuously learning and figuring things out for themselves keep their mental acuity well into old age.
PS: In order to motivate you, here is something for you to figure out and learn.
Set Theory/Propositional/Predicate Calculus - Curry-Howard Isomorphism - Lambda Calculus/Simple Type Theory - CoC/CIC
PPS: If you fully understand it, your professor will award you the degree immediately ;-)
Unis usually watch industrial revolutions from far and have several years to experiment and come up with an approach that mostly works before pushing students through those policies and coursework. This revolution threatens to destroy their business, so they feel an urgent need to do something, even if slapdash policies much better changed quickly.
AI is throwing a wrench in the normal workflows because:
(1) it can be seen as an existential threat to Unis (either their business model or the value of having their diploma),
(2) it is undercutting the value of a Uni degree because that diploma doesn't increase your odds of getting a good job right now,
(3) even people in the workplace using AI aren't working with consistent policies. Tokenmaxxing, then Token-efficiency. You might be prosecuted for a crime if you put confidential customer data into the LLM machine (my CEO sent an email warning about this to all employees), but all of your incentives are to move so fast that might be the only option available. Most of the time it has more to do with negotiating the uncertainty around what is the role of the human in the SDLC (ideation, planning, design, coding, testing, review, maintenance, iteration, coordination, etc) and what is the role of the many agents.
(4) Students are coming to Uni with AI as a habit and might need to change those habits to adhere to Uni policies. The little ones are getting access to LLMs early so the habits are formed early.
(5) Teachers / professors have always had to contend with cheating (how to detect and how to punish). Teachers can use a calculator to build the test (eg. Ensure the contrived numbers on a math equation are solvable and to verify the answers on their answer sheet). That doesn't mean that students should have access to a calculator if the purpose of that unit is to learn the concept without the use of tools.
As frustrating as it is for you, it is almost certainly as frustrating for the professors and department heads.
The cost cutting is a normal headache in all aspects of life. Welcome to capitalism.
Provide examples.
It's hard for readers to gauge whether you're complaints are legitimate or overreactions.
> The amount of work involved has also tripled
are hard to evaluate if I don't know what the work was before. Nor can I compare with my education to see if the workload is reasonable.
> I am here to learn, god damn it, not barely scratch the surface of the 15 deliverables I have for a 3,000 word assignment.
What type of CS courses require a 3000 word assignment?
The advice I give you is the same I'm trying to believe in myself: just chill dude... AI isn't human and while can't be one, you are "safe"... We are still figuring it out while it happen to find another way to "feel valuable" after code-writing is no longer the source of our self-value.
Hold onto the roller coaster hand rail, as we become the agrarian society we were all along.
Energy farmers in the desert.
Every farmer fixing his own tractor.
Thats where we come from.
The "everyone is special, and every product is specialized" period is ending.
Everyone is an expert on exactly the things they decided they wanted to be an expert on now.
Thats where we're headed.
If you listen carefully, you can hear the sound of humans being plugged into the matrix, and downloading their fill of cartridges, in ever increasing numbers.
Talk is cheap again.
See you at the replicator parts store. :}
No one needs AI in universities or software engineering. It only benefits the middle managers and mediocre people who jump on any bandwagon in order to help their careers.
No software has gotten any better since AI, except that some forgotten bugs from the 1990s were found, just as 20000+ bugs have been found by the Luddite OssFuzz system before AI.
EDIT: zamadatix is an administrator. They felt offended by the swipe at mediocrities.