Eat, Play, Nap and Code

食とあそびと昼寝とプログラミング学習

lsコマンド課題の振り返り

はじめに

所属するフィヨルドブートキャンプの課題に、Rubymacのlsコマンドを作るというものがあります。 この課題は受講生の中でも難関と言われていて、Ruby学習したての頃は、lsコマンド…を作る…とは??という感じで、自分に出来る気が全くしませんでした。

25日にやっとrubocopのOKが出て、最初の提出が出来た(まだ課題の合格したわけではないです)ので、学んだことを時系列順でまとめてみようかと思います。 自分のようにlsコマンドの課題に恐れを抱いているフィヨルドブートキャンプ受講生に読んでもらえたら嬉しいです。

もくじ

かかった時間

取り組んだ期間: 2020年2月5日〜2020年2月25日(内3日休憩)

総学習時間: 56時間

目安は30時間なので、最初の提出までに2倍近くかかってしまったようです😅

無駄な日もなかなか多いんですが、初学者には寄り道も必要なんだろうな〜と思っています。

時系列

2/5(金)

やったこと

リーダブルコードを読んでいた。 親知らずを抜いてつらかったらしく、lsコマンドに関する学習はほとんどしていない。

考えたこと

名前つけるの難しすぎる。

2/6(土)

やったこと

Fileクラスのるりまを眺めるが、何も思い浮かばない。 シバンだけ書く。

考えたこと

飼ってる猫が暴れていてやる気を吸い取られていたみたい。

2/7(日)

やったこと

『たのしいRuby』のFileクラス、Dirクラスの説明を読む。 るりまがよく分からないときはこの本を読んで使いたいメソッドの概要を掴むようにしていた。

たのしいRuby 第6版

たのしいRuby 第6版

考えたこと

朝起きれなくて落ち込んでいたみたい。 受講生の方から「活動時間ではなく内容に目を向けたほうがいいのでは」とアドバイスをいただき、気を取り直す。

2/8(月)

やったこと

今いるディレクトリに格納されたファイル名を取得させることができた。 本家のlsコマンドのレイアウトについて、ファイル名の長さを変えながら試した。

考えたこと

本家lsコマンドのレイアウトはCSSのFlexboxに似ていると思った。 暴れていた猫がおとなしくなった。

2/9(火)

やったこと

21時の質問タイムで画面共有しながら質問をして、3列に表示させるメソッドを教えていただいた。 その後も自分で調べながらコードを改良して、 下記のような出力ができるところまでいった。

🍣🍰🥝🍓./ls.rb
Applications Library bin
Desktop Movies fjordbootcamp
Documents Music ls.rb
Downloads Pictures test
Exercism Public tomiyama.fjord.lt.key

考えたこと

ボウリングのスコア計算プログラムに合格できたのと、メンターのりほやんさんに「lsコマンドは難しいけど脱落する人は何故かいないから大丈夫」と言っていただき、自信がついてきた! この日質問していなかったらもっと時間がかかっていたと思うので、人に助けを求めるのは大事だ。

2/10(水)

やったこと

3列に分けたファイル名の幅のバイト数が8の倍数になっているということが分かったので、考えてコードを書いてみた。 下記のように表示させることができた。

🍣🍰🥝🍓./ls.rb
Applications             Library                  bin                     
Desktop                  Movies                   fjordbootcamp           
Documents                Music                    ls.rb                   
Downloads                Pictures                 test                    
Exercism                 Public                   tomiyama.fjord.lt.key

考えたこと

とても好調。 みんなバックグラウンドが違うので、私が4ヶ月かけて学んだことを最初から知ってる人もいるし、人と比べて進捗がどうとか考えるの無駄だな〜と思っていたみたい。 うまく行っているとポジティブな言葉も出てくる。

2/11(木)

やったこと

昨日のコードは偶然が重なり、見た目上整った出力をしているだけだと判明し修正。オプションなしのlsコマンドは完成させられた。

maxの使い方について勘違いしていて、文字列に対しmaxで取得できるのは、配列の中の最長の文字列ではなく、辞書的に1番最後になる文字列だと学んだ。↓ではbanana🍌が最長だけど、maxを使うとlemon🍋が取得される。

fruits = ["apple","banana","lemon"]
fruits.max #=> "lemon"
fruits.max_by { |fruit| fruit.size } # => "banana"

