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
    2 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
    1 day 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

  • ThunderComplex@lemmy.today
    link
    fedilink
    arrow-up
    2
    ·
    1 day ago

    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.

  • CannedCairn@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    1 day 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.

  • anarchyrabbit@lemmy.world
    link
    fedilink
    arrow-up
    6
    ·
    2 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.

  • ThePancakeExperiment@feddit.org
    link
    fedilink
    arrow-up
    2
    ·
    1 day ago

    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…

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

    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

  • Kissaki@feddit.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    2 days ago

    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,

    • No, I don’t copy tons of code
    • I read and/or search and/or analyze and/or remember existing code, to understand what is happening, identify bugs, or embed and write solutions that make sense within the project, reuse existing mechanisms and approaches
    • I develop and write solutions, sometimes in one iteration, sometimes through multiple iterations, when I have new findings during development or solution behavior or new questions raised
    • When it’s web, it’s more writing, if it’s a Windows Forms app developed with Visual Studio, UI placement and layout is a UI process, but connecting it to and implementing it’s logic and behavior is still a coding task
    • I love making use of efficient editor and IDE features like multi-cursor editing when they’re useful
    • Overall, I think being in the UI is the smaller part of development

    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.

    • snoons@lemmy.ca
      link
      fedilink
      English
      arrow-up
      35
      ·
      3 days ago

      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.

        • Nibodhika@lemmy.world
          link
          fedilink
          arrow-up
          9
          ·
          3 days ago

          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.

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

        There’s a zen peace that comes after realizing the customer is out of their mind and will change their mind tomorrow, anyway.

  • 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
      ·
      1 day 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.

  • JakenVeina@midwest.social
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    2 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#.

  • 𝓹𝓻𝓲𝓷𝓬𝓮𝓼𝓼@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    62
    arrow-down
    1
    ·
    3 days ago

    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

    • MagicShel@lemmy.zip
      link
      fedilink
      English
      arrow-up
      26
      arrow-down
      1
      ·
      3 days ago

      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.

  • Weirdfish@lemmy.world
    link
    fedilink
    arrow-up
    49
    ·
    3 days ago

    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.

    • AnarchoSnowPlow@midwest.social
      link
      fedilink
      arrow-up
      22
      ·
      3 days ago

      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.

    • robocall@lemmy.world
      link
      fedilink
      arrow-up
      14
      ·
      3 days ago

      “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”

      • LedgeDrop@lemmy.zip
        link
        fedilink
        arrow-up
        4
        ·
        3 days ago

        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.

        • noughtnaut@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          1 day ago

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

          • LedgeDrop@lemmy.zip
            link
            fedilink
            arrow-up
            3
            ·
            2 days ago

            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:

            1. Be (technically) opinioned and make it visible. Often, it’s not your boss you need to impress (as they see your work every day), it’s your boss’ boss. If you have a reputation within the company as a guru in something, it’s easier for your boss’ boss to “see” that you’re bringing “value” outside of you day-to-day tasks.
            2. Bring visibility to these (side quest) discussions. At one company, I created a chat room to use as a sort of “technical self-help”(for all Engineers) and any DMs I got, I would ask them to funnel the discussion into the chat room. I asked them to do it “so others can find the answers to similar questions” and more importantly “to bring visibility to these discussions”. You, your boss, your boss’ boss can see how much time you invest in these topics and they can see that this help does not come for free.
            3. If your not meeting your goals (or are stressed out) , due to these side-quests - tell your boss. Explain (as early as possible) that project X will slip if you keep focusing on unblocking others and let them decide what to do. If you followed-up with Point 2, you’ve got concrete evidence to justify where your time is being spent.
            4. When people ask you “what are you doing?” (like during your Stand Up). Do not answer “nothing” or “supporting others”. Be detailed, mention the actual technical topics (and if you’ve got this chat room, reminding yourself is much easier).
            5. Last bit, which might not be helpful. If it’s the same questions or some fundamental misunderstandings that your often answering: maybe offer a Dogo/training for anyone who’s interested. When you offer it, shout it from the highest tree top - it’ll go far in establishing yourself, in the company’s eyes, as a guru (even to those who don’t understand the topic) and it’ll (helpfully) reduce the amount of questions in that topic.
        • KubeRoot@discuss.tchncs.de
          link
          fedilink
          English
          arrow-up
          1
          ·
          3 days ago

          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.

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

      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.

      • Weirdfish@lemmy.world
        link
        fedilink
        arrow-up
        13
        ·
        3 days ago

        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.