Frameworkとは何か?絶対に必要な「中身」!

記事
IT・テクノロジー

Frameworkとは何か?絶対に必要な「中身」!

プログラミング関連の記事や投稿を見ていると Framework(フレームワーク)という言葉を良く聞きますよね?皆さんは、Freamework(フレームワーク)というのを何かご存知ですか?

Web 開発の世界では、良く利用される React や Vue などもフレームワークと呼ばれています。言葉の定義なので React は Library(ライブラリ)と言う人もいますが、簡単に言えば、「フロントエンドのインターフェースを作るための仕組み」です。

もう少しわかりやすく言えば、「箱」みたいなものです。普通の生活で箱をどう使うかと言えば、中に「物」を入れるのに使いますよね?逆に言うと、中に入れるものがないとあまり役に立たない物です。

Web 開発で言う「物」とは何か?

Web 開発の場合、この「物」に当たるのが、Web サイトから配信する「コンテンツ」です。 これは、単に情報だったり、Web を通じて配信するサービスやアプリだったりします。

この「コンテンツ」(配信する中身)があって初めて生きる物です。

この記事は、色々あるフレームワークでも、Web 開発でよく利用されている React や Vue を中心としたフロントエンド開発のフレームワークにフォーカスしてお伝えしていきます。

実は、React にしても、Vue にしてもフレームワーク自体は余り難しいことはありません。 基本は、HTML で画面の配置を決めて、表示するデータの処理を Javascript(Typescript)で行っているだけです。あとは、その書き方が違うだけで基本は同じです。

コンセプトは、表示を単位にした「部品」にして画面を構成していくと言うのがこのフレームワークのやっていることです。この部品はあるフォームだったり、メニューだったりページだったりと言う感じです。

この部品も、実際に配信する「コンテンツ」が重要になります。

学習に使う例題は重要

React や Vue はあくまで箱なので、そこに入れる中身がないと説明するのも難しくなります。 そこで多くの教材は、何か例題を示して例題にそって React や Vue をどのように使うかを説明する形式になっているのが普通です。

実際に学習されている方は、例題や課題は簡単に感じられるのではと思いますが如何ですか? 例題は、問題なくできるのに実際に自分で使おうと思うと「アレ!?」となる場合が多いのではないでしょうか?

理由は簡単で、今までやってきた例題には同じような使い方はなかったからです。 例えば、同じ鋸でも、木を切るものと、鉄を切るものは違います。「対象」が変わると当然その使い方も変わってくるからです。

良い例題は、できるだけ色々なケースを含んでいる例題あ良いわけで、一つの例題でたくさんのことを学ぶことができます。当然ですが、一つの例題でカバーできることには限りがあるので、使う「道具」に合わせて違う例題、課題を組み合わせて一通りの使い方をマスターすると言うのが一般的な学習の流れということになります。

最高の教材は自分が作りたい「コンテンツ」

ところが、React も Vue も色々なコンテンツに対応するために、非常に多くの機能を持っています。したがって、70%〜80%の機能の使い方をマスターするだけでも結構な時間がかかります。しかし、実際に Web 開発を行う場合に必要になるのはその中のごく一部だったりします。

意外に余り使わない機能も多いのです!

そう考えると、自分の作りたい「コンテンツ」に合わせた学習が一番効率よく学ぶことができるということになります。必要な「道具」の使い方から覚えるということです。 逆に作りたい物が決まらないと、1から学習する長い道のりを辿ることになります。

学び方の「今」と「昔」

実は Web 開発の学習の仕方も大きく変わってきています。 大きな違いはこの2点から来ています。

* インターネットの発達
* 標準機能の共有

以前は、一応一通りの知識がないと、個別の対応策を考えるのも難しかったため一通りの勉強が必要な部分も多かったため、「教科書」(テキストブック)があって、それを一通り勉強するというのが標準的なスタイルでした。 しかし、現在はインターネットの発達のおかげで大抵の課題は Google 検索をすれば、同じような課題を解決した事例や解決方法は簡単に見つかります。つまり、必要な時には検索を駆使してその都度学べば十分ということになります。

さらに素晴らしいことは、多くの「標準的な機能」は誰かが既に作って共有してくれている場合が非常に多くなっています。これらを自分自身のサービスやアプリに取り込めば、自分で作る手間が省けます。

つまり、深い専門的な知識がなくても大抵の Web アプリや Web サービスを作ることは意外に簡単にできるような環境になっているということです。

昔は、「知っている事」が価値でしたが、今は、「知っている事」は価値ではなくなっているという事です。知識は、Google 検索で賄えるという事です。 今、価値として求められることは、「知識を使う=物を作れる」という点が主体になっています。

Web 開発は、HTML/CSS/Javascript の最低限の知識で可能です。あとは、React や Vue の簡単な例題を2〜3個もやれば、十分に Web 開発は実践できます。

Web 開発で大切なことは?

しかし、「コンテンツ」(中身)は、プログラムの学習に時間をかけても身につく物ではありません。 「問題」や「課題」を探す能力が鍵になってきます。

探すのは、

* 皆が困っていること
* あったら便利なもの
* 皆が知りたい事
です。それを見つければ後はどう形にしていくかを考えれば Web アプリや Web サービスに結びついていきます。

こうしたことは、簡単に身につけるのはちょっと難しいので最初は、「それを見つけた人の手伝い」をするとそうした問題や課題を自分で見つける助けになります。

悩みの宝庫はクラウドソーシング!
そうした、問題や悩みはクラウドソーシングを見るとわかります。 求められている仕組みや機能をより具体的に示して、仕事の発注先を探しているわけですから、クラウドソーシングを見るだけでも、良い勉強になります。

クラウドソーシングで求められている「問題」や「課題」は実際に必要とされている「本当の中身」です。それを実際に作ってみるのは、即戦力になる実力の養成には一番の課題ということになります。

実際に、提案して案件を獲得できれば、「お金をもらいながら稼ぐ」チャンスになるわけです。

クラウドソーシングの報酬は高くないかもしれません。よく「ブラック」という言葉も目にしますが、そういう面もあるのは事実だと思います。しかし、物は考えようで、「稼ぎながら学ぶ」と考えると実に素晴らしい仕組みとも受け取れるわけです。

実力やクラウドソーシングで仕事をしていく過程で得たコネクションや信頼が増えていくと、クラウドソーシング意外で稼ぐための方向も見えてくる物です。

まずは、クラウドソーシングを有効利用して実力養成というのは悪い話ではありません。

まとめ
プログラミング自体は余り難しい物ではありません。ある程度時間をかけて勉強すれば Web 開発ができる「知識」は確実に身に付きます。しかし、インターネット全盛の現代においては、「知識」は余り大きな価値にはつながりません。Google 検索がその価値を下げているからです。

価値あるプログラマ(エンジニア)になるためには、箱(フレームワーク)のような仕組みではなく、そこに入れる中身(問題や課題の解決)を見つけてそれを実現できる力を身につける必要があります。

その中身を学ぶ場は、プログラミングのスクールや講座ではなく、クラウドソーシングのような「作りたい物が具体的になっている場」です。そこで、実際に、中身を作る経験を積んで、中身がわかる技術者になることが、プログラマやエンジニアとして成功する秘訣です。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す