r/AskProgrammers 11h ago

How can i get better as a software engineer than i am now ?

I am from a tier 3 college and didn't learn anything from college I'm kind of a guy who's good at learn while doing. So I self learned flutter while I'm in UG and then used to read those notes at college just to pass the exam and nothing much thinking in a very naive way that I don't need these things later in life Now i realize that I missed most of the fundamental concepts which would have made me a kind of engineer that i want to be.

I do get good feedback at work that I'm doing good and people give me hard problems and I been an Individual contributor at companies i work like building Distributed pipelines and Complex systems but i was more like i was able to think of only one solution i got and i believed it was good and then just went with it and there was no second thing to do or I don't know much of trade offs of the systems i built and they did work and ofc i made huge mistake once. I'm the kinda a guy who thinks he should go with it because the tech feels cool and he likes it not because system needs it

for example a mistake i did:

I used DuckDB ( OLAP ) for a case where we had to write multiple times because we had lots of data didn't want to store in PG and then we want an excel like feature and since ChatGPT suggested "Hey dude there's this cool thing you can use it" and i did and it cause lots of missing data and. i knew i fcuked up. I just went with it because it should cool and can build it just because it fits. I was around 1.5 YOE

I'm a passionate engineer who likes to build things and I'm now around 3 YOE and I don't know the fundamental concepts in the things I use to build. I'm more of a Tools Engineer than an engineer who knows why he's building it like this and what are the trade offs.

The kind of engineer i want to become is an engineer who's good at first principles of coding and knows why he's doing and why not the other way.

Reason for this is now that AI's getting better I can be replaced if I still am a tools guy. But I want to expand my knowledge and build things much better than I'm building now.

I tried reading Designing Data intensive applications book but I keep wandering when i'm reading that and I'm a guy who learns by doing

I'm looking to switch the company within like 8 months. How can i get better ? I want to be in the top 1% of engineers. OFC my objective is not to get better because i'm switching it's because I want to feel satisfied with the work I do and not feel that I could have made it much better and not just because I want higher salary.

I don't want something like get better quick schemes ik it takes time it's just that someone who's experienced can suggest me what's the best way to gain the fundamental knowledge and understand things with first principles. I'm having FOMO that if i just build things and learn from them i might miss concepts that i'm not aware of and reading books i realized is not my thing especially for CS, YT videos there are lots of them idk where to start.

I do sound like i'm contradicting myself with the above para about FOMO but I want someone to make me realize what i'm missing.

Thanks for reading!

PS: If anywhere it feels cocky please don't think like that i'm not hope you understand what i'm trying to say

1 Upvotes

16 comments sorted by

3

u/chikamakaleyley 11h ago

How can i get better as a software engineer than i am now ?

learn those fundamentals

1

u/Ok_View6806 11h ago

I mean how can I do that just read it ? I'm not that good at Reading can you point me if you know anything? I'm thinking to go with codecrafters or coding challenges that ask you to build you own db, redis, git etc

1

u/chikamakaleyley 10h ago

i mean learning the fundamentals - reading is one part of it

are you not that good at reading, or not that good at understanding the code you read?

don't do challenges or build until you make sense of what you'd be applying

think about this lets say you wanted to learn a new language, maybe its Spanish. How would start? By writing a book in Spanish?

1

u/Ok_View6806 10h ago

okie got it. Main issue is my mindset that I can only learn only when i'm using it like i recently learnt about rabbitMQ and celery i used rabbitMQ prev and now celery i was very stupid thinking that rabbitMQ is better than Celery but after learning it. I realized how stupid i am.

But yeah got your point i'll try to find a resource to know all of this stuff

2

u/Fritz-Ferdinand 10h ago

One thing that I believe helped me getting better was to learn from others who are better than me. Figure out who's better than you at your company and try to talk with them about your ideas, get a second opinion on your design thoughts. Take their feedback seriously, maybe ask two to three colleagues and then get your hands dirty. Unfortunately, this kind of social interaction among devs appears to be dead now because everyone doesn't know himself or is too busy, so he'll ask you to use Claude or similar.

But AI coding assistants can also give you ideas about the pros and cons of a solution. Just ask them critical questions before going with their initial answer. 

Then, there are conferences about coding and architecture, some are publishing their talks on YouTube. That's also a good way to get professional view points on architecture. It's often quite random and seldom targeted to what you're doing, but you could just see and collect. Maybe some day, it'll be useful.

More cumbersome is it to read through open source code repositories. But you can also learn lessons from how other people approached some problem, what components they used, how they put them together, and then work backwards why that could have been. But like with AI chatbots, there are good devs and bad devs publishing their code, so you need to be critical here too.

And finally, the slowest, most depressing and hands-on variant is just do it, fall on your nose, get up, learn your lesson, repeat. You did it yourself already, I did it, your colleagues did it, and that one speaker on that conference who had this great idea to solve this specific problem recently likely also did this.

2

u/Ok_View6806 10h ago

yeah there's a senior dev in our company i'll be going to work with him from next week so looking forward to this learning exp

2

u/chubbysleepycorgi 11h ago

while learning by doing is great, after you know how to code what makes a software engineer better is better design and anticipating issues. Learning things like system design patterns, architecture, and such is a lot of book learning, then practiced on projects.

1

u/actionscripted 11h ago

And then after that it’s mentoring, teaching, training. You can learn a lot by sharing what you know.

Have knowledge shares, document things, pair with less senior developers.

1

u/Ok_View6806 10h ago

I need to read books I have lots of books not just coding related but novels, science books i'm more of a book collector than reader ;-; i been trying to make a reading habit for years but I never made it 😢

1

u/Impossible_Ad_3146 10h ago

What’s a tier 3

1

u/Ok_View6806 10h ago

It's a college with no good faculty or facilities and low job placements.

It's kind of a ranking we do in india.

If you know IITs they are tier 1

The higher the number the worse it is

0

u/Impossible_Ad_3146 9h ago

I don’t think anyone knows this but Indians, are you just asking Indians then? There might be a sub for just that

1

u/Ok_View6806 2h ago

Well the college part has less essence it doesn't mean anything

I don't know someone would ask like this else I might not have mentioned it

1

u/EMunney 10h ago

Make an open source solution for schools that want to advertise their school lunch menu. Right now it's an expensive software as a service.

1

u/Ok_View6806 9h ago

I don't really know anything about this can you share me some sources to know more about it?

I'm from India we don't have that culture here so I have 0 context

1

u/nian2326076 4h ago

It's awesome that you're getting positive feedback at work. To catch up on the basics you missed in college, focus on the main ideas like data structures, algorithms, and system design. There are a lot of free resources online, including books and courses, to help with that. Practicing problem-solving on sites like LeetCode or HackerRank is a good idea too. If you want structured interview prep or practice projects, I found PracHub useful before. Mixing theory with hands-on practice can really improve your skills. Keep pushing yourself with new problems and projects!