NTTドコモR&Dの技術ブログです。

0からサービス開発!プログラミング研修の舞台裏

■はじめに

はじめまして!
NTTドコモ サービスデザイン部の上野です。
本記事ではプログラミング初心者である私がプログラミングの研修を受講した際の経験を紹介します。 ちなみに初心者レベルとしては、if文やfor文はなんとか使えるけどそれ以外のちょっと特殊な書き方などはほとんど理解していないくらいのレベルです。
また、研修は会社からの支援を受けて受講したため費用負担はありませんでした…!社員の育成環境に感謝です…!

■プログラミング研修の概要

今回受けたプログラミング研修では約2.5か月という期間でGit、HTML、Javascript、CSS、Reactなどの基礎をみっちり学習し、最後には0からサービス開発もしてしまおうという内容でした。 途中何度もリタイアしたいと言いそうになりましたが、死に物狂いで最後までやり切ったので学んだことや感じたことなどをまとめていこうと思います。

■基礎学習

研修ではJavascriptなどの基礎を学ぶ機会もありましたが、これが基礎とは思えないほどとんでもなく過酷でつらい期間だったのです…。

過酷ポイント1:短すぎる期限

基礎学習では要所ごとにテストが設けられていたのですが、そのテストの受講期限が短く設定されていたのでついていくのでとにかく必死でした。
イメージしやすく言うと、寝る時間と食事時間以外はずっとコーディングしていないと期限内にテストが終わらなかったときもあったスケジュールです。
とはいえ、短いからこそ必死になって取り組むこともできたんだろうなと思います。

過酷ポイント2:多すぎる課題

そして期限が短いのみではなく、とにかく課題のコーディング量が多かったのです…。
その量はプログラミングはある程度できるという人でも「コードは書けるけど量が多すぎてキツい」と言っていたほど。
そんな課題にプログラミング初心者が取り組んでいたので、毎日が課題量に絶望の日々でした。
「習うより慣れよ」ということわざがありますが、それをまさに体現したような研修です。
でも実際のところ、プログラミングは知識を学んで理解したと思っていても実際にコーディングしてみるとエラーが出たり細かい処理に戸惑うことが多いので、とにかく自分でコードを書くというのが大切なのだなと身をもって体験できました。

基礎学習期間での学び

そんな過酷な基礎学習でしたが、学べた内容はとても充実していました。 研修を始める前はif文やfor文などしか理解していないレベルでしたが、基礎学習後にはGitの使い方はもちろん、HTMLやCSS、Javascriptについて基本的な部分を知ることができたので、この段階でちょっとしたサイトを構築できるような状態になれました。
とはいえ、学んだ知識が定着したというわけではなく「こうしたらこういうことができるだろうな」という想像の範囲が広がったという感じでした。
最近では生成AIを活用したコーディングなども一般的になってきていますが、やりたいことを正確に言語化する能力やエラーが発生した際に内容を把握する力などがこれから重要になると思うので、いいタイミングで大切な基礎を学ぶことができたと感じています。
むしろ学ぶなら今が一番だと思います。

■サービス開発

基礎知識をしっかり学んだあとはついに実践です。
開発ではチームを組み、開発したいサービスを考え、開発・リリースするという実際の開発さながらな体験をしました。
ここでは1つずつ振り返ってみようと思います。

サービス検討

一番最初で一番苦労したのが0から1を考える必要があるサービス検討でした。
メンバーで大量にアイデアを出し、分類し、似たようなものはまとめ、絞り、ベストなアイデアを選ぶ…やることは単純ですが、やるのは難しいパートでした。
最終的に「休日の過ごし方を自動で決めてくれるサービス」を作ろう!とチームでまとまったのですが、
他のチームの検討結果を聞いてびっくり、全チームが「自分で考えなくても何かを自動的に決めてくれるサービス」を開発することに決めていたのです。
情報があふれている今の時代では”情報を減らす”サービスをみんな心の中では求めているのかもしれません…。

開発・リリース

開発するサービスが決まり、チーム内で開発の方針を決めたらついにサービス開発に着手です。
開発期間も限られていたため、AWSのAmplifyを利用して効率的に開発を進めていきました。
ちなみにAWS Amplifyはアプリケーションのバックエンドの構築や設定を自動的に実施し、ユーザーがフロントエンドの開発に集中できるAWSのサービスです。
今回は最終的に下図のような構成でプリケーションを開発しました。
(私が担当したのはCSSやJavascriptのコーディング部分です。なかなか思い通りにならずに苦労しました…。)

構成図

そして、実際に開発したサービスがこちらのワンクリックで休日のお出かけ先を決めてくれるサービス、”Shiori”です。
サービス名やロゴなどもすべて自分たちで考えたものですが、サービスをデザインする難しさを体感しました。

開発した"Shiori"(お出かけ先はダミーです)

サービスにアクセスして、画面内のボタンをクリックすると近所の施設から1か所だけを表示してくれるように開発しました。
チームで取り組んだ開発とはいえ、if文とfor文くらいしか理解していなかった初心者でも自分たちで思い描いたサービスを実際に作って動かすことができたのです!
開発が終わってしばらくは自分のスマホでサービスにアクセスしていいなーと思いながらポチポチしていました(笑)

■さいごに

本記事ではプログラミング研修を通じて初心者がサービス開発できるようになるまでを記載しました。 厳しいことだらけの研修でしたが、得られた学びや経験がとても多くて間違いなく社会人生活に大きな影響を与えた有意義な研修でした。
最近ではプライベートでも(ChatGPTの力を借りながら)プログラミングで自分の欲しいツールを作成したりして、研修での経験をいろんな場面で活用しているところです。
プログラミングの研修って興味あるけど、難しそう…、初心者だから不安…、業務ではプログラミングしない…といった人もこれから受講の機会があったときにはぜひ受講をおすすめします!
難しくても、初心者でもやったら慣れます!業務で使わなくても今の時代はプライベートでフル活用できます!ぜひ、一歩踏み出してみてください。