开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
今日推荐开源项目:《鼠标?不存在的 vimium》
今日推荐英文原文:《How to Deal With the Difficulties of Programming》
开源日报第708期:《鼠标?不存在的 vimium》
今日推荐开源项目:《鼠标?不存在的 vimium》传送门:GitHub链接
推荐理由:对于那些极度追求效率的家伙们来说,把手从键盘切换到鼠标上是一个很麻烦的工作——所以这世界上有了 Vim 这样的编辑器能让你丢开鼠标。这个浏览器插件发扬了丢开鼠标的伟大理想,让你只需要键盘上使用快捷键就能完成一系列操作,如果你的确有想要挑战键盘流极限的理想的话完全值得一试。
今日推荐英文原文:《How to Deal With the Difficulties of Programming》作者:Cem Eygi
原文链接:https://medium.com/better-programming/how-to-deal-with-the-difficulties-of-programming-4258887922f9
推荐理由:不管什么困难我们都不要怕,要微笑着面对它。

How to Deal With the Difficulties of Programming

Anyone can learn to program with the right effort and enough time

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.

Is Programming Really Difficult?

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.

1. The Learning Process

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 channel and a blog) started to create programming tutorials, write e-books, and share their knowledge on various platforms on the internet.

Tip #1: Give yourself time

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.
开源日报第708期:《鼠标?不存在的 vimium》
Photo by Leonardo Toshiro Okubo on Unsplash

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

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.
开源日报第708期:《鼠标?不存在的 vimium》
Photo by NeONBRAND on Unsplash

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.

Tip #3: Take online courses, watch tutorials, and read e-books

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.

Tip #4: Practice

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

2. Dealing With Problems/Errors Every Day

开源日报第708期:《鼠标?不存在的 vimium》
Photo by Tim Gouw on Unsplash

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?

Tip #5: Learn reading the errors

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

Errors tell you what or where something is wrong.

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.

Tip #6: Learn debugging

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.

Tip #7: Ask for help

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.

Communication and helping others is a part of programming.

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.

Tip #8: Leave it and come back tomorrow

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.

3. Following Rapid Changes in Technology

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:
  • Sign up for a couple of newsletters from blogs that follow what’s new in tech
  • Follow social-media accounts and trends over on Twitter, Facebook, and other platforms
  • Listen to podcasts (which is really time-saving)
  • 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.

Conclusion

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.

If you want to learn more about programming, feel free to visit our blog and channel.

Thank you for reading!
下载开源日报APP:https://openingsource.org/2579/
加入我们:https://openingsource.org/about/join/
关注我们:https://openingsource.org/about/love/