読み物一覧

プログラミング初心者の機能開発

#column#DX技術者育成プログラム
2022/01/20

中野 雅俊

こんにちは。岡野バルブ製造からRegnio社のDX技術者育成プログラム研修を受けている原口です。

早いもので、研修が開始した6月から半年以上が経ちました。新しいことを学べており、充実した日々を過ごしています。

そこで今回は、研修で行っている機能開発について振り返りたいと思います。

初めての機能開発

研修では、最初に基礎的なプログラミング言語の習得・Webサイトの写経を行いました。そして基礎学習が終わった後に、すぐに実際の機能開発に取り掛かりました。

私が初めて取り組んだものは、Webサイトの機能開発でした。ルーティングの編集、全体を制御する機能の追加、画面の作成など基礎的なものから、画像の検索機能や、画像をクリックするとモーダルウィンドウ(注1)が出現する機能など、少し応用的な部分まで取り組みました。

基礎学習が終われば、ある程度自走して開発を進めていくことになります。どのように工程を進めるかを考えて実装に入るのですが、はじめは未知数でわからないことだらけでした。その時は、「本当にできるのか?」という気持ちと、「よし、やってやる」という気持ちが交互にありました。

新しい経験の連続

他にも、gitを使用したチームでの開発や、チャットツールを通じたリモートメンバーとのコミュニケーションなど、新しい経験の連続でした。

はじめは、対面以外のコミュニケーションに慣れず、違和感を感じていました。正確に文章を書かないと、実際に伝えたいことがうまく伝わらなかったり、リモートだと相手の状況がわからないため、質問するタイミングをつかんだりすることが難しく感じました。

ですが、リモートでのコミュニケーションを重ねるにつれて、だんだんとコツがわかるようになりました。

テキストで質問をする際には、

■ 起きた事象

■ 実現したいこと

■ 相手にどんなことを答えてほしいか

などを明確に書くことで、スムーズにやりとりをすることができました。

リモートのコミュニケーションでは、文章として情報が残り、誰が見ても情報に差が生まれないことや、共有のしやすさ、好きな環境から参加できるなどのメリットがあります。

今では、私も家から参加することが増え、リモートでのコミュニケーションにも慣れたように感じます。

チーム開発では、自分のタスクの進捗だけでなく、メンバーがどんなことをしていて進捗状況はどういった感じなのかを把握する必要があります。メンバーでゴールを共有しておくことでスムーズに開発ができます。

また、わかりづらいコードや変数名を使用すると、レビュアー(注2)の時間を多く取ることになります。そのため、他の人が見てもわかりやすいコードを書く必要があります。

開発中わからないことは、まずは自分で調べ、それでもわからない時には、チームで一緒に解決の方法を模索してもらえる環境があったからこそ、私はエンジニアとして成長できたと思います。

エラーの分だけ強くなる?

開発を行っていると必ずと言っていいほどエラーが起きます。エラーが起きた場合には、原因を調べ、解決策を考え実行します。そしてエラーから解決までの流れ(エラー事象について、原因、調べたこと、解決方法)を情報共有ツールにまとめます。

そうすることで、同じエラーや似たようなエラーがあった際に、自分や誰かがまとめた解決策を参考にすることで、速やかに対応できるようになります。自分のエラーが溜まるのに比例して、経験値が溜まります。

また、Regnioメンバーや、今後研修プログラムに参加される方への知識共有にもなると思います。

今後について

半年間はバックエンド(注3)を中心に学び、webシステム、API(注4)やデータベース等についての理解を深めました。最初にも書いたように、この半年間でRuby on Railsを用いて、データベース設計から、機能の実装まで自走できるようになりました。今後はReactを用いたフロントエンド(注5)にも挑戦していきたいと思います。

実際の開発を経験でき、日々新しいことに挑戦できる環境がこの研修にはあります。

DX技術者育成プログラムを検討してはいかがでしょうか。

注1 浮かび上がるようにコンテンツをポップアップ表示すること。

注2 プログラムコードを詳細に調べ、誤りがないかなどを評価する評価者のこと。

注3 ユーザーに見えることのないサーバーやデータベース、機能、処理を担うプログラムなどの仕組みや部品のこと。

注4 API (Application Programming Interface) の略。ソフトウェアの機能を共有する仕組み。

注5 webサイトやアプリを開いたユーザーの目に触れる部分のこと。