This seems to be the NodeJS mascot

JavaScript and how I’m doing it

How I transitioned from .NET to Node and what’s worked for me

In my previous post I ended with a few steps I took to start learning JavaScript (again).

I wanted to learn something new, I wanted to start focusing on JavaScript and it’s all I wanted to work in. 
I left my job as a full-stack .NET developer and bought a MacBook Pro. I started a new job using NodeJS, ES6, React and Redux.


Let me take a few steps back and explain why I did this

During a job interview, I was asked about React. At the time I had only read about it, but never used it. 
The team I was joining used React in a project and they were looking at using it across more of their projects down the line.

I landed the job and started learning React in my free time, I was eager to delve in to this new world of JavaScript. I had used Angular and Knockout before, but this felt great. 
It was a library which only did one thing and it did it well — it rendered views.

Jack of all trades, master of none — my dad

Unfortunately, I didn’t get to use React much at work. I was still working on ASP.NET MVC and our potential React projects were much further down the line.

I learned a tremendous amount of front-end skills at this position and I was loving it regardless of not being able to use React. 
I was working on more front-end heavy projects but still, I wanted to do more with JavaScript.

In my free time, I started using NodeJS for server-side code in personal projects — which was the logical thing to do given my obsession with all things JavaScript.
After using Node for more than just simple tutorials or some “Hello world” app, I realized it’s what I wanted to shift my career towards.
I started using ES6 and that just opened up a whole new can of worms. 
Given my .NET background, I was even more comfortable with JavaScript now that I had proper classes and arrow functions (Yes LINQ, I’m looking at you)


Fast forward to a few months ago

I resigned as a .NET developer and had taken up a position as front-end developer at a start-up where I’d be using NodeJS, ES6, React and Redux.

Shit, I was frightened and I knew I was going to be completely outside of my comfort zone.
I was ready for this challenge, I wanted to do it.

My first few days were horrible. 
I felt lost — it felt like I didn’t know what I was doing.

I missed Visual Studio.
Where was my intellisense and code hints?
Where was my debugger?

I was pointed in the direction of Atom, a simple text editor. I installed ESLint and learned to use the Google Chrome dev tools extensively for my client side code.
I felt at home, yet something, just didn’t feel right.

For a few weeks I’d be switching between Sublime Text and Atom to see which one worked better for me yet, I never thought of looking at what Microsoft had to offer.

For the first time I used VSCode properly and I lost my mind. 
It was faster than Atom, had a great interface, a Node debugger and some really great Git tools. 
Intellisense? Yeah, and it worked really well too.
I was so excited.


My preferred way of doing things

React
I really don’t see myself building views in any other way again.
Angular 2 is a great contender here, sure, but React just does it for me. It’s straight forward, the syntax is easy to learn and I’m happy to be on the bandwagon.

ES6 and Babel
Where would I be without these two?
ES6 has tremendously changed the way I write JavaScript and I don’t want to go back to writing plain JavaScript again. 
Yeah, I have to compile everything using Babel so it can run in Node or in the browser but it seems like a small trade-off to save hours of dev time. 
It’s definitely worth it.

NodeJS
Damn. If only I started working with this earlier. 
It’s a great runtime and I think most people often forget that it can be used for more than just server-side code. Almost anything you can do in .NET or Python for example, can be done in Node.

Grunt
Shots fired. I’m that guy. 
I prefer using Grunt over Gulp for possibly, the worst reason — it has the coolest mascot.
Honestly, I prefer setting up Grunt tasks. It’s not just the mascot.

VSCode
Node debugger.
Git integration.
Syntax highlighting and code completion.


I couldn’t be happier with my transition from .NET to Node. 
If you ever feel the need to try a new tech stack I would definitely recommend it. 
If it’s shit, it’s shit and try something else.
If you enjoy it and find yourself preferring it, well then, I’ll leave it to this guy.