我为期一个月的GitHub的经验教训

by JS

由JS

我为期一个月的GitHub的经验教训 (Lessons from my month-long GitHub commit streak)

“I want to learn JavaScript. Like, really learn it. Like, truly understand it.” — me in November 2016

“我想学习JavaScript。 喜欢,真正地学习它。 喜欢,真正了解它。 ” —我在2016年11月

A lofty goal, for sure. Especially for someone who’s only been programming for about six months, decidedly in not-JavaScript (Ruby, if you must know). A particularly daunting task after you’ve been told over and over again how weird JavaScript is. But I can be stubborn.

确实有一个崇高的目标。 特别是对于只从事了大约六个月编程工作的人,绝对是使用非JavaScript编程的(如果您必须知道,则使用 Ruby) 一项特别艰巨的任务 一遍又一遍地告诉您JavaScript多么奇怪 。 但是我可能很固执。

About two months ago, I wrapped up a stint at The Firehose Project, where I studied part-time while holding down a day job as an attorney. It was a great experience. I learned about building complex Ruby on Rails applications, test-driven development, and more. But once the program ended, I wanted to learn more about JavaScript — the language powering so much of the web.

大约两个月前,我结束了The Firehose Project的工作 ,在那里我从事兼职工作 ,同时担任律师的日常工作。 这是一个很好的经验。 我了解了如何构建复杂的Ruby on Rails应用程序,测试驱动的开发等等。 但是,一旦程序结束,我想学习更多有关JavaScript的知识-JavaScript是支持大量Web的语言。

I turned to freeCodeCamp, the resource I initially used to learn basic HTML and CSS before enrolling in The Firehose Project. freeCodeCamp has a robust, project-driven, JavaScript-oriented curriculum that seemed like the perfect option to master the basics.

我转向freeCodeCamp ,这是我最初在注册Firehose Project之前用来学习基本HTML和CSS的资源。 freeCodeCamp具有健壮的,以项目为导向,面向JavaScript的课程,这似乎是掌握基础知识的理想选择。

Without the structure of a paid program, however, I feared that I would fall victim to procrastination or otherwise come up with some excuse as to why I should stop when things got hard.

但是,如果没有付费计划的结构,我担心自己会成为拖延的受害者,否则我会提出一些借口,以求在遇到困难时我应该停下来。

I came up with a solution: work through the freeCodeCamp projects and make at least one commit to GitHub every single day for at least one month. No matter what. No matter whether I felt like coding. No matter how I was feeling on any particular day. And I’m happy to say I accomplished my goal. And what I learned surprised me.

我想出了一个解决方案:在freeCodeCamp项目中工作,并在至少一个月中的每一天至少对GitHub进行一次提交。 无论。 不管我是否想编码。 不管我在任何一天的心情如何。 我很高兴地说我实现了我的目标。 我学到的东西使我感到惊讶。

第一课:即使在我不喜欢编码的日子里,一旦强迫自己开始,我经常会快乐地工作几个小时。 (Lesson one: even on days when I didn’t feel like coding, I often happily worked for hours once I forced myself to get started.)
“The pleasures of not writing are so great that if you ever start indulging them you will never write again” — John Updike.
“不写作的乐趣是如此之大,以至于一旦您沉迷于它们,就再也不会写作了。” —约翰·厄普代克(John Updike)。

It’s an awful idea to just sit around waiting for the right moment or inspiration to strike. While this idea of waiting for one’s muse mostly comes up in creative fields, a variation of it can take hold in other disciplines.

只是坐在那里等待正确的时刻或灵感来袭是一个可怕的想法。 虽然这种等待缪斯女神的想法主要出现在创意领域,但它的一种变体可以在其他学科中扎根。

Don’t wait until you’re “in the mood to code” or until you’ve thought of a great idea for a new app. Don’t wait for inspiration. Just start.

不要等到您“打算编写代码”或等您想到一个新应用的好主意时再等。 不要等待灵感。 刚开始。

If you don’t have any active projects, log on to Code Wars and do a few kata. Make a simple implementation in that framework you’ve been meaning to check out. This field is vast enough that there is always something you could be working on.

如果您没有任何活动的项目,请登录Code Wars并进行一些操作。 在您一直想签出的那个框架中做一个简单的实现。 该场是广阔的,以至于总有一些东西 ,你可以工作。

Besides, the simple act of starting might inspire you to continue.

此外,简单的开始可能会启发您继续。

During the last month, there were more than a couple days where, after a long day at work, the last thing I wanted to do was sit down at my desk at home and struggle with some coding problem. But more often than not, once I started working, I found it easy to keep going.

在过去的一个月中,有超过两天的时间,经过一整天的工作之后,我要做的最后一件事是坐在家里的办公桌前,遇到一些编码问题。 但是通常,一旦我开始工作,我发现继续前进很容易。

