this post was submitted on 21 Jun 2023
5 points (100.0% liked)

No Stupid Questions (Developer Edition)

923 readers
1 users here now

This is a place where you can ask any programming / topic related to the instance questions you want!

For a more general version of this concept check out [email protected]

Icon base by Lorc under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

Hello, I currently have just a little experience with asp.net and rest api's, but most of my development is windows desktop apps. I'd like to learn a javascript framework (angular, react, vue, or next.js are some I've looked at) and I was wondering if anyone knows of a good tutorial for using one.

all 10 comments
sorted by: hot top controversial new old
[–] BetterDev 4 points 1 year ago (1 children)

In my opinion, the absolute hands down best way to learn is just by making shit.

React is a big one right now, and the "getting started" tutorial is pretty good. Just walk though it, and adapt it into something you care about.

It doesn't really matter if nobody ever sees it, it's for you. Just roll up your sleeves and make it happen.

[–] rei 1 points 1 year ago (1 children)
[–] BetterDev 2 points 1 year ago

You've got this!

[–] spartanatreyu 4 points 1 year ago* (last edited 1 year ago) (1 children)

Honestly, I'd advise against learning a js framework (at least at first).

Everything that you can do with a framework, you can also do with vanilla js (that's code for plain js without any frameworks).

So why should you focus on the language first?

  1. If you're just starting out then the most basic things you're going to try to do will be easily achievable with plain js anyway. (The tricky part is the learning how)
  2. Frameworks change and even when they don't, different projects will use the same frameworks in different ways. But js works everywhere, always.
  3. Having a good grasp of js will help you understand how frameworks do what they do, and eventually why they do what they do. When you understand both the how and why, you'll know when to use a framework's escape hatches to add functionality that the framework doesn't support itself.
  4. Learning the language itself sets you up for future success, so you don't need to redo step 2 every 6-24 months.

My advice: use a code editor that has good support for js (e.g. vscode), do a bunch of js tutorials, and make yourself the following projects in order:

  1. A calculator app (makes sure you have a grasp of input, output, and events)
  2. A todo app (makes sure you have an understanding of arrays, for loops, objects and storage)
  3. A client using the Hacker News API (makes sure you understand json and fetch)

When you get stuck in any of these projects, that just means you've got more js to learn.

[–] rei 1 points 1 year ago

Gotcha, I will make those projects, thank you!

[–] fabian 3 points 1 year ago (1 children)

I'd suggest the MDN tutorials on Web Development: https://developer.mozilla.org/en-US/docs/Learn as a starting point. They also cover several frameworks (React, Ember, Svelte, Vue, Angular) - but I'd only recommend a framework after you have a good grasp on JS as a language. For deepening your JS knowledge I can very much recommend the "You don't know JS" books, they are free to read only: https://github.com/getify/You-Dont-Know-JS.

Also: pick one framework, not all of them. The safest bet is probably react, I personally work with Angular. Anyway, for the framework of your choice you probably want to walk through their official tutorials.

[–] rei 1 points 1 year ago (1 children)

Gotcha thank you, I know C++ and C# (C# is by far what I have the most experience in), how similar are those to JS? I know that JS is more functional where a function would have a class passed in rather than a class containing methods. What other differences should I expect?

[–] fabian 1 points 1 year ago

Javascript can be written both in a functional and an oo style, it doesn't prescribe one over the other. The way inheritance works (prototype based) might be a source of confusion, because even though there is a class based syntax since 2015, it still has a prototype chain under the hood. Also the binding of the this pointer can work in unexpected ways. And things like scope and hoisting of variables are a bit different. Also there is no overloading of methods. It pays off quickly to read about the basic mechanics of the language if you want to do something with it.

I'm working in a company where many developers have a strong Java background, the company adopted Typescript/Angular a few years ago for new projects and it got adopted by colleagues with long tenures quickly, the syntax similarities are so close that in my eyes it is more problematic when some expectations are translated over that just don't hold, than that the colleagues struggeling with language itself, more difficult might be that standard library does not translate over in the same way the language primitives do.