by Corey Slaven

The hardest part of learning to code is also the funnest part

A bust of the philosopher Aristotle
“The more you know, the more you know you don’t know.”
― Aristotle

My coding journey started with an app on my phone called Learn HTML. Whenever I got the urge, I’d mess with it for a bit and complete a few challenges. Then wouldn’t touch it again for a couple of months.

One day I sat down and started playing with it like usual. I completed a couple of challenges and learned a little more HTML.

But this time — and I have no idea why — I just kept going.

Within in a couple of hours, I had finished every single challenge in the app.

That was the day that I recognized I really enjoyed learning to code.

It’s been a year since I started the Learn HTML app. Since then, I’ve done quite a bit of web development.

Like many people who are reading this, I’m entirely self-taught. I learned how to code on my own time, using various resources I discovered around the web and at my local library.

I still have a lot to learn, but I thought I’d share the most important lesson so far: web developers must constantly learn new things.

I knew that there were three fundamental tools I had to grasp in order to build websites. HTML was the first. I then had to style it with CSS. After styling, I had to learn how to add functionality, and that meant learning JavaScript.

Once I learned these three tools, I’d be able to build some awesome websites, get an cushy job, and start raking in cash — all as my colleagues lavished me with praise.

Right?

Wrong

Web development is vast. Developing expertise takes time. There’s a ton of information you need to absorb. It’s easy to get lost.

HTML taught me the structure of a site and gave me an idea of how websites work. I then wanted to know how to make it look pretty. This lead me toward learning CSS.

CSS was my first mind-freak.

Not that kind of mind-freak.

I learned some design. I learned some user experience. I discovered that design is more than just creating something aesthetically pleasing. It’s about creating an experience that is enjoyable and easy to understand.

Learning design sensibilities is just as important as learning specific technical topics like the CSS box model. If the design of your site isn’t pleasing, your users might just decide to close the window.

As a result, I’m constantly searching for design inspiration. Some of my favorite places to look are:

Muzli

Codepen

Dribbble.com

httpster

Don’t even get me started on learning JavaScript. I had to learn computer science concepts, frameworks, libraries, tools, algorithms, and much more. I quickly found myself in the desert of despair.

I found myself constantly taking detours and roads less traveled. No matter what I learned, the end was always out of sight.

I was going insane.

I kept asking myself: “When will I know everything that I need to know?”

This is when I came to my most important realization. The answer to that question was simple, and staring me right in the face from the beginning:

Never.

That’s when I accepted that this was how it was going to be. There was always going to be more to learn.

Being a developer entails perpetual learning. It never stops. The field is ever evolving. New things to learn will continue to pop up.

I’ve learned that I can never let my guard down. I must set aside time to learn something new once a week — maybe even once a day.

I’ve recognized that I have to constantly ask questions, and regularly dive into new subjects, and deeper into old ones.

I write down what I have learned at the end of the day. Then I review it before I start working the next day.

It’s easy to forget things when you’re constantly consuming new information. I consider a daily review to be crucial to my education.

I don’t think that it’s necessarily about being on the cutting edge in the field of web development. It is about staying relevant. Constantly learning helps ensure my relevancy.

The developer community is great

When I first started, learning to code was a lonely process. None of my friends could code, or cared to learn. I didn’t know any developers at all.

This whole entirely new world of software development had opened up to me, but I didn’t have a single person I could talk with about it.

But all that changed once I made a twitter account. I slowly started following developers I looked up to. I found out about most of them through watching YouTube videos.

One of the first developers I followed was Laurie Voss (@seldo), co-founder/COO of npm. Isaac Schlueter (@izs), the CEO of npm, was next.

Then I started following people they followed. This opened me up to a whole new world. I was introduced to a community of like-minded individuals that continue to inspire me every single day.

I follow a wide array of developers now. I highly suggest following:

@ScribblingOn

@ohhoe

@getify

@ossia

@mpjme

@_ericelliott

