DEV Community

Lina Jelinčić for Bornfight

Posted on

How I switched from PHP to Node.js

I've been a PHP developer for a couple of years now and I love PHP. However, I believe that learning other programming languages can only make you a better developer. That is why I decided to tackle the fun new world of Node.js. (note: maybe not so new, but bear with me, I am a PHP developer after all)

After my first 'node.js for beginners courses' google search, I realized I'm missing some basics and that there is a lot that I'll have to tackle. There are millions of tutorials out there and it all can be a bit overwhelming when you're starting to learn something new.

I wanted this to be as simple as possible so I picked my favorite for each 'category'.

JavaScript

Node.js is a JavaScript runtime. If you don't know what runtime is at the moment, just ignore it for a while.

Node.js is JavaScript [insert something]. That means you'll have to learn JavaScript.

Learn JavaScript

This was a documentation that proved as the most useful to me. It covers the basics as well as some advanced concepts. I had a hard time switching to async and in my opinion this documentation explains it so that you can sufficiently understand how JavaScript utilizes asynchronous programming.

TypeScript

Use TypeScript. I won't even explain why, just use it. TypeScript is JavaScript with some added functionalities (like, you've guessed it, types).

Learn TypeScript

Official docs are concise and they should give you an idea what are the differences between using TypeScript to JavaScript. But like I said, it's actually JavaScript so while learning JavaScript you're also learning TypeScript.

Node.js

And finally, we are here :) Now you'll learn what is a runtime or V8 and what Node.js actually is.

Learn Node.js

These are official docs and they are great. While you can find a lot of free or paid courses on the internet I really think these docs should be more than enough to understand what can be done with Node.js.

Extra

Learn a Node.js framework! I've had the opportunity to work with Nest.js and I really liked it. Lots of people use Express.js so that is another possibility.

Learn Nest.js

Nest.js also has great official docs.

Keep in mind

While writing this article I realized most of my favorites are official docs. Maybe that is something we all should remember: taking courses is great, there are a bunch of helpful resources and people out there and we should take advantage of it. However, when learning something completely new, stick to the basics and RTFM.

If you are wondering what to do next, do something that excites you with your new set of skills! If you can't come up with an idea for a personal project, google 'project ideas for backend'. Find something that sounds interesting and happy coding :)

Discussion (6)

Collapse
stedev profile image
Ste Wright

I did the same as you. Long time PHP developer, working mainly in Symfony based projects, had the opportunity to take the leap to NodeJS using Typescript.

Started out on an Express.js app and moved to working mainly with NestJS (worth noting that NestJS by default uses express.js for routing components under the hood). Not looked back.

Collapse
linajelincic profile image
Lina Jelinčić Author

I hope I'll have the same experience. So far, I like it very much.

Collapse
naskovic profile image
naskovic

I am also PHP developer for a long time and in the last couple of months started to learn mern stack so I can do some side projects and it's fun, I am not planning to live PHP but as you said "learning other programming languages can only make you a better developer"

Collapse
linajelincic profile image
Lina Jelinčić Author

I guess you can never know too much :D

Collapse
rondinelecastro profile image
RondineleCastro • Edited on

Obrigado pelas indicações, vou seguir esse caminho para aprender Node.js.

Collapse
linajelincic profile image
Lina Jelinčić Author

Glad to hear that!