IT Blog by Ilarion Halushka

Sharing thoughts and experience

List Of Skills Of Node JS Developer

2 mins
job
career
skills
development


Incomplete Existing Roadmap 🔗

    There is a great developer roadmap, but still I feel like many important things are missing from it.

Gain Language/Framework Independent Knowledge 🔗

    In my opinion, everyone should learn things that are language and framework independent. I saw developers which have limited knowledge of C.Sc. and focusing their knowledge toward 1 framework.

    Looking at the past of IT world, I noticed that languages change, frameworks change, but basic C.Sc., architecture approaches, networks, databases, paradigms, testing, design patterns stay the same. For example in front-end world 10 years ago no one could expect that instead of jquery everyone would move to Angular, React and Vue. It’s hard to tell what will happen in 10 years.

    It’s like learning Maths and then applying it to other sciences. Maths has not changed in centuries. Same in programming - learn language/framework independent things and then apply them to some state-of-the-art language and framework.

Basic C.Sc. Knowledge: 🔗

  • Data Structures
  • Algorithms
  • Security OWASP top 10
  • Git
  • Debugging
  • UML, block schemas
  • Bash
  • Unix systems
  • RegExp
  • Cryptography
  • Authentication techniques
  • Clean Code practices

Networking 🔗

  • HTTP/S
  • Web sockets
  • Long polling
  • TCP, UDP, Quic
  • DNS

Languages: 🔗

  • Javascript
  • Typescript

Databases: 🔗

  • SQL (PostgreSQL, Oracle, MySQL)
  • NoSQL (MongoDB, ElasticSearch, Dynamo)
  • ORM
  • Normalisation
  • Indexes
  • Transactions
  • Concurrency
  • Locks
  • Sharding
  • Replication
  • Migrations
  • Trigger functions
  • Soft/hard delete

Paradigms: 🔗

  • Object Oriented (OOP)
  • Functional (FP)
  • Structured (Procedural)
  • Reactive

Deployment: 🔗

  • Docker
  • AWS/GCP/Azure
  • Kubernetes
  • Terraform
  • Jenkins/Github actions/CircleCI

Building API: 🔗

  • REST
  • GraphQL
  • gRPC
  • Versioning

Microservices: 🔗

  • CQRS
  • Inter-service communication
  • Domain logic responsibility splitting
  • Error handling
  • Sync/Async communication
  • Logging

Testing: 🔗

  • Jest
  • Mocha
  • Assertion libs (chai, expect, assert)
  • Mocks/stubs libs (sinon, proxyquire)
  • Unit tests
  • Integration tests

Building scalable systems: 🔗

  • Load balancer
  • Lambda functions
  • Caching (Redis, in-memory LRU cache, multi-level caching)
  • Queue (SQS, RabbitMQ)
  • Stream (Kinesis, Kafka)
  • Pub/sub

Architecture: 🔗

  • Monolith
  • Microservices
  • Event-driven
  • Serverless
  • Layers
  • DDD

Patterns: 🔗

  • GoF
  • GRASP

Development Principles: 🔗

  • DRY
  • YAGNI
  • SOLID
  • KISS

Node.js specific knowledge 🔗

  • Node.js API
  • How Async works
  • Single Thread? (or not really)
  • Event loop, blocking tasks
  • What Node.js is good/bad for
  • Memory leaks
  • Worker threads
  • Events

Frameworks: 🔗

  • Express
  • Nest.js
  • Koa