考えたこと

考えるべき変数名がとても多いので、動くものを作ることに注力しすぎて、変数名まで気が回らないと思った。

2/12(金)

やったこと

3つある必須オプション(-a-r-l)の中で、-a-rは簡単に実装できそうだったので挑戦してみてできた。 ついでにメソッドに切り出す作業にも挑戦したいのでメソッドを考えてみたが、実装には至らず。

考えたこと

optparseを使ってオプションを受け取れるようになったものの、正直どう書けばいいのかよく分からない…😅

2/13(土)

やったこと

-lオプションに挑戦。使えそうなメソッドを調べてみたり、universatoさんの記事、lsコマンドで表示されるファイルのモード(drwxr-xr-x) 〜RubyのFile::Stat#modeとは〜を読んだりした。

考えたこと

何も思いつかず、だんご屋のことを考えていた。

2/14(日)

やったこと

昨日読んだ記事のFile::Statが何なのかよくわからないので、いろいろ出力して試してみていた。

考えたこと

-lオプションに入って以降、思ったように進まなくなり、だんだん焦り始めてきた。

2/15(月)

やったこと

数字で格納されてるの情報を文字情報に変換、とか難しいことはとりあえず置いておいて、File::Statで取ってきたファイル情報から必要な情報を取り出し横に並べる、という作業をまず実装してみた。

コードは汚いものの、イメージをつけられたのでよかった。

🍣🍰🥝🍓./ls.test.rb
directory 16832 4 501 20 128 2019-09-22 22:22:44 +0900 Applications
directory 16832 5 501 20 160 2021-02-14 03:10:43 +0900 Desktop
directory 16832 8 501 20 256 2020-12-16 23:22:19 +0900 Documents
directory 16832 13 501 20 416 2021-02-08 13:15:52 +0900 Downloads
directory 16877 3 501 20 96 2021-01-09 10:45:37 +0900 Exercism
directory 16832 78 501 20 2496 2021-01-02 10:43:37 +0900 Library
directory 16832 4 501 20 128 2020-03-28 16:56:30 +0900 Movies
directory 16832 7 501 20 224 2020-03-28 16:56:30 +0900 Music
directory 16832 7 501 20 224 2021-01-18 21:27:53 +0900 Pictures
directory 16877 4 501 20 128 2018-12-28 19:00:47 +0900 Public
file 33188 1 501 20 0 2021-02-11 13:53:38 +0900 all_the_good_girls_go_to_hell
directory 16877 6 501 20 192 2021-02-04 16:09:28 +0900 bin
directory 16877 7 501 20 224 2021-01-19 00:11:01 +0900 fjordbootcamp
file 33252 1 501 20 1314 2021-02-15 21:14:54 +0900 ls.test.rb
directory 16877 30 501 20 960 2021-02-15 20:03:35 +0900 test

考えたこと

翌日が夜の質問タイムなので、-lオプションに関する疑問をまとめてみようと前向きになる。

2/16(火)

やったこと

質問タイムに参加。String#.slice(-n,m)で、文字列に対して、後ろからn番目のを起点にm個の文字を取ってくることができることを学ぶ。

"eatplaynap".slice(-3,3) #=> "nap"
"10380".slice(-3,3) #=> "380"

上を日報に書いたら、String#[]を使う方法を教えていただいた。

パーミッションが文字変換できるようになったので、見た目は目標にとても近づいた。

🍣🍰🥝🍓./ls.test.rb -l
drwx------ 4 tomiyamamiyuki staff 128 9 22 2019 Applications
drwx------ 5 tomiyamamiyuki staff 160 2 14 2021 Desktop
drwx------ 8 tomiyamamiyuki staff 256 12 16 2020 Documents
drwx------ 13 tomiyamamiyuki staff 416 2 8 2021 Downloads
drwxr-xr-x 3 tomiyamamiyuki staff 96 1 9 2021 Exercism
drwx------ 78 tomiyamamiyuki staff 2496 1 2 2021 Library
drwx------ 4 tomiyamamiyuki staff 128 3 28 2020 Movies
drwx------ 7 tomiyamamiyuki staff 224 3 28 2020 Music
drwx------ 7 tomiyamamiyuki staff 224 1 18 2021 Pictures
drwxr-xr-x 4 tomiyamamiyuki staff 128 12 28 2018 Public
-rw-r--r-- 1 tomiyamamiyuki staff 0 2 11 2021 all_the_good_girls_go_to_hell
drwxr-xr-x 6 tomiyamamiyuki staff 192 2 4 2021 bin
drwxr-xr-x 7 tomiyamamiyuki staff 224 1 19 2021 fjordbootcamp
-rwxr--r-- 1 tomiyamamiyuki staff 2079 2 16 2021 ls.test.rb
drwxr-xr-x 30 tomiyamamiyuki staff 960 2 15 2021 test

