TIS ENGINEER NOTE

ITエンジニアのためのキャリア向上ノウハウブログ

プログラミング

ネットで知り合った人たちとチャットツールを共同開発したら、とんでもなく勉強になった

更新日:

先日、オンライン上で縁あって知り合った方々と、Slackのようなチャットツールを作るというプロジェクトに参加しました。

今回はその感想と、作業を進める中で学んだことについて書いていこうと思います。

ことの始まり

僕は現在りゅうけんの『人生逃げ切りサロン』というオンラインサロンに参加しております。

ある日そこで面白そうな話が上がりました。

それは2 週間で slack のようなチャットアプリを作るというプロジェクト。

しかも設計から。各々のスキルも把握できない状態のスタートということで、サロン内でも注目されていた刺激的な企画でした。

手を動かしながらの学習効率はこれまでの経験から、身に染みて分かっていたので、自分も参加させていただくことに。

プロジェクトの概要

作るもの・使う技術

まず目標は2週間でSlackのようなチャットツールを作ること。

中心として使用する技術はRuby on Rails,React,Redux

開発におけるコミュニケーションはパクリ対象であるSlackをメイン使用して行いました。

頼れるリーダー

プロジェクトの取りまとめを行っていただいたのは発起人でもあるchinjuさん。

chinjuさんは転職活動中にいくつかもの企業からラブコールを受けるという、凄腕のフリーランスエンジニア。

仕様決定や環境構築、共同作業者に向けてのアドバイスなど、いつ寝ているのかと心配になるほどお世話になりました。

この場を借りて御礼申し上げます。

chinjuさんの運営する技術雑記ブログ「ねこ的アルゴリズム」はこちら

情熱溢れる共同開発メンバー

そのchinjuさんの元に、実際に手を動かしてプログラミングの学習を行いというメンバーが集まり、共同開発を行っていきました。

アパレルからIT業界へと転身したオシャレなエンジニアブロガーことyutaさん

28歳から目指すフリーランスLIFE!

化学研究者からプログラマーに転身し、デザイン、初心者へのプログラミングレッスンなど幅広く活動を行っているkamizatoさん

さて、プログラマー目指しますか。

プログラミング学習に熱意を燃やすオシャレなSE、opiyo_takuさん

おぴよの気まぐれ日記

オシャレな人の割合が高いですね!僕は服を選ぶ基準が値段と着心地メインなので肩身が狭いです。

冗談はさておき、chinjuさん、上記のメンバーを中心に話し合いながら作業を進めていきました。

僕も常に参加できていたわけではないので、一部のメンバーの方々のみの紹介となるのをお許しください。

実態はプログラミングレッスン

タイトルで共同開発とかかっこつけた物言いをしていますが、実際はchinjuさんの指導の元に行われる実技を通したプログラミングレッスンといった感じでした。

現場で活躍しているプロのエンジニアに質問を投げかければ、適切な回答をいただけるという非常に恵まれた環境において、これまでで一番有意義な学習を行うことができたと実感しています。

基本的な流れ

仕様についての話し合い

まずはオンライン上で作成するチャットツールの仕様について話し合いを行いました。

当時、PC用マイクがノイズを巻き散らかす棒きれと化していたので、僕は基本的に話を聞きながら、気になったポイントをチャットで質問するという形で参加させていただきました。

これまで業務で仕様を決めるという段階に参加したことがなかった僕としては、話の進め方一つ一つが新鮮で参考になるものであったことを覚えています。

各自割り振られた作業を進めていく

あとは決まった仕様に沿って、各自勉強したいポイントを伝えた上で割り振ってもらった作業を進めていきました。

既に環境の構築や設定などについてはchinjuさんに固めていただいていたので、実際の開発作業に早速取りかかることができました。

ここで僕が割り振っていただいた作業はReact/Reduxを用いたフロントエンドの実装、RailsのActionCableとの繋ぎ込みの部分でした。

いずれも触ったことのない機能、フレームワークではありましたが、この学習チャンスを逃す理由はないな。ということで思い切って担当させていただくことにしました。

特にReact/Reduxについては僕のメンタル耐久力をゴリゴリ鍛えてくれたので選んでよかったなーと思っています。でも滅びてほしいです。

