[DRAFT] Personal Learning Journey
· 4 min read
This post i will try to create my own learning journey to deepen the knowledge related with development
Learning Hierarchy (Dev-Ops)
1. Kernel Level
As an SRE, understanding the kernel is crucial for debugging performance issues and understanding system behavior. Key areas to focus on include:
- Process Management: Understanding how processes are created, scheduled, and managed by the kernel.
- Memory Management: How the kernel allocates and manages memory, including virtual memory.
- File Systems: How the kernel interacts with file systems.
- System Calls: The interface between user-space applications and the kernel.
2. OS & Network
For OS knowledge, SREs should have a solid understanding of:
- Operating System Concepts: Processes, threads, memory management, and file systems.
- System Administration: User management, package management, and basic troubleshooting.
- Security: User authentication, authorization, and common security vulnerabilities.
Regarding networking, familiarity with these terms is essential:
- TCP/IP: The foundation of internet communication.
- HTTP/HTTPS: Protocols for web communication.
- DNS: Domain Name System, for resolving domain names to IP addresses.
- Load Balancing: Distributing network traffic across multiple servers.
- Firewalls: Network security systems that control incoming and outgoing traffic.
- VPN: Virtual Private Network, for secure remote access.
3. CS Fundamentals
- Data Structures and Algorithms:
- Arrays, linked lists, stacks, queues, hash tables
- Trees (binary trees, search trees, heaps)
- Graphs (representation, traversal)
- Sorting algorithms (merge sort, quicksort, heapsort)
- Searching algorithms (binary search)
- Algorithm analysis (Big O notation)
- Operating Systems: Deep understanding of OS concepts like processes, threads, memory management, file systems, and system calls.
- Networking: Solid grasp of networking principles, protocols (TCP/IP, HTTP, DNS), and network architectures.
- Databases:
- Relational databases (SQL): data modeling, schema design, SQL queries, transactions, indexing
- NoSQL databases: key-value stores, document databases, column-family databases, graph databases
- Database administration: backup/restore, performance tuning
- Distributed Systems:
- Understanding the challenges of distributed systems: consistency, fault tolerance, latency
- Scalability patterns: sharding, replication, caching
- Message queues and distributed streaming platforms (Kafka, RabbitMQ)
4. System Admin
- Linux system administration: user management, package management, file system management, process monitoring
- Scripting: Bash, Python (for automation and tooling)
- Configuration management: Ansible, Chef, Puppet (for infrastructure as code)
- Automation: cron, systemd timers
- Cloud platforms: AWS, Azure, GCP (basic administration and services)
5. System Perfomance Checking
- Monitoring tools: Prometheus, Grafana, Datadog, New Relic
- Logging: ELK stack (Elasticsearch, Logstash, Kibana), Fluentd
- Tracing: Jaeger, Zipkin, OpenTelemetry
- Profiling: CPU profiling, memory profiling (using tools like perf, pprof)
- Load testing: JMeter, k6, Locust
Learning Hierarcy (ML/DA Learning)
Learning Material: https://www.deeplearning.ai/
1. Data Mining
- Data cleaning and preprocessing
- Feature extraction and selection
- Association rule mining
- Clustering algorithms
- Data visualization
2. Machine learning
- Supervised learning (regression, classification)
- Unsupervised learning (clustering, dimensionality reduction)
- Model evaluation and selection
- Regularization techniques
- Common algorithms (linear regression, logistic regression, decision trees, support vector machines, k-nearest neighbors)
3. Natural Language Processing
- Text preprocessing (tokenization, stemming, lemmatization)
- Feature extraction (TF-IDF, word embeddings)
- Text classification and sentiment analysis
- Language modeling
- Sequence-to-sequence models
4. Neural Network
- Basic neural network architecture
- Activation functions
- Loss functions and optimization algorithms
- Convolutional neural networks (CNNs)
- Recurrent neural networks (RNNs)
5. Large Language Model
- Transformer architecture
- Pre-training and fine-tuning techniques
- Prompt engineering
- Applications of LLMs (text generation, question answering, summarization)
6. Transformer (Deep Learning Architecture)
- Self-attention mechanism
- Encoder-decoder structure
- Multi-head attention
- Applications in NLP and other domains