How to Deal With the Difficulties of Programming
Tags: career, beginners
Published: 2020-03-09 22:34:26

One of the biggest arguments about programming is whether it’s a difficult profession to do or not. You may hear from some people saying programming is easy, which I personally disagree with as a software engineer and a front-end web developer.

My intention for writing this article is to motivate people who are struggling with the difficulties of programming but not to scare them. I’ll spot some difficulties in programming and suggest ways to deal with them, based on my own experiences.

So if you aren’t comfortable with programming, thinking programming is hard or even hate programming, this article is for you.
<h2>Is Programming Really Difficult?</h2>

I think programming is a difficult profession. But should we lose our motivation for writing code? Should we quit just because it’s hard? Absolutely not!

Every profession has difficulties, upsides and downsides, and so does programming. There are ways to deal with them — let’s see what these difficulties are and how I have dealt with them so far.
<h2>1. The Learning Process</h2>

The very beginning of my learning process was the most difficult part for me. When I was a software-engineering student around 10 years ago, the education I was receiving was poor, and there were very few tutorials and articles, unlike today. We didn’t have as many learning options and resources as we have today.

Thanks to the content creators, this has changed, and maybe that’s the reason why so many people (including me with a <a href="https://www.youtube.com/channel/UC1EgYPCvKCXFn8HlpoJwY3Q?view_as=subscriber">channel</a> and a <a href="https://www.codingdocs.com/">blog</a>) started to create programming tutorials, write e-books, and share their knowledge on various platforms on the internet.
<h3>Tip #1: Give yourself time</h3>

The important thing to understand here is if you’re new to programming, you’ll learn slow. You’ll forget quickly unless you practice enough and truly understand how things work. That’s why you need to keep trying, read what you’re reading again, solve the same exercises again, and replay the tutorials again and again until you have a complete understanding.

Learning a programming language is similar to learning a new language like German, Spanish, or Chinese. You can’t learn Chinese or German in one day, right? The same goes for learning a programming language. It’ll take a couple of months to get familiar with the concepts. Give yourself time.

<h3>Tip #2: Learn the fundamentals first — then you can learn any programming language</h3>

What I learned at school and what I’m doing today are completely different.

The first programming language we learned at school was C. After that, we learned data structures and algorithms with C — and then object-oriented programming with C++. And what am I doing now as a job? HTML, CSS, and JavaScript.

Regardless of what you did or learned before, you can always switch between programming languages, jobs, and even working fields. For example, you can start your career as a back-end developer and switch later to be a mobile-application developer.


It’s possible because once you learn the fundamentals of programming (with C, C++, or JavaScript, etc.), later you can learn any programming language, any syntax. Sure, there are differences between them, but once you understand the concepts of programming, later learning another programming language will be much easier and faster.
<h3>Tip #3: Take online courses, watch tutorials, and read e-books</h3>

Regardless of having no idea how to write code — and whether you’re a junior or a veteran with several years of experience — taking an online course or watching tutorials is always helpful.

Coding tutorials show step by step how to implement/code something with a specific language or how to use a tool. We can read documentation, e-books, or articles and understand way faster than before. Or we can watch videos, online courses, or tutorials, and since we’re able to see the instructor’s screen, we can exactly see how things are implemented.

Finally, when we get stuck somewhere, we can ask questions in the comment section — the instructor or someone else watching that course can reply and help us. Online resources are today a big part of our learning process.
<h3>Tip #4: Practice</h3>

The last tip for this section is to practice — write code. This one is also difficult at the beginning. But it’s the strongest way to learn how to program.

So what you can do is:

<ul>
<li>Start with writing the code you see/read on tutorials</li>
<li>Solve exercises and answer questions you find on the web</li>
<li>Start working on personal projects, even if you don’t earn money</li>
<li>Open a GitHub account — collaborate on other projects, and upload your projects open source</li>
<li>Discuss and share ideas with your friends/colleagues</li>
<li>The best learning comes by teaching, so learn by teaching</li>
</ul>

<h2>2. Dealing With Problems/Errors Every Day</h2>

At some point, each of us feels stuck like this guy in the picture. In daily programming, you’ll face various errors during the development process, and sometimes you’ll have no idea how to fix them.

Furthermore, sometimes you won’t receive errors and your code will run — but not as expected. So what should you do?
<h3>Tip #5: Learn reading the errors</h3>

Errors are an important part of the development process. When you run your code and it fails by receiving errors, don’t panic.

<b>Errors tell you what or where something is wrong.</b>

If you understand what the error message means, you can fix it immediately. Otherwise, you can google the error message and probably someone else has already asked it, and there you can find out what’s wrong.
<h3>Tip #6: Learn debugging</h3>

As I mentioned above, when we see errors, defects, or unexpected things in our code during the development process, the best way to advance is through debugging.

    “Debugging is the process of finding and resolving defects or problems within a computer program that prevent correct operation of software or a system”. — Wikipedia

Learning how to debug is an important skill and very helpful for finding errors and bugs. This video by Web Dev Simplified gives great debugging tips and examples of errors.
<h3>Tip #7: Ask for help</h3>

If you’re still struggling, then you can ask a colleague on your team or another team — or your friend, instructor, etc. They can see maybe what you can’t see. Sometimes the mistake is just in front of you, but you can’t see it.

<b>Communication and helping others is a part of programming.</b>

Even if programming looks like an antisocial job, it’s not. The more you communicate with other people, the more successful you and your code becomes. Asking for help and helping others is a really good way to solve problems.
<h3>Tip #8: Leave it and come back tomorrow</h3>

I don’t know how many times this has happened to me, but it’s like magic: The day before I got stuck somewhere and can’t solve the problem. I turn off the computer and go home, and when I come back the next day, I solve it within five minutes.

You need to rest, but your brain continues thinking about the problem. You go to sleep, and your brain still thinks about it. Sometimes, it finds where the problem is, and you even don’t realize it. And when you go back to work, suddenly you find the solution. This happened to me many times — it’s kind of funny, but leaving and coming back the next day can help too.
<h2>3. Following Rapid Changes in Technology</h2>

Since we’re working inside the tech and development sector, everything changes rapidly. Almost every year comes with a new framework, library, tool, and many more things. And, unfortunately, what we already know becomes outdated.

So what you can do is:
<ul>
<li>Sign up for a couple of newsletters from blogs that follow what’s new in tech</li>
<li>Follow social-media accounts and trends over on Twitter, Facebook, and other platforms</li>
<li>Listen to podcasts (which is really time-saving)</li>
<li>Remember, we can’t know everything. We can’t follow every new thing, so just invest your time in what’s really needed/important based on your work and project.</li>
</ul>

<h3>Conclusion</h3>

So these are the three common difficulties of programming I’ve seen so far. There are even others I might cover in another article later. Every profession has upsides and downsides, and none of them are easy. I believe personal interest plays a huge role in success in our careers. I hope the experiences I’ve explained in this article help and motivate you to move on and become a better developer.

<b>If you want to learn more about programming, feel free to visit <a href="https://www.codingdocs.com/">our blog</a> and <a href="https://www.youtube.com/channel/UC1EgYPCvKCXFn8HlpoJwY3Q?view_as=subscriber">channel</a></b>.

Thank you for reading!