MUP プログラミング講座 アウトプット

知るべきは仕組みと用語の学び方

まず、ソフトウェアができるまでにそういった作業があるのかを理解しなければならない。プログラミングだけをやっていてもソフトウェアはできない。

ソフトウェアができるまでの流れ

どのようなソフトウェアが求められているのか(マーケットを調べる)
              ↓
       「設計」システムを仕様に起こす
              ↓
          「プログラミング」
              ↓       
                               「テスト」
              ↓
            「世に出す」
              ↓(顧客の声を聞く)
             「改善」を継続していく
 このような流れを経て、ソフトウェアを作成するためプログラミングのみできても、実際にはソフトウェアは作れずエンジニアとして働くことはできないのだ。   ソフトウェアを作る≠プログラミングだけ

Q.プログラミングスクールからプログラマーになる人も多いのでは?

A.高い収入の仕事に就きづらい
ある企業ではプログラミングをインドに¥20000/月外注していたりなどしているため、プログラマーのみとしての市場価値は¥20000となってしまっている。なので、実際には他のことができないとエンジニアとしては働くことができない。

 よって、常に学び続けなければならない。学び続けるには2つ知らなければならないことがある。
それは、「仕組み」と「用語」
 実際にプログラミングをするときにはほとんどの時間はググって調べていることが多い。あるプログラマーは10行書くのに1回ググる。しかし、ただ闇雲にググっていても答えは出てこない。調べるためには「仕組み」と「用語」が必要になってくる。この2つを知ることがプログラミングを行う上で大切になる。
 用語がわからなければどうググれば良いのかわからない。仕組みがわからないと何を書いているのか理解できないからだ。

料理で例えると
シチューを作りたい   「シチュー」とは?
レシピをみる      「切る」とは?
調理する        「包丁」とは?
完成             ↓
             用語を知っているから調理ができる
              「煮る」とは?=用語
             「煮る」とどうなる?=仕組み

プログラミングも同様で「仕組み」と「用語」を知った上でググることでようやくエンジニアとして仕事ができるようになる。よって、HTML、CSS、
Javascriptなどの用語を知る前に必ず「仕組み」と「用語」を学んでから、言語を学ぶことがエンジニアになる一番の近道。

まずは全体像を把握する。
プログラミングができるまでに関わる8つの職種
 世の中の会社がどうやってプログラムを世の中に出しているか、職種別のフレームワークで何をしなければいけないか。

プログラミング<まずは全体像は把握する>
どんな人たちがどんなことをしてプログラムを世にだしているか

デザイナー
ソフトウェアの見た目の制作
顧客からのヒアリング&改善
            すぐに価値の検証を行うことができる。
よく使うツール
   figma   AdobeXD 
 ソフトウェアを作りたいと思ったら、この2つのツールを使ってこんなデザインを作ろうと思っているということを書いて想定するお客に(家族、友達でも良い)見てもらい反応を見てフィードバックをもらうことからスタート。

フロントエンドエンジニア
デザイナーの人が作ったデザインだとソフトウェアは動かない。ブラウザ(クローム、サファリなど)ではまだ見れないので、デザイナーが作ったものを実用化するのがフロントエンドエンジニア

よく使うツール
・HTML
・CSS
・JavaScript

バックエンドエンジニア
例えば、インスタ、ツイッターなどのログイン時に仕様するE-mailアドレス、パスワードをバックエンドのプログラムが管理している。バックエンドのプログラムが保てなくてある情報から検索し、あるかないかをフロントエンドに返すなど、ユーザーの情報を管理する。

よく使うツール
・Java
・Python
・C#
・Go
・Kotlin    ETC....
など、たくさんの言語を使う。

インフラエンジニア
作ったソフトウェアを置くところの管理をするエンジニア
作ったプログラムを管理する

例えば  Amazonでだいセール
     →アクセス集中
 入りきれず、パンクしてしまうため人が多く来たら入れる場所を広げ、人が少なければ家を小さくするなどして管理を行うなどのユーザーが快適に利用できる土台作り。

よく使うツール
・AWS(Amazon Web Services)
・GCP(Google Cloud Platform)
を使うことが多いため物凄い専門知識を付けなくてもある程度できるようになる。

テスター
作られたプログラムをテストする
→エンジニアが兼務することが多い。
場合によってはわけ、場合によっては兼務するなどある

プログラマー
Q.フロントエンドエンジニア/バックエンドエンジニアもプログラミングを行うのではないのか。
A.兼務していることが多い。ただし、大きなプロジェクトの場合
フロント/バックエンドエンジニア
→設計のみ
プログラマー
→コーディングのみ    ただし、多くの場合は兼務

プロジェクトマネージャー
例えば飲食店で働いている場合

店長   シフトを作る、予算を管理、売り上げ管理など
     店長がお店の管理を行う

プロジェクトも同じで進捗、クレーム、品質などプロジェクトのチェック/管理などを行うのがプロジェクトマネージャー。

プロダクトマネージャー
プロダクトとは生産、生産物のこと 言葉の通りプロダクトのマネジメントを行う。
プロダクトを世に公開、顧客に納品したときに顧客から課題/改善点のヒヤリングした内容を全部整理して、どのような改善をしなければいけないかを考えて仕様に落とす。→この仕事のヘッド

よって仕事の流れは以下のようになる

市場調査(ユーザーに聞く)
     ↓
  サンプルデザイン(デザイナーがどうか確認)
     ↓
フロント   バック(仕様を作成)
     ↓  プログラムを書く
  ユーザーテスト 
     ↓
コスト/品質/進捗などを管理→常に改善(より良いものにする)

まとめ
・プログラミングのみではだめ
・役割を理解して、行動
・キャリアパスの把握
 テスター(設計を知る)
     ↓
   プログラマー
     ↓
フロント /バックエンドエンジニア
     ↓
プロジェクトマネージャー
     ↓
プロダクトマネージャー

デザイナーは専門家が入っていることが多く、エンジニアの中でデザイナーになっていくケースは少ない。しかし、デザインの知識があれば一人でソフトウェアを作成することができる。


この記事が気に入ったらサポートをしてみませんか?