January Reflection 2025
Monthly Reflection
Time is passing quickly, and we have already reached the end of January, meaning the first month of 2025 is over. The new semester has begun, and I am excited to learn a couple of cool and interesting subjects
In OOP3, I’ll focus on data structures and algorithms, learning to design and implement tools like Stacks, Queues, Trees, and Hash Tables for efficient data management. The course covers key algorithms for searching, sorting, and traversing data, along with complexity analysis using Big-O notation, helping me solve real-world problems effectively.
The mobile app development course will teach me to build cross-platform apps with React Native and TypeScript, covering UI design, state management, and API integration. I’m excited to gain hands-on experience and develop practical skills for modern app development.
Additionally, the emerging trends in software development class explores how businesses choose technologies in a fast-evolving industry. It will help me understand balancing innovation with practicality, and I’m eager to learn how these trends shape the future of software.
Overall, I am looking forward to gaining new knowledge and skills in these areas!
Microsoft Azure
I discovered that Azure has a Quickstart Center, which includes a “Get Started” section. This section teaches the basics of navigating and managing your Azure account. It also provides step-by-step guidance to help you deploy cloud services like Azure Virtual Machines, SQL Databases, and App Services. This resource is extremely helpful for beginners to learn quickly and start using Azure effectively.
I wish I had known about this sooner instead of exploring aimlessly without clear direction. It would have saved me a lot of time and effort!
AAA Pattern for Testing
I recently learned about the AAA pattern for testing. At first, I saw someone on YouTube using this method, and I was curious about its purpose. Later, I came across an article explaining that AAA stands for Arrange-Act-Assert, which is a structured approach to organizing tests. It’s a simple yet effective way to write clear and maintainable tests.
The AAA pattern breaks testing into three clear steps:
- Arrange: Set up the necessary test data, dependencies, and environment for the system being tested.
- Act: Execute the system under test, such as calling a function, making a REST API call, or interacting with a module.
- Assert: Verify that the system behaves as expected by checking return values, final states, interactions with dependencies, or expected errors.
This approach makes tests easier to understand and ensures they are well-organized. I found it very helpful for writing better test cases!
You can read more on Clean Code - 5 Tips on Writing Clean Tests
CI/CD Pipelines
I’ve been exploring CI/CD pipelines, a tool widely used in the industry to streamline workflows—from testing and building to deploying new UIs, features, or improvements. CI/CD stands for Continuous Integration and Continuous Deployment/Delivery. It automates the process of integrating code changes, running tests, and deploying applications, ensuring faster and more reliable software delivery. This approach helps teams catch issues early, reduce manual errors, and deliver updates to users efficiently.
I also thought about using a CI/CD pipeline to automate article extraction for the article extractor app I built earlier. This would allow the app to run in three ways:
- Locally using
python3 main.py
, - Through a Docker container, which is handy for running it on a Raspberry Pi or home server, and
- Through GitHub Actions, automating the process in the cloud. This makes the app more flexible and easier to manage across different environments.
While this isn’t a traditional industry-style pipeline, I think it’s a great way to automate tasks without relying on local machines. Since I don’t always keep my Raspberry Pi running (due to cooling issues), using GitHub Actions ensures the app runs consistently without depending on local hardware.
Additionally, I used GitHub Actions to automate my blog publishing process. Now, I only need to review and merge pull requests (PRs), skipping the manual steps of checking post dates and creating PRs. This saves time and simplifies the workflow, showing how CI/CD tools can streamline repetitive tasks and boost efficiency.
CI/CD Resources:
- What is CI/CD? - Red Hat
- What is CI/CD? - GitLab
- What Is CI/CD? Definition, Process, Benefits, and Best Practices for 2022
Books I’ve Read
- The Mistborn Trilogy by Brandon Sanderson:
- In a bleak, ash-covered world ruled by an immortal tyrant, a young thief named Vin joins a rebellion led by the charismatic Kelsier. Discovering her rare magical abilities, she helps challenge the Lord Ruler’s oppressive regime. As secrets of the past and the true nature of their world unravel, Vin and her allies face betrayal, power struggles, and the rise of a dark, ancient force threatening all existence.
Thank you!
Thank you for your time and for reading this!