- Progateやドットインストールはやったが次ができない人
- 一度チュートリアルはしたが何も作れない人
- 自分でプログラミングしたいけど何からやればいいかわからない人
自分でビジネスを立ち上げようと、Webサービスをつくろうとしたとき、「アイデアをプログラミングしてくれる人材はいない」ということに悩んだことはありませんか?
そんなときは自分でコードが書けるとすぐにデモが作れていいですよね。
とは言え、プログラミングは勉強しただけではできないものです。
今回はプログラミングをかじったはいいものの、いろいろな情報に惑わされて、
あまりはかどらないプログラミング初心者の方に送る言語選びの記事です。
プログラミング初心者を脱するには何をしたいかが一番重要
プログラミングに興味を持ったばかりの人にありがちな質問は、
「どの言語を選べばいいのでしょうか?」というものです。
プログラミングをしたいと思うという人は、ギーク出ない限り向上心がある人なので、
勉強も得意であったり、真面目で意識が高い人が多いと思います。
そんな人はまず失敗しない言語選び、すなわち正解を求めがちです。
しかし、断言します。
「プログラミング言語選びする前に何したいのか悩みましょう」と。
世の中には「2018年の流行りの言語」、「言語別プログラマ給与レンジ」など、
人の心をくすぐるプログラミング言語に関する記事があります。
中には特定の言語を過剰に褒めたり、逆に貶めたりする記事もたくさんあります。
私も長い間いろいろな言語をかじっては、何も作らず最新の技術を知っていること、
ただそれだけを心の拠り所としてなんちゃってプログラミングをしてきました。
しかし、ようやく「言語をかじってもなんの価値もない」ということに気づきました。
この点を最初に意識しておかないと単なる頭でっかちプログラマになってしまいます。
どんなに叩かれていてもユーザーがちゃんといる言語は使える言語です。
決して流行りの言語を持ち上げる一部のプログラマの言うとおりにならないで下さい。
たいていの人はプログラマになりたいわけじゃない
きっとこの記事を読んでくださっているあなたも、
本質的には「プログラミングで何かを作りたいと考えている人」であって、
決して「プログラマになりたい人」ではないはずです。
単にコードを書けるようになりたいというだけであれば、
どこかのシステム会社に飛び込んで一から叩き込んでもらうのが一番早い方法です。
しかし、本当に貴方は単にコードが書きたいのでしょうか?
会社でのプログラミングは自分がやってみたいこと、作ってみたいものではないので、
業務で経験を積めるスキルと創造的プログラミングとは合致しないことが多いです。
それはある意味当たり前で、システムは一度作ったものの保守と拡張が多いため、
職業プログラマとしては既存のものをどうするか考えることが多いのは、
お客さんのニーズですからなんでも新しければ良いわけではなく仕方がないことです。
また、プログラマ自体が必ずしもおすすめできる職業ではないです。
システム業界においてプログラミングコードを書く人をコーダーといいますが、価格競争も激しく、20年ほど前からはオフショア開発と呼ばれる海外の賃金の安い国で開発を行うことも普通に行われている競争力のない職業です。
コードが書けるということは一つの素晴らしいスキルですが、コーダーであり続ける限り決められた手順を落とし込むだけが仕事になってしまうので、新しい価値を生み出しているとはいい難いことがあります。
理工系の大学の研究でも「研究のための研究」に終始している研究室がありますよね。
難しいこと、スゴイと言われることををやってるにもかかわらず、少しも社会の役に立たないようなものを作ったり、頭の使い方をしてしまうのはもったいないです。
今、エンジニアやプログラマになりたいと思っている人の多くは、「自分でものを作れるようになりたい」のであって職業になりたいのではないはずです。
にもかかわらず、「データサイエンティスト」や「フルスタックエンジニア」のような名前に踊らされて、プログラミングを始める人がとても多いのです。
私も一時期そんな熱病に冒されていましたが、結局は何を作り上げたのか、
そのサービスや製品がどういう価値を持っているのかが一番大事な視点だと思います。
何をしたいのかで決めるプログラミング言語
ですから、プログラミングの言語を何にするか悩むより、今やってみたいこと、
できそうなことで初めて見るのが一番いいと言いました。
そこではここでは、プログラミング初心者の方、一通りプログラミングを学習したが、
何をすればいいのかわからなくなっている方に、あくまで、独断でどの言語に進むべきかお教えします。
以下の3つを満たしている言語およびフレームワークを選びました。
- 使い方を明確に見据えてプロダクトを作りやすい
- 変なところ(環境構築やエラー)で躓かないよう豊富な情報がある
- 将来の職業化を見据えて、確実な需要がある
さんざん遠回りしてきた私と同じ過ちを繰り返さないよう、
その時時の流行や、玄人プログラマの影響力に流されず、
まずは自分ができるところから着実に、「面白い」を増やしていきましょう。
一度勉強しかけた経験がある人はせっかく学ぼうと思ったのですから、
もう一度、自分が作りたいものを粘り強く考えて実装してみましょう。
ブロガーやWebメディアなど発信したい人はPHPを学べ
PHPが一番オススメな理由は「Wordpress」に使用されているからです。
WordpressはCMS用のオープンソースソフトウエアとしては世界で一番普及しています。
プログラミングをしたいと言うより、何らかの発信ツールとしてWebを使い、
そのためにWebデザインやその他諸々の細かい設定等も出来るようになりたいなら、
WordpressをベースにしてPHPで足りないツールを組み立てていくのがベストです。
WordPressのデザインや設計が出来るだけで、普通のWebページ案件はこなせますし、
大手の企業のWebページでも積極的に活用されているので、
その保守や運用、さらには更新作業などでPHPを用いる機会は少なくないでしょう。
例えば以下のような大手企業のWebページに採用されています。
【WordPress】有名サンプルサイト38選!業種別の導入事例まとめ
https://imitsu.jp/matome/hp-design/4428401817535574
上記のような企業Webページではもちろんのこと、初期のAmazonでも使われています。
フレームワークもRailsに近いと言われているCakePHPが人気で、
大規模なWebサービスでも活用されています。
また、HTMLとの親和性も高く、比較的始めたばかりの人でも、
わかりやすいプログラミング言語と言えるかと思います。
なんといっても初心者のうちはわからないことだらけであるため、
比較的歴史のあるPHPであれば調べればヒントが落ちていることが多いです。
SNSや会員制のWebサービスを作りたい人はRailsを学べ
Ruby on Railsがおすすめな理由は、シンプルかつWebサービスに特化出来るからです。
ご存知かと思いますがRailsはRubyの一つのフレームワークです。
さきほどのPHPにはCakePHPというフレームワークがあることをご紹介しましたが、
この2つは基本的には同じことができます。
それでもなぜRailsをおすすめするのかと言えば、やはりユーザーという点から見て、
Railsを使っているプログラマやWebサービスがいまだに多いからです。
ということは、同じようなエラーで悩んでいる人もいる可能性が高く、
サービスの本質的な価値に関係ないところに割く時間を減らせるからです。
「Railsだけやってる人はプログラミングできると言わないでほしい」
と言っている人もいますが、初心者のうちは無視して下さい。
結局は完成したプロダクトがどれだけの人を幸せにしたか、
喜ばせたかでしかその価値は測れませんので、まずはつくることが大事です。
その過程でよりプログラミングを深く学ぶ必要があれば、Rubyという素晴らしい、
母体となる言語がありますので学習を深めていくと良いでしょう。
Androidアプリを作りたい人はJavaを学べ
「今更Javaなんて」という声がきこえてきそうですが、
ここではあくまでAndroidアプリ用に学びますので、古めかしいJava辞典は不要です。
言語としては、今この世の中でほとんどのシステムにはJavaが使われていますし、
その結果として、Androidアプリの開発もJava行われています。
アプリの開発には「Android Studio」という統合開発環境(IDE)が使われます。
まずは、このAndroid Studioを使ってアプリ開発を始めてみましょう。
これを使うメリットとしてはプログラミングがしやすくなることと、
見た目を同時に見ることが出来るという点にあります。
まずは本屋さんで一番気に入った教科書を購入しましょう
プログラミングの教科書を購入するにあたり、まずはコーディングの辞書ではなく、
一から学べて、本のとおり実装できるものを選びましょう。
そして教科書はAmazonでノールック購入することはおすすめしません。
本屋さんで同じ言語を扱っている本を5冊見比べ、一番自分が気に入ったものを選びます。
なぜそうするかと言うと、人によってはカラー印刷のほうが見やすかったり、
解説の書き方が吹き出しを使って面白くしていたり、索引がひきやすかったり、
いろいろと工夫されているところがあり、自分が使いやすいものが一番だからです。
一度、チュートリアル経験がある場合はそのチュートリアルをもう一回やり直します。
その後、わからなかったところや自分が実装したい機能が明確になったときに、
本屋さんで改めて教科書を購入すると良いでしょう。
プログラミングは自分で実際にやってみない限り出来るようになりません。
作りたいものを決め、チュートリアルを実践してみることが一番です。
3つの言語は枯れた言語、助けてくれる人も多い
プログラミングの世界はとても面白く、言語は何万と存在する一方で、
使われている言語はほんの一握りです。今回取り上げた3つの言語は歴史ある言語です。
PHPはもう20年以上前から「ホームページ」と呼ばれていた時代のWebサイトで、
装飾のためにとても活用されていました。今で言うjQueryの代わりです。
Ruby on Railsはもう10年以上前に流行したWebフレームワークで、
そのシンプルかつ強力な機能でいろんな人がRailsを使ったサービスを作りました。
Javaは言うまでもなく20年選手の言語で、ATM、国の社会保険システムなど、
重厚長大なシステムでは最も使われている言語です。
テクノロジーの世界では古いものは否定される運命にありますが、
歴史があるからこそ、先人たちの残した知識やノウハウがたくさんあります。
プログラミングの目標が、価値あるシステムをつくることであるのならば、
まずは先人たちの歩いた道をすすんでいくことも悪くないのではないでしょうか。
これから、たくさんの情報に接してプログラミング言語選択に迷うと思いますが、
まずは、何を作りたいかを考えることが先決です。
その後に、今回取り上げた言語の中から一つ選択すればいいと思います。
最終的にWebサービスと呼ばれるものであればどれでも作れることに気づきますが、
言語によってはやはり得手不得手があります。
そこに気づいたときには、もうあなたは立派なプログラマになっていることだと思います。