🙀 7 Things They Don’t Tell You About Learning to Code
Tags: learning, beginners, codenewbie, developers
Published: 2024-04-05 12:00:00

## Stuff beyond syntax you should probably know.

---
Learning to code is an incredibly rewarding journey, but it's rarely a straightforward path.

While tutorials and online courses teach you the syntax and mechanics of programming languages, there's a lot more to becoming a skilled coder than just memorising keywords and functions.

The reality is that coding is as much a **mindset** as it is a _skill_ set.

Beyond the technical aspects, there are numerous psychological, emotional, and practical challenges that often go undiscussed.

These are the hidden hurdles that can trip up even the most dedicated learners if you're not prepared for them.

Coming up, we'll explore seven things they don't usually tell you about learning to code: the lesser-known but crucial aspects of the coding journey.

### 1. The Importance of Patience

As we know, mastering programming isn't something that happens overnight or even in a few weeks. It takes time, dedication, and above all else, an enormous amount of **patience**.

I can't even begin to count how many times I wanted to pull my hair out in [frustration](https://dev.to/evergrowingdev/im-always-frustrated-but-heres-why-i-wont-give-up-1d3e) when that damn code just wouldn't work. You spend hours staring at the screen, playing with the syntax, only to realise you missed a silly semicolon somewhere!

It's enough to make you want to chuck your laptop out the window. But that's where patience comes in.

Instead of giving up, you take a deep breath, grab a snack, and come back with fresh eyes. More often than not, the solution reveals itself when you're not frantically scrambling for it.

I remember one project that took me months to complete successfully. A web app that seemed simple enough at first, but quickly spiralled into a mess of bugs and compatibility issues.

There were so many times I considered abandoning it, but I kept at it little by little. Some days I'd make great progress, others I was stuck in the same looping nightmare. But by stubbornly refusing to give up, I finally cracked it.

And let me tell you, that feeling of victory after such a struggle is unmatched!

The path to becoming a skilled coder is littered with failures and setbacks. But patience allows you to stumble without falling completely.

It's the determination to dust yourself off and keep pushing forward, no matter how stuck you feel in that moment.

Trust me, it's worth it in the end. Just don't lose your cool when the code breaks for the hundredth time that day!

### 2. The Learning Plateau

No matter how pumped up you are starting out, at some point you're going to hit a learning [plateau](https://dev.to/evergrowingdev/getting-that-coding-spark-back-when-you-hit-a-plateau-52ae).