考えたこと

受講生の方々が教えてくれるのがありがたい。自分もいつかそうなりたい。

2/17(水)

やったこと

タイムスタンプで年が出てたり時間が出てたりする箇所の仕様を知るためにman lsする。

If the modification time of the file is more than 6 months in the past or future, then the year of the last modification is displayed in place of the hour and minute fields.

あまりにめんどくさそうで絶望し、レイアウトを決め打ちで整えるのだけやった。

drwx------  4 tomiyamamiyuki  staff   128  9 22 2019 Applications
drwx------  5 tomiyamamiyuki  staff   160  2 14 2021 Desktop
drwx------  8 tomiyamamiyuki  staff   256 12 16 2020 Documents
drwx------ 13 tomiyamamiyuki  staff   416  2 17 2021 Downloads
drwxr-xr-x  3 tomiyamamiyuki  staff    96  1  9 2021 Exercism
drwx------ 78 tomiyamamiyuki  staff  2496  1  2 2021 Library
drwx------  4 tomiyamamiyuki  staff   128  3 28 2020 Movies
drwx------  7 tomiyamamiyuki  staff   224  3 28 2020 Music
drwx------  7 tomiyamamiyuki  staff   224  1 18 2021 Pictures
drwxr-xr-x  4 tomiyamamiyuki  staff   128 12 28 2018 Public
-rw-r--r--  1 tomiyamamiyuki  staff     0  2 11 2021 all_the_good_girls_go_to_hell
drwxr-xr-x  6 tomiyamamiyuki  staff   192  2  4 2021 bin
drwxr-xr-x  7 tomiyamamiyuki  staff   224  1 19 2021 fjordbootcamp
-rwxr--r--  1 tomiyamamiyuki  staff  2907  2 17 2021 ls.test.rb
drwxr-xr-x 30 tomiyamamiyuki  staff   960  2 15 2021 test
-rw-r--r--  1 tomiyamamiyuki  staff     0  2 17 2021 test2
-rw-r--r--  1 tomiyamamiyuki  staff     0  2 17 2021 test3

考えたこと

コマンドを作り始める前に、manするべきだった。

2/18(木)

やったこと

rubocopは通していないものの、全体を通して動くものはできた!

考えたこと

totalの表示やレイアウトの整えがまだ残っているが、かるくリファクタリングしてrubocopにOK貰えば明日提出しよう。

2/19(金)

やったこと

totalを表示させたが、rubocopが通らず泣く。 メソッド化したいけど何も思いつかない。一方、レイアウトは課題の必須要件ではないことに気づき、確認のためにQ&Aに投稿する。

考えたこと

rubocopが通らないことで、一気に自分のコードに対する自信がなくなってしまった。

2/20(土)〜2/22(月)

やったこと

用事があって学習時間がとれないため、しばらく休む。 『リーダブルコード』の続きを読んだりしたが、花粉症に苦しみほとんど集中できず。

考えたこと

休んでいると不安になるので、やはり完全に休むべきではない。就職するまで遠出は断ろう。

2/23(火)

やったこと

21時質問タイムにほぼラジオ参加。オブジェクト指向版のlsコマンドに関する質問がを聞く。

考えたこと

メソッド化にもう一度取り組んでみようと考える。 プラクティスの合格からは遠のくかもしれないが、足らない知識をつけようという気持ちになる。

2/24(水)

やったこと

コードを一気に書き換えるのではなく、簡単なメソッドを作って試しながら、少しずつメソッド化に挑戦する。 rubocopに怒られていた箇所はクリアできた。

考えたこと

できることが増えるにつれ、自分に対する期待感からかハードルを上げすぎてしまうようで、辛い気持ちになりがちだと気づく。 Rubyの28歳の誕生日。同い年なので28年間に思いを馳せる。

