I was a newbie developer in 2015 with little to no coding experience and took on the challenge of trying to make it into industry as a software engineer. I'm happy to report that I'm now at Google as a software engineer but it wasn't an "easy" path to get here.

The very first problem I encountered was a monumental problem.

Learning to code feels difficult.

A common problem when learning to code is to hit a wall on a problem, bang your head against the wall for several hours only to be left without any answers. The first 7 pages of search results on Google are purple and you're beginning to lose hope. You inevitably ask yourself, "Was I really cut out for programming?"

You're not alone.

However, there are several insights that you can adopt for this problem.

These insights behave like fictitious pills that help reduces the symptoms felt when learning to code and will ultimately alleviate some of the pains associated with learning. These insights are focused on things you can control right now. They are slight changes in mindset and environment that have a drastic improvement on your overall well-being as a new developer.

These insights will make your life easier.

Insight 1: Learning Is Supposed To Be Hard

The first insight is to simply embrace the difficulty of learning to begin with.

The reality is that learning anything is hard, not just coding. This perceived difficulty stems from what we tell ourselves about experiencing this difficulty. By embracing learning as a difficult pursuit, you open up your mind to the possibility that feeling difficulty is precisely what you should be feeling.

There's nothing wrong after all.

You're doing just fine. Stop focusing on how difficult programming is and spend that energy on problem solving instead.

Insight 2: Develop A Learner Identity

The second insight is to disconnect your identity from the specific pursuit of learning to code.

Instead, focus on becoming a learner – a learner that just so happens to be learning to code at this time. By developing an identity as a learner, not a programmer, you treat coding as just another learnable activity. Combined with insight #1, you can stop overthinking the difficulty of anything you pursue and just focus on the learning it instead.

Tell yourself that you are the type of person who can learn whatever they decide to pursue.

Insight 3: Find A Community

The last insight is about environment design.

Coding is an indirectly social activity because software products require collaboration with other humans. Even a solo project requires collaboration. It just happens to be communicating not in the present but with your future self as your future self will need to understand your code. Going back and forth with other developers is the fast track to improving your code.

Joining others in the process holds you accountable, keeps you focused over the long term, and helps form friendships in the process.

For this, there are various news curation sites that keep you update on industry news, and arguably more helpful are the various slack communities separated by programming language or framework tool.

Another route to go is to join a class, course, or a coding bootcamp as you'll form real friendships and have an environment that holds you accountable.

Hop on and get coding with others. Stop doing it completely alone.

3 Insights That Make Learning To Code Easier