From ad36207073ce16b1f8b327f75416d29fcefd08a9 Mon Sep 17 00:00:00 2001 From: Shu Uesugi Date: Wed, 30 Oct 2019 01:30:46 -0700 Subject: [PATCH 1/6] Continue with 13 --- src/contents/13.en.tsx | 131 ++++++++++++++++++++++------------------- src/contents/13.jp.tsx | 18 +++--- 2 files changed, 78 insertions(+), 71 deletions(-) diff --git a/src/contents/13.en.tsx b/src/contents/13.en.tsx index 7fc6a4067..47e1d4bfb 100644 --- a/src/contents/13.en.tsx +++ b/src/contents/13.en.tsx @@ -6,8 +6,7 @@ import { Highlight, Ul, UlLi, - Bold, - Italic + Bold } from 'src/components/ContentTags' import H from 'src/components/H' import BubbleQuotes from 'src/components/BubbleQuotes' @@ -146,8 +145,11 @@ export default () => ( children: ( <>

- Now, here’s a question: What happens when - you it? + Now, here’s a question:{' '} + + What happens when you{' '} + it? +

) @@ -168,9 +170,11 @@ export default () => ( children: ( <>

- I figured it out! I think the result will - be a lunchbox that can be converted to{' '} - . + I figured it out!{' '} + + I think the result will be a lunchbox that can be + converted to . +

👧🏻 I think the result will be
a @@ -185,8 +189,10 @@ export default () => ( children: ( <>

- Yes! Correct! Saya, You’re exactly right!{' '} - 🎉 + Yes! Correct!{' '} + + Saya, You’re exactly right! 🎉 +

) @@ -196,8 +202,8 @@ export default () => ( children: ( <>

- What? How is it possible that you figured it out so - quickly? + What? How is it possible that you figured + it out so quickly?

Saya, did you solve it all in your head?

@@ -208,8 +214,8 @@ export default () => ( children: ( <>

- Not really. Actually, I used a trick.{' '} - Let me explain! + Not really. Actually, I used a{' '} + trick. Let me explain!

) @@ -250,8 +256,8 @@ export default () => ( children: ( <>

- Oh! The top section is actually a lunchbox that can be - converted to ! + Oh! The top section is actually a lunchbox + that can be converted to !

( children: ( <>

- The middle-right section is actually a lunchbox that can - be converted to ! + The middle-right section is actually a + lunchbox that can be converted to{' '} + !

( <>

Oh! This looks exactly like the one we saw on the last - page: a lunchbox that reproduces{' '} - . + page:{' '} + + a lunchbox that reproduces{' '} + . +

A lunchbox that reproduces @@ -608,7 +618,7 @@ export default () => ( But… isn’t that cheating?

- Saya’s strategy was to replace each section with the + Saya’s method was to replace each section with the corresponding mathbox features…

@@ -731,13 +741,7 @@ export default () => ( }} /> -

- If you{' '} - - , the result will be . -

+ ) @@ -746,7 +750,7 @@ export default () => ( type: 'surprised', children: ( <> -

This result is the same as Saya’s method!

+

The result is the same as using Saya’s method!

So… I guess Saya’s method was right…?

@@ -758,8 +762,10 @@ export default () => ( children: ( <>

- Yes! Saya’s method was the correct - approach. + Yes!{' '} + + Saya’s method was the correct approach. +

) @@ -780,13 +786,17 @@ export default () => ( type: 'dog', children: ( <> -

Let’s step back and review what we learned so far.

- Saya solved the problem by{' '} - + + Let’s step back and review what we learned so far. + +

+

+ 👧🏻 Saya solved the problem by{' '} + replacing parts of a lunchbox with the corresponding mathbox features - + , like this:

@@ -812,8 +822,8 @@ export default () => ( As we saw earlier:{' '} If you replace parts of a lunchbox with the - corresponding mathbox features, the result will be the - same. + corresponding mathbox features,{' '} + the result will be the same.

@@ -837,27 +847,16 @@ export default () => ( /> - the result will be the same. + The result will be the same. -

- Right. That’s what happened in the earlier example—the - result was in either case. -

- - ) - }, { type: 'dog', children: ( <>

- Yes. And I{' '} + And I{' '} encourage you to replace parts of a lunchbox as much as possible @@ -1045,8 +1044,8 @@ export default () => ( <>

This mathbox repeats {' '} - three times and calculates {' '} - . + three times and calculates {' '} + .

) @@ -1077,7 +1076,7 @@ export default () => ( type: 'surprised', children: ( <> -

Reall? Please show me how!

+

Really? Please show me how!

) } @@ -1098,8 +1097,10 @@ export default () => ( <>

Here’s the lunchbox we used earlier on this page.

- We’ll make some changes to this lunchbox to reproduce{' '} - . + + We’ll make some changes to this lunchbox to reproduce{' '} + . +

) @@ -1114,9 +1115,11 @@ export default () => ( children: ( <>

- I just added some items to this lunchbox. The{' '} - yellow section is the added - items. + + Here, I just added some items to this lunchbox. + {' '} + The yellow background indicates + the added items.

) @@ -1124,7 +1127,8 @@ export default () => ( ]} /> - The yellow section is the added items. + The yellow background indicates the added + items. ( type: 'thinking', children: ( <> -

Hmm… ok, whats’s so special about this lunchbox?

+

Hmm… ok, what’s so special about this lunchbox?

) }, @@ -1140,7 +1144,9 @@ export default () => ( type: 'saya', children: ( <> -

It turns out that:

+

+ It turns out that: +

    @@ -1173,7 +1179,10 @@ export default () => ( - + + And calculates {' '} + + ( }} /> -

    - つまり、 - すると、結果は {' '} - になるのです。 -

    + ) @@ -1026,8 +1020,8 @@ export default () => (

    この計算箱は、以下のように{' '} を3回繰り返すことにより、 - {' '} - を計算できるわけだよね。 + {' '} + を計算できるわけだよね。

    ) @@ -1148,7 +1142,11 @@ export default () => ( を3回繰り返す - + + つまり、 + {' '} + を計算できる + Date: Wed, 30 Oct 2019 01:56:23 -0700 Subject: [PATCH 2/6] Fix 14 --- src/components/H.tsx | 22 +++++++-- src/contents/14.en.tsx | 100 +++++++++++++++++------------------------ src/contents/14.jp.tsx | 15 +++++-- 3 files changed, 72 insertions(+), 65 deletions(-) diff --git a/src/components/H.tsx b/src/components/H.tsx index 220c0de84..f13012de3 100644 --- a/src/components/H.tsx +++ b/src/components/H.tsx @@ -909,8 +909,14 @@ const H = ({ args, highlightType, episodeNumberOverrides }: HProps) => { if (locale === 'en') { return ( <> - - We’re not done yet: + + + We’re not done yet: +
    Just pausing here for an explanation.
    @@ -918,7 +924,17 @@ const H = ({ args, highlightType, episodeNumberOverrides }: HProps) => { ) } else { return ( - まだ途中ですが、解説のため一旦止めます! + + + まだ途中ですが、 +
    + 解説のため一旦止めます! +
    +
    ) } } diff --git a/src/contents/14.en.tsx b/src/contents/14.en.tsx index f7e699424..ed894ddf7 100644 --- a/src/contents/14.en.tsx +++ b/src/contents/14.en.tsx @@ -35,7 +35,10 @@ const ThreeStepsSummary = () => ( - + + And calculates {' '} + + ) @@ -117,9 +120,7 @@ export default () => ( On this page, we’ll{' '} the lunchbox that I came up with, and{' '} - see what steps it goes through{' '} - before it becomes the same as{' '} - at the end. + see what steps it goes through.

    ) @@ -153,25 +154,13 @@ export default () => ( children: ( <>

    - I see,{' '} + Yeah, we need to see{' '} - let’s see what happens in between the beginning and - the end! + what happens in between the beginning and the end!

    ) - }, - { - type: 'saya', - children: ( - <> -

    - Alright, let’s{' '} - it! -

    - - ) } ]} /> @@ -254,13 +243,8 @@ export default () => ( children: ( <>

    - - We don’t need to worry about this yellow section for - now, so: - {' '} - - Let’s ignore this section for now. - + Let’s ignore this section for now. We don’t + need to worry about it until later.

    We’ll replace it with the “Ignore for Now”{' '} @@ -293,14 +277,14 @@ export default () => ( name: 'conditionSectionName', type: 'condition' }} - /> - : + />{' '} + of :

    Because is{' '} - , it chooses{' '} - . + , which is NOT zero, it + chooses .

    @@ -364,10 +348,9 @@ export default () => (

    Oh!{' '} - This yellow section is exactly the same as the last - time! - {' '} - (The one we ignored.) + This yellow section is exactly the same as the one we + ignored last time! +

    ) @@ -390,8 +373,7 @@ export default () => (

    Yes:{' '} - This yellow section, which is exactly the same as - before, has appeared again. + This yellow section has appeared again.

    @@ -439,14 +421,14 @@ export default () => ( left={ <> - Before + Last time } right={ <> - Now + This time } @@ -483,10 +465,9 @@ export default () => ( children: ( <>

    - I also noticed that the number in{' '} - went from{' '} - to - . + I see, the number in {' '} + went from to{' '} + .

    So it decreased by one. @@ -618,14 +599,14 @@ export default () => ( left={ <> - Before + Last time } right={ <> - Now + This time } @@ -729,8 +710,8 @@ export default () => ( children: ( <>

    - We’re almost done! Again, we’ll un-ignore - the section we ignored earlier. + We’re almost done! I just un-ignored the + section we ignored earlier.

    @@ -790,14 +771,14 @@ export default () => ( left={ <> - Before + Last time } right={ <> - Now + This time } @@ -932,11 +913,14 @@ export default () => ( After some more steps,
    - is , -
    - so it chooses + is
    + + It chooses ,
    + which is +
    + It repeats three times… @@ -1037,7 +1021,7 @@ export default () => ( children: ( <>

    - Now, here’s the important part: This + Now, here’s the important part. This mathbox has:

      @@ -1499,7 +1483,7 @@ export default () => ( This bottom half is what makes reproducing
      - possible. + possible
      ( <>

      Yes. And this lunchbox has a{' '} - special name, actually. + special name, actually.

      ) @@ -1571,7 +1555,7 @@ export default () => ( But it’s really interesting to think that,{' '} such a simple lunchbox (with only two kinds of food - items) is necessary to reproduce{' '} + items) can reproduce{' '} .

      @@ -1649,7 +1633,7 @@ export default () => ( { title: ( <> - We finally get back? + Will we get back? ), content: ( @@ -1657,7 +1641,7 @@ export default () => (

      After successfully reproducing{' '} , the villagers are now - demanding the devil to get it back: + demanding the devil to return it:

      ( The devil! We reproduced{' '} using a lunchbox!

      -

      Now, give that back to us!

      +

      Now, give it back to us!

      ) }, @@ -1683,7 +1667,7 @@ export default () => ( } ]} /> -

      Will they get it back? Check on the next page!

      +

      Will the villagers get it back? Check on the next page!

      ) diff --git a/src/contents/14.jp.tsx b/src/contents/14.jp.tsx index a23926f7f..fdf612f60 100644 --- a/src/contents/14.jp.tsx +++ b/src/contents/14.jp.tsx @@ -36,7 +36,11 @@ const ThreeStepsSummary = () => ( を3回繰り返す - + + つまり、 + {' '} + を計算できる + ) @@ -897,11 +901,14 @@ export default () => ( またいくつかのステップを経た後に、
      {' '} - になるので、 -
      - が残ります + になります + + に入っている{' '} + が残る + + が3回繰り返され… From 3163ae051077880f66165daa2c34c408f0ea2c38 Mon Sep 17 00:00:00 2001 From: Shu Uesugi Date: Wed, 30 Oct 2019 01:58:16 -0700 Subject: [PATCH 3/6] Rewrite about --- src/components/H.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/H.tsx b/src/components/H.tsx index f13012de3..3f6d5b262 100644 --- a/src/components/H.tsx +++ b/src/components/H.tsx @@ -1950,14 +1950,14 @@ const H = ({ args, highlightType, episodeNumberOverrides }: HProps) => { Things I’m pretty good at:{' '} - Expository writing (like this course) and{' '} + Expository writing (like this course),{' '} React/TypeScript ( see the repo for this course - ). I’m okay at product design. I’ve also - worked with Rails from version 2 to - version 6. + ), and learning new things quickly. I’m okay at{' '} + product design. I’ve also worked with{' '} + Rails from version 2 to version 6. Current interests: As a professional EN → JP From af8c48ac8e20dd6f29133ec7fed4dac5a6a8d200 Mon Sep 17 00:00:00 2001 From: Shu Uesugi Date: Wed, 30 Oct 2019 02:18:47 -0700 Subject: [PATCH 4/6] Done with 15 --- src/components/H.tsx | 2 +- src/contents/15.en.tsx | 99 +++++++++++++++++++++++++----------------- src/contents/15.jp.tsx | 14 ++++++ 3 files changed, 74 insertions(+), 41 deletions(-) diff --git a/src/components/H.tsx b/src/components/H.tsx index 3f6d5b262..34ca5cec1 100644 --- a/src/components/H.tsx +++ b/src/components/H.tsx @@ -1966,7 +1966,7 @@ const H = ({ args, highlightType, episodeNumberOverrides }: HProps) => { using AI to augment human intelligence - . I try to read about deep learning in my spare time. + .

    diff --git a/src/contents/15.en.tsx b/src/contents/15.en.tsx index 0b639b14d..c0a841709 100644 --- a/src/contents/15.en.tsx +++ b/src/contents/15.en.tsx @@ -4,7 +4,6 @@ import { P, HighlightBold, Highlight, - Italic, Ul, UlLi, Bold @@ -233,7 +232,7 @@ export default () => ( children: ( <>

    - Well:{' '} + Yeah.{' '} Try filling each of{' '} and{' '} @@ -516,7 +515,7 @@ export default () => ( children: ( <>

    - In summary:{' '} + So:{' '} The above lunchbox can do{' '} addition of two numbers. @@ -598,7 +597,7 @@ export default () => ( children: ( <>

    - It looks like the previous lunchbox, but it’s slightly + It’s similar to the previous lunchbox but slightly different.

    @@ -816,9 +815,12 @@ export default () => ( children: ( <>

    - This is amazing! Mathboxes could only do additions and - subtractions, but lunchboxes can also do - multiplications! + This is amazing!{' '} + Mathboxes could only do + additions and subtractions, but{' '} + + 🍱 lunchboxes can do multiplications! +

    ) @@ -995,7 +997,7 @@ export default () => ( the factorial of - . If you actually calculate it, the result will be{' '} + . If you do the math, the result will be{' '} .

    ( <> The factorial of .
    - If you calculate it, the result is{' '} + If you do the math, the result will be{' '} . } @@ -1021,7 +1023,7 @@ export default () => ( the factorial of - . If you actually calculate it, the result will be{' '} + . If you do the math, the result will be{' '} .

    ( <> The factorial of .
    - If you calculate it, the result is{' '} + If you do the math, the result will be{' '} . } @@ -1062,7 +1064,7 @@ export default () => (

    Now, I will show you that:{' '} - Lunchboxes can calculate factorials. + 🍱 Lunchboxes can calculate factorials.

    @@ -1095,7 +1097,7 @@ export default () => ( But this time:{' '} Instead of using the actual lunchbox, we’ll use the - following notation: + following notation (abbreviation):

    @@ -1105,7 +1107,7 @@ export default () => ( /> Instead of the actual lunchbox… - We’ll use this notation + We’ll use this notation (abbreviation) ( children: ( <>

    - Hmm… ok, but why do we need to use this instead of the - original lunchbox? + Hmm… ok, but why do we need to use this notation instead + of the original lunchbox?

    ) @@ -1154,9 +1156,24 @@ export default () => (
    {' '}

    - Therefore, if we don’t use this simpler notation to - describe multiplications, we’ll run out of space. + Therefore: We need to use this simpler + notation to describe multiplications in order to save + some space. Otherwise, the lunchbox will be too big.

    + ✨, + , + + ]} + description={ + <> + We’ll use this notation to +
    + save some space + + } + /> ) }, @@ -1250,10 +1267,6 @@ export default () => ( .
    {' '}

    -

    - So it uses a lunchbox that can calculate - multiplications. -

    ) } @@ -1279,7 +1292,7 @@ export default () => (

    By the way, the bottom half is{' '} - Y Combinator which we + Y Combinator, which we used on the last page.

    @@ -1299,8 +1312,8 @@ export default () => ( children: ( <>

    - By using this lunchbox, you can calculate the factorial - of any number. + That’s it! By using this lunchbox, you can + calculate the factorial of any number.

    ) @@ -1333,8 +1346,8 @@ export default () => ( children: ( <>

    - Let’s use this to calculate the factorial of{' '} - . + Let’s use the above lunchbox to calculate the factorial + of .

    ( To calculate this, we just need to{' '} change on the - earlier lunchbox to . + lunchbox to .

    @@ -1381,7 +1394,7 @@ export default () => ( children: ( <>

    - Let’s + Let’s it!

      @@ -1461,8 +1474,8 @@ export default () => ( children: ( <>

      - In summary: By running this lunchbox, it - calculates the factorial of {' '} + So: By running this lunchbox, it calculates + the factorial of {' '} automatically.

      @@ -1477,9 +1490,9 @@ export default () => ( - It becomes like this and automatically calculates + It becomes like this and automatically
      - the factorial of + calculates the factorial of
      @@ -1538,7 +1551,7 @@ export default () => ( Change to{' '} - … + ( ]} description={ <> - The factorial of : + The factorial of ,
      - The result will be + which is } /> @@ -1650,7 +1663,7 @@ export default () => (

      It’s amazing!

      @@ -1753,9 +1766,9 @@ export default () => ( <>

      What we learned here is that,{' '} - + lunchboxes can do complicated calculations. - {' '} + {' '} They’re more powerful than mathboxes.

      @@ -1769,7 +1782,13 @@ export default () => ( 🍱, ]} - description={<>Lunchboxes are more powerful than mathboxes!} + description={ + <> + Lunchboxes are more powerful +
      + than mathboxes! + + } /> ( 掛け算を {' '} のアイコンで省略表記することにしたというわけだ。

      + ✨, + , + + ]} + description={ + <> + スペースの節約のために +
      + こちらのアイコンを使います + + } + /> ) }, From a4a9874d07bff075e8e6b3b431805ed931fc71d3 Mon Sep 17 00:00:00 2001 From: Shu Uesugi Date: Wed, 30 Oct 2019 02:27:47 -0700 Subject: [PATCH 5/6] Fix 16 --- src/contents/16.en.tsx | 50 ++++++++++++++++++++++++++++-------------- src/contents/16.jp.tsx | 2 ++ 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/src/contents/16.en.tsx b/src/contents/16.en.tsx index d3780e498..e120eaae2 100644 --- a/src/contents/16.en.tsx +++ b/src/contents/16.en.tsx @@ -95,8 +95,11 @@ export default () => ( description={<>Who invented lunchboxes?} />

      - Answer: Lunchboxes were invented in the 1930s by a - mathematician Alonzo Church. + Answer:{' '} + + Lunchboxes were invented in the 1930s by a mathematician{' '} + Alonzo Church. +

      ( following lunchbox:

      + λA.B C + The above lambda calculus expression is
      @@ -234,8 +239,8 @@ export default () => ( But we really were talking about{' '} lambda calculus. {' '} - We used lunchboxes to make lambda calculus more approachable for - non-programmers. + I invented lunchboxes to make lambda calculus more approachable + for non-programmers.

      ( ]} description={ <> - We used lunchboxes to make + I invented lunchboxes to make
      lambda calculus more approachable @@ -638,7 +643,8 @@ export default () => (
      building a complex thing from simple things.
      - Lunchboxes are a great example + Lunchboxes and Y Combinator are +
      a great example of this idea. } /> @@ -673,10 +679,16 @@ export default () => ( } />

      - So hopefully this course gave you an idea of what learning - computer science is like. As you learn it, you’ll be surprised - that most innovative ideas in computer science are based on lots - of simple ideas! + + Hopefully, this course gave you an idea of what learning + computer science is like. + {' '} + If you do end up learning computer science, you’ll be surprised + that{' '} + + most innovative ideas in computer science are based on lots of + simple ideas! +

      ) @@ -735,9 +747,14 @@ export default () => ( If you’re a programmer and are interested in trying out the{' '} Y Combinator program, - press “Test Y Combinator in devtools” below. You need to - be on a desktop browser though—you can’t do it on a - smartphone. + press “Test Y Combinator in devtools” below. +

      +

      + ⚠️{' '} + + You need to be on a desktop browser though—you can’t + do it on a smartphone. +

      ) @@ -769,7 +786,7 @@ export default () => (
        - Paste the above code on your desktop browser’s developer + Run the above code on your desktop browser’s developer tools , and{' '} @@ -780,8 +797,9 @@ export default () => ( Also: If you change the 4 on the - bottom to 5, it will calculate the factorial of{' '} - , which is 120. + bottom to 5 and run it, it will calculate the + factorial of , which is{' '} + 120.

      diff --git a/src/contents/16.jp.tsx b/src/contents/16.jp.tsx index 8eeebd48a..9934a3c01 100644 --- a/src/contents/16.jp.tsx +++ b/src/contents/16.jp.tsx @@ -516,6 +516,8 @@ export default () => (

      上のラムダ計算の記述式は、以下の弁当箱とまったく同じことを表しています。

      + λA.B C + 上のラムダ計算の記述式は、
      From f4e285bc1743304377c9e625f78e3bc4a60070fa Mon Sep 17 00:00:00 2001 From: Shu Uesugi Date: Wed, 30 Oct 2019 02:37:58 -0700 Subject: [PATCH 6/6] Finish 0 --- src/contents/0.en.tsx | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/contents/0.en.tsx b/src/contents/0.en.tsx index 46de13bcb..587a1c144 100644 --- a/src/contents/0.en.tsx +++ b/src/contents/0.en.tsx @@ -250,7 +250,7 @@ export default () => ( 👨🏻‍🦳 Paul Graham - , a co-founder of the firm, said this in{' '} + , a co-founder of this firm, said this in{' '} his 2010 interview {' '} @@ -371,8 +371,8 @@ export default () => ( } />

      - First: I studied computer science at Carnegie Mellon - University (one of the top schools), and I can also say that{' '} + First: I studied computer science in college, and I + can also say that{' '} Y Combinator is one of the coolest concepts in computer science I learned. @@ -441,8 +441,19 @@ export default () => ( concepts , such as AI or blockchain. They genuinely want - to understand how the software they’re using works. + to understand how modern software works (thanks to the latest tech + bubble).

      + + Many non-programmers are +
      + curious about how modern software works + + } + />

      But they can’t learn it because{' '} @@ -475,10 +486,13 @@ export default () => ( } />

      - Downside: I admit that this is not the best way to - introduce computer science to non-programmers. That’s why I’m - calling this course a “wild” introduction to - computer science. + Downside: I admit that{' '} + + this approach is not the best way to introduce computer science + to non-programmers + + . That’s why I’m calling this course a “wild” + introduction to computer science.

      The ideal way to teach computer science would be to{' '} @@ -501,6 +515,7 @@ export default () => ( title: <>How to teach Y Combinator for non-programmers, content: ( <> +

      Now, how am I going to teach Y Combinator on this course?

      Puzzles, not programming: In this course, I will teach you Y Combinator using{' '} @@ -536,8 +551,8 @@ export default () => ( they are optimized for smartphones. A lot of “learn to code” resources are either (1){' '} great, but not smartphone-ready or (2){' '} - smartphone-ready, but not great. I tried to fix - that. 😉 + smartphone-ready, but not great. I tried to + change that. 😉

      ( For programmers: This course is optimized for non-programmers,{' '} - so if you’re a programmer and want to learn Y + so if you’re a programmer and want to learn about Y Combinator, there are other better resources. {' '} Press “Continue reading” below to learn more.