作業を進める中で学んだこと

共同で開発する流れ

技術的な内容については省かせていただきますが、やはり複数人数での開発の流れを体感できたのが一番の成果だと感じています。

自分は業務でSubversionしか使ったことがなく、今回使用したバージョン管理ツールであるGitについては個人開発で少し使ったことのある程度でした。

現場で活躍しているプロにケースバイケースでベストな手順を教わりながら、他の人も触っているリポジトリにコミットしていくという経験は、書籍やWebサイトでは得られない効率的な学習を与えてくれました。

実際に現場ではもっと複雑なケースが発生するとは思いますが、今回身に付けたGit文化の軸のようなものを使って乗り越えていけそうです。

期間を決めることの重要性

最初2週間という期間を聞いたときに思ったこと。

「めっちゃ短い」

例えばRailsチュートリアルで教材で使用されているようなTwitterもどきのようなものであれば、かなりゆとりを持てる期間であったと思います。

しかし今回作成するのはフロントエンドとバックエンドを分けた上で、リアルタイム更新も求められるチャットツール。

熟練者が数人集まり、自分の時間をフルで使用して作業を進めるならまだしも、僕のようなWeb開発初級者の割合が多く、各々仕事や予定がある中、2週間という期間で達成するには高すぎる壁なのではないかと思っていました。

しかし結果としてこの短い期間がプロジェクトの密度・学習効率を高める一番の要素でした。

プロジェクトの密度

前述したとおり、参加メンバーにはそれぞれの生活、活動があります。

その中で、言ってしまえばお金にならず、自分がいなくても問題のない作業に時間を割くことって、高い学習意欲をもってしても難しいことです。

ぶっちゃけると3か月など十分な期間を与えられていたら、自分はきっと怠けてしまって、作業への参加率はかなり下がっていたと思います。

その点2週間という期間は、他の予定や活動を削ってでも参加でき、集中して取り組むことのできるベストな期間設定でした。

学習効率が高まる

勉強とかでもそうなんですが、十分な時間の中でゆとりを持って行うよりも、ちょっと焦る程度の期間で縛った方が学習効率っていいものなんですよね。

慌ただしいくらいの勢いで作業を進めて、後ほど参考資料を読んでみると内容がスルスル頭に入ってきます。

これは実作業を行うことで、資料の重要な部分を無意識に判別して吸収することができるようになり、発生するメリットですね。

明確な目標と期間を以て作業に取り組むことの重要性を改めて体感することができましたので、今後の活動にも活かしていきたいです。

この部分に関しては個人の活動においても、適用できることですしね。

その他感想

プログラミングの勉強であったり、個人でWebサービスを作るのって孤独な戦いなんですよね。

その中でモチベーションが上がるのってアクセスが増えたり、できることが増えたときくらいなものです。そしてそういった瞬間ってそこまで頻繁には訪れてくれない。

けど今回のような学習に重きを置いた共同開発だと、自分の実装した機能を他の作業者の方に評価してもらえたり、アドバイスをいただくことができます。

人間は誰かに評価されたり、自分の行動が何かに影響を与えたという事実を強く求める生き物です。

ご多分にもれず僕も承認欲求モリモリなので、プロのプログラマーに褒められたらそりゃ、モチベーション爆上がりです。

自分の働きを評価してもらえる環境ってホント重要で貴重です。

いつかは自分もそういった環境を提供する側にも立ちたいと考えているので、そういった意味でも勉強になりましたね。

まとめ

プロのエンジニアから実際の開発現場の文化を学びながら、プログラミングを学び始めたばかりの人が技術を習得していく過程を見ることができる。

これって今回のような経緯で立ち上がったプロジェクトでなければ実現しなかった環境です。

僕自身フリーのプログラマーを目指しながらも、プログラミング初心者に向けたレッスンを行うことも視野に入れています。

そういう意味で、まさに理想的な学習環境でした。

開発現場、プログラミングスクールでは実現しない、いい意味で歪な環境で今回のような体験をできたことを非常に嬉しく思います。

改めて関わっていただいた皆様に御礼申し上げます。

