First, I am still struggling through my studies. I started working on the side (freelance fullstack and WP dev) while still studying and my progress took a big hit. I am left with a single exam which I failed multiple times (mostly because of not preparing enough beforehand because of other worries that needed to be taken care of as well).
At work it's not better, the WordPress stuff is quite easy to manage (but I feel that is only because every question on earth regarding WordPress and its ecosystem has already been asked), but there is one longer term freelance commitment where I feel like I am not adding any value and am just burning money. I think my contractor (a dev themself) only keeps working with me because they either can't find or afford (or both) a better developer.
In most situations they need to either help me out working on features or they rewrite big portions of my code afterwards when I delivered something. At first I thought it was probably just a learning experience and it will get better over time, but it didn't. Everything is happening nearly as often as i.e. two years ago. I read docs, Github issues, StackOverflow, other peoples' code etc. daily but I don't seem to really learn anything useful. Also the code base looks nothing like what I was taught at uni. No tests, no style guides, no processes, no documented architecture, no docs generally. Just code and requirements. Yes, I expected work to be different and "real-world" code to be not as beautiful and well-thought out as in my Software Engineering classes, but is this really it?
So looking at my still unfinished studies, the feeling that I am not able to contribute in a meaningful way to the code base of one of my clients and having quite a low income I can't help but feel like I am just incompetent.
I get it, impostor syndrome and all of that, but I really get the feeling it is not just impostor syndrome but fact.
Random strangers on the internet, what would you do in my situation? I don't know how to overcome this.
This is scary, because the worst case is that they agree with you, but if they do, well, then at least you know there's probably something about it, and maybe you have some more detailed feedback..
Better case, they tell you that they're satisfied with your performance.
I've had this talk a few times, with someone I trust, and it's hard, because you're being vulnerable.. and to be honest, they've still not convinced me that I'm not a net negative, but they keep me on the payroll..
One good starting point is Github. There's a good list of repos/projects here: https://github.com/topics/awesome-list
Just dive in.
I think we've all been here. I've been a web developer for almost 15 years (freelance, agency, in-house, HTML, CSS, PHP, MySQL, Javascript, Wordpress) and I STILL feel completely useless most days and on most projects. Even when I work with Junior Devs, I feel they are faster, know more popular frameworks, produce cooler output than I do.
I've had the conversation with managers about my productivity and skillset. Every single time when I've had the 'imposter syndrome' conversation, my managers would very bluntly tell me my productivity was shit, but my knowledge and code were great. The problem always seems to be myself overthinking or self-doubting, so I become a self-fulling prophecy loop of failure.
Have the talk with the contractor you are working with. Listen to what they tell you. Learn from it. Know that a year from now you will probably feel the same BUT will look back on this project and clearly know what you could have done better and will have more experience to do so going forward.
I think the problem with Web Devs is that we are always comparing ourselves to someone better and further along in their careers, rather than with our peers at our own level. Also, I think since our industry moves so fast and there is always something new to learn that we feel we are falling behind and that adds to an already stressful project/career.
And as for "the code base doesn't look like what you were taught in uni...is this really it?", yes - yes this is really how it is. After I freelanced for a year (and was sure to follow 'best practices') I went on to work in-house for a multi-million $ e-comm company with a team of developers. After 5 years I spent the next 5 years at a branding agency on a team of 3 devs. At neither place did I ever see a 'style-guide', code tests, official processes or best practices, or docs. At the in-house position, we actually built the e-comm cart up from scratch and you'd be lucky to find a comment in the code, let alone official docs or style-guide.
In the real world, at most companys and on most projects (not all, I'm sure there are exceptions at much larger places), you don't have the time, nor does anyone else have the inclination to spend the time on creating documentation or style-guides for 99% or projects. It's just not the priority most times. University is good for THEORY, but for web dev it is usually grossly outdated and not representative of the real world in Web Dev.