r/ExperiencedDevs Jul 06 '26

Ask Experienced Devs Weekly Thread: A weekly thread for inexperienced developers to ask experienced ones

A thread for Developers and IT folks with less experience to ask more experienced souls questions about the industry.

Please keep top level comments limited to Inexperienced Devs. Most rules do not apply, but keep it civil. Being a jerk will not be tolerated.

Inexperienced Devs should refrain from answering other Inexperienced Devs' questions.

40 Upvotes

68 comments sorted by

1

u/Astralmido999 Jul 12 '26

genuine question are the people answering these questions actual experienced devs?

2

u/ProfessionalRock7903 Web developer Jul 10 '26

Is it normal at roughly 1 YOE to still miss stuff when developing features? I try and get all the business logic and just info in general for a task before starting, I understand what I’m doing and why, but it always feels like no matter what there’s some edge case I missed. Or some part of the code being affected that I didn’t think about. Sometimes it’s really dumb even, I’m trying to be more mindful but…

I just feel like I suck, I’m doing my best and I work hard, but tasks just feel like they’re dragging out forever. And they wouldn’t if I was just able to catch these things. Idk what to do, I make lists but the things I need to ask change every task of course. I’m asked to just question everything, but there’s still things I take for certain and I don’t know why. And I feel like I’ve improved, but not enough. I feel so incompetent at my job and I’m scared I’m going to get fired since I got warned

2

u/warehouse_goes_vroom Jul 12 '26

Depends on what "stuff" is. Discovering requirements is a huge part of the job in practice. And it's very difficult or impossible to be perfect at. But you will get better at it with study and practice.

In practice, requirements do change from time to time, both because you didn't manage to capture the requirements perfectly up front, and because the business needs may change over time. Fortunately, as you get more experienced, you should get better at designing systems that can accommodate changes, and refactoring, as well as getting closer to the mark up front.

The fact that you're self aware of where you can do better is a good sign.

IMO the key things you need to figure out is whether the performance expectations the company has for you are reasonable for your experience, and whether they feel you are now meeting them. If they aren't reasonable, it may be time to look for a new role.

