Ask HN: What are your thoughts on ChatGPT as a professional?
Usually, I get a really helpful and insightful response that optimizes my design. Sometimes I come up with a solution that might work, but gpt helps me come up with a better solution. This ends up teaching me so much because I actually absorb the information. Moreover, it helps me debug too. I find it as a shortcut to debugging. I see it as, I can spend 2-3 hours googling stuff, or I can spend about 45 minutes talking to gpt to pin point the bug and come up with a viable solution. All that said, what are your thoughts? Am I too reliant on it? Is this a “healthy” relationship with AI? I want to be a strong engineer. I don’t want to pick up sloppy habits and become a poor engineer. My perception of gpt is it’s a new resource to take advantage of. I need some input. What are your thoughts? Thanks!
64 comments
[ 3.4 ms ] story [ 121 ms ] threadAny? Sure. At the organization level, there are workplaces that completely ban ChatGPT and will fire you for using it, and there are workplaces that buy all their engineers a subscription to it and actively encourage using it. At the individual level, there are people who make heavy use of it, people who can't stand it, and (most commonly, imo) people who have nothing against it but don't personally find it very useful.
Don't use it if your company bans it, but otherwise do whatever you want and maybe check with your coworkers about how they feel towards it before revealing to them that you're using it, just to be safe.
> Am I too reliant on it? Is this a “healthy” relationship with AI?
Based on what you've said, your relationship with it seems perfectly fine. The concern with coding AIs is that novice programmers will encounter a problem they can't solve on their own, ask an AI to solve it for them, and copy and paste the output without understanding the problem or the solution. In the best case, the code can work but have subtle flaws that won't show up until later. In the worst case, the code doesn't even make sense and you annoy your peers by making them review zero-effort garbage.
But if you're just using it to further explore the solution-space of a problem that you already know how to solve in at least one sensible way, there's no danger there and you're just learning and improving. Just be sure to fully understand any AI solution you encounter before internalizing it as a lesson.
If we froze all coding AIs right now and prevented them from continuing to improve, I'd think you'd find them becoming less and less useful to you as you gain experience. Obviously, they do much better solving common problems with lots and lots of public solutions already available, and more senior engineers don't tend to need help with those or have much to learn about them. That being said, I know plenty of very capable senior engineers who use AIs to generate repetitive boilerplate (often tests) in verbose/inexpressive languages like Go. Anyway, depending on how quickly these AIs continue to improve, you may never get the chance to "grow out of them" and they might be able to keep teaching you increasingly complex things until they finally replace all of us. Who knows!
I have decades of experience as a SE and taught postgrad SE courses at uni. And I have experimented with ChatGPT, BING. With well thought out questions, LLMs return better answers than Google, etc searches. But not always. Distrust and Verify!
Somebody described LLMs as "Endlessly Enthusiastic Savant Intern". Just don't try to get it to do high-level systems design or to understand business domains, requirements, etc. If you treat ChatGPT as a gofer to research information, then you can certainly save time. But you do need to apply your judgement and knowledge to ensure that what you produce is appropriate and functions correctly.
In due course, you will gain experience and expand your knowledge horizons with your professional experience. By all means, continue to read widely and in-depth. Never forget that ChatGPT, etc are just one of many tools that you use.
In my father's day, proficient use of the slide-rule was mandatory. For me electronic calculators and computers were the tools of trade. For the emerging generation of engineers, AI is the contemporary tool. We are yet to glimpse what will be next. However, foundational knowledge in your discipline with on-going learning remains the essential super-power.
But I never let it speak for me, and I find it rude to make someone take 5 minutes to read something I “wrote” in 5 seconds. Technology should make us better humans. It should amplify our best traits, and our ability for bullshitting isn’t one of them.
It’s not a serious product.
It's a productivity tool that will find it's place alongside similar tools like intellisense and linting. Just like those tools it will change the way people code - they will need to hold less info in their mind, and that can potentially allow them to reach greater heights, or learn faster. Or, it could potentiate laziness instead. That's down to the individual (and applies to more than just coding, LLMs are equally used in fields like art, translation, marketing, copyrighting etc.).
As for my personal usage. Here's a couple of thoughts that might be obsolete in two months:
* It's awesome for looking up basic algorithms like sorts
* It's pretty great for doing simple things with well established code bases (e.g. React)
* It's even better for doing those things if you are already an expert so that you know how to guide it
* It's pretty terrible for doing anything with more obscure/recently released code bases, whether you are an expert or not
* I have heard it suggested this will make people want to avoid working with less well known libraries. This remains to be seen I guess
Thoughts on what this means in a "professional" career:
1. If your professional career brings you down well trodden paths (e.g. writing React apps) it will probably be a big part of your work
2. If your professional career leads you to working on obscure systems, or even writing those systems, it won't be as useful for you except as a reference for algorithms, or for writing comments (this is where I have been recently).
However, if someone can figure out how to retrain the models constantly on new info so that even the newest of releases becomes a part of the training data just as fast as they would show up on a Google search, that will change things a lot. Likewise, if it can be trained on a your own personal obscure codebase (I think this might already be possible?) that would be a big deal.
Finally, as for stigma. I don't think so. There are privacy issues but these can be worked around by running a local LLM and these are getting better and better. If you have a graphics card with 16gb of RAM I think there's already models that you can run locally that are similar to GPT3.5 performance.
I work in a big tech company. ChatGPT (and equivalent systems) is becoming pervasive in developers tooling. There's no stigma, it's used is actually encouraged.
I don't think it's a life changer or that it'll save engineers the time to learn their craft.
It will eventually hallucinate some property that doesn't exist, but since I kinda know what I'm looking for and just need the information condensed to move further I'll then verify the API/library docs with the given output and find my way through much faster than I would by starting on my own.
To me it does not become a code generator aside from boilerplates and starting points in languages I'm not an expert, it even helps me a lot to learn a new language (like Rust) where I can get a simple skeleton out of it for a task I want to do and code on my own later, just returning to ChatGPT to ask things like "how could I open a file with write access in <language I don't normally use/I'm learning>".
It's never helped me with any business logic properly (and I don't feed it my company's code, I will write a more generalised case as a prompt, or swap to an analogy to what I'm trying to do), it probably needs a lot more context that I'm not happy nor comfortable to feed into OpenAI's training dataset.
I'm been playing with Mistral's models locally through ollama and it's quite promising what one can do with a local model that you can feed a lot of context without caring about where private data is being stored, I see a big future if those models keep evolving as code assistants.
Less common: code transformation. I have this json output and I want to turn it to a different format without bothering writing a script. I give chatgpt a few examples of the transformation, and have it done for the rest. I'll still have to fix it but it can save me a bit of the time.
And finally, when I stumble on an API I don't know anything about, I can get a better grasp by asking ChatGPT some questions about it.
Again, not life changing or even a huge productivity booster, but it helps. Also, it's good to know when ChatGPT isn't going to help and avoid losing time.
At companies I've worked at, it's actively encouraged _if you follow the rules_. Specifically, you shouldn't be using SaaS LLMs like ChatGPT, Copilot, etc with your personal account for business purposes. That's likely a violation of your NDA.
However, it's absolutely encouraged to use the tools that the business blessed. That's what they're there for. Local LLMs seem to depend on licensing for the weights, etc but are also kind of a "don't ask don't tell" situation.
Of course, if the business hasn't gotten an approved tool by now... well, in that case there are going to be lots of employees using whatever they want, and you should probably be looking for a new job because that business is behind.
Also I wouldn't agree there's "no stigma". I know some people that use it to just make up word vomit for peer evaluations or extremely WET/cargo-culted code they don't understand for which I definitely judge them.
My company has an agreement with OpenAI. I use it from our internal tools.
We also have top-level engineers giving speechs on how they use it and so on.
Also:
* It has a horrible habit of inventing properties on objects or methods in libraries.
* It will very happily straight up lie to you about things it does
* Often when you ask it to make a specific change, it will give you back exactly the same as last time.
* For the love of God, don't put any company-owned code into it.
* Maybe I'm just bad at prompting...
It's own code output will generally work for things that have been done before, but quickly fall apart when you are trying to create something new. You'll need to write a lot of pseudo code to make that work, which is actually excellent training as well.
It really does help if you instruct the language model to be honest and to not do it's very best to please you.
I have not found a solution to the repeating incorrect answer loop yet, although some environments offer a "banned response" list, that can mitigate the situation a bit.
As to the OPs question, yes, definitely use it! But more importantly, learn how to use it. Your approach sounds reasonable and similar to mine. Companies that ban the use of LLMs or developers that scoff at it's benefits are delusional.
Something that is easier to use might come eventually, but in the short term future I expect we will see a clear separation between developers with strong grammatical skills who have learned how to prompt and those without the ability or the experience.
Use it to save time. Stuff like writing boilerplate, documentation drafts, summarizing things, looking up stuff you'd normally use stack overflow for, things like that.
you dont use a hammer for all carpentry work.
I don’t use it for programming though, and I do worry about otherwise talented engineers using it as a crutch. There has been more than one occasion in code review where an answer to one of my comments was “well, this is what copilot said…,” which I take a pretty dim view of. In that sense it’s like the early 2000s when people started thoughtlessly deferring their intelligence to sat nav.
Note: I'm a technical freelancer, mostly doing code but also some 3D modeling, game development etc
Most of these use cases work around the "problem" of hallucination (except perhaps the 2nd one); it's ideating for you and you judge what's useful or not. As such, it's one more productivity tool I feel people should learn to use, with the relevant understanding and care.
I think if anything, you'll be spending a lot of time code reviewing AI output. Reading code and thinking about if its failure cases is a good thing. Having to constantly do this could make you sharper at that. (EDIT:) Also to clarify that you are still the one that has to see the forest from the trees with the problems you are working, so the "how things fit together" is still a skill to develop.
The first insight is that an article that I need to publish could be proofread immediately while before I used an incredible professional content editor that could take hours for reviewing and improving the article. The editor continues to work for us though ;-). In general, the ChatGPT answers should not be copy and pasted but be merged with your content.
Another insight is that ChatGPT is gradually replacing or being a complement to Google Search. Google Search is terrible nowadays and simple questions in ChatGPT are a good way to start a search in a domain that you are not expert at. It needs a dialectic approach but works.
I would say garbage-in / garbage-out: if you interact with original questions the tool could be more insightful but be always critical of the output.
BTW, there are a lot of issues in Wikipedia pages as well. There is a general issue with being critical in general, ChatGPT is no different.
This statement here is what I'm asking about:
> The first insight is that an article that I need to publish could be proofread immediately while before I used an incredible professional content editor that could take hours for reviewing and improving the article.
Don't you have to double check the output anyway and how is that proofreading?
In my example: I can create content easily but not proofread it as easy as ChatGPT. Once ChatGPT comes out with a solution I can check if the solution is correct or not. Is this complex to understand? If you are a writer you can write quickly but need an editor to help you to improve your text, once your editor give you ideas you can use or discard them. Some of the ideas your editor gives you will never come from you or require more thinking that stops your writing flow.
I don't claim the autocomplete in my editor is validating or testing my code, to use your own analogy.
I still don't feel you're answering my question, but the lack of an answer is also an answer in a sense.
I've tried using GPT-4 for programming tasks, only deferring to it when I was stumped on something. I felt like it was wasting my time more often than not.
I have tried copilot in my IDE, but I just don't see the value. About 50% of the time the suggestions are not useful or correct, 50% of the time the suggestions are what I was typing which is exactly what code completion does.
Ask it to explain every line of something, after the fact. Ask it for better ways of doing things. Ask it how you can make code more robust, what and how you can test it. Be better than your peers at using it. The world will only increase usage of this new thing so why not just be really good at it.
In the grand scheme of things it's about the value that you add, and some of that will be getting into a new problem fast and sometimes it'll be your understanding of fundamentals. Do both, use whatever tools you need. Buy books, read open source code, read blogs, use AI.
I'm getting the most out of it when I'm doing stuff so new to me that I don't have the right words to even search on google, there it's very useful to try and ask it questions the same way I'd ask a (non-asshole) human, and rather than (intentionally misunderstanding my by taking every word literally and assuming I know what it means), it will try and explain what it understood form what I said..
Non-technical example where I found it easier to just ask chatgpt is "What's that spice that some people really hate and says tastes like soap, and others don't really mind?"
"exactly, what's it called in danish"
very natural exchange and gave the right answer
I find it particularly useful when I'm responding to a client with something technical. ChatGPT can sharpen up the message, clarify points in a client-friendly way, and hit the right tone.
Great for throwing around ideas and getting some feedback before diving into the code too.
I find it's easy to go wrong if you're too trusting of the output though. For important questions, I'll get some initial guidance from ChatGPT to refine my research rather than outright accept any answer it gives.
What I've also found is it's incredibly useful for domain knowledge too. I've been working on a project around electrical grids, and when I had to go deep into how AC grid electrical engineering stuff, it was very very helpful. It's useful for business related stuff too.
At the end of the day, I think it's a powerful tool that shouldn't become a crutch, and any company saying otherwise is sabotaging themselves. But that's not to say they wouldn't be a good place to work for, companies sabotage themselves in all sorts of ways :)
It's great for getting started quick, but don't fall into the trap of believing it could be a viable replacement for a human expert or a reviewed reference.
To be honest, I tend to believe now we're a long way off from an AI capable of that (again).
So to answer your question: become reliant on it. This is the future of white-collar work. Local instances are catching up to the big ones. It's only going to get better!
It is the same as typing rather than handwriting. I can still write with a pen, but it'd take me a lot longer to write a letter than typing one.
This is terrible advice. To be reliant on something is to be helpless when that thing stops working or is taken away. That's never a smart thing to do willingly, never mind enthusiastically.
By all means, learn how to leverage it productively, but be mindful not to become reliant on it.