How to improve as a software engineer?
Posted by StateBrilliant4912@reddit | learnprogramming | View on Reddit | 44 comments
Hey there, it’s already been 1.5 years at my company and I’m already 27, and I don’t think I’ve improved much beyond handling day-to-day tasks. I’m also more of a quiet person, so I don’t get recognized much or ask a lot of questions, which affects my visibility.
I honestly feel like I lack knowledge. Even though I work as a full-stack developer with Node.js and React, I still feel like I don’t know enough. I noticed a colleague who joined at the same time and same level as me, same age too seems way more knowledgeable from reviewing PRs to understanding even the tiniest details such as how our entire application works, the debugging skill like through inspect, connecting DB locally, different env’s, code coverage, tech tools. He’s smart, passionate, and confident, and sometimes I wonder how he learned all of that.
Meanwhile, I often sound underconfident. When I get assigned a task, I usually ask AI for help, test if it works, and then create a PR, but deep down I feel like I still don’t truly understand many things including writing proper test cases for React frontend or Express backend.
What helped other SDEs improve, become more confident, communicate better, and grow in their careers or get promoted? I know I’m hardworking and never late, but I don’t want to lose the opportunity I have right now to improve and become better. But, I want to work smart.
I want to know, how SDE actually work or learn, there aren’t skills that are learnt from videos, I wish there’s everything loaded out there!
But, I would love to hear what helped people! I don’t even network, nor know how it’s done. The only question I always have is “How people do this? How do they know that?”
opentabs-dev@reddit
the one thing that actually moved the needle for me was flipping the AI workflow around. instead of asking AI to write the code, write it yourself first (even if it's rough), then ask AI to review it, or ask it "what would break this" / "what am i missing" — forces you to actually understand the thing. then for the debugging/env stuff your coworker knows, that's not studied, it's just noticed. next time something breaks locally, don't let the senior fix it — sit next to them while they do, watch every command, ask what each one does. the gap between you two isn't talent, it's that he treats every bug as a chance to learn how the system works and you (like most ppl) just want it fixed so you can move on.
StateBrilliant4912@reddit (OP)
That’s a great advice, appreciate it. I work remotely sadly, and there’s no way I can learn like that. I wish I would have gone to office at-least the very first few years of my career
NoConfidence4379@reddit
this is so good advice actually. i had similar problem when started as full stack and was just copy-pasting solutions without understanding. now i always try to break things first in local environment just to see what happens, then fix them myself. debugging becomes much easier when you understand how each piece connects to others.
also for the networking thing - just start commenting on people's PRs with actual questions about their approach, not just "looks good". other developers love explaining their solutions and you learn ton this way.
SomeRandomCSGuy@reddit
The fact that you think you need to improve on your soft skills like communication, already puts you ahead of other engineers man - most never realize it and lose out on opportunities big time - so kudos to you on that.
Developing communication skills is totally possible. I am a living example of that haha. I am an introverted person and struggled to communicate confidently, but when I actually invested in myself to learn these skills and started getting better, I immediately saw the difference in how people perceived me - and that helped massively with visibility.
Strong communication is definitely the baseline to everything else that is required to position yourself in a way that garners respect, but once you do, opportunities will come. For eg: I got promoted to senior without even asking for it, and over other engineers with 3-4X my YoE😁
StateBrilliant4912@reddit (OP)
Omg, that’s awesome.
My previous manager was pretty active and always pushed me toward new opportunities, like assigning me new bugs and even picking me for prod issues. But my current one used to be our TL before, and I don’t feel as motivated anymore. Even during our 1:1, I literally have nothing to talk about
throoooooooowaway6@reddit
honestly just start asking more questions in code reviews, that's how i.
Dugonn@reddit
honestly reading PRs is what leveled me up the most, just my.
nonewarenary@reddit
the impostor feeling doesn't really go away, you just get better at ignoring it. 2 years in as a part-time dev and still hits me sometimes. on the AI thing — using it isn't the problem, using it passively is. i stopped copy-pasting code directly and started doing this: ask AI to explain what it just wrote, then try to rewrite it myself without looking. even if my version is worse, i actually understand it now. also stopped comparing velocity with colleagues. some people just came in knowing more. that's not a gap you close by watching them — it closes by shipping things, breaking things, fixing things.
biotech997@reddit
Fullstack personal project from scratch
Familiar-Rip-2031@reddit
It is not working on my side, as my brain has not energy to process personal projects
ShroudedNight@reddit
Do you actually find computing inherently interesting? That makes a huge difference in how engaged most people are with the domain.
Try working through "Crafting Interpreters", or reading some of the "Chips and Cheese" stuff on new processor architectures, or play the online hacking game "Microcorruption"
Or re-invent some of the wheels you've learned to reach for off-the-shelf out of habit. If you didn't have React, how would you build something reusable that is better than the bag of parts you get from a raw web page? Could you remake a reasonable approximation of the promises infrastructure if you had to out of the older setImmediate primitives? Every piece of the stack is not magic, and there are ideas that keep coming up over, and over, you just need to get enough experience to start seeing them.
Intelligent-Cry-1536@reddit
Please refer me for any opening in your company...
Budget-Possible-2746@reddit
You need to understand system design and how to implement the design reliably and securely. Knowing how systems work and how to build them is the most important part of software development. Once you understand these fundamental stuff, you can build anything using ang tool or programming language. Without fubdambetal understanding, even using AI assurance wont make you ang better.
Suspicious_Coat3244@reddit
To be brutally honest, many developers at the 1-3 year level feel this way, but won't tell anyone. Quieter ones, especially. You look around, and it seems like everyone else magically grasps the entire system while you're just focused on getting through the next ticket.
The lesson that took me way too long to learn is that strong engineers didn't generally learn everything from courses. Most growth comes from seeing real systems over and over again, and being curious enough to follow things further instead of stopping once they get something working.
Your co-worker didn't just wake up with a mental map of env configs, debuggers, code coverage, infrastructure details, DB setup, and everything else. They likely pulled at that thread again and again when they encountered it in a new way. A huge amount of solid engineering growth is accumulated curiosity.
Also, using AI to implement something isn't inherently bad. The really damaging part is stopping once it's working. The fastest engineers will then take a step back and ask:
"Why did that solution work?"
"What are the trade-offs?"
"What will break if scaled?"
"If it broke in production, how would I debug this?"
That second step is where you build confidence.
Also, comparison sucks in software. So many engineers have very invisible strengths until one day they're called upon. Some are phenomenal debuggers. Some are great architects. Some are clear communicators. Some are fast implementers. Some are tooling wizards. It's very rare that anyone is excellent at all these things.
One thing I really did a lot was deliberately slowing down my debugging instead of rushing to fix the ticket. I'd use inspector tools, read logs, trace requests, look at network calls, read old PRs, read code not related to my task. Probably half the industry's progress happens by just getting more comfortable sitting with unfamiliar systems, rather than immediately running from them.
And honestly, learning to ask questions is also a skill. Senior engineers usually don't look down on junior engineers asking intelligent questions. They generally just get worried when they hear nothing for months on end and the engineer still looks lost.
The fact that you're worried about this is honestly already a really good sign. The dangerous developers usually think they already know enough.
Real-Leek-3764@reddit
do stuffs like Visual basic, excel macros, com object, esc/pos/eltron/zpl printing via usb and serial, serial, tcp/ip
many more things you can do which are in demand. not everything is "modern full stack"
NeverNextSlide@reddit
I've seen this disparity in software engineers across all teams and companies and spent a significant portion of my working time in senior roles trying to help level up junior engineers and encourage their growth. The reality is harsh, whether right or wrong, the only way you're going to be able to improve is by making a conscious decision to adapt and change your perspective and behaviour.
First things first though, you should not take any advise to heart, constructive criticism should be received, considered and acted on to improve, defensiveness to this feedback is not a solution. If someone has taken the time to help guide you, regardless of positive or negative, you need to respect that and if you want to grow then listen.
From the limited information you've provided I'd be reading books on self worth, how to improve and become more confident, the psychology behind personal success, how to work well with others, adapting to situations, how to become an effective communicator, stoicism, happiness, etc. All of this sort of content is what could help improve you as a person which will directly translate into the work place.
Not everyone has the drive to success, the extroverted personality enabling them to ask questions with ease and asking what could appear to be dumb questions. No one knows everything, to this day two decades in, I still ask simple questions because I simply can't keep up with everything in this shifting world and value other peoples knowledge and intellect. I also know it has quite a positive impact if I ask for help or guidance from a junior, they learn more from having to explain things to me also and it enhances our work relationship.
Two critical ones here:
I was on my back foot in the industry for years as I was 100% self taught. That said, 2 years in I was writing articles for web magazines here in the UK and had a fairly active blog. I found the best way to learn was to write it down to help explain to others, this reinforced my learning. I then received questions and that helped bolster my understanding of the subject even further.
Secondly, have side projects, they don't need to go anywhere, but regardless of whether you do this from scratch or use AI, just build stuff, doesn't matter what, just build and learn.
Lastly, in regards to using AI blindly, I truly think that's restricting your future prospects. Companies are adopting AI and this isn't going away, but they need knowledgeable experienced engineers to wield this tool, manage and hone it to deliver the expected end result. Learn you craft, love your craft and the rest will fall into place.
Turniplife08@reddit
On a similar boat. Would love to hear other people’s experiences
No_Report_4781@reddit
Do not use AI until you're an expert in doing the task you are assigning to the AI
Ask questions. While there are stupid questions, only a stupid person would not ask them, and seniors love showing off what they know. Only a bad overseer would ridicule you for asking.
Innovator-X@reddit
What do you think of asking those same exact questions you are talking about to AI instead of humans?
No_Report_4781@reddit
Why would I ask an automated yes bot anything?
EmanciporReese@reddit
I bet your fellow jr just spent more time researching with AI and stuff stuck.
Like asking ai to do something then immediate critiquing it, taking notes when you don’t understand something… etc.
It’s a lot of signalling.
Ok-Shower6174@reddit
Ask AI -> test -> PR" without understanding what you shipped is the core problem. That colleague you admire almost certainly breaks things, reads error messages deeply, and traces problems to root cause manually - AI or not.
One concrete tip: Next task, don't open AI first. Struggle with it for 30–60 min. When you get stuck, form a specific question before asking AI. Then read the generated solution line by line and explain it back to yourself. If you can't - you don't own it yet.
Depth compounds. Shortcuts don't.
Ok-Mushroom6828@reddit
you can start solving bigger challenges, might try open source or hackathons
AdventurousLime309@reddit
A lot of engineering growth happens from curiosity during normal work, not separate studying. The people who become “the knowledgeable one” usually keep digging one layer deeper every time something breaks. Why did this query fail? How does auth actually work? What happens in production?
Using AI isn’t the problem. Blindly accepting answers is. Try slowing down and tracing things manually sometimes. Read logs, debug locally, inspect network calls, write tests yourself before asking AI. That’s where confidence starts building.
quietcodelife@reddit
the coworker thing is usually this: they treat every piece of context as a learning moment, not just a blocker to remove. when something breaks, they read the whole error instead of just the first line. when a PR gets reviewed, they read comments on other peoples' PRs too, not just their own. when a ticket gets closed, they look at what else recently touched the same file. it's a posture more than a skill, and once you see it that way, it's a lot less intimidating to try to copy.
Queasy_Hotel5158@reddit
Maybe its not always about learning, I think it's more about engaging with the people in the workspace , talking , sharing having nice funny conversations with colleagues ...maybe this is missing?
crawlpatterns@reddit
honestly the fact that ur even aware of these gaps already means ur probably improving more than u think, a lot of devs just coast and never reflect on anything. most people i know learned this stuff slowly by being curious during bugs, reading other peoples PRs, and breaking things locally untill they understood why it failed. also dont compare urself too much to that coworker because some people are just louder or obsessed with tech outside work lol. ur 1.5 years in, thats still pretty early and u sound way more self aware than alot of engineers i worked with tbh
untrained_bot_v0@reddit
Do hobby projects. Really anything related to development will help you grow.
Hawxe@reddit
You don't need to do hobby projects to improve, the guy has a job. Nobody serious expects him to be coding in his off hours as well.
untrained_bot_v0@reddit
It depends on what kind of person you are. I have been working for many years. And I will never stop learning. And I learn best by doing hobby projects. I do not do the projects for my boss. I do them for myself.
Fexelein@reddit
I agree with this the most, and also perhaps find a nice book.
SnooDoubts8688@reddit
Firstly, at 1.5 YOE you're still a junior. You should be asking all the questions in the world. "What does this PR do?" "Do you have have 15 minutes to discuss your PR?". My manager says to always ask in 3 levels of "whys". If you hear a technical concept or business idea you don't understand, look it up, thoroughly.
Secondly, you should always strive to understand exactly what the AI is doing, and sometimes even challenge their proposals. Start treating AI like your junior, and you are the one making architectural and software design decisions. How? You can start with system design studies outside of work. There are some good books out there like Designing Data Intensive Applications or Alex Xu's system design book. There are free PDF versions online. It's helped me broaden my perspective on systems as a whole and helped me think in bigger scopes.
Lastly, engage in more conversations with your senior or manager. Ask them, what is something you can be doing to make their lives easier? What are some problems they are trying to solve?
Truth is, unless you're a rockstar engineer who is leading the pack, you can't afford to sit in silence while being clueless!
StateBrilliant4912@reddit (OP)
What do you even discuss in your 1:1 with your manager? When it happens every week or every other week? I literally have nothing to say
Hawxe@reddit
You can start with the question in the title of this thread. What next steps do I need to be taking
theofficialnar@reddit
Discuss your tasks that week and raise what you were struggling with. Don’t be afraid to ask questions since like what the other guy pointed out at 1.5 yeo you’re still pretty much a junior, you’re not expected to be able to architect and work on something from start to finish all by yourself. If you make mistakes without a senior giving guidance then that’s on them.
xtraburnacct@reddit
I think you’ll often realize some people just live and breathe this stuff. While others don’t even want to be on a computer after they leave work.
catenoid75@reddit
One thing I started early was to embrace my fuck-ups. They are the key to improvement. We all make them and will keep making them so use them for your personal development.
The fuck-ups can be everything from a bad piece of code to production going down. Basically every time I find myself in the situation that a bad choice was made I analyze the whole process:
This of course also can be applied to other's bad decisions. In those cases I keep it to myself though :)
SnooCats6985@reddit
I am redundant SD tried to fake my way through AI.. now facing the brunt of it. So please learn the core capabilities if you can
authentic_developer@reddit
The single habit that moved me from "ask AI, ship, hope" to actually understanding things was reading PRs I didn't write. Once a week, pull up a senior's merged PR on a part of the codebase you don't know well, read every file changed, and write yourself a one-paragraph summary of what they changed and why. Painful at first, fast within a month.
Pair that with a rule: before you open Claude or ChatGPT for a bug, spend 10 minutes trying to explain the bug out loud, as if to a rubber duck. Half the time you'll solve it without the AI. The other half, your prompt is way better.
aqua_regis@reddit
And still, then, before resorting to AI, use a debugger.
patternrelay@reddit
A lot of people grow by repeatedly debugging messy real systems, not by knowing everything upfront. One thing that helped me was tracing how data and failures move through an app end to end instead of only focusing on finishing the ticket.
pastpresentproject@reddit
Don't put too much pressure on yourself about being 27, because everyone's in a different time zone. Instead of just copying code from the AI, try carefully examining why it works and reading through all of your colleague's PRs. Don't hesitate to ask questions or go for coffee and ask him directly for his secret – you'll find the solution right away. The important thing is understanding the root of the system, not just completing the task. Keep going, buddy!
AutoModerator@reddit
Please, ask for programming partners/buddies in /r/programmingbuddies which is the appropriate subreddit
Your post has been removed
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
verithia_@reddit
Also a jr, \~2 yoe. I'm not an introvert but I'm pretty shy - but asking questions is one of the best ways to learn, get visibility and build rapport. If you're a junior, there's no better time to abuse this because no one judges if you don't know lol and even if they do, that's not a culture you should be looking for. Ask about anything - technical, architecture, business, processes, etc etc. Figure out what you find interesting, see if there's anything you can do to improve it and maybe build something cool that does that.
Adopt yourself a good mentor, have regular chats about anything - current projects, recent tech, technical/soft skills, advice, and build relationships. Ask your manager or more senior colleagues for challenging work and deliver. Communicate what you're interested in and how you want to grow. Your manage especially should be all about your growth, and if they are good, they will support you.
If you use AI, you need to be more purposeful about learning - don't get lazy, stay curious. Read through the code, and ask AI to explain it. If you have to debug, try debugging yourself first. Use AI for learning!!!!! Learning new things have never been easier with AI!! Feed it your codebase, ask it to explain the architecture or a method or authentication process, whatever you don't understand. I also have this problem sometimes, but when you see something you don't understand, take a pause and dig into it. Don't just be like, "oh well, if it works it works." YOU'RE LITERALLY GETTING PAID TO LEARN AS A JUNIOR, ABUSE IT!!!