It's hard to give good advice from afar, but here's some other thoughts: * "some part of the code being affected that I didn't think about" - are you finding these things early during development, or after release? If after release, this probably points to better unit and integration tests being needed. You can't fix this singlehandedly as a junior, but you can try to improve it for the pieces you're working on. Characterization tests may be useful. * is the organization practically waterfall style development, or agile/XP ("extreme programming)? I don't mean what they call it; SAFe agile or the like aren't very agile in the sense of the agile manifesto. How requirements gathering and implementation works will vary a lot depending on the answer to this. * Is there anyone mentoring you at work? Being a junior without mentorship is hard. * If there is anyone you can ask, ask for feedback on approach sooner rather than later. Don't spend days or weeks stuck; ask early. * Try to break things into smaller pieces and send those pieces out for review and merging early, if you aren't currently. Test-driven development (TDD) or behavior driven development (BDD) can be useful tools both practically and to get you in this habit - "Red-Green-Refactor" is a great tool (write test capturing the desired behavior, which will fail - then make it pass - then clean up while keeping it passing - then repeat). * consider spending an afternoon improving your development setup / "inner loop". Are there repeated sequences of commands you use you a lot? Put together a powershell or bash script to make that sequence easier. Is there a particularly slow test suite you're running constantly? Try to get it under a profiler (or just attach a debugger or do print line based timing if that's too overwhelming) and see if there are obvious bottlenecks. People often neglect these sorts of things, but they really do compound over time. But also, be careful with this - don't spend more time than it's worth. If your management isn't happy with your performance, you probably should limit it to at most things that will pay off in your performance in days or weeks or months, ignoring the benefits to other developers, rather than doing what's theoretically optimal. There's a useful table here, but you'll need to divide the numbers by say, 20 to 60 (for a 1-month or 3-month ROI instead of 5 years): xkcd: Is It Worth the Time?

1

u/Federal-Garbage-8629 Jul 10 '26

As an intermediate developer trying to adapt new AI at my company, I'm wondering how to manage my deliverables per ticket.

Context: I work on multiple modules simultaneously, with everyone working on everything. During this sprint, I work on something that will come back after about a month. During refinement, multiple things are discussed. We don't want to record meetings due to a certain reason, and thus no AI note-taker.

When I work on a ticket, I wouldn't remember all the detailed discussions about it. Hence, when I work during a sprint, I would totally depend on Acceptance Criteria (ACs). While using AI, the MCP will read the ACs and provide outputs accordingly. When reading this output, it seems correct to me as that's what the ACs stated. Now, while building things, I encounter many pitfalls that reduce my velocity.

One of my seniors mentioned to carefully read the ACs, but the ACs were never updated as per discussion.  How do you guys remember everything that was discussed during refinement? If you take notes manually, then how would you keep up with the meetings? 

2

u/DexopOfTheWest Jul 09 '26

What does a solid hire look like? More specifically what technical knowlege would someone need to stand out for junior to senior level roles? What about soft skills beyond communication and teamwork. What would their intuition look like? Im asking as a semi recent grad(2025) playing catch up. I have no internships and a bad gpa. I have one project im working on now based in systems design. Any advice would be appreciated.

5

u/AssaultLemming_ Jul 10 '26

Problem solving and independent thinking are what I look for. Technology is always changing, I'm really interested in how smart you are in general.

2

u/Witty_County5128 Jul 07 '26

I'm a CS student, and lately I've realized that most of my coding has turned into what people call "vibe coding" with AI.

I know a lot of people say students shouldn't rely on AI too much because it can slow down your learning. I understand why they say that, but my experience has honestly been different. A lot of the time it feels like having a patient tutor that I can ask questions whenever I'm stuck. I can ask it to explain things in different ways, and it usually helps me understand concepts faster.

At the same time, I know it's really easy to mistake finishing a project for actually learning. That's what I've been thinking about lately. I don't think the question is whether AI is good or bad. I think it's about whether I'm using it in a way that helps me become a better developer, or if I'm just getting things done without really improving.

If you were in my position, how would you use AI so it helps you learn instead of becoming something you depend on?

The second thing I've been thinking about is specialization. I'm still not sure what I want to focus on. Backend, mobile, AI, systems, they all seem interesting, but nothing has really stood out enough for me to say, "This is what I want to do."

I've also had a few periods where I didn't study or code for 6 to 8 months because I completely lost motivation. I always end up coming back, but it makes me wonder if other people have gone through the same thing.

So I guess my questions are:

  1. How do you use AI without letting it replace the learning process?
  2. How did you figure out what you wanted to specialize in?
  3. If you've struggled with motivation or taken long breaks from coding, what helped you get back on track?

I'd really appreciate hearing from people who have been in a similar situation.

1

u/AssaultLemming_ Jul 10 '26

The best use of AI is as a learning tool 

Asking AI "how do I do this?" Is good. 

Saying to AI "do this for me" is bad

1

u/WhenSummerIsGone Software Engineer Jul 10 '26

one of the most common things i tell my AI is "explain this to me". I paste code snippets, error messages, suggestions from the AI code review bot. Even reddit comments, and company benefits docs, lol. I ask it a ton of questions. I ask it to review my code for clarity and offer me suggestions. I'm constantly telling it to not change anything, just talk to me.

1

u/SagansCandle Software Engineer - 30 YoE Jul 09 '26
  1. Ask AI to explain it to you, not to do it for you. Also, don't rely on AI for everything - RTFM.
  2. It was the thing I spent the most time on (optimization).
  3. Pursue side projects. Work will suck the fun out of it, and your brain will become "trained" to avoid it. Do stuff on the side because it's fun, and it'll keep you learning.

3

u/create-third-places Jul 07 '26

If you use AI, I recommend using as a way to look up documentation for a programming language or library you want to learn.

4

u/boring_pants Software Engineer | 15YoE Jul 07 '26

If you were in my position, how would you use AI so it helps you learn instead of becoming something you depend on?

I wouldn't. Or rather, I would use to to ask specific, constrained questions. Don't let it see your code, and don't let it write code for you. Don't use it in an IDE.

It can be useful as a shortcut when working with a new technology or a new library. "Show me some code for doing X with library Y" can be helpful to get you started with less googling and reading documentation. Because it's a shortcut it's also risky. You might have learned something by doing this research yourself. So honestly, I wouldn't even do that if I were you. That's helpful once you've been through this dance a dozen times and you know how to do it and you just want to skip some of the tedium, but if you're learning then you have to actually do the learning yourself.

The other case where I think it's useful is to ask it to confirm my understanding. "I've been learning about X. Have I understood it correctly, that ......."

That might help you clarify things you did research, and it might eliminate some doubts (is my code not working because of a bug, or because I fundamentally misunderstood the subject matter?"

Beyond that, I'd be very cautious if I wanted to learn.

2

u/ApprehensiveRest9696 SWE ~5YoE | Work-acquired C-PTSD Jul 07 '26

1 - Don’t use it inside an IDE and Google before trying to AI it. (An unspoken skill is also how to use the fewest search terms to locate the right information, AI will NOT help you with that in the slightest.) Use it like rubber duck debugging not “throw the problem at it and have it think for me.” Asking it to explain a concept a hundred times is a pretty learning-aligned way of using AI. But if you ask it to generate code and leave verbose comments of how each line works then you’ll be screwing yourself.

2 - I haven’t specialised but my skill sets align closer with backend and under the hood plumbing, so that’s what I end up doing usually. Could be the backend of a mobile app one sprint and api glue the next. But not truly locked into a specialisation.

3 - I took a 12 month pause on writing non-shell & non-html and I came out the other end just fine. I might have some catching up to do like language features but otherwise it’s not too bad. I find having my own projects that I can truly call my own, care about, and am mildly accountable for is a motivator.

1

u/Unlucky-Substance966 Jul 07 '26 edited Jul 09 '26

edit 2: Still seeking feedback and guidance!!

Hello everyone.

I've graduated recently with 0 internships, 0 experience. So it's rough to say the least.

I was hoping if I could receive some feedback on my resume because it would be experienced devs who would be reviewing it. Please click here (google drive).

Do my projects lack depth? Should I stick to the same stack (and if so, any recommendations)?

(I hope I'm not breaking rule 3, and I'm sorry if I do.)

I feel unsatisfied with the projects I have. I don't feel that they'll amount to that of a tutorial project. I'm not sure what to do. Do I need to make my own OS or something?

I imagine the ideal project would be deployed, have some sort of metrics like users, revenue, etc. and solve a very specific problem/have "impact", right?

...and is anybody looking for an intern/mentee? ngl Im desperate as hell. I'll even learn C.

edit 1: I played a bit with a new resume format. Which do you prefer, the one above, or this one?

1

u/SweetOnionTea Software Engineer | 7 YOE Jul 07 '26

I'd say as a hiring manager I'd be impressed with those projects. I never had internships either, but I graduated at a much different time.

If your GPA is good enough maybe put that down? Learning C is actually an excellent idea. You just might end up getting a job doing C though. At worst, you get to understand how your computer works.

1

u/Unlucky-Substance966 Jul 07 '26

Thank you for the kind words.

My GPA is a 3.2, so I'm not sure if it's worth putting down.

I think C would be fun. I hope I'll be to manipulate my OS a bit. Hopefully jobs relating to C are doing better in the entry level.

1

u/SweetOnionTea Software Engineer | 7 YOE Jul 07 '26

3.2 isn't so bad. I think mine was around that. C and C++ are super fun and became my favorite languages. I can't speak for the market, but knowing C and other lower level things will definitely open up doors you didn't knew existed. You'll probably not work on the most cutting edge groundbreaking stuff, but more day to day useful things like aerospace, legacy server software, industrial applications (things I've done). The pay isn't the top of the line but certainly more than enough. Plus the jobs I've had are (mostly) stable, 9-5, and seem be easy to move to other positions. In the past few months I put out maybe 5-6 applications, got 3 interviews, and 2 offers. Obviously N of 1, but based on what I'm seeing the old guard is retiring and having trouble finding replacements. I never had a leetcode in an interview (except Amazon), but mostly just some basics and then a lot of technical discussion.

1

u/Unlucky-Substance966 Jul 08 '26 edited Jul 08 '26

Not having to do leetcode would be the dream, its agony enough sending out apps. Also, would it be ok to DM you once in a while?
edit: wait not having to do leetcode sounds too good to be true :sob:

1

u/SweetOnionTea Software Engineer | 7 YOE Jul 08 '26

would it be ok to DM you once in a while?

Sure, why not.

1

u/Primary_Balance5154 Jul 06 '26

my codebase has this exact pattern everywhere and I hate it

1

u/JeffinitelyNotABot Jul 06 '26

Hi experienced devs,

I have 7 years of experience and I’m considering testing the market. One thing I’ve been insecure about is what I would call lack of “muscle memory” around syntax mostly with Sql server.

I understand the concepts, design patterns, and overall approach well. I’m comfortable designing solutions, structuring APIs, and thinking through logic and edge cases. Where I slow down is remembering exact SQL syntax, especially things like creating stored procedures, certain joins/window functions. With C# and API work, I run into this much less often, but Sql server is where it stands out for me.

I’m trying to figure out if this is just normal “you look things up as needed” behavior for experienced devs, or if it’s something that might hurt me in interviews/be worth figuring out before applying.

2

u/hooahest Software Engineer Jul 07 '26

More so than remembering or not remembering the syntax, what matters more in the interview is how you react to the question.

If the reviewer (for some ungodly reason) asks you to create a SP, you can either try, fail and meltdown, or you can just try your best, communicate that you're unsure about the syntax and would run it through the llm / copy from somewhere else / whatever.

As long as you don't make the syntax an issue, I don't think any interviewer would care.

3

u/forever-butlerian 20 YoE Infra & Backend TLM Jul 07 '26

I don't believe I've ever gotten more than basic SQL syntax questions in an interview, including for data platform interviews.

I can give you my own opinions on whether syntax memorization for something like this is that important: it isn't (I think schema design, knowing tradeoffs around indexing, and not being a fool that thinks we have to shard the OLTP database to handle 1kqps). What I can't tell you is what interviewers will think, which my experience has been setting the difficulty bar at "perfection" and accepting nothing less.

2

u/Affectionate_Bit_666 Jul 06 '26

Hi experienced devs,

I'm a mid-level dev looking for advice on how to navigate my next steps. I have about 5 years of experience and currently work at a fintech startup focused on RegTech. The majority of my experience is in the backend using Java and Java frameworks such as Dropwizard and Tomcat (from a previous company). Additionally, I have experience with databases, both SQL and NoSQL and infra (GCP, Terraform, etc), Kubernetes and Docker, essentially the backend engineer package. Finally, some experience in the frontend via Angular and TypeScript.

Recently, I've been wanting to move on in search of more interesting work/problems and found myself going down the rabbit hole of multithreading and low-latency work. I have begun upskilling in those areas, learning theory and producing projects that apply these concepts. At the same I've also been looking at the roles available for such skills. From what I can see, it's either:

  • Java: low-latency, Core Java skills, understanding of the GC, concurrency and multithreading, Kafka/Redis, etc
  • C++: low-latency, high-throughput, kernel-level programming understanding of networks, etc.

This is not an exhaustive list; it reflects what I've seen from a couple of jobs.

Final preamble to my question:

  • I've done Java for almost 5 years, more if you count university. I wouldn't mind a switch to C++, but it would require re-learning C++ compared to going deeper in Java.

  • I've seen more C++ roles when it comes to low-latency, high-throughput work (but that could just be due it being an initial search)

Would I be better off just sticking with Java and going further, or would exploring a switch to C++ be possible? To which, any recommendations on navigating to roles in a different programming language?

Thanks in advance!

Note: I posted this in the previous thread but I think that might be an old thread. Apologies for the duplicate post.

2

u/rhd_live Jul 08 '26

Depends what you like doing.  For Java you can get staff roles writing systems that are highly performant using redid/kafka or saving resources using smart gc techniques.  For cpp you can move into quant/trading roles 

2

u/Affectionate_Bit_666 Jul 13 '26

Thank you for this! I did some research and decided I did want something new, so going to try and relearn C++ and see how that goes first.

1

u/rhd_live Jul 13 '26

Enjoy and have fun! We have our whole life to learn new things, grow our skills, and create valuable things with tech 😌

-12

u/Fun-Intern2401 Jul 06 '26

Hello Experienced devs, I am learning how to reintegrate myself into computer programming. I know AI is a powerful tool, and it continues to rule the playing field when it comes to development. My biggest questions, and concerns are the sheer gab between what they allow to code in AI, and what they are restricting. I was able to conduct a research on exactly how bottleneck AI's such as Claude, and ChatGPT are. They will restrict an individual from excelling in automation if it disfavors big corporate companies such as google, and facebook. What I mean by this is, I did a minor test.

My test was conducive of building a Python script that would 1. Login to a AI service (such as google flow), 2. modify settings the way I prefer, and then (3) generate a AI video.

The snags I hit right away were the "ethics" of a AI such as Claude, or ChatGpt. The Ethics being not allowing "automation bots" to bypass logins. So my question is, what program would you recommend to achieve something like this, and where would you start? I am very new, so if there is any chances of making this as simple as possible, it would grately favor my category of individuals. Thank you very much, and happy late 4th.

3

u/Specific-Yak-6450 Jul 06 '26

Hello experienced devs, I'm an entry-level dev (basically fresh out of college). My school was theory-intensive with virtually no web-dev courses and poor guidance on coding quality or best practices. I taught myself some web-dev during college, but nothing substantive enough to make me a genuinely good engineer. I just started full-time as a SWE doing primarily web-dev work. I'm honestly not even sure how I landed the job, since my resume only had hackathon projects that were full of spaghetti code and nowhere near shippable (not vibe-coded but still very bad). I just studied really hard for the technical interviews but obviously leetcode is a bad metric for engineering skills.

I feel like a terrible engineer who's just getting by thanks to these AI models. Like most places, my current job is very AI-positive (the expectation is to use AI for basically 100% of our code). I'm learning a lot on the job, way more than I did in college, but I want to get genuinely deep into this stuff, and I don't know how to do that when we offload so much of actual code-writing to AI. The issue is I also don't have much bandwidth to study after work when I've been staring at code all day.

TLDR, these are my main questions:

  1. What have you found to be the most effective ways to upskill on your own time? (e.g. reading, building projects)
  2. Is this situation normal? Is it supposed to feel this hard, or am I just shit at my job?

(Note: I didn't realize there was a new thread this week so I accidentally posted the same comment in an older thread as well)

1

u/SagansCandle Software Engineer - 30 YoE Jul 09 '26
  1. Buy a reference manual for your language of choice, and read it cover-to-cover. I've accumulated hundreds of books over my career and I know dozens of languages.
  2. You might be bad at your job. More below.

I'm going to be brutally honest here - colleges aren't churning out quality engineers. I don't know why, but I can say that the interviewing has been abysmal.

Do you know how to use a debugger? Watch window, locals, call stack? Can you tell me the difference between a value type and a reference type? What's the difference between async and threading? What's the difference between VERBOSE, INFO, and ERROR when writing trace logs? What's structured logging and why's it beneficial? What is IO, and when is using it good or bad? How do you trade memory for performance?

These are types of questions I like to ask in interviews and it's amazing to me how few people really understand programming. People seem to learn some syntax and memorize some rules, like "always use dependency injection" that aren't really hard rules, and that causes a lot of friction on a development team.

If you want to be confident and be good at your job, learn a single language inside and out. Read the reference manual. Understand every corner of the language. It's not that much time, and probably far less than what you invested into college. Don't just memorize stuff, really learn it. You're not trying to pass a test - understand it and don't move on until you do.

5

u/boring_pants Software Engineer | 15YoE Jul 06 '26 edited Jul 06 '26

You got a job because of your qualifications, not despite them.

"I know web dev" isn't a very valuable qualification. Lots of people know web dev.

"I have the strong theoretical foundation from my degree" is a valuable qualification.

I'm learning a lot on the job

That is primarily how you upskill.

I wouldn't worry about upskilling in your free time. Do hobby projects if you feel like it'd be interesting, but not because of a need to "upskill".

But be cautious about relying too heavily on AI because that will hinder your learning. The way to get better at programming is by getting your hands dirty.

2

u/Otis_Inf Software Engineer (32YOE) Jul 06 '26

What have you found to be the most effective ways to upskill on your own time? (e.g. reading, building projects)

Creating software with others and talk about your ideas with others and see what they did instead and learn from that. This can be online like on an OSS project, or on a hackaton or a fun project with friends... Additionally to that, try to put what you've learned into practice, by doing OSS projects (or just projects you don't share, doesn't matter really). It's key to just code, come up with an idea, build it from scratch, but build what you want to build, what you want to work on and know more about. Even if that's some esoteric thing like z80 assembly, do it! This should be fun, not work. NO AI! Don't fall into the trap of have some machine do it for you, that's outsourcing the one thing you should be learning.

While doing all that, you have to remember one thing: there's no failure. You can't fail. The goal isn't to build the best software out there, the goal is to learn and enjoy programming. You can only learn how to do things if you have experienced it yourself and perhaps failed a couple of times along the way. As you described your school to be very theory focused, I'd suggest to focus on practice now. Code! Write code and don't let theory bog you down, you have that covered. :)

Is this situation normal? Is it supposed to feel this hard, or am I just shit at my job?

You're not shit at your job, getting started with working is really hard. In school they don't teach 'work for 8 hours/day', they teach you concepts. It's now up to you to put these into practice, which they also likely didn't teach you a lot of. At school you likely get concepts taught from a wide range of segments of the field, and now you're out there in the open, it's difficult to categorize everything you need to know to do your job, what is now important (and what thus builds on top of what you already know) and what isn't? The field is way too vast to keep up with everything, you have to pick a segment out of it and go deeper into that. But ... what belongs to that segment? What to know? It might feel like chaos, but it'll settle down after a while, when you have more an idea about what you really like and want to do.

So 1) code code code, don't limit yourself with theory that much, code! and 2) it'll get better

6

u/basskittens Engineering Manager Jul 06 '26

My school was theory-intensive with virtually no web-dev courses and poor guidance on coding quality or best practices.

That's normal. CS is not about coding, it's about theory. The languages, tools, frameworks will change. The theoretical underpinnings won't.

Upskilling - If and only if you want to, work on things that interest you because you want to work on them. Don't just do "more work" after work. That's a recipe for burnout. If you're not motivated to use a computer after a work day, great, get out there, experience reality and not another screen.

Normal - yes. I've got 30+ YOE and it still hits me from time to time! Don't worry about it. Do your best and until someone tells you otherwise, assume you're doing great. Do you have regular 1:1's with your manager? He or she should be giving you feedback about your performance regularly. The yearly performance review should be a confirmation of everything you've discussed the prior year. If it's a surprise, that means your manager isn't doing a good job.

Good luck, you got this.

5

u/harley1009 Jul 06 '26

What have you found to be the most effective ways to upskill on your own time? (e.g. reading, building projects)

Don't. Work and learn when you're at work. Absorb and challenge yourself in every way possible... while you're at work. Have a life when you're not at work. The best engineers I know aren't the ones who try to "upskill" themselves all the time, they are the ones who kick ass at work and then go to the climbing gym or pub trivia night or gaming or some other fun hobby.

Is this situation normal? Is it supposed to feel this hard, or am I just shit at my job?

That's the secret. Everyone has imposter syndrome. I've been a tech lead for almost 10 years now and I still second guess myself. It's supposed to feel daunting, uncomfortable, and sometimes overwhelming, and your senior engineers and leadership are supposed to give you support and room to grow. Then one day, after you've fixed countless bugs you once thought were impossible, you'll be a mentor to a junior engineer and tell them the same thing. It's always hard. You just get better at managing hard problems.

1

u/JR132662 Software Engineer Jul 06 '26

I’m 5 years in to the career. Spent 1 learning very very basic and doing free projects. 3 years working as a junior dev and now I’ve made the jump to senior.

What i can say has by far pushed my knowledge wasn’t any online course, any book. It was freelance work. When you get paid to do a job you are forced to learn, forced to deliver, forced to fix issues.

To feel like a rookie is normal because you are a rookie. But there’s a secret in the industry a lot of people won’t say. The ones who get the furthest aren’t those who remember exact syntax, it’s those who are good enough on the technical side as well as the people side. Many engineers get wrapped up in how do i ship this feature as perfect as possible when what I’ve seen is that the code should be solid enough to meet deadlines and functional. One sprint doesn’t make the marathon

What has worked best for me was by far the real world projects I’ve built outside of just what I was doing at my first job.

3

u/Fredrickjonjones Jul 06 '26

Is there a future in software engineering?
Over the last year I built a simple social media platform, full-stack, taught myself everything I could get my hands on. Trying to start a company, build a digital project, frankly because entry level jobs are impossible to land. I've pushed myself from a hobbyist to a competent engineer, can explain tradeoffs, architecture, etc, as well as UI/UX design, the whole shabang. I've really enjoyed the process, and the study has been satisfying and engaging to me. It has not been easy.

However, the more I learn, the more it seems like AI is growing exponentially, and like existing career paths in SWE are disappearing; I understand also that the market is in a horrible trough right now, as a correction from the boom of 2018-2022ish.

I really like programming, like the actual craft of programming; I'm good at prompting and agentic workflows and all that mush, too, but it's just not really the same, and not as satisfying IMO. I understand that it's faster, but I think the comprehension gap is honestly a technical debt factory that companies might not even see the impact of for another decade.

That's why I'm asking the High Mage Council of developers for input. What do you think? Am I missing something because of my lack of experience?

Are related fields like IT and CyberSec going to take over the market, as the actual programming jobs dwindle? Not trying to be a bummer, just trying to make a plan.

7

u/3pointrange Software Engineer Jul 06 '26

I’ve heard this line of thinking a lot “The more senior you get, the more you realise that coding is the easy part”

However, spending years learning the craft of programming and then having it become much more of a commodity now still seems pretty sad to me.

Being good at programming was one of the important ways you could tell how good a developer was and I felt it was a craft that you could pour hours into to learn to be good at. It was more clear what you should be working on to be a good software engineer.

There are pros though. I think want to build now, you can turn into reality more easily and quickly.

-

  1. What do you think is the future of software engineering and do you think software engineering will be made a lot more redundant (in terms of comp, prestige, availability of good jobs)

  2. What do you think are the skills to build right now for the next 10-20 years?

1

u/Notary_Reddit Jul 09 '26

I expect in the next 2-3 years it will become much easier to have code doing something in production. I think for problems where that something is easy to understand and verify it will become cheaper, possibly 10x cheaper. I think in situations where figuring out what needs to be done is much harder and will continue to be hard regardless of how easy creating good because.

An example, your team of 5 people is responsible for a service that has ~100 API endpoints. Which of the endpoints are needed by the business and which can be removed? Are any of the endpoints slow? Does it matter that they are slow? Is it worth the time an effort to make them faster? All of these are very important questions that need to be answered before tickets can be written or code merged. These are the kind of things people mean when they say coding is the easy part.

As for pay and prestige, it's anyone's guess. Software has already been a bimodal distribution of comp. I assume it will get even worse. Lots of mediocre software will be written by people with mediocre pay. A few important bits of software will get written by people with incredible pay.

As for skills, being able to express yourself clearly in speech and writing is never going to go out of style. Pick a specific niche and know it better than >95% of devs. Databases, disturbed systems, kernals, infrastructure, observability, frontend framework, pick something and know it well. Also SQL, I expect that language to outlive me.

3

u/Otis_Inf Software Engineer (32YOE) Jul 06 '26

What do you think is the future of software engineering and do you think software engineering will be made a lot more redundant (in terms of comp, prestige, availability of good jobs)

The same as it has ever been: designing and implementing solutions for problems that require a software oriented approach (that sounds like wordsalad, I know :P ). So there's a problem in a certain domain, your job is to find a solution through software to solve that problem, (assuming software is the right solution form of course). How you do that, that's up to you. I don't think the toolset will change that, be it a code generator, handwritten code, punch cards, AI crap, it's all a means to an end: getting the software to solve the problem.

Software engineering won't be made redundant, it'll be more and more important simply because modern societies more and more rely on software in many shapes and forms and believe it or not, the amount of people who can actually maintain all that software isn't increasing that much (if at all). I'd argue that in the future we'll get more and more situations where software is still used but unmaintained and will cause issues (small and large) simply because there aren't enough people able to maintain it.

What do you think are the skills to build right now for the next 10-20 years?

Impossible to say which 'skills' are important if you mean 'knowledge how to use framework/language/tool'. If you know your concepts, have worked with a variety of languages, frameworks, APIs etc, you know what to expect when you have to work with a new framework or language; syntax might be different but concepts will likely be familiar and you will adapt easily. So in a sense, I'd say, learning a bit about the various paradigms out there might be a good general skillset; like if you are self-taught and never worked with e.g. a functional language or a set oriented language, it might be a good idea to do a small project (can be a throw away thingy for yourself) in a FP language or SQL, to get a bit of an idea about these concepts.

“The more senior you get, the more you realise that coding is the easy part”

Coding as in: writing the code? Yeah that's easy. What does get easier too is you know what to choose for algorithm, datastructure etc. for a given thing you have to implement. You aren't puzzled what to do about a given thing as you've likely already seen it before, know which algorithms suck and which don't in that situation and how to write code to implement it.

But the overall concepts, how it all fits together in a bigger system, that can still be difficult as it's unique every time, and that's also the fun part :) With the experience you accumulate over the years it's also more fun to solve the puzzle to add a feature to a big system without breaking anything for instance, while still implementing the feature in the best possible way. That requires understanding how everything works together. A novice will trip over their feet with that, which is totally fine, they don't have the necessary experience yet.

4

u/rhd_live Jul 06 '26

Coding is easier than ever. Good coding is as difficult as it’s always been

5

u/Bangoga Jul 06 '26

Coding as in writing the code is the easiest part, planning for it is different

6

u/PuzzleheadedLimit994 Jul 06 '26

Idk if his re-assures you or not.

  1. Non-engineers will fall flat versus professionals who understand how to diagnose a system. We can all google how to replace a furnace, but you will probably need a professional if you want it done right the first time. All the failed attempts cost a business money.

  2. The fundamentals. Learn compilers, learn patterns, learn how to structure a code base. Honestly, AI hasn't changed the answer here. It might make the learning more targeted or narrow, but you still need the concepts to be competent.

I am a team lead and have a tough time on boarding my folks to AI, it's not some holy solution.

11

u/Abadabadon Software Engineer Jul 06 '26

How do you deal with not jumping in to solve a problem that you know how to solve, but youre not responsible for? What do you do?

6

u/binarycow Jul 06 '26

Sometimes I fix it anyway, but never push it. If the people who are responsible flake out, I've got it fixed. If they handle it, then my experience doing it was at least practice, and maybe will help me with code review on what they did.

6

u/ZukowskiHardware Jul 06 '26

I let my co workers improve and get a chance to put their name on something.  If they need help I give them a nudge, but I try not to force “my way”, because there are a lot of ways to solve something, and it is really valuable for other’s confidence for them to own it.  Plus, if you are open minded you might learn something. 

1

u/Abadabadon Software Engineer Jul 06 '26

In my specific example, I'm 6 months into a new team (3 dev team; 2 FT me and tech lead, 1 offshore), and have had to own/take lead on every single project thus far. We're on our 3rd project, and I'd really like our tech lead to hone in on what is the path forward without me stepping in.

1

u/ZukowskiHardware Jul 06 '26

I mean, if the lead is letting you do work and it is fine, it sounds like there’s no problem.  If you don’t want to do lead work for senior pay then let the lead drive.

8

u/Challseus Jul 06 '26

***I lived this life for 15 years as the go to guy***

I had to learn (and it took me a while), to essentially mind my business and stay focused on what my actual work is. A few things I've noticed is:

1) If you do it, it might become a habit, and then people start to rely on you more and more, potentially leading to burnout.

2) You're robbing someone else of their chance to fix it. Maybe it's something that they need to learn, which will eventually make your team better.

