Skip to content

Welcome to my computer science adventures

Introduction

Welcome to the home of all things related to software engineering, mathematics and data science! This page is designed for both students and my fellow enthusiasts who want to dive deep into some areas of computer science and software eng. 👀

Whether you're just getting started or looking to advance your skills, hope you'll find valuable resources here 🤗

This website also serves as my personal development log, where I keep track of the various things I work on. As developers, we tackle a multitude of projects and experiments, and sometimes it’s easy to forget the details of what we’ve done... 😴

By documenting my process, I hope it not only helps me stay organized but also offers you some insights and learning material.

Note

If you have any questions, spot bugs, or just want to share feedback, feel free to reach out — Always happy to help and collaborate ⚡️

Overview

In this adventure we will talk about a variety of techs topics. Explore Maths, Python, Linux, algorithms, databases, data science, and more.

  • 🐍 Python Programming : Dive into Python programming, starting with the basics and tackle practical examples through notebooks designed for hands-on practice.
  • 🤖 Algorithmic Thinking : Enhance your problem-solving skills with algorithmic concepts.
  • 🐧 Linux : Master Linux from the ground up like a real trouper. Learn about the command line, shells, then progress to advanced topics.
  • ∰ Mathematics : Explore essential mathematical concepts for computer science (essentially the scientific preparatory undergraduate program)
  • 📊 Data Analysis Tools in Python : Understand the basics of data analysis and utilize basic python libraries for data manipulation and analysis.
  • ♾️ Web Scraping : Learn the art of web scraping, starting with foundational techniques and progressing to advanced tools like Selenium and Scrapy.
  • 🖥️ Relational Database Management : Gain expertise in managing databases with relational (SQL) systems. Learn to design, query, and optimize databases, with Python integration and projects for building complete database solutions.
  • 💽 Non Relational Database Management : Dive into NoSQL databases systems. Learn to design, query, and optimize NoSQL databases, with Python integration and various projects in the ELK section
  • 👨‍🔬 Machine and Deep Learning : Explore machine learning algorithms and dive deeper into them.
  • 👾 Natural Language Processing (NLP) : Learn about NLP core concepts and explore practical examples, including advanced Gen AI local tools like LangChain and Ollama.
  • 🔊 Audio Processing : Understand the fundamentals of audio processing, including spectrogram analysis, time-frequency transformations, fourier transform, and advanced topics like zero crossing rate and RMS energy.
  • ☁ Serverless Computing : Learn about cloud serverless architectures and deployment strategies, to build scalable and efficient applications.
  • 👁️ Computer Vision : Explore the exciting world of computer vision with OpenCV and python.
  • 😈 Networking Basics : Get started with networking fundamentals with Python. Here you will find some practical examples of sockets, HTTP, client/server communication, and malicious network packet manipulation.
  • 🥷 CI/CD : Discover how to streamline development workflows with CI/CD tools like GitHub CI and Jenkins. Learn how to create ninja efficient pipelines for full-stack development.
  • 🐳 Docker for App Deployment : Learn to use Docker from scratch for deploying applications like a shinobi.
  • 🦾 MLOps : Acquire skill in expertise in MLOps by exploring tools like Conda and virtual environments, deploying machine learning models, and using advanced techniques like Deep Learning as a Service (DLaaS).

Stay focus

Absolutely! Here are some veteran programmer guidelines to help you navigate not just coding but the balance of being a developer and enjoying life along the way:

1. Progress Over Perfection

No matter how experienced you are, coding is about iteration. It's easy to feel stuck when things aren't perfect, but focus on making steady progress instead of aiming for flawless results on the first try. Refactor your code later; get it working first!

2. Break Big Problems into Small Steps

When you're dealing with a complex issue, break it down into smaller, manageable pieces. Debugging or building a feature bit by bit allows you to see progress, reduces frustration, and helps you keep moving forward.

3. Take Breaks. Seriously.

It’s counterintuitive, but stepping away from the keyboard can do wonders. Go for a walk, grab a coffee, or just take a few deep breaths. Often, the solution to a tricky bug or design issue comes when you’re not actively thinking about it. Don't force yourself to grind endlessly — it's not sustainable.

4. Keep a Problem Journal

Write down the issues you face and how you solved them. Not only will this help you avoid forgetting solutions, but you'll also start to notice patterns in your problem-solving process. It’s a great way to measure how far you’ve come.

5. Imposter Syndrome Happens to Everyone

You’ll often feel like you’re not improving, especially when comparing yourself to others or seeing more complex code. But keep in mind that coding is a continuous journey. If you're learning or fixing even one thing a day, you’re improving. Be kind to yourself. You’re doing better than you think.

6. Find a Healthy Work-Life Balance

Burnout is real. It’s tempting to sit at the computer for hours on end, but you’ll be more productive and creative if you take care of your body and mind. Have hobbies outside of programming, and make sure you set boundaries between work and personal time. This will keep your passion for coding alive.

7. Don’t Hesitate to Ask for Help

There’s no shame in reaching out to others when you're stuck. Whether it’s a colleague, a community forum, or documentation, someone else has probably faced the same issue. Collaborative learning accelerates growth.

8. Version Control & Backups Are Your Friends

This may seem obvious, but always use version control (Git) and keep backups. It saves you from unnecessary headaches when things go wrong. You'll thank yourself later when you can easily roll back changes.

9. Keep Your Workspace Clean

I know it's not an easy one... 😅 Whether it’s your physical desk or your development environment, a clean and organized space fosters clarity and reduces stress. If your code or tools are cluttered, take a moment to tidy them up. It helps you think more clearly.

10. Celebrate Small Wins

Solved a tricky bug? Finished a module? Even the smallest successes deserve a moment of celebration. This will keep you motivated and help you appreciate your growth over time.

Note

Enjoy the journey and trust the process. Coding is a lifelong craft. It's okay not to know everything, to feel stuck, or to take a break. Stay consistent, keep learning, and keep a sense of balance in your life, and you’ll keep moving forward.

If you want to be better keep it real

As you go through the courses, remember that the best way to learn is by doing. Don’t just copy-paste code examples. Instead, write as much of the code as you can by hand, experiment with it, and break things 👨‍🍳

This is how you’ll truly understand how everything works. Embrace the problem-solving aspect of coding, and don’t be afraid to make mistakes — it’s all part of the learning journey.

Let's get started 🤗 !