CodePen & Community
Not being good enough

Comparison kills
For the first 20 years of my life, I lived a life of comparison. I felt surpassed in pretty much every aspect of my life whether it was athletically, academically, or creatively. Comparison typically leads to pride or discouragement rather than inspiration. For me, comparison led straight down a trail of discouragement to the point where I just gave up trying things. I dropped out of school, joined a band, worked in a horse barn. It wasn’t until I became prideful that I started trying things again. I didn’t know any devs, which meant anything I coded became the “coolest thing in the world” to the people in my life. That sort of feedback fueled my pride which became the polar opposite form of comparison. I needed to flush that pride from my system before I became able to be inspired.
Don’t get me wrong, comparison can certainly be valuable if you want to get a sense for where you stand, but if you aren’t careful, it nearly always takes that next step into irrational and insecure judgment of yourself and others.
Hardcoding “success”
When you compare yourself to others, you can easily find yourself desiring to be an amalgamation of people you find “successful”. Maybe I want a little bit of Chris Coyier’s enthusiasm for CSS mashed with some of Sarah Drasner’s illustrative chops accompanied by a side of Gregor Adams fractal freakiness topped with a Rach Smith GSAP bonanza garnish. Being inspired by others is undoubtedly a good thing. However, building this “dream machine” cyborg of talent is inherently shortsighted because you are yourself, not other people. You are valuable and you have plenty to offer. Often times focusing on the works of others can get in the way of finding your own strengths. Be inspired, but don’t stunt your own growth.
This desire to be everything is also unrealistic because you’re essentially striving to be an all-star team of developers and you are a single person. It is hard enough to stay up to date with a single specialty, let alone a cornucopia of them.
Hardcoding success is also suffocating because you have limited your possibility for lateral growth and are focused on only one outcome. If you are the sort of person that knows exactly what they need to be in five years, you’re lucky. Chances are you are going to grow out of your current idea of “success” and find a new one that looks a lot more like you and makes a heck of a lot more sense later on.
Giving up sucks
After constructing this nebulous idea of “success” through comparison you will almost immediately find the task of achieving it to be impossible. You’ll take your first step in that direction and become overwhelmed and give up. It is natural for excellence to be this seemingly unattainable, but chances are you aren’t thinking about that. Chances are you are thinking about how much you suck. Don’t be burdened by lofty goals, let them sit in the background in a malleable state.
The primary reason I get overwhelmed and give up is a byproduct of competition.
Competition vs. Inspiration

Competition can have immediate rewards
When you are driven by competition, you will find bursts of rapid growth and acceleration. You will stay up working for 20 hours straight to get ahead. Of course this will naturally yield progress. The danger of competition is that it gives you a taste for success and then pairs that idea of success with being the best. Living in that territory is vicious, and will burn you out before you can say tadaa!
There is nothing wrong with desiring excellence, but that is a drastically different pursuit than getting ahead of other people. This problem is most easily seen in how you handle not being the best. I hate to break it to you, but not being the best will happen eventually if not immediately. If you are concerned with being the best, realizing you aren’t is quite scary. You start desperately grasping at things trying to get ahead, you fail harder, and you feel terrible. This is a great way to turn striving for excellence into crippling insecurity.
How you value yourself determines how you value others.
If you are super competitive, you will view others as competition. In addition to that being intimidating for others, you will find yourself actively hoping for the failure of others in order to maintain an elevated sense of self. If others view themselves as uncompetitive, they view your competitiveness as overwhelming and will get discouraged. Would you rather have a community of ten inspired devs or a community of two competitive devs and eight discouraged ones? Here’s a hint: you thrive in one and unravel in the other.
Communities are defined by their members.
The legacy of super competitive community is a group of very opinionated—and probably correct—people. It is a community that primarily grows when approached by people that hold the same opinions. That is a limited community. In a competitive community, the idea of discovery lies solely at the top end of the excellence spectrum. Only the people that are winning are discovering new things. Everyone else is just trying to keep up.
The legacy of an inspired community is diversity in opinion and the ease of entry through communal acceptance. Inspired communities have discovery at every level of knowledge. Beginners, experts and everyone in between are all discovering new things on a daily basis. CodePen is one of these places. Hurrah!
CodePen is an inspired community.
When I discovered CodePen I was coming off of a very defensive, insecure, competitive period of my life. I gradually learned how rewarding it is to reward and encourage other people. I felt like I wasn't afraid of failure.
I am fascinated by (ab)using CSS to do things it wasn’t made to do. When I end my days doing backend work, I find fulfillment experimenting in this way. Below is an introduction to some CSS techniques followed by fairly absurd examples of those techniques in the wild.
Pseudo-class Selector Logic
:hover
You can select sibling elements using the general sibling combinator (~
). This combinator refers to "any sibling that comes after the preceding element". Here we can select a sibling div
element when we hover over the anchor.
Scroll jacking with :hover
We can use the :hover
state to do some pretty ridiculous things, like scroll jacking with CSS. Not recommended.
:target
You can change the style of an element when it is "targeted" by the browser. "targeted" state is what happens when you click a link that contains #an-id
in the href
.
Modal using :target
We can use this principle to implement some basic functionality like modal windows.
Presentation using :target and :accesskey
We can even create a full on presentation using :target
and my favorite attribute in the world, accesskey
.
:checked
You can style siblings of input
elements when the input
is checked if it is either a type
of radio
or checkbox
. Here you will see that we can use a label
element's for
attribute to map the label
to the input
. For :checkable
elements, clicking the label
will check the input
. In other input types and textareas
, clicking the label
will :focus
the element.
CSS Tabs
Using a radio group, we can create functional tabbed content using :checked
.
:checked ~ :checked
You can chain pseudo-class selectors to achieve basic logic in CSS. Here, we will do two different mathematical operations using CSS.
CSS Calculator
Using multiple radio groups, we can perform basic mathematical calculations—enough to build out a simple calculator.
CSS Binary
Using :checked
and :not(:checked)
combinations, we can even do some fairly complex things like write in binary.
CSS Keyboard
We can even make a functional keyboard.
Moar!
Here's a collection to all of my CSS-only pens.
You love to Code

Believe it or not, you love to code.
Once you sift through insecurity that is often driven by competition, you can discover what it is that you love about what you do. This can look like many different things. Maybe it is knowing specs and the current state of browsers, maybe it looks like SVG, maybe you love JS frameworks, perhaps you’re into data and using external APIs to do cool things, perhaps you will always hate code, but are very passionate about building things for people in need. The point is that whatever it is, it is there. Let it thrive.
It's almost always messy.
Yes, it's complicated. It is very easy to give into other people's opinions and your fears. We are all in the same boat on this (yay). We all suck at something and are typically fighting the pressure of pretending we’re smart to get along with others. Once you cease to be afraid of failure, you will find what it is that drives you and be able to pursue inspiration freely.
CodePen encourages this pursuit
CodePen’s community is driven by passion, encouragement, comradery, and inspiration. This is what drives me at work and simultaneously inspires me when I’m off the clock.
Whether it is on CodePen, Twitter, or in real life, meet people. Talk to them. Make friends. Be honest with folks and watch them be honest with you. All it takes is the slightest bit of humility in conversation before everyone breathes a collective sigh of relief and opens up about how hard things can be for them too. That is how it should be. The people that think you’re stupid for not knowing x are the people none of us enjoy talking to. You’re doing fine, kiddo.
Be confident to try new things, don’t be discouraged when you fail, and celebrate your success as well as the success of others.
Keep on keepin’ on.
@jakealbaugh, Thanks for this article Jake. More times than I can count I've tried to compare myself to other developers in my professional career and even here on CodePen and have always found what I've done falls short in my own mind. It's reassuring that I am not the only one who feels, or has felt this. I appreciate that you share your thoughts and feelings with development with us so that others can relate and try to improve themselves as people.
You have the best attitude towards this stuff. You're an inspiration to me and I'm lucky to know you!!
When I compare myself to others, I like to take a second and reflect on the differences between jealousy and envy. Jealousy means 'I want it and you can't have it', where envy can come more from a place of 'what did that person do to earn this, and how can I mirror it?'
Hell yeah! Awesome blog post! I'd also like to mention that you do an amazing job of commenting code. Not only is it crispy clean, it's also perfectly commented. Stay awesome Albs!
This is a lovely post Jake. I truly believe more people should read this, as a lot of devs are insecure and keep comparing their own skills to that of others. I do agree with @tho's point, envy can result in wanting to learn what other people can do.
The CodePen community is an awesome place and the people here are so lovely. I've been developing software for years, released open source stuff, freeware stuff, but I've never felt more appreciated anywhere else than on CodePen. This in turn causes me to check out this site more than any other website, even when I'm actually too busy. I learned a lot here and got to know awesome people.
Keep inspiring the world Jake, because you do inspire me! :)
@tho, totally man. The only thing I am personally wary of with envy is that often when I envy the skills of others, I look past what I already have and discredit it. I don't mean to disqualify it, you're clearly getting along quite well, it's just that I personally struggle with not validating my own achievements when I focus too hard on the achievements of others.
Jake, excellent post. Really hit me in the feels, and that's not easy to do. =P Plus I have a special connection with you since you too are fascinated with CSS-only stuff when others would say, "But JavaScript would work just fine thank you very much."
Love your work. Keep it up!
Awesome post, Jake! As someone who doesn't know a lot of other developers, I have only ever compared my skills to those of others that I see in places like this, and always found myself turning back to my own work and thinking less of it/discrediting it. It's great to know that I am not alone...Thanks!
Really excellent post. Thanks so much for sharing.
I've learned that especially in this field, you can't do it all alone. Technologies change all the time, so you will never be the best at everything, and that's okay. The bottom line is, we're all here through choice, making things we think are cool and speaking with each other, suggesting improvements or giving support. THAT'S what I like about codepen. I think that your article speaks to a lot of people, because most of us deal with these feelings at some point or another. Very well done.
OMG!! ITS AWESOME