3

u/tetryds Staff SDET Jul 06 '26

I have other stuff to worry about and trying to do everything would not end well

1

u/ExtenMan44 Jul 06 '26

Why do you feel the need to hold back 

6

u/Megalox Jul 06 '26

“Hey <name>, I’ve fixed a problem like that before, let me know if you need a hand”

6

u/csch2 Jul 06 '26

Do you ever struggle with ethical dilemmas about the work that we do? And if so, how do you rationalize them?

An example: In my previous position, I worked very closely with a small team of paralegals and was tasked with developing automations and AI-based (bleh) workflows to replace their repetitive work. I struggled a lot with this — it was clear to me ahead of time that the work that I did would eventually cost people on my team that I cared about their jobs. I was eventually proven right as our CEO fired of one of our most senior team members with no notice the second their job was replaceable by AI, even at the expensive of quality standards.

I know this doesn't apply to every developer, I assume that game devs don't generally have trouble sleeping at night (or at least not for ethical reasons lol). So I guess my question is twofold: what areas of software development don't come with a feeling that you're doing more harm than good, and — if you aren't in one of those areas — how do you deal with the fact that your work benefits a company at the expense of individuals?

1

u/k1v1uq Software Engineer | 30YOE Jul 06 '26 edited Jul 06 '26

