DEV Community

Stephen Appah
Stephen Appah

Posted on

From Junior to Confident Frontend Developer: Lessons from My Angular & React Journey

As a junior frontend developer, navigating the ecosystem of modern web development can feel like entering a labyrinth. When I started with Angular and React, I was overwhelmed—frameworks, state management, component hierarchies, performance optimizations, testing—it was a lot to take in. But a few hard-earned lessons made all the difference.

Today, I want to share the top lessons I’ve learned that helped me go from copying tutorials to building real-world apps with confidence.

🧠 1. Don’t Skip the Fundamentals

I used to rush into frameworks, but things only started to make sense when I circled back to JavaScript fundamentals.

Knowing how the DOM, event bubbling, closures, and asynchronous JS work saved me from many bugs. For example:

// Before: Trouble understanding closures
function createCounter() {
  let count = 0;
  return function () {
    count++;
    return count;
  };
}

const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
Enter fullscreen mode Exit fullscreen mode

Understanding how variables are scoped within closures helped me debug React state issues and Angular services.

⚙️ 2. Angular and React Are Just Tools

Each framework shines in its own way:

  • Angular gives you a complete structure. It’s great for building enterprise-level apps. Dependency injection, services, RxJS, and routing are powerful once you grasp them.

  • React gives you freedom and flexibility. But with great power comes great decision fatigue—especially around routing, state management, and form handling.

I stopped treating them like opposing camps. Now, I pick the right tool for the job—or enjoy learning both.

🧪 3. Testing Is a Superpower

At first, I avoided writing tests. But after a few bugs slipped into production, I embraced unit tests with Jasmine (Angular) and React Testing Library.

Writing tests helps me catch errors early and build with confidence.

// Angular - Jasmine test
it('should return user name', () => {
  const name = component.getUserName();
  expect(name).toBe('Stephen');
});
Enter fullscreen mode Exit fullscreen mode
// React - Testing Library
test('renders welcome message', () => {
  render(<Welcome name="Stephen" />);
  expect(screen.getByText(/Welcome, Stephen/i)).toBeInTheDocument();
});
Enter fullscreen mode Exit fullscreen mode

🚀 4. Build Real Projects, Not Just Todo Lists

I started building projects that solved real problems. Some examples:

Pharmacy Locator App (Angular): Uses Google Maps API, SCSS, and Firebase
Dashboard Admin App (React): Built with Tailwind, Firebase Auth, and reusable components
Each project pushed me to research, refactor, and document better code.

🌐 5. Share What You Learn

I started sharing lessons and insights on LinkedIn and GitHub. This has helped me:

  • Connect with other developers
  • Learn from feedback
  • Stay accountable
  • Even a small tip or bug fix you learned can help someone else.

👨‍💻 Final Thoughts

You don’t need to know everything to be a good frontend developer. But if you:

✅ Understand core JavaScript.
✅ Learn how your framework works under the hood.
✅ Build real projects.
✅ Write tests.
✅ Share your journey.

…you’ll grow faster than you think.


🧰 Tools I Use

  • Frameworks: Angular 18, React 18
  • Styling: Tailwind, SCSS
  • Auth & Backend: Firebase, Supabase
  • Testing: Jasmine, Karma, React Testing Library
  • Hosting: Netlify, Vercel
  • Others: Git, GitHub, AI tools, ChatGPT

🙌 Let’s Connect

Want to follow my frontend dev journey or collaborate? 🔗 GitHub: github.com/Steph-en 🔗 LinkedIn: linkedin.com/in/stephen-boateng-appah

Illustration of Frontend Developer

Top comments (0)