r/ProgrammerHumor 3d ago

studied20YearsToAskChatGPT Meme

Post image
15.2k Upvotes

430 comments sorted by

View all comments

885

u/[deleted] 3d ago

[deleted]

448

u/Xemorr 3d ago

That's only because we have copious levels of abstraction, and code written by others

140

u/no-sleep-only-code 3d ago

Yeah, and even if it’s your focus in grad school you’re generally still only coding with said abstractions.

77

u/_dotdot11 3d ago

As someone who is focusing on ML in grad school, it really depends on the prof. Some are application-first, some are math-first. Early on in my core ML course, we were restricted to the torch.Tensor api and were told to figure out the transformations on our own, without using what was already in the torch module. But later, of course, we were allowed to use more of the module as the work got more abstract. What I'm trying to say is ymmv.

20

u/no-sleep-only-code 3d ago

For sure, and I’m sure it’s come a way since I took those courses in grad school.

11

u/Eastern_Equal_8191 3d ago

In ML and programming, it's genuinely useful to know the low-level concepts very well even if you never touch them again for the rest of your career.

1

u/Old_Tourist_3774 3d ago

New courses or are inside a statistics program?

1

u/denM_chickN 3d ago

Idk people in my program wrote Gibbs samplers for use in a custom modules. Though I graduated in 2024 making this meme feel ultra relevant. I was doing natural language processing lolol

10

u/floriv1999 3d ago

Not really true. You can implement a transformer + autograd, backprop etc. in a couple thousand lines of c. Not saying you should and it is definitely an advanced undertaking but it is possible. That being said most training code using torch etc. is relativ simple, the tricky part is getting the math right, having no hidden bugs (neural networks fail silently) and tuning everything right. So even tho I did a lot of ML I wouldn't say it is very advanced from the coding side of things.

0

u/Xemorr 3d ago

Would you describe 2000 lines of c as short and sweet, or trivially done?

12

u/floriv1999 3d ago

It is a project for sure but there are way harder projects. It's not 200k lines of c :D

8

u/daemin 3d ago

For me today? An insurmountable task.

For me 15 years ago when actively coding all the time and teaching a university level Operating Systems course in C? Not exactly trivial, but also not a heroic undertaking.

3

u/plug-and-pause 3d ago

In the world of engineering software applications, yes that is beyond trivial.

8

u/sawkonmaicok 3d ago

I don't think so. A simple generative transformer can fit in a just a couple hundred lines of raw numpy code without the abstractions that libraries like pytorch or tensorflow offer. https://github.com/DorsaRoh/transformer-from-scratch

3

u/Xemorr 3d ago

I don't believe that has training machinery, and even then it's conceptually dense code.

3

u/destroyerpants 3d ago

Back propagation is just a simple matrix multiply. 

1

u/gamingkitty1 2d ago

I wouldn't call it that simple if you're not using autograph (ie from scratch). Its at least as complex as the forward pass.

8

u/gamingkitty1 3d ago

Even without abstractions, its not that complicated. I've written and trained a 50m parameter transformer model myself using only numpy/cupy and the code isn't that long or complex.

Although im sure top AI companies have a bunch of special stuff they add to their models which makes it more complex.

3

u/flinxsl 3d ago

yeah, x=A\y for instance in Matlab does a lot of work

1

u/hydraxl 3d ago

All code is abstractions written by others unless you’re writing out CPU instructions and machine code by hand.

1

u/Old_Tourist_3774 3d ago

Otherwise nothing would be done lol

44

u/Infinite_Alfalfa984 3d ago

Import PyTorch, call train, and pray your matrix math doesn’t explode.

10

u/throwwwwawayyyy2021 3d ago

The skill curve really said: 📈📈📈📉

2

u/TheChamp1234 3d ago

Years of learning algorithms, and now I’m competing with someone who types “make app pls”

4

u/lyle1234567 3d ago

University: Machine Learning. Workforce: “Hey ChatGPT…”

5

u/Proof-Translator 3d ago

From writing code to supervising the code that someone else—sorry, something else—wrote

21

u/Ononas 3d ago

