You’re correct, but it doesn’t really matter for demo purposes. In an actual use case (whatever that would be for this language) you would of course want to use some kind of variable or expression there instead of a constant.
But I’ll definitely prefer hiring someone who does. Sure, you can code in Vi without plugins, but why? Leave your elitism at home. We have deadlines and money to make.
Edit: The discussions I’ve had about AI here on Lemmy and Hackernews have seriously made me consider asking whether or not the candidate uses AI tools as an interview question, with the only correct answer a variation of “Yes I do”.
Boomer seniors scared of new tools is why Oracle is still around. I don’t want any of those on my team.
Thinking AI is an upgrade from pencil to pen gives the impression that you spent zero effort incorporating it in your workflow, but still thinking you saw the whole payoff. Feels like watching my Dad using Eclipse for 20 years but never learning anything more complicated than having multiple tabs.
With that in mind, work on your prompting skills and give it a shot. Here are some things I’ve had immense success using GPT for:
Refactoring code
Turning code “pure” so it can be unit-testable
Transpiling code between languages
Slapping together frontends and backends in frameworks I’m only somewhat familiar with in days instead of weeks
I know in advance someone will tunnel vision on that last point and say “this is why AI bad”, so I will kindly remind you the alternative is doing the same thing by hand… In weeks instead of days. No, you don’t learn significantly more doing it by hand (in fact when accounting for speed, I would argue you learn less).
In general, the biggest tip I have for using LLM models is 1. They’re only as smart as you are. Get them to do simple tasks that are time consuming but you can easily verify; 2. They forget and hallucinate a lot. Do not give them more than 100 lines of code per chat session if you require high reliability.
Things I’ve had immense success using Copilot for (although I cancelled my Copilot subscription last year, I’m going to switch to this when it comes out: github.com/carlrobertoh/CodeGPT/pull/333)
Adding tonnes of unit tests
Making helper functions instantly
Basically anything autocomplete does, but on steroids
One thing I’m not getting into on this comment is licensing/morals, because it’s not relevant to the OP. If you have any questions/debate for this info though, I’ll read and reply in the morning.
I don’t get the downvotes. I’ve hired probably 30+ engineers over the last 5 or so years, and have been writing code professionally for over 20, and I fully agree with your sentiment.
It’s just the general ai hate. It’s not surprising, because machine learning is yet another scam area. But for programming you would be a complete fool to ignore copilot mastery since paper after paper proves it has completely revolutionised productivity. And it’s not normal to think you will be better than everyone when not using an assistant, it’s just the new paradigm. For starters it has made stack overflow be almost obsolete and it was the next most important tool…
Your original post referred to wanting to hire people based on the tools they use to do a task, not their ability to do the task - in fact, you talked down to people for using certain tools by calling them elitist. That’s why my pen/pencil comparison is accurate.
AI’s not bad, it just doesn’t save me time. For quick, simple things, I can do it myself faster than the AI. For more big, complex tasks, I find myself rigorously checking the AI’s code to make sure no new bugs or vulnerabilities are introduced. Instead of reviewing that code, I’d rather just write it myself and have the confidence that there are no glaring issues. Beyond more intelligent autocomplete, I don’t really have much of a need for AI when I program.
This is how I use it, and it’s a great way for me to speed up. It’s a rubber duck for me. I have a fake conversation, it gives me different ideas or approaches to solve a problem. It does amazing with that
The code it spits out is something else though. The code it’s trained on in GitHub means it could be based on someone with 2 months experience writing their CS201 program, or a seasoned experienced engineer. I’ve found it faster to get the gist of what it’s saying, then rewrite it to fit my application.
Not even mentioning the about 50% chance response of “hey why don’t you use this miracle function that does exactly what you need” and then you realize that the miracle function doesn’t exist, and it just made it up.
Sure, you can code in Vi without plugins, but why? Leave your elitism at home. We have deadlines and money to make.
Nothing elitist about it. Vim is not a modular tool that I can swap out of my mental model. Before someone says it, I’ve tried VS Code’s vim plugin, and it sucks ass.
Please avoid double negatives. I’m not quite sure of the meaning of your sentence.
If you’re saying I have issues using vim if I can’t use it in an IDE, no, that’s not how it works. If you use simple vim (not much more than knowing how to get in and out of edit/visual mode, and use hjkl for navigation), then it’s fine. Once you get into more advanced vim features, though, the key presses in vim get picked up by the IDE first, so IDE shortcuts take precedence.
If someone were to learn vim inside an IDE and develops it organically as part of their flow, it’d be fine. If you already have a lot of standalone vim flow setup in your mind, it’s a problem.
This looks like a C macro. Basically what it does is replaces the word “true” in the code with (rand() > 10). The rand() function will return a random number from 0 to 32767. So (rand() > 10) will very likely return “true” but not always.
So say you have some code like this: if (someVar == true) { // Do stuff } It would replace “true” with code that usually evaluates to “true” but not always. So every so often your code would just do the wrong thing but it would be hard to debug because it would be rare.
Granted, in that example you probably would just write “if (someVar)” making this moot, but there are more realistic cases where you’d use the constant “true”
rand() generates a number from 0 to a constant defined in stdlib, which usually corresponds to the architechture of your compiler. So, for 32 bit systems (assuming all the software in the line is 32 bit, too) it will be 2^31-1 = 2 147 483 647, as 1 bit in integers is reserved for negative numbers and 1 number is 0.
Though, by design it is guaranteed to be at least 32767, which is a value for 16 bit integers.
programmer_humor
Top
This magazine is from a federated server and may be incomplete. Browse more on the original instance.