プログラミングとは何か?現役エンジニアがわかりやすく解説

プログラミングが何か知りたいけど、よくわからないといったことはありませんか?
いよいよプログラミングも義務教育に入ってきて、子供たちもプログラミングを学ぶ時代になってきています。
もちろん社会人でもプログラミングを知って仕事に活かしている方々も出てきています。

ではプログラミングとは何なのか? 現役エンジニアがわかりやすく説明いたしますね。

目次

プログラミングとは?

プログラミングを子供に説明する

プログラミングを独学で学ぶコツ

ルート1

ルート2A

プログラミング学習の際に知っておくべきサイト

プログラミング学習にオススメの書籍

ルート2B

プログラミング言語の種類

プログラミングを学べるアプリ

プログラミングで仕事を獲得するには?

プログラミングとは?

プログラミングとは、一言で言うと、

「機械に指示を出すこと」

ことだと考えてもらえればわかりやすいと思います。

機械とは、パソコンやロボットなどを指します。パソコンやロボットもそれぞれプログラムされた指示に従って作業や動作を行なってくれます。

ではプログラムとは何でしょうか?

プログラムとは

プログラムとは「順番に実行されていくもの」とお考えください。

よく、運動会でも親御さんたちに1日のスケジュールを「今日のプログラム」などと書いてある紙が渡されたりします。

これらも事前に決められたスケジュールを順番に実行していきますよね。

それを機械の世界でも取り入れたものがプログラムであり、動詞にしたものがプログラミングなのですね。

アプリで例えると

例えばスマホのアプリケーションもプログラミングされたもので作られています。

起動させたときには何を表示させるか?

どのよう動作させるか?

ボタンを押したときにはどのように動かすか?

といったようなプログラムが実はアプリケーションには組み込まれているのです。

プログラミングを子供に説明する

さて、プログラミングもいよいよ義務教育として子どもたちも学ぶようになってきています。

そこで、プログラミングを学ぶ重要性や理由を子どもたちに説明しないといけない場合もあるかもしれません(人はなぜやるのか理解しないと、意欲を持って取り組みづらいものだと言われています)

では子どもたちにプログラミングをどのようにして説明するか?

そのときには

「プログラミングは機械にやってほしいことを教えるためのものだよ〜!」

ですとか

「機械にお仕事をしてもらうために、機械に教えてあげるためのものだよ〜!」

と伝えてあげるとわかりやすいかもしれません。(少なくとも私の甥っ子にはそれで伝わりました笑)

プログラミングを独学で学ぶコツ

目的にもよりますが、プログラミングの学び方には少しコツがあります。

プログラミングの学習では、詰まってしまうと先に進めなくなってしまうので、この辺りは対策を理解しておくと良いでしょう。(環境構築などで詰まったら作業を進めなくなるなど・・・)

根性でコードは出てこないので。笑

こちらはルートで解説させていただきますね。

ルート1:まずは無料学習サイトで勉強してみる(これまでプログラミングを色々な方々に教えてきた経験上、プログラミングには向き不向きがあると思います。)

ルート2-A:簡単なオリジナルアプリを作りたい方。学習サイトで勉強してみて、いける!と感じたら、書籍を買ってみましょう。

ルート2-B:エンジニアになりたい方。どうしてもわからない+解決できない問題がある→プログラミングスクールを受講してみましょう。

ルート1から順に説明していきます。

まずは下記の無料学サイトで勉強してみましょう。(ちなみに私はこれらのサイトとの利益関係は全くありません笑)

よく「お金をかけてもいいからいきなりスクールに行って学習しよう」と考える方が多いのですがスクールに行っても基礎を学ぶ際にやることは同じです。

であるならば、まずは無料の学習サイトで勉強しておいて、ある程度基礎を学部・プログラミングがどんなものか知る・自分に適性があるか?を調べてからでも遅くありません。

上記のサイトは無料で基礎を学べることから、まずはこれらを完全にやり尽くしてから次のステップを考えましょう。

さて次のルートですがここからは目的別で分かれます。

ルート2-Aに関して

こちらはプログラミングの基礎を理解したい・簡単なオリジナルアプリを作りたい方向けです。