僕のような体験してみたいって人は、オンラインサロンやコミュニティに思い切って飛び込んでみるといいんじゃないですかね。

とりあえず疑り深く、斜に構える系男子の僕が選んで、正解だったなと感じているりゅうけんの『人生逃げ切りサロン』をオススメさせていただきます。

閲覧いただき、ありがとうございました。

よく読まれている記事

エンジニア独立

2019/4/15

エンジニアがキャリアアップするための3つのテクニック

こんにちは、フリーランスエンジニアのてぃすです。 エンジニアという職業の中でも高収入とライフワークバランスを実現して充実した人生を送っている人もいれば、低い給料と長時間労働で疲弊しきっている人もいます。 僕も半年前まではエンジニアという職業を見限ってしまおうかと真剣に考えるほど、残念な状況にいました。 しかしこのまま終わってしまうのは悔しいと思い一念発起して行動を起こし、半年の間に月収を3倍以上あげることに成功しました。自分言ってて胡散臭い話ですが、実体験です。 キャリア向上を目指した行動の中には、意識し ...

続きを読む

エンジニア独立

2019/4/15

仕事を選べるITエンジニアになるための面談テクニック

どうも、フリーランスエンジニアのてぃすです。 ITエンジニアとして働いていく上で、大部分の人が経験する面談。 その後の数ヶ月、正社員や長期プロジェクトであれば数年の待遇を左右する超重要イベントなのですが、多くのエンジニアがこの重要性に気づいていません。 とりあえずこれまでの経歴を箇条書きして どこかで調べてきたような自己PRを適当に書いて 面談で書いてあることをそのまま口にする といった投げやりな面談を続けていては、売り手市場ということもあり仕事に困る可能性は低いですが、待遇の良い仕事を気づかないうちに逃 ...

続きを読む

エンジニア独立

2019/5/29

エンジニア歴2年の僕がギークスジョブでフリーランスを目指してみた

ぼちぼちの偏差値の文系大学を卒業後、パッケージ運用系のIT企業に就職。9か月で退職。 その後特定派遣会社の正社員として働いてきた僕がなぜフリーランスを目指す気になったのか。 一番の理由はズバリ、お金が稼ぎたかったから。 正確にはもっと効率よくお金を稼ぎたかったからです。 こんな会社もう嫌だ・・・ 現在僕は正社員として2年以上継続して現場に赴き、プログラミングの業務に従事してきましたが、全く給料が上がらない。 ぶっちゃけると手取りが20万円に届かないレベル。ボーナスもお小遣い程度なので年収も悲惨。 給与明細 ...

続きを読む

エンジニア独立

2019/4/15

稼げないエンジニアは過小評価が原因

こんにちは、フリーエンジニアのてぃすです。 僕は正社員時代、3年目になっても手取りが20万にも届かない残念な状態にありました。その時は、 てぃすITエンジニアとか全然稼げない職業なんだな という印象を持っていました。別の業種に就こうと考えたことも1度や2度ではないです。 そして正社員を辞めてフリーランスになって月100万程度は安定して稼げるようになり、エンジニアの収入の相場のカラクリが少しずつ掴めてきました。 勘違いしないで欲しいのですが、単に正社員よりフリーランスの方が優れているということが言いたいわけ ...

続きを読む

エンジニア独立

2019/4/15

ITエンジニアの働き方比較(正社員/派遣/フリーランス)

最近ではITエンジニアの需要が激増し、特にプログラマーを目指す人が増えてきました。 今の時代、プログラマーをはじめとするITエンジニアを仕事として選ぶことは賢明かつ的確な判断と言えるでしょう。 その一方で、世間ではプログラマーの不遇が叫ばれていたり、IT土方などの蔑称で呼ばれていたりします。 それは働き方の選択を誤っているプログラマーがあまりに多いことが原因となっています。 稼げる市場であるということは、依頼主と技術提供者の間に入って、不当に利益を得ようとする存在が増えることに繋がります。そういった存在に ...

続きを読む

-プログラミング
-, , ,

Copyright© TIS ENGINEER NOTE , 2021 All Rights Reserved Powered by AFFINGER5.