プラハチャレンジを始めて1年が経った

「プラハチャレンジ」を始めて1年と少しが経ちました。自分が1年間も何かを続けられたことに驚きつつ、キリの良いタイミングなのでやってみてどうだったかを振り返ります。

あなたは誰?

すし職人(sushidesu)です。Webアプリなど何かを作ることが趣味です。アルバイトとして働いていた会社から運良く声をかけてもらい、1年半ほど前から社内SEのような仕事をしています。業務としては社内システムの開発・改善、パソコンに関するお悩み相談などを行っています。

プラハチャレンジとは?

実務1〜2年目あたりのエンジニアを対象にした勉強会のようなものです。Webアプリケーション開発にまつわる課題が多数用意されており、同じ参加者の中で2〜3人のペアを組んで一緒に課題を進めていきます。HTTPやCookieなどWebの基礎的な部分から、DB設計、フロントエンド、設計原則、DDDまで幅広い課題が用意されています。特徴的な点として、課題には答えが用意されていません。なので、ペア同士で議論してお互いの回答を確かめ合いながら進めていく必要があります。

PrAha Challengeはどのような環境でも自走できる中級エンジニアを育てる オンライン完結型のプログラミングブートキャンプです

https://praha-challenge.com/

この記事では「やってみてどうだったのか・どう感じたのか」という部分を中心にお話したいと思っているので、課題の詳細やどうやって進めていったのかについてはあまり触れません。なので、プラハチャレンジが具体的にどんなものなのかを知りたい方にとってはあまり参考にならない可能性があります。プラハチャレンジについて詳しく知りたい場合は、ホームページ卒業された方へのインタビュー設立背景が語られているブログカリキュラムについて語られているブログなどを見ていただけるとありがたいです。

悩み

今から約一年前、プラハチャレンジを始める前のことです。

自分は悩んでいました。悩みと言ってもそこまで深刻な感じではなく、なんとなくもやもやするな〜くらいのやつです。というのも、勤務しているのがアナログで規模もそれほど大きくない会社なので、システム開発を行う部署などもなく、パソコンに詳しい人間が自分しかいないという状況がありました。もともと趣味で始めたプログラミングだったので、開発が進むにつれて自分のやり方に不安を覚え始めた時期でした。

1から作っていた社内向けのシステムがひとまず完成し、運用しながら改修や機能追加を行っていく段階に入ったのですが、システムが大きくなりすぎて手に負えないような感覚が芽生え始めていました。今思うと変更容易性が低いコードになっていた・テストがなかったことなどが原因だったと感じています。当時、言葉の上では「保守性」「良い設計」を知っていましたが、それが実際にどういうものなのかをわかっておらず、現状を「なんとなくプログラムを書きづらい」「変更するのが怖い」「手に負えない」といったぼんやりとした解像度でしか認識できていませんでした。

それ以外にも、周りにプロプログラマー(プロの現場で働くエンジニア)がいないことを起因とした悩みや、チームで開発することへの憧れがありました。ざっと以下のようなことを感じていました。

  • ある程度の動くものは作れるが、これで良いのかわからない
  • もっと良いコードの書き方があるのではないか
  • 自分がプログラマーとしてどの位置にいるのかわからない
  • プロプログラマー(プロの現場で働くエンジニア)がどうやって仕事をしているのかを知りたい
  • チームで開発してみたい

解決の一つとして勉強会への参加があると思うのですが、知らない人に会うのが怖かったので参加できていませんでした。人見知りなので、、、😢

出会い

そんなとき、募集が始まったのがプラハチャレンジでした。

  • 学習意欲の強い仲間が職場にいない
  • 独学だと本当に大事な知識を学べているか不安

そんなエンジニアに向けた学び直しの場「PrAha Challenge」を提供開始します

https://twitter.com/dowanna6/status/1333923217346478081

なんてぴったりなんだ!と思いすぐに参加を決めました。期限までに回答する事前テストがあったのですが、自分は結構苦戦しました。問題自体はそこまで難しくなかったのですが「わからないことは調べてOK」「できる限り詳しく書くこと」などの指定があり、納得いく回答をなかなか作れなかったのです(つい完璧を目指してしまう)。2時間くらいで終わらせるぞ〜と思って夜の20時くらいに始めたところ、気づいたら朝の5時になっていたのを覚えています。その代わりに、終わったときはまあまあの達成感がありました。

頑張った甲斐もあり、無事プラハチャレンジ1期生としての活動をスタートすることができました。それが今から約一年前、2020年12月の終わりです。