正直なところ基礎を学ぶだけや、簡単なアプリを作るだけであればプログラミングスクールに通う必要はあまりないかと思います。

ただ、初期のプログラミング学習で引っかかるところはだいたい決まっており、それは以下です。

・環境構築がうまくいかない

・HTMLとCSSでうまくViewを作れない

・クラスとインスタンスが理解できない、違いがわからない

・エラーが出て解決できない(打ち間違え・エラーの意味を理解できていない)

ただ、このあたりの解決法や進め方は以下の書籍でわかりやすく紹介してくれています。

ぜひ参考にしてみてください。

プログラミング学習にオススメの書籍

私は初心者の時に色々書籍を購入していたのですが、以下の書籍たちがとてもわかりやすかったです。

ただ、あくまで感想なので個人差がありますので、そちらはご留意ください。

【HTML/CSS】

https://amzn.to/2Mwsd1M

https://amzn.to/2MEDPA1

【Javascript】

https://amzn.to/2PjXtzC

https://amzn.to/2nMiuX2

【Ruby】

プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで (Software Design plusシリーズ)

☝️ちょっと初心者には難しいかも?

改訂2版 パーフェクトRuby

【Rails】

といったところですね。

まずは無料のオンライン学習をやってみて、それから書籍に入ってみる。

それから自分でアプリを作り始めてみる。

それでもどうしても難しければプログラミング教育動画サービスなどを購入してみるの手順で良いと思います。

スクールは最後の手段!

プログラミング学習の際に知っておくべきサイト

こちらはqiitaとTechryです。

プログラマの技術情報共有サービス – Qiita

私が開発したTechryというサイトでは、プログラミングのカリキュラムを販売ができるようになっています。(有料販売機能は開発中です。)

↓私が経験したエラーの一部解決方法などもこちらに投稿しておりますいので、お困りの方はぜひご利用ください。基本無料です。

Techry

実はプログラミングは理解するだけなら、スクールはわざわざ受けなくても良いなと個人的には思っています。

ルート2-Bに関して

さて、ここからはプログラミングスクールを受ける必要がある方々ですね。

どういった方がプログラミングスクールを受講した方がよいか

1どうしても一人じゃ無理

2これからエンジニアになりたい

1に関して、プログラミングを学習して、どうしても一人じゃ無理だ・・・というかたはスクールを受けた方がいいですね。

オンラインでプログラミングを教えてくれるスクールが増えてきているのですが、個人的に最初は直接教えてくれるスクールが良いと思っています。

テックキャンプは受講しましたが、よかったですね。他のスクールだとオンラインでの学習で、ちょっとわかりづらかった印象があります・・・

TECH::CAMP 完全無料のプログラミング体験会

ただ、スクールだと10万円以上はかかるので、個人的にはMENTAなどのサービスで個人エンジニアに教えてもらった方が安いですし、お得な気がします。

いつでも相談できるメンターをさがそう|MENTA

*ちなみに私もプログラミングを教えたりするので、ご希望の方はBit-createのお問い合わせフォームからご連絡ください。

お問い合わせ

また、エンジニアになりたい方はスクールを受けて転職活動をおこなった方が良いでしょう。

ちなみに仕事をしながらプログラミングを勉強してエンジニアに転職しようという方がいらっしゃいますが、やめた方がいいです。

仕事をしながら片手間で勉強してエンジニアになれるほど、エンジニアという職業は甘くはありません。

エンジニアは日々勉強することが仕事ですし、論理的で複雑で膨大な技術を学んでいかなけばなりません。医者や士業にも匹敵する勉強量だと考えた方がいいですね。

それを一朝一夕で学ぶのは不可能です。

それでもエンジニアになりたい方は集中して学ぶのであれは、テックエキスパートがオススメです。

未経験のITエンジニア転職・フリーランス | TECH::EXPERT(テック エキスパート)

朝から晩までみっちり教室に通って勉強できるので、とても良い環境ですね。転職できなかったら返金保証も付いてますし。

あと、別業界からIT業界をお考えの方は一旦この業界のことを聞いてみても良いと思います。