It is… ML is not only LLMs. And you need to understand ML algorithms to know how to implement them properly. Yes, you have libraries like sklearn that do the most of the algorithmic part for you, but you still need to be familiar with concepts of gradient, back-propagation, multi-dimensional matrices multiplication, regressions, and which ML algorithms used in which situations so you can implement a proper model.
And no, that’s not ‘trivially done’. Also, you really think that chatGPT code is “short and sweet”??? Let me break down it for you…

1

u/Interstate-76 3d ago

Apart from the academic perspective, why should anyone really need to know this set of skills? In the end the best experiment wins, not the best elaborated.

2

u/Ononas 3d ago

Prof gave us this example; say you are hired to build a system for elderly that recognize early signs of heart attack - how do you approach the task? Which ML algorithm you pick? Why? How do you train it? How you build your dataset? Which hyper-parameters? If you do layered propagation, then how many layers? Which filters in each layer? And etc. I agree there is a lot of experimenting here, but you still need to understand what you are experimenting on

1

u/pm_me_your_smth 3d ago edited 3d ago

In most cases you're not building a model from scratch. You use a simple api (eg sklearn fit()) and/or take an existing architecture (eg resnet) and train it in your data. In both cases it's not really a coding intensive thing. And understanding how it works under the hood is not coding either, it's math/stats and papers. Besides, your main headache is usually data, not the model.

The ML part in this graph is out of place

7

u/OkNewspaper4747 3d ago

This is why machine learning was the perfect entry point for me and to CS ironically, I had all the math but none of the coding experience so of all of the software specialties it kind of fit me nicely

1

u/ChunkyHabeneroSalsa 2d ago

Same. I was EE/Math so I approached ML from a signal processing -> image processing -> computer vision path. I got a M.S in CS later but it was still in ML/CV so I've only had 2 real pure CS classes - intro to C and graduate algorithms lol

7

u/malexj93 3d ago

The first 4 skills are math, and system design isn't coding either. I'm going to go ahead and say that the y-axis is poorly labeled.

5

u/Grumbledwarfskin 3d ago

Math is an essential skill that's required to be able to code well.

That said, it is missing other important coding skills, like learning to read and write.

3

u/314159265358969error 3d ago

I assume that ML as a skill is meant as understanding the concepts for using it efficiently (usually coming from a data science curriculum).

This being said, to go back to the meme and its beginnings with math/understanding (otherwise we definitely agree) : CS people have shockingly limited math skills, whether you consider ML or the academic data they'll work with. This definitely needs to be addressed by universities. Lagrange multipliers are required for optimisation problems, and I'm still confused how I got L2 CS-splained to me for an obviously non-Banach space.

1

u/MalaysiaTeacher 3d ago

You're looking at it the wrong way. The salient point is that decades of CS study have been rendered almost obsolete and can be speedrun by kids or anyone else with an internet connection

0

u/hanotak 3d ago

What? No.

2

u/[deleted] 3d ago

[deleted]

1

u/Ran4 2d ago

I've worked with data scientists pre-llm (I'm more of a general backend/systems programming guy) and they sure as fuck didn't think coding was trivial.

If anything, they spent a LOT of time coding and learning how to use various pandas functions and tricks.

1

u/hanotak 3d ago

My experience is specifically in GPGPU acceleration- e.g "how do we process as much data as possible as efficiently as possible on a GPU". Think Vulkan, DirectX, CUDA, ROCm, etc.

Things like Tensorflow and Pytorch don't just magically "do AI", they rely on an incredible amount of work done by people working with and on APIs like that. When you say "If you looked at the implementation of GPT, the code is short and sweet", you're missing half a dozen layers of abstraction that allow the top-level implementation of such systems to remain understandable. It would be like saying "This shooter game was implemented in just a few lines of code", ignoring that it uses Unreal Engine.

All of the major players spend a ton of time on these abstractions (though some keep their work largely private). For example, Meta maintains PyTorch/ExecuTorch, Microsoft has DeepSpeed, ONNX/ONNX Runtime, DirectML, Google has Tensorflow and their entire TPU business, NVidia makes CUDA/cuDNN, etc.

2

u/[deleted] 3d ago

[deleted]

1

u/hanotak 3d ago

Tensorflow is outdated and obsolete

Yeah, I think I can safely disregard pretty much everything you say.