2/25(木)

やったこと

メソッド化してもrubocopに怒られる。 ハッシュテーブルによる分岐数削減をようやく学び、なんとか満足していただく。

(この日なぜか参考にしようとしていた駒形さんのブログが開けずにちょっと困った)

考えたこと

やっと提出できる!全然良いコードではないけど、一応頑張ったのでレビューのたたき台レベルにはできた。

学んだこと(技術以外)

火曜の21時の質問タイムで、メンターさんや受講生の皆さんにアドバイスをいただけるのが心の支えになり課題をすすめることができました。 中でも、りほやんさんに「lsコマンドはカレンダーのプログラムを書ければ書ける」と仰っていただけたことで、自分に自信が出てきて難しくても諦めずに取り組むことができたと思います。

反省点としては、自分に対する自信が出てきたことの弊害で、課題提出までのハードルを上げすぎてしまったことです。 課題提出の条件には、rubocopを通すとありますが、気にせず一旦提出してもよかったかなと思います(メンターさんからも、「rubocopが通らないくらいならその旨を書いて一旦提出してOK」だと言われました)。

スケジュールを決めてやるのが良かったかもしれません。1週間がんばってできなければ質問する、一旦提出しちゃう、困ってると叫ぶなど。

自分ならできる!と、今の自分はまだまだだから誰か助けて!をうまく使い分けられると良いなと思います。 今後は気をつけてみよう😄

はじめてのLT会 Vol.6で登壇してみた感想

はじめに

去る2021年1月23日(土)に、所属するフィヨルドブートキャンプでLTイベントがありました。 初めて登壇者として参加したので、準備と感想について書いてみようと思います。

もくじ

登壇を決めたきっかけ

LT発表はフィヨルド内外でも何度か拝聴していて、どういうものかというイメージはありましたが、年末にLTの登壇者募集を見かけた段階では、「準備大変そうだし、自分にはまだ発表できることなんかないな〜」という感じでした。

ですが年が明け、開催日が近付く中、オーガナイザーの方からまだ登壇者が足りていないという呼びかけがあり、何名かの方が参加を表明されていました。

みんな意欲的ですごい!新年だし自分もがんばろう!という気持ちになり、登壇することに決めてしまいました。

準備について

話す内容

勢いで決めたはいいものの、何を話したいかは特に決めていませんでした。

そして私はスキル向上や就活でのアピールのことだけを考え登壇を決めていましたが、アドバイザーの方が「一回一回の登壇に真剣に向き合うことで良い発表ができる」と仰っていて、自分の軽薄さが恥ずかしくなりました。

そこで、自分は誰に聞いてほしいんだろう?その人に今の自分ができる最良のアドバイスは何だろう?と時間をかけて考えました。

けっこうな時間をかけて考えたのですが、聞いて欲しいのは「フィヨルドブートキャンプを始めたばかりで心が折れそうな人」だと結論付けました。

というのも、自分は4ヶ月学習を続け、プラクティス自体は難易度が上がっているはずなのに、毎日の学習が最初の頃よりもラクに感じるようになっているからです。

これは何故かというと、質問や英語やコミュニケーションといったプログラミングそのものではない(しかし学習から切っても切り離せない)困難を克服(?)して、純粋にプラクティスだけに集中できるようになったからだと思いました。

よって、「伝えたい人」が明確になったことで、自ずと「伝えたいこと」も決まったという感じです。

スライド作り

私の場合は、まず上記の内容でブログ記事を書いて、それをスライドに作り替えました。

スライド作り→SpeakerDeckにアップロードする流れは、フィヨルドブートキャンプの先輩である、ますやまさんのブログをほぼ100%参考にしました。

masuyama13.hatenablog.com

スライドの推敲

なんとなく形にはなったものの、実際に発表練習をしてみると、5分の予定が9分も話していました!

内容が詰まってて9分なら問題ないのですが、うすい&つまらない話をダラダラ話していることが気になりました。

他の方のスライドからいいところを学ぼう!と思い、フィヨルドブートキャンプ生のブログを漁り、LTのスライドを研究しました(下のツイートはRails Girlsでのべこさんのスライド)。

研究して気づいたのは、自分のスライドは人に伝えることよりも、自分(とスライド)を立派に見せようという欲が前に出ていて、その欲の分だけダラダラしているのだということ!!

