Leveling Up as a Software Engineer – Day 2
Exploring Frontend Development, State Management, and Testing Methods
As part of my journey to solidify my full-stack skills, Day 2 was all about diving deep into practical frontend concepts and testing foundations. I focused on learning by doing—splitting the day into specific learning blocks and absorbing as much as I could from each.
🧠 Morning: State Management and Props Flow
I began the day revisiting fundamental concepts in React:
Local vs Global State: I now have a clearer understanding of when to use local state (typically with
useState) for component-specific data, versus when to leverage global state for cross-component communication.Props Drilling: I explored how props can be passed from parent components to child components. While simple in isolated cases, I also saw firsthand how it can get messy quickly in larger apps—another reason why global state can sometimes be the cleaner path.
🧪 Evening: Mocha vs. Jest
The last block of the day was focused on testing. I explored the differences between Mocha and Jest, two popular JavaScript testing frameworks.
Here’s what I took away:
Mocha is fast and modular. It’s a testing framework only, and it doesn’t include assertion or mocking out of the box.
Jest, on the other hand, is a more feature-complete testing solution, but can feel heavier due to its all-in-one approach.
Chai is an assertion library often used with Mocha—not a testing library itself. This distinction cleared up some confusion I had going in.
I also did some light prototyping in Mocha, testing different functions and data types to get comfortable with the syntax and flow.
✅ Summary
Day 2 was rich with practical takeaways:
Clearer understanding of local vs global state in React.
Developed a solid grasp of how Mocha and Jest differ—and how Chai fits into the picture.
Hands-on practice writing test cases to solidify concepts.
🔜 What's Next?
For Day 5, I’ll be continuing with the rest of the planned learnings—not just from a reading perspective, but by actually building, testing, and exploring further.