HACKER Q&A
📣 shivajikobardan

Why did I fail to learn web development?


I spent around 3 months of full dedication to learn this skill(I've 4 years computer engineering degree that taught CS as well) as it's very lucrative job with very high celiling of pay in my region. But it wasn't just for me. People might say "just 3 months", "spend another 1 year". If I was improving time by time, maybe...maybe..But I wasn't improving at all. AT ALL once it came to react.(I learnt html,css,js earlier than that).

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?


  👤 lowlander Accepted Answer ✓
One thing I noticed you didn't talk about was what you tried to build? Did your learning have a purpose and goal of actually creating something - in other words, were you trying to actually build an app or tool or thing that you wanted to exist? Maybe you were missing an specific reason or purpose for your brain to put the pieces together beyond just "learning".

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.


👤 JimtheCoder
"I had access to all the world's best teachers(udemy, youtube, blogs)"

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...


👤 logicalmonster
Modern front-end development is extremely complicated. You need to figure out a pile of tooling, frameworks and libraries, and boilerplate stuff that's constantly in flux before you even get to the point of seeing "Hello World" on the screen and figuring out where you can add some CSS to change the color and font and move it around the screen. Even a simple project might have 50 different files you need to edit. Even figuring out where to get started is hard.

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.


👤 smoldesu
Learning complex stuff takes time. Peter Norvig has an excellent blog post about this, I'd recommend reading it before throwing in the towel: https://www.norvig.com/21-days.html

👤 PaulHoule
Personally I think hooks in React are toxic.

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.


👤 belmont_sup
Like many others are hinting, you’re trying to learn the entire ecosystem of web dev, which is vast, in a haphazard way. A lot of tutorials and guides out there are terrible. They fail to teach the basics of web dev before teaching the abstractions. It takes learning both, just as learning geometry out of context is boring and inapplicable but learning how light waves work without understanding the math to talk about is probably difficult.

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.


👤 pawelduda
I would suggest focusing on building something using the simplest tooling possible: HTML, vanilla JS, CSS. It's fine to use modern features that are supported by browsers (modern ES, CSS flexbox, grid, etc.). No JS libraries such as React - they may be too much in the beginning and you probably do not have practical understanding why they came to be so you'll only have an extra layer of abstraction that will feel odd.

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.


👤 8lall0
3 months for web-dev is a very short period of time.

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.


👤 he11ow
What I realised in my journey to pick up web development was, the long way is the short way. YouTube, blogs, forums etc. look like they might make things easier. They don't. The only thing that I found has made a difference is to fully surrender to the process.

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.


👤 jneumann004
You didn't fail, you just jumped head first into the deep end. React is a great framework, but you need to learn the basics first.

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.


👤 qup
React sucks and is not equivalent to "web development."

Build something, serve HTML and CSS. That's web development too, it turns out. Build an app that is suited to the format.


👤 laurieg
Did you really fail? I bet you can make an HTML web page with some images, text and links on it. Would it be the best looking, most useful site ever? Of course not. Would it be useful to someone? Absolutely.

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.


👤 kbrannigan
You have to build a mental model of how the web works. Start with JQUERY , build a todo list, learn to make http requests with a plain HTML form.

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


👤 imtringued
CSS is a monstrosity. If it doesn't make sense to you that is completely normal.

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.


👤 readonthegoapp
React super complex

Starting with ruby rails and similar much easier

In case you decide to try again


👤 8lall0
Addendum: no spam no adv, i suggest the web dev, css and js online courses from Jonas Schmedtmann, i learned from his courses and he's absolutely a nice teacher.

👤 johlits
Same here. I found React way too complex for something that should be simple. I blame Javascript..

👤 gardenhedge
Sounds like you just want to rush it.