As someone who is learning, I think it’s imperative to understand that chatgpt has limitations that cannot be overlooked. It’s pretty good if I make some silly syntax or formatting errors, but at the core I have to understand what I’m working with if I want to be a better programmer. I love the conversational nature because I often have a hard time wording questions, so it helps me in that regard as well. Idk if you want to be truly good at something you have to be more reliant on yourself than external tools.
The thing is, in some fields like devops, there are so many tools that you can’t remember or know all of them very well. So asking chatgpt how to do something saves very much time. It can write ansible playbooks, docker files, web server configurations etc etc. They almost never work perfectly but they give a very good starting point to modify.
It used to be that you could be very good at specific languages or tools but today, there isn’t enough time. Everyone is always in a hurry to get something out as quickly as possible too.
I literally cannot comprehend coding with ChatGPT- How can I expect something to work if I don’t understand it, and how can I understand it if I don’t code and debug it myself? How can you expect to troubleshoot any issues afterwards if you don’t understand the code? I wouldn’t trust GPT for anything more complex than Hello World.
Just yesterday, I wrote a first version of a fairly complex method, then pasted it into GPT-4. It explained my code to me clearly, I was able to have a conversation with it about the code, and when I asked it to write a better version, that version ended up having a couple significant logical simplifications. (And a silly defect that I corrected it on.)
The damn thing hallucinates sometimes (especially with more obscure/deep topics) and occasionally makes stupid mistakes, so it keeps you on your toes a bit, but it is nevertheless a very valuable tool.
That only really works, if the method is self-contained, and written in a language that GPT has seen often (such as python). I stopped using it, because for 1 in 10 successful tries I waste time for the other 9 tries…
If I’m writing something slightly more complex, ChatGPT(4) is mostly failing.
If I’m writing complex code, I don’t even get the idea of using ChatGPT, because I’m only getting disappointed, and in the end waste more time trying to “engineer” the prompt, only to get disappointed again.
I currently cannot imagine using ChatGPT for coding, I was excited in the beginning, and it’s sometimes useful, but mostly not really for coding…
If you’re already knee deep in existing code and looking for bugs or need to write quite specific algorithms it seems not very useful. But if you for some reason need to write stuff that has the slightest feeling of boilerplate, like how do I interact with well established framework or service X while doing A, B C it can be really useful.
Also it’s often doing a great job if you paste a stack trace into it and maybe some surrounding code. I used it to fix someone else’s Java code as well as to upgrade some 3rd party Wordpress junk to latest PHP. I barely know Java and stopped following PHP news around version 5.6.
You shouldn’t use code that you don’t understand. Chatgpt outputs quite readable and understandable code and makes sure to explain a lot of it and you can ask questions about it.
It can save quite a lot of effort, especially for tasks that are more tedious than hard. Even more if you have a general idea of what you want to do but you’re not familiar with the specific tools and libraries that you want to use for the task.
It’s also wrong a lot. Hence the requirement for understanding. It can be helpful to get through a stretch but it will fuck up before too long and relying on it entirely is a bad idea.
Often the code is self explanitory. I understand the code very often, but I still couldn’t write it correctly from scratch. You never feel like that?
This is how code examples in books works too. You get some code to look at and try to understand it. Otherwise it’s like you would ignore code examples while learning programming.
I haven’t been in web development in over 20 years; thanks to ChatGPT, I was able to get up-to-speed and start building websites again, when in the past I would have never been able to do so.
GPT is a powerful tool that can allow anyone to do anything if they’re willing to put in the effort. We should be praising it, not making fun of it. It’s as revolutionary as the internet itself.
I use it to give me prototypes for ansible because Ansible is junk. Then I build my stuff from the mishmash and have GPT check it. Cuts a lot of time down that I’d rather be doing any-bloody-thing else with.
Today we have chatbots. Yesterday we had search engines and stack overflow. Before that we had books. And before that? Well what do you know… software programming is a relatively novel field. It’s almost as if nobody has perfected how it should be learned.
The most valuable knowledge comes from experience. I copied plenty of code around during my learning days as well, and I still do it today. The most important part however is trying to understand the code you’re working with. If you can understand it, know when it fails, test it in the right way, etc., then sure, you could probably learn to code from chatbots. They provide the information, and you’re at liberty to do what you want with it. If you just copy it and forget, you’ll be a bad programmer. But it’s not like you couldn’t do that before either with the other sources that were available - there were plenty of bad programmers before we had these tools available too.
That said, there is a risk that these chatbots do not provide any useful context around the code that they produce. When you learned from a book or stack overflow, you were reading from a reasonably authoritative source that could explain the code that was produced. But the authority behind the code from chatbots is probably much weaker than what we have from stack overflow, which in turn was probably also weaker than what we have from books. Does it have an effect or learning? I have no clue. But I still think you can learn from chatbots if you use the output that they provide in the right way. (Disclaimer: I have never used one of them and have no experience with them.)
That’s why everyone switches jobs every few years.
Sure, the increased pay is nice, but the real benefit is not having to deal with the catastrophically awful code that you’re forced to write because product wants to ship this 3 months ago and you haven’t been given enough time to design and implement the system in a way that actually makes sense.
At this moment, I am staring at a 200-line block of postgresql that has about 40 JOIN clauses. It is not trivially or realistically debugable, testable, or extensible by anyone, including the people who wrote it (and no, I didn’t write this shitshow). There are basically zero nuanced tests around it, despite the fact that that’s a banner I’ve carried in a pretty militant fashion since starting at this place about 2.5 years ago, meaning that I trust this baroque confluence of relational db logic about as far as I can throw my car. It was done this way because “we’ll have time to go back and optimize it later (oh, sweet summer child)”.
Oh, I was fearing we worked together, so I just went to check one of my workplace’s megaviews. But no, it’s 448 lines.
I wrote its first version a few years ago, with less than 100 lines, then I rewrote it with common subqueries so it could be actually maintained. It was much larger by that point. Later I removed some of the ambiguous (and subtly bugged) subqueries and rewrite it to use only about half of them. Looks like I need to do something about it again.
My consolation is that I’m not the one maintaining it.
Often enough, the old code is so badly intertwined that it’s impossible to actually test. Those are the moments where all you can do is nuke it from orbit.
If you’re doing something extremely skillfully, chat gpt will make the dumbest suggestions ever…
Chatgpt is good for learning ideas and new things as an aggregate of what everyone thinks about it. But as a coding tool it cannot reason properly and has rubber stamp solutions for everything.
ChatGPT is banned by my employer, because they don’t want trade secrets being leaked, which IMO is fair enough. We work on ML stuff anyway.
Anyway, we have a junior engineer that has been caught using ChatGPT several times, whether it’s IT flagging its use, seeing a tab open in their browser during a demo, or simply just seeing code they obviously didn’t write in code I’m reviewing.
I recently tried to help them out on a project that uses React, and it is clear as day that this engineer cannot write code without ChatGPT. The library use is all over the place, they’ll just “invent” certain API’s, or they’ll use things that were deprecated/don’t work if you’ve even attempted to think about the problem. IMO, reliance on ChatGPT is much worse than how juniors used to be reliant on Stack Overflow to find answers to copy paste.
One of the dirty secrets at FAANG companies is that lots of people join from internships, and can get all the way to senior and above without ever needing to go through a standard, full technical loop. If you have a formal apprenticeship scheme, sometimes you’ll join through a non-tech loop.
The underlying problem is the same, it just became more accessible to copy code you don’t understand (you don’t even need to come up with a search query that leads you to some kind of answer, chatpgt will interpret your words and come up with something). Proper use of chatgpt can boost productivity, but people (both critics of chatgpt and people who don’t actually know how to code) misuse it, look at it as a “magic solution box” instead of a tool that can assist development and lead you to solutions.
Notepad++ is perfectly fine to code in. With the wealth of plugins it has, it’s pretty similar to vscode in how you can trick it out with all sorts of things it can’t do by default.
I’m a tolerant person, but come on, man. Between VSCode, JetBrains, (n)vim and emacs, and I can’t think of a legitimate reason to use np++ for development over any of them.
I don't use JetBrains because it's not free, I mainly use VSCode since it is and works fine, but I would use np++ after that. I spent years working in np++.
I played with linux in the early '90s, but mostly got started on GenToo Linux years ago and they had people installing Nano when building from the ground up. I grew to like that and never really learned VIM. I did use emacs every now and again, but all of those have lots of unwieldy key combinations that require memorization and don't work like a lot of other programs people coming from, for instance, Windows would be at all familiar with. The barrier to entry was too high to bother with so it was wine and np++ since I was also still using Windows for work.
I've been forced to use a Mac for work for the last almost-year and still can't find anything as good as np++. BBCode is as close as I can get and I'm still not really a fan.
Macros man, being able to record a macro and use it quickly and easily is worth it’s weight in gold when you’re doing something super repetitive that there are no automatic refactors for.
And i hate the “modern sleek design” culture of making all the options hidden and difficult to reach. Notepad s interface is so fucking clean and usefull.
I still use intellij because of a lot of other things but quite often I find myself using notepad for specific tasks and it’s such a treat
Just let me rewrite ONE report from scratch so it doesn’t check a specific unindexed table that it doesn’t actually need to check and causes the report to be killed by MSQL because it takes too long to run.
I strongly advise not to do that. As others pointed out, it really is just predicting the next word. It is worth learning about how to problem solve and to recognize that the only way to become a better program is with practice. It’s better to get programming advice from real people online and read the documentations for the functions and languages you are trying to use.
If the internet has succeeded in anything, it’s that the illusion of competence is worth more than the thing itself. Until someone calls you out, that is.
Basically, yeah. Dennis Ritchie wrote the C compiler because he knew exactly what her wanted to use it for and the kinds of code that he wanted to write. Then he went on to write the book that everyone used to learn the language.
This is true of probably every language, library, framework, etc. The original designer writes it because he knows what he wants to do with it and does so. Then everyone else follows. People then add more features and provide demonstrations of how to use them, and others copy them. It is extremely hard to just look at an API and use that to figure out exactly which calls should be made and in what order. Everyone just reads from the examples and adapts them as needed.
programmer_humor
Newest
This magazine is from a federated server and may be incomplete. Browse more on the original instance.