プログラミングの学習の最も簡単なチート方法
おはようございます。継続の錬金術士なおキーヌです。
プログラミング学習流行ってますね。
大企業も遅いながらもIT方面に強化しようと下記のような対策もしているみたいです。
富士通 2850人が希望退職 | 2019/2/19(火)
Yahoo!ニュース https://news.yahoo.co.jp/pickup/6314464
ITサービス強化と間接部門の合理化を目指したリストラ策の一環だそうですが
要は辞めたくなければエンジニアになってねって感じなのでしょうかね?
最近は複合スキルが無いと生きづらくなってそうですね。
尖ったスキルを1つだけ持ってても強いですが、時代は複数のスキルを使いこなして
何か1つ好きなことを伸ばしていくという方法が生きやすそうです。
プログラミングの学習には様々な方法があります。
楽しんで覚えるのが一番ですが、中には苦しんで覚えることで堅牢なスキルを身に付ける人もいます。
でもどうせなら楽しんで覚えた方が精神的にも楽ですよね。
私もプログラミングをしっかり覚えようと思ったのは25歳ぐらいでしょうか。
今でも凄腕プログラマーとは言えませんが、仕事で有効活用して一人でシステム開発をするぐらいには扱えます。
最近ツイッターを見ているとプログラミングを学ぼうとする人がよくみかけます。
プログラミング学習Webサービスもどんどん増えているので喜ばしいことです。
それでも初めのうちは基礎構文ばかりやっていると楽しくなくなるんですよね。
私も20代前半の頃はそんな感じで何回も覚えようとしては投げだしていました。
元々頭も良くなく、勉強は全部苦手で文系でも理系でもどっちでもないダメダメ人間だったのです。
そんな私でも今回紹介するプログラミング学習チート方法を使えば
高校を普通に卒業した人であれば、簡単にプログラミングを習得することが出来ます。
それでは独学ではありますが、私のプログラミング学習法をご紹介します。
ただ、私は独学で共同開発経験は皆無なので、今回紹介する方法は
あくまでプログラミングの入門として留めておいてください。
- プログラミングを覚える理由を明確にしよう
- 作りたいものを作るのがプログラミング習得の一番の近道
- 初めに学ぶ言語はどれがいい?答えはどれでもいい
- 基礎はこれだけ覚えておけば後は検索でOK
- プログラマになるか便利屋になるか
- 覚えたことは素人レベルでもいいから書き出すこと
プログラミングを覚える理由を明確にしよう
突然ですが、あなたがプログラミングを覚えたい理由はなんですか?
覚えようと思ったからには何かしら理由があるはずです。
ITの方面は多岐にわたるのでその理由によっては学習方法を変える必要があります。
AIならAIに関する知識や高校数学について。
IoT等の組み込みならハードウェアの知識も一緒につけなければいけない。
何からやったらいいのかわからない人は、Web系のプログラミング覚えることをおススメします。
Web系であれば、PCさえあればすぐにでもプログラミングすることが可能です。
後最も重要なのがプログラミングする才能があるかないかが問題になってきます。
以下のリストに1つでも当てはまる人はプログラミングの才能を秘めています。
- 何か作りたいソフトがある人
- 面倒くさい作業を自動終わらせたい人
- 基本怠惰。極度の面倒くさがりで飽き性な人
- IT系企業に務めたい・転職したいと思っている人
全部満たしている人でプログラミングしていない人はもったいなさ過ぎるので今すぐやりましょう。
逆にプログラミングの才能がない人は下記のリストになります。
プログラミングを勉強しないで別のことを勉強した方が良いかもしれません。
- 非効率でも手作業でやるのが美徳だと思っている人
- 人に聞いてばかりの検索できない人
- 新しいものを受け入れられない・古いものを使い続ける人
- 職場の上司にIT業務に携われと言われて覚えようとしている人
これらの才能がない人は覚えようと思っても十中八九身に付かないので
本当にやりたいことを勉強したほうがいいでしょう。
才能少しでもある人は今すぐ覚えるべきです。
職種の幅も広がりますし、簡単なスクリプトを覚えるだけでも
今まで手作業でやっていたことが一瞬で終わります。
最終目標を目指して適切なプログラミング学習をしていきましょう。
作りたいものを作るのがプログラミング習得の一番の近道
結論は作りたいものを作るのが一番身に付くんですよね。
何故作りたいものを作るのが一番の近道かというと
プログラミングの効率の良い学習の基本は完成形をバラバラにして、それを再構築することにあります。
いわゆる結果からの逆算ですね。プログラミング以外の学習にも当てはまりますが。
そして作りたいモノによって、使う道具が変わってきます。
何を作ればいいのかわからない状態だと、使う道具も定まりません。
木材を切り出したい!となった場合はノコギリを使う選択肢が出てくると思います。
原木から木材を切り出すのにハンマーを持ってきても切れないのと同じで
プログラミングもちゃんとした道具を使わないと目的のものが完成しません。
プログラミングとは、道具の選択とその道具を使ってどうするか。
ということになります。
極端な言い方になりますが、ノコギリを使ったことが無い人にノコギリを渡しても押して切るのか、
引いて切るのかは教わっていなければ使い方がわかりませんよね?
このノコギリの使い方を覚えるには大きく2通りの方法があります。
- 実際に試して使い方を覚える
- 解説書を読んで覚える
まさにプログラミングはこれと同じで
- 命令を実行した場合、どういう結果が返ってくるか。
- 公式リファレンスを見て何が出来るかを学ぶ
ということになります。
作りたいものがあれば、その作りたいものを実現するために何が必要なのかを調べると使う道具が判明します。
そしてその道具を使いたいので、使い方を覚えようとします。
覚えた使い方で作りたいものに近づく為に試行錯誤する or 同じことをやっている人の真似をする。
逆に作りたいものが無い状態で使い方を知らないノコギリを渡されても何にどう使えばいいんだよという状態になってしまって
そのノコギリを使う必要性もないし、使い方覚える必要もない状態なのでプログラミングを習得できません。
プログラミングが難しいと言っている人は大抵これに当てはまります。
プログラミング習得は学業のように基礎をはじめから順番に最後までやるのではなく
やりたいことを決めて、実行してから完成させるのに必要な基礎を覚えることが重要です。
車輪の再発明
道具そのものを組み合わせて便利な道具を作ることもプログラミングですが
何かを作るために「完成された道具そのものを作ることから始める」というのは
車輪の再発明と言って初めのうちは時間の無駄になりますので気を付けましょう。
車輪の再発明は無駄だと言われていますが、構造を理解することにはとても大事なことです。
ですが、何も知らない状態で車輪の再発明をするのは挫折しますと宣言しているようなものでしょう。
無知の素人が作った道具と、その道の職人が作った道具、あなたならどっちが使いたいですか?
初めに学ぶ言語はどれがいい?答えはどれでもいい
最近の流行りはプログラミング学習サービスで取り入れられやすい人気のフレームワークRoRで使われるRubyでしょうか。
それともAI開発で使用されているPythonでしょうか。
結論を言ってしまうと基礎は殆どどれも同じなので初めに学ぶ言語は正直どれでもいい
と言い切りたいところですが、流石にアセンブリ言語やCOBOL、FORTRANのような
化石言語は使う場所が限られすぎるので、最初に覚えるべきではないでしょう。
なりたいプログラマにもよりますがすぐにでも実行してみたいという人にオススメなのは下記の言語です。
- JavaScript
- UWSC
- VBA
- Ruby
- Python
全ての基礎になるC言語をオススメしたいところですが、環境構築に時間がかかるので安易にオススメできません。
上記のリストに上がっている言語は、プログラミング言語というよりも
スクリプト言語と言った方が正しいですが、結局どの言語勉強も最初にやることは同じなので
正直な所すぐに実行できる言語であればなんでもいいでしょう。
それぞれの解説をしていては記事が長くなりすぎるので省略します。
Macであれば最初からPythonやRubyの環境があったりしますし
JavaScriptであればブラウザとメモ帳さえあればすぐにでも実行できます。
VBAもエクセル用のマクロ言語なので、エクセルがあればすぐに使えます。
UWSCに関してはWindows専用なのですが、ダウンロードしてから使います。
「【言語名】 入門」 で検索すれば大抵のことは出てきますのでまずはググりましょう。
基礎はこれだけ覚えておけば後は検索でOK
- 変数の概念
- 真偽値のTRUE or FALSE
- 条件分岐のIF文。
- 繰り返しのFOR文とWHILE文
最初はこれだけで何とかなります。
後はそれぞれの言語の文字を表示する命令だったりを実行するだけです。
プログラミングの入門で覚えることはいっぱいありますが全部覚えなくていいです。
プロも結局忘れたら調べるので、不明になったら調べればOKです。
この常時接続時代にネット環境がない場合は?なんてことは解説しません。
どうしてもネット環境がない人はその辺のお店のフリーWi-Fiを使って調べてください。
プログラマになる?便利屋になる?
IT企業にプログラマとして就職したいのであれば、プログラミングだけではなく
チームで開発するための勉強も必要になります。
私はチーム開発をしたこともないし今後するつもりもない一匹狼スタイルですので
チーム開発に関しては全くの素人ですので教えることはできません。
私が務めているところはIT企業ではないので、
PCのことなら大体なんでも出来る便利屋ポジションになっています。
正直仕事はつまらないですが、まずクビになることもない安定したポジションを獲得出来ました。
便利屋になると嫌でも覚えなければいけないことがたくさん出てきますが
逆を返せば色々なスキルを自分の意思で習得することが出来るということです。
人に言われて覚えることよりも、自分で進んで覚える方が身に付きます。
これは「作りたいものを作るのがプログラミング習得の一番の近道」でも言ったように
どうしてもやりたいことがあるから、それについて調べることで
吸収率が高まる=自分のスキルになるという感じです。
覚えたことは素人レベルでもいいから書き出すこと
プログラミング以外にも言えることなのですが、まずは覚えたら自分の言葉で書き出してみることです。
出来るなら自分だけが見るノートではなく、ネット上で誰もが見られるブログやWebサイトで公開するのが好ましいです。
しかし教科書や他人が書いている文章をそのまま書きだしても意味がありません。
これはブロガーにも言えることで、この人に悪いから同じような記事を書かないでおこうとか
お人好しになる必要もないですし、誰かが書いているから別に書かなくてもいいやとか
で終わらせるような思考停止状態はやめましょう。
ですがその際に気を付けてほしいのが、明らかに質の悪い記事にしないことです。
質が悪ければ本当に意味がありませんし、ネット上にゴミを放棄するようなものです。
素人レベルで書けって言ってるのに何言ってんだコイツと思われますが
素人レベルの記事と質の悪い記事はイコールではありません。
もちろんプロから見れば価値等一切ないかもしれませんが
貴方と同じくして学ぼうとしている人には価値があります。
スキルが自分より上の人がいれば、自分より下の人もいることを忘れないでいきましょう。
ブログ毎日更新は52日目。
日々勉強、日々継続です。