4 ms·
> Well before AI co-pilots something happened to the good old admins--they started to disappear only to be replaced by "AWS devops" (their job titles) who have
by joshstrange 3y ago
> Well before AI co-pilots something happened to the good old admins--they started to disappear only to be replaced by "AWS devops" (their job titles) who have never wired a network using routers, switches, and cables. I noticed that they started lacking basic networking knowledge and couldn't set up networking inside AWS. They just didn't know what a gateway, NAT, or subnet is.
I see the same arguments about higher level languages. All of the tech industry is about standing on the shoulders of giants. I do believe that lower level knowledge can help a great deal but using this argument I can say something like:
Kids these days don’t know basic assembly, they have no idea what an or/and/nor/xor gate is, they’ve never built a computer from components (no, not cpu/mb/ram/etc, I’m talking transistors and soldering).
Maybe LLMs are different but I don’t think they are, they are yet another tool that some people will abuse and some will use wisely. No different from an IDE or a higher-level language in my book.
I have next to zero idea how many things I use daily work (like my car for example), it doesn’t stop me from being able to drive where I need to go. I have configured lower level networking equipment in the past and I couldn’t be happier that I don’t have to do that drudgery anymore.
All I’m saying is this is a dangerous argument to make because someone can always one-up (one-down?) you. “Oh you had NAT? Luxury! In my day we didn’t even have a network, we had to….” (See also: Four Yorkshiremen [0])
[0] https://youtu.be/ue7wM0QC5LE?si=Mm-FY1oooq2XkCQz https://youtu.be/ue7wM0QC5LE?si=Mm-FY1oooq2XkCQz
- pclmulqdq 3y agoI think there may be a difference in kind here than with a lot of previous labor-saving abstractions. To use an LLM, you still need to know the language you are using it to write. You don't need to know C or assembly as a Python/JS programmer today, but you do need to know JS to be an LLM-heavy JS programmer.
- ungreased0675 3y agoNot really? I don’t know JavaScript, just HTML and CSS. I still can make decent web app MVPs using copilot to fill in the blanks.
- Jackson_Fleck 3y agoOkay, but if you don't know what the JS is doing and why how are you ever going to architect stuff efficiently or think up more complex things in the abstract? I fail to see how you can just know HTML and CSS, that's like saying you have the alphabet down but somebody else can speak or write for you. HTML and CSS are just markup and style languages, it isn't really code. CoPilot is just blundering along using what it has learned from elsewhere - which is not always correct.
- joshstrange 3y ago> You don't need to know C or assembly as a Python/JS programmer today, I agree, not everyone does. Maybe we have progressed to the point we can all say those people are wrong and their arguments were always wrong, maybe not. > but you do need to know JS to be an LLM-heavy JS programmer. I also agree. That's my whole point, you do need to know the language to be able to effectively use an LLM. My issue is with people who immediately reject LLMs as a net-bad because they do part of the job for you. I reeks of "well I had to do it the hard way so you do too" which I cannot abide and immediately flips the bozo bit on them for me.
- surfingdino 3y agoI do not wholly agree with you. Just to pick on one thing in your reply... > Kids these days don’t know basic assembly It is a problem. Knowing assembly is crucial if we want to have more efficient, faster hardware. Someone has to write kernels and drivers. The efficiencies happening on the lower level of the stack make the upper layers of the stack faster, more stable. It is also important that we have a large pool of devs who know how to do it. Otherwise that knowledge will be taken in-house and shared under strict NDAs preventing devs working for competition and effectively killing all the efforts of the Open Source community to wrangle free access the computer out of the claws of corporations. This is not a problem that AI has brought about first, but co-pilots are accelerating it. Just to provide some context, I could not wait for 16-bit, 32-bit, and then 64-bit architectures to become popular. I was the happiest dev around when object oriented programming tools became available, same to Linux, web, all frameworks and even cloud computing. But AI as it is currently being sold is a shit tool. If it stays and doesn't disappear after the VC money runs out, we will have to adapt our ways of working and educational courses to teach devs to review work of others recompiled by AI (it can't write shit on its own). Not sure it is worth the effort, because every time a new framework is introduced the results generated by AI will be of low quality until the models get trained on exaples written by humans... What's the point of using AI in that case?
- fma 3y agoAgree here. As a 90's kid I dove into computers, Internet and programming head first. I went into the field out of passion, not money. I received an engineering degree. If I was the same kid now, I'd get into a bootcamp or self teach and get a web dev job because the money is lucrative. Yeah sure, maybe i'll dabble in foundationa litems here and there, but most won't. It doesn't advance your career in web/software. IMHO we will see a brain drain in computer/electronics engineering in 20 years when the pipeline of graduates dwindle and those with experience retire. Hope LLMs can innovate enough to make up, I guess.
- joshstrange 3y ago> If I was the same kid now, I'd get into a bootcamp or self teach and get a web dev job because the money is lucrative. Yeah sure, maybe i'll dabble in foundationa litems here and there, but most won't. It doesn't advance your career in web/software. That sure sounds like it has nothing to do with LLMs and everything to do with factors not all related to even computer science. “Capitalism” or maybe the more trendy “late-stage capitalism” is probably more to blame here than anything else. Also I reject the idea that there are no kids today that get involved in tech/computers for the joy of learning/exploration. I bristle whenever I see arguments about “kids these days didn’t learn exactly how I did so it must be wrong”. It reeks of “old man yells at cloud” (note, I was also a 90’s kid). It’s the same BS I heard as a kid about how computers would rot your brain or they were horrible for <insert stupid prediction that didn’t come true>.
- bluefirebrand 3y ago> All of the tech industry is about standing on the shoulders of giants This is true, but we still do have to have at least some knowledge of what those giants built. Otherwise we're actually just standing on clouds
- joshstrange 3y agoPoints for a great twisting of the metaphor I used, I quite like it. I agree _someone_ has to have that knowledge, I reject they _everyone_ must have that knowledge. I have zero desire to learn more about logic gates, they don’t interest me and while they enable me to do the work I do I don’t need to know about them to do the work. The same way that I couldn’t tell you how my car engines works (ok, at a high level I could, probably about the same level as I could talk about logic gates) but I’m able to drive from point A to point B without issue. There are people who enjoy assembly, let them work on it. I’m not one of those people and I don’t have a problem with those people but I do have a problem with people who think I must know assembly to be an effective developer.
- bluefirebrand 3y ago> I have zero desire to learn more about logic gates Sure, but you know that they exist, which to me suggests that you learned about them somewhere and probably have at least some foundational understanding of how they work The problem is when people can skip any of that broad foundation and go straight to specializing somewhere, a lot of general knowledge is lost Part of learning the broad foundations is also learning that those options exist for a specialization path Someone who may love working on hardware designs may wind up spending their life as a mediocre web developer because they took an AI assisted web bootcamp that skips learning important fundamentals
- aeonik 3y agoBut a car engine isn't "just" a car engine. It's an engine, and can make all kinds of things move. If you don't know it works, sure you can drive a car, but a lot of missed opportunities to leverage the same exact tech for other use cases disappear when you don't know fundamentals.
- flutas 3y ago> Kids these days don’t know basic assembly I have to disagree on that one. Most CS programs will have an assembly class as a mandatory one. Is it used daily? No. Would they be incredibly rusty and probably require a refresher? Probably, but so would most people on something not used daily.
- joshstrange 3y agoInteresting, the college I went to (2009) didn’t teach it at all. C++ was the lowest level they taught and they switched to Python after I left (as in they use it instead of c++ last I heard). If I ever needed to write assembly (which probably means something has gone horribly wrong in my life) then I’m sure I could learn it on the fly, just like I’ve learned other things never taught in college on an as-needed basis.
- flutas 3y agoVery interesting. Yeah my husbands college (I'm a SW eng, he wants to be one) teaches C++ as the base...and this is a "just" a state school in a Arkansas. Also gotta correct myself, after asking him it looks like I was wrong. Assembly isn't a direct requirement but it's one of three electives you have to chose from. You have to choose between either assembly, cybersecurity or data science and assembly is considered the easiest apparently.
- gregors 3y ago(2006) - we had a class/labs on logic gates as well as 2 separate classes that taught asm. I'd say 80% of the labs were C at the time.
- KeplerBoy 3y agoIt's kind of crazy to think the closest thing to a systems programming language a graduated software engineer knows is freaking python. Imagine never having used a compiler. Don't get me wrong, people get stuff done with Python and JavaScript, but it's a crazy time we live in.
- 3y ago
- wwweston 3y ago> Kids these days don’t know basic assembly, they have no idea what an or/and/nor/xor gate is, they’ve never built a computer from components (no, not cpu/mb/ram/etc, I’m talking transistors and soldering). At each layer, though, we have a legible formal theory bridging one level to the next, and the abstractions tend to be so reliable the last thing most of us will consider is a hardware/assembler/compiler bug (though they do occasionally happen). LLMs bridge layers illegibly and probabilistically. I can already see how they're helpful, but they do have some different characteristics that mean reliability and the connection to lower levels of the stack are an issue.
- joshstrange 3y ago> LLMs bridge layers illegibly and probabilistically. I’m not sure I agree but I want to make sure we aren’t talking past each other. Using an LLM to write code does not have this problem IMHO. Using an LLM as part of the code does have this problem. I’m not writing off the usefulness of calling out to an LLM from code but it does bring “illegibly and probabilistically” into the mix whereas using an LLM to write code that’s human-reviewed/modified does not. In fact, you should be unable to tell what I wrote vs what the LLM wrote if I’m doing right (IMHO). “Clever” code is always bad no matter who/what wrote it. The only time I’ve been asked “did you use <insert LLM> to write this?” Was due to the speed at which I completed something or because it’s in a language that the person asking the question knew I didn’t know very well.
- korhojoa 3y agoLLM's can be good at guessing the code you want, but I've seen them guess the comment or documentation correctly, then the implementation is the opposite of what you asked. It also generated tests which were for the incorrect case, with comments showing the opposite of what you wanted. For somebody new at the language or new to programming in general, that difference can be imperceptible until it gets to a review. I've also managed to spot people using an LLM to write stuff due to them doing things which won't pass linters or code tests.
- 3y ago
- whiplash451 3y agoI don’t follow the analogy with higher-level languages. Those are robust constructs coming out of fundamental thinking and design. AI-based copilots, on the other hand, look like unstable libraries sitting on top of those languages.
- victor106 3y agoI feel comparing knowing assembly to knowing about NAT/Subnets/Gateway is a false equivalency. Outside of a small set of folks most devs need NOT know assembly due to compilers being very good at converting to assembly. Not the same Subnet/Gateway/NAT. These are first class constructs in most cloud developments and has huge implications on security, performance and costs. Unless you have some kind of automated way that abstracts away these issues (akin to compilers) most devops folks would need to learn about these concepts while working in a cloud environment.