Running away from complex projects is something most of us do, this is mostly
because of not knowing what you are supposed to do and it involves a lot of
trial and error and if you just can't handle that then you just start searching
for existing solutions and just settle.
Being interested in the most basic things (in terms of tech) has helped me build
things based on assumptions and that helps me look for solutions faster since I
kinda know what I'm looking at. It's not a perfect approach but it does help you
speed up things.
Also, it's the only way I know that has helped me learn quite a few things, base
them on assumptions about the implementation then go in detail to correct
myself. The correction part is quite important.
A recent project which deals with creating a middle layer between react native
people I've envied over the years and honestly even if it doesn't end up being a
successful project having worked on something so low level made me realise the
complexity that has been abstracted from us.
This has significantly helped in improving my thinking process while writing
code and I appreciate what lower level implementations have saved us from. If I
had to deal with all of that when I first started, I wouldn't be a programmer,
I'd be crying in the corner somewhere.
Not that I'm suddenly a guy with a higher IQ but i'm smarter than I was 2 weeks
ago with regards to the domain I've been working with.
I guess at some point in your developer life, no matter what you do, (frontend,
backend, etc) , getting down to writing implementations of things you've always
taken for granted will help you get better at development.