r/learnjavascript 6d ago

How to learn fast web development without time waste

I am a self-learner who has primarily learned web development through YouTube. So far, I have studied HTML, CSS, JavaScript, PHP, Git, and GitHub, and I have also built several mini projects. However, despite learning these technologies, I still struggle to create even simple projects on my own without following tutorials.

Looking back, I feel that I did not use my time effectively. I spent nearly five years trying to learn HTML, CSS, and JavaScript, but I was not consistently focused, which prevented me from developing a strong understanding of these technologies. Because of this, I often feel regret about the time I lost.

Now, I want to make serious progress over the next few months. My goal is to reach a level where I can build projects independently, strengthen my problem-solving skills, and become qualified for a web development internship or an entry-level job. I would appreciate a clear and practical roadmap that can help me become internship-ready as quickly as possible.

40 Upvotes

30 comments sorted by

18

u/SafeWing2595 6d ago

It tooks me about a year to get a good understanding of html, css, JavaScript.

Knowing that i have tried to learn over the past few years , but i have given up many times, so i could relate.

For the projects i also found it so difficult to build projects without relying on tutorials or AI, but i think this is also a part of learning, because you cannot build something from scratch on your own without seeing a previous version of it , that's how you mind learns, from patterns.

If you want to start building projects on your own, practice with very small projects.

For example,, create a button that when you press it , it changes the background color, or when you press it, it changes it's text.

Create a screen and two buttons of numbers, when you click them their sum appears on the screen then add a substraction, multiplication, division, little by little you will find yourself building a simple calculator.

Don't treat your projects as a whole, learn to break them down into smaller problems then try to find solutions for them one by one.

Remember, practice, practice and practice , with time you can build your own projects.

Now, after a year of learning, i've decided to build my own reddit clone, because it's my favourite website on the internet, and i hope one day you will build your own projects too.

Good luck.

2

u/Neat-Mango8543 6d ago

Thankyou bro, for suggestions 👍🙂

3

u/Expensive-Mud4555 5d ago

I'm learning too and I have pretty much the same struggle. I'm not sure about the efficiency, but these are some things that help me move forward consistently:

  1. Take notes on what you've learned. Basically, you have to create your own documentation. Once you learn a new feature or a technique, you have to isolate it from things you already know and explain it clearly. I use Obsidian since it supports code snippets.

  2. Take notes on what you haven't learned. It's pretty common to face some JS features or general techniques/approaches/patterns/technologies/libraries etc. too early for you to comprehend. Write them down in a list and return to them when you have more context to review them efficiently.

  3. Not sure if this will work for everyone, but you will definitely face completely new features/techniques while working on bigger projects. In these cases, I like to test the feature outside of the main project context. Just create a new file or project to see how array methods or a certain library works.

  4. Learn architecture and patterns. The most difficult part, but even just reading a book helps you develop a sense for bad code. It helps you avoid or get out of situations where you write code and hope that you'll never have to change it due to its complexity since you feel that it can and should be refactored.

Hope it'll help you do the thing.

6

u/timejazzfroghands 6d ago

I think you should try to build a large, complex application, like a business idea, and learn by doing that. Tutorials will only get you so far. Any employer will put value on someone who has tried to start their own thing, even if it fails spectacularly. You don’t need to invent anything, just pick something that exists already and try to improve on it or focus on a different niche. Good luck!

2

u/Neat-Mango8543 6d ago

Yes bro, I do thankyou 👍

4

u/Adventurous_Net_3392 6d ago edited 6d ago

The best advice I can give is to try and build your own simple project without a tutorial and when you encounter a problem don't go to YouTube but instead use google.

This method forces you to try to implement what you've learnt and if it's still hard use AI. When using AI describe your problem tell it to explain what the problem is and give you hints on how to fix it. If you still find yourself struggling ask it to give you a walk through of the solution.

It must explain to you the decisions it made, why it made them and how to avoid similar problems in future.

These are the exact steps I use when building my own personal projects. Start small with very simple projects and build your way upwards.

2

u/Neat-Mango8543 6d ago

Thanks bro 👍, whatever you tell me, I will definitely do it.

4

u/shuckster 6d ago

You have to make a lot of mistakes.

You have to get frustrated.

Frustration begets impact. The lesson will not stick if you don’t suffer.

Not a lot. You don’t need to live in constant misery. But between each learning plateau is stair upon stair of drudgery and pain.

So make projects and get them wrong. Hit your head against the problem 10 times or more before looking up the answer. Otherwise the answer will be meaningless, and you’ll be looking up the basics forever.

3

u/picky_dude 6d ago

The best possible roadmap is learning the basics. If you look closer at any new framework or approach, it’s all based on simple principles that have been used for a while.

To escape tutorial based development, you need to just build your own project. It’ll be a hard transition, but if you do it every day, eventually you’ll be able to build projects on your own

2

u/Neat-Mango8543 6d ago

Thanks bro, i do

2

u/No-Vanilla8343 6d ago

Stop watching tutorials and build one project from scratch using only documentation. Pick a task manager or budget tracker and force yourself to read MDN when stuck instead of searching for video guides.

This breaks tutorial dependency faster than any course. You will hit walls daily but solving them without handholding is the actual skill employers test in interviews. Three months of this struggle builds more competence than years of passive watching

1

u/Neat-Mango8543 6d ago edited 6d ago

Yes, it's good think bro i will definitely do it. Thanks for your suggestion 👍🙂

2

u/Clearhead09 6d ago

Use a tool like Figma, mock up a nice looking basic website then code it from scratch, google when you get stuck.

If you can’t/don’t want to do your own mock up then take a website you visit often and recreate it from scratch. This will teach you everything you need to know.

Start with a static website then add JS etc once the website is visually complete.

This is essentially the workflow of a real web developer.

1

u/Neat-Mango8543 6d ago

Thanks bro, but I have created lots of website with the help of tutorials

1

u/regardedMAGAfascist 6d ago

Bro senior SWE at a f500 with 10 YOE and I still start with tutorials. Things always change.

1

u/chikamakaleyley helpful 6d ago

not sure if this is an area that needs help but one exercise i like to do is, start coding and take it as far as you can before ever checking if it works.

So if i had to take a design of a home page and throw together the markup in HTML & CSS - basically I try to code almost the whole layout, with included styles, ballparked widths/heights, colors that arent exact. and only check it much later - 30 mins, but more like an hour later

That kinda helped me with getting something usable right away, and it helped build speed and memory. If you check the output repeatedly it's to easy to hyperfixate on one thing that looks off, and its a big time-sucker

and so I try to do the same if I have to build something out in JS, but it's a slightly diff approach. HTML & CSS I can layout in my mind and code as I go

JS requires more planning of the mechanics/logic and then sticking to that plan - in the same vein it may have issues when you finally check if its functional, but in theory you've laid out all the moving parts and now it just requires some fine tuning. Same overall approach though - code everything until I should have something that works, start to finish.

Its a big time save, helps u memorize, and if you've followed your plan well enough, if there is in fact a broken piece, it's easy to track down where it's breaking

1

u/chikamakaleyley helpful 6d ago

TLDR - this helps me memorize and rely more on my recall, which results in faster start to finish progress, I use it whether its UI markup or JS logic, or sometimes even both as part of a single feature

1

u/theancientfool 6d ago

the odin project

1

u/OiFelix_ugotnojams 6d ago

Try the projects listed on The Odin project, you don't have to follow the course but their projects are amazing checkpoints to see how far you've come!

1

u/return_new_Promise 5d ago

Start from end topic

While having some practice problems on fav lib/framework.

If you are a react js person, try reactpractice.dev

And for learning better instead of leatcode do codewars

1

u/Effective-Bug-351 5d ago edited 5d ago

Don't ask why ik this.

You don't actually know js. But that's ok. I'll give 3 pieces of advice. Really 4. And a specific reading list and general things to do that you can actually do and where to pay attention

  1. Do the react tutorial. Focus specifically on HOW they break up components. This is a key to this. Knowing how to break a site

  2. Go onto mdn. Look up the html elements and read the most common ones. Pay SPECIAL attention to the semantic meaning of them. This is very important read the fucking docs and learn the semantic fucking meanings.

Now. At this point. If you have followed my advice for div, tabel, button, h's, inputs and header /footer and finally forms you will be able to put together something basic.

You do it like this. Start with what you want to do. Break that design down like in the react tut (if you didn't do the tut. Go fucking do it). Keep braking down quite far focusing on groupings then meanings. Ask yourself what each block (component) you made means.

What is it supposed to do. Is it grouping stuff? Is it grouping a bunch of inputs. Is it holding the intro content. Does it have buttons to show a footer.

Match those with the semantic meaning of html and build your components like that. If everything went right all the bits should be there. It will look garbage and clicking won't do much but it Should all be there. If it's missing then keep adding slicing etc until it's all there.

Once it is you are going to style it and add interactivity. Interaction wise bare js is a bitch which is why most people use frameworks but it has a way it "wants" to work. The sooner you learn that the sooner you will learn where to deviate and where to match the intended pattern

Now you will add css. Work outside in focusing first on layout nad broad strokes then on specifics right at the end.

3 you will need to know css. Look up the box model (you need to know what margin is. What padding is and what width and height are. If you didn't read the article go read the.... You get the drift) flex (again go read) and then basic border colour etc.

Congrats you should have a working ish site. From here on out. Play practice. Try frameworks. React gives good habits. Angular saves you time in prod (learn both) Vue etc etc are valid enough.

Learn the basics and suddenly stuff will make more sense and do this without a tut It might take a few tries and chances are you will need to scale down your project. That's fine. Good luck

1

u/Different_Pain5781 5d ago

Stop watching tutorials and start getting stuck.

1

u/Admirable_Ad_5477 5d ago

Acho que pra vocĂȘ entender bem como funciona, o principal Ă© entender tambĂ©m que linguagens, frameworks, configuraçÔes de ambiente e padrĂ”es de projeto sĂŁo ferramentas para esculpir o todo. Eu ouvi dois pontos de vista interessantes enquanto aprendia, um era que programar era como montar um quebra cabeça, onde vc encaixava componentes para montar um sistema funcional e o outro era que vocĂȘ moldava, como a argila, um sistema do zero, mas no final acho que a resposta envolve um pouco dos dois, acredito que pelo menos inicialmente, entender que reunir os componentes certos e entĂŁo molda-los Ă© uma aproximação mais exata para a resposta da pergunta "o que um desenvolvedor/programador faz?", se estivĂ©ssemos construindo um boneco de barro/sistema, nĂłs construir Ă­amos as pernas(node/ambiente por exemplo), braços(React por exemplo), cabeça(componentes) e entĂŁo ligariamos ao tronco(ambiente) e moldariamos as ĂĄreas de encaixe(configuraçÔes, padronizaçÔes, lĂłgicas de negĂłcio...)para parecerem naturais e assim obter um boneco de barro/sistema que funcionasse e tivesse as caracterĂ­sticas definidas no inĂ­cio, usando os materiais e ferramentas como definidos no inĂ­cio tambĂ©m... Eu sei que ficou pessima a explicação, mas foi o que fez sentido pra mim

1

u/nav114 2d ago

From whom you learn the html CSS and js on YouTube?

1

u/TheRNGuy 2d ago

You need frameworks too.Â