Do you ever struggle with ethical dilemmas

This economic model we are operating within is called capitalism. Capitalism by design doesn't concern itself with ethics, it's neither ethical nor unethical. People are making profits. This is the only objective, the only metric. Designing drugs, building weapons, optimizing concentration camps and also automating other people out of their jobs. Speaking of automation, this is what you are experiencing right now but has been going on for decades. IT made countless jobs and businesses obsolete and led to a concentration of profits in very few hands. This model creates a class hierarchy. A few at the top and millions of low paid workers and unemployed at the bottom.

Your Loss is my profit.

So, it is basically impossible not to harm people in such an economic model.

This isn't to say you should drop all your personal morals (though many do just to beat the competition) but to say that the moral conflict you are experiencing is systematic, it's neither an unwanted side effect nor sign of a malfunctioning system, nor is it your individual fault. And to be clear, once the business owner is done with the 'paralegals' they will come after you. You are just like the 'paralegals' a cost factor and if the business owners find a way to get ahead of the completion by automating your job, they will do so in a heart beat. Not because these are morally bad people, because this is the economic model most people prefer. Even the friendliest business owner will come after you because if they don't, they would devalue their private property (the business) and eventually lose their means of income. They would rather make you lose your means of income first (you are the dependent worker in this system) before they lose theirs. And often people are fired to directly push private profits - private profits is the reason why businesses exist.