発表の本質と関係のないスライドや説明を何枚か消し、6分くらいまで縮めることができました。

発表練習

通し練習はおそらく15~20回くらいしたと思います…。

おそらくフィヨルドブートキャンプのLT会でそんなにやる必要はないと思いますが、きっちり5分で話そうという裏目標を途中から決めたので、要点を残しつつ短くするためにこれくらいは必要でした。

何で5分にこだわっていたのかというと、「自分はまだ発表が下手だから、下手な人の話は短い方が聞く人に親切だろう」と、「5分という目標は、いい発表をして人を感動させたい、などの目標よりも 実現可能だろう」と思ったからです。

練習はKeynoteの再生→スライドショーを記録で時間を計りながら録音して行いました。

こちらのKeynoteを使っての練習についても、先輩のikuma-tさんのブログ記事を参考にしました。

ikmbear.hatenablog.com

もとがブログの文章なので、原稿を自然な話し言葉に直す作業も並行して行いました。

あと、目で読むと変じゃないけど、耳で聞くと誤解を生みそうな表現も直しました。

(「今月になってようやくできるようになりました」のあとに、「要約すると〜です」が続いている箇所の「要約」を「まとめると」に直したり)

機材調達

今までオンラインイベントに参加する際、マイクなどを使ってこなかったのですが、登壇者だし動画に残るので、ヘッドセットを準備することにしました。

note.com

こちらの記事を参考に、ゼンハイザーのヘッドセットを調達しました。

Bluetoothだと遅延や充電忘れが怖かったので有線にしました。

音のトラブルもなく、メガネをかけていても使いごごちも悪くないのでおすすめです。

リハーサル

オーガナイザーのYusukeさんのご厚意で、前日にRemoを使って画面共有をしつつ発表を通しで聞いていただくことができました。

リハーサルで他の方の意見を聞けたことで、自分の発表がどう受け止められるかを知ることができ、自分の意図とは違う風に受け止められるかもしれない箇所を本番前までに修正できました。

なので、第三者に事前に聞いてもらうのはとても大事だと思いました!

本番

照明を確認

普段は天井の照明が後ろに入る位置に机を置いているんですが、カメラにうつったとき眩しいかもしれないので照明の真下に段ボールを置いて机代わりにしていました。

この場所は本棚の前なので、本棚に反応してくれる人がいてアイスブレーク的にもよかったかもです笑。

いざ発表

LT会の雰囲気が和やかなのと練習を繰り返したおかげで、あまり緊張せずに話せました。

フィヨルドブートキャンプのオンラインイベントは、システムトラブルのときもまったりしている(以前のミートアップで音声が途切れてガサガサになった人も「カッコいい声ですね」と言われていた)ので、発表内容だけに集中することができたことも大きいです。

スライドの操作については、Keynote Remoteを使ってiPhoneにスライドを同期し、iPhone側に原稿を表示してスライドもiPhoneからめくるようにしました。

リハーサルのときは急にiPhone側でWifiが切れて共有画面にしたスライドが真っ黒になったりしてしまったので、これ以外の良い方法があったら知りたい…

support.apple.com

本番を終えて

感想

リアルタイムのSlackでも、その後のtwitter、日報、フィードバックでもものすごく褒めてもらった(今までの人生で1番褒められたかも😇)ので、やってよかったという気持ちしかないです!

発表翌日にSakiさんが感想ブログをあげてくださり、私の発表部分にもたくさん共感してくださっていて泣きました😭

saki-htr.hatenablog.com

また、自分の発表内容を聞いて、英語でのツイートを始めたという方がTL上に2人もいらっしゃって、行動力に尊敬の念を抱いたのと、私の発表ちゃんと伝わったんだ〜!という感動が湧いてきました。

こういうモチベーションが高い人たちに、自分の考えていることを聞いてもらえる機会ってなかなかないです!なので、話を聞いていただけただけでとてもありがたいな〜という気持ちです。

改善点

概ね満足しているんですが、他の方の発表を聞く姿勢含め、次回から改善しようと思った点です。

  • もっと積極的に質問すべきだった。

➡︎登壇してみて実感したんですが、質問されるととても嬉しいものです。 自分の発表が終わったら完全に脱力モードになってしまい、質問ができなかったのはよくなかったです。

  • もっとスライドのデザインを工夫すべきだった。

