by Logan Wright
洛根·賴特(Logan Wright)
由衷的信來激勵有抱負的開發人員 (A heartfelt letter to inspire the aspiring developer)
I’m writing a letter to my friend. You should read it. He studies Computer Science, and he hates it. I build React Apps and I love it. I want him to love it too. First, let me set the tone with a little imagery.
我在寫信給我的朋友。 您應該閱讀它。 他學習計算機科學,但他討厭它。 我構建了React Apps,我喜歡它。 我也希望他也喜歡。 首先,讓我用一些圖像設置基調。
I am writing to you in the dark, cluttered room of my father’s ‘mancave’. It’s hardly that. The only thing in here that would make it a mancave is his assorted pipe tobacco and hand-carved pipes. As I sit at my computer, I can hear crickets chirping in the night, and since it rained yesterday, the croaking of frogs is more of a roar than anything else. I am glad to grow up in an environment such as this.
我正在父親父親的“洞穴”陰暗,混亂的房間里給你寫信。 幾乎沒有。 在這里,唯一能使它變得空洞的是他的各種煙斗煙斗和手工雕刻的煙斗。 當我坐在電腦旁時,我可以聽到the在夜里chi叫的聲音,而且由于昨天下雨了,青蛙的啼叫聲比什么都更大。 我很高興在這樣的環境中成長。
Today has been one of those days. You know, the kind where your thoughts scream out at you from deep inside your mind. Those thoughts have been about a friend of mine. He studies computer science at a university hotter than hell itself, and where every Walmart greeter knows the name of the Rodriguez Seven (it’s an inside joke. Maybe you’ll be a part of one some day (and that’s a quote from The Office)).
今天是那些日子之一。 您知道,那種想法從您的內心深處向您尖叫。 這些想法是關于我的一個朋友。 他在比地獄本身更熱的大學里學習計算機科學,而且每個沃爾瑪問候者都知道羅德里格斯七世的名字(這是一個內在的笑話。也許您有一天會成為其中一部分(這是The Office的引述) )。
He’s exhausted and limping to the finish line. Computer Science has held him hostage with the allure of a wealthy future. We all see the appeal. Who wouldn’t want to ship code for Amazon, or build React 17? In most of my dreams, I’m working with Will Smith as “Agent L”, writing React components powerful enough to reduce a lumbering cockroach-man to powder. We all have these dreams. But in the day to day, it is so easy to become bogged down with drudgery and learning.
他已經精疲力盡,到終點線。 計算機科學以豐富的未來魅力使他成為人質。 我們都看到了吸引力。 誰不想為Amazon交付代碼或構建React 17? 在我的大部分夢想中,我與Will Smith一起工作,是“ Agent L”,他編寫了功能強大的React組件,可將笨拙的蟑螂打成粉末。 我們都有這些夢想。 但是在日常情況下,很容易陷入繁瑣的工作和學習中。
I write this letter to my friend, and he knows who he is. I love him dearly and I hope that he continues on the incredible path of computer science before him. I invite the world to see what it takes to love (and excel in) Programming. Do take these words to heart.
我寫這封信給我的朋友,他知道他是誰。 我深愛著他,希望他繼續走在他面前的計算機科學領域。 我邀請世界各地的人們去了解熱愛(并擅長)編程的知識。 切記這些話。
首先,走一條路 (Firstly, Walk a Path)
No one will ever arrive at their desired location without knowing what that location is. Programming is no different. Every keyboard cowboy from Reddit to Facebook say, “You must learn X before you can understand Y”.
沒有人會在不知道那個位置的情況下到達他們想要的位置。 編程沒有什么不同。 從Reddit到Facebook的每個鍵盤牛仔都說:“ 必須先學習X,然后才能理解Y”。
Whether on Twitter, or Stack Overflow, there’s more than enough controversy over what to learn. The university is accommodating to learning, yes. But the community is screaming at us that the university is not the final authority on learning how to code. The world of CS is so much broader than academia tells us, and it’s time for you to see it.
無論是在Twitter上還是Stack Overflow上,關于學習內容的爭議都綽綽有余。 大學正在適應學習,是的。 但是社區向我們尖叫,大學不是學習編碼的最終權威。 CS的領域比學術界所講的要廣得多,是時候讓您看到它了。
Let me help you figure out your path. What do you want to do?
讓我來幫助您確定您的道路。 你想讓我做什么?
您可以學習Web開發 (You could learn Web Development)
It’s so cool. It’s not about designing websites anymore. There are front-end frameworks that render data from the browser. There are back-end frameworks that use almost any language and can compute complex algorithms and make intelligent decisions. With Chrome’s V8 Engine, JavaScript moving to both sides of the tech stack, and more free tools than I can count on my mother’s toes, Web Development has evolved. I love it. We have the ability to run applications that are just as powerful as most desktop apps, but are online. IT’S INCREDIBLE!
這太酷了。 它不再是設計網站。 有一些前端框架可從瀏覽器呈現數據。 后端框架幾乎使用任何語言,并且可以計算復雜的算法并做出明智的決策。 隨著Chrome的V8引擎,JavaScript轉移到技術堆棧的兩端,以及比我母親更能指望的更多免費工具,Web開發得到了發展。 我喜歡它。 我們能夠運行與大多數桌面應用程序一樣強大但在線的應用程序。 太不可思議了!
Look at the Google Doc’s suite. It’s a word processor in the friggin browser! That was nearly impossible 10 years ago! My Smart TV renders with Web Tech. Web Tech composes my favorite desktop apps. Half of my Android apps — drunken with Web Tech. Web Development is so much more than building websites!
查看Google Doc的套件。 這是friggin瀏覽器中的文字處理器! 十年前這幾乎是不可能的! 我的智能電視通過Web Tech進行渲染。 Web Tech構成了我最喜歡的桌面應用程序。 我有一半的Android應用程序-喝醉了的Web Tech。 Web開發不僅僅是構建網站!
您可以學習人工智能或機器學習 (You could learn Artificial Intelligence or Machine Learning)
I’m not even qualified to be in the same room as anyone who does this for a career. I have friends building a project that compares songs for similarity. My phone recognizes my voice. Google knows when I drive to work every morning and that I go to the store on Saturday. Someone has the privilege of building that stuff!
我什至沒有資格與從事此職業的任何人在同一個房間。 我有朋友建立一個比較歌曲相似性的項目。 我的電話可以識別我的聲音。 Google知道我每天早上什么時候開車去上班,星期六我去商店。 有人有幸建造這些東西!
您可以構建一個操作系統 (You could build an Operating System)
I would love to work for Red Hat some day.
我希望有一天能為Red Hat工作。
您可以構建應用程序 (You could build applications)
How about ones that analyze data and help companies make major decisions about their futures?
如何分析數據并幫助公司做出有關其期貨的重大決策?
您可以構建可以幫助人們的開源軟件 (You could build Open Source Software that helps people)
I’m working on an Open Source Soup Kitchen Management tool right now. It’s not very glamorous and only a few people will ever know it exists. But I am building it. And it’s going to help someone. And no one can ever take that away.
我現在正在使用開源湯廚房管理工具。 它不是很迷人,只有很少的人會知道它的存在。 但是我正在建造它。 它將幫助某人。 而且沒有人能拿走它。
Yes, my list might not make sense, but who cares! My point is that you’ve got to figure out something that moves you and run toward that direction. If you want to help kids learn to code, teach them and build a software that helps. After you start running, you can figure out the languages and the tools to help get you there. Chances are, you already know them. Which brings me to my next point.
是的,我的清單可能沒有意義,但誰在乎呢! 我的觀點是,您必須找出一些可以使您前進并朝著那個方向前進的東西。 如果您想幫助孩子學習編碼,請教給他們并建立可以幫助您的軟件。 開始運行后,您可以找出語言和工具來幫助您到達那里。 很有可能,您已經知道它們。 這使我想到了下一個要點。
建立直到手指流血 (Build Until Your Fingers Bleed)
Okay, maybe they’ll bruise. I woke up with sore fingers once a few months ago. It was the best feeling I’ve ever had.
好吧,也許他們會瘀傷。 幾個月前我一次用酸痛的手指醒來。 這是我有過的最好的感覺。
The greatest thing about programming is that you learn by doing Reps. Programming is NOT a spectator sport. You can’t just watch 500 Youtube videos and learn how to manage a Redux store inside of your React application. Trust me, I’ve tried. Programming must be learned through building.
編程的最大好處是您可以通過做代表學習,而編程不是一場旁觀者。 您不僅可以觀看500個Youtube視頻,還不能學習如何在React應用程序內部管理Redux存儲。 相信我,我已經嘗試過了。 編程必須通過構建來學習。
You’ve got to build and fail.
您必須建立并失敗。
Then build, and fail some more.
然后構建,然后再失敗。
And then bang your head against the wall… and then fail some more.
然后將頭撞到墻上……然后再失敗。
And then have a major break through.
然后取得重大突破。
And then build a full application.
然后構建一個完整的應用程序。
And then build another, but failing less.
然后構建另一個,但失敗更少。
And then another, with your fingers moving so fast across the keyboard that some girl at Starbucks confuses your thumb for Vin Deisel in FF7.
然后是另一種,手指在鍵盤上的移動如此之快,以至于星巴克的某位女孩混淆了FF7中Vin Deisel的拇指。
If you want to love programming again, you’ve got to build things that you love. I know it’s hard to go to class. I know it’s hard to write code when you feel like it doesn’t matter and that no one will read it. I know you feel like you can’t do this.
如果您想再次喜歡編程,則必須構建自己喜歡的東西。 我知道上課很難。 我知道當您覺得沒關系并且沒有人會閱讀時,很難編寫代碼。 我知道您覺得自己做不到。
But listen to me, you absolutely can. You’re brilliant, man. People don’t just go into coding because “it’d be cool”. You did it because you’re an intellectual adept. You just don’t love it right now. If you want to love it, make something that you will love.
但是聽我說,你絕對可以。 你真聰明,伙計。 人們不只是因為“很酷”而去編碼。 您之所以這么做,是因為您是知識分子。 您只是現在不喜歡它。 如果您想愛它,那就做點自己喜歡的事情。
Build something as a birthday present to your little cousins. Build something to tell your mother that you appreciate her. It could be that it’s a phone app that just says you love her. Or maybe a Java application that sends texts messages with family inside jokes? Don’t build software for the rest of the world. Build it for you. You can do it. I’ve heard some of your ideas. Don’t be afraid to chase your dreams. Gandalf wasn’t, and he defeated the Balrog.
給你的小表親們做些生日禮物。 建立一些東西來告訴你的母親,你對她表示感謝。 可能是這是一個電話應用程序,只說你愛她。 還是一個Java應用程序可以和家人一起發短信發送笑話? 不要為世界其他地方構建軟件。 為您構建。 你能行的。 我聽說過你的一些想法。 不要害怕追逐自己的夢想。 甘道夫不是,他擊敗了Balrog。
相信過程 (Trust the Process)
What’s the Big O notation of a brute force algorithm? What’s the Big O notation of a merge sort? What’s the Big O notation of this split sort? Who cares, right! I know that’s what you’re thinking. But trust the process.
蠻力算法的Big O符號是什么? 合并排序的Big O符號是什么? 這種拆分類型的Big O符號是什么? 誰在乎,對! 我知道這就是您的想法。 但是請相信這個過程。
Regardless of what I believe about the university system, you’ve got to trust the process. It’s not about Big O. It’s not about Lex and Yacc. It’s about changing the way you think.
無論我對大學系統有何看法,您都必須信任該過程。 這與Big O無關。與Lex和Yacc無關。 這是關于改變您的思維方式。
I want you to take a step back and look at what computer science is. It’s a crazy mixture of math, computer architecture, and algorithmic thinking! You’re incredible for even starting this journey, much less almost finishing it! When you take that step back, ask yourself why. Why does all this matter? Why Big O, why Algorithms at all?
我希望您退后一步,看看什么是計算機科學。 它是數學,計算機體系結構和算法思維的瘋狂結合! 即使開始這一旅程,您也難以置信,更不用說快完成了! 當您退后一步時,問自己為什么。 為什么這一切都重要? 為什么是大O,為什么根本有算法?
Remember, you, a human, are learning how to communicate with a machine. You’re breaking down HUGE problems into tiny bite sized chunks and telling a robot how to do it. That’s all this is about. How do you get those tiny little web robots (in my case) or Java robots (I guess?) to do your bidding? If you can master this way of thinking, you can do ANYTHING you want to on the internet. I’ll say it again. You are being given the tools that will allow you to build anything. Anything.
請記住,您,一個人,正在學習如何與機器通信。 您正在將巨大的問題分解成很小的一小塊,然后告訴機器人該怎么做。 這就是全部。 您如何讓那些小型的Web機器人(以我為例)或Java機器人(以為是?)進行出價? 如果您能掌握這種思維方式,那么您可以在互聯網上做任何您想做的事情。 我再說一遍。 您將獲得可以進行任何構建的工具。 什么都可以
The only thing you’ve got to do is trust the process. Do the reps. Get your fingers on the keyboard and put in the time. Look at how far you’ve come. Do you remember your first programming class? When you were falling asleep because it was so easy. But the next day, you peed your pants in class because an array was basically that giant dog that guarded the Sorcerer’s Stone?
您唯一要做的就是信任該過程。 做代表。 將手指放在鍵盤上并投入時間。 看看你走了多遠。 您還記得您的第一門編程課嗎? 當您入睡時,因為它是如此簡單。 但第二天,你撒尿你的褲子在課堂上,因為數組基本上是巨大的狗看守魔法石?
Look at how much stronger you’ve gotten. Look at the picture a few paragraphs up. Your brain looks like that dude’s arms! And it didn’t happen overnight. You can do this. Trust the process.
看看你變得有多強壯。 看圖片幾段。 你的大腦看起來就像那個家伙的手臂! 而且這不是一夜之間發生的。 你可以這樣做。 相信過程。
最后,教人如何編碼 (Finally, Teach Someone How to Code)
I love what you’re doing with those kids. Teaching them Unity and game development is a blessing beyond measure to them. Some of those kids are going to have families one day. And you cared enough about them to show them a future with programming.
我愛你在和那些孩子在一起。 教給他們Unity和游戲開發對他們來說是無可奈何的福。 這些孩子中有一些將有一天有家人。 您對它們足夠關心,可以通過編程向他們展示未來。
Keep teaching those kids. But also, find someone else. Every semester, a group of new wide-eyed freshman walk onto that college campus. Find a small group of them and teach them how to code.
繼續教那些孩子。 而且,找到其他人。 每個學期,一群新生的大一新生走進那所大學校園。 找到其中的一小部分,并教他們如何編碼。
Of course, don’t just stop there. Teach them everything you’ve learned about life and friendship. But teach them. The knowledge we have within us grows when we have someone to teach. And when we share our passions, we find that we only burn hotter.
當然,不要只是停在那里。 教給他們所有關于生活和友誼的知識。 但是教他們。 當我們有人教的時候,我們內在的知識就會增長。 當我們分享自己的激情時,我們發現自己只會變得更熱。
I have a few discord friends that ping me a thousand times a day asking questions about Front-end Development, Databases, and GraphQL. These new friends mean a great deal to me, and I’m going to make damn sure that they succeed as Software Developers. I know that you can do the same.
我有幾個不和諧的朋友,每天向我發送一千次ping,詢問有關前端開發,數據庫和GraphQL的問題。 這些新朋友對我來說意義重大,我將確保他們作為軟件開發人員取得成功。 我知道您也可以這樣做。
My friend, I hope this letter warms your heart and gives you encouragement to keep pursuing this field. You’re an incredibly talented young man and I’m excited to see what your future looks like. Please consider what I’ve written, I’ve been thinking about these very thoughts for over a month now. I’m sorry it’s taken so long to compose them.
我的朋友,我希望這封信能溫暖您的心,并鼓勵您繼續追求這一領域。 您是一個非常有才華的年輕人,很高興看到您的未來。 請考慮我寫的內容,我已經思考這些想法已有一個多月了。 對不起,撰寫它們花了這么長時間。
And to you, reader. I hope that this brings encouragement to you. You CAN do this. You didn’t pick up programming by accident. You ARE smart enough. You ARE good enough. Yes, it IS hard. But I’ve found that in this life, if it’s worth having or worth doing, it’s not easy. Keep trucking along.
對您來說,讀者。 我希望這會給您帶來鼓勵。 你可以這樣做。 您不是偶然地進行編程的。 你足夠聰明。 你已經夠好。 是的,很難。 但是我發現,在這一生中,如果值得擁有或值得做,這并不容易。 繼續運輸。
I remember a time where I felt like my programming journey was like wading through quicksand and that every article and video I watched only dragged me deeper and closer to my own demise. I look back on those days and laugh, what I thought was a giant hole of quicksand actually turned out to be the finest training ground a young developer could ask for.
我記得有一段時間,我覺得自己的編程之旅就像在流沙中徘徊,而我看過的每篇文章和視頻只會使我越來越深地接近自己的命運。 我回首那些日子,笑了,我認為那是一個巨大的流沙洞,實際上竟然是年輕的開發人員可以要求的最好的訓練場。
To my friend, and to you, dear reader…
親愛的讀者,對我的朋友和你來說……
With much love,
非常多的愛,
Logan
洛根
翻譯自: https://www.freecodecamp.org/news/a-heartfelt-letter-to-inspire-the-aspiring-developer-a2ab3788c7d2/