仮想サーファーの波乗り

仮想サーファーの日常

プログラミング・エンジニアのスキルアップ・ブログ運営などに関してよく書く雑記ブログ

【非エンジニア必見】1日でプログラミングを圧倒的に理解できるオススメの方法まとめ

f:id:virtual-surfer:20191201172331p:plain

プログラミングに関していつかは取り組んでみたいけど、まだ取り組めていない方へ。

今回は、1日(8時間)でプログラミングの理解を圧倒的に進める方法を紹介します。

この記事で紹介している方法を実践することで、以下の状態になることができます。

この記事の内容を実践すると学べること

  • プログラミングとは何か?がわかる
  • プログラミングでできること、言語の特徴と利用目的の違いは何か?がわかる
  • 自分はプログラミングが好きなのか?がわかる

エンジニアじゃないけど、プログラミング・エンジニアの仕事に関してざっくりと理解したいという方に読んでいただければ。


まず最初に知っておいて欲しいのですが、プログラミング・エンジニアの全体像を全て体系的に理解しようとしないでください。

なぜなら、プログラミング・エンジニアの仕事の全体像を抜けもれなく理解しようとするといくら時間があっても足りないからです。


ぼくもエンジニアとして働き始めて3年目ですが、まだまだ知らないことだらけです。日々勉強をしています。

先日エンジニア歴20年目の方とお話ししたのですが、「まだまだ日々学んでいる。学ぶことは尽きないです。」とおっしゃっていました。

プログラミングの全てを理解するのは20年あっても無理なんですよね。それを初心者の頃から目指してしまうと確実にやる気が削がれます。


プログラミングに関して実感を持ちながら理解を進めるためには、以下のことに注意してください。

プログラミング理解を学ぶ上で大事なこと

  • 最初からプログラミングの全体像を体系的に理解しようとしない。
  • 手を動かして、やってみる。そのあとにさわってみた技術の関連技術・テーマを関連で学ぶ。
  • 気になった技術があれば、その技術に関してはより深く学ぶ。

たとえば、自転車に乗りたいと思った時に、自転車の成り立ちや仕組みから学ぶ人はいませんよね?

f:id:virtual-surfer:20191201160214p:plain

自転車に乗りたいと思ったら、まずは自転車に補助輪ありで乗ってみる。そして、補助輪を外してこけながらでも徐々に乗れるようになって、最終的には補助輪なしで無意識的に乗れるようになりますよね。

プログラミングに関して理解しようと思った時も同じようにすればいいのです。

クロスバイクやロードバイクを購入することを検討するのは、自転車に乗れるようになって、「もっと自転車で速く移動したい!」と思った時でいい。

「自転車にもっと乗っていたい!」と思ったら競輪にも挑戦してみて、自転車の仕組みや自転車ごとの性能の差を学んでいけばいい。


前置きが長くなりました。

それでは、8時間で一気にプログラミングの理解を進めるためのオススメの方法を紹介していきます。


1日でプログラミングの理解を圧倒的に進める手順

約8時間の作業を通して、プログラミングの理解を圧倒的に進めることを想定しています。

スキマ時間などを活用しながらこの記事に紹介している方法をぜひ取り組んでみてください。


この記事を読む(10分)

まずは、この記事を一通り読んでみてください。どんなに時間がかかっても10分くらいで読めると思います。

記事全体を読んでみたら、それぞれの手順で紹介されている方法を試してみてください。


Progateに登録してコースをやってみる(3時間)

f:id:virtual-surfer:20191201130649p:plain

Progate


まずは、Progateに登録してプログラムを書いてみましょう。

プログラミングを初めてやってみる方には、これ以上のサービスはないと思います。


Progateに新規会員登録したら、まずはHTML/CSSコースとPythonコースに取り組んでみましょう。

f:id:virtual-surfer:20191201130937p:plain


習うより慣れろで、まずはコードを書いたらどうなるのか、プログラミングとはなんなのかを感覚的に体感してみてください。

1時間半ずつで時間を区切って、両コースに取り組んでください。

楽しくなってもっと組みたくなった方はその気持ちをわすれないようにして、次のステップに進みましょう。

「あんまりよくわからなかったな🤔??」という方も、ここではプログラミングをするとはどういうことかをイメージできればいいので、次のステップに進みましょう。