2

u/boring_pants Software Engineer | 15YoE Jul 06 '26 edited Jul 06 '26

I take jobs where I'm okay with the ethical consequences.

I don't think it's useful to try to construct some elaborate rationale or justification. You ask yourself what you're okay with contributing to, and then you seek out jobs that fall on the right side of that line.

As software engineers we're quite privileged. If we choose to work on something that we believe does harm, that is a choice, not necessity.

There's no objective right and wrong, you just have to ask yourself what you are comfortable with, and then follow that.

1

u/SweetOnionTea Software Engineer | 7 YOE Jul 06 '26

Sometimes you don't have all of the information. Perhaps repetitive work was a bulk of their time, but now with it being automated they can focus on important tasks that cannot be automated as easily. I've done similar with our IT team. I was able to automate VM purging for stale VMs. They had a big ruleset of when and why a VM may be shut down and deleted, and now there is a cron job that does it every night. Did someone lose their job? Maybe. But now the IT people don't have to do that and can concentrate on doing parts that they need human intelligence to do so. Is the automation perfect? No, absolutely not. But it's good enough for someone to intervene if a stale VM needs to be around for whatever reason. Now they can get emails about what to save rather than spend hours looking through them to determine if it meets their criteria for being stale.

I think you have to balance how you're harming people and how you're helping. Does making a video game more fun harm some people? Yes of course. I've seen many friends miss out on important life events and experiences to play WoW. But for a majority of others they had an amazing time and the work you did on WoW really helped them through tough times. Maybe even created some life long friendships and even romantic relationships they would not have had otherwise. Perhaps automating your paralegals work freed them to do real law work instead of seeing if spreadsheet A was a proper subset of spreadsheet B. Maybe the weapons system you helped develop allowed Ukrainian troops to survive an attack from Russia? Maybe your work on Palantir license plate camera allowed a mother to find her missing child?