The mind has a terrible way of making mountains out of molehills. Don’t fall for it.

头脑有一种糟糕的方法,可以使人们摆脱困境。 不要为它而堕落。

第二课:我了解到我能够在一段时间内致力于某件事-不是因为我为此花了很多钱,或者不是因为我需要我-而是因为我设定了我想要实现的目标。 (Lesson two: I learned that I was able to commit to something for a period of time — not because I was paying a lot of money for it, or because I was required — but because I set a goal that I wanted to achieve.)

I have trouble staying committed to things I don’t actively find fascinating.

我很难坚持做那些我没有积极发现的事情。

There’s a brief honeymoon phase with every new hobby I pick up where it’s the only thing I can think about during the day. This lasts for about a month and it goes something like this: I’m progressing at a rapid pace, learning something awesome every day. I’m feeling more confident. I start have delusions of grandeur. “I will be a master [pianist / photographer/ artist / songwriter] soon,” I whisper to myself.

在每个新的爱好中,都有一个短暂的蜜月期,这是我白天唯一可以想到的事情。 这个过程持续约一个月,过程是这样的:我的进步很快,每天都在学习一些很棒的东西。 我感到更加自信。 我开始有宏伟的幻想。 “我很快就会成为[钢琴家/摄影师/艺术家/作曲家]的大师,”我自言自语。

And then, all of a sudden, I stop noticeably improving. It gets hard. I hit a wall. The magic goes away. I wonder if maybe this thing isn’t for me after all.

然后,突然之间,我停止了明显的改善。 很难。 我撞墙了。 魔术消失了。 我想知道这东西到底是否不适合我。

Unless you’re a prodigy, you’ve probably experienced something similar. It’s so easy to quit (as anyone who ever briefly saw me with a DSLR around my neck or a sketchbook in my hands can testify). But this is a terrible way to ever get good at anything.

除非您是神童,否则您可能会经历过类似的事情。 退出非常容易(任何曾经在我脖子上戴数码单反相机或手里写有素描本的人都可以作证)。 但这是一门擅长于任何事情的可怕方法。

Learning to program is not easy. And anyone can tell you it’s certainly not always fun. There have been times when I have wanted to give up because I felt I wasn’t progressing quickly enough. But learning to program is more akin to a marathon than a sprint, and it’s important to keep this in mind when you think about your goals, and where you want to be in a few weeks, or a month, or a year. Nobody becomes an expert in this stuff overnight.

学习编程并不容易。 任何人都可以告诉您,这当然并不总是很有趣。 有时候我想放弃是因为我觉得自己进步不够快。 但是学习编程比起短跑更像是一场马拉松比赛,并且在考虑自己的目标以及几周,一个月或一年的目标时要牢记这一点,这一点很重要。 没人会在一夜之间成为专家。

With that in mind, it’s really important to just gut it out and persevere through the tough times.

考虑到这一点,重要的是要克服困难并坚持不懈。

I have long thought my tendency to stop doing stuff when it got boring or difficult was just a personal defect. Something I was bound to live with for the rest of my life. Me, the guy who likes to dabble in everything but is not actually good at any one thing.

长久以来,我一直认为我倾向于在无聊或困难时停止做某事只是个人的缺陷。 我一生都必须与之共存。 我,一个喜欢涉足所有事物但实际上在任何事情上都不擅长的家伙。

It’s true that there’s never been a better time to learn a new skill or hobby — there are so many free resources, and the barrier of entry is often so low, that there’s basically no limit to what you can learn. It’s really incredible and I wouldn’t have it any other way.

的确,从来没有比现在更好的时间来学习新技能或嗜好-有太多的免费资源,入门门槛通常很低,以至于您学到的东西基本上没有限制。 这真是不可思议,我再也没有其他方式了。

But it’s also not so great if you’re like me and have a wandering eye when it comes to interests and hobbies. In 2016, it’s incredibly easy to jump from topic to topic when the going gets tough or the spark fades. If you want to get good (at anything), it’s important to resist this temptation, however strong.

但是,如果您像我一样,并且在兴趣和爱好方面流浪,那也不太好。 在2016年,当事情变得艰难或火花消失时,从一个主题跳到另一个主题非常容易。 如果您想变得出色(无论如何),那么抵抗这种诱惑,无论多么强大,都是很重要的。

Coding and pushing daily commits to GitHub for a month-straight helped me realize that I have the power to stick it out through the tough times and keep going, even when it’s not fun or exciting.

每天对GitHub的提交进行编码和推送已连续一个月,这使我意识到,即使在娱乐性或令人兴奋的情况下,我也有能力在艰难时期坚持并继续前进。

