16 ms·
Tips for programmers to stay ahead of generative AI
- kloro2006 3y agoA great boost to this kind of discussion wd be sample dialogs with the LLM, i.e., requests for a program and the results.
- omgmajk 3y ago> Software engineers should be critical of the outputs of large language models, as they tend to hallucinate and produce inaccurate or incorrect code. This seems to be the case more than not for certain tasks, anything assembler or C I have ever asked it has turned out to be at least somewhat wrong. Mixing styles and syntax all over the place. I am not afraid that some generative AI will take my job anytime soon.
- varispeed 3y agoThese things are a matter of writing a correct prompt. Like "use this and that naming convention for variables and keep this and that style". You can also ask it to write tests for the code so you can verify it is working or add your own additional tests. Even if the produced code is wrong, it usually takes a few steps to correct it and still saves time. It is an amazing tool and time saver if you know what you are doing, but helps with research as well. For instance if you want to code something in the domain you know little about, it can give you ideas where to look and then improve your prompts based on that. In the context of taking anyone's job is like saying that a spreadsheet is going to replace accountants. It's just a tool.
- weevil 3y agoMy first step when using an LLM is asking it to produce a test suite for a function, with a load of example inputs and outputs. 9 times out of 10, I've been presented with something incorrect which I need to correct first. I'm reasonably good at being specific and clear in my directions, but I quickly arrived at the conclusion that LLMs are simply not good at producing accurate code in a way that saves me time.
- DonaldPShimoda 3y ago> These things are a matter of writing a correct prompt. No, they aren't. ChatGPT doesn't know things. It's just a very fancy predictive text engine. For any given prompt, it will provide a response that is engineered to sound authoritative, regardless of whether any information is correct. It will summon case law out of the aether when prompted by a lawyer; it will conjure paper titles and author names from thin air when prompted by a researcher; it will certainly generate semantically meaningless code very often. It's absolutely ludicrous to assert that you just need a "better prompt" to counteract these kinds of responses because this is not a bug — it's literally just how it works.
- Kiro 3y agoRead the next sentence after your quote. The point is that you should include code and examples in your prompt (Copilot is so good since it includes the surrounding code and open files in the prompt to understand your specific context), not that you should craft an exceptional "act as rockstar engineer" prompt.
- DonaldPShimoda 3y agoI did read it, but the whole premise is flawed due to an apparently incomplete understanding of how LLMs work. Including code samples in your prompt won't have the effect you think it will. LLMs are trained to produce results that are statistically likely to be syntactically well-formed according to assumptions made about how "language" works. So when you provide code samples, the model incorporates those into the response. But it doesn't have any actually comprehension of what's going on in those code samples, or what any code "means"; it's all just pushing syntax around. So what happens is you end up with responses that are more likely to look like what you want, but there's no guarantee or even necessarily a correlation that the tuned responses will actually produce meaningfully good code. This increases the odds of a bug slipping by because, at a glance, it looked correct. Until LLMs can generate code with proofs of semantic meaning, I don't think it's a good idea to trust them. You're welcome to do as you please, of course, but I would never use them for anything I work on.
- omgmajk 3y agoThe question is, do you actually save time by coaxing the language model into an answer or would you just save time by writing it yourself? I have this friend who gets obsessed with things very easily and ChatGPT got to him quite a bit. He spent about two months perfecting his AI persona and starts every chat with several hundred words of directions before asking any questions. I find that this also produces the wrong answers many times.
- throwuwu 3y agoFor me it saves time by keeping my momentum up. I don’t lean on it when I’m in a flow state and cruising through the code I’m writing but as soon as I hit a wall I jump over to chat and start working on a solution with it. This saves a huge amount of time that would otherwise be spent banging my head against the keyboard or googling or reading random SO posts and dev blogs and documentation or even just the time wasted when I get frustrated enough to stop working on the problem and wind up browsing hn.
- intelVISA 3y agoThankfully, as a human I never produce inaccurate or incorrect code.
- tiffanyg 3y agoBrings to mind the excellent team behind REAPER - "cockos": John Schwartz, in the role of "Italics" is reportedly "so highly trained that he can type code that compiles correctly almost 3% of the time"! Remarkable! https://www.cockos.com/team.php https://www.cockos.com/team.php (I think just about anyone 'serious' learns pretty quickly that compiler errors are in the 'our Lord and Saviour' category. Unusually distributed generally quite rare but easily catastrophic runtime 'Heisenbugs' are the fruit of the devil!)
- sigstoat 3y ago> anything assembler or C I have ever asked it has turned out to be at least somewhat wrong i've found that its quality is proportional to the amount of questions about the subject on the internet. if i ask it for help with popular javascript frameworks, it vastly improves my productivity (i'm not a frontend person). it still coughs up wrong stuff half the time, but even then it can cut through the constant churn of the frameworks' terminology and give me enough hint to find what i need in the docs quickly. if i ask it about, say, specific details of the STM32 HAL, it knows just enough to come up with something that i'll waste my time reading.
- omgmajk 3y agoFunny you should say that because it was STM32 that I was working with when ChatGPT blew up.
- Swizec 3y agoHow to survive in an AI world? Shift your mindset from “I write code” to “I deliver value”. Now instead of AI replacing you, it’s helping you get more done (in theory). Everyone wins. Staking your career on being a pair of hired hands that executes somebody else’s exacting specifications was always a long-term losing proposition. And we are very very far away from AI being able to ask the right questions to help business stakeholders and customers clearly express what they need.
- varispeed 3y agoI also find it bizarre that so many people feel precious about the code. They have too much ego attached to what they type in and the AI kind of make them feel insecure. I couldn't care less if I write the code, the AI or someone I told to write it. What matters is the value it provides.
- laputan_machine 3y ago> I also find it bizarre that so many people feel precious about the code. Would you find it bizarre that a joiner feels precious about not just the cabinet they made (value), but how they made it? The joints they used, the process they went through, the wood (i.e., the code)? A plumber, electrician, architect, designer, programmer -- we take pride in our skills. Craftmanship is a virtue, not a vice.
- ramesh31 3y ago>Craftmanship is a virtue, not a vice. Exactly, ultimately we are craftsmen, not artisans. They are two very distinct things. The difference being that the value of our output is directly tied to its' functional utility, not any sense of aesthetic or artistic expression. You can take pride in the means used to achieve an end, but they ultimately must be superseded by more efficient techniques or you just become an artisan using traditional tools, and not a craftsman who uses the industry standard.
- dragonwriter 3y ago
- thumbuddy 3y agoI'm surviving just fine by not using any LLMs.
- weevil 3y agoPost this comment on LinkedIn and see how long it takes for some unqualified tech 'speaker' to tell you you're about to be left in the dirt!
- isanjay 3y agoThey are called AI bros I think.
- pavel_lishin 3y agoaiholes.
- weevil 3y agoStealing this!
- 1270018080 3y ago12 months ago, they were web3 experts
- impissedoff1 3y agoHey now, connecting a wallet to your browser by JavaScript and approving limitless permissions you can't see is the future!
- claytongulick 3y agoMe too. I'm not an expert, but I'd say I'm a strongly average vim user. But even at that skill level with vim, I haven't seen an area where LLMs would increase my velocity. Quite the opposite. It would completely interrupt my flow to have to constantly stop and do a code review while I'm writing. With good plugins, templates and macros in vim/vscode - velocity writing code isn't the issue. The stuff that takes all the time is UX tweaks and reasoning about architecture, business constraints, and the correct level of optimization for the company's maturity.
- ape4 3y agoIt seems similar to off-shoring (a while ago). People in another country would bang together tons of inelegant code that somebody else had to check.
- discreteevent 3y ago> that somebody else had to check Or eventually just throw out and re-write: ------------------------- blibble 3 months ago the result of this will be similar to hiring infosys hundreds of thousands of lines of buggy incomprehensible boilerplate that doesn't work on anything but the easy cases then you have to rip the entire thing apart and start again with people that know what they're doing -------------------------- https://news.ycombinator.com/item?id=35265921 https://news.ycombinator.com/item?id=35265921
- rqtwteye 3y agoThat comparison makes sense. And a lot of management will probably use AI because it’s “cheaper” although the results aren’t very good.
- Izkata 3y ago> although the results aren’t very good. Overheard a week or two ago: A non-technical person on a call talking about "adjusting the weights" of ChatGPT as if it was something they'd do manually.
- antifa 3y agoIt'll at least look a lot nicer though
- oofta-boofta 3y ago[dead]
- medler 3y agoI use LLM-based autocomplete in my IDE, and it’s not taking away my job unless/until it improves by multiple orders of magnitude. It’s good at filling in boilerplate, but even for that I have to carefully check its output because it can make little errors even when I feel like what I want should be obvious. The article is absolutely correct in saying you have to be critical of its output. I would say it improves my productivity by maybe 5%, which is an incredible achievement. I’m already getting to where coding without it feels very tedious.
- AlotOfReading 3y agoI've also been using an LLM autocomplete for a few months, and yeah, it's pretty nice. My spouse was able to use it to write an Easter egg into a game while I was doing housework the other day.
- firebirdn99 3y agoAgreed 100%. It's helpful at filling out some functions maybe if you name them correctly, and boiler plate code. Eventually, they will get better, because these things get orders better with orders more scale. Society has to do something about all the jobs at that point, but we'll hopefully get a sense of how close/far is that, with ChatGPT 5, and the next versions coming up.
- Filligree 3y agoThe biggest benefit, I’ve found, is it makes me comment my code. If I can make the AI understand what I want, then it turns out that three months later I’ll also be able to understand the code.
- moonchrome 3y agoThat's the worst part about generative AI IMO - it makes writing new code faster - it barely helps with editing existing code. So when someone eventually updates the code and forgets to update the comments I wouldn't be surprised if the misleading comments made AI hallucinate.
- FpUser 3y agoI do not need to "survive" ChatGPT world. It actually helps me. Also I am not sure what does "coder" mean exactly. Personally I design and implement software (sometimes other types) of products and "coding" as in writing the actual code is the least of my worries.
- penjelly 3y agothe next 5+ years will see software proliferate rapidly as a result of things like chatgpt and llm augmented documentation pages. Building things end to end just got easier and will become more so soon.
- pavel_lishin 3y ago> a result of things like chatgpt and llm augmented documentation pages. You mean like this? https://github.com/mdn/yari/issues/9208 https://github.com/mdn/yari/issues/9208 https://news.ycombinator.com/item?id=36542267 https://news.ycombinator.com/item?id=36542267
- penjelly 3y agothose links are great counterarguments. But we are still in early stages, which i dont think is indicative of the end state of these tools (though that can be debated of course).
- penjelly 3y agoalso upon further inspection, it appears as though ai-explain was not added by the core team or MDNs steering team. It looks like someone just took it upon themselves to add it, without doing DD on the feature, if true, its not surprising it doesnt work well.
- substation13 3y agoI would love LLMs to write documentation for me, even though I don't trust them with the code.
- ehutch79 3y agoI mean, right now the only thing at risk is the todo.app industry... I've yet to see anything maintaining legacy apps, or generating line of business apps with requirements... even simple stuff, like departure needs to be before arrival, etc. I do see a whole bunch of youtube videos about generating a whole codebase, but it's the kind of stuff that there's a hundred tutorials covering.
- anotherpaulg 3y agoMy open source command line tool aider [0] is specifically for this use case of working with GPT on an existing code base. Let me know if you have a chance to try it out. Here is a chat transcript [1] that illustrates how you can use aider to explore an existing git repo, understand it and then make changes. As another example I needed a new feature in the glow tool and was able to make a PR [2] for it, even though I don't know anything about that codebase or even how to write golang. [0] https://github.com/paul-gauthier/aider https://github.com/paul-gauthier/aider [1] https://aider.chat/examples/2048-game.html https://aider.chat/examples/2048-game.html [2] https://github.com/charmbracelet/glow/pull/502 https://github.com/charmbracelet/glow/pull/502
- amusingimpala75 3y agoThis is an instance of the dangers of LLM. Because you (self-admittedly) know nothing about the language or codebase, you have no idea the semantically correct way to do things, so if GPT tells you to metaphorically jump off a cliff, you won’t know that it isn’t the right thing to do.
- anotherpaulg 3y agoThat certainly could be a concern. You are right, it’s important to review the code written by LLMs. Did you look at the PR? I reviewed it before submitting it. While I would have struggled to write it myself, I was able to review it and conclude that it was sensible and unlikely to be risky. Of course it could have bugs that I missed. But so could any code I write myself in any language.
- carride 3y ago> One of the most integral programming skills continues to be the domain of human coders: problem solving. Analyzing a problem and finding an elegant solution for it is still a highly regarded coding expertise.
- oofsa 3y agoThe current AI may improve coder performance by only 5%, but it can improve non-coders' learning speed by 1000%. Learning to code has become significantly easier because of ChatGPT, and many university students are already using it for learning. Not only can they let ChatGPT write boilerplate code, but they can also let ChatGPT write comments for code snippets they don't understand and explain unfamiliar syntax. I wonder if coders can survive in a world where more and more people have coding skills. Edit: "majority" was not a good wording
- dt3ft 3y agoMajority having “coding” skills is not happening. Writing code is boring for majority. Why write code when you could be playing games and having fun on TikTok? There is your answer. We love writing code because we are nerds who love to solve complex problems. New kids who are not interested in writing code but using shortcuts to get code written for them by ChatGPT while not understanding it - is the least of our concerns. Let them have at it, but once they see the monoliths we tackle with at work - they will burnout on the spot. Cobol? Still alive and well. For a reason.
- Tainnor 3y agoThat's a bit of an uncharitable take on people with different interests. Some people who would find coding boring do instead enjoy things like teaching children, treating patients, putting out fires, making art, evaluating stocks, do research, or the millions of other things that humans do as a job or hobby. It's not just people spending time on TikTok.
- zerodensity 3y agoI don't know about this, from my point of view to learn how to program you need to actually... program. Trying stuff over and over again in different variations using maybe different languages, dealing with all the errors the frustration and overcoming them. I think that using chat gpt or similar llms to learn how to code is similar to using Midjorney to learn how to draw. Don't get me wrong you might be able to produce results fast but taking shortcuts is not going to speed up understanding.
- samsk 3y agoI'll start to be afraid, when ChatGPT or anything similar will take a vague Jira issue, simulate described bug and then make a fix for it ;-) But seriously, what developers do most of their time is maintanace, they spend a day searching for a bug, just to write maybe one line of code to fix it.
- onion2k 3y agoIf GPT can improve the code that's written in the first place then a lot of that work would just go away. I strongly suspect that it will. There are whole classes of bugs that occur because some work is boring 'not quite copy paste' work that devs just don't like doing, and don't pay any attention to when they're doing it. Linters and syntax highlighters already catch a ton of those issues before they make it to production, and GPT will make the rest much less likely to happen. Maintenance is one area where GPT will also shine, because it's 'just' updating some code to do the same thing, so using the existing code as a set of tokens with a prompt like 'update this code to work with v2 of library X' will be extremely effective. It'll be like having something write a codemod for you. The future is bright. We'll get a lot more productive stuff done, and spend a lot less time on boring grunt work.
- pessimizer 3y agoIt will do that now, it will just be buggy and wrong. But that's obviously just a stage that you don't even need more AI to fix. Tell it how to write tests, tell it how to justify those tests and how to make sure they make sense, tell it how to look for the bug, tell it how to attempt a fix for the bug, tell it to evaluate whether that fix satisfies the bug report, tell it how to read the errors after it tries the fix, and to iterate on that fix or to abandon it and try something else, when it reaches all standards for success, tell it how to report what it did on the ticket. If one doubts that all this can be done by an LLM, use a different LLM for each step. Use committees of LLMs that vote on proposals made by other LLMs. I don't know, I feel like the sky's the limit, especially if they can be made significantly more power efficient. I think that if they never get any better than they are now, and they just get more power efficient, they'll be useful for almost anything.
- oldstrangers 3y agoMy fear isn't that I'll be replaced, it's the technology becoming so good that it'll be kept far out of reach of the common person. I genuinely believe OpenAI knows what a GPT 5+ type world looks like, and they're probably having a lot of debate on how best to monetize it. They could practically charge anything in the world for it assuming it still undercuts the cost of hiring a human. One Nvidia super cluster running a local instance of GPT 5 at $250k a year doing the work of 30 humans.
- firebirdn99 3y agothis is one underrated point. Altman talks about democratizing this technology. But if the leading LLMs concentrate at a few companies, unless governmentally mandated, they could keep guardrails from regular folks accessing it, and also with regulation capture.
- pessimizer 3y ago"democratizing this technology" = working closely with government > unless governmentally mandated, they could keep guardrails from regular folks accessing it That's not what's going to happen. Government will mandate that regular folks can't access it. Government will also do its best to make sure LLMs concentrate at a few companies, which it will often refer to as "partners."
- firebirdn99 3y agoThat could also happen. Especially in a government, plagued by lobbying, and corporate interests.
- radicalace 3y agothe main inflection point will be when it becomes socially taboo to express an anti-ai sentiment. just like with certain medicines or whichever war is being launched currently, the media will play lapdog for the government. the true inflection point comes when the federal government recognizes whats going on and enters into the AI arms race. suddenly the media will be flooded with talk of how AGI saves lives, discovers medicines, and all the other good things it might do. but they will never mention the existential angst and dread that will hang heavily in the air or any negative aspect of total human obsolescence. when you start to see AI get political all of a sudden, inexplicably, all is lost.
- al_be_back 3y agowith every new comp-language advance or compiler/transpiler etc, coder's life gets easier - but an engineer's life is more broad, it's about Solving Problems that involve: Tech, Design, User and Business. These problems will only get more complex. I think the Coder's role will become a very niche market, highly expert/specialist. the Engineer's will grow, very much needing AI to help-out, especially with tasks around: Discovery, Mapping/Relating, Projecting/Simulating.
- nickjj 3y agoI like how the emphasis is on coders here because one of the article's headers of "Clear and Precise Conversations Are Key" is important. I think this is why it will be a long time before the general masses will be able to take advantage of AI to solve general problems. Most people haven't built up a human skill level of being able to explain their problem in a clear way to another human. Imagine if you have no other context about the problem below other than these 2 prompts. Both of them are describing the same problem which is related to entering in orders with a point of sale system. Assume that you're talking to a human doing phone support for the company that provided you the hardware: - My orders aren't coming up at the register - I have 2 devices to take orders, when I manually place orders into the one hanging on the wall (ID: "Wall") it doesn't show up in the list of orders at the register (ID: "Register") but when I manually place an order at the register it does sync up at the wall The first prompt is typically what a non-technical business owner may say over the phone when trying to get support. The second prompt is what someone who has experience describing problems might say even if they have no experience with the hardware other than spending 2 minutes identifying what each device is and chatting with the business owner to understand the real root problem is one of the devices isn't pushing its orders to the other device. The 2nd one could become more precise too, but the context here is you're speaking with another human who works for the company that provides you the hardware and service so there's a lot of information you can expect they have on hand which can be left unsaid. They also have various technical specs about each device since they know your account. It would take many follow up questions from a human to get the same information if you only provided the first question. I wish a general AI tool good luck to extract that information out when the direct person with the problem can barely type on their phone and doesn't have a laptop or personal computer.
- wiradikusuma 3y agoI've been thinking about this.. most programmers use frameworks/libraries, e.g. Spring/Hibernate in Java or React in JavaScript. Is there a way to train LLM to "specialize" in our frameworks/libraries of choice? I assume it would result in faster/smaller/more accurate result?
- ilaksh 3y agoThings like Falcon 40B are trainable with something like a LoRA technique but the coding ability is weak. In the near future we will have better open source models. But it is possible to do for certain narrow domains. Normally with the ChatGPT API you just feed API information or examples into the prompt. One version of GPT-4 has 32k context. The other has 8k and 3.5 has 16k now. So you can give it a lot of useful information and make it work quite a lot better for some specific task. When you pick something like React or Spring in general, depending on what you mean that might be huge amount of info to keep them current on. But if you narrow it down to a few modules then you can give them the latest API info etc. Another option is now to feed ChatGPT a list of functions it can call with the arguments. It generally won't screw the actual function call part up, even with 3.5. ChatGPT Plugins you can give an OpenAPI spec. Then you implement the functions/API you give it. So they could be a wrapper for an existing library.
- dave333 3y agoOccurs to me as a retired 69 year old former coder that AI makes us old geezers and geezesses somewhat competitive again with our younger colleagues. Need to learn yet another new framework? Let AI do the nitty gritty bit. Capitalize on your experience and higher level know how.
- riwsky 3y agoI’m reminded of those pro StarCraft players who retire at like 30 because, while their strategy is perfect, their fingers simply can’t click or hotkey as fast as the twenty somethings.
- jamaicahest 3y agoI imagine it is the same for any elite level sport. Except perhaps chess.
- sireat 3y agoActually top level OTB chess ability degrades notably past 50 with a few notable exceptions (Korchnoi, Smyslov). Sure the decline starts a bit later than regular sports but still it is significant. That is why when Rausis(https://www.chessgames.com/perl/chessplayer?pid=14248 https://www.chessgames.com/perl/chessplayer?pid=14248) rating was approaching 2700 in his 50s everyone was very suspicious. It is partially due to the incredible levels of stamina required to stay on top of the game for 4-6 hours. Also as Kramnik said when he was retiring, you start making strange(read wrong) decisions suddenly.
- coliveira 3y agoYes, this is my thinking too. No need to learn tons of new frameworks, just ask ChatGPT what framework we can use to do a particular task and ask for sample code. You can learn from that much more easily.
- mattkevan 3y agoI built an ebook reader in Vue with ChatGPT the other day, never having used Vue before. Took about a day. Learned absolutely loads - far more than sitting down with a book and trying to learn from that. Not least because I’ve tried before and quickly lost interest. Instead I’ve learned the basics and made a working web app, which I’m pretty pleased with.
- aksss 3y agoThis title sounds like, “How writers can survive-and thrive-in a spell-check world”. I imagine it will sound absurd to you in time if it doesn’t already.
- impissedoff1 3y agoI sure picked the worst time to be unemployed and look at a coding career again after a decade
- ilaksh 3y agoWell the thing is though that if you focus on it for a week or two you can pick up useful skills. Just play around with ChatGPT for example for generating SQL for a particular table or follow a tutorial using llamaindex for a "chat with documents" thing. Try out a Stable Diffusion API or something using replicate.com There are a ton of people looking for help with generative AI and you can be useful if you just play around with it for a few weeks, because a lot of them have no idea about the basics. If you are willing to be underpaid there is no need to be unemployed -- just spend a few weeks studying and then go on Upwork.
- SrslyJosh 3y agoLLMs might be useful for churning out vaguely correct-looking code quickly, but they're just regurgitating the contents of their training corpus. There's no guarantee of correctness, and it's only a matter of time before someone dies because of an LLM-generated bug. Human programmers aren't going anywhere. (You can't even call what LLMs do programming, because there's no intent or understanding behind it.)
- JaDogg 3y agoActually this would be a good use case for ChatGPT use it to practice for interviews. Learn about things you missed. double check everything it says. Good luck.
- ewuhic 3y agoThis article touches on llms for mostly code generation, I however would be more interested in visuals. What are the good resources to learn about image editing AI tools, prompts and techniques? My understanding is pretty limited, and correct me if I'm wrong, but like one would be using Stable Diffusion or Midjourney, and for a "professional" tool - Photoshop with official AI plug-ins?
- ilaksh 3y agoCheck out Playground.ai, Leonardo.ai, Adobe Firefly.
- Animats 3y agoSurvival may require getting out of the mainstream. LLMs are going to get really good at stuff that's been done thousands of times and they can train on that data. Like web front end work. If you're doing industrial embedded work and have an oscilloscope and a logic analyzer on your desk, and spend part of your time going into the plant and working directly with the machinery, you're in better shape.
- themodelplumber 3y agoGood coders will be competing against people who can use prompts in cumulative sessions to code and maintain projects in depth, not people who can make requests of an LLM. This differentiating factor is what will wear out a less-experienced LLM user. They will make bigger claims or set expectations higher, and suffer more for them. The details that matter, yet were missed, will stick out more and more, as more experienced LLM users flex that experiential factor in a variety of ways. For this reason, front end will absolutely still be a thing. And it'll be a much better, deeper thing, thanks to those who are a good fit for a kind of LLM-coding mindset. However, this also depends on the type of coder. You can start from interpretation of the project spec as a logical code of sorts, or you can start from the spec as more of a visualized outcome. If you work in the latter style, your survival key, so to speak, may simply be stringing together support requests you make to various LLM-interfacing vendors. A COTS-integrative style / opportunistic approach to coding, which has always been a thing. Along the way, this kind of person usually integrates the NIH logical style a bit, and vice-versa, or they'll suffer through their respective blind spots. Same story, new layer of abstraction that's really cool. (Plus...survival may still depend on who you know, not what you know, for a lot of people)
- imtemplain 3y agoPeople massively underestimate the front end and it really shows that you never worked on a serious front end. I find it a million times easier to let a LLM generate a whole OpenAPI spec than even trying to get a slightly complicated component such as a "dropdown input field button hybrid" written by ChatGPT.
- fknorangesite 3y ago> as they tend to hallucinate and produce inaccurate or incorrect code. Jesus, these things really are coming for my job.
- boringuser2 3y agoGPT-4 does a lot of my work at this point. I instruct it what to do, and it writes the code. Is anyone else brave enough to admit it?
- boredemployee 3y agoTo me the best part is that you don't need to read documentation to understand something that you won't use anymore and will forget 2 days later. Like: regex, how to plot a histogram in fucking matplotlib, seaborn, etc.
- SrslyJosh 3y ago...and then six months later, maybe a year, someone will have to clean up the mess you've made.
- boringuser2 3y agoAre you implying that I don't know how to read code and (instruct GPT-4 to) write tests? I know what GPT-4 writes, it just does it instantly, whereas I do not. The notion that I am generating and committing large blocks of untested arbitrary code makes me feel like you don't know how development is done. You're too far from reality for me to have confidence that you're at the professional level.
- irrational 3y agoI work for a Fortune 100 company. Recently an email was sent to all 100,000 employees saying that nobody was allowed to use DALL-E 2, ChatGPT, Codex, Stable Diffusion, Midjourney, Microsoft’s Copilot, and GitHub Copilot, etc. due to concerns about those tools using other people’s IP (meaning our company might end up illegally using their IP) or the potential that the tools might get a hold of our IP through our use of the tools and share it with others. I’m not terribly worried about generative AI taking my job when none of the thousands of programmers at my company are allowed to use it.
- briHass 3y agoSame here. Anyone that works in a highly-regulated industry doing software (e.g. finance, healthcare) is probably not going to see much AI pressure on programmers until the legal quagmire is cleared up. There are privacy concerns with the data, the same ownership/copyright problems often discussed, and ultimately, there needs to be someone (a human) to take accountability (blame) if everything falls down horribly.
- slaymaker1907 3y agoI don’t think GPT is legally possible, at least for code generation. AI companies are completely delusional in thinking that they can just use whatever they find on the internet, regardless of license. Regardless of court outcomes, artists, writers, and FOSS devs will lobby congress if necessary to stop this this nonsense. OpenAI has done less than 1% of the work that makes ChatGPT work, most of the work was in producing the training data, and yet OpenAI receives 100% of the profits.
- jabradoodle 3y agoI'm not a maximalist who is thinking we are all about to be automated; but I do question the logic of "the AI can't do my job so I'm safe". Maybe the AI can't do your job, but maybe it can do the job of many people who would have the skills to do your job. If this happens and the new capabilities don't create enough new jobs, then the risk to software engineers is supply and demand.
- sublinear 3y ago"You will have to worry about people who are using AI replacing you" Oh yes. I should be very very afraid of the flying copypasta monster. As if my productivity is reduced to the mere rate at which I can write code! What's even project planning? Why even have meetings if it's all down to "is it done yet"? Who works at these coding sweatshops that are so afraid of AI? If they get fired and find a better place to work, that's a win.
- JaDogg 3y agoSeriously, I wonder if these sweatshop people are paid by lines of code. That is a horrible way to Engineer things.
- OwenFM 3y agoIf people get left behind, it mightn't be such a bad thing − the cheaper software will lower the cost of living, making UBI more feasible. The glut of unemployed people will hopefully popularise UBI rather than trying to jump back on the treadmill of GDP maximisation, exploiting each other and destroying our planet. https://nonhuman.party/post/replacing_capitalism/ https://nonhuman.party/post/replacing_capitalism/
- skeeter2020 3y agoInteresting take, ignoring the fact there will be far less people to pay into your magical UBI pool. How do you reconcile a huge glut of unemployed people and the resources to hand out extensive welfare benefits?
- epylar 3y agoI think the idea behind UBI is the corporations will pay most of the taxes required.
- wxce 3y agoBut then who would pay the corporations, if most of the population is on UBI? If only a subset of the population makes money (<30%), would that be enough to feed the rest of the population and to help them live a life without poverty?
- imtemplain 3y ago[dead]
- manicennui 3y agoIt is difficult to take pieces like this seriously. "AI" is not ahead of people who are competent. And you should be worried if something that produces semi-correct boilerplate is ahead of you.
- pedalpete 3y agoPerhaps the title of the post has changed as it now reads "How Coders can Survive - and Thrive - in a ChatGPT world". My initial reaction when looking at the HN post title "Tips for programmers to stay ahead of generative AI" made me think "we don't want to stay ahead, we want to leverage the new capabilities". Can you imagine a weaver thinking "how can I stay ahead of the loom?" It's crazy to try. Instead, figure out what the new technology enables you to do which you couldn't do before, and leverage that.
- gopalv 3y ago> Can you imagine a weaver thinking "how can I stay ahead of the loom?" Of course that happened and will happen again, but with the same results. That's almost the exact origin of the word "Luddite", where people went around breaking steam powered looms. The "treat AI like a smart intern" is basically the best scenario out there. I see this approach more often than the wielder of AI being entirely non-technical. Github co-pilot at least is more like a power drill or a CNC machine rather than a robot writing all your code - or what a spreadsheet tool was to an accountant. The math is no longer the hard part, the rules outside turned into their domain expertise. Teams of five are now cut down to one experienced dev or two. That detail sucks much more for someone who is going to start in the industry next year than to the people who are already here. They're going to have to learn from the AI instead of people.
- Izkata 3y agoFrom the source: <meta name="description" content="4 tips for programmers to stay ahead of generative AI"/> <meta property="og:description" content="4 tips for programmers to stay ahead of generative AI"/> <meta property="og:title" content="How Coders Can Survive—and Thrive—in a ChatGPT World"/> There isn't a [name="title"], so if HN pulls from [name="description"] it may not have changed.
- ionwake 3y agoI find Gpt-4 is great at doing simple ffmpeg commands but the second I had a bug in a complex statement it just ended up creating a recursive behaviour of failing to fix it. Which does waste time I am unsure of if it’s close to fixing something or just can’t - I find it hard to figure out.
- robbomacrae 3y agoIt can indeed sometimes get stuck in a rut.. particularly with regex! I find that in such cases, if I can't take over and fix the issue then it sometimes helps to start a new chat (not sure if there is a clear context command) and approach it from a different angle.
- minroot 3y agoWhy does IEEE have to run online ads on their website??
- robbomacrae 3y agoIf you haven't already I urge you to try getting ChatGPT4 to do most of your programming for you. Just ask it interview style coding questions and refine the answer with more interview like follow on questions. And for making changes to existing code, you might need to check with your company's policies on this, but if you're ok to paste code into ChatGPT you can also just ask how to change it to do Y instead of X. Copilot is.... ok? StarCoder is pretty bad IMHO. ChatGPT4 is really empowering.
- deleted 3y ago[deleted]
- deathmonger5000 3y agoI wrote a great tool for this: https://github.com/ferrislucas/promptr https://github.com/ferrislucas/promptr It’s great for making changes to existing code because it automatically includes the relevant files for context.
- klysm 3y agoI’m not putting anything with important IP into chatgpt
- MisterBastahrd 3y agoStep 1: Be a consultant Step 2: Wait for all shit to go to hell Step 3: ??? Step 4: Profit AI might be good for helping improve productivity, but those machines are still no smarter than the average person on the internet, and the average person on the internet is far dumber than the average developer. It's this year's blockchain. Are there successful uses of blockchains? Sure. Walmart uses them in Canada and has streamlined their logistics and fulfillment up there by leaps and bounds. But that's a very specialized use case.
- twodave 3y agoIs programming even the hard part about programming? In all seriousness, what we would really need from an AI to start really saving me time would be for it to interview all the customers/partners involved on the project, determine the scope of function needed, boil all that down to a set of sensible domain models that make sense to everyone, identify where/when messages need to be passed, determine which things can happen piecemeal as opposed to requiring a bulk op, deciding on a persistence technology based on the nature of the requirements... And that's just an abbreviated form of what I go through when designing a back-end for a tiny boutique application. 99% of programming is making decisions. When you finally have everything planned, the code can almost write itself, but getting to that point requires so much background knowledge that I'm not sure GPT4 will be hunting for my job anytime soon. Or even really augmenting it. I'd be happier if they could just get auto-complete in VS Code to not suck complete balls.
- snickerbockers 3y agoi'm honestly not worried at all about LLMs because most of my jobs have consisted of fixing problems in other peoples' code, and i haven't seen any evidence that an LLM will be capable of doing that on a non-trivial program any time in the near future. I have, however, seen evidence that chatgpt will create many more problems and make my job harder.
- SrslyJosh 3y ago> i haven't seen any evidence that an LLM will be capable of doing that on a non-trivial program any time in the near future Or ever, given that the level of abstraction LLMs work at is completely wrong. They can approximate the syntax of things in their training corpus, but logic? The lights are off and nobody's home.
- noobermin 3y agoThe bad news is that everyone (including the CEO interviewed) who lords over you don't know that and won't hesitate dumping all that work on you.
- twodave 3y agoFor all the folks out there saying, "Wow this will enable so many more people to become proficient at programming!" Just stop. The last couple of decades the likes of Google and the rest of the FAANG/whatever acronym you want to put on it have been standing on the street corner screaming, "PASS A LEET CODE INTERVIEW AND WE WILL MAKE YOU RICH." ChatGPT has nothing even close to that amount of incentive attached to it. I see LLMs helping middling developers accomplish things in code that they'd otherwise be slower at or unable to complete. Or in a different language. Doing things faster pretty much implies a lower level of understanding, which means maintenance costs (which are already the majority of costs for most companies) will only increase. There is so much more incentive to spend on R&D, and using an LLM to iterate faster can actually skew costs in the wrong direction.
- yawnxyz 3y agoLLM-based regex generation is probably my absolute favorite thing. I give it a bunch of examples and say "create a regex of that" Does it hallucinate? Probably! Do I "hallucinate" while trying to clobber together terrible regexes? Absolutely
- klysm 3y agoThis is what makes me nervous. Is it not bad to be generating stuff you don’t understand that _might_ work?
- throwuwu 3y agoMost of the complex regexes I write fall into the category of stuff I don’t understand that might work. I’m no slouch at regexes either but when you start trying to do weird data processing stuff that handles all kinds of edge cases the wheels really come off quick.
- SrslyJosh 3y ago...and that's where you stop using regexes exclusively and start using better parsing techniques.
- klysm 3y agoIf you write it you at least partially understand it. I don’t buy it
- throwuwu 3y agoIf gpt writes it and I don’t understand some parts I just paste it into a regex testing site and examine the groups and try it out with different snippets of text. Is that so hard? Is it any different from using something you found on SO?
- misja111 3y agoI try to avoid using regexes for exactly that reason.
- bitwize 3y agoI haven't faffed about with ChatGPT yet, mainly because of the verification cans it makes me drink in order just to use it. I also don't want every query of mine being snarfed up into some cloud database to be recycled for profit by Microsoft. Writing a program is a very private activity for me and I am very concerned about leaking data about my code to some huge far-off entity to profile me with. Yes, I know that there's a difference between private-time programming and programming on the job; given the industry I work in, my employer has even bigger concerns about data leakage and recently issued a policy forbidding the use of ChatGPT and other publicly available LLMs. I do not feel that it will affect me terribly much. I don't even use autocomplete -- too distracting. I've long been of the opinion that things like autocomplete are there to simulate the feeling of increased productivity, without making you much, if any, more productive, because the bottleneck in writing code is the deep thought about what you need to write, not actually typing it in. I felt the same way about AppWizards and other code generation tools from old-school Visual Studio and the like. They generated boilerplate code for an application in the shape that some Microsoftoid decided was best, not the shape I actually wanted to create. I suspect that in the long run, LLMs will be about the same, until we've solved AGI -- at which point any such intelligence will have its own ideas about the code it wants to write, which doesn't affect me unless I choose to collaborate with it. If you think about a human who isn't terribly smart, but they want the world to think they are, what they will do is generate bullshit to fill in the vast gaps in their knowledge. So if you have such a person working for you, you have to check their work because they will try to fob off shitty work rather than ask for help. And ChatGPT is kinda like that: it will generate bullshit (we call it "hallucinations" in the case of GPT, but the term of art is bullshit) to fill in the gaps of what was not in its training set. And there's no way to know where the gaps are. So you have to check anything it outputs for correctness and lack of bullshit. I'm not sure that incorporating LLMs into programming is (yet) not just an infinite generator of messes for humans to clean up.
- lotsoweiners 3y agoI feel the biggest tip for anyone (not just programmers) is “talk to your congressman”. AI has enough of a bad rep whether fictional or not that i think getting bans/fines/taxes/other in place will be far more useful for the little man than whatever this article recommends.
- SrslyJosh 3y agoThey left out "seed Github with deliberately buggy code that purports to solve common problems."
- emmo 3y agoReally feels like we're celebrating having less understanding of what we're doing; pouring fuel over ourselves.
- steve_adams_86 3y agoI’m an okay programmer, but I get my contracts by being able to understand what my client needs and assuring them I can find the right people, do the right work, and complete a project on time and within their budget. They pick me because I have solid references, I’m kind to them (I’m genuinely grateful for the relationships I build), I listen well, and I prioritize their experience over my convenience. I’m able to take on a project at any stage in its lifecycle, take control if necessary, and get it where it needs to me without them needing to worry how it happens. They can trust me to know what they need and solve their problems, even stepping in to figure out what their problems are if they’re unsure. Sure, it requires programming skills. I have nearly 15 years of experience now, and it’s relatively broad. I’ve done a bunch of stuff, but nothing exceptionally deep or difficult. Without communication skills I would be nowhere, though. Without a human face, anticipation of human needs, empathy, genuine concern, and all of that — no one would hire me for anything interesting or important. My references wouldn’t be so positive. No one would trust me with tens or hundreds of thousands of dollars, let alone what feels like the fate of their start up on a tight timeline. Until AI can do any of that, I’m not too worried. I know my clients are looking for a human being they can trust just as much as they’re looking for a product to be built or a problem to be solved. Many of them are extremely nervous and uncertain, and a machine would likely fail to assuage their worries. Perhaps it will get there sooner than I think. I don’t know. My advice to programmers is to focus on the human side of what you do though, and the humans using the products you build. There’s not much else that matters; at the end of the day, we’re humans building things for humans. I suspect long before AI can out-human me, I’ll be using it to enhance my development process yet still relying almost exclusively on face to face communication to get my most important work done.
- justanotherunit 3y agoI agree, it feels like coding is starting to become somewhat easier since AI can both explain and generate code snippets okay, and is improving over time. So the good old days of just creating an innovative program without major human interactions has passed. Taking the customers requests and discussing into an suitable feature, without totally shooting down the idea and trying to explain why it won’t work is some of the harder parts of being a programmer these days, at least in my experience.
- Alice2O3 3y agoI would just copy and paste the comments from codeforces red-black Um_nik (https://codeforces.com/blog/entry/92248 https://codeforces.com/blog/entry/92248): ``` I'm just in a mood to shitpost. Don't take it too seriously. Things that I have heard of, but don't know (imagine how many things I haven't even heard of): - Li-Chao Segment Tree - Segment Tree Beats - RMQ in O(n)/O(1) - Any self-balancing tree except treap - Link-cut tree - Wavelet tree - Mergesort tree - Binomial heap - Fibonacci heap - Leftist heap - Dominator tree - 3-connected components in O(n) - k-th shortest path - Matching in general graph - Weighted matching in general graph - Preflow-push - MCMF in O(poly(V,E)) - Minimum arborescence (directed MST) in O(ElogV) - Suffix tree - Online convex hull in 2D - Convex hull in 3D - Halfplane intersection - Voronoi diagram / Delaunay triangulation - Operation on formal power series (exp, log, sqrt, ...) (I know the general idea of Newton method) - How to actually use generating functions to solve problems - Lagrange Inversion formula - That derivative magic by Elegia - That new subset convolution derivative magic by Elegia - How Elegia's mind works - Sweepline Mo - Matroid intersection If you know at least 3 of these things and you are not red — you are doing it wrong. Stop learning useless algorithms, go and solve some problems, learn how to use binary search. ``` For 2023, I would append the list with: - ChatGPT - Github Copilot - GPT-4 - Whatever the "generative AI" is If you are a beginner, these so called "generative AI" are actually the same as those cryptic algorithms in competitive programming mentioned by Um_nik and you won't ever really use them once in your life, but learning the basics will definitely help you improve gradually.
- ehnto 3y agoUnless this individual has an insight into global software development businesses, I think this article has some great thoughts about possibilities but is quite non-factual, counter to the language used. Many of the statements of how AI is being used are phrased as if it's matured already, the reality is this is all still a big trial. It's not clear if teams will continue to use AI in the way they currently do, so it's a bad assumption to base your predictions from.
- electrondood 3y ago90% of the job isn't writing code. It's soft skills, coordination, communicating to understand and refine stakeholder requirements, planning, research, etc.
- slaterbug 3y agoAh, so the worst parts of the job, great…
- devnull3 3y agoWriting code is just one part of the overall list of things that an engineer does. Infact, barring the early versions of product/project more time is spent elsewhere in subsequent versions. With code it is more reading than writing new code. Other things on which time is spent are: 1. What needs to be built? What is feasible? 2. Investigations (bug reports, production issues, performance issues, etc) 3. Quality control (code reviews, writing tests) I am only listing things which require considerable thinking and multi-domain skills. So LLMs (as of now) really only helps with one part of overall things to do. Also, Rate of code generation with AI >> Rate of effective code review. So the bottlenecks will still be humans. PS: About quality control: I think AI writing code and generating the test code is not desirable. If the underlying LLM has issues even the test code will have issues. Generating boilerplate is one thing but the key things about the tests (i.e. inputs/scenario & things to check) needs much better curation. This needs human intervention.
- deleted 3y ago[deleted]
- bandrami 3y agoThe people who can use AI to make code are the same people who can write code. I've never really seen how this is supposed to expand the dev base.
- easeout 3y agoIt doesn't seem so different from what higher level languages becoming the norm has done year by year. You still benefit from knowing what's going on under the hood, but it's not strictly necessary, and lots of newer folks in software careers get by without ever really looking behind the curtain. My web dev colleagues barely touch a debugger.
- laeri 3y agoI use ai mostly for creating code examples for specific things I haven't written before and for learning new programming languages. During day to day I haven't used copilot or tabnine yet but I have seen that there exists some plugin I could integrate into neovim which I will definitely try.
- SergeAx 3y agoI recently tried to write a simple classificator using pytorch with ChatGPT. I found out that I cannot use the recent version of pytorch, but only the one was in use before ChatGPT knowledge cutoff. That also meant that I was limited by using Python 3.9, because most September 2021 libraries had no readily available builds for 3.10+. And this is quite particular example. Software evolves quickly, ML models are expensive to train, and the gap will be mostly there anyway.
- strus 3y agoIf you worry about "staying ahead of generative AI" in it's current state, then I think you are not a good coder and you should learn more instead of worrying about that. LLMs are only good in writing new code without surrounding context. They are pretty useless in legacy codebases and in codebases with a lot of internal solutions. I've used Copilot for 2 months at work and maybe 10% of suggestions were useful, and from that 10% maybe 10% did not contain bugs.
- vidyesh 3y ago> then I think you are not a good coder and you should learn more instead of worrying about that I am not sure if its that simple and/or so black and white. Everyone is bad when they start, and even stay okay for a while. So fear is very rational, the fear of getting replaced by someone or something better is very humble. No matter how good or bad one is, theres always someone better than them. I think for most people its smart to adapt to using AI in their workflows to make them better and more efficient, so I think everyone benefits from learning no matter what skill level they are on.
- starbugs 3y ago> I think for most people its smart to adapt to using AI in their workflows to make them better and more efficient It probably is smart to try out and test everything for a while to see if it is an actual improvement or not. What I have a serious problem with is the proposal that this now needs to be part of a workflow when it actually doesn't improve anything. Generative AI in its current form may be helpful in some cases and unhelpful in others. Plenty of examples are mentioned in the context of the other comments. I agree that the parent statement "then I think you are not a good coder" is a somewhat dangerous overgeneralization.
- vidyesh 3y ago> What I have a serious problem with is the proposal that this now needs to be part of a workflow when it actually doesn't improve anything. Yes, forcing it in the workflow might be bad for personal growth and overall culture. I think in any form using it alongside you workflow is helping, it saves a lot of time and also helps decreasing cognitive load as one can forget about the commonly used code snippets and boilerplate code and focus on important aspects of the code.
- nottorp 3y agoInteresting, why does chatgpt insist on having your phone number even if you want to register with another identity provider?
- deleted 3y ago[deleted]
- benrutter 3y agoI see a lot of writing like this about LLM's ability to generate code, but I'm a lot more interested/optimistic about their ability to provide value by reading code. Being able to point to a github repo and say something like "explain this codebase, highlighting key functions and potential refactoring routes" would be really helpful. I've trialled that a little bit with codebases I know well and the results aren't yet helpful beyond a very high level. I think it's a pretty reasonable goal to aim for though, and this kind of codebase parsing would be much more of a net gain than just generating a tonne of functional but suboptimal code.
- YeGoblynQueenne 3y ago>> One of the most integral programming skills continues to be the domain of human coders: problem solving. Analyzing a problem and finding an elegant solution for it is still a highly regarded coding expertise. Yeah right. I'm on windows 11 now, with English (Europe) as the system language and a double English and Greek layout. Windows continues to shit itself and randomly add two new languages and two new keyboard layouts to my machine for reasons unfathomable: English (US) and English (United Kingdom). To clarify, this has been happening since Windows 10. You can find posts about it on the internet, like this one from seven years ago: https://superuser.com/questions/1092246/how-to-prevent-windows-10-from-automatically-adding-keyboard-layouts-i-e-us-ke https://superuser.com/questions/1092246/how-to-prevent-windo... The user who posted this says: Please help, I'm desperate, this is my third computer with Windows 10 and they all do the same thing. If "analyzing a problem and finding an elegant solution for it" counted for anything, it would be very difficult for one of the largest software companies in the world to have a long-standing bug carried over two versions of its flagship operating system. Nah, the truth is that nobody gives a shit about "elegant solutions" or problem-solving ability. Not in the software industry. And that's why LLMs _will_ eventually take over, even though they can't code themselves out of a paper bag. They can spew out code faster than you can type "public void integer FixKeyboardBug()". Why they fuck would anyone care if they can't actually fix any bugs, or create new ones at the same high rate they generate code? It's going to suck so much having to use software ten years from now. You think it sucks now, but oohoho, just you wait.
- Jenk 3y agoThat isn't the slam dunk you think it is. Just because they won't doesn't mean they can't. MS have decided it isn't important enough to fix. Fwiw I view MS as a terrible (software) product company. All of their products fall short of delivering, in my opinion. I think of them as the "80 percenters" - their prpduxts do 80% of what any user reasonably expects as UX of their products, or of what their competition offers. Teams: 80% of Slack. Azure: 80% of AWS. Etc. Have discovered a bug within their product(s)? Unless you have an account manager on speedial (and thus are paying the kind of fees that get you an account manager) good luck getting any kind of response that isn't some cut/paste job by a community "MVP"
- slaymaker1907 3y agoOr how about this: we hold AI companies accountable for treating the internet as free real estate and attempting to put FOSS developer brains into a jar with a ChatGPT label. These LLMs should not be afforded the same rights as humans and should instead be treated as derivative works of their training data.
- JaDogg 3y agoIf anyone is depressed about AI replacing your job please get mental health help (or at least talk to someone) and stay away from AI related news for a while (Use some Tampermonkey script to block things for you).
- thierry_src 3y agoA few years ago, before the advent of Copilot (and ChatGPT), I was telling my students their future as programmer was bleak, because most coding is either interfacing stuff, or creating an often incorrect heuristic to solve a single instance of a well known class of problem -- and all those activities could well soon be automated thanks to datasets like StackOverflow. I now consider that ChatGPT for programming is a confirmation of my intuition back then. Now, I understand that article as being too shallow again, by defining short term strategies for working with ChatGPT without considering a long term view on what it means for programming overall. And I'm sure I'm not alone in finding the impact of ChatGPT (and future generative AI) on programming as obvious...
- m3kw9 3y agoI’ve asked it to write code as a black box: I sometimes purely run code it generates and see if the output matches. If it matches enough tests and special cases, it’s done, I don’t even waste time to understand it. The main thing is the tests.
- deleted 3y ago[deleted]
- joeythedolphin 3y agoI hate these articles. "Take a deep breath and refocus". "Find a way of working that works for you." "Stick with that you know." "Understand risks." It's so meta it's useless.