前回、”社会人のIT学習:企画の予算感を把握するには” の続きです。
企画の予算感を把握できるようになるための学習として、プログラミングとDBを学習するにはどうしたらいいか書きます。
(エンジニアとしてのスキルをつけるためには、ここに書かれている内容では足りないです)
概要
プログラミングを学ぶと、どうプログラムが動くのか、どういう機能が大変(コストがかかる)か、イメージしやすくなります。
プログラミングに必要なインプットや求められるアウトプットが分かり、また、インフラなど他項目の学習効率も上がります。
なので、最初にプログラミングをある程度学ぶのがいいと思います。
また、多くの機能では、データの保存と抽出 が処理の主要部で、DB(SQL)をプログラミングとセットで勉強することをお勧めします。
プログラミングとDB(SQL)は、最低限、実際に手を動かした方がよいと思います。
あー、こういう機能は作るのが面倒だな、とか感覚が掴めます。
では、具体的にどういう学習をしていけばいいのか、下記3ステップを推奨します。カッコは目安時間です。
学習ステップ
#1.1. SQLの学習 (15h)
#1.2. プログラミングの基礎的な学習 (40h)
#1.3. WEBフレームワークの基礎的な学習 (30h)
#1.1. SQLの学習
多くのWEBシステムではでDB(データベース)を用います。DBにも多くの種類がありますがまずはMySQLからでいいでしょう。(*1)
DBとやりとりする命令文がSQLです。
プログラムとDB(SQL)との関連性は、例えば、このブログについて考えると、下記のようになります。
ブログを投稿する機能
→画面で入力された内容を、DBの記事テーブルに保存する。
ブログのトップページを表示する機能
→DBの記事テーブルに保存されている中から、(下書きでなく)公開済みの記事を、新しい順に10件取得して表示する。
個別の記事を表示する機能
→DBの記事テーブルに保存されている中から、URLにある記事番号に該当する記事を取得し表示する。下書きなど、公開でない場合は表示しない。
このように、多くの機能が、DBと密接に関連します。
実際のプロジェクトでも、「DBにどういう形で保存するか」「DBにあるデータをどういう条件で取ってくるか」を考えて、それ容易かどうかで見積り額を調整をすることが非常に多いです。
弊社では、研修で下記本のレベルのSQL学習を一通りやってもらってます。
書き込み式SQLのドリル 改訂新版
https://www.amazon.co.jp/gp/product/4822296210
やさしいSQL、のような、基礎的なものでもなんでもいいです。
ポイントは、実際にSQLを書いてみて、
・こういう風に書いたらどうなるかな?
・こういうデータを取る場合はどうやって書くんだろう?
と知識をなるべく横に広げながら、テキストの内容を習得することです。
単にテキストの内容を、そのまま書いて想定どおりの結果となっても、身に付いてないと思います。
SQLは、次のプログラミング学習に必要となるので、優しい内容は身に付くまで学習しましょう。
(*1) DBにもいろいろな種類があり、主にパフォーマンス要件によって使うDBが変わり(あるいは併用し)、開発手法も変わってきます。
例えば処理がむちゃくちゃ速いDBや、大量のデータに強いDB、検索に優れたDBなど。
ただ、一般的には、RDBといわれるものが使われる事が多く、特にMySQLがWEBサービスでは主流です。RDB同士では少なくとも基礎学習においては大きな差異はないです。
#1.2. プログラミングの基礎的な学習
プログラミングは、さまざまな言語があり、大きく分けると、サーバで動くものと、PCやスマホなどの端末で動くものがあります。
まずはサーバで動くものからやるとよいです。
PHP、Ruby、Python、JAVA、C#、GOなど種類がたくさんありますが、どれか1つでよいです。最近はPythonやGOなどが流行っていますが、PHPかRuby(On Rails)あたりが、資料も多く学習がやりやすいと思います。Pythonもいいかも。
まずは、基礎的な文法を学びます。いろんな関数がありますが、どのみち使うときはググることが多いので、関数の名前などはそれほど覚えないでもいいです。
弊社では、下記本を新入社員にやらせてます。
やさしいPHP 第3版 (「やさしい」シリーズ)
https://www.amazon.co.jp/gp/product/4797380896/
こちらもポイントは、ただ本に書いてあることをやるだけでなく、
・こう変えたらどうなるのか?
・こういう場合はどう書くのか?
を意識しながら、ちゃんと理解してスキルを身につけましょう。でないと、見積りにいかせません。
#1.3. WEBフレームワークの基礎的な学習
WEBサービスを作るときには、大体の場合、WEBフレームワークを用います。WEBフレームワークとは、WEBサービスを作りやすくするために、便利な機能をセットで提供するもの、というイメージです。
Ruby on Railsが有名です。PHPだとLaravelとかCakePHPとか。年々進化してます。
弊社ではマイナーなフレームワークを使うことが多いので、独自で研修プランを組んでいます。
本で学習するなら、10日で覚えるXX、のようなのでいいかと思います。
フレームワークは、お互い、持っている機能は似ていますが、やったことがないものだと学習コストがかかります。また、自由度の高いものや処理速度を重視しているものなど、それぞれ特徴があります。
フレームワークを勉強する際は、”はじめてフレームワークを使うときはこれだけ学習コストがかかる”というのを理解すると良いでしょう。
次回は、
#2. ネットワーク・インフラ・サービスレベル
です。
目次
社会人のIT学習:#1. プログラミングとDB
社会人のIT学習:#2. ネットワーク・インフラ・サービスレベル
One thought on “社会人のIT学習:#1. プログラミングとDB”