👦

Sierでアプリ開発者として働くために必要なこと(ローコード) 前編

2023/04/08に公開

概要

Sierの中でアプリ開発者として働くためにはどんなスキル・能力が必要なのか…
また、それらの能力を身に着けるためにはどんな教材を学習すればよいのか。。。
そのあたりを私自身の経験を踏まえ、まとめてみました。

対象読者

こんな方にとっては、有益な情報が少しくらいあるのではないでしょうか。

  • Sierで実際に働いている入社数年目までの方
  • これからSierへの入社を考えている方
  • 開発者として働いているが何を学習すればよいかいまいちわかっていない方

おすすめの教材についても共有するので、よかったら参考にしてください。

前提

この記事を書いている筆者はこういう環境で働いています。

  • ローコード開発ツールを使用したWebアプリケーション開発をしている
    (基本的なところはノーコードで実装できるが、標準機能だとかゆくて手の届かないところはOSSによるカスタマイズができる)
  • カスタマイズでJavaScript(クライアント・サーバサイドともに)やSQLを扱う
  • 協力会社さんの管理をしつつ自らもコーディングをしている

また、当記事で指しているアプリ開発者というのは、"開発系タスクで自走できる"・"わからないところは不明点を明確にし、適切な質問先に質問できる"状態の人を表しています。

背景

チーム内メンバーとの会話の中で、ひとりで開発できる開発者になるためには、どんなことを学習すればよいのか考える機会がありました。
今の業務では、とあるベンダー製品であるローコード開発ツールを使用したアプリ開発をしていますが、新規メンバーに対し、ベンダーが準備した入門研修を受けてもらったあとに実際に現場に入ってもらうと、全然わかりません!と言われてしまったり、新規メンバーにつきっきりでQA対応しないと、自分一人で作業できない、そういった状況がよく発生していました…。

そうなると、比較的経験のあるメンバーに質問が殺到し、その方々の負荷が増大。その結果経験のあるメンバーがつぶれてしまう。。。そういうケースに発展することもあります。
そのままではまずいということで、新規メンバーに対する研修内容を見直してみることとなりました。その時のメモを共有させていただきます。

気を付けること

あくまで個人的な見解となります。

必要なこと(スキル・能力)

何人かのメンバーと話した結果をまとめると、このあたりは必要だよね、という結論に至りました。
 1.Webの知識
 2.開発言語を扱う力
 3.製品ツールの使い方
ー----今回はここまでー----
 4.開発時に使うツールの使い方
 5.テストのやり方
 6.その他

順番に見ていきます。

1.Webの知識

基本的なところですね。FE(基本情報技術者試験)等でも問われることのある知識です。
あ、これFEでやったやつだ!というセリフを職場でたまに聞きます。業務を行う中で、サーバの種類や役割などが具体的なものと徐々に紐づくのだとは思いますが、各サーバの役割を事前に理解しておかないと、不具合発生時の原因切り分けなどで苦労します。(原因切り分けは得意不得意が顕著に現れる印象)
また、HTTPメソッドやWebアプリケーションの脆弱性も概要レベルでは知っておく必要があります。(あくまでも腹落ちするのはそういった事象を扱う時だとは思いますが)

これらの学習をする際におすすめの教材です。
https://amzn.to/43ao7ku

併せて、Web脆弱性についても知っておく必要があります。
苦労して仕様通り動作するものを作っても、脆弱性を含むプログラムであれば最悪作り直しになってしまいますからね…
このあたりはIPAのサイトがよくまとまっています。
https://www.ipa.go.jp/security/vuln/websecurity/about.html

また、各脆弱性の概要だけでなく、仕組みまでわかっていると実装時に気を付けることが具体的にイメージできるようになります。
仕組み理解の手助けとなるのが、実際に脆弱性をついて攻撃してみることです。
(実際に脆弱性をついた攻撃を再現できるツールがいくつかあるのでそちらを使用します。
 以下はIPAが提供しているものです。一般のサイトに攻撃してはいけませんよ!)
https://www.ipa.go.jp/security/vuln/appgoat/

2.開発言語を扱う力