➡︎他の方のスライドは色、図、デザインなどに凝っていて、見やすかったです。 自分はほとんどテンプレート通りに使っただけで、スライドそのものには気を使わなかったので、もう少し見やすくする工夫もできたと思いました。

  • LT準備に時間をかけすぎてRubyの書き方を忘れた。

➡︎これはダメですね…次にやる方はうまいこと並行作業してください…

Do The Next Right Thing

はじめに

こんにちは。 今日のフィヨルドブートキャンプのLT会で話した内容についてまとめておきます。 スライドはこちらです。

speakerdeck.com

もくじ

フィヨルドブートキャンプで超えた壁?

今回のLT会のテーマは「フィヨルドブートキャンプで超えた壁」ということで、プラクティスの中で直面した困難や、乗り越え方についてシェアしようということでした。

わたしはLinuxのプラクティスではいろいろあったので、このプラクティスをテーマにして話そうかと考えていました。 ただ、ちゃんと掘り下げてみるとあまり内容に深みが出せないのと、同じLT会でLinuxで話される方が他にもいらっしゃり、内容的にかぶる可能性もありそうだったので、もう少し普遍的なテーマを考えてみることにしました。

ちょうどよかったので、最初の頃の日報を読み返してみました。

そうすると、4ヶ月学習を行い、「最初はできなかったけど、今はできるな」ことが数個はあると気付き、多くの人が共感できそうな3つに絞ってお話したいと思いました。

1.質問が怖い

フィヨルドブートキャンプは質問が奨励されている環境ですが、なかなか勇気が出なくて質問ができなかったです。

この壁を乗り越える一番の近道は「エスパーさせないでください」と注意されつつ(※フィヨルドブートキャンプのメンターの方々は優しく教えてくれます!!)、質問慣れすることだとは分かっているんですが、私はプライドが高く傷つきやすいので無理でした。

自分の場合は、最初は日報で質問するのを何度も繰り返し、何度目かに「クローズドな場所で質問してもすぐに回答が得られるわけではないし、他の人の役に立たない」と感じ、QAに投稿する勇気を持つことができました。

QAに投稿を何度か繰り返し、sshで困ったときにやっと雑談タイムで聞くことができました。

Slackのwakaranチャンネルも、分からないことがはっきりしてない中で人に相談するのが苦手な自分にはハードルが高かったですが、つい最近やっと発言し、分からないことを解決することができました。

まとめると、自分にとって心理的安全性の高い方法で少しずつ慣れていけば、どんな手段で質問するのも怖くなくなるんじゃないかと思います。

もちろん、いろんな質問手段が用意されているので、いま事足りているならどれかひとつで全く問題ないと思います。

2.英語の資料が読めない

わたしは前職は商社の購買という立場で、英語で仕入先と交渉を行っていたので、英語は得意なほうだと思います。

それでもプログラミングをやっていると、日本語でも理解していない概念を英語のドキュメントやエラー文から読み取るという作業が必ず発生し、当然読めなくて心が折れ、英語をみるのも嫌になっていました。

この壁の王道の乗り越え方は、ドキュメントを読みまくる、プログラミングで使われる英単語を覚える、英語のブログを開設してアウトプットする、などだと思いますが、どれもハードルが高くて出来ませんでした。

そんな中で、twitterだったら英語でアウトプットしても負担にならないのでは?と思いつき、さっそく開設してみました。

twitter.com

毎日#100DaysOfCodeという有名なハッシュタグを使って学習内容を書いているだけですが、都度「このプログラミング用語って英語でなんていうのかな」と調べるので、ほどよいインプットになっています。

自分でこういう、いいかげんな英語でアウトプットするようになって気づいたことですが、IT技術に関する英語って、私みたいなネイティブじゃない人が書いている場合もかなり多く、英語自体が難しいケースは少ないです。

また、英語だからといって100%正しいわけでもないです。この事実に気付けたことで、怖がらずに、冷静に英語が読めるようになりました。

3.輪読会をする友達がいない

技術書を読むのに輪読会をすると挫折せずに理解を深められることは、ブートキャンプ内で開催されている大人数での輪読会に参加して痛感しました。

