我为期一个月的GitHub的经验教训
by JS
由JS
我為期一個月的GitHub的經(jīng)驗(yàn)教訓(xùn) (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
“我想學(xué)習(xí)JavaScript。 喜歡,真正地學(xué)習(xí)它。 喜歡,真正了解它。 ” —我在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.
確實(shí)有一個崇高的目標(biāo)。 特別是對于只從事了大約六個月編程工作的人,絕對是使用非JavaScript編程的(如果您必須知道,則使用 Ruby) 。 一項特別艱巨的任務(wù) 一遍又一遍地告訴您JavaScript多么奇怪 。 但是我可能很固執(zhí)。
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.
大約兩個月前,我結(jié)束了The Firehose Project的工作 ,在那里我從事兼職工作 ,同時擔(dān)任律師的日常工作。 這是一個很好的經(jīng)驗(yàn)。 我了解了如何構(gòu)建復(fù)雜的Ruby on Rails應(yīng)用程序,測試驅(qū)動的開發(fā)等等。 但是,一旦程序結(jié)束,我想學(xué)習(xí)更多有關(guān)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.
我轉(zhuǎn)向freeCodeCamp ,這是我最初在注冊Firehose Project之前用來學(xué)習(xí)基本HTML和CSS的資源。 freeCodeCamp具有健壯的,以項目為導(dǎo)向,面向JavaScript的課程,這似乎是掌握基礎(chǔ)知識的理想選擇。
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.
但是,如果沒有付費(fèi)計劃的結(jié)構(gòu),我擔(dān)心自己會成為拖延的受害者,否則我會提出一些借口,以求在遇到困難時我應(yīng)該停下來。
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進(jìn)行一次提交。 無論。 不管我是否想編碼。 不管我在任何一天的心情如何。 我很高興地說我實(shí)現(xiàn)了我的目標(biāo)。 我學(xué)到的東西使我感到驚訝。
第一課:即使在我不喜歡編碼的日子里,一旦強(qiáng)迫自己開始,我經(jīng)常會快樂地工作幾個小時。 (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.
只是坐在那里等待正確的時刻或靈感來襲是一個可怕的想法。 雖然這種等待繆斯女神的想法主要出現(xiàn)在創(chuàng)意領(lǐng)域,但它的一種變體可以在其他學(xué)科中扎根。
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.
不要等到您“打算編寫代碼”或等您想到一個新應(yīng)用的好主意時再等。 不要等待靈感。 剛開始。
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并進(jìn)行一些操作。 在您一直想簽出的那個框架中做一個簡單的實(shí)現(xiàn)。 該場是廣闊的,以至于總有一些東西 ,你可以工作。
Besides, the simple act of starting might inspire you to continue.
此外,簡單的開始可能會啟發(fā)您繼續(xù)。
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.
在過去的一個月中,有超過兩天的時間,經(jīng)過一整天的工作之后,我要做的最后一件事是坐在家里的辦公桌前,遇到一些編碼問題。 但是通常,一旦我開始工作,我發(fā)現(xiàn)繼續(xù)前進(jìn)很容易。
The mind has a terrible way of making mountains out of molehills. Don’t fall for it.
頭腦有一種糟糕的方法,可以使人們擺脫困境。 不要為它而墮落。
第二課:我了解到我能夠在一段時間內(nèi)致力于某件事-不是因?yàn)槲覟榇嘶撕芏噱X,或者不是因?yàn)槲倚枰?而是因?yàn)槲以O(shè)定了我想要實(shí)現(xiàn)的目標(biāo)。 (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.
我很難堅持做那些我沒有積極發(fā)現(xiàn)的事情。
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.
在每個新的愛好中,都有一個短暫的蜜月期,這是我白天唯一可以想到的事情。 這個過程持續(xù)約一個月,過程是這樣的:我的進(jìn)步很快,每天都在學(xué)習(xí)一些很棒的東西。 我感到更加自信。 我開始有宏偉的幻想。 “我很快就會成為[鋼琴家/攝影師/藝術(shù)家/作曲家]的大師,”我自言自語。
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.
然后,突然之間,我停止了明顯的改善。 很難。 我撞墻了。 魔術(shù)消失了。 我想知道這東西到底是否不適合我。
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.
除非您是神童,否則您可能會經(jīng)歷過類似的事情。 退出非常容易(任何曾經(jīng)在我脖子上戴數(shù)碼單反相機(jī)或手里寫有素描本的人都可以作證)。 但這是一門擅長于任何事情的可怕方法。
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.
學(xué)習(xí)編程并不容易。 任何人都可以告訴您,這當(dāng)然并不總是很有趣。 有時候我想放棄是因?yàn)槲矣X得自己進(jìn)步不夠快。 但是學(xué)習(xí)編程比起短跑更像是一場馬拉松比賽,并且在考慮自己的目標(biāo)以及幾周,一個月或一年的目標(biāo)時要牢記這一點(diǎn),這一點(diǎn)很重要。 沒人會在一夜之間成為專家。
With that in mind, it’s really important to just gut it out and persevere through the tough times.
考慮到這一點(diǎn),重要的是要克服困難并堅持不懈。
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.
長久以來,我一直認(rèn)為我傾向于在無聊或困難時停止做某事只是個人的缺陷。 我一生都必須與之共存。 我,一個喜歡涉足所有事物但實(shí)際上在任何事情上都不擅長的家伙。
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.
的確,從來沒有比現(xiàn)在更好的時間來學(xué)習(xí)新技能或嗜好-有太多的免費(fèi)資源,入門門檻通常很低,以至于您學(xué)到的東西基本上沒有限制。 這真是不可思議,我再也沒有其他方式了。
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年,當(dāng)事情變得艱難或火花消失時,從一個主題跳到另一個主題非常容易。 如果您想變得出色(無論如何),那么抵抗這種誘惑,無論多么強(qiáng)大,都是很重要的。
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的提交進(jìn)行編碼和推送已連續(xù)一個月,這使我意識到,即使在娛樂性或令人興奮的情況下,我也有能力在艱難時期堅持并繼續(xù)前進(jìn)。
第三課:一致的練習(xí)是最好的練習(xí)。 (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.
堅持適度甚至短時間的持續(xù)練習(xí)比每周進(jìn)行一到兩次兩次馬拉松比賽更好。 大量的實(shí)踐和培訓(xùn)研究證實(shí)了這一點(diǎn),但是如果您接受這一挑戰(zhàn),您將為自己找到證據(jù)。
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.
通過堅持不懈的練習(xí),您有機(jī)會在忘記所有內(nèi)容之前,加強(qiáng)前幾天學(xué)到的知識。 這種增強(qiáng)是理解嚴(yán)格的編程概念的關(guān)鍵。 坐下來幾個小時,閱讀有關(guān)this繼承或原型繼承的工作方式,然后走一個星期,這是不夠的。 如果您還沒有完全忘記自己所讀的內(nèi)容,那么恭喜您擁有比我更好的記憶。
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.
更好的策略是閱讀,做筆記,練習(xí)一些實(shí)現(xiàn),然后在第二天返回并回顧您的工作 。 通過堅持不懈地練習(xí)和安排課程結(jié)構(gòu),使您處于不斷回顧舊材料,同時學(xué)習(xí)新材料的循環(huán)中,可以確保進(jìn)步,同時鞏固知識基礎(chǔ)。
第四課:記日記有助于我保持動力。 (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個人資料上看到所有這些綠色框都很棒,但是我選擇還保留各種日記,以便我可以詳細(xì)回顧自己的成就。 我的日記還允許我跟蹤我所有非GitHub的工作,其中有很多工作(因?yàn)榫拖裎抑罢f的那樣,一旦開始,我常常不想停止)。
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.
您的日記可以是任何內(nèi)容-手機(jī)上的Google文檔,空白筆記本或記事應(yīng)用。 我選擇了一個小型的每日計劃器,該計劃器每個月都有一個日歷,然后在隨后的頁面上留出每天寫的空間。 每天晚上結(jié)束時,我都會在日歷部分檢查當(dāng)天的日期,然后寫下一些有關(guān)當(dāng)天的工作記錄。 讓我告訴你,勾選這些復(fù)選框?qū)嵲诹钊穗y以置信。
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.
每當(dāng)您感到沮喪或沮喪時,您都可以回顧一下日記,看看您走了多遠(yuǎn)。 事實(shí)證明,如此強(qiáng)大的功能真讓我感到驚訝。
下一步是什么? 加入我! (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).
展望新的一年,我想讓這種情況保持盡可能長的時間。 雖然我距離技能水平還差得遠(yuǎn) ,但過去一個月我已經(jīng)學(xué)到了很多東西,而且我完全被這種公認(rèn)的不太革命性的方法所售出(喊到#100DaysOfCode ,這是我對自己的個人挑戰(zhàn)的結(jié)構(gòu)化程度略高,且版本更長的版本)。
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 “業(yè)余者坐在那里等待靈感,我們其余的人只是起床去上班。” - 斯蒂芬·金翻譯自: https://www.freecodecamp.org/news/lessons-from-my-month-long-github-commit-streak-b8f3167d34ac/
總結(jié)
以上是生活随笔為你收集整理的我为期一个月的GitHub的经验教训的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到蛇钻耳朵里预示着什么
- 下一篇: 梦到鸡被咬死了是什么意思