10% creating bugs, 90% fixing bugs.
Ask Lemmy
A Fediverse community for open-ended, thought provoking questions
Rules: (interactive)
1) Be nice and; have fun
Doxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can't say something nice, don't say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. Please familiarize yourself with them
2) All posts must end with a '?'
This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?
3) No spam
Please do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.
4) NSFW is okay, within reason
Just remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either !asklemmyafterdark@lemmy.world or !asklemmynsfw@lemmynsfw.com.
NSFW comments should be restricted to posts tagged [NSFW].
5) This is not a support community.
It is not a place for 'how do I?', type questions.
If you have any questions regarding the site itself or would like to report a community, please direct them to Lemmy.world Support or email info@lemmy.world. For other questions check our partnered communities list, or use the search function.
6) No US Politics.
Please don't post about current US Politics. If you need to do this, try !politicaldiscussion@lemmy.world or !askusa@discuss.online
Reminder: The terms of service apply here too.
Partnered Communities:
Logo design credit goes to: tubbadu

This should work... it doesn't. What? Why the hell not... omfg.
This should work... it doesn't. What? Why the hell not... omfg.
This should work... it doesn't. What? Why the hell not... omfg.
This should work... it doesn't. What? Why the hell not... omfg.
This should work... it doesn't. What? Why the hell not... omfg.
This shouldn't work... Why the hell does it work, don't touch it!!
I'm more scared of this one, "it should work but doesn't" means there's something I'm missing, usually small, maybe I forgot to change one function call or an import. "it shouldn't work but does" means there's a huge misconception in how the thing actually works.
They pay developers to put bugs in and then they pay them to take bugs out.
0% figuring out what the customer wants? I envy you.
There's a zen peace that comes after realizing the customer is out of their mind and will change their mind tomorrow, anyway.
A "full-stack developer" is someone who can do front-end / UI work (HTML, CSS and Javascript or whatever the frameworks and tools de jour are nowadays if we're talking webdev), back-end work (APIs and "business logic" and all the stuff users don't see), and often storage and infrastructure work (manage databases, write and optimize SQL queries, put things in buckets, get your code running on AWS / k8s / a pack of gophers / whatever)
that is
someone who wears too many hats and isn't paid nearly enough by a company that doesn't want to hire 4 engineers
I've been a full stack developer for nearly thirty years. They keep adding so much to the stack that these days I will only claim to be a Java developer. I know way more, but there's no point in laying claim to it. I can do JavaScript, css, and typescript, but I don't really know react and I don't want to because it'll be replaced in another five years anyway.
I have worked with so many CI/CD systems and there's a new one around every corner and what you know for one doesn't apply to others.
Like, whoever you hire is going to take months before they are able to do significant stuff independently and 2 years before they can do the full scope of the job you hired them to do, and most folks are looking to move on after 2 years. About the time they've been around for a full Java/spring upgrade, build system change, and you've moved cloud providers, they will have encountered every problem often enough to know everything they need.
CI/CD! How did I forget CI/CD?
oh right I'm an SRE with Jenkins trauma
fuck groovy
I write code in a niche industry, in an even more niche language.
With 20 years experience I am finally at the point that much of my stuff works without too much headache.
Unfortunately, now that I'm finally good at it, it's become a much smaller part of my overall job.
Nothing I look forward to more than being left alone for a few hours with my headphones on banging out a project.
That's the most hilarious thing about being good at being an engineer it seems. I'm more than 10 years into my career at this point and I spend more time correcting other people's work and outlining the technical work that needs to be done than writing things myself these days.
"hey instead of working on the projects that you are responsible for, can you spend your whole week answering 10 peoples complex questions since you're the only one that can answer them"
I'm curious what this niche language is if you don't mind sharing. I love niche languages and always enjoy hearing about them being used in industry.
I work in corporate Audio Video, and program in all the main AV languages. I specialize in AMX / Netlinx, but do Crestron, Extron, and various DSP programming as well.
Tie it all back to web applications where I primarily use PHP.
Been learning Python as that looks to be where things are going in the next 5 years.
- Identify a problem. (User wants do something and can't, something that is supposed to work doesn't, someone wrote shit code that works and we want to fix it)
- Get more info about it: ask users for more context, find out about their workarounds, assess the impact of the bug, find solutions to similar problems. Get together with others and hash out some design.
- Do the coding. Often involves a bunch of reading documentation and trial running code to see if it works
- Come up with a way to confirm the change does what it's supposed to: write a new automatic test, or a procedure a person can follow to verify it works
- Write a description of the change and test plan
- Get someone else to check what I've done and make any changes they ask for (as long as I agree)
10 Get told to stop working on whatever I'm working on, some tech debt just became tech foreclosure.
20 Some new problem is now problem number 1
30 Get about 70% done fixing the problem (it's functional but ugly, just need to wrap up this mess so it doesn't become tech debt...)
40 GOTO 10
Wait till they find out that your are capable of GOSUB - RETURN too.
I’m a DevOps guy and seem to spend most of my time fixing AI slop. It’s supposed to mean automating builds, tests, scans, deploys, compliance, etc, so the other developers can focus on product code and all the process just works
First of all, there is no graphical stuff. That’s just for simple learning sandboxes.
We have an IDE - Integrated Development Environment. You can think of it as a glorified text editor. We type code in text and it gives us the equivalent of spellcheck, grammar check, autocomplete. They usually colorize the code so you can see structure, match parens and quotes, and other low level assistance. But it gets much more useful with integrations to version control, scanners, build tools, download dependencies . You can click to build, test, scan, commit. They’re usually tons of other tools to make life easier.
But code is cheap and easy to write the first time: much more expensive to fix. Maintenance over time is far more expensive than writing it.
So now we have AI as another tool integrated into IDEs, and it is somewhat useful for generating new code based on patterns from previous code. But it’s never good enough to be an end result. A good developer can use the ai to get a jumpstart on new code, iterate it to get better, and almost always have to use their own knowledge to finish it to a working, maintainable result.
So I have a bunch of junior developers in another country, just directly checking in ai slop. They don’t seem to be experienced enough or diligent enough to recognize when it needs more work. Which means I need to spend a lot more time on code reviews trying to figure out the unorganized mess, give the same feedback over and over, review the same code many times, and inevitably spend much more time on bug fixes for their mess than I would have taken implementing it myself.
The thing is ai is not good at bug fixing. You can try to have it summarize the code, or compare it to best practices but it can’t really help figure out what’s going wrong and how to best fix it. Especially if the original code is ai slop to begin with. So I don’t even get any advantage from it
jr devs ... AI slop... same code review over and over...time...slipping

since everyone on lemmy is a programmer
Just because I'm on Lemmy, does not make me a programmer.
I mean, I am a programmer.
But not because I'm on Lemmy. (I think.)
what do you guys actually do?
I say "please" in various ways that computers understand.
Is it copying and pasting tons of code?
Well... Yes, but with a lot more swearing at the computer.
But I'm very good at it, so I copy and paste very small amounts of code very cleverly.
Is it fixing small bugs
I fix small bugs, huge bugs, critical bugs, and intermittent sneaky bugs. I get paid either way.
I'm a data analyst, not so much a developer, but in my work I write SQL, DAX, and M code. My job involves sales people telling me what metrics they think they want, delivering those metrics, then being told to make different metrics because the ones I delivered didn't play into their narrative 🙃
I... write code. It does stuff. Usually the wrong stuff, until I've iterated over it a few times and gotten it to do the right stuff. I don't "click around in a GUI." If a tutorial is making you do that, it's a bad tutorial.
Pointless meetings.
Pointless and harmful forced commuting to and from office.
Pointless agile ways of working.
Pointless managers.
Pointless eating expensive lunch.
Pointless learning of frameworks that gets replaced in a year.
Pointless forced team events.
Something something Jira something scrum agile Confluence something another meeting something hit tab and let copilot do it and repeat.
I‘m working as a freelance web developer with creative agencies to create websites or applications and maintain existing projects. Mostly in PHP with a frontend written in HTML / CSS and some JS.
I also had trouble getting into coding initially since I’m a pretty visual thinker but a university course called „coding for designers“ that taught programming in Processing finally got me into it. In it you didn’t start with a boring ass calculator but make pictures and later games with a simple IDE.
a full stack developer sufficient in sql and python
Ok, let me first try to explain what happens on a good day, before going cynical.
Let's assume we have an existing system. You go to what for you appears to be a website, fill some text fields, click on a button, etc. In the background a lot of shit happens. Typically the backend part of the system consists of tens of services each doing it's own thing. Some participate in returning a response to you, the user. Others just process data further for analytics, security, etc.
One day someone (in most companies a product manager, or a UX researcher) comes up with an idea for a new feature. A user should be able to do XY. And of course pay for it.
That's where you step in. Since you mentioned full stack, you will need to do everything.
- Create a new page with forms, buttons, nice colors and pictures on the frontend
- Accept the result of user actions of the above to an API in one of the services mentioned
- Save the data into a database (this is where SQL comes into play)
- Retrieve data from a database (SQL again)
- Emit various events or API calls to other services, informing about what just happened
This is all done with code. You can copy/paste, vibe code, just type it yourself. Code is the least of your concern. Making sure it all works together is what's tricky. You will go through several iterations until you get it right. Then you write automated tests for it (TDD people don't come at me).
Also you communicate to other people in the company about any dependencies and overlaps with what others are doing. Finally, you can deploy the code to production which will make it available globally to users.
I just described about 50% of the programmer job. I didn't mention code reviews, architecture discussions, plannings, retros, communities of practice, incident handling, herding cats...
This is all valid in a good case scenario. good company and a good organization in it.
In reality it's mostly waiting. A lot of waiting. Despair if you can't make it work. Happiness if you can. Then despair again because all you do is pointless. A lot of fighting against the system designed to make you as unproductive as possible. Or just giving up and faking it for a paycheck.
There is this channel that live-streams themselves if you wanna watch like 5-20 minutes and get an overall idea.
Programmer here.
Clicking things in elaborate IDE GUIs and copying stuff they don't understand appears widespread because it's easy to teach and make a video about, but it's not it.
My days are spent in Emacs, (used to be Vim), and a Bash terminal. I sometimes use an more "fancy" IDE for a year or two but I always realize they slow me down and make me stupid.
I write code I understand based on system models I discuss with the team. My time is spent thinking about the models, learning the components I work with, debugging, etc. While all of these involve typing up some code, only 5% or so is writing actually "finished" code.
Mostly I make JIRA tickets.
Now it seems every tutorial I see is really just clicking around in a gui. Very little actual typing of code, which is the part I actually find cool and interesting.
Not sure where you're seeing "just clicking around in a gui", but if you like computer games, there's some fun gameplay you can have while coding. Some of those very much contributed to my experience.
BitBurner is a free idle incremental programming game, where you write scripts to hack things to make money to begin with, progressing onto both progressively more complex mechanics (how about automating a manufacturing corporation with a script?) and utility scripts to automate things you've been doing manually.
If you like Minecraft, there's fun to be had with ComputerCraft, scripting things in Lua. With some add-ons (Plethora IIRC) you can access chest inventories via cable and transfer items between them, and set up your own fully automated storage system with recursive autocrafting, as just one example.
Or how about modding games - if there's a Unity game you enjoy that doesn't use IL2CPP, like Risk of Rain 2, it's very moddable using C# and interacting with Unity APIs, and for advanced stuff modifying the underlying IL that C# compiles to. Quite a lot you can learn, and if you stick to pure code mods to begin with, not that hard to get started - though code mod means nothing like new items, new enemies, new characters, buildings etc. since adding models/textures/sounds tends to be more involved.
I think you need to start a project, accept it will be slow and painful, and don't become an expert before you start, just use the skills you have and see where they take you. The only thing that matters in software is that it works. The definition of working changes over time, but get that first working version and you will keep going.
Disclaimer: I have a dream job for me and my experience is probably not representative.
Go on open.kattis.com, pick a problem, solve it. That's what 40% of my job is like. 20% more is reading through and understanding where the right place for this bit of code to live or what bits of code I should be reusing to make it. Another 20% is discussing with other engineers the tradeoffs of solving a problem with x vs y and picking what to do, and the last 20% is reviewing code, i.e. making sure other people solve their problems correctly and don't drop a bunch of hack in our tree.
Product owners say, "We want to change the site so users see a list of all the other users on their team with access to this project "
Okay. Do some thinking. Going to need the backend to return that information to the front end. Decide what URL that should be under (api/v1/projects/users, maybe?).
Now we make the backend actually do that. Create a new file for this endpoint. Update the routes file so that url points to this file. Write the handler class.
Does this endpoint take any particular input? We know who the caller is for free from the framework. We only want to return info about one project or all projects? Make that decision. Update URL if needed.
Write the code to get the other users on the projects in question. Maybe that's SQL, but might also be ORM (code from a framework that generates SQL based on objects). Decide what information we actually need. Package that up and send it back. The specifics depend on language and framework.
Write automated tests for this. Make sure it works for
- 401 not logged in
- 403 asking about a project I don't have permission for
- 404 asking about a user with no projects, or a project that doesn't exist
- someone with 1 project
- someone with 2 projects
- someone with 10000 projects
- also consider what happens for 0, 1, 2, 10000 users on the project.
Realize this needs to paginate. Go back and change the handler code to do that.
Realize due to some quirk of how permissions work, someone can be on the project twice. Talk with the team about if we should just decide that here, or try to fix the root problem. Probably the former.
Add deduplication code, then, and test cases.
Open this up for code review.
Start the front end work.
Make a dummy page first and update your API calling code to know about this new route, assuming you don't have that auto magically set up somehow. Make sure it calls it and gets a response.
Realize that staff users technically have access to every project in the system. Ask product if that's how they want that to behave. If no, figure out what you all want that to do instead.
Do a bunch of react work to make the page pretty, put the response in the right UI elements with links to the right place. Realize the response you're sending back makes building the links annoying because you didn't send some part of it, so you'd need to make another request to the backend for every link. That sucks. Update the backend to include the user's team-id that is for some stupid reason still in the URL. Comment on code review.
And now I'm tired of writing.
Edit: I hit submit before I was done. Finished now. Edit: fix typo
Have business requirements change by the hour
I have never just clicked around in a gui unless its me testing something I'm building. I would suggest finding some better tutorials.
Today I added a few features and fixed a couple bugs.
We have a screen where users can basically click through a list of contacts to send out emails. The list is system generated, and sometimes users want the email to go out to other contacts not on the list. So I added a section to the screen with a typeahead input box to search through all the companies in our system. Once the user selects the company it has to be broken down by branch (region) so I had to build out a small api for getting the company branches and filtering by some criteria to see if they're even eligible to receive these types of email, so with that data returned I generated a drop down to select the branch, from there another api call to generate a list of checkboxes for each contact at the selected branch. Then I had to build out a mysql table to store the additional contacts to email and work that logic into the code that sends out those types of emails.
Right there you have perl, mysql, html, CSS and JS.
Another thing that everyone's gonna lose it for when it goes live but took me no more than an hour. A lot of our accounting pages are historical reports, there's only a few that are updated in realtime, and almost all of them were super slow to load because of all the heavy calculations. I added a couple tables and a cron job to run daily and populate them. So now instead of doing calculations on the fly those pages just pull the data from the db and load instantly.
I have adhd and I’m a software developer. We make enterprise software for various clients.
We don’t copy and paste, per se, but we do have common practices and many let’s say functions for simplicity that we will reuse over and over as a lot of enterprise looks similar and just the customer screens change. So we still do a lot of problem solving but if we have already solved that problem before we can use it again.
Currently working with a large transport authority to build a claims tracking system and create a bespoke Sage integration to track payments and receipts. And I’m not that smart dude and I don’t even feel like an adult in my forties.
We offer ongoing support to all our clients and genuinely do what’s right and fair all the time as my boss and the own is an incredible dude and just nice and fair and open.
I code around 10% of my day. The rest is just meetings about things people want, emails about bugs that occur and small fixes, finding out what network did again and re-doing the automatic syncs again.
Ironically in all my jobs coding is actually one of the smallest/least time consuming things I do. I do much more coding on my own time than at work. And all without AI. Cause AI is silly (and if you dont self host, your coding for Microsoft/OpenAI/Github/etc...etc..).
My suggestion, try to make the smallest MVP possible and just iterate on it. Find a cool game engine? Great! Try to make the character appear on the screen, then do other things. Find a cool library, great! Try to use the library in a small project. It doesn't work for everyone, but it has helped quite a few people. Do what gives you motivation. Or fix something you hate. Hate is an excellent motivation.
solving business problems by adding more buttons and input fields that go trough various processing pipes and spawn more infrastructure to compute results nobody needs
Tutorials only explain the concepts, maybe takes you 10% there. The rest is is practical application and applying the methods. You might be able to copy and paste some code but I will bet my bottom dollar that there will be some nuances for your use case that you have to amend manually. Thinking about the logic and how everything connects to each other is often the part that takes the longest and the most challenging.
What I can say is that if you like problem solving, technology is a great drug to get your fix, it is endless.
Here's the point in which I realized I didn't understand coding at all.
There as a mod for a game, that was like 95% of what I wanted. It just needed a few values changed, and it would have been perfect for me.
Fortunately, the entire mod was hosted on github, and it was just 3 '.js' files. I figured, hey, how bad could it be? I'll have a look around, find the values I'm looking for, make a couple tweaks...
All three files were entirely, top to bottom, just INCLUDE statements. Not a single line of 'code'. And somehow that's supposed to do something? That's when I realized I was cooked.
Mind i ask what are you trying to archive? At what point would you see yourself as a programmer? When its in your job description? X amount of projects worked on on GitHub?
As an auti-dd I really really like coding and i had a developer job once to discover i absolutely loathed it. I hated having rules and infrastructure that directed me how to code, i hated being told what i could work on. I could not stand having a schedule telling me when to code and from what desk to do it.
The only thing that makes me want to code is to creatively express myself. I no longer accept compromise beyond creative limitations i myself put in place. (Really autistic-pedantic shit sometimes)
My current job description is an IT position that could not be further removed from coding in its description. It also doesn’t challenge me. I don't want it too because now i often have spare free to “improve the functioning of the workplace” which i do by writing scripts and tools that fix common annoyances in our legacy software and save my coworkers plenty of time.
Or in house developer team (who have no time and are to distant from other day-to-day work have expressed confusion why someone like me wants to stay in my role rather then join them but i know i wont be able to continue my side projects and am just going to get assigned to expensive-big-ego-pet-project instead.
I also have plenty of code related projects at home, i lost motivation for those when i was a “real programmer”
There's a big difference between hobby coding and corporate coding. I do the latter and work on large applications as part of a team. I spend a lot of my time
- Using debugging tools and probing at code to investigate and fix bugs
- Coming up with system architectures to achieve whatever feature we want to add
- Cleaning up my other teammates' AI generated slop 😑 (fuck AI)
- Writing test suites for our code that guarantee everything works as expected
- Occasionally I write new features
- Juggling this with pointless meetings and a long ass commute that take up 60%+ of my work day
I send out resumes to job openings that claim to be entry level, only to be shot down because they want five years of experience in a technology that came out two years ago.
I'm a glorified data analyst. Almost all my work is done with a single database using a narrow range of commands and SQL queries. I memorized the syntax for stuff I use regularly and just type it out every time.
No I do not want to write a bunch of macros. No I do not need an AI assistant. What I need is for all these "helpful" tools and popups to get the fuck out of my way. I've been typing typing typing since AOL Instant Messenger.