開源日報 每天推薦一個 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/