ここまでで学べること

  • コードを書くとはどういうことかを体感する。
  • HTML・CSS・Pythonの役割の違いをなんとなく理解する。


【Progate】を見てみる


Paizaにアカウント登録してコースをやってみる(2時間)

f:id:virtual-surfer:20191201131802p:plain

Paiza

Progateでなんとなくプログラミングの基礎が理解できたら、Paizaというプログラミングの問題に取り組めるサイトがあるので、そこに登録してプログラミングの問題に取り組んでみましょう。


D→C→B→A→Sの順番で問題の難易度ごとにプログラミング問題が用意されているので、まずはD問題に取り組んでみましょう。

Paiza Dランク問題一覧

どれか一門でもD問題を正解できるように、プログラミングの書き方をググったりしてプログラムで実現したいことを試行錯誤してみてください。

このときにプログラムで実現したいことを調べたり、いろいろ試行錯誤したりすることがプログラミング・エンジニアの仕事の理解につながります。


集中できるなら2時間程度取り組んでみてください。D問題が簡単だなと思った方はC問題にも取り組んでみてください。

かりにD問題が全然解けなくても問題ありません。プログラミング的な考え方に慣れているかどうかでしかないので。

ここまでで学べること

  • プログラムで問題を解くという体験をする。
  • 自分の実現したいことをプログラムで表現するために試行錯誤するという作業を体感する。


【Paiza】を見てみる


本もしくは動画を参考に何か作ってみる(3時間)

自転車に乗れるようになるまでの流れでいうと、これまでやってきたことは補助輪をつけた状態で自転車に乗ってきた状態でした。

ここから一気にプログラミングの理解を深めるためには、自分の身の回りの作業を効率化するプログラムを書いてみるのが一番大事です。

自分の作りたいものを調べながら作るのが一番楽しいし、ほどよくいろんな技術が必要になるので、学習も進みます。


自分がふだんよく時間を使っているパソコンやスマホでの作業を洗い出してみて、それをプログラムで効率化できないかどうか考えてみましょう。

たとえば、以下のような作業を効率化できます。

プログラミングで効率化できる作業

  • Twitterで自分のブログ記事に関してツイートされたらリツイートする。
  • Amazonで自分の仕事に関する本がセール商品になっていないかチェックする。
  • GoogleCalendarに登録している今日の予定一覧を自分のLINEに送る。
  • Webサイトの記事の情報をSpread Sheetにまとめる。


「作りたいものがパッと思いつかない...」という方は、技術書やチュートリアル記事を参考にして何かつくってみるか、Udemyなどの動画学習サイトを参考に何か作ってみるのがいいです。


はじめてのLINEBOT制作 秘書ボットを作ろう

f:id:virtual-surfer:20191201135255p:plain

プログラム未経験でもLINEに通知してくれるLINE BOT(自動で投稿してくれるロボットのようなもの)を作れるようになる動画です。

Googleカレンダーに登録されている予定一覧をLINEに通知してくれるので、予定をうっかり忘れてすっぽかすこともなくなりますね。


Udemyで「はじめてのLINEBOT制作 秘書ボットを作ろう」を見てみる


【Python】Twitterデータ活用・分析・自動操作

ぼくの書いているnote↓でもTwitterのBotを開発する方法を紹介しているので、そちらも参考にしてみてください。

note.com


PythonによるWebスクレイピング〜入門編〜【業務効率化への第一歩】

f:id:virtual-surfer:20191201135314p:plain

定期的にWebサイトのデータを収集している方は、ぜひとも活用できるようになりたいWebスクレイピングを学ぶことができます。

Webスクレイピングとは、Webページのデータをプログラムで自動で取得することができる技術のことです。


Udemyで「PythonによるWebスクレイピング〜入門編〜【業務効率化への第一歩】」を見てみる


Pythonクローリング&スクレイピング[増補改訂版] -データ収集・解析のための実践開発ガイド

Pythonでなにか動くものをつくってみたいときに超参考になる技術書です。上で紹介したWebスクレイピングの方法から、APIをつかって外部サービスのデータを取得する方法まで初心者の方でも理解しやすくまとまっています。


何かひとつ自分の身の回りの作業を効率化するものを決めたら、それの機能を実装して期待通りに動くところまで手を動かしてみてください。