It happens to every single coder out there, even the [pros](https://dev.to/evergrowingdev/how-to-learn-programming-from-the-pros-3k2p) with decades of experience. The learning plateau is that frustrating moment when it feels like your progress has stalled completely. The concepts that once seemed to click into place so easily are now a total mind fog.

For newbies, this plateau tends to strike after the initial coding honeymoon phase. In the beginning, everything is fresh and exciting as your brain furiously soaks up all the new knowledge.

But then...bam! You hit a wall. Suddenly, no matter how hard you try, absorbing new coding skills feels like trudging through mud.

The good news is that this is 100% normal and just part of the process. Our brains can only take in so much new info at once before they need a break to solidify what's already been learned.

Think of it like digging a hole - you've got to periodically stop and pull the dirt out in order to keep going deeper.

So what do you do to blast through this plateau? First off, don't panic! Remind yourself that it's temporary. Then start switching things up a bit. If you've been hyper-focused on one coding language or project for a while, take a break and try dabbling in something totally different for a change of pace. Expose your mind to new challenges, perspectives, and learning resources.

The learning plateau is inevitable, but it's also just a temporary speed bump. By recognising when you've hit it and actively seeking out new learning experiences, you'll be back on the right path in no time.

### 3. The Reality of Debugging

You know that scene in pretty much every hacker movie where the character is furiously typing away, lines of green code whizzing across the screen? Yeah, that's total BS. In the real world, coding is like 20% actually writing code and 80% figuring out why nothing is working properly. 

Welcome to the reality of debugging!

If there's one thing they really don't prepare you for when you're first learning to code, it's just how much time you'll spend as a human bug exterminator. Syntax errors, logic flaws, weird edge cases you never anticipated - the list of things that can go wrong is comically long.

Now, you'd think after decades of humans telling computers what to do, we'd have figured out how to program without so many hiccups.

But code is just endlessly complex, especially as apps and systems get more intricate. There's always something waiting to break or throw an infuriating error.

That's why developing rock solid debugging skills needs to be a top priority, right from the get-go.

Learning to systematically identify and squash bugs is just as important as learning to code in the first place. Things like using print statements, logging outputs, and learning how to decipher error messages are the bare basics.

One of my personal favourite techniques is just obsessively commenting out sections of code bit by bit until I've isolated the issue. It's tedious as hell, but it works! I also swear by taking frequent breaks when I'm stuck on a really annoying bug. You'd be surprised how many times the solution just clicks after I've stepped away to clear my head.

At the end of the day, debugging is a sure thing. So the sooner you become a debugging master, the smoother your coding journey will be.

Just be prepared to feel like an exterminator...a lot.

### 4. Continuous Learning

Here's the hard truth about coding: the learning never stops. Tech moves at lightning speed, and what's cutting edge today will be ancient history in a year or two.

Programming languages, frameworks, best practices - they're all in a constant state of evolution and updates. If you don't make an effort to continuously up skill, you'll be left in the dust faster than you can say "but I thought jQuery was cool?”

The good news is, thanks to the internet and the abundance of online resources, keeping your skills sharp has never been more accessible. You can download courses, read blogs, join forums, and listen to [podcasts](https://dev.to/evergrowingdev/7-best-podcasts-for-newbie-devs-ngk) pretty much anytime, anywhere.

My personal approach is to subscribe to a handful of trusted newsletters and blogs to stay looped into the latest trends, packages, and tutorials for the languages I work with the most.

I've even gotten into the habit of checking the release notes for updated software versions - you'd be amazed at how many new features and improvements get added with each release cycle!

You can also find local meetup groups for studying emerging technologies together or attending workshops. And of course, no discussion of continuous learning is complete without mentioning open-source projects.

Reviewing and contributing to open-source codebases is an awesome way to apply your skills in a practical setting while picking up new techniques from the community.

The key is finding an approach that works for your schedule and learning style.

Maybe it's setting aside dedicated time each week for skill-building. Maybe it's following some insanely talented developers on social media. The specifics don't matter as much as developing the habit itself.

### 5. Imposter Syndrome

So there’s this pesky psychological phenomenon where you constantly feel like a fraud who's in way over their head - also known as Imposter Syndrome.

You start learning JavaScript or Python and suddenly every concept feels overwhelmingly complex. You look at the pros coding with ease and think "There's no way I'll ever be that good." Those nagging thoughts of "I don't belong here" and "I'm just not smart enough for this" take up permanent residence in your brain.

The twisted irony is that imposter syndrome often hits the most skilled and passionate learners the hardest. You're so invested in coding and aware of just how much there is to learn, that you can't shake the feeling that you'll never truly measure up.

It's a vicious cycle of minimising your own abilities while putting others on an pedestal.

The best ways I've found to battle imposter syndrome are:

1. Actively reframing negative thoughts by verbalising wins and capabilities out loud

2. Seeking out validation through code reviews and feedback from trusted peers
 
3. And focusing on your own personal growth trajectory rather than unhelpfully comparing yourself to others.

It also helps to have a honest pep talk with yourself on the regular. _Yes_, there's always more to learn in coding. _Yes_, it's okay to not know everything right away..._nobody_ starts out as an expert!

The goal isn't perfection from day one, but rather a continuous journey of building skills and experience over time.

Ultimately, imposter syndrome is something you have to keep proactively managing. But by developing strategies to silence that inner critic, you can avoid letting those unfounded doubts hold you back.

Just remind yourself, feeling like an imposter means you're actually doing something right!

### 6. Burnout Prevention

With the constant pressure to learn new technologies, meet deadlines, and push out code, it's ridiculously easy to get consumed by coding to an unhealthy level.

[Burnout](https://dev.to/evergrowingdev/how-to-avoid-burnout-practical-tips-for-programmers-ob6) is very real in the tech world, and it can leave you feeling mentally and physically drained to the point of complete burnout.

I've definitely been there before - pulling all-nighters, subsisting on energy drinks and poor dietary choices, neglecting any semblance of work-life balance.

And you know what that got me? Incredibly unproductive, scattered, and just plain miserable. Your brain isn't a machine that can keep coding indefinitely without breaks or time to recharge.

At the end of the day, no project or deadline is worth sacrificing your mental and physical wellbeing over. You've got to learn to set firm boundaries and develop habits that promote a sustainable, healthy lifestyle alongside your coding journey.

Some of the simplest but most effective things I did to avoid burnout were: setting a rigid stop time each day and logging off completely, taking real lunch breaks away from my desk, and finding low-effort hobbies to unwind with, like reading or going for walks. Oh, and getting good sleep! That one's a game-changer.

It's also crucial to find ways to create separation between your work/study and personal life. For me, that meant setting up a dedicated office space and treating it like a workplace that I "leave" at the end of the day. Having a divide between your coding workspace and living space makes it easier to mental switch off.

Another tip - don't be afraid to unplug from tech completely for periods of time. We're conditioned to always be connected these days, but that's a surefire path to burnout. Take periodic digital detoxes where you log out of everything and go be a human doing non-coding activities.

Your brain will thank you.

### 7. Understanding the Big Picture

Listen, I get it - when you're just starting to learn to code, your main focus is simply getting the logic to work. Things like loops, conditionals, and data structures take up all your mental capacity.

But here's the thing they don't really emphasise enough early on: successful software isn't just about writing functional code. It's about stepping back and understanding the bigger picture.

Code doesn't exist in a vacuum. It's merely one component of a larger interconnected system and set of user experiences.

The best developers don't just think about elegantly solving the problem right in front of them. They also consider crucial factors like scalability, maintainability, security, and perhaps most importantly - the actual **end user's needs**.

How many times have you used some piece of software or app and thought "Who the hell designed this?" It's confusing, overcomplicated, and misses the mark completely in terms of delivering a seamless experience.

I'd bet in most cases that somewhere along the line, the developers got way too focused on just making the technical side work without properly thinking through usability.

The cold hard truth is that code nobody understands or wants to use might as well not exist at all.

You could write the most pristine, beautifully refactored functions, but if they result in a crappy user experience full of bugs and friction, you've missed the forest for the trees.

Don't make that mistake. As you're levelling up your coding abilities, make an active effort to also level up your high-level thinking about software architecture and development lifecycles.

Study topics like scalable system design, UI/UX principles, version control workflows, and deployment best practices.

Constantly be asking yourself "But how will this actually get used in the real world? What could go wrong? How can I make this easier to update and more efficient long-term?".

It's about taking a step back from the tiny tasks and understanding how all the pieces - the code, the planning, the scaling, the user needs - fit together into a holistic, successful software product.

### Wrapping up

Learning to code is a long journey filled with hurdles - from wrestling with impatience and imposter syndrome to fending off burnout.

When you start out, there are many things you may not be aware of, and many challenges you’ll face. But these challenges are all part of the process. Coding requires cultivating the right mindset just as much as technical skills.

The path ahead won't be easy, but it will be [rewarding](https://dev.to/evergrowingdev/your-coding-skills-are-priceless-heres-why-1bj) if you persist. Don't let the struggles psych you out - every coder goes through this rollercoaster ride. Experiencing the challenges head-on will only make you stronger.

So keep chipping away and don't forget to take care of yourself.

From your fellow ever-growing dev,

Cherlock Code

---
💙 **If you liked this article...**

I publish a weekly newsletter to a community of ever-growing developers, seeking to improve programming skills and stay on a journey of continuous self-improvement. Focusing on tips for powering up your programming productivity 🚀.

Get more articles like this straight to your inbox.

[Let’s grow together 🌱](https://www.evergrowingdev.com/subscribe)

And stay in touch on **𝕏** [@evergrowingdev](https://twitter.com/intent/follow?screen_name=evergrowingdev)

---

![Dev Pages](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h1wes8tue36lankryvq3.png)

And if you're looking for the right tools to build awesome things, check out [Devpages.io](https://devpages.io), **an ultimate hub I built with 100s of developer tools and resources** 🛠