新卒デザイナーとプログラミング朝練してみた
こんにちは! クラッソーネでエンジニアをしている深町です。
今年もボジョレー・ヌーヴォーの予約が始まる時期になりました。
個人的には日本人醸造家である仲田晃司さんのルー・デュモンが楽しみです。自然派のマルセル・ラピエールやフィリップ・パカレも捨てがたいですね。
解禁日は11月の第3木曜日なので今年は11月18日です。お忘れなく!
クラッソーネでは、「専門性を発揮しつつもお隣の領域についてもちゃんと知っておいた方がいいよね」ということで、あまり厳密にバックエンド、フロントエンドなどの担当エリアが分かれていません。
デザイナーはフロントエンドの実装ができるといいし、フロントエンドエンジニアはデザインやバックエンドのこともわかった方がいい、ということです。
さて、今年の4月から山之内君というデザイナーが新卒採用で我々のチームにジョインしてくれているのですが、彼は実装もできるデザイナーになりたい、ということでJavaScriptやReactの勉強を頑張ってくれています。
でもプログラミングの勉強を完全に独学でやるのは大変です。
そこでサポート活動の一環として7月から「朝練」という活動をしていて、今日はそれについてちょっと書きたいと思います。
過去に新人エンジニアの教育みたいなことはちょっとやったことがあるのですが、今回はエンジニアではなくデザイナーという役割の人のトレーニングということで、僕自身も勉強になったことが多いと感じています。
こんなことやりました
まずは、簡単にやったことの紹介です。
週に1回、月曜日の朝に1時間ほど時間を確保して、その場でやることを決めます。
あまり計画性はなくて、とりあえず時間を確保してるのでその時々でやることを考える、というスタンスでした。
当然この短い時間でプログラミングの全てを教えるみたいなことは無理なので、自分で勉強してもらう前提で、それを補完するような位置付けです。
7月
基本的には本人の勉強のペースに合わせていきます。
この時点ではドットインストールを使ってJavaScriptの勉強を大体終えて、そろそろReactを学びたいというタイミングでした。
Reactへの導入として、ドットインストールで作ったプログラムのいくつかをReactに書き換えてみるということをやってみました。
イベントの扱い(onChange
など)と、Reactでのステート(useState
など)の考え方がメインのテーマになりました。
基本的なプログラミングの考え方はReactであっても変わらなくて、割と機械的な置き換えでReactのコードにできるということがわかってもらえたはず。
あと、gitとGitHubの基本的な使い方を学んでもらいました。
コマンドラインを使わず VS Code のインテグレーションを活用します。
GUIを使った方が何が起こっているのか直感的にわかるし、以前にCLIベースでgitの説明をした時よりも格段に理解が進んだようでした。
8月
ここからは実践編として、実際のプロジェクトのタスクを一緒にやってみました。
デザインに関する小さな改善を行い、プルリクエストを出します。
実際のコードベースにコントリビュートし、レビューを含む開発プロセスに乗る体験を積めたのが非常によかったと思います。
gitを実際に繰り返し使うことになり、開発ブランチを切るところからプルリクエストを出すところまで何の手助けも必要としない状態になりました。
9月
9月は連休の影響もあり、あまり朝練の時間が取れなかったのですが、主に独学で解決できなかった質問に対する対応などを行いました。
知識が増えてくると、それに隣接するわからないことも増えるので、質問のレベルが上がってきます。
自信がないところはこっそりその場でgoogle先生に聞いたりしながら回答したりします(リモートワークでよかった...)。
気をつけたこと
そんなわけでこの活動は今も続いています。
あくまでも実装もできるデザイナーを目指しているのであって、エンジニアを目指しているのではない、ということを忘れないように気をつけています。
デザインに関わるところの修正とか、自分で考えたデザインの実装ができればひとまずそれでいいと割り切るのも大事だと思います。
JavaScriptにも概念的に難しいところはたくさんあります。
プロトタイプベースのオブジェクト指向とか、非同期処理とか、Reactならレンダリングの仕組みとライフサイクルとか。
概念は知っておいた方がいいので軽くは触れるのですが、「実務ではそんなに気にしなくてもいいよ」ということをたびたび強調しています。
あと、余計なことに認知コストをかけさせないことも大事だと学びました。
例えばgit。慣れているとどうしてもコマンドからやりたくなりがちだけど、CLIって何が起こっているのか非常にわかりにくいんですよね。
VS Codeに統合されたUIを使うだけですんなり理解してもらえたのは僕のほうがびっくりしました。
エンジニア志向の人とは興味のポイントや考え方も少し違うと感じることがあって、これは難しくもあり面白いところでもあります。
僕のほうも学ぶことが多くあるので、(需要がある限り)しばらくこの活動は続けていこうと思っています。
最後に
クラッソーネではエンジニアを積極採用中です!
インフラにも詳しくなりたいバックエンドエンジニア、デザインも語れるフロントエンドエンジニアなど、領域を広げて活躍したいと思っていらっしゃる皆さん、興味を持っていただけたらお気軽にご連絡ください。