From Perfectionism to Progress: Day 1 of my CSS Challenge with ICodeThis

black-and-white drawing of a hand holding a pen, appearing to write or erase jumbled HTML-like code on paper.

Black-and-white drawing of a hand holding a pen, appearing to erase HTML-like code on paper.

7 MINUTE READ

In this article: How I overcame my perfectionism to make consistent progress using the perfectly pitched mini-challenges from icodethis.com. My top 5 mistakes and corrections.

🧐 Using the BEM class-naming convention.

πŸ™‹β€β™€οΈ Giving HTML meaning - using semantic HTML.

πŸ“ How to mix responsive and fixed measurements.

πŸ™Œ When to use margin vs Padding and on what elements.

πŸ–‰ What I reset in my CSS before I began and why.


Frustrated with my slow coding progress and held back by my crushing perfectionism, I decided to take action on a quote from Tiny Experiments by Le Cunff:

β€œMastery comes from showing up and doing the workβ€”even when you’re not feeling ready or perfect. It’s through imperfect, repeated effort that progress becomes inevitable.”
— Le Cunff

After some searching, I decide to choose to complete mini-challenges, following a clear pathway with coding solutions, were the best way to go. Enter icodethis.com and their 30-day CSS challenge.

Here’s what I learned from Challenge One: Build a 404 Error Page, including the top 5 mistakes I madeβ€”and how I fixed them:

1. Incorrect BEM Naming
❌ My class names were inconsistent and I forgot how to best use BEM class conventions.
βœ… I rewrote them using clear, structured BEM conventions.

2.Lack of Semantic HTML
❌ I used <h3> tags for supporting text.
βœ… I considered meaning: brand name in a <header>, descriptive text in <p> tags, used H1 and H2 when appropriate.

3.Unresponsive Container Margins. I wanted a fixed margin but scalable container width and height.
❌ Fixed dimensions weren’t scaling.
βœ… Used responsive units and fixed units:
Container -
width: calc(100vw - 60px);
height: calc(100vh - 60px);
Margin-
margin-bottom: 60px;

4. Confusing Padding vs Margin
❌ I used both interchangeably, without being sure as to best practice.
βœ… I learned:
Padding = inside spacing
Margin = space between elements, based on which element you want to 'push' the other. The margin-bottom should be set on the original element to the next.

5. No CSS Reset
❌ Default browser styles interfered and I was unsure what to reset.
βœ… A simple reset did the trick:
* { margin: 0; padding: 0; box-sizing: border-box; }

Code and an image of a 404 page having completed the icodethis css pathway challenge part one.

πŸ’‘ Biggest Takeaway:
Step back and consider the meaning of each element. Use semantic tags to improve accessibility and clarity.

I finally made progress without burning outβ€”and got a mini dopamine hit from finishing something. Imperfect effort beats no effort, every time.

Laura Kam

Frontend developer, tutor and all-round learning enthusiast. What drives me is making learning to code genuinely understandable and frustration-free. I’m here to share my learning insights, which finally got me to that β€œaah I get it now” moment.

https://codecomprende.co.uk
Next
Next

Is Scrimba the Best Online Code Learning Platform? An Honest Review