プログラミングスキルがあれば、就職や転職を有利にすすめることができるといわれていますよね。
プログラミングスキルを学びたいけど、プログラミングというと、どうしても理系のイメージがあるので、躊躇しているもいるのではないでしょうか。
文系でもプログラミングができる理由や、プログラミングについての様々な疑問を解説していきたいと思います。
そもそも「プログラミング」とは?
「プログラミング」とは、コンピューターに「こう動きなさい」と、実行するべき順番、内容、手順などを書いた「プログラム」を作る作業のことをいいます。
私たちが普段使っている家電や、ゲーム機、スマートフォンやアプリなどは、すべて「プログラム」で動いているんです。
コンピューターは、自分で考えて動くことはできませんし、日本語で指示を出しても理解できません。
そこで、コンピューターに指示するときに必要になるのが、プログラム専用の言語ともいえる「プログラミング言語」です。
目次
結論から言うと文系でもプログラミングはできる!
文系でもプログラミングができるかどうか心配だと思いますが、結論からいえば、文系でもプログラミングはできます。
プログラミング言語は種類が豊富
プログラミングを行う際、コンピューターを思い通りに動かすために欠かせないのがプログラミング言語です。
日本語、英語、フランス語・・・と人間の言語にも種類があるように、コンピューターの言語である「プログラミング言語」にも様々な種類があります。
その数は、マイナーなものも含めたら、200種類以上とも言われています。
より使いやすい言語にしようと日々開発されているため、今後もどんどん増えていくでしょう。
コンピューターに指示を出せる「プログラミング言語」の中で、特に有名な言語には次のようなものがあります。
- Ruby
- Python
- JavaScript
- Java
- C言語
- PHP
など多数あります。
プログラミングは文系でもできる!
プログラミングというと、どうしても理系のイメージが強いですよね。
プログラミングに興味があるけど、文系出身の自分には到底無理だろう・・・地頭がよくないから不向きだろう・・・と諦めている人も多いかもしれません。
しかし、文系出身のエンジニアも多いですし、学校の勉強は苦手だった・・・という人も意外にいます。
実際、ボクは小中学校の成績は良くなく、勉強も好きではありませんでしたが、エンジニアとして多数のサービスを開発・販売しました。
習得にかかる時間に個人差は大きいものの、理系文系関係なく、地頭の良し悪しに関係なく、プログラミングスキルは習得可能です。
プログラミングに求められる「数学力」は、そこまで高くありませんので、文系出身者でも問題はないです。
また、コンピューターに「こう動きなさい」と指示を与えるための「プログラム」を作る作業では、プログラム専用の言語ともいえる「プログラミング言語」を使用します。
「プログラミング言語」は、その名のとおり「言語」ですから、英語や国語のように「文法」を使いこなし、物事を順序立てて考える「論理的思考」も必要になります。
こちらは、どちらかといえば文系出身者が得意とする分野ですから、文系だからプログラミングができない・・・なんてことはないのです。
プログラミングは文系の初心者でもできる!
文系でもプログラミングができる!ということは、おわかりいただけたかと思います。
では、ブラインドタッチができるとか、 パソコンを修理できるといった、 パソコンスキルを持っていない場合でも、 プログラミングが できるでしょうか。
プログラミングを習得するうえで大事なのは、「始める前」よりも「始めた後」です。
プログラミングは、1ヶ月2ヶ月の短期間で飛躍的に上達するというものではありません。
いかにプログラミング学習を継続させられるかどうか、「継続力」がカギなのです。
プログラミングを始めるにあたって、必ず必要な技術というものは特になく、継続して勉強すればある程度の技術は身につけることが可能です。
なぜ?小学校で「プログラミング」の授業が必修化!
2020年度からは、小学校で「プログラミング」の授業が必修化されますよね。
なぜ、必修化されることになったのでしょうか?
- IT業界の人材不足を補うため
- 将来働く上でコンピュータを使いこなす能力が必要であるため
- プログラミング的思考の育成
今現在でも人材不足に悩まされているIT業界ですが、今後ますます需要は拡大し、IT人材の需要も増え続けると予想されています。
人材不足を補うという目的もありますが、どんな職に就くときにも役に立つであろうコンピュータを使いこなす能力や、「プログラミング的思考」の育成も重要だとされています。
プログラミング的思考とは?
プログラミング的思考とは、論理的思考ともいわれますが、ものごとを順序立てて考え、結論を導き出し、その目的を達成するために、計画的に実行するという思考です。
「プログラミング」の授業が必修化されることによって、様々な問題に対応していく「問題解決能力」や「行動力」が身につくのではないかと期待されています。
文系でもプログラミングを学ぶメリット
- 仕事に困らない
- 転職に有利
- キャリアアップ、収入アップが期待できる
- 在宅で仕事をすることも可能
- 職種を問わず仕事に活かすことができる
プログラミングのできる人材は不足気味
パソコンを使えるという人は多いですが、その中でプログラミングができる人というのはごく少数です。
また最近は、若者のパソコン離れも起きているようです。
ガラケーから、スマートフォンに移行したことで、機能も充実し、以前はパソコンでしかできなかったことも、スマホでできるようになったからです。
最近注目されているのが、人工知能(AI)です。
疲れず文句も言わず全自動で黙々と働き続けてくれる人工知能(AI)のロボットは今後、どんどん増えていくでしょう。
人工知能(AI)のロボットによって仕事がなくなっていく・・・という話を聞いた事がある人もいるのではないでしょうか。
そんな中で、需要が高まる仕事というのが、人工知能(AI)などを作る側、制御する側の仕事です。
プログラミングを使う仕事、例えばプログラマー(PG)や、システムエンジニア(SE)は、圧倒的な需要に対して、今現在でも人材が不足しているのが現状です。
そのため、 人材不足が深刻なIT業界においては、就職、転職に困ることは少ないでしょう。
キャリアアップ、年収アップも期待できます。
プログラミングの習得で働き方の幅が広がる
プログラミングスキルを習得することで、働き方の幅が広がります。
プログラミングは、パソコンひとつあれば仕事ができるので、働く時間や働く場所を自由に選択しやすいという面があるからです。
例えば、フリーランス(個人事業主)として働くことや、自宅での副業も可能になります。
ただ、プログラミング初心者が、いきなりフリーランス(個人事業主)や在宅勤務を選択するのはオススメできません。
やはり、ある程度、企業で働きながら経験を積み、スキルを磨くことが重要です。
文系でも出来るプログラミングを使う仕事って?
プログラミングは、様々な職種で活かせるスキルではありますが、プログラミングを主とする仕事には、どういったものがあるのでしょうか。
プログラマー(PG)
IT技術者(エンジニア)として就職した際、まずは「プログラマー」として配属されることが一般的です。
プログラマーは、システムエンジニア(SE)が作成した設計書をもとに「プログラミング言語」を使って、システムやソフトウェアを作る仕事で、 携わる分野によって 使用するプログラミング言語も変わってきます。
プログラムのテストや検査を行い、システムのエラーやバグを見つけて修正を繰り返す地道な作業なので、集中力や根気も必要な仕事です。
Web系プログラマー
インターネット上で提供されているサービスのプログラミングを行います。
- ショッピングサイトの作成
- ホームページの作成
- Webサイトの作成など
制御・組み込み系プログラマー
機械を動かしたり制御したりするプログラムを作成します。
- 家電
- 電子機器
- 工場などで使用される産業機器(ロボット)
- エレベーター
- 自動ドアなど
アプリケーション系プログラマー
スマートフォンや、タブレットで利用できるソフトウェアを作成します。
- Webアプリ(SNSなど)
- ゲームアプリ
- 業務用アプリなど
ゲーム系プログラマー
ゲームを作成するお仕事です。
- ブラウザゲーム
- スマホゲーム
- コンシューマーゲーム
- PCゲーム
- VRゲームなど
通信系プログラマー
通信に関連した製品やプログラムを作成します。
- ネットワーク機器(ルーター、モデム)
- テレビ会議システム
- IP電話など
社内システム系プログラマー
自社システムの構築や運用に関するプログラムを作成し、業務の効率化を図ります。
汎用系プログラマー
金融機関や、保険会社など、大量のデータを扱う大規模なシステムを作成します。
オープン系プログラマー
病院のデータベースや、電子カルテ、顧客情報のデータベースなど、複数のパソコンがアクセスできるようなシステムを作成します。
システムエンジニア(SE)
システムエンジニア(SE)は、わかりやすく言うと、プログラマー(PG)の上位職です。
システムエンジニア(SE)の主な仕事内容は、お客様(クライアント)の要望を元にシステムの設計書を作成すること。
システムエンジニア(SE)が作成した設計書をもとに、プログラマーがプログラミングすることになりますが、プログラミング業務は、自分自身で行うこともあります。
システムの設計、プログラミング業務以外にも、完成したシステムにエラーやバグがないかテストを行ったり、 お客様(クライアント) がそのシステムを運用していくためのマニュアルの作成や指導なども担当します。
お客様(クライアント)の要望をくみ取り、最適なシステムの設計をする能力、プログラマーに適切な指示を出すリーダーシップ、納期までの進行管理を行うマネジメント力など、幅広いスキルを必要とされる仕事です。
サーバエンジニア
サーバエンジニアは、サーバの設計、サーバの構築、サーバの運用・保守、サーバのセキュリティ対策を専門的に行います。
エンベデッドエンジニア
制御・組み込みエンジニアともよばれ、家電製品やスマートフォンなどの電子機器、工場などで使用される産業機器(ロボット)などに組み込まれるソフトウェアの設計、ソフトウェアの開発を行います。
データベースエンジニア
データベースエンジニアは、データベースの設計、データベースの構築、データベースの運用・保守、データベースのインストール・最適化を専門的に行います。
ネットワークエンジニア
データ通信に関するさまざまな技術に精通し、ネットワークの設計、ネットワークシステムの構築、ネットワークの運用・保守を専門的に行います。
Webエンジニア
Web上での使用に特化したWebシステムの設計、Webシステムの構築、Webシステムの運用・保守を専門的に行います。
フロントエンドエンジニア
フロントエンドエンジニアは、webデザイナーとも呼ばれます。
HTML、CSS、JavaScriptなどを使用して、Webサイトのデザイン、Webサイトの実装、PHPの設計や実装を行います。
スキルはもちろん、デザインセンスも問われます。
Web業界の拡大、スマホの普及により、需要が増えている仕事です。
セールスエンジニア
セールスエンジニアは、営業職の社員に同行して、クライアント先へ訪問し、専門知識を活かした営業活動を行います。
専門的な部分に関する説明や交渉、システム導入の提案など、技術面から営業のサポートを行います。
フィールドエンジニア
サービスエンジニア、カスタマーエンジニアなどとよばれることもあります。
顧客先に機器の設置を行い、メンテナンスや修理、アフターサポートを担当します。
会社よりも顧客先で作業をすることが多く、トラブルが発生すると即日対応しなければならない場合もあります。
サポートエンジニア
サポートエンジニアは、クライアントが導入したソフトウェアやハードウェアの操作方法や故障に対する問い合わせ対応を行います。
原因を特定し、アドバイス行うほか、顧客先に出向いて対応することもあります。
社内エンジニア
社内SEは、自社内のシステムの開発・導入、社内のネットワークやサーバの構築・管理を行います。
また、社内でIT関連のサポート対応を行います。
ブリッジエンジニア
ブリッジエンジニアとは、外国企業と日本企業の橋渡し役ができるSEです。
システムエンジニアとしてのスキルや経験だけでなく、ビジネスレベルの語学力と、文化や国民性の違いを受け入れて対応できる柔軟性が求められます。
文系の初心者でもプログラミングの習得に向いている人は?
文系・理系関係なく、そして初心者でもできる「プログラミング」ですが、やはり向き不向きはあります。
プログラミングに向いている人の特徴
まず、パソコンや、プログラミングが好きであることは大前提ですが、次のような人は、プログラミングに向いてるといえるでしょう。
- 集中力がある人
- 地道な作業が苦でない人
- 向上心がある人
- ものづくりが好きな人
- セルフマネジメントができる人
集中力がある人
プログラミングの勉強は、順序立てて考える論理的思考も必要なため、集中力が必要になります。
また、仕事でプログラミングをする場合、1日何時間もパソコンの前で作業を行うことになるでしょう。
納期に合わせて作業を進めていくことになりますから、時には、朝から深夜まで黙々とパソコンの作業が続くこともあります。
プログラミングに集中力は欠かせません。
地道な作業が苦でない人
- プログラムの設計図ともいえる「ソースコード」を書く
- 自分が構築したソースコードがきちんと正しく動くか実行する
- エラーが出たり上手くいかない箇所を修正する
プログラミングは、この地道な作業の繰り返しで、エラーやバグは日常茶飯事です。
エラーに冷静に対処 し、何時間もパソコンと睨めっこすることになりますから、集中力、忍耐力はもちろん、体力も必要でしょう。
こうした細かい地道な作業の繰り返しが嫌になってしまう人は、プログラミングには不向きです。
向上心がある人
プログラミングは、一度習得したらそこで終わりではなく、継続して勉強する向上心が必要です。
なぜかというと、IT(情報技術)の分野の発展は目覚ましいものがあり、次々に新しい技術やアプリケーションが開発され続けているからです。
新しい技術やバージョンの変化に柔軟に対応しなくてはなりません。
そのため、最新の情報や技術は積極的に収集し、時にはセミナーに参加するなど、継続して学ぶ姿勢が大切になります。
新しい技術を面白い!使いこなしたい!と思える人は、プログラミングに向いているでしょう。
ものづくりが好きな人
プログラミングも「ものづくり」のひとつです。
家庭用の電化製品から、ゲーム、アプリ、工場のロボット、そしてインフラまで、生活の中で役立つものやサービスには、プログラミングが用いられています。
失敗と試行錯誤を繰り返しながら、社会や人に役立つ何かを作りあげることに、達成感ややりがい、喜びを感じることができる人は、プログラミングに向いています。
セルフマネジメントができる人
セルフマネジメントとは、作業を効率的にスムーズにすすめるために必須のスキルです。
自分の技術力を過大・過小評価をすることなくきちんと把握し、状況に応じて最適な行動を取ることができる人、もっと効率のよい方法がないか考え実行できる人は、プログラミングに向いています。
文系でも学びやすいプログラミング言語
「プログラミング」に必要な「プログラミング言語」は、種類が多く、マイナーなものも含めると200種類以上あるといわれています。
それゆえ職種によって求められる言語が違ったりもします。
そんな数多い 「プログラミング言語」 の中から、何を選んで勉強したらよいのでしょうか。
よく使われているプログラミング言語には次のようなものがあります。
- Ruby
- Python
- PHP
- Java Script
プログラミング言語の中には、初心者にとっては難易度が高いものも含まれているので、選ぶ時は要注意です。
例えば、「C言語」は、 プログラミング言語の中で最高レベルの処理速度を誇りますが、難易度も最高レベル。
パソコンそのものにも詳しくないと難しいため、初心者が手を出せば挫折するのは必至です。
はじめから難しい言語でプログラミングを習得しようとせず、まず楽しく継続できる言語から入るのがオススメです。
学んでいるプログラミング言語が難しいなと感じたら、諦めて別のプログラミング言語を勉強するのもありです。
自分に合っているプログラミング言語が、きっと見つかると思います。
文系出身者や、 プログラミング 初心者にオススメの言語をいくつか紹介しますね。
Ruby
プログラミング言語の多くは、海外で開発されていますが、Rubyは日本人が開発した言語なので、 文法的に読みやすく、そして書きやすいことが特徴です。
他のプログラミング言語と比較すると、記述量が少ないという点もポイント。
作成スピードに影響するのはもちろん、記述量が少ない=覚えることも少なくてすむことから、初心者でも学習しやすいプログラミング言語としても人気があります。
「クックパッド」や「食べログ」などがRubyを利用していることは有名です。
Webアプリやスマホアプリの開発にもよく用いられる言語です。
PHP
PHPは、HTMLに埋め込むことができるため、Web制作やWebアプリ制作に多く使われています。
世界で最も使われているホームページ作成ソフト「WordPress」で、PHPが採用されています。
他の言語と比較して、構文がシンプルなので初心者でも勉強しやすいうえ、人気がある言語なので、困った時やつまずいた時に情報が多いのが嬉しいですよね。
PHPは、 様々なサービスやアプリで使われているため需要があり、フリーランスでも求人が多いため個人受託しやすいこともメリットのひとつつです。
HTML・CSS
HTMLやCSSは、厳密に言うと プログラミング言語ではなく「マークアップ言語」とよばれるものですが、 Webサイトを制作する時に欠かせない言語のひとつです。
Webページのほとんどは、HTML・CSSによって作成されています。
HTMLやCSSを使用してWebサイトを制作する作業を 「コーディング」、HTMLとCSSができる人のことを「コーダー」 とよびます。
HTMLとは?
Hyper Text Markup Language(ハイパーテキスト・マークアップ・ランゲージ)の略であり、Webページのテキスト(文書)の構造を決める言語です。
CSSとは?
Cascading Style Sheets(カスケーディング・スタイル・シート)の略で、 HTMLとセットで使われます。
HTMLで作成した文書に、色を付けるなどデザインを施すための言語です。
文系の初心者でもプログラミングはできる
理系のイメージが強い「プログラミング」ですが、文系でも初心者でも、自分に合った言語、自分の好きな言語を見つけて、継続して勉強できれば、ある程度のプラグラミングスキルは習得できます。
プログラミングを学ぶ手段としては、
- 学習サイトなどで独学で学ぶ方法
- プログラミングスクールに通う方法
- 動画で学習する方法
があります。
独学は初心者では挫折することも多いので、将来プログラミングを仕事にしたいという場合は、 プログラミングスクールに通うのがベストな方法です。
仕事獲得までのサポートも充実しています。
また、IT業界は常に人材不足なので「未経験でも可」という企業も多く、転職して仕事をしながら学ぶという手もあります。
最近は、フリーランスとして働くプログラマーも増えています。
プログラミングを習得できれば、将来の仕事の幅を広げることが可能になりますよ。