List Of Skills Of Node JS Developer
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