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/