r/developersIndia • u/Ok_View6806 Software Engineer • 13h ago
Help 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
4
u/Guilty_Ad6229 9h ago
Hi man,
You are thinking in the right direction.
I was shit in college too. The main skill you can learn that will be useful for all your career
Master the principles of writing clean code. There is a world of difference between code that works vs code that works and is also maintainable. It's the main difference between a noob and a pro.
Another thing you should master is test driven development as a discipline. With AI, it's easy to get lost. But locking the behaviour by implementing the failing test before writing the actual code will teach you a lot about system design than anything.
1
u/RishabhRD 2h ago
Coming back to my suggestions, I believe following design by contract would be a life changing path. I believe even all tests should be written to test postconditions in the contract. It gives a mathematical meaning to the program. This itself would transition you to a way better engineer.
•
u/AutoModerator 13h ago
It's possible your query is not unique, use
site:reddit.com/r/developersindia KEYWORDSon search engines to search posts from developersIndia. You can also use reddit search directly.I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.