今読んでいるチェリー本も、輪読会をしたらきっともっと理解できるんだろうな〜とは思いつつ、主宰する勇気が出ないし、時間を合わせるのも大変そうでいまだに実行に移せていません。

そこで私は、ひとり輪読会というものをやっています。 これは何かというと、いろんな方の日報を事前に準備し、自分で本を10分読む、感想や疑問をまとめる、他の方の日報を読む、を繰り返して擬似的な輪読会をやるというものです。

ひとり輪読会のおかげで、ただ読むより集中できるし、何が分かっていないのかを意識しながら読めるようになりました。

また、時間的な制約がないので、私のような引っ込み思案な人でなくて、忙しくて人と輪読会の時間が持てない方でも、輪読の良さが味わえるのではないかと感じています。

まとめ

壁をすんなり真正面から乗り越えられる人はすごいです。

でもわたしはそういうすごい人ではないので、できないものはできない。

正攻法でできないのだったら、今できることは何か?を考え、つらくない範囲の中でやってみます。やってみてつらくなければ繰り返してみる。

少しずつつらくない範囲を広げていき、最終的に「あ、いつの間にか乗り越えてた」と言うのが私の壁乗り越え体験でした。

このLTも、とても感動的な壁乗り越え話をしてみんなを感心させたい!という欲望はありますが、いっぱい候補は考えてみたものの特にドラマチックなエピソードはなかったので、今話せる範囲の中で1番役に立てそうな話をしてみました。

追記

LT会で聞かれた質問について回答してみます。

Q. DeepLは使わないんですか?

  1. 長い文章のときは使ってます!エラーとか短めの文章はそのまま読んでいます。

Q. 英語でツイート投稿するときgoogle翻訳などで文法のチェックはしていますか?

  1. してないです。ツイッターだから多少間違っててもいいや、というノリで投稿してます。

Q. 今まさに乗り越えようとしている壁はなんですか?

  1. 就活への恐怖です。学ぶのは楽しいけど、ちゃんと社会復帰できるのか不安でなりません…。

Q. 本棚の本が気になる(照明の関係で後ろに本棚が写ってました)

  1. LTの時は地球の歩き方東京編をおすすめしましたが、まさに「Do The Next Right Thing」を体現した昆虫学者・前野ウルド浩太郎先生の『バッタを倒しにアフリカへ』がとてもおすすめです!

www.amazon.co.jp

Duolingo連続学習600日から学んだこと

はじめに

こんにちは。 この記事はフィヨルドブートキャンプ Part 2 Advent Calendar 2020の16日目です。 きのうは卒業生のhirovodkaさんの記事でした。スクール選びから就職まで、ものすごく正直に書かれていて読み応えがあります!

hirovodka.hatenablog.jp

わたしは10月からフィヨルドブートキャンプで勉強を始めた、とみやまと申します。 1993年3月生まれでRubyと同い年です。インターネット上ではeatplaynapもしくはeatplaynap329というアカウント名を使っています。

Duolingo連続学習日で記録達成したよ

先日12月13日、語学学習アプリDuolingoで、連続学習600日を迎えました。

(学習言語は英語→ドイツ語、英語→ノルウェー語です)

2014年の夏、語学研修先のウィーン大学の寮で、自分のドイツ語能力の低さに打ちのめされてアプリをダウンロードして以来、こんなに長く続けられたのは初めてです。

 

わたしが学ぶフィヨルドブートキャンプのプラクティスは、修了までに1000時間かかると言われており、卒業まで辿りつく方は多くありません。

 わたしは実家暮らしで扶養家族もいないため、外的要因で辞めるということは考えづらく、仮に辞めるとしたら、「自分の理解力の低さに絶望」もしくは「数日休んで自己嫌悪で戻れなくなる」のどちらかになると思います。

せっかく入ったのだから、Duolingoで学んだ「続けるコツ」をブートキャンプでの学習にも応用して、来年のアドベントカレンダーには卒業生として参加できるよう頑張りたいです。

そこで、わたしが600日間で学んだコツをいくつかあげて、どうブートキャンプでの学習に応用するのか考えてみようと思います。

目標をものすごく小さくする

ノルマは「各言語1日1プラクティスだけ」と決めています。 大体毎日5分くらいを、朝勉強の前(会社員時代は通勤電車の中で)にやるだけでOKにしています。