第三课:一致的练习是最好的练习。 (Lesson three: consistent practice is the best kind of practice.)

Consistent practice of a moderate or even short length is better than having a couple marathon sessions once or twice a week. There are tons of studies on practice and training that confirm this, but you will see the evidence for yourself if you take this challenge.

坚持适度甚至短时间的持续练习比每周进行一到两次两次马拉松比赛更好。 大量的实践和培训研究证实了这一点,但是如果您接受这一挑战,您将为自己找到证据。

With consistent practice, you have the opportunity to reinforce what you learned in days prior, before you forget everything. This reinforcement is key to understanding tough programming concepts. It’s not enough to sit down for a few hours, read about how this or prototypal inheritance work and then walk away for a week. If you haven’t completely forgotten what you read by then, well, congratulations on having a better memory than me.

通过坚持不懈的练习,您有机会在忘记所有内容之前,加强前几天学到的知识。 这种增强是理解严格的编程概念的关键。 坐下来几个小时,阅读有关this继承或原型继承的工作方式,然后走一个星期,这是不够的。 如果您还没有完全忘记自己所读的内容,那么恭喜您拥有比我更好的记忆。

The far better tactic is to read, take notes, practice some implementations, and then go back the next day and review what you’ve done. By practicing consistently, and structuring your sessions so you are in a cycle of constantly reviewing old material while also learning new material, you ensure progression while solidifying a foundation of knowledge.

更好的策略是阅读,做笔记,练习一些实现,然后在第二天返回并回顾您的工作 。 通过坚持不懈地练习和安排课程结构,使您处于不断回顾旧材料,同时学习新材料的循环中,可以确保进步,同时巩固知识基础。

第四课:记日记有助于我保持动力。 (Lesson four: keeping a journal helped me stay motivated.)

Seeing all those green boxes on my GitHub profile is awesome, but I chose to also keep a journal of sorts so I could look back on my accomplishments in detail. My journal also allowed me to keep track of all my non-GitHub work, of which there was plenty (because, like I said earlier, once I got started I often did not want to stop).

在我的GitHub个人资料上看到所有这些绿色框都很棒,但是我选择还保留各种日记,以便我可以详细回顾自己的成就。 我的日记还允许我跟踪我所有非GitHub的工作,其中有很多工作(因为就像我之前说的那样,一旦开始,我常常不想停止)。

Your journal can be anything — a Google Doc, a blank notebook, or a notes app on your phone. I chose to go with a small, daily planner that has a calendar laid out for each month and then on subsequent pages, space for writing about each day. At the end of every night, I would check off the day in the calendar section and then write some notes about what I did that day. Let me tell you, it feels incredible to check those boxes.

您的日记可以是任何内容-手机上的Google文档,空白笔记本或记事应用。 我选择了一个小型的每日计划器,该计划器每个月都有一个日历,然后在随后的页面上留出每天写的空间。 每天晚上结束时,我都会在日历部分检查当天的日期,然后写下一些有关当天的工作记录。 让我告诉你,勾选这些复选框实在令人难以置信。

Whenever you’re feeling discouraged or down, you can look back into your journal and see how far you’ve come. I was really surprised at how empowering this turned out to be.

每当您感到沮丧或沮丧时,您都可以回顾一下日记,看看您走了多远。 事实证明,如此强大的功能真让我感到惊讶。

下一步是什么? 加入我! (What’s next? Join me!)

Looking ahead to the new year, I want to keep this streak going as long as possible. While I’m nowhere near where I want to be in terms of skill-level, I’ve already learned so much in the past month, and I am completely sold on this admittedly not-so-revolutionary method (shout out to #100DaysOfCode, a slightly more structured and significantly longer version of my personal challenge to myself).

展望新的一年,我想让这种情况保持尽可能长的时间。 虽然我距离技能水平还差得远 ,但过去一个月我已经学到了很多东西,而且我完全被这种公认的不太革命性的方法所售出(喊到#100DaysOfCode ,这是我对自己的个人挑战的结构化程度略高,且版本更长的版本)。

I don’t see why it wouldn’t work for anyone, at any skill, in any topic.

我不明白为什么它对任何主题的任何人,任何技能都不起作用。

If you feel inspired to start your own #CommitMonth, hit me up on twitter. I’d love to hear from you.

如果您有灵感开始自己的#CommitMonth,请在twitter上打我。 我希望收到您的来信。

“Amateurs sit and wait for inspiration, the rest of us just get up and go to work.” — Stephen King
“业余者坐在那里等待灵感,我们其余的人只是起床去上班。” - 斯蒂芬·金

翻译自: https://www.freecodecamp.org/news/lessons-from-my-month-long-github-commit-streak-b8f3167d34ac/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值