DEV Community

Cover image for The best way to learn programming: JavaScript Edition
Matheus Costa
Matheus Costa

Posted on

The best way to learn programming: JavaScript Edition

Have you ever felt stuck in your studies? Let's talk about it

If you're reading this you've probably been in this situation, or maybe you're feeling like this right now. Be aware that this is pretty common among many developers, but luckily we have the solution right here.

The problem

You're probably a junior or just started programming, as you drown in information trying to figure things out completely on your own. You probably have done a few courses but can't see the progress yet, you feel stuck. It doesn't matter what you're studying at this point, you need to change the way you're doing it.

The solution

The answer is quite simple, and while unexperienced developers can't see it yet (maybe because this isn't common in other some areas), we can put you in the right way. There are two magic words: practice and community. You need to get out of course hell as fast as you can, you NEED to put things in practice, you NEED to create your own projects. By no means I'm telling you that courses are not good, they can help you a lot specially if you're a beginner, the real problem is doing only courses and nothing else, not applying what you've learned. If you only do courses you don't really get into real life problems and you don't discuss with other developers about it. The open-source community is the best thing we have in tech, so you need to start learning in public instead of just doing everything on your own.

But how can I do it?

There are plenty of project ideas you can copy for studies online, it doesn't matter if no one is going to use it, just start. You don't need to develop the next Facebook or a complex AI as your first projects, you can do almost anything you want to apply your knowledge. I'll leave some project ideas and some useful links at the end of this article. As for the community, there are plenty public and "almost-public" communities, such as twitter, discord, github, slack, forums, etc. You can always find someone willing to help in these communities. By posting your problem you generate a discussion over it and everything is going to be documented there, so if anyone has the same problem as you they can easily search it.

Project ideas

Now for the fun part, project ideas. I'll separate it for frontend and backend cause I really think you shouldn't go for fullstack until you've picked up at least the basics of one side.

Frontend

  • Copying layouts can really improve your css skils, there are many good layouts in this link.
  • For the HTML/JS part, you need to be fetching data and building interfaces (no matter how simple they are), there is a list of Public APIs in this link.
  • You can use Netlify, Vercel or Heroku to deploy your frontend for free (and even set up some CI/CD)
  • TypeScript playground if you're learning it.
  • Flexbox Froggy if you're learning flexbox.
  • Frontend Roadmap.

Backend

  • First you need to know how to build an in-memory CRUD application (Create, Read, Update and Delete methods), I suggest Express.js if you're starting.
  • Then you can use this same CRUD application but refactor it using a SQL or NoSQL database. You can use the SQL Playground or NoSQL Playground to practice. You can do it raw or with an ORM.
  • Then you can add users and authentication with JWT or OAuth. From here you can be adding new features to this application or create another one from scratch, you already know the way.
  • You can use Heroku or AWS (free tier) to deploy your backend for free. You can also set up CI/CD.
  • Backend Roadmap.

Conclusion

Everyone is able to learn programming, it doesn't matter if you had no contact with coding up to this point. If you dedicate yourself and participate in the communities, I'm sure you'll have fun and success.

Discussion (14)

Collapse
ganeshdhumal profile image
Ganesh Dhumal

I am also going through same problem, surely this will help me

Collapse
costamatheus97 profile image
Matheus Costa Author

Start learning in public and I'm sure it will help you

Collapse
ganeshdhumal profile image
Ganesh Dhumal

Yes sure

Collapse
skypy profile image
Kinjal

Well written!

Collapse
costamatheus97 profile image
Matheus Costa Author

Thank you!

Collapse
zaferozberk profile image
Bay_Z

Thanks. Gave a good clue how to walk on the road...

Collapse
costamatheus97 profile image
Matheus Costa Author

Thank you! I'll be posting more soon

Collapse
pengeszikra profile image
Peter Vivo

Flexbox Froggy is great, thx!

Collapse
costamatheus97 profile image
Matheus Costa Author

Yes it is! Fun and interactive

Collapse
charliepokerr profile image
Iheanacho Charlie .O

Exactly the advice I needed at this point.

Collapse
costamatheus97 profile image
Matheus Costa Author

I'm glad it helped you!

Collapse
_lehmoura profile image
lele

Até eu vou programar agora

Collapse
costamatheus97 profile image
Matheus Costa Author

nossa apoio demais ok

Collapse
dhdj profile image
Dj2pp

I am also do this