どうも7noteです。フロントエンジニアの見解からプログラミングをこれから始めようと思っている方向けの記事
副業の解禁や働き方改革が行われる背景で、多くの方が何かしようと模索する時代に突入したように感じます。
そしてインターネットやITが普及している中で、多くのサービスがあなたのスマホで簡単に利用できます。
自分もこんなサービス作ってみたい!とプログラミングの勉強を始めようとしている方の参考になれば。
なぜ、プログラミングを勉強するのかを考える
「プログラミングを勉強する!」というのは手段であり目的ではない。
お聞きします、
「なぜプログラミングを勉強するのですか?その目的はなんですか?」
この質問に即答できる方は戻るボタンを押して、実際の開発に役立つ記事をたくさん読む事をおすすめします。
では、聞き方を少し変えて、
「抽象的でいいので、プログラミング技術を使ってどんな事がしたいですか?」
例)「AIの開発をしたい」
「プログラマー・エンジニアになりたい」
「WEBサイトを作りたい」
答えはきっと人によって様々だと思います。また、どれが正解でどれが不正解などもありません。
ただ1つ言えることは、「目的がより具体的な人ほど成長速度や実現率が高いです。」
具体的とはどれくらいなら具体的なのか。
「人に話してああ、なるほどねと理解してもらえるくらい。」
「WEBサイトを作りたい!」と一言に言っても
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
どんなWEBサイト?
誰がみるの?
どんなことができるの?
そのサイトを使うことによってユーザーはどんなメリットがあるの?
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
など、考えが曖昧のままでは他人には理解してもらえません。
他人に伝わらないということは自分の中でも作りたいものが曖昧なままということです。
曖昧のままでは作っていてもこれが正しいのかわからないし、
とりあえず思いついたことを詰め込んで最終的に何ができるものなのかよくわからないものが完成してしまいます。
目的をはっきりさせ、作りたいものを明確にする。
プログラミングを始める動機として一番大切なものなのではないかなと思っています。
まだ、作りたいものが明確でない人は5W1Hのフレームワークをもとに考えてみるのもいいかもしれません。
あなたがしたいことは、
Who(だれが)
When(いつ)
Where(どこで)
What(なにを)
Why(なぜ)
How(どのように)
5W1Hに当てはめるとどのようなことなのか。
私は今オンラインで花札を遊べるシステムを開発しているのですが、
Who(遠く離れている人と)
When(いつでも)
Where(PCやスマホから)
What(花札が)
How(遊べるものを作りたい)
Why(コロナでなかなか会えないから。)
このように考えて、普段から開発を行っています。
参考にしてみてください。
もしWEBサイトを作りたいとなれば、やっぱりHTMLとCSSから始めるべき?
プログラミング言語には様々な言語があります。
ただ、正確にはHTMLやCSSはプログラミング言語ではなく、
HTMLはマークアップ言語と呼ばれ、
CSSはスタイルシート言語といいます。
マークアップ ・・・サイト内の文書に意味づけ
スタイルシート ・・・Webページのスタイル
少し話が脱線しましたが、
「自分の手でWEBサイトを作成したり立ち上げるならHTMLとCSSの習得は必須です。」
なのでそのような方にはHTMLとCSSの学習をおすすめします。
でも、Amazonのようなショッピングサイトを作りたいとなればどうでしょうか。
HTMLとCSSはもちろん必要ですが、AmazonではJavaというプログラミング言語が使われているようです。(もちろんJava以外も使われている箇所は多くあると思いますが。。。)
このようにやりたいことやサービスによって学習すべき開発言語が異なります。
複数の言語が必要な場面はあるので勉強して損はありませんが、プログラミング初心者の方が「がんばって勉強したのにやりたいこととちょっと違った」となってしまってはせっかくの学習意欲が衰えてしまいます。
WEB開発でよく使われる言語
・HTML
・CSS
・JavaScript
・PHP
・Java
・Python
・Ruby(Ruby on Rails)
WEB開発でよく使われる言語上記の種類などが主流です。(他にもありますが省略)
突然ですが、「サーバーサイドのプログラミング言語」なんて言葉をきいたことありますか?
実はさきほどあげた6つの言語のうち、下4つ(PHP・Java・Python・Ruby)はサーバー上で動くプログラミング言語です。
-解説-
大きく分けてWEBサイトに関わるエンジニアは2種類います。
1つは「フロントエンジニア」
もう1つが「バックエンドエンジニア」
主にHTML・CSS・Javascriptなどを使い、WEBサイトの見た目や動きなどを制作するプロのことをいいます。
(私もフロントエンジニアです。) [バックエンドエンジニア]
主にサーバー上での処理を担当しており、買い物時の個人情報や商品情報などのデータを扱い保守管理を担当するプロです。会員登録などがあるWEBサービスなどではほぼ必ず必要です。
さて、あなたはどちらになりたいでしょうか?
もちろん両方できるプレイヤーもいますし、それを目指すことは何も悪いことではありません。
ただ、どちらも同時並行が大変なくらい、奥が深くて面白いものです。
習得までには数ヶ月〜数年はかかりますし、どんどん新しい技術が出るのでいつまでたっても勉強したりないくらい奥が深いです。これがプログラミングの面白いところだなと私は思います。
世の中にはフロントエンドもバックエンドもそれぞれのめり込んでいるオタク・・・プロの方がたくさんいます。
なので、自分が両方やる必要はないのです。もし自分がフロントエンドを勉強したいなと思ったら、バックエンドは誰かにお願いして作って貰えばいいのです。
そうして作りたいものを協力して作っていく。私はそれでいいと思います。
なので、「もしWEBサイトを作りたいとなれば、やっぱりHTMLとCSSから始めるべき?」の回答としては、このように考えます。
「ここまでこの記事を読んで、少しでもフロントエンドに興味を持ったのであれば勉強してみよう!」
WEBサイトをつくるにも、WEBサービスを作るにもHTMLとCSSの知識は必要になります。
バックエンドをやるにしても、バックエンドで構築したシステムの情報を最終的にはHTMLやCSSの形に落とし込んで表示する必要があるので、バックエンドエンジニアだからHTMLとCSSは勉強しなくていいということはないと思います。
そういう意味でも、HTML・CSSはフロントエンジニアは必須。バックエンドも知っていて損はない。
つまり↓
「WEBサイトやサービスを作りたい人は、HTML・CSSはおすすめ。」
だと、私は思います。
難易度的に、HTMLとCSSから始めるのは適切なのか。
目的の観点からは、HTMLとCSSはWEBサイトやサービスを作りたい人にはおすすめできるといいましたが、それでもプログラミングってなんだか難しそうと思う方や、授業でやってみたけど難しかった経験のある方はおおいと思います。
でも私は逆に「難しそう・・・と思っている方にことHTMLとCSSをオススメしたい!」
「初心者にHTML・CSSをおすすめする理由2つ」
①直感的でやったことがすぐに見た目で反映されるのでわかりやすい
②ネットに情報が多い
HTMLとCSSは書いたことがそのまますぐにブラウザで反映されます。
またすぐに見た目が変わるので、作っていてとても気持ち良いと感じる人が多いです。
習得も他のプログラミング言語と比べ短い期間でそこそこ書けるようになるのもHTML・CSSの特徴だと思います。
逆に言うと、それくらい他のプログラミング言語とは全く別物です。
困ったらgoogle先生に聞けばだいたいのことは書いてますし、
私のように書き方や考え方を公開されている方が多いので初めやすい言語だと思います。
結論
もし「何かのWEBサイトやWEBサービスを作りたいと思い、プログラミングの勉強を始めようとしているのなら、HTMLとCSSの学習をおすすめします。」
まだ作りたいものがはっきりしていないという方でも、最初のきっかけとしてHTML・CSSから始めるのは私はいいと思います。
ただ、最初に覚えた言語はかなりその後のエンジニア人生をよくも悪くも左右すると思うのでできればこんなものが作りたいという思いをはっきりさせてから始める方が私はいいと思います。
単純にその方が作っていて楽しいです!