何か自分のつくりたい効率化ツールが開発できたら、プログラミングの理解が体感とともにめちゃくちゃ進んでいると思います。

ここまでで学べること

  • 自分の身の回りの作業はプログラミングで効率化できることを知る。
  • 自分の作りたいものをプログラミングを通して実装してみて動かす体験をする。
  • プログラミングをやってみて楽しかったか体感する。

ここまでで手を動かすのは終了です。

「もっと手を動かしていろんなものを作ってみたくなったぞ!」という方は、エンジニアになることも検討してみるとよいです。

ここまでやってみて、「別に楽しくもなんともなかったな...。」という方も、ここまで進んだことでプログラミングに関しての理解は相当進んだはずです。


プログラミングに関してどんなものかは理解できたけど、もっとプログラミングの仕組みやエンジニアの仕事に関しても知りたい!という方は、こちらの記事もどうぞ。



8時間やってみた後は何する?

8時間でこの記事に書かれている内容を読み、実践することができたあなたは、プログラミングに関して相当理解が進んだはずです。

最後に、次に何をすればいいのかに関して、まとめておきます。


「ProgateとPaizaやるの楽しかった!もっとやってたい!」という方

ProgateでPythonやJavaScriptなど、気になる講座をより高いレベルまでやってみましょう。

そして、Paizaでより難しいレベルの問題まで挑戦してみましょう。

さらに難しいプログラミングの問題に取り組みたいという方は、競技プログラミングサイトAtCoderの問題にも取り組んでみるとよいです。


プログラミングを1週間継続しても飽きることがなければ、エンジニアに転職してしまってプログラミングにもっとのめり込む選択をしてもいいかもしれませんね。

エンジニアとして転職することも検討するとよいでしょう。

そもそも「プログラミングすごい!もっとやってたい!」と感じることができる人は一部の人なので、その感情が持てるだけでエンジニアになる素養あります。「好きこそ物の上手なれ」ですね。


「もっとエンジニアに詳しいことを聞いてみたい!」という方

社内のエンジニアもしくは、大学の同級生のエンジニアとランチに行ってみましょう。

プログラミングを勉強していて、具体的に気になっていることを質問すれば、こころよく回答してくれるはずです。


エンジニアじゃなくても、プログラミングのことしっかり学んでる人は、エンジニアからすると好印象で話していて楽しいです。自分が好きなテーマに関して、学んで歩み寄ってくれてる姿勢を持たれると、嬉しくなりますよね。

あなた自身にとっても、プログラミングに関して、気になったことをすぐに聞ける関係の人がいるのはとてもよいことだと思います。


「普段の作業を効率化できてプログラミングすごい!もっと効率化したい!」という方

Webサイトやアプリで行なっているほとんどの操作は、プログラミングで自動化することができます。

ほかにも日常的にやっている作業で、自動化できるものがないか考えて自動化を検討してみましょう。「同じような作業をやっているな〜。これ自動化しよう!」と思えるようになったら、日々プログラミングのネタが見つかって楽しくなります。


「Webアプリケーションの開発もしてみたい!」という方

簡単な日常業務の自動化だけではなく、Webアプリケーションの開発もしてみたいという方は、どんなアプリケーションを開発してみたいか考えてみて、Webアプリケーション開発に取り組んでみましょう。

「作りたいものが見つからない...」という方は、↓こちらの記事で事例をまとめているので参考にしてみてください。

www.virtual-surfer.com


「はじめてのWebアプリケーション開発の方法が何もわからない...。」という方は、UdemyのWebアプリケーション開発コースを受講してみるとよいです。


【世界で30万人が受講】フルスタック・Webエンジニア講座(2019最新版)

f:id:virtual-surfer:20191201171908p:plain

Webアプリケーション開発で必要になる技術を網羅的に学びたいという方にオススメです。

HTML・CSS・JavaScript・PHP・MySQL・APIと、Webアプリケーションを開発するときに必要になる知識が網羅的に扱われていて、Webアプリケーション開発を学ぶことができます。


【世界で30万人が受講】フルスタック・Webエンジニア講座(2019最新版)


以上、「【非エンジニア必見】1日でプログラミングを圧倒的に理解できるオススメの方法まとめ」でした!