【佐渡プロジェクト】研修振り返り
最近、あいにくの天気が続き日の光が恋しく感じております、北嶋です。
今までいくつかの視点で社員をインタビューして参りましたが、今回は研修カリキュラムが修了したタイミングというのもあり、わたくし北嶋の視点でプログラミング研修を振り返った記事を作成してみました。
どのような研修内容だったのか興味がある⽅は是⾮⼀読頂ければ幸いです。
実際に取り組んだ研修内容について
私が実際に行った研修の内容で印象深いものをピックアップしました!
【1】 開発環境構築、必要語句や概念のインプット
【2】 Python
【3】 SQL
【4】 Django
【5】 Vue.js
【6】 オリジナルアプリ作成
【1】開発環境構築、必要語句や概念のインプット
研修はまずITエンジニアとして持っておくべき知識の学習から始まりました。
webページが表示される仕組みや、OSってそもそもどんな役割があるのか等、自分たちが普段当たり前のように利用しているサービスの実態についても学べました。
⼀通り学習を進めた後は、記述・選択形式のテストが実施されます。
範囲が⾮常に広かったのでヤマを張る!…というような事は当然できず、全体への理解ができていないとすぐボロが出ます。私も、地道に不明点をしらみつぶしで失くしていきました…!
【2】Python
プログラミング言語としてメジャーなPythonも、研修の早い段階で学習します!
環境構築も簡単ですし、動的型付け言語なので他の言語と比べると直感的にソースコードを読める為、初学者にはもってこい!
かつ標準ライブラリとして、言語に多くの機能があらかじめ用意されており、情報収集しやすいことも魅力です!
記述方式や使えるプロパティ、クラスやメソッドといった構成要素や、
「ある役割を持ったモノ」ごとにクラスを分割し、モノとモノとの関係性を定義していくことでシステムを作り上げようとするシステム構成の考え方の「オブジェクト指向」も学びました!
例えるならクラスが「車の設計図」のようなものであり、プロパティが「車を構成する色やタイヤ、大きさなど」、そしてメソッドが「車を走らせる、加速させる」というイメージです。
それらをじっくり学習した後、指定の機能実装の課題が与えられました。
対象日時を様々な形式に変換して返す日付操作機能や、CSVファイルへのデータ保存、または取得を行う機能を、設計書を参照しつつどうやったら実現できるかを今までの講義のメモや見聞を駆使して実装しました。
最初は見るに堪えないソースコードでしたが(涙)、添削や同期との意見交換などで最終的に形になったときにはこみ上げるものがありました!
【3】SQL
データベースという、あらゆるデータを内包する「入れ物」から必要なデータのやり取りを行うための言語がSQLと言われています。
普段私たちが当然のように行っているネットでのショッピングやサーフィンもデータベースやSQLがあってのもの…!
今回はオープンソースで触りやすいデータベース管理システムである「MySQL」を学習しました。テーブルの作成から始まり、基本的なCRUDのクエリを勉強しました。単純かもしれませんが、いざ自分でSQLを書いてみると、慣れないうちは大変でした…!
【4】Django
PythonのフレームワークのひとつであるDjangoを使ってアプリを作成しました。MTVモデルの概念を学びつつ、Model、View、Templateをコーディングしていくことで、アプリ開発の流れを理解することができました。
研修最後のオリジナルアプリ作成では、Django REST frameworkを使用してAPIの作成を行いました。
特に集中して取り組んだのは認証機能(ログイン機能)で、アプリケーションの作成からモデル定義(データベースを連携させる仕組み)やビュー定義(取得したデータを表示させる仕組み)、そして表示用のエンドポイント(URL)設定など、サーバーサイドにおけるアプリの構成や仕組みを理解することができました。
【5】Vue.js
Vue.jsはUIを構築するJavaScript用のフレームワークで、先述のDjango REST frameworkはバックエンドで動作しますが、こちらはフロントエンドで動作します。
フロントエンド開発学習としてhtml, CSS, JavaScriptを一通り学習後取り組みました。
大きな利点として仮想DOMという概念があり、画面を切り替える際に画面全てを切り替えずに必要な部分だけを反映させて処理を高速化させる事ができます。
これによって画面の要素をコンポーネント化(部品のようなイメージ)して画面を変えるときにその部品を使い分けて効率的にフロントエンド開発が行えるような手法を学んでいきました!
Vue.js自体を学ぶことも大事ですが、画面遷移やボタン配置、デザインなどの最適解を常に考えながら、ユーザー目線も持ちつつ開発していました。
【6】オリジナルアプリ作成
研修の集大成として、最後にオリジナルアプリを作成します。
私は必要機能として顧客などの情報をCRUD処理といわれる登録や更新、
削除機能や売上集計機能などを搭載した管理アプリの作成を実施しました。
まずは必要な画面や機能、テーブルを洗い出し、画面遷移図とざっくりした画面イメージをエクセルでまとめました。それをもとにモックアップを
作成し、Django REST frameworkでバックエンド側のAPIを開発しました。
その後フロントエンドとバックエンドの繋ぎこみを行い、画面から実際に
アプリを動かして動作確認をしていきました。
単純なCRUD機能であれば問題はありませんでしたが、少し凝ったロジックのAPIを開発する際は、整理するために設計書に書き起こしながら少しずつ機能を追加していきました。アプリ開発当初は、「本当にアプリを完成させられるのだろうか」と途方もないイメージだったのですが、なんだかんだ手を動かし続けていると着々と出来上がっていきました!
最後にはオリジナルアプリの内容を報告する機会があります。
発表の直前まで不具合が無いか何度も再確認して…それでも緊張と不安に苛まれていました…。(笑)
いざ報告会となって自身の作成したアプリの機能をひとつひとつ説明していきましたが、特に注力した点については積極的にアピール!
しかし発表を進める中でロジックの考慮もれがあり、特定の処理が実行されなかった時は頭の中が真っ白になってしまいました…。
その後原因はすぐに特定できたので、メンターの竹村さんも仰っていましたが、これはこれで非常にいい経験になったと思っています。
全体を振り返って、培ったこと。思ったこと。
この4カ月を振り返って一番大切に思ったことは、「自走力」でした。この右も左も分からない状況の中で、いかに技術的に研磨していくかを考えた際に気になったことはどんな些細な事でも調べたり質問したり、片手間に付随する知識について調べたり自身で環境構築や動作検証してみたりなど、ひたすらに手を動かし続けました!
いかにして走り続けるか、がキーだったかなと思います。
他にも「検索力」についてもかなり鍛えられました。如何に早く自身が求める情報を探し出せるかというのは、実際の開発現場においても必要なスキルなので特に注力していました。
最後に
ITへの知識・技術の追求には終わりがありません。常に学習・実践が非常に大切になります。そのような状況で私が最も大切だと思うことはまず「プログラミングを好きになること」だと思います。
確かにこの研修中でも、自身のコーディングが思い通りに機能せず歯がゆい思いをしたこともありました…。(涙)
しかしながらその中で何度も反復する内に「こうしてみたらいいのでは?」「このやり方で実装できるのでは?」という考えが出てくるようになります!意外とふと浮かんだときに思いついた手法が通ることが多くて「あんなに悩んだのに…」と拍子抜けしたときもありますがそれが何とも気持ちがいいです…。(笑)
そうして自身の引き出しを増やしていくと、いい意味でのめりこんでいけます!
今は、実装できた時の気分を味わいたいが為に興味のある分野の学習を業務外でも学ぶ癖がつくようになり、様々な知識や技術を習得して開発現場の最前線で活躍したいとより一層思うようになりました。
実際、初学者にとっては「何から学んでいいのかわからない」「学ぶことが多すぎる」という悩みがあるのは事実だと思いますし、最初に直面する壁だと思います。しかしながら学ぶことのできる分野はたくさんあります。
その中から自身の好きな分野を見つけてそれを糧にしていくことで自信をつけていけると思います。
そのための環境が整っている佐渡プロジェクト、チャレンジしてみませんか?
miracleave【佐渡プロジェクト】に興味がある方は、是非、下記リンクもご参照ください😊
🌟佐渡事業部の先輩エンジニアの方々による記事です🌟
🌟miracleave佐渡プロジェクトに関する記事です🌟