開源日報 每天推薦一個 GitHub 優質開源項目和一篇精選英文科技或編程文章原文,堅持閱讀《開源日報》,保持每日學習的好習慣。
今日推薦開源項目:《自動處理 AutoHotkey_L》
今日推薦英文原文:《Failing Forward》

今日推薦開源項目:《自動處理 AutoHotkey_L》傳送門:GitHub鏈接
推薦理由:AutoHotkey,這玩意能幫你執行一些自定製的宏,從而完成一些重複性很強的操作——登錄遊戲或者打開 VSCode 與 XShell 等等工作用得上的工具。雖然寫好宏可能需要一些時間(有時還需要自己動手確定滑鼠坐標),但是完成之後一定程度的自動化會賺回它們,只需要啟動宏,然後泡杯咖啡或者拿瓶快樂水,回來就可以正式開幹了。
今日推薦英文原文:《Failing Forward》作者:John Martinez
原文鏈接:https://medium.com/better-programming/dealing-with-failing-a-technical-interview-7f043db3711d
推薦理由:如何從基本血崩的面試中找點有用的東西回來

Failing Forward


That』s me in the yellow tie.

I used to play this game called Armageddon. It』s a MUD, short for multi-user dungeon, which is basically a text-based online role-playing game. You make a character and are immediately thrust into a world where survival is your number one priority. The game is brutal. The world, at some point thousands of years ago, suffered a terrifying catastrophe that transformed the vast majority of the planet』s surface into an inhospitable desert.

There』s very little that can protect or save you. Venturing out into the desert on your own can mean dying of starvation or thirst, getting lost in a sandstorm, falling off a cliff, sinking into a sea of ash, or getting mauled by any number of horrible and hungry creatures. Worst of all, when your character dies, they』re dead for good. The game』s iconic mantis head appears as your character loses their last hit point, effectively sending you back to the game』s main menu.

I』ve seen this head dozens of times.

The game can be incredibly difficult for new players to get into. You spend so much time making your character and writing out this interesting backstory and description, but you go outside the gates and instantly get lost in a sandstorm and eaten by a giant dung beetle. What are you supposed to do in that situation?

I was very persistent. I made a new character, only to get them killed by accidentally starting a fight with an NPC guard. I have new information regarding how to play: avoid giant dung beetles and make sure you type the correct keywords. OK, time for a new character.

Eventually through trial-and-error, I learned how to survive in the game. My starting skills weren』t high enough to fight off any monsters, so I needed to find somewhere I could train them up safely. There』s a newbie-friendly guild you can join that helps you level up your fighting skills. The way your character learns new skills? Through failure. When you fail at something, you gain a skill up. Hit someone with your sword? Fantastic, you deal damage. Miss someone with your sword? Dang, but now you』re ever so slightly less likely to miss again.

Armageddon taught me a lot about failure. More specifically, learning through failure. I became enamored with this type of system. Most games reward winning, but Armageddon rewarded losing. Perhaps it wasn』t an immediate reward, but eventually, after dozens upon dozens of misses and failures, your character』s skills would grow and become legendary. That dung beetle that killed me so many weeks ago? Now it』s a cakewalk. Sandstorms? Now my character can navigate with his eyes closed. All of these things that seemed impossible, through failure, have become not only possible, but easy.

Up until that point I had never really considered failure to be a worthwhile option. I would beat myself up for failing. Instead of reflecting on everything I did, I would beat myself up for everything I didn』t do. It was pure hindsight. I was so afraid of failure that I found myself simply refusing to even try. After all, losers fail. But if I don』t fail, then I can』t possibly be a loser!

Unrelated album cover.

I recently had a technical interview for a company I』m incredibly interested in. I spent hours preparing for it—studying technical interview questions, doing problems at home, speaking with other employees. The day of the interview I felt ready. Nervous, but ready.

Five minutes in, I realized I was done for. The interviewer laid out their first question, and I felt like they might as well have asked me to perform brain surgery. I was in over my head. None of my studying had prepared me for this!

Old me would』ve shut down. Old me would』ve curled into a fetal position and eaten a box of Oreos in shame. But I』m not old me. I』m current me, and when the anxiety that so often precedes failure felt like it was beginning to creep into my psyche, a thought popped into my head: 「I am not at all prepared for this, so I』m going to spend the next hour learning everything I can.」

I did exactly that. I started asking the interviewer all sorts of questions, and by changing the context of that hour from 「an interview」 to 「a learning experience,」 I could feel all of the anxiety welling up inside me fade away. I felt confident asking the interviewer for clarification and additional info. I didn』t stop pressing him until I felt like I understood what he was asking of me. From there I started coding as best I could, taking his advice along the way without feeling like I was messing everything up.

Eventually, I managed to get through the first part of his question. The second part came, and I was completely unequipped to answer it. No worries, my anxiety was gone. I wasn』t even thinking about the interview at this point. It was almost a tutoring session, a free one-hour class.

In that hour I think I learned more about recursion, complex problem solving, problem framing, and ternary operators than I did in the past few weeks of study and practice. I thanked my interviewer graciously and earnestly. When the phone call ended, I couldn』t help but laugh. I was so out of my element, and it didn』t even matter!

Just like my character in Armageddon, I learned a little bit from that failure. Maybe that alone won』t be enough to bring me great success, but perhaps the next failure, or the next, next failure will. These ultimately small failures are all adding up to something in the end.

I like to think Armageddon put that little spark into me, and over time that spark became a philosophy that has shaped me into the person I am today. Someone who can confidently say, 「I fail sometimes, and that』s great!」

下載開源日報APP:https://openingsource.org/2579/
加入我們:https://openingsource.org/about/join/
關注我們:https://openingsource.org/about/love/