ここは言わずもがな、各言語での文法学習です。
英語だったりの言語学習とおなじで、とにかく量をこなすことが必要だと思っています。
また、本当に様々な教材がありますが、正直そこまで優劣はないのかなと。
大切なのは、書籍などのコンテンツを読んだり取り組んだり、実際にコードを書いて動かしてみることです!

とはいっても、じゃあ何やればいいんだよ。となる方もいるので、私が使用したコンテンツを紹介します。

はじめて触る方向け

どの言語学習者にとっても入門編として役立つサービスです。1カ月だけ課金して使ってました。
https://prog-8.com/

JavaScript

変数宣言や繰り返しなど、超基本的なことができるようになったあとで読みました。
JavaScriptのクセが少しは理解できるようになる本です。
https://amzn.to/3Gtg2xr

モダンJavaScriptについてはこちらのYouTubeチャンネルが参考になりました。
そもそもモダンJavaScriptとはなんぞやといえば、非常にざっくりした説明だと、昔のJavaScriptだとできるけど記載が複雑になってしまうような処理が簡潔に記載できるようになるなど、新機能や構文が搭載されたJavaScriptです。(ざっくりしすぎ)
1年以上前のものですが、モダンJavaScriptシリーズ
https://youtube.com/playlist?list=PLwM1-TnN_NN4SV6DEs4OtfA51Up6XzTfB

SQL

とにかく量をこなそう、ということで無料で使えるOracle版SQL問題集です。
(全問正解となるまでやりました🎊)
https://mondai.ping-t.com/question_subjects/35

上記と合わせ、ベンダー系資格であるOracle Masterの資格も取りました。
DB基礎からSQLの書き方まで習得するのによい教材でした。参考書もいくつかありますよ。
バックアップ取得など、管理者業務の基礎も学ぶことができます(業務ではあんまり使わないけど)
https://amzn.to/3UlnQa5

HTML・CSS

HTML・CSSもまずは上述したプロゲートに取り組みました。
それだけで、シンプルな画面をつくることはできるようになります。

その他

また、BootstrapなどのCSSフレームワークについてもハンズオン学習をしました。
Node.jsをベースに実際に動く画面を開発する教材です。
Bootstrapとは、というところからDOM操作にかかせないCSSセレクタについても学習することができます。
https://www.udemy.com/share/101W9C3@Urg2Yej5an02QN5A2oiWgdGRRSTD6B-COhRjAgWoRfl87TvA4Ybb4NDo9leFXUUrxA==/

3.製品ツールの使い方

以前、とある上場企業でアーキテクトとして働く方の話を聞く機会がありました。
その時は、"新しい製品で開発するときに個人的にやっていること"というテーマでの講演でしたが、その方いわく、「その製品の公式仕様書サイトを全量読み込むことはもちろん、公開されているER図やAPI仕様ドキュメントに加え、その製品を作った方のブログを読んで、その方の設計思想を把握する」といわれていました。
その話を聞いた当時社会人歴1~2年の筆者は、そこまでやるの??と正直思いました。
ただ、それから数年たった今では、まあ個人ブログまで見る必要はないけど、公式サイトに書かれている仕様書は全量読み込んだほうがよいと思っています。
というのも、製造していてなぜか思い通りに処理されないという場合に、実は制約として公式サイトに記載されているということがたびたび発生するからです。
こういうところに書かれている細かい制約が存在する!
こういうところに書かれている細かい制約が存在する!

上記のような制約を事前に全量把握しておくことはなかなか難しいですが、困ったときにその仕様がかかれたサイトをぱっと参照できるようにしておくと、後々調査が楽になるのではないかな、と思います。

もちろん、基本的なツール使用法を把握するのは前提知識として必須です!

まとめ

今回は、Sierでアプリ開発者として働くために必要なことをざっくりと紹介させていただきました。
あくまでも特定の環境下において必要であること、ということだけは改めて念押しさせてください。
また、記載が少し長くなってしまったので、続きは別の投稿で紹介させていただきます。

つまるところ、この記事を通じて伝えたいメッセージはこんなところです。

  • 始めたてのうちはとにかくいろいろとやってみよう
  • コンテンツは参照するだけではなくて、実際に手を動かそう

この記事が、少しでもみなさんのお役に立てれば幸いです。

Discussion