なので、リーグはいまだにエメラルドリーグ(上から5番目)のままです。

 上のリーグに行きたいという気持ちはありますが、今の自分の目的はリーグを勝ち抜くことではないので、あまり頑張りすぎないようにしています。

 

フィヨルドブートキャンプでは最低勉強時間は15分の設定になっています。15分できればとりあえず日報を書くようにします。

実は0分学習でも、できなかったという事実や落ち込んだ気持ち(?)を記録し、共有するのには大きな意味があるのではないかと思います。 アドベントカレンダーでMashio Sanoさんが書かれた、自動で日報を投稿できる仕組みを使うのはすごくよさそう!

mashoo1101.hatenablog.com

たまに新しいことにも挑戦してみる

Duolingoのドイツ語は、自分のように何年も学んでいる人間にとって、問題自体は難しくはないです。

 600日間の最初のころはドイツ語だけをやっていたのですが、簡単な問題を義務的に解いているだけで、だんだん飽きてきてしまいました。 

そこで、自分にとって全く未知の言語であるノルウェー語をいちから学ぶことにしてみました。 

全く学んだことのない言語を学ぶのはできないことの連続なので辛いですが、ノルウェー語とドイツ語の共通点や違いを知るのは面白いし、続けるモチベーションには役に立っています。

 

→現在Ruby初級の最中ですが、土日は好奇心の赴くままにネットで見つけたコードを試したり、ずっと先のプラクティスの本を眺めたりしています。知識がないまま難しいことに直面して都度調べることで知識も身につくし、今やっているプラクティスに対する理解度も上がる気がしています。

いまはMisosoupさんが書かれていたJekyllでのブログ構築に興味しんしんです!

mssp160.netlify.app

結果を求めず過程を楽しむ

正直、5分を毎日やっているだけでは、600日やっても語学力は身についていないという実感はあります。 学生時代わりと真剣に学んでいたドイツ語についてはせいぜい現状維持で、新しく学ぶノルウェー語については、そらで言える単語はほとんどありません。

でも聞き取れる音は増えてきましたし、発音問題でもクリアできるようになってきました。 超微増でも、昨日よりできることが増えることを楽しんで学んでいます。

 

→これはわたしの性格と状況に拠るのかもしれませんが、なる早な就職よりも、学びそのものを楽しみたいな〜と思っています。誰かに頼まれてWebエンジニアを目指しているわけではないので、できることが増え、やりたいことがさらに明確になった結果、自分に合った会社への就職があればいいな〜と夢想しています。 takopommさんのCSSお絵かき記事のように、学んだ技術を使って面白いことをしていきたい…!

takopomm.hatenablog.com

できなかった日はできないときのパターンを発見する日

600日続けたと書きましたが、3日(それぞれ別の日)だけ途切れさせてしまったことがありました。 幸い記録はリセットされない仕組みになっているのですが、1日途切れさせるとやる気が半減するものです。

忘れてしまった3日に共通していたのが、国外への移動日であるという点でした。 つまり、朝から晩まで予定があったり、長いことネットにつながらなかったり、時差の影響があったりするとうっかり忘れてしまうのだと学び、そういう日はアラーム設定をしておいて忘れないようにしました。

ただ、1番重要なのは、途切れされてしまった1日を重く捉えすぎないことだと思います。 先日のRails GirlsでのべこさんのLTでの発表での言葉、「3日おきや1週間おきでもやれていたら、長期的にみたら続けているのと同じ!」が胸に刺さりました。

speakerdeck.com

さいごに

Duolingoの連続学習を始めたきっかけは、ネットや雑誌で見る同年代の平均と比べて給与と貯金額が低いことで焦りを感じ、「お金を増やすのは無理でも、知識を貯めることは今のわたしでもできるはず!」と思ったことでした。

始めたばかりのころは知りませんでしたが、連続学習でたくわえられたのは、知識以上に、自分に対する自信と信頼でした。 今後、ブートキャンプのプラクティスや就活が辛くなっても、「Duolingoを600日続けられたんだから、続けられるし、ちゃんと卒業できる」と言い聞かせていきたいと思います。

最後に、今の季節にぴったりなノルウェー語のことわざを紹介して終わります。

Det finnes ikke dårlig vær, bare dårlig klær!

(悪い天気なんて存在しない、あなたの着てるものが悪いだけ!)