I had access to all the world's best teachers(udemy, youtube, blogs), I even have access to various QNA and forum sites that many learners don't even know of. Still...Nothing could help me because it was just not for me, just not for me...
What did I lack? I really don't know, I want to know it bad. When I see react and they start changing stuffs in 5 different files while using useEffect or useState hooks, I literally don't understand wth are they even doing. Like what are they changing.
By now, I'm sure I can never carve a decent looking site using css(which is very important, no matter how much people in comments might lie to me to make me feel good). I tried to find courses for it, but I failed to find any. I'm sure it's not lack of courses, but lack of my own IQ to use CSS.
I really want to know why did I fail to learn web development?
I am self taught and would have given up in short order but for the fact that I really wanted to build something specific (a web app that did something with text messages), I thought would be useful and therefore had reason to keep going even when I understood almost none of what I was doing. I used Michael Hartl's Ruby on Rails Tutorial and literally just copy/pasted his code until it worked without understanding any of it. It took me a very long time (many months if not years) to really understand the pieces and how they all fit together and then be able to apply that knowledge.
I've seen people with no experience do a month or two bootcamp and come away with a way better grasp than I would have, but they lack the real-world experience of applying that knowledge.
Based on my experience learning full stack development, those are some of the worst teachers.
I started making real progress when I stopped using those, including Stack Overflow, and just got some of those big, old fashioned books. You know, the ones that cost like $80 on Amazon?
Finding one comprehensive resource on a subject from a subject matter expert, going through it in its entirety and mastering that material, and then moving to the next subject area using the same approach.
Youtube videos in particular are very frustrating for me - once you actually learn the topic with a bit of depth, you can go back and see that a lot of the "leet coders" making the videos actually have a very shallow knowledge of what they are teaching. The semi blind leading the blind...
You know what might make more sense? Focus on Web 1.0 stuff. What tech was more common say around 2005-2010? Look into working with HTML/CSS/jQuery without any build tools. Create a folder with an index.html file, and put your CSS and JS in there with no other tooling. Figure out how to manipulate HTML/CSS/JS in there and being able to build a basic webpage there before looking into more exotic setups. Some elitists might scoff at this kind of setup, but the more important thing is to learn how to code. Eventually you'll run into issues trying to maintain that kind of simple setup and that's where you can start to look into CSS libraries and build tools and more.
The peanut gallery squees when they see them because they think they are "functional" because there is no "." involved, but it is side effect city, it even matters what order these functions get called.
What I also recommend to others now is to skip the complexity of the front end ecosystem, and learn how the web operates from a server side point of view.
If you truly want to stick with react, I’d suggest using https://remix.run. They offer a react experience but forces you into a typical server-first mental model.
Or just learn Node and how to do things the node only way. Basic html forms. Cookies. Security involving forms. Database access. Rendering html with templates. These are basics that get so abstracted over by the modern web dev frameworks that it’s not surprised you’re distracted by something like react hooks.
Pick a simple project such as a TODO list. Or even better, if you have an idea of your own, go with that.
Just focus on practical part instead of theory. If you have to watch courses, drive the topics by what you need at the time, if you can identify such areas. But it will pay off more learning to search the Internet for answers. Video courses aren't searchable and have lower signal to noise ratio.
Courses are supposed to grab your attention but if you don't pair them with practicing, they're pretty useless - and you miss out on the (IMO) the most fun part which is building whatever you want - you're burning out instead of enjoying that.
Web Dev takes a lot of exercise and expertise, plus CSS and JS are beasts that are completely different from more "classical" languages (like PHP).
Take your time, start from the basics (HTML, CSS and modern JS) and THEN try to use React. The world is full of React devs that don't know JS, you can be different and more proficient.
I bought a webcamp course on Udemy. And I sat through each and every class. And I did each and every exercise. I took notes. I aimed wherever possible to try things first before seeing a solution, even if it was during class and not officially an "exercise". The course was a bit old, so some things didn't work. When something didn't work, I sifted through the Q&A to look for a solution, because that in itself is a skill you have to use as a developer. I'd wake up early in the morning to cram a couple of hours before the day began. Some weeks, I was able to devote more time. Some weeks, I took a break. All told, it had taken me about six months.
By the end of which, I still didn't have enough knowledge to build a full webapp. So I bought an intermediary Udemy course covering the MERN stack. I was just as diligent with it. And by the middle of it, I could confidently build a demo version of the app I wanted to build. It looked ugly.
My intent was to improve my HTML and CSS skills, so you can guess what I did next. Yes, bought another Udemy course. I ended up not doing it, because it was better value-for-money to get a professional developer to rebuild it, but now I had my knowledge, my demo and I could manage this effort.
My point is, it took several months of humbling work just to get to the point where I say - gee, if I want to improve I need to do all this other humbling work. I deliberately say humbling and not hard because, frankly, the coding wasn't hard. The hard part was decisively letting go of the ego and accepting the no-shortcuts, heads-down, do-the-work way was the only way through.
If you want to learn react, I would start with the tutorials on the react site. This will help you wrap your mind around what is happening when things get more complex.
Build something, serve HTML and CSS. That's web development too, it turns out. Build an app that is suited to the format.
Most concepts in programming took me years to pick up. Many things are not easy, even with good teachers and lots of effort. Maybe now you can see why it's a lucrative job.
I would suggest a micro back-end framework, FLASK, then add interactivity with JQUERY. Then you'll learn the fundamentals. React will go aways something will replace it, but the DOM will stay for a little longer.
Once you got the fundamentals down, you'll
Remember, flexbox etc have been drafted on top of CSS after a decade even though vboxes and hboxes are essential in almost any other GUI toolkit.
Starting with ruby rails and similar much easier
In case you decide to try again