実際やってみてどうだったのか

ここからは現在の話になります。

1年間続けてきた感想ですが、かなり良かったと感じています。

個人的に思う一番の収穫は、「良いコード」とは何かについて考えるきっかけができたことです。プロプログラマーのみなさんとの対話を通じて「なんとなく機能追加しづらい」「手に負えない」「変更が怖い」といった気持ちの原因が少しづつ解明していく感覚がありました。

プラハチャレンジでは、進めた課題をペアの方とお互いにレビューし合います。参加者の方はプロの現場で働いている人も多く、自分から見るとプロプログラマーな方ばかりなので、勉強になります。その他にもメンターセッションと呼ばれる、メンター(株式会社プラハの現役エンジニア)の方に何でも質問できる場が設けられています。個人的には課題そのものよりも、この「レビュー」や「メンターセッション」における参加者やメンターの方との対話が一番学ぶことが多かったと感じています。

(課題が微妙だった、というわけではありません。実務に即した幅広い課題があり、DBや設計など個人でやるには手が出づらい領域についても学ぶことができたのでとても勉強になりました。しかし、課題に取り組んで得た知識を元に行うレビューやメンターセッションでの発展的な議論はこのプラハチャレンジという環境でしか得られないものなのではないかと感じました。)

設計の手法や、どんなアーキテクチャがあるのかという「知識」は書籍やインターネット上で知ることができます。しかし、既存のコードのどこに注目して問題とし、(数ある選択肢の中から)どのような理由で解決策を選ぶのか、という部分は言語化されない、独学では学びづらい部分だと考えます。メンターの方の言葉の選び方や熟考している場面から、「ここに注目するんだ!」「こういうケースもあり得るのか〜!」「ここはあまり考慮しなくても良いポイントなのかな?」といったように肌で感じることで、自然と同じ部分に着目し、同じように考えることができるようになったと感じています。

その他には、プラハチャレンジ内では基本的にSlackを使ってのコミュニケーションとなるのですが、プロプログラマーの方がどのようなコミュニケーションを取っているのかを肌で学べたのもよかったです。プロプログラマーの方々と同じ輪の中に入ることで、自然と同じ言葉を話せるようになりました。

まとめると、「本来であればプロの現場で働くことでしか学べない言語化されない感覚を、参加者・メンターとの対話を通じて学ぶことができた」という点に一番価値を感じています。

ここが微妙

公平のために、微妙だと思ったところも書いておきます。

有意義な時間を過ごせるかどうかは、良くも悪くもペアによる部分が大きいと感じています。当然、人によって学習に充てられる時間やモチベーションは様々なので、課題の進み具合に差ができてしまうことがあります。ペアでお互いの課題の回答を確認し合う「レビュー」があるのですが、進捗に差がある場合レビューは有意義なものになりづらいと感じます。片方が未着手の課題へのレビューはお互いが着手するのを待って行われますが、その頃には解いた時の記憶が薄れていることもあり深い議論に発展しづらい、などが理由です。

「詳しく議論したい」という参加者もいれば「どんどん課題を進めたい」という参加者もいるはずです。詳しく議論したい人からすると指摘が物足りなく感じたり、逆に早く課題を進めたい人からすると指摘が細かすぎると感じ、なかなかやりづらい場面もあるのではないでしょうか。(注: 実際の体験ではなく、想像です)

一応、ペアと相性が合わなかった時の救済措置として「ペアの組み替え」が用意されています。しかし、進捗に開きがある場合やそもそも参加人数が少ない関係で組み替えの選択肢は少なく、やはり自分に合った方とペアを組むことができるとは限りません。メンターの方もできる限り希望を聞いて良い形になるように尽力してくださるのですが、そもそも加入先が無い場合はどうしようもないです。(これは仕組み上仕方のないことだと思いますが)

この改善策としては、体制を整えて参加者を増やすことで組み替え先の選択肢を増やす、ペア以外の参加者とも積極的に交流する、くらいしかないですよね。

なので、自分がここまで続けることができたのは、良きペアに恵まれたおかげだと思っています。(自分は何度かペア替えがありましたが、みなさん良きプロプログラマーでした)

おわりに

第1期のスタートから1年以上が経過し、今では2期、3期と参加者もどんどん増えています。早い方ではもう卒業された参加者も出てきました。自分はまずまずのペースで進められていますが、卒業にはまだまだかかりそうだな〜という感じもあります。これからも頑張るぞ!