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!

  • 1984@lemmy.today
    link
    fedilink
    arrow-up
    12
    ·
    edit-2
    6 days ago

    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.

  • jjjalljs@ttrpg.network
    link
    fedilink
    arrow-up
    7
    ·
    edit-2
    5 days ago

    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

  • pinball_wizard@lemmy.zip
    link
    fedilink
    arrow-up
    21
    ·
    edit-2
    6 days ago

    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.

  • anarchyrabbit@lemmy.world
    link
    fedilink
    arrow-up
    6
    ·
    6 days ago

    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.

  • Quazatron@lemmy.world
    link
    fedilink
    arrow-up
    11
    ·
    7 days ago

    Something something Jira something scrum agile Confluence something another meeting something hit tab and let copilot do it and repeat.

  • KubeRoot@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    8
    ·
    6 days ago

    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.

  • mvirts@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    6 days ago

    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.

    • laranis@lemmy.zip
      link
      fedilink
      arrow-up
      3
      ·
      6 days ago

      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.

  • 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
    • ctrlaltdelight@lemmy.zip
      link
      fedilink
      English
      arrow-up
      2
      ·
      5 days ago

      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.

  • dependencyinjection@discuss.tchncs.de
    link
    fedilink
    arrow-up
    6
    ·
    6 days ago

    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.

      • dependencyinjection@discuss.tchncs.de
        link
        fedilink
        arrow-up
        1
        ·
        6 days ago

        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.

      • sunshine@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        6 days ago

        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.

      • 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

  • Deestan@lemmy.world
    link
    fedilink
    arrow-up
    11
    arrow-down
    2
    ·
    7 days ago

    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.

      • Deestan@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        7 days ago

        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.

            • lepinkainen@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              6 days ago

              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

  • CannedCairn@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    5 days ago

    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.

  • HeyMrDeadMan@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    6 days ago

    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.

  • JakenVeina@midwest.social
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    6 days ago

    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#.

  • Atlas_@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    7 days ago

    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.