开源日报 每天推荐一个 GitHub 优质开源项目和一篇精选英文科技或编程文章原文,坚持阅读《开源日报》,保持每日学习的好习惯。
今日推荐开源项目:《Flexbox传教 solved-by-flexbox》
今日推荐英文原文:《Stuck in the Tutorial Loop as a Developer?》

今日推荐开源项目:《Flexbox传教 solved-by-flexbox》传送门:GitHub链接
推荐理由:Flexbox,弹性盒布局,它的出现的确帮助我们解决了很多难以解决的问题,不再需要繁琐的 CSS 样式,仅需要一些 Flexbox 布局调整就能实现想要的效果,这个项目总结了一些 Flexbox 能大显身手的场合,如果没有 Flexbox 这将变得难以想象。
今日推荐英文原文:《Stuck in the Tutorial Loop as a Developer?》作者:Angad Singh
原文链接:https://medium.com/better-programming/stuck-in-the-tutorial-loop-as-a-developer-2d1a3f76c941
推荐理由:实际在项目中学习肯定比教程里会遇上更多挫折的,但是这是必经之路

Stuck in the Tutorial Loop as a Developer?

With the ubiquity of Udemy courses, YouTube tutorials, and Medium articles, the access to knowledge for a developer is amazing! This is what has enabled several self-taught developers to become full-time employees in the software industry or launch their own start-ups. However, the way a self-taught developer gains enough skills to earn a job or build their own project remains tedious. I taught myself programming and helped my brother and several friends on their journey, and I noticed that we all faced the same issue.

Impostor Syndrome

The lack of a formal structure from a college program has certain benefits but also some drawbacks. Many self-taught developers may think that they are not worthy compared to their colleagues with bachelor’s or master’s degrees in computer science. It sounds ridiculous just writing this. However, I noticed this with myself early on and have a suspicion that this is the case for a few of my fellow risk-taking, self-taught peers. I go into more detail about getting over the impostor syndrome in this article(https://blog.usejournal.com/getting-over-the-impostor-syndrome-ff9afa0f4afc).

Essentially, as a self-taught developer, you will always feel that your colleagues who spent four years getting that degree know something you don’t. With the huge diversity of things you can learn from Udemy, YouTube, Medium, and several other websites, I promise you there will always be something you see there that you don’t know — no matter how experienced you are.

You will simply have to accept the fact that you can’t learn everything. Forcing yourself to go through every single tutorial you come across is like trying to catch every snowflake when it’s snowing outside.

I get the appeal. You are trying to “outdo” your university-taught colleagues by learning things they don’t know. But instead, what you’re doing by going through more language tutorials is learning the same operators, different syntactical sugars, and implementations of data structures like hash tables, arrays, linked lists, etc. in different languages. That’s all. If you are not stuck in the tutorial loop of programming languages, then maybe you are stuck in the loop for frameworks. Do you really need to learn how to create a REST API in Django, Ruby on Rails, Koa, and Spring if you know how to do it in Express.js? Or learn Vue, Angular, and Svelte if you know how to create a full-fledged website in React? True, there are special cases for several other frameworks, but you should only look to branch out into other frameworks once you have mastered one. This will also make you acknowledge the quirks of the framework/language and appreciate it more.

The points I mentioned above even go for developers who have graduated with computer science degrees. With the wide array of tutorials available and the pace at which newer technologies are released, it is quite easy to feel overwhelmed and think that you don’t know as many technologies as you should. This is mostly never the case.

Instead, the issue with a lot of developers is that they don’t know their few core technologies deeply enough.

Stuck in a Comfortable Cage

Ever heard of Stockholm Syndrome? This is when a kidnapped hostage becomes attached to their captor. Or have you ever had a friend or a relationship where the person wasn’t good for you and you knew it, but you still stuck with them because it was comfortable and you didn’t want to leave them and start looking for someone else because of a fear of uncertainty?

That’s colloquially known as being in the “comfort zone.” It’s basically what you’re going through with software tutorials. It’s quite comfortable to learn for loops, arithmetic operators, hash tables, arrays, stdin, and stdout in a new language — basically concepts that you already know. Finishing such tutorials and re-learning the concepts you already know in a new language, a new framework, or the same framework/language but in a new way can make you feel productive even though deep down inside, you know that you are not truly growing. And the best way to grow is to try to create your own project.

Fear of Failure

But what if I try to create something and fail?

Let’s be realistic: If you are a beginner, you can’t expect yourself to create the next League of Legends, YouTube, or Shazam.

Hell, no one person can. Such projects need huge scalability, amazing infrastructure to handle the traffic as well as serve up a huge amount of static data.

So I will fail? What is failure if you start small? Can you fail at creating a single-page website? Only if you are really determined to fail. Start small. Try to create something just outside of your “comfort zone.” Or if you’re super ambitious, go big and you can re-draw the finish line closer to you if you feel like the project is too much to handle.

Boring to Recreate Something

One reason to not break out of the tutorial loop and start creating something is because it is boring to remake a to-do list app, create an Instagram clone, or a weather app. These are all common, unimaginative avenues every programmer has seen in tutorials. The issue for a beginner developer is that your skills are limiting your ability to create something original — or at least that is what you believe.

How to Break Out of This Loop

There’s one thing that is unique. You. Create your own website where you write about yourself and you will later have a portfolio when you have a lot of projects under your belt. Make the website as unique as you and, oh yeah, ditch WordPress! Here are some other options once you have your website in place:
  • Add CI/CD to your website so every time you push code to your website’s repository, it is bundled and deployed to your server.
  • Write tests for this website.
  • Create a REST API serving dummy data and deploy it free of cost on Heroku.
Once you get the hang of it, now you can actually brainstorm a bigger, full-fledged project and develop it. Or you can choose to contribute to an open-source project if you are not the creative type and don’t want to come up with an idea.

Frustrating?

As you go deeper into your project or the open-source project, you will face bugs. It is an inevitable path you must cross on the road to becoming a software developer.

Through millions of Google searches, Stack Overflow posts, boring documentation pages, and trying different solutions, you will realize that in the process of solving these tedious bugs, you learned a bunch of new things and figured out how to solve the issues and complete the feature — if not the whole project. That is amazing! You can now proudly call yourself a software engineer/developer/programmer/ninja.
下载开源日报APP:https://openingsource.org/2579/
加入我们:https://openingsource.org/about/join/
关注我们:https://openingsource.org/about/love/