プログラミング未経験の新卒採用担当者が100日後に社内でサイトを公開した話
はじめまして。
サイボウズで新卒採用を担当しています、みお(Mio (@c__smt30) | Twitter)です。
社会人も2年目が半分終わりました。
早い。
4月からプログラミングの勉強を始め、そのことについて「話スシ」*1というイベントで8月にお話ししたところ、「社外に公開してもいいのでは?」との声をいただいたので、ようやく筆をとってみました。
プログラミング未経験の私が、100日間勉強をしたお話です。
はじめに
そもそも私はまったくといっていいほどプログラミングがわからない。
プログラミングどころか、IT企業に勤めているくせにIT用語もロクにわからない。
入社1年目、2019年のエンジニアサマーインターンでオリエンテーションを担当したときは、エンジニア学生さんに向かって「プログラミングできる人いますか?」と聞いたものだ。*2
サイボウズに入らなければ、"エンジニア"に出会うこともなかっただろう。
それぐらい自分の今までの世界とは無縁だったのだ。
なぜプログラミングの勉強を?
簡潔にいうと「知りたかった」。
これに尽きる。
ただ、これだとあまりにも言葉不足だ。もう少し分解しよう。
きっかけとなった出来事
「プログラミングを勉強したい」
そう思うようになったのは2019年の夏前ぐらいだった。
大きな要因は自分が「採用担当者になったこと」だろう。*3
わからないのだ。
学生さんと社員の話が。
もちろん面接やイベントを重ねたり、エンジニア社員に質問したり中で「なんとなく」はわかる。
評価も役割分担だ。私には私のやることがある。それもわかる。
ただ、知らなくていい理由にはならない。
そして何より、私自身「知りたい」と思った。
なりたい姿
「エンジニア学生さんの成果物や、お話をもっとわかるようになりたい。」
2019年6月ぐらいからそう思うようになった。
今もこれは変わらない。
勉強をはじめるにあたって
実際に勉強をはじめたのは2020年の4月だ。
今日からはじめます https://t.co/Kn3vbLrbTR pic.twitter.com/9jrHpBpuNM
— Mio (@c__smt30) 2020年4月5日
かなり足踏みしていたのがわかる。
なぜか。
2つの壁が大きく私の前に立ちはだかっていたのだ。
壁① -勉強方法がわからない
エンジニア学生さんとお話すると情報系の学校出身の方が多い。
「私も大学からやり直さないといけないのか?」
「プログラミングスクールに通うべき?」
「お金は?時間は?どうやって作る?」
こんなことをずっと考えていたのだ。
正直、目の前の仕事で手一杯な1年目だ。
プライベートの時間はできるだけ確保したいし、お金もかけたくない。
プラグラミングサイトもあるが、どれがいいのかなんてわからない。
解決方法 - 有識者に聞く
結局のところ何においてもこれだ。
「触ってみたいんだったらProgate*4はどう?」と教えてもらった。
「よし、じゃあ勉強してみよう!」とはならない。
そんな簡単にことは進まない。
壁② - 飽き性な自分
割となんでも、すぐに飽きてしまう。
プログラミングの勉強を始めて、すぐやめてしまったら?
周りの目がこわい。
「もうやめたんだ」と思われたくない。
でも、そんな飽き性な自分をコントロールできる自信もない。
覚悟がつかない日々を過ごしていた。
解決方法 - 周りを固める
周囲の目を気にする自分のことだから、第三者(しかもより知っている人)に見てもらえれば続けられるはずだ。
そう思い、Twitterと社内で使用しているkintoneにログを残していく。
(kintoneのログだけで充分だと気づいたので、Twitterは1ヶ月でやめた。)
ただ、無期限で続けるにはさすがにつらいし、モチベーションも上がらない。
そこで当時Twitterで拝見していた、きくちゆうき氏の「100日後に死ぬワニ」*5に倣って「100日後もプログラミングを続けているミオ」と表してやってみることに。
1分でも2時間でもいいから毎日行う。ログを残す。
これでやっと準備が整った。
勉強をはじめてみて
100日間の流れ
100日間をざっと表すとこんな感じだ。
まずはProgateで15コース全ての言語の初級編を行ってみた。
どんな言語がなんのために使用されているのか知らないので、とりあえず全て触ってみた。
その後はHTML,CSSを終え、応用ということで採用サイトに掲載されている「新入社員白書」*6をローカルで再現してみた。
続けてJavaScriptの勉強に入る。
Progateで勉強したり、社内のエンジニアが教えてくれたJavaScriptPrimer*7を読んだりしつつ、ちょっとした問題を解いてみたりした。
そして100日目にサイトが完成。こういう流れだ。
壁③ - 質問がしづらい
非常に質問がしづらい。
実は質問しやすくなるために、開発環境のkintoneにも実況スタイルでログを残していたのだが、現実、そんなうまくいかない。
ただひたすらに「申し訳ない」感情に埋め尽くされるのだ。
私はエンジニアではない。今後エンジニアになるわけでもない。
業務時間に勉強しているわけでもない。
完全プライベートだ。
質問するにも何がわからないのかもわからない。
せっかく教えてくださっているのに、そもそもの前提知識がなく理解できない。
そのため理解するのに1時間から2時間ほどかかることもあった。
(深夜にZoomを繋いで理解するまで教えてくれた社内のメンバーには感謝しきれない。)
そうなると申し訳ないループにはまる。
どんどん聞きづらくなっていく。
勉強を行なっている環境が非常によかった
社内で使用しているkintoneにログを残しているため、困っていると手を差し伸べてくれた。
「わからないことがあれば気軽に聞いて」と声をかけてくれた。
私が「できた!」という感覚を持てるように、待ってくれた。
今でも思うが、環境が非常によかった。
私が勉強を続けられた理由はここが大きいだろう。
「質問しづらい」のは自分の性格上の要因が大部分を占めているので、ゆっくり向き合っていくことにした。
成果物
Webサイトを作るようになったきっかけ
JavaScriptPrimerを読んでばかりいるのも疲れたので、「何か作りたいな」と思った矢先、同期から声をかけてもらった。
「作ってもらいたいものがある」
特に作りたいものもなかったので二つ返事で話を受けた。
作ったもの
kintoneには、kintone を使った業務改善に必要な基礎知識・アプリデザインスキル・カスタマイズスキルを持っていることを証明する「kintone認定資格」というのがある。*8
その試験対策として「kintone認定アソシエイト試験対策テキスト」*9が出版されているのだが、その本に記載されている全138問をWeb上で解くことができ、かつ自動採点してくれるサイトを作成した。
使用言語はHTML,CSS,JavaScript。
サイト公開時は、サーバー側は学んでいないため、Heroku*10を使用した。
※本サイトは社内限定公開のためお見せすることはできない。
サイト作成を通して学んだこと
(実践の中で新しい知識を学べたのはいうまでもないので省略させていただく。)
まず、開発プロセスを知ることができた。
目的に沿って実装する機能/しない機能を決めることで、
コードを書く過程で迷うことがなかった。
次に、最初から綺麗に書こうとすることをやめることで「イケてない」感覚を知った。
100日以降にReactを用いて少し書き直してみたが、非常にシンプルになり嬉しかった。
100日間を通しての学びと感じたこと
作ることが楽しい
何より価値のある気づきだった。
自分の書いたコードで、画面が動くことを楽しいと思えた。
ひとつひとつに感動した。
ボタンを押して画面が変わること。
角を丸く変えられること。
プッシュできたこと。
全てが新しく、嬉しかった。
社内の業務の"すごさ"を感じられた
kintoneのReact化を進めているという話を知識程度に聞いたことがあった。
正直なところ「ふーん。」だ。
なにが大変なのかなんてわからない。
ただ、自分が作ったサイトをReact化しようとしたときに、
何からはじめればいいのか全くわからなかった。
どこを触っても壊れる気しかしない。
自分の技術不足はもちろんあるが、社内のメンバーがkintoneという大きなサービスで改善を行なっていることに小並感ある感想だが「すごい」と思った。
わからないことは有識者にすぐ聞くべき
これに尽きる。
一人で勉強をしていると「何をどのぐらい理解しないといけないのか」わからない。
全て完璧に理解しないといけない気がしてくる。
だって、きっと、エンジニアは全て理解しているのだろうから。
「自分もそうしなきゃ」と思うが、全く理解できず心が折れる。
そんな中、エンジニア社員が「なんとなく聞いたことあるなーぐらいで大丈夫だよ」と言ってくれて非常に安心した。
「わからなくてもいい」は勉強する上でとても大切な感覚だ。
前提として、教えてくれる人がいたというのは(何度でもいうが)ありがたい環境だった。
社内の声に驚いた
自分が勉強したことなんてこんなもんだ。
サイトも公開するつもりなんてなかった。
社内のイベントで話すつもりもなかった。
恥を晒すような感覚だったのだ。
だが、同期が「価値のあることだからやったほうがいい」と背中を押してくれた。
疑心暗鬼だったが、自分が想像している以上に反響をいただいた。
「話スシ」では120名以上の方が聞きに来てくださった。
開発の本部長が本部長の集まる会議で紹介をしてくださった(らしい)。
後日、社長の青野さんからも、この件について声をかけていただいた。
できないことを知られるのは怖い。
それでも、この環境のおかげで私は勉強を続けることができた。
有難い。
これから
100日たった今も勉強は毎日続けている。
ちょうど200日目の10/21(水)からは社内で行われるハッカソンにエンジニア社員に交ざって参加する。
同期から「ReactとTypeScriptを使うよ」と言われたので勉強中だ。
おいおい、使ったことない言語じゃないか、不安しかないぞ。
実際に社内で行われるモブプログラミング*11について自分なりの感想を持ち帰ってチームに共有したい。
こんなふうに、ハブのような役割に自分がなれたらいいなと思う。
*1:エンジニアが技術以外のLTをする会:その名も『話スシ🍣』 - Cybozu Inside Out | サイボウズエンジニアのブログ
*2:苦笑いをしながらも手を上げてくれたインターン生のことを私は忘れない。
*3:サイボウズではビジネスサイド、エンジニアサイドで採用担当者を分けていない。全員が全ての職種に関わっている。ちなみに2022年入社の募集要項はこちらだ。サイボウズ 2022新卒採用 募集要項
*4:ログイン | プログラミングの入門なら基礎から学べるProgate[プロゲート]
*5:きくちゆうき on Twitter: "「100日後に死ぬワニ」… "
*6:新入社員白書 | サイボウズ 採用情報(新卒・キャリア)
*7:第一部: 基本文法 · JavaScript Primer #jsprimer
*8:kintone CERTIFIED(キントーン認定資格試験)
*9:サイボウズ株式会社(2020)『kintone認定 アソシエイト試験対策テキスト[第2版]』,日経BP社,ラーニングコンテンツ
*10:クラウド・アプリケーション・プラットフォーム | Heroku
*11:リモート・モブプログラミングという働き方 - Cybozu Inside Out | サイボウズエンジニアのブログ