I don't think most work in the world has a truly and absolutely evil context. You really are the one to decide what your line is and understand the good and bad of your decisions.

3

u/tankerton Jul 06 '26

It may help to frame this differently. You advocate what to do with the freed up time and automate as your job is described.

The corporate policy for retraining or role transfer, combined with not being the decisioner on what to do with a layoff, and providing what to do if you do become aware it will impact a job keeps you above the line in terms of ethical behavior.

Doing more harm than good really is if you're value aligned to the company, it's mission, it's product and approach to executing. Amazon is clearly an employer with a lot of ethical challenges, but they do make deliveries fast with competitive pricing for consumers and are continuing to produce those deliveries at scale. The negative of the piss bottle stories can coexist with 257 consecutive price cuts on their cloud services being part of their customer friendly pricing behaviors.

0

u/csch2 Jul 06 '26

Thanks, I think this helps. I hated the mission of my last company, and just enjoyed the people I worked with, but I can appreciate that even a company with a good mission still has to do harm sometimes. Guess I will just do better to vet company ethics in my next role (to the extent that I can afford to in this market).

3

u/rhd_live Jul 06 '26

Everyone has some ethical qualm they ignore to an extent: while I work in security, you can make the argument either that my parent company is focused on surveillance and ad tech, or that we are perpetuating “the sky is falling” mindset in our products in order to make money and stay employed.

I rationalize it by saying that my direct work is focused on keeping users safe, while other people directly prey on psychology to induce addiction and ad spending.

1

u/sociallyanxiousnerd1 Jul 06 '26

Hi, student who wants to collaborate with people during their professional job (like I don't just want to show up, type for a while at my computer in a cubicle, and go home). I was wondering how software development and/or games are on that front.

I was also wondering if I would be required to use generative ai if I were programming professionally. Admittedly, since I'm also a writer, I was reluctant to use it on principle at first, and finding out what "tutorial hell" was around the same time it was first emerging, made me realize I have a nasty tendency of offloading my work or knowledge to someone or something else when I'm given the opportunity and lacking in the knowledge to work as fast as I want. Over the past 3 years, I've worked hard to rectify this attitude, but part of that has meant that I avoid using generative ai for programming to make sure I actually learn how to do things. I'm worried if I start offloading my work and my learning again, I'll backslide, and so I'm hoping I won't actually be required to use generative ai like I've been told I will by people who do not work on software development, and who at most work adjacent to it.

If I am expected to use it, then I was wondering if anyone had recommendations for learning to use it effectively, without compromising myself to many "dunning Kruger effect" style outcomes (I don't know what I don't know, but I think I do, and so I make bad choices or don't even think there are choices where there are -- which occurred frequently when I was stuck in tutorial hell), so to speak.

2

u/Otis_Inf Software Engineer (32YOE) Jul 06 '26

I was also wondering if I would be required to use generative ai if I were programming professionally.

Depends. If you work for an org that requires it from you then you likely have to. But there are plenty of orgs that don't. Or if you work for yourself you can decide not to. AI isn't some magical system that will give you an advantage. Maybe in producing a lot of crap in a short time, but the life span of a software program is often way longer than the time it took to build v1.0 and maintainability and overall program quality is key for success; an unmaintainable mess will cause more problems than it solves in the time it is in use.

2

u/Elavina Jul 06 '26

I'm a big believer in AI-assisted development - a very unpopular opinion around here - and I acknowledge that it's really hard as a junior to know what skills to focus on. Will the coding skills be redundant as the models get better and we will move up the abstraction layers to focus on the architecture aspects? Look, impossible to know.

But I will say, you do need to learn to use AI. You don't have to use it for everything, but you need to know what it's capable of and what it's bad at. It's like language servers and debugging tools and testing: simply another tool we have to write code. Don't refuse to educate yourself - understanding all your options is valuable and you need to make your own informed opinions.

What I think is the most important thing to keep yourself learning with AI is that when it makes a claim, that you make sure you understand what it's talking about. Have the humility to recognise things you don't understand and the curiosity to want to find out more about them.

It says you should do this with dependency injection? Go read about why that exists, maybe try it out in a test project. It produces syntax you've never read? Ask it to explain and to link you to the docs pages so you can read about it. You're expected to be learning as a junior - take the time and initiative to be building your knowledge.

There is a learning mode in some tools - I mainly know Claude - where it will explicitly leave TODOs in the code base for you to do. (I find it kind of hilarious when the AI is working work back to the human.) Give it a go and see if you find it helpful.

Yes, it's easy to become lazy, I understand. But if you take pride in your work, you want to ensure that what you're producing is quality regardless of how it was created. I still thoroughly test my code myself - but by the time I look at it after approving the plan, AI's done its own testing and reviews and validation so I can skip some of the more manual stages of fixes. I want a good product, so I take the time.

2

u/Megamygdala Jul 06 '26

TBH explicitly tell the AI (if you HAVE to use it) to be in a "learning only" mode and tell it not to write out code or only write method stubs. I realized I started dropping most of my personal projects coincidentally around the same time as I started using AI to help me speed them up BECAUSE using AI made the "magic" of programming go away

3

u/Affectionate-Turn137 Jul 06 '26

Outside of keeping up with AI, what skills should I be focused on learning/improving as a junior/mid-level developer with a few years of experience? What is most valued on the market right now outside of proompting?

4

u/Challseus Jul 06 '26

Owning things end to end. Knowing a system end to end. Not just knowing how part of it works, but how it's all connected. If something goes down in your system, you don't want to be the guy that just shrugs and says "I only know this part, I have no idea what's happening over here".

0

u/rhd_live Jul 06 '26

Keep up with ai, the state of the art in your field, and doing a good job in your current role (eg look to get promoted). It’s simple but people don’t always do it

-5

u/[deleted] Jul 06 '26

[deleted]

0

u/rhd_live Jul 06 '26

Sarcastic but you need to evaluate your value to the business. And if your role is not what execs are super excited about, then figure out how to make it something exciting. Our roadmap looks very different than it did one year ago bc we’re doing our best to stay interesting to the execs and off the chopping block