@jennschiffer

@davidwalshblog

And many others. My Twitter handle is @salsaflocka. You can see everyone I follow and follow some of them yourself.

I also highly suggest getting familiar with Free Code Camp’s open source community.

Free Code Camp describes itself as a friendly open source community where you learn to code and help nonprofits.

I frequent their forums regularly. The amount of information I’ve amassed from them is substantial.

Also, they weren’t exaggerating when they claimed to be a friendly open source community. Everyone I’ve interacted with there has been polite and helpful.

Reddit also has a large community of developers. You can find out just about anything you need to know about that community here.

I consider those two resources great for beginning developers.

When I first started out, I was intimidated by the two pillars of the development world: Stack Overflow and GitHub. But familiarizing myself with the developer community as a whole helped warm me up to joining these larger communities.

Getting involved with my local dev community has helped me a lot. I had to drive an hour away to go to my first meetup, but the experience I gained from it was invaluable.

I’ve come to realize that developers in general are helpful and generous!

Imposter syndrome — a real feeling that all developers have to deal with

One thing that comes along with learning a new skill is the feeling of inadequacy. It often seemed like everyone was way more elite than I was when I first started learning how to code.

No matter what I learned, I never felt like I was on track toward becoming a real developer.

This feeling is what is known as Impostor Syndrome.

I still struggle with the feeling today, but I’ve come to realize that pretty much everyone feels this way.

No developer is an impostor. We’re all just growing and learning along with everyone else.

I try to ignore that little voice in my head that makes me question my abilities.

If you’re developing, you’re a developer. It is as simple as that.

I’ve just started doing freelance work, so I may not yet be a seasoned professional, but this will come with experience.

As long as I’m willing to learn, I’m on the right track.

I think that one of the best ways to combat impostor syndrome is to teach people what you know.

I can’t stress this enough. Everyone knows something that no one else knows. Feel free to share that information.

I try to share everything that I learn with the developer community. It’s the only way for us to grow and become stronger together.

Not everyone will learn how to code. And that is okay!

This was one of the tougher revelations for me. I saw so many people around me with no direction in their life.

They just flow with the wind, not really worrying about what tomorrow has in store.

These people tend to talk about their “dead end jobs” and their “worthless degrees.” I couldn’t understand why these people could be so unhappy with their situations, and not still not see the merit in spending some of their free time learning to code.

This profession is widely accessible to the majority of the society I live in. Pretty much anyone can learn how to do code, so why doesn’t everyone give it a shot?

It took me a while to figure out that not everyone enjoys sitting in front of a monitor for hours on end, trying to figure out why their project isn’t working.

Not everyone likes the idea of constantly learning new things.

Not everyone cares enough to become comfortable with technology.

There’s a reason that more people aren’t working as developers, despite constant demand for people to build software. That demand can’t be satisfied by the relatively small number of people who’ve put in the time to become professional developers.

This is a field that can be tedious, boring, and hard to learn. Not everyone has the patience for it.

But I’m grateful to be among those people who are so interested in being a part of this community that they’ll push right through inevitable setbacks.

We have a great responsibility as software developers. The world we live in runs off of technology. We have the ability to shape this world. We already do it in our daily lives.

Not everyone will learn how to code, and that is okay. I’m just thankful that I have, and that so many others have too!

This year has gone by incredibly fast for me. I’ve learned more than I could have ever imagined.

Learning web development has given me a sense of direction in my life. There wasn’t ever really a time before this where I’ve been able to look forward several years, with tangible goals.

But now, I’m filled with excitement as I get new clients, learn new skills, and do meaningful work as a web developer.

If you’re new to development, stick with it. It may seem like a lot of work but I promise it’ll be worth it.

If you’ve been developing as long or longer than I have, thank you for being a software developer. Your contributions to our community as a whole make it easier for everyone.

Thank you for reading this! Here is to another year of coding!

If you liked this, click the💚 below so other people will see this here on Medium.