「プログラミング」に関する記事
こんにちは、今回はプログラミングの初心者や新しくIT業界に入った人向けに、
バックエンドエンジニアとフロントエンドエンジニアについて記事を書きたいと思います。
これからIT業界に参画したいという人や興味があるという人は、よかったら見ていってください。
先ず今回は『バックエンドエンジニア』と『フロントエンドエンジニア』についてですが、
エンジニア部分は、機械や電気などの工学(エンジニアリング)に関する専門知識や技術を持った技術者のことを指しており、
この場合のエンジニアは中でもプログラマと呼ばれるソフトウェアエンジニアを指します。
つまり今回は『バックエンド』と『フロントエンド』について、プログラミングをしている人たちのお話です。
1.フロントエンド/バックエンドのそのまま英語で読み取ってみる。
いきなりこういうものですよと言っても理解できないと思いますので、
先ず、ITから頭を離して、そもそも英語の意味から見ていきましょう。
共通している『エンド』について、この単語はIT用語でもよく出てきます。
エンドポイント、エンドユーザー、エンドデバイスなど、これらはすべて『端』や『最後』、『最終点』を意味します。
IT業界では通信の最初の送信者(送信元)から最後の受け取った人やもの(送信先)を表現する特徴柄、その最終の状態をエンドで表現することが多いです。
エンドがつく言葉の例
- エンドポイント・・・ネットワーク上でのデータの送り先や終着点、端末などの末端のデバイス
- エンドユーザー・・・システムやサービスを使用する人(最終消費者)
- エンドデバイス・・・端末のことで、末端につながっているデバイス(PCや装置)のこと
しかしながら、『フロントエンド』と『バックエンド』のエンドはこれとは違う意味になり、
『担当』や『分担』という意味合いがあることを理解しておいてください。
それではここから、今回の話の中枢になる『フロント』と『エンド』の意味について見てみましょう。
フロント/バック英語の意味を考える
- ➀『フロント』・・・前や表、正面などを意味する言葉
- ➁『バック』・・・・後や裏、背後を意味する言葉
英語の意味だけとらえるとそれぞれ上記の意味になるでしょう。
それを先ほどの『エンド』と結びつけると、『前(正面)の担当』と『後(背後)の担当』という意味になります。
もう少しだけ身近な物にたとえるならば、舞台でいう『役者』と『裏方』、ゲームやスポーツなどでいう『前衛』と『後衛』のようなものです。
もちろんこのままの意味ではありませんので、これから少しITに入り込んだお話をしていきましょう。
2.フロントエンド/バックエンドの具体的な領域
ではIT用語におけるフロントとバックとは何なのでしょうか?
前項で説明したように、『正面の担当』や『背後の担当』といったように、これらはその担当する領域を意味する言葉になるのです。
お菓子の中身を作っている人と梱包している外装(パッケージ)を作っている人が別なように、一つのシステムに見えても、
そのシステムには外と内があるのです。
そもそもシステムにおける外と内とは何か、少しだけ具体的に見ていきましょう。
先ず結論から説明すると下記になります。
システムの外と内を考える
- 『外』・・・システムを使用する人が見たり、使用したりする部分
- 『内』・・・システムを使用する人が直接見たり、使用したりしない部分
つまりフロントエンジニアは『外』を作る人で、バンクエンドエンジニアは『内』を作る人です。
もちろんこれだけでは理解できないと思いますので、具体的な例として、『WEBサイト』を例にお話ししましょう。
IT従事者でなくても、WEB検索(ネットサーフィン)やSNSサイトを使用することが主流になってきた昨今で、
WEBサイトを利用したことがない人は殆どいないでしょう。
そんな身近なWEBサイトも、実は『外』と『内』に分かれているのです。
代表的なWEBサイトをあげるのは難しいですが、そこは『ChatGPT』さんに聞いてみましょう。
『ChatGPT』の回答
「代表的なWEBサイト」って言っても、何をもって“代表的”とするかでちょっと意味が変わるから、いくつかの視点で分類してみるね👇
🌐 【1】アクセス数が多い“超有名Webサイト
| サイト名 | 内容 |
Google
| 検索エンジン(世界最大) |
| YouTube | 動画共有プラットフォーム |
| Amazon | ECサイトの代表格 |
| Facebook(Meta) | SNSの代表格 |
| Wikipedia | オープンな知識ベース |
このへんは世界中で使われていて、「インターネットと言えば」な存在!
と、最初の部分だけ抜粋して見てみると、誰もが聞いたり利用したりしたことがあるようなサイトが上がってきました。
確かに全て有名なサイトで、WEBサイトの代表格と言っても過言ではありません。
とりあえず説明しやすいものを選ばせていただくと、ECサイトの代表格『Amazon』を見ていきましょう。
ECサイトが何かについては、調べたらすぐに出てくるかと思いますが、Electronic Commerceの略称で、
電子商取引、つまりネットショッピングやオンラインショップなどのことです。
Amazonに限らず、楽天やYahoo!ショッピングなど、多くのECサイトが存在しています。
とりあえず、利用者がAmazonでショッピングをする工程をざっくり分けてみると。
Amazonでの操作の流れ
- 利用者(エンドユーザー)が商品を検索する。
- WEBサイト上に商品が表示される。
- 表示された商品を選ぶ。
- 選んだ商品を購入する。
- 購入した商品が発送される
とりあえず上記の5つの工程に別れました。
この5つの工程が『バック』と『フロント』にそのまま分かれるのかと言われると、決してそういうわけではございません。
この5つの項目すべてに、それぞれ『バック』と『フロント』の領域が存在するのです。
では、具体的に1つの項目を例に挙げて説明します。
『1.利用者(エンドユーザー)が商品を検索する。』という動作ですが、
『フロント』の領域については、下記URLからAmazonの検索画面に行ってもらうと一目瞭然です。
【AmazonURL】

一番上に検索窓があり、メニューバー、おすすめ品や売れ筋などの内部コンテンツが表示されるかと思います。
もしAmazonのユーザーが商品を探す際は、この検索のページを利用することになるでしょう。
この検索窓の位置や大きさ、メニュー、内部コンテンツの画像や文字など、利用者の目に止まる全てがフロント領域と呼ばれます。
では逆に『バック』と呼ばれる領域はどこなのかというと、もちろん『内』なので、サイトを一目見ただけではわかりません。
動かす、(ここでは検索)すると初めて見えてくるものになります。
そしてこの動きによって画面が変わる。これが『バック』の領域と言えるでしょう。
専門的な用語でいうならば、『静的なページ』と『動的なページ』と表現されます。
利用者がサイトに来て何もしなくても表示されるページは『静的なページ』で、
利用者が訪れたページで、操作(ここでは検索)をして表示が切り替わるページを『動的なページ』と呼ばれます。
※難しいので割愛しますが、IT用語では『操作(ここでいう検索)』はリクエストと呼ばれ、
利用者から送られたリクエストに対してWEBサイト(ホスト)がレスポンスを返して動的なページを表示します。
『バック』の領域はまさにこの『動的なページ』を構成するのに欠かせない領域なのです。
では『バック』の領域について理解するために、先ほどの検索するをもう少しだけ分解します。
検索する流れ
- 利用者が『検索文字』を検索窓に入力する。
- 入力された『検索文字』がWEBサイト側に送られる。
- 送られてきた『検索文字』をWEBサイト側がデータ内を探す。
- 見つかった『検索結果』をブラウザに渡す。
- 渡された『検索結果』をブラウザに表示する。
処理として分けると大きくはこの4つになります。
この中で、1~3に『検索文字』と入っているのがリクエストで、3~4にある『検索結果』がレスポンスです。
流れで見ていくと、『検索文字』が『検索結果』に変わっていることが分かります。
この『検索文字』(リクエスト)から『検索結果』(レスポンス)に変わる部分(利用者に分からない部分)を作るのが『バック』の領域となります。
つまり、『バック』を作っていなくても、『フロント』の検索ページは見えます。
しかしながら、検索しても何も出てこなかったり、画面が切り替わらないなどの状態が発生するのです。
まとめると
- 『フロントエンド』・・・Webサイトやアプリでユーザーが実際に見たり、触ったりする部分を作る領域。
- 『バックエンド』・・・ユーザーがWebサイトやアプリで見たり使ったりする画面の裏側で、必要なデータを処理したり、保存したりする仕組み全般の領域。
となります。
フロントエンドとバックエンドのまとめイメージ
3.フロントエンドとバックエンド、それぞれの特徴
では最後に、それぞれの特徴を紹介して終わりたいとおもいます。
先ずフロントエンジニアの特徴ですが、先ほどお話しした通り、システムの『外』を構築するエンジニアです。
バックエンドエンジニアと比較して、システムそのものを作るというよりは、
利用者からの見た目や使いやすさをより良いものにしていくお仕事です。
見た目を綺麗に整えるデザインをしたり、文字はもう少し大きくした方がいい、
検索バーは上にあった方がいいなどが含まれます。
ですので、使用する言語もフロントエンドはHTML, CSS, JavaScriptと呼ばれるものを扱い、
これらの言語は、データベース(先ほどのAmazonでいう商品のデータが格納されている場所)に直接アクセスはできない言語になっています。
利用者目線で、こういう見た目を作ってみたい、使いやすさを追求していきたいと思える人が向いている職業と言えます。
逆にバックエンドエンジニアの特徴ですが、こちらは『内』を構築するエンジニアです。
フロントエンドエンジニアと比較して、見た目や使いやすさというよりは、処理の妥当性、効率化やセキュリティ性など、
システムが問題なく動くことに重きをおいて構築するお仕事です。
比較的複雑な処理を構築するため、プログラミングや言語スキルが求められます。
使用する言語はPython, Ruby, Java, PHPなどデータベースを絡めた使用方法が主流です。
システムの内部構造に興味があり、効率的かつセキュリティが強固なシステムの品質を追求したい人が向いている職業と言えます。
特賞まとめ
4.最後に
ここでお話したことはある側面でしかありません。
もそもフロントの領域とバックエンドの領域は、現実ですとお互いがお互いの領域に踏み込んでいることもあるので、
簡単に線を引けるものではございません。
今後プログラマとしてどちらを選択しようか迷っている方がいれば、それぞれ両方学んでいて損はないと私は思います。
ここでは詳しく取り上げなかったことも沢山ありますので、是非自分でも色々と調べてみてください。
さて、今回の記事は、「キーボード」についての記事です!
以前にマルチディスプレイの実装についての記事を書いたことがありますが、ディスプレイだけでなく、プログラミングをしていく上で、キーボードについてもきちんと理解を深めておく必要があり案す。(マルチディスプレイの実装についてはこちら)
キーボードについて理解を深めることで、最適な環境を構築することができますので、是非快適なプログラミングライフを楽しみましょう。
ただでさえ挫折しがちなプログラミング習熟ですが、マルチモニターも含めて、最適な環境を自分に用意してあげましょう。
それでは、今回は「キーボード」について記事を書いていくにあたって、私自身は素人も同然でしたので、現在「富士通グループ」でSEをしている幼稚園からの友人に少し聞いてみました。
そちらも参考にしながら今回の記事を書いていければと思っています。
先ず、大まかにキーボードの種類を記載していければと思いますが、細かく分けると無数に分類されてしまうので、プログラマーとして使用感に関わる「キースイッチ」に焦点をあてて分類しました。
入力方式一覧
- メンブレン方式
- パンタグラフ方式
- メカニカル方式
- 静電容量無接点方式
上記4種類が「キースイッチ」を大きく分けた分類になりそうです。
もちろんこのほかにも、「ワイヤレス」や「有線」であったり、「シリコン製」や「ラバー」であったりと、分類はできますが、本記事では上記4種類について、記載していきます。
それでは、各キーボードの種類について、記載していければと思います。
1.メンブレン方式
こちらの方式は本当に初めて聞きました、ブレーメンのような響きですが、「ブレーメン」はドイツの地名ですが、「メンブレン」は「膜」という意味になります。
しかしながら、「膜」のように薄いキーボードの事かというと少し違うようです。
簡単に申し上げると、こちらの方式は「メンブレンシート」という薄い膜を挟んで、その上にキースイッチが置かれている形式のようです。
「キートップ」と「ラバーカップ」(シリコンで作られたドーム状の突起)の間に設置された接点シートがキーを押すたびに信号を送るそうなのですが、詳しくは調べてみてください。(「メンブレンキーボード」by『wiki』)
ここでお話ししたいのは、「構造」ではなく「キー操作特徴」になります。
先ず一般的に、メンブレン方式のキーボードは、先述したような「ラバーカップ」が表面に浮き出ているので、「ストロークが長い」のが特徴になります。
キーを押してから、入力に至るまでの感覚が長いので、運転に例えるならば、「ブレーキの遊び」が長いイメージになります。
一般的に仕組みがシンプルなので、安価であり、反応が鈍い分誤打が少なくなるのも特徴の一つかもしれません。
しかしながら、遊びがある分入力に指先の力が必要なので、長時間の作業にはあまり向かないです。
特に女性の方は、比較的に男性よりも「腱鞘炎」になりやすいので、長期的にお仕事で使用される方は、避けた方が良いかもしれません。
2.パンタグラフ方式
続きまして、2番目の「パンタグラフ方式」についてです。
パンタグラフ…これも先程と同じで初めて聞きます。パンダの親戚かな?
と、まあ、初めて聞くとピンと来ないかもしれませんので、よろしければWikiペディアをご参考ください。(「パンタグラフ」by『wiki』)
元々は製図の際の道具で、ギリシャ語の「全てを描くもの」からつけられたようですね。
キーボードの「パンタグラフ方式」はその使われているパーツが、類似しているのでつけられたようで、「菱形で収縮する機構」全般にも用いられているようです。
「メンブレン方式」では、ラバーカップを押して、接点シートと触れさせる必要がありましたが、「パンタグラフ方式」では、この「菱形で収縮する機構」をラバーカップの上に設置することで、表面を押しただけで、ラバーカップが接点シートに簡単に触れるようになります。
ですので、「メンブレン方式」と比較して、キーストロークが浅く、タイピングの負担が軽減されたものになります。
逆に、少し触れても入力されるので、誤打には十分気を付ける必要がありますが、プログラマーとして慣れてくれば問題無いかと思います。
ノートパソコンのキーボードに採用されている事が多く、長期作業に向いていると言えましょう。
3.メカニカル方式
それでは続きまして、3番目の「メカニカル方式」になります。
メカニカル…これは何となく聞きなじみがあるようで、何だかテクニカル。
簡単に申し上げると、先述した方式と違って、「バネの力を用いた機械的な電気スイッチ」の事のようです。
先述した二つの方式は、最終的に「ラバーカップ」が接するシートは、全面1枚ものが通常ですが、こちらの「メカニカル方式」に関しては、1つ1つ独立した接点を持つのが特徴のようです。(「キーボード(メカニカルスイッチ項)」by『wiki』)
構造については、これくらいにして、使用感的にどのような特徴があるのかということですが、先ずバネを用いているので、耐久性が優れています。
長期的に使っていきたい方はおススメのキーボードとなっております。
そして、一つ一つのキーが独立しているため、一つのキーが壊れた場合も、部分的に修理がしやすい特徴があるようです。
また、バネの力でしっかりと打っている感覚があるので、入力漏れの防止に繋がるそうです。
後は好みになるかと思いますが、独立したキーは音を発する機関もあるので、キーボードを入力している「カチカチ感」を得られるようです。
しかしながら、長期作業を行うプログラマーですと、バネの反発力があるので、入力の負担は大きいといえます。
複雑な構造が故に、比較的高価なものになるので、ゲームや趣味の領域で、キーを入力している確かな感覚やキーの入力音を楽しみたい方向けなようです。
4.静電容量無接点方式
それでは最後、4番目の「静電容量無接点方式」についてになります。
せいでんようりょうむせってんほうしき??
と、名前だけだといまいちピンとこない堅苦しい名前ですが、一つ一つ分解すると理解できそうです。
先ず「静電容量」とあるように、「何かしらの電気の容量」を元に動く仕組みになっています。
この「何かしらの電気の容量」ですが、簡単に申しあげるとスイッチ内部のスプリングが変化することで発生する静電気を指します。
そして、後ろの「無接点」という部分は、前述の3つとも、ラバーカップが「全面」にしろ「独立」にしろ何かしらの接点があったのに対して、存在しない方式の事です。
つまり、キーを押した時に、内部のスプリングが底に付かずに、変化するだけで、その静電気を感知してタイピングができるものということになります。
詳しくは解説しているサイトやWikipedia先生をご参照して頂くと良いかと思います。(「キーボード(静電容量無接点方式項)by『wiki』」)
難しい話はさておき、使用者側の感覚としては、非常に使いやすいということです。
先ずは何より「無接点」ということは、他の方式と比べて、底つき感が無く、静かで軽いタイピングが可能である点です。
大げさに書くと、接点がある方式のものであれば、物と物が衝突する衝撃が発生しますが、無接点方式の場合は、予め設置されているスプリングが稼働するだけなので、その差は歴然かと思われます。
イメージとして、トランポリンで跳ねるのと、ホッピングで跳ねるみたいなイメージだと思われます。
ですので、耐久の面でも大きく異なってきます。
接点方式の場合は、ホッピングの先っぽで地面が凹むように、何度もタイピングすることで、劣化がしやすくなっております。
しかしながら、無接点方式であれば「トランポリン」のように、地面には接しているので、「ホッピング」に比べて、地面への衝撃は少なくなります。
厳密にいうと、接点方式は感知するためのシートのような地面がありますが、そもそも無接点方式の場合はシートのように、接する面で感知しておらず、静電気を別のところで感知する仕組みです。
直接ぶつかって感知する方式よりも、感知部分の消耗が少ないということになります。
さて、ここまで、各分類を私なりに解説させて頂きましたが、圧倒的にプログラマーが使用すべきキーボードは「静電容量無接点方式」となります。
このキーボードは耐久性にも優れており、プログラミングにおけるデメリットは非常に少ないのです。
しかしながら、大きなデメリットがあるとするならば、金額が非常に高く、種類が限られているということでしょう。基本的に有名なメーカーは「東プレ」で「PFU」・「AKEEYO」等もあるそうです。
↓↓静電容量無接点方式(東プレ)キーボードはこちら
〇まとめ
では、最終的にトータルして、私がおススメしたいキーボードを紹介します。
もちろん、お金に余裕があるならば、先述した静電容量無接点方式のキーボードを是非おススメしたいところですが、できるだけ多くの人が利用可能なものを考えるのは、私の信じる「ユニバーサルデザイン」の大事な考え方。
コスト的にも、使用感的にも一般的なプログラマーにとって十分なものを考えてみました。
それがこちら
先ずこちら価格がAmazonで4999円と比較的安価なキーボード。
パンタグラフ方式なので、キーストロークも浅く、女性でも入力作業の負担を軽減できます。
パンタグラフ方式は、メンブレン方式と比較して、接地面の間に「菱形で収縮する機構」が挟んであるので、「静電容量無接点方式」に比べると、耐久度は低いですが、メンブレン方式に比べると耐久度は比較的高めになります。
また、ワイヤレスなので、持ち運びや少し離れた位置でも入力できるので、マルチディスプレイの実装を行った場合、そのモニター用に簡易的に置いておくのも便利です。
もちろん、本当にあったキーボードは人によって違いますが、少しでも何かの参考になれば幸いです。
また、テンキーのあるなしも重要になってくるかと思いますが、テンキーは後付けができるものになりますので、キーボードメインで考えても良いかと思います。
参考までにワイヤレステンキーも載せておきますので、気になった方は覗いてみてください。
さて、今回は私の行ってきたプログラミング学習の第3部になります。
こちらで一旦転職までの学習方法については終わりになりますが、プログラミングは日々勉強し続けるものになりますので、また習熟が終われば、他のブログも書いていきたいと思ってます。
参考書を元に独学を始め、資格試験を終えて、いよいよ私は本格的に「プログラマー」を目指していこうと「オンラインハイスクール」に通うことにしました。
今までずっと独学でやってきており、果たしてそれが正しかったのか、これからも続けて良いものなのか、確かな指標を得たいと思ったからです。
それでは、前回・前々回からのアジェンダからいきますと、このブログでは、4番と5番の「オンラインハイスクール」「転職後の研修」について書いていきたいと思います。
〇筆者のプログラミングスクールについて
先ず、私が通っていたプログラミングスクールについて、記述しておきます。
私は完全オンライン型の「侍エンジニア」に通っておりました。
コースとしては、エキスパートコースの13週間コース(基本が12週間で1週間の延長サービス)を卒業致しました。
費用としては、40万程度です。
「侍エンジニア」は日本で初めてマンツーマンのレッスンを始めたスクールで、そのノウハウやカリキュラムは多岐に渡ります。
今回私が受講したのは「エキスパートコース」というもので、自分が学びたい言語を元に「オーダーメイドカリキュラム」で実施頂くものでした。
「エキスパートコース」以外にも、WEBデザインに特化した「Webデザイン 教養コース」や「フリーランスコース」などもありますので、自分が本当に学びたいものを選ぶという形式になります。
簡単に流れを説明すると、「初回の無料レッスン」にてインストラクターの方とZoomで相談があります。
そこから「本当に通う意思があるのか」や「どのコースが一番いいか」をインストラクターの方と一緒に決めることができます。(ここのインストラクターの方が非常に大事で、余談ですが卒業後2年たちましたが、未だにご連絡を取らせて頂いている程の良い出会いとなりました。)
そして、通うコースが決まり、申込が完了すると、WEB上でマイページに入ることができます。
マイページ上では、自分の進行状況や豊富なオリジナル教材を見ることができます。(ちなみにこのマイページは期間終了後もいくらでも見ることができます)
「侍エンジニア」では、現役のエンジニアがマンツーマンでレッスンを行って頂けるようになっており、講師がアサインされてからレッスン開始となります。
レッスン開始日まで少し調整ができますので、私の場合は、アサインも含めて開始まで「1ヶ月程」余裕を持たせて頂き、それまでの間に、オンライン教材を読み漁っていたのを覚えています。
そしてレッスンが開始すると、週に1回講師の方と90分間「Skype」を繋いでレッスンを行います。
最初の講師の方とのレッスンは、「オーダーメイドカリキュラム」の確認やお互いの自己紹介を行うような形です。
そして、最後に来週までの課題を出してもらい、次の週までに完了させるという内容です。
質問に関しては、いつでも一対一のslackから質問ができるようになっておりました。
前職で、仕事をしながら通っていましたが、課題をこなすのがとても大変だったことを覚えています。
仕事がある日は夜9時ごろ帰宅し、それから11時くらいまで2時間勉強し、休みの日も6時間は勉強時間を確保してました。
そして最終的な課題まで完了すると卒業というシンプルな内容です。
教材としては、オンライン上のオリジナル教材もありましたが、最終的に一冊の参考書を終わらせるようなものでした。参考書に関しては、入学者全員「5000円」までAmazonギフト券で購入できます。
卒業後は、専用の転職サポートも受けられます。
さてさて、長くなってしまいましたが、私が通ったプログラミングスクールについては、これくらいにしておきましょう。
肝心なのは、これが必要かどうかということになってきます。
〇オンラインハイスクール-通う必要は無いが通った方が良いもの-
それでは、誰しも気になる「プログラミングスクール」は通う必要があるのかについてです。
結論から申し上げますと、『必ずしも通う必要はない』ものです。
しかしながら、必ずしも通う必要は無いなと思いましたが、通ってよかったなと思えることは沢山ありました。
ですので、先ほどの結論を少しだけ補足すると『必ずしも通う必要はないが、通った方が良い』ということになります。
〇オンラインハイスクール-通う必要が無い理由-
ではこれから私が通う必要が無いと思った点や通った方が良いと思った点を述べていこうと思います。
先ず、『通う必要がない』と思った点は下記の内容になります。
通う必要が無い理由
- 高額の費用がかかる
- 結局勉強するかは自分自身の問題
- 転職や実務の場で必ずしも優遇されるわけではない
大まかに上げれば上記の3点になります。
一番上の「高額の費用がかかる」については、言わずもがな、学校というものは得てして学費がかかるもので、私は公立の大学でしたが、年間で50万近く学費を払っていたのを覚えています。
そして、職業訓練校等を除けば、「公立」などと公のスクールはなく、殆どが利益団体として募集を掛けているのが実情なのです。
もちろん、自分達が培ったノウハウや技術を教えるということなので、それなりの金額が発生するのは当たり前です。
「習字」や「算盤」、「ピアノ」や「サッカー」の習い事と同じように考えて頂く必要があります。
しかしながら、習い事をしないとそれができないかというと違うと思います。
必ずしもお金を出さないとできないことではありませんので、高額の費用がかかる「プログラミングスクール」へ通うことは、必ずしも必要ないと感じました。
そして、「高額の費用がかかる」ことと合わせ考えて欲しいことが「結局勉強するかは自分自身の問題」という点です。
先にも述べたように、通わなくても習熟できるのが「プログラミング」の良いところです。
サイトを検索すると、殆どの言語は「オープンソース」として、色んな方に広く解説されています。
それは、プログラミング言語自体には著作権が当てはまりにくく、自由にネット上でやりとりされているからになります。
プログラミング言語に著作権が無いとは申しましたが、簡単に例えるならば、「こんにちは」や「ありがとう」といった日本語の単語に著作権が無いように、HTML言語で「画像を出力する」や「タイトルを記述する」といった言語に著作権が無いからです。作品と出来上がったものに対しては、著作物になりますので「小説」や「論文」に著作権があるように、「アプリケーションソフト」や「完成したシステム」には著作権が適応されることが多いですので、注意が必要です。
少し脱線してしまいましたが、「使い方」は自分でいくらでも探すことができるようになっており、自分でその組み合わせ方やオリジナル性を出せるようであれば、スクールに通う必要が無いと感じました。
プログラミングとは非常に情報量が多く、同じ結果でもいくつもの過程がありますので、『多くの情報から、現代の主流や最適解を自力で出せる方』であれば、スクールに通う必要は無いといえます。
そして、更に申し上げますと、スクールのコースにもよると思いますが、多くのスクールでは、課題を与えられ、それを個人で期日までにこなし、分からないことは講師に質問するというスタイルが主流です。
つまり、「もくもくと自分で課題をこなす」ということになります。
これは私の例ですが、私は結局スクールで与えられた課題に対して、自分で調べ上げて終わらせており、一度も講師に質問することなく終わってます。
講師の先生に「自己解決能力が高いので、直ぐにプログラマーへなるべきですよ」と言われたのを今でも覚えてます。
結局自分で課題ができてしまったが為に、高額の費用を払って、ただ自分でもくもく勉強していただけという感覚は少し残っているのが現状です。
そして、最後の「転職や実務の場で必ずしも優遇されるわけではない」ということですが、もちろんスクールになりますので、実務についたことが無ければ「未経験者」扱いになりますし、研修も最初からやるというのが当たり前です。
あくまで自分のスキルアップの為に通うことを念頭に置いておいた方が良いでしょう。
ここまで読んでいただきありがとうございます。
もしかしたらここまでで、「お金の無駄だな、通うの辞めよう」と思った方もいらっしゃるかもしれません。
結論から申し上げると、わざとネガティブな内容を冒頭に持って来させて頂きました。
何故ならば「プログラミングスクールに通うか」上記理由で迷っている方は、ここで引き返した方が良いと思っているからです。
これから先の内容は、先述の内容を当然と受け止め、それでも尚プログラマーになるのだという強い意志のある方にしか意味の無い内容となっておりますので、ご了承頂きたく思います。
〇オンラインハイスクール-通った方が良い理由-
それでは、私が先述した理由がありながらも、プログラミングスクールに通った理由やこの記事を書こうと思た理由について、記述していこうと思います。
大まかにまとめると下記内容になります。
通った方が良い理由
- プログラマーになる為の覚悟が決まる
- 主流と自分のスキルの確認ができる
- プログラマー同士の人脈に繋がる
- 卒業後の勉強の足掛かりが残る
それでは先ず、「プログラマーになる為の覚悟が決まる」というところからお話していきたいと思います。
この項目は前項でお話しした「高額の費用がかかる」というところに付随します。
簡潔に申し上げて、人間お金が絡むと本気になるということです。
しかしながら、無理は絶対にいけませんので、「借金してまで」であったり、「体を壊してまで」といったことは無いようにしなければなりません。
私の場合をご紹介させて頂きますと、プログラマーの道に進むべく自分の中の後押しが足りなかったところがありました。
「今の仕事が安定していて辞めたくない」「独学で勉強してきたが決定打が足りない」「独学なので、自分に縛られず、手を抜きがち」というような思いが心の中にあったと思います。
確かに、その全てが払拭されたわけではありませんが、卒業する前と比べて、今は少しだけ旨を貼ってプログラマーなのだと、この仕事で食っていくんだと言えるようになりました。
また、「侍エンジニア」でもうたっているように、「独学で挫折しがち」な人に対しては、抜群の効果があります。
自分で費用を出して通うハイスクールに手を抜くような人はおらず、自分に程よいプレッシャーをかけて本気で取り組めます。
私はプログラミングスクール時代以上に本気で勉強に取り組んだと思える時期は無いと思ってます。
そして2点目の「主流と自分のスキルの確認ができる」については、特にHTML言語であれば、我流でやっている人は、実際の現場ではその「タグ」は使わないであったり、その関数はここにまとめておくであったり、実務経験のある現役「プログラマー」が教えてくれるので安心です。
独学で進んできた癖や不安点の修正に大きく役立ちました。
また、WEB制作系のカリキュラムでしたので、Googleアナリティクス等の分析ツールの豆知識も教えて頂けましたので、より実践的なレッスン内容になるのは間違いないです。
3点目のプログラマー同士の人脈に繋がるについては、先ず冒頭で述べたインストラクターの方は、卒業後もご連絡可能で、常に色んな情報のやり取りができます(講師の方と卒業後は基本的に連絡を取れません)。
「転職の相談」であったり、「現状報告」であったり、一人で戦い続ける日々だった独学の時代に比べると、大きく心のゆとりができます。
特に、私が卒業した「侍エンジニア」では、卒業後もマイページがあり、そこで教材の勉強が継続して行えるようになっております。
厳密にいうと、「侍エンジニア」卒業後は「侍テラコヤ」というサービスになります。
こちらはもともと「侍エンジニア」に入るのは金額が高いなと思う方が、簡易的にスクールに通えるものなので、イメージとして持ってもらうならば「下位互換」のようなものになります。
もし「侍エンジニア」に通う費用が気になる方は「侍テラコヤ」を検討頂く事も重要かと思いますが、どちらにせよ「無料レッスン」で相談すると良いかと思います。
さらに、受講生も卒業生も含めた大規模な「侍テラコヤ」の「slack」グループに入ることができます。
色んな方との交流もできる上に、セミナー情報や勉強会情報など、今後のプログラマーとしてキャリアを築く上で重要になる「コミュニティ」を獲得する事ができます。
ちなみに私も未だにこちらの「コミュニティ」を活用させて頂いており、最近では「ChatGPT」についてのセミナーを活用させて頂きました。
そして最後の「卒業後の勉強の足掛かりが残る」ということですが、ここは前述と重なるところもありますが、「侍テラコヤ」で豊富なオンライン教材やセミナー・勉強会に参加できるということが大きいかと思います。
それだけでなく、いつ自分が何を勉強したのかという軌跡も残していけるので、復習や次に何を学ぶのかというマイルストーンを決める上でも役立ちます。
プログラミング言語は非常に多くあり、そして日々進化しております。
一度のスクールでその全てを補うことは不可能になります。
しかしながら、卒業後も違う言語の教材を使って、自己学習ができたり、自分が勉強してきたことを確認できるのは、今後の学習に大きく役立つ内容かと思われます。
意外と、卒業後に別の言語で再度カリキュラムを組みなおして入塾される方も多いのだそうです。
また、フリーランスの方が案件を頂いた時に、一人では難しくて納品ができない時に、その案件をベースに、カリキュラムを組み、案件と並行して習熟される方もいらっしゃるそうです。
今後プログラマーとして壁に当たった時に、もしもの時の保険として用意しておくのもいいのかもしれません。
さて、スクール時代の話でかなり長くなってしまいました。
アジェンダ上では「転職後の研修」という項目が設けられていますが、実はここはまだ研修の最中になります。
研修といっても、個人的な感想ですが、かなり本格的な内容で、簡単に申し上げると「フロントエンド」と「バックエンド」の二部構成になっており、最終的に「仮想マシン」や「ドッカー」上でPHPを用いて、簡単なアプリケーションが作成できるところまで行きます。
私はまだその「バックエンド」のオリジナルアプリの作成中といったところになります。
詳しい内容はまた、いつか書けたらなと言ったところで、三回に渡って行った「プログラミングの学習方法」について、私なりのここまでの軌跡でした。
ご質問やもっと詳しくお聞きになりたい事があれば、是非「コメント」や「お問い合わせフォーム」からご連絡くださいね。
ではまた。
↓↓その他格安スクール関係はこちら
