What do all you coders actually do?
I have tried for 20 years to get into coding, and among adhd and having 10 million other projects going on, just could never get it beyond absolute basics and knowing some differences between languages.
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.
So my question is, since everyone on lemmy is a programmer, what do you guys actually do? Is it copying and pasting tons of code? Is it fixing small bugs in Java for a website like "the drop down field isn't loading properly on this form"?
I just dont get what "a full stack developer sufficient in sql and python" actually does. Also i dont know if that sentence even made sense!
189
Comments135
10% creating bugs, 90% fixing bugs.
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.
They pay people to find the bugs and then ignore them!!
You must be QA.
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"
But from the companies perspective this is a net-gain.
You've just unblocked 10 people so they can continue to work... and even if their weekly individual productivity is 25% of yours, combined they're doing more than twice the amount of work you're doing and it only cost the company a week of your time.
Yeah, at times it's frustrating and distracting, but hopefully you're getting compensated for the knowledge you bring inaddition to the work you deliver.
...and then you get reprimanded for lackluster productivity (judging by progress on the projects on your own plate). 😑
You lifting up others doesn't translate to losing yourself up, unless there is (unusually) healthy culture about that in your company.
You have a good point... and I've worked on both sides of the fence. Currently, I'm at the "healthy culture" camp, but it wasn't always that way.
While I was working at companies that had a not-so healthy culture, there were things I did to "bring visibility" to these non-work tasks. However, I should add that at these types of companies didn't really offer a lot of financial compensation for this non-work, but at no-time did anyone challenge my productivity.
Basically, I'd suggest:
Yeah, answering questions and debugging issues sounds great to me... As long as the employer acknowledges that takes time and work, and brings value. And also somewhat acknowledges it as a proper role, and not something being done "in the meanwhile"/"on the side", since just interrupting work to answer questions knocks you out of the flow, so to speak.
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.
See you at Masters!
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.
There it is
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
So true!
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.)
I say "please" in various ways that computers understand.
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.
I fix small bugs, huge bugs, critical bugs, and intermittent sneaky bugs. I get paid either way.
You have a wonderful way with words. 😊
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 🙃
Are you looking for a job? We’re hiring a data analyst and an architect I think. And sales can get fucked, we have an Analytics department supporting client success, with teams presenting ROI reports to clients and/or analyzing incoming data for variance etc. We need solid people, with real experience.
For sure! I'll DM you
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.
true words. Unionize thought
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.
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.
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.
This was a good insight. Also good notes on how it works in the real world, ha!
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.
Neovim user here. Why the switch. (I’ve never tried emacs)
Probably enlightenment.
ducks
I like NeoVIM, but in the end it got a bit frustrating to get the tooling to behave, like language server for Guile, especially when the configuration was half config format, half Lua code, third half referencing those from Vim.
In Emacs everything - code, config, invocations - are jus lisp. And the ecosystem is a bit more mature for the tools I use in our current codebase.
I switched to Helix and I’m so far liking it more than nvim
What do you write in it? Languages, tech stack etc
I’m mostly a Visual Studio Code user, but Helix is for when I need to quickly edit something in the terminal or over ssh.
I set up LSPs for go, shell scripts and a few others, it was mostly just installing packages locally and helix just picks them up. And more importantly doesn’t shove 500 error messages in my face if something isn’t there, like nvim
Mostly I make JIRA tickets.
There is this channel that live-streams themselves if you wanna watch like 5-20 minutes and get an overall idea.
https://youtu.be/vc5UPu76XOw
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.
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.
This is it. I've never been able to learn a new programming language looking at tutorials. I always start with a problem (use case) and build from there. A basic knowledge of concepts like loops, conditionals, and passing/returning values in a function are the building blocks. Eventually you start to get tired of copy/pasting code so you find things like abstraction and inheritance. Then you'll find ways to optimize or use someone's library of premade functionality instead of starting from scratch.
And if you get really, really good you start writing things from scratch again in unique and highly optimized ways. Those are the really fun projects, imo, but not the ones that pay.
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
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
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.
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
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.
What do you need to qualify as a software developer job like the one you mention?
Usually (but not always) a software related college degree and industry experience. If you don't have the latter, hobby projects and open source contributions help, as long as you can demonstrate it (ie: a repo)
Ymmv, the requirements depend on the company
No formal qualifications for myself. I was always interested in tinkering and stuff so just gravitated towards that.
To be honest though with undiagnosed adhd (at the time) I bounced around a lot of dead end jobs and got lucky landing a job at Apple where they kinda inspire you to reach your potential. They let me reduce hours to do a couple of bootcamps, more for the networking than the coding as I knew more than a lot of the tutors.
The industry is saturated right now though so it’s hard.
I qualified for my first dev job by being interested in programming, and knowing my way around the command line (Linux is best), git, vim, and Python. practicing with things like leetcode, advent of code, and making things with apps like pelican and pyxel is a great way to ease into it and tread water until you can get that first role.
just don't let it make you feel helpless. there's always going to be a lot that you don't know. taking a deep breath and accepting that is the way towards thriving.
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.
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.
Maybe that was some mod that was only pulling other mods and nothing new of itself?
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”
Sorry but what's an auti-dd? I guess you mean autistic but what's dd?
Autism+Add which is adhd minus the external hyperactivity.
There is alot of overlap between these and others also so i usually prefer the term neurodivergent.
I am a machine that turns nonsense requirements into nonsense code.
Hello, GPT.
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.
You sound like I would be if I had been able to go that route ha. Aren't most of those data jobs going to be replaced soon though? Seems like low hanging fruit for management to throw some crappy ai at it.
I feel like I have enough experience and institutional knowledge that I won't be replaced in the near future. But we're not hiring, and the higher-ups are trying to shoehorn AI into everything to compensate.
This AI trend trying to replace coders with LLMS is very stupid. A coder is already writing in human friendly terms what they want from the machine, if you communicate it with less clarity there are edge cases you're not covering, so either the LLM is allowed to add edge cases scenarios on its own (so it can decide to filter all entries that contain the letter A just because) or it isn't and won't cover any of them (so it can for example crash and burn when retrieving something empty from the db and happily allow it to be put there). What I think most AI pushers don't understand is that we're already writing as close to English as possible while still being very structured about what we're saying.
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.
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
I got laid off before the AI got really and truly going at the company I was at. We had a mandate to have 90% of the code submitted to be covered by unit tests. How does the whole "vibe coding" crowd handle that aspect? Do they just ask the AI to create unit tests for the code it generates as well? I always heard a lot of complaints about unit testing but I quite enjoyed that part at times.
Yep
Sit in meetings
Slowly dismembering Azure Devops with my teeth
I work with a 7-person (6 devs and a lead) on a 20-year-old financial reporting application. We either pull or receive data from about 7 different systems where folks record contracts, funding documents, purchase requests, purchase orders, invoices, bills, etc. and pull them all together to build reports and UIs where users can search across all the data, and have it unified in one place. That's about 90% of our workload, anyway. More recently, we've adopted workload from a couple big legacy systems that got sunsetted, where we're actually the data-entry point, feeding data out to the main billing system.
Day to day, I work on everything from PL/SQL (Oracle's SQL variant for compiled stored procedures) where the majority of our business logic lives, to VB.NET where two different HTTP Web servers live, as well as a large automated testing suite for that database business layer, to TypeScript where most of our UI logic lives. Occasionally, I might dip into plain JavaScript/jQuery or ASPX to work on older features.
There's plenty of time spent writing code, but there's also a LOT of time spent just discussing things among team. Probably about half of the time, overall. Part of why the project has lasted 20 years is that we've gotten very good at being able to interpret what non-technical finance and acquisitions folks want. Like, they might come to us and say "hey, can you add inter-departmental purchase requests to report X", but they can't always tell us what an "inter-departmental purchase request" is, or where that data lives in the external systems (and that's not like a criticism, that's just the reality of the fact that these people are accountants, not engineers). So, we'll have to probe for specific requirements and/or reverse-engineer it out of an external database.
I also do open-source work in some of my hobby time, which is pretty much all C#.
I make game mods as a hobby. 90% of the time is taken with deciding what to write, 5% is actually typing, and the other 2500% just seems to vanish without a trace.
Knowing what to type always takes much more time and effort than actually typing. IDE autocomplete has increased this difference further, and AI promises to do this even more (although it seems to increase typing time at the moment).
That sounds very interesting. Would you mind if I hijacked this thread to ask you about what kind of mods do you make and for what games ?
I've tried to choose my favourite mod for each game. My other mods should be searchable from these links.
FlexFOV - Minecraft. Increases the FOV up to 360 degrees.
It took 3 years to get a basic version working, then several more to make it properly usable (not just a cubemap). YouTube demo
Stormtrooper - PULSAR: Lost Colony. Significantly reduces the player's accuracy.
All the mods are hosted on the community Discord rather than a mod hosting site.
I originally made
Item Swapfor Void Crew. The developers thought it was a good idea and decided to add it to the game (with permission).I decided that I could do even better and made Faster Swap — modding the devs implementation of my own mod.
I have another improvement idea just in case they implement this mod too.
Full Auto Multitool - Jump Space. Hopefully prevents RSI from rapidly clicking.
Jump Space uses IL2CPP, so modding is significantly harder until the devs choose to release mono files.
Honk - Derail Valley. YouTube demo
I did not make all of the mods registered to NihilityShift. You should be able to check the author(s) on GitHub for each mod. All of my mods are open source, though the source may not always be up to date.
Thanks ! Learned about some cool looking games too
Oh, these days?
Nothing.
I tinker around with making a video game, lots of code in that, but no one will pay me even half of what I'm worth, as either a software engineer or db admin or data analyst (or all 3 of those at the same time), and the tech industry's idea of a hiring process is an actual sadistic joke, invented by morons, run by idiots.
The tech industry is largely imploding because most of the competent people have been gaslit and forced out by abusive idiots with MBAs who do not know how to code and have now convinced themselves that if they convert the entire economy into destroying the world with AI datacenters, in an effort to make code that can code itself, well then they win, somehow.
My last project is using machine learning to sort data for a company and the flow kinda goes like this:
Idk it's not a super sophisticated problem but it has a lot of moving parts and you have to kind of tackle them in order. Mostly it's "hey here's an obstacle to the end goal, how do I fix it on my own in a smart way?"
Then do it.
I'm retired now but I used to copy and amend shit from Stack Overflow.
The best way to get into coding is to surround yourself in it by switching to linux and starting to program your own desktop interfaces (can be through browser too). Once you live in your own software the surface area for motivation is significantly higher so you actually learn stuff. Come up with ways to automate what you do and don't be afraid to fail.
You need an actual problem to solve that your hyper focus likes, then you'll go hard I bet. ~ professional developer with ADHD of 17 years.
I program out of my own need, and if something/a project catches me, it really catches me (ADD). So for a large part, it's customizing software and scripting for my server (selfhosting and hosting others).
As for larger projects, rn I'm managing a middle-sized but fucked up old django webapp, and rewriting it.
Mostly, it's actually writing code (primarily python), including reading docs/tutorials and adapting that to how I actually need it, in my head, and integrating that into the codebase.
At work, it's the fixing of small stuff in Java Spring. And that certainly does not catch me at all.
There's coding and there's coding. Just as you can use English to write fiction, you can use it to write a manual. Programming languages are the same. Well, maybe a bit more concise and confined, but the point is, you can flick around bytes on a bus or thousands at a time in CUDA. You can draw a triangle for a game or create a template UI with the click of a button and fill in the blanks. It's all 'coding', but wildly different.
You might have heard about the meme that coders are wizards comanding magical stones, aka processors. Sometimes, we might as well be. Computer scientists come up with stuff so briliant that even the best of their own can hardly understand it. They write stuff that does stuff for stuff that does stuff for the stuff you wrote, and all of a sudden you did something without even really knowing what happened or how it works.
With that in mind, I can explain what I do in one sentence or countless hours. I write stuff to test stuff that absolutely has to work. The devil is in the detail.
I write software in many languages that does the things i want it to do. i understand how to write code that works. most of the time i write software it works on the first few tries. i don't do a lot of copy pasting. i write functions and use libraries to create things. it's strange to me, but from what i hear, it's becoming rare for people to really understand how to make software.
I always like to learn everything from the ground up, so many of these modern ideas just seem like cheating and not helping me learn anything about how it actually works.
if you really want to learn from the ground up you could try playing the game Turing Complete! i recommend.
Not much.
Crazy to me that GUI seems to be a major focus in those situations. My IDE is most often pretty minimal, whatever it takes for me to get code on the screen, and unless I'm using the debugger, compiling and running has always been easier using a CLI. It's good practice anyway, familiarizing yourself with the shell, code for your code lol.
I've been developing professionally for almost 10 years now, and started learning very young. The circumstances were different, but I think the principles are the same. Some folks here already mentioned taking on projects that interest you, and I'd definitely agree, provided you keep them small. Something that you'll want to make can keep you motivated, and small wins keep you going. For something full stack, I'd recommend coming up with a CRUD web app (create, read, update, delete) that does something that's fun. Maybe it's a recordkeeper for a sports team, or maybe it's a rudimentary forum. That sentence makes sense, no worries. You can use python to write your backend, see if you can make an API that just handles CRUD requests and builds and runs SQL statements for your database. Then just use whatever you'd like for the front end and call that API. It's still a pretty big project depending on how new you are to this, but it's hard not to be when full stack touches everything. If you're completely new, I'd lay off and pick the front or back end to start with.
Look into “recreational programming.” Make shit for the joy of making shit. Creation in it of itself is something to be sought after imho. Did’t finish that website? Who cares?! Don’t have any useful ideas? Make something useless!! Don’t worry about “users” or making the next big thing in tech. If you’re having fun click-clacking on your keyboard and solving problems, that’s all that matters
So to answer your question, I’ve dabbled in a little bit of everything: web, db, graphics, interpreters, osdev, the works. The very few projects I’ve ever “finished,” however, are my lower-level ones; I just love getting right up close to the metal. Find a niche that interests you, start a million projects in it, and be proud of the one you finish years after you probably should’ve
Right now, I’m working on a custom programming language/game engine built with Vulkan and LLVM. It’s got first-class support for a bunch of cool game and graphics stuff, and I’m super passionate about it right now. I’ll probably lose steam and only come back to it months after, but I don’t mind
Edit: Also, don’t be afraid to use libraries to focus on what you want to focus on. I used to have an obsession with writing absolutely everything myself from the ground up, but I’ve since come to the realization that other people are MUCH smarter and more talented than I am, and I should trust them to write software for me. A great example of this is LLVM and my graphics language — depending on someone else to do the super complex compiler design lets me focus on what I wanna make: a language front-end and graphics library. It’s important to limit your scope to only what you care about
Junior - code Mid - code and meetings Senior - meetings
I'm a data engineer, which means I write code that manages data aka databases. RN I'm mostly working with python, pyspark, managing data transformations from different providers. I'm also managing the deployment and execution of such pipelines via terraform.
I don't copy much code, if at all. I do search plenty examples online but then I write my own. I'm at the point where I could adapt myself into almost any language in a week though, they are very similar.
If you want to go into coding focus on understanding the functionality of the code, what it is actually doing and why is it done like it is, that should give you a lot of flexibility when changing frameworks or languages. A lot of stuff is super similar across the board.
About your question, "a full stack Dev with sufficient sql and python" is probably a front-end Dev that does JavaScript and CSS, with some front framework like react or Vue, which will have to create the code of the webpages, build components... They also mention sufficient SQL and python, which implies that the backend is done in python and that they have some database. Probably Django or flask. In the backend you create business logic, stuff like "get me the list of users", things the front-end asks the backend. For some queries the backend will also ask info to a database, and it will have a SQL client where it will have sql code to query stuff.
Hope this helps.
I only program for fun, usually in video games. A lot of games let you code in LUA (shout outs to computercraft)
Its fun for me to write it out, and i dont really understand how to use git, so I write it all out.
Right now, I'm upgrading my Nushell plugin in Rust code while not being very familiar with Rust and its mechanisms. I'm using the build errors, cargo crate (libraries) documentation, auto completions/suggestions, existing own and cate/lib source code to find the correct methods and way to do data format transformations. I managed to make it compile again, so now I'll test-run it. I "accidentally" extended what it can map as well, which is a positive side-effect.
It depends very much on the role I'm in, and what you're asking in particular. As far as hands-on development work,
Professional development in general entails much more. I work with my customer and consider their workflows, needs, I discuss and question their requirements, I design solutions both in user workflow, UI, UX as well as in code architecture and implementation. For a long-running project, improving existing code is a large part of what I do when implementing new changes. Documenting what I find out or see and is not documented yet is another big part.
If you feel you never get it beyond absolute basics I encourage you to work on tools, utils, or projects that you use or care about. I wrote various utils for my own benefit and use, and do regular drive-by contributions to projects I find useful or interesting (mostly related to documentation or tech approachable to me).
Don't just follow tutorials. Set a goal of something that works. Be it a clock, a calculator, a command line tool that let's you read music file metadata, or starts or stops programs for you. Or whatever you feel might be reasonable to explore and achieve, whether with or without practical use.
I make mods for games. I actually type code. Most of the time... Sometimes I just copy and paste because, I mean... There is not an infinite number of ways certain things you wanna do can be done and why reinvent the wheel.
I taught myself starting in high school, from actual books! Dry, boring, heavy, books.... And they sucked!
I don't know enough to make it a job tho. I certainly have no idea how even working with multiple people on a single thing works.
I'm by no means a veteran programmer, but I do study computer science and write automation scripts at work.
We get questions like this one every now and then, and usually the answers coming from experienced developers are: "You're looking for an engaging project idea." Not sure if this fits your case, but it seems like it to me.
Basically, pick your interest and then look for something related to it that you could write code for. You like video games? Try making games, cheats for games, mods or some other companion apps. If you're struggling to find a suitable interest, you can always try writing scripts to automate your everyday computer tasks.
The answer to this question will vary a lot, depending on the specifics of the person's job or interests. Though there is often a lot of copying and pasting involved.
I am a veteran programmer of >40 years and this is the right answer. Find a project that interests you, probably one tied to another of your hobbies, and just go at it. Don't look to find if someone else has already done this project - they probably have and you'll be discouraged from trying. Learn what you need as you need it; don't try to "learn enough" to get started. It's programming, you'll never know enough. The best way to learn to program is to program.
Some personal examples: I write random generators for TTRPGs, I'm making a better UI for a cheap digital oscilloscope I bought for measuring audio equipment, I have a couple little wheeled robots I tinker on, I like to write MCP servers for LLM assistants, and I've got dozens of little projects or custom tools.
Go for it.
I'm in the same boat as you. The GUI thing doesn't interest me. And I end up knowing "basic to intermediate" knowledge of a few different languages because, when you get right down to it, once your somewhat familiar with one object oriented language, the others fall in line pretty quickly.
I find that for learning, I have to have a project to be working on. I can't just sit and do exercises about classes, tuplets, and all that crap. I need to be able to say "okay...I want to make x do x on this project I'm working on...and then troll around the internet to figure out how to do it.
Just to add to the answers that the sort of thing you are talking about exists. It’s called low code, with companies like Outsystems and Mendix.
I'm not working as a developer right now, so most of the stuff I write are supplementary for my creative projects. If I have a problem involving too much manual work, I want to figure out a solution to minimise it. Mostly done in scripting languages like Python and Ruby. Also doing number crunching and plots in the R programming language.
For example, I'm working on tools to help my photography workflow. I sometimes get weird ideas like "I wish I could have a better idea where I have taken photos in", which turned into a script that takes coordinate metadata from photos and spits out a .kml file a mapping software can read.
I don't really copy/paste code much. Sometimes the tools you use in the scripting language land spit out automatically generated stuff which you then develop further.
It helps to have a concrete problem to solve. If you just say I want to learn coding you'll not go very far
Full stack python and SQL means python to handle user interface, data connectivity, interfacing with APIs, understanding/designing a database to perform the necessary data storage / retrieval in an optimal way for how your application works, creating all the logic, safe guards, etc.
Basically I have this thing I want to do, and it's going to interact with a lot of data. Your tools are python and SQL and a small stack of money - make the thing that does it all
Full stack means all the parts, soup to nuts
I simply started programming before there were GUIs. That helped a lot. Another thing that helped was that I had no means to save a program. I had to re-type it every time from the listings in the magazines, the main method of distributing software back then but for cartridges.
I later learned several different programming languages, and the first GUI I used was one I actually wrote myself (later, on a different computer which actually had a floppy disk drive).
And while my job is in programming, most of it is still typing. GUI use is limited to setting up the project in the IDE, which can be a lot of clicking and selecting, but once the basic hardware framework is set up, it's all editor work.
What model was the computer that didn't have a floppy? Your experience sounds very similar to mine.
TI99/4A. It took some time until I could afford the cable to connect a cassette recorder to it in order to save my files.
That's the same model! I still have it in my garage or storage unit somewhere…
Mine is long dead. One of my nephews managed to stick a large screw in the expansion port, under the main board, shorting everything.
Hmm, I am programming as a hobby, but I tried getting into it several times without 'getting' it too. I then somehow found the free cs50x online course and got hooked and finished all exercises. What helped me were clear goals to work toward and the immediate evaluation of the exercises. I could not get any of this from books or websites alone. I especially loved the sql problem sets.
I then worked on my last submission for a long time, which was a work related application. It worked fine on android and linux and I was proud to submit it, but there was no way to compile the program to get it to work on ios (yeah we've got iphones at work...) without a mac.
So then I rebuild the entire app in JavaScript and made it into a multiplatform progressive web app (My main goals were to make it completely work offline and then sync to my server and to let it run on (almost) every device.). I learned a lot in this time, it still got bugs, and designing the ui is somewhat painful (though I love working with inkscape to make icons and pictures and stuff, css though...) but this year I was able to get a test run at work and it was really helpful so far.
Bye, bye maintaining our large, confusing, error riddled, ancient excel tables by hand staring at them for hours!
I still got lots of features I want to implement and bugs to fix. I am aware that my app won't be up to industry standards (no access to some expensive equipment and rule books), but it is still helpful and it is a lot of fun to work on.
And what happend since I am familiar with python and js and such is, that I try to automate everything, even if it sometimes takes more time to write the scripts. With more and more practice I find more and more problems to solve, like I want to build a weight training tracking app, and I know there are many available, but why not?
You need to find some clear goals and get hooked, and yeah that is something that I struggle with too. (I want to get into playing piano, but I currently struggle to make it click too). Too many hobbies and too few time...
Mostly what I do is have anxiety about not knowing what to do since no project ideas come to mind and then feeling guilty about not doing anything.
Doing more game dev helps, but my mindset of not doing something because better projects already exist definitely keeps me from programming a lot.
I am not a programmer, but I did code something from scratch.
I started with a simple idea, I wanted a bot that can chat on twitch.
I did tons of research, applied for a key from twitch, finally got it to log into chat with the most basic of sample code.
Then I started to make commands for it. Added one by one over about a year.
Then the real challenge was getting the code to do math for people in chat: change temperatures between F and C, doing calculations for the blood moon on 7 days to die, and other stuff like that. Eventually I got all that working but it took a ton of trial and error.
The parts I couldn’t get working yet are getting my code to talk with a SQL database and commands so people can add and remove the bot from their channels themselves. Not sure I will ever finish it since I no longer run a server 24/7 now that I’m offgrid.
Hey now, some of us hate programming and the deepest we go is being scripters. I, for example, am dogshit at coding, but I am pretty solid at systems and network administration.
I work at an Infrastructure Cloud company. I design and implement API and Database schemas, I plan out backend workflows and then implement the code to perform the incremental steps of each workflow. That's lots of code, and a little openapi and other documentation. I dig into bugs or other incidents. That's spent deep in Linux and Kubernetes environments. I hopefully build monitors or dashboards for better visibility into issues. That's spent clicking around observability tooling, and then exporting things I want to keep into our gitops repo. Occasionally, I'll update our internal WebUI for a new feature that needs to be exposed to internal users. That's react and CSS coding. Our external facing UI and API is handled by a dedicated team.
When it comes to learning, Id say find a problem you have and try to build something to improve that problem. Building a home lab is a great way to give yourself lots of problems. Ultimately, it's about being goal oriented in a way where your goal isn't just "finish this class".
Not a developer, but a PM and Dept Manager for many dev teams. Your question is wildly broad, but I'll take a high level stab at it.
First, note that there is a lot of variety in software development. This includes industry knowledge, tech stacks, governance, roles and seniority. I.e. a jr programmer on a long established product may just bugfix, or unfuck client data, or make minor adjustment to features on a well understood codebase.
Alternatively a consultancy may be approached by a client to build something new from scratch using a yet to be determined stack. I'll talk about this one. On a project like this the Most Sr dev usually has a title of "Architect". They review the requirements and select the technologies that are appropriate for the job. You are often assembling multiple products to work together.
For example, if you get comissioned to build a company's bespoke e-commerce website you have to get Inventory systems and to talk coherently with product descriptions and image systems, pricing modules, and payment processors and gateways, your in-house loyalty system for points or coupons, along with various shipping APIs from three different shippers and the postal services API for postal code geolocation and address validation. There are also a ton marketing metrics and data analytics that retailer's want so every step of the way through the website what a customer clicks on and if they abandon the process withput making a purchase they can understand why. You could build all these systems from scratch, but why? There are a ton of pre made solutions that due to specialization, are better faster and cheaper than anything you can make. These are called system integrator jobs. Developers make all the systems talk to each other and build in any necessary business logic required.
Then a team will spend a few days configuring their environments. IDE, Repos, installing the tools amd modules required and configuring everything to work as part of a team. This includes the rules for promoting code, peer review, branch management strategies,
"Full Stack" just means you are adept at the back end - databases like Oracle and Mongo and SQL etc, the middleware business logic and anciliary modules as well as the front end making a usefull UI out of HTML and CSS.
Once the team is ready to start, work is divided based on experience , desire and skill. A backend developer might start by standing up a DB instance, then start writing migration scripts to move and transform the data from the old obsolete inventory system. This has to be done programatically because the live data you start with is constantly changing.
Another bunch of DEVs are reading shitty documentation and taking training from the various product vendors learning how the APIs work. Then they install and configure their instances of the products on the designated platforms (cloud or server). They too start looking at the data they have to start with, the product they are integrating's API requirement and any middleware they need to write to translate data the right way. There is always business logic to be implemented here. Such as shipping only to area x&y. Customers from Z can't purchase. If the product can do this, the dev configures it, if not they will write the code for the conditions and responses.
The front end dev's will make a UI that is styled correctly according to the companies brand standards, with proper spacing and navigation customized to the business logic and will display all the images and customer messaging pulled from the various system as they use and misuse the system.
Now withing this big-picture overview, as a developer sets up systems, configures the goodies and writes code, there is a lot going on on their local system. They are frequently pulling code from the repo to update their local system and writing code on that. When they think they have it working after some level of manual testing, they also write unit tests and often test automation so that is something works today, but breaks next week after another dev makes a change somewhere else, you know right away because the tests. Then you fix it. Throughout development, there is a repeating cycle of dev, test, integrate, retest, publish etc... this happens first on your local machine, then on your test environment and then again on higher environments until you eventually get to production/live server. This cycle is most commonly a 2 week sprint. Long enough to make something useful, small enough to not kill the timeline if something fucks up and gets scrapped.
You are collaborating frequently with other devs, qa who report bugs, and business stakeholders who are constantly changing the requirements. Every day is problem solving, creating, testing, fixing and collaborating using all the tools of the trade.
Please note I gave a high level description of one type of development. There are many more aspects to it, including security and authentication. Maintaining an existing product is way different than building or integrating new ones.
Hope this helps.
I almost never use a gui with computer languages and im not even a coder. Granted most of what I do is edit code, make a small script, or utilize code syntax in config files and such. I have used an ide but I still am not super comfortable with them. I mean they are guis but its just a way of organizing the files so its not licke click to do things. I don't really get what you are even using. Like cell phone app stuff as that looked kinda gui but is not my type of thing.
I’m not a dev, but I work with a lot of them, and I do a fair amount of bug testing and reporting for them. Devs do so much: they usually deploy and maintain the infrastructure (servers, virtual machines, databases etc.) upon which they build stuff, they write code in a bunch of different languages, connect things up to external APIs to add more functionality, process and combine datasets to use in the things they build, and plan/track all of that wok as granularly as possible using a variety of project management tools like GitHub or Jira.
Actually writing code from scratch is probably only 15 or 20% of what they do, at least at my relatively small company. And that’s usually spread out among a few different devs who have their own specialities.
It really depends, most people end up specializing into specific things they work on as software has generally become too big for single developers. We have people that only do frontend stuff so things look nice on the website, some only deal with the database and making sure we return results as efficiently as possible.
I started off doing the typical full stack but I've since branched off into DevOps so now I'm responsible for a few hundred servers across the globe that I keep updated and running smoothly.
Sometimes I work on new tools, sometimes I spend days tracking down weird problems, sometimes I'm rushing hotfixes because something is repeatedly crashing in production.
It's worth noting that because you can click through UIs these days doesn't mean that scales as you go. You can go spin up your app in a container in the cloud mostly through UI, but soon enough the defaults aren't enough. I manage several hundreds of instances across a few clouds, I'll well, well past clicking next next next finish. It's just an easy and visual way to ease you into things, especially for beginners, as all the options available to you are there to see along with little help tooltips explaining what a setting does.
It also depends on what you do: if you work at a startup, clicking through Cloudflare's dashboard is more than enough. When you have thousands of customers, you're not managing the tens of thousands of settings you have to configure, you automate.
Code can describe things (HTML, CSS, HCL), code can configure things (YAML, JSON, Ansible), code can program things (PHP, JavaScript, Python, Ruby, etc), code can query things (SQL), programming as a whole is very wide.
https://xkcd.com/303
It kinda depends on the company, but with growing seniority it will become less and less actual coding. I spent less than 50% of my time on coding. The rest is meetings, coordination with team or stakeholders or other teams I need something from, answering questions, brainstorming, writing specifications, writing technical documentation, research on tools or technology, staying up to date on tech, testing stuff, reviewing other peoples code, root cause analysis, etc.
Actual coding for me is very rarely copying anything. AI assistants made searching for code snippets mostly obsolete. Also, very little clicking is happening. Even the graphical interface we usually write in code (no designer is used).
I’m an energy engineer, so coding isn’t the main part of job, but I use Python a lot for data analysis. So I load CSV files and reformat the data into how a particular program or person wants it. I also dabble with SQL and PowerShell for configuring data pipelines, basically picking a subset of data out of a database and using PowerShell to automate that extraction and the upload to a server.
I make e-commerce websites. It's a lot about making widgets, making logic for connecting to their accounting system and how prices and discounts work together. Then whatever delivery and payment system they need and so on.
I write 90% of the code by hand since it works for me very well.
I work at a mid-tier B2B tech company. I specialize in frontend but am otherwise a full-stack engineer.
My big project over the last two-ish weeks was building a demo environment for one of the company's products. It involved:
Along the way, I got several other smaller tasks, like updating logic in one of our algorithms, adding internal tooling so that the customer service team can stop bugging engineering to fix things and just do it themselves, hypothesizing on the sources of random bugs and updating documentation. In between all that, I've got meetings to discuss random other bullshit.
Still lots of coding, but at this point in my career it's more about knowing how my company's systems work together and how to take an idea and turn it into usable software.
I think your last paragraph is crucial. Throughout my career in technology. I have met a lot of smart engineers. But understanding the business and the dynamics there of is often not considered by a lot of people. This I believe is also a scale and becomes more relevant the larger the organisation is.
almost everyone in my area is coding, programming or software engineer, or an physical science engineer, rarely i see people that are researchers in a lab. its hard if you dint start young where you can retain more info. wish i did it before transferring and sticking it out with bio.
"Coding" is a huge world and in my opinion in today's world the term "coder" is too abstract to mean anything in practice (other than someone who writes code among other things). What we mostly share is really just the basics. You can improve your fundamental knowledge that will help you learn, understand and navigate through the differences quicker.
But not just from field to field or job to job, but even from just one task to another task, a coding session can be totally different from another. The "actual typing of code" is just one mechanism.
If I understand you correctly and you're specifically interested in the act of typing code and understanding what it does, then maybe you might be more into coding puzzles or you could learn more about algorithm design. Else, if your goal is to see more output by coding, then progress and experience is the only way. I don't have ADHD, but I have difficulties in finishing personal coding projects, too. Coding for work definitely helped with that. Before that, the biggest improvement I found was to use more Git (/version control in general). Helped me a lot to organize and see my progress.
learn new js frameworks an cry when i see [email protected]'s jira tickets