優秀な方が非常に多く、かなりスピードの早い競争の激しい業界なので、その辺りきちんと理解してから受講した方がいいですね。

プログラミング言語の種類

さて最後にパパッとプログラミングの言語について解説しておきますね。

Ruby・Python・PHP・Javaなどどれを勉強したら良いのかわからないので教えてくれとのお声を耳にします。

結論から言うと、どれからでも問題ないです!笑

というのも、どの言語でもアプリを作ることは可能なのですよね。

プログラミング初心者で簡単なアプリを作るならRubyやPHP

機械学習や人工知能系などを考えているのならPython

アンドロイドアプリ作成や業務効率化システムの構築などを考えているのならJava

といったくらいの認識はあった方が良いかもしれませんが。

プログラミングを学べるアプリ

こちらは4つあります。

Udemy

https://www.udemy.com/

こちらは個人が講師となって様々な教育動画投稿し提供してくれているプラットホームです。

僕も仲間内のエンジニアと良さげな動画があればシェアしています。(ただし、作成されてから期間が立っているものは、ソフトウェアのバージョンが古くなっていてエラーが出やすいので、ご注意!)

Progate

Progate(プロゲート) | Learn to code, learn to be creative.

こちらも初心者には最適なサービスですね。

個人的にはプログラミングを学ぶ入門はこちらのサービスだけで良いんじゃないかと思っています。

ドットインストール

ドットインストール

ドットインストールは株式会社ドットインストールが提供してくれているプログラミング動画教育サービスです。

動画なので、空き時間でみたり聴いたりすることが可能です。

初心者の方は電車移動などの際にイヤホンをして聞くのも良いのではないでしょうか。

MENTA

いつでも相談できるメンターをさがそう|MENTA

MENTAは個人の方々が自分の得意な分野を、サービスとして提供してくれているプラットホームになります。

エンジニアの方々も多く在籍しているので、プログラミングに関して質問や教えて欲しい方はこちらで相談してみても良いかもしれません。

プログラミングで仕事を獲得するには?

さて、この記事ではプログラミングとは何ぞや?ということを解説してきました。

ちょっと話がそれるのですが、プログラミングができてくると開発を仕事として携わることもできてきます。(ただし、現場での経験は必要です。)

開発の仕事を引き受けるには3つのやり方があるとこれまでの経験で学びました。

1、ランサーズやクラウドワークスなどのクラウドソーシングを使う

2、案件を紹介してくれる仲介業者を使う

3、友人・知人からの紹介

この中からオススメのものをあげるとすれば2・3です。

1はよく考えられる手段ですが、正直なところ価格競争に陥ってしまって安価な仕事しかありません(クライアントも相場を知らない方が多い)

2であれば下記の業者がオススメです。

株式会社ITプロパートナーズ|ITPRO PARTNERS | ITプロパートナーズは週2日からのお仕事紹介で IT起業家やフリーランスの自立を支えるサービスです

私は今のところこちらの企業さんだけをオススメしています。

理由は2つあります。

時給制で支払ってくれる・連絡のやりとりがスムーズで丁寧

だからです。他の仲介企業さんですと契約形態が単価契約なので、1案件いくらで〜となるのですが、なにせ単価契約なので

・納品して、後からここを修正してくれとなることがある(保守の契約はしていないし、完成を了承してもらった後に言われる)

・納品してからこのクオリティならこの金額でと後から値切られる

などのリスクがあるのです。

また他のエンジニアとも相談してここの紹介企業さんが1番だなという決定をしました。(暫定ですが)

実際に携わらせていただいて、連絡やケアも他の企業よりも良いなと感じましたし。

3に関してですが、こちらもオススメです。知人や友人からの紹介だとある程度信頼性が担保された案件を紹介してもらえます。

普段からSNSで自分はこんなことをやっていますよと発信しておきましょう。


プログラミングとは何か?現役エンジニアがわかりやすく解説 was originally published in Bit-create on Medium, where people are continuing the conversation by highlighting and responding to this story.

Source: 暗号通貨大学校bitcamp
プログラミングとは何か?現役エンジニアがわかりやすく解説