I have looked at many node courses and they always go like this:
‘He, node and npm are great and you don’t really need to know all this node stuff because there’s this great package out there that does it all for you’.
I would love to know what node does underneath the hood of all these packages. I do want to use these packages but I also want to know what code they are actually replacing. That way the docs explaining these packages will make much more sense and the docs on nodejs.org may turn into information that I can process. I think I have to learn c++ to get a real grip on them.
I am frustrated out of my skull.
Another example: Except for CS50 there is not one single course out there that explains what an endpoint is. I had no clue what they were talking about until I learned it on CS50. Or a route, or the fact that a server is also software. Once you are explained, it’s all much easier to understand. I believe that node is not that hard if only somebody would really explain it from the bottom up instead of from the top down.
The best course out there is Anthony Alicea’s but even then I am left with so many questions and I stil can’t get head or tail of these docs.
Endpoints, routes, and servers are an entirely different topic from Node.js. And if you don’t know what those are, or either didn’t know before, it’s definitely recommended to learn those before getting into Node.js, as they’re very fundamental to understanding back-end development in any language and platform.
There are definitely some free resources on the Internet for learning this type of stuff:
Also, one of the major pros to NPM is that a lot of packages are open source. That means you can go look at the code for most packages on GitHub, which will take the mystery out of how they work.
I’d further say that most developers won’t need to know how an NPM package works under the hood. That’s not important, and inevitably you’ll be using tons of packages that you won’t know the inner workings about. The entire purpose of using packages is to simplify your developer life. No need to learn how any of them work under the hood. As long as you know how to use them, that’s all you need to know.
I would love to know what node does underneath the hood of all these packages.
Usually you just go to the package website (or github) and you can understand what it replaces by reading the documentation. The idea of a higher level language is to abstract as much as possible from the machine, so it’s safer and easier to program on it. On the other hand, there is no course that would teach you everything there is to build a system.
Most courses expect you to know certain things (usually those are shown on the requirements for the course or whom the audience should be).
That said, whenever you have a question you can come to the forum and ask .
You don’t need to know how nodejs compiles to C++ to be able to use it. If understanding how nodejs was made then yes you should probably learn some C++
Yes there are packages that people have created in order to simplify tasks that would be more tedious with pure node, but that isn’t to say you cant build those packages yourself. Not only that, you should be trying to build those packages yourself, ot even try to come up with new ones for your own personal use.
There might be a course to take you through the node API but I doubt it, just because that would be a long af course. Best thing to do i probably just bookmark the nodejs docs and tinker with the API on your own. And ffs dont try to memorize the whole docs page. Just take your time to see if any of the modules might be useful to what youre trying to do. There will probably be only a few that youll end up using regularly anyways and atleast half youll never even touch.
You can also go to the github pages of those modules that those courses might recommend and look through the files to see what they did.
Thank you very much for your answer and for all the links. I thought that ‘I knew all that’ because I once managed to connect to the api of a weather service but I guess you are right. I need to study this first and need to understand it well.
I feel a little embarrassed, couldn’t I have figured this out for myself, but it definitely beats the frustration.
You have put the finger right where it hurts. ‘building a system’. What do you need for that?
And another one is the term ‘audience’. How does one know one is ready if one doesn’t even know what one needs to know to be ready? It sound like I am a little yellow duck but really, there is so much to know, we are being bombarded with new frameworks and packages all the time and the implicit message ‘jump on this right now or you’ll be missing out on the good stuff’.
I followed FCC’s roadmap and assumed that would be enough. I don’t want to criticize FCC, I love FCC, but maybe a tiny roadmap of things to learn would come in handy. I’ve looked at roadmaps before but they are huge and quite intimidating. A bare bones roadmap of stuff you really have to know with links. Maybe a few roadmaps for different types of apps. Just a webpage, an app linked to a database…
I would like to make an app with a server that serves a page. Based on the user’s input, this page generates some dynamic content and I want to be able to save that content in an html-file for reuse. I think I can do this with css, js, html, web server and node. Are there still gaps ? I know it seems obvious to an experienced developer and I do feel embarrassed but there it is. I am not a stupid person so there must be others out there.
Thank you for the quick reply and greets,
‘tinker’ with it? Maybe I’m really dumb but there is a lot to tinker with. I can tinker with sql, flask, python, I am getting comfortable with MDN but node… Tinkering?
It’s a nightmare! I do need to understand more about web servers first and node js will become easier. But it will never be easy.
I have used api’s for several projects (the weather, goodreads…), is that what you mean, but it has not made node js any easier.
Thanks for the reply though. Maybe I simply have to start tinkering and ask questions when I get really stuck.
Write and solve algorithms. This is the base of everything else.
Object oriented programming. I’d dare to say that every programmer understands this methodology, but you can choose the next one instead (or both).
Architecture patterns. MVC, MVVC, REST and microservices (they can be combined) are the most common.
Learn one front end framework (React, Angular, Vue, etc.).
Learn one back end framework. Varies depending on the language (Node=Express/mongoose/passport, Java/Kotlin=Spring Framework, .NET)
Security. This is something that one should specialize, not be a generalist (one man army), IMO.
How does one know one is ready if one doesn’t even know what one needs to know to be ready?
If you build a software and it works, then you’re ready. Yes, there will be flaws, but then no software is perfect (there is this thing called the human factor, know it? ).
‘building a system’. What do you need for that?
It depends on the system you’re trying to build. The system may be an O.S., a Platform as a Service, Software as a Service, etc., and each require different skills. On the other hand, technology is constantly changing, but the only thing that won’t change (at least until quantum computing is more mature, but keep an eye out) is how to program a software. If you learn how to program, you can learn any language (some may take more time than others).
I understand and I feel the same. The problem is that you want to be a one man army, which is hard and requires a lot of knowledge, whereas if you had a team that knowledge would be shared (logically, no? ). I’m just like that , you just have to be good at learning and be patient. Choose whatever technology you enjoy and stick with it.
I would say that, just for what you want, FCC does an excellent job with the slogan Read-Search-Ask. This is because it forces you to search and learn what each concept means, which should lead you to more search and more understanding of the system you’re tasked to build. When you’re a one army man, you have to do research, a lot!
That’s all you need . I would add, though, to learn about security or find someone to help you find the holes. If your software is open source, you could have thousands of people auditing it .
By the way, you cannot feel embarrassed if you’re yellow duck .
Thanks for all this info. I’ve filled in pieces of the puzzle but there is still a lot to learn, architecture patterns and definitely security.
I am a one woman army and I know I should get out of the corner. It’s very difficult so I bottle stuff up and now and then a scream comes out. I’ve always tried to do everything on my own. I’m shy and bossy at the same time. It’s one of the reasons I started programming, it made me feel I could be like God and invent my own universe.
I’m never going to make money with software. I’m already 52 years old and I don’t earn wages any more but I do a lot of volunteer work helping out children and adolescents with their home work. (I’m a foreign languages teacher, English and German, my native language is Dutch). I’m building didactic software and when I feel ready I will certainly make it open source.
I hope I didn’t offend you when I wrote one man army, but if I did, I apologize .
I would say stop right there . Do not say never, because age is not the most important factor when dealing with software development. If you learn to solve problems through coding, you’re on the right track. I can understand that you think it’s difficult, but it’s possible.