未経験からはじめてのプログラミングの勉強方法を考える

未経験からはじめてのプログラミングの勉強方法を考える

本投稿は、はじめてのプログラミングの勉強方法 Advent Calendar 2017 の18日目の投稿です。

未経験でプログラミング学習中の私が今思うこととその解決策を提示したいと思います。

初心者の時困ったことって、上達すると忘れてしまうので今のうちに書き記しておきたいと思います。
そして、今の自分なりの打開策を書いて行くぜ。

まず前提条件として大学でプログラミングの勉強をしていない、文系30歳オーバーの私の話で進ませていただきます。

これからプログラミングを漠然と覚えたいという方は、参考にしてもらって自分なりの答えを見つけてください。

そしていい方法があればこっそり教えてください。

FAQ

Q.どの言語を学べばいいかわからない

まずプログラミングを勉強しようとした時に、どの言語を選べばいいかわからない。

それぞれの言語の特徴を言われてもいまいちパッと想像できないので自分が覚えるべき言語設定ができない。
そもそも初心者は「この言語はこういうことができて」「この言語はこういうことが苦手です」っていわれたところで想像ができません。

A.とりあえずHTMLとCSSから入る

理由は簡単にブラウザ・エディタがあれば動く。
すぐに成果物が見れる、反映される。
コードを書く喜びを簡単に学習できます。
Javascriptもついでに覚えてしまえばかなりのことができるようになるので導入としてはいい。

プログラミングとはいうには少し違う気もしますが、コードに慣れるにはいいですね。

これは後述のやりたいことにもよるのですが、全く何もないならこれでいいと思います。

プログラムの最初という意味ではscratchっていう手もあるけど、おっさんとしてはあの子供っぽいデザインが逆にとっつきにくい。今ではかなり学習に有効そうだと感じてるので挑戦したい。

 

Q.作りたいものがない

これは今でも少し悩みでもあるんですが、そもそも絶対に作りたいものが無いっていう問題。
そして漠然と作りたいものがあっても、それがどのくらいの技術を要するのか想像ができないことです。
すごい技術が必要で全然無理なのか、頑張ればなんとかなるのかがわからない。

A.とりあえず写経でもいいのでなにか作る

本に載っているサンプルコードをそのまま写して動かしてみる。
とりあえず自分の手を動かして書いたコードで何かが動くと感動します。
慣れてくると一部を改変してどこが変わるかやってみるとかして覚えていくのがいいかと思います。

ドットインストールとかでもサンプルがあるので写しまくる。

作って行くうちにこれならできるかもっていうものが出てくると思うんです。
これが決まれば言語設定もある程度簡単に絞られます。iphoneアプリならswift、androidならJava、Webアプリならruby/phpとかみたいに。
そしてこれが一番上達の早道なんですけどね。

 

Q.覚えること多すぎ

勉強すること多すぎ。
そして、これだけインターネットが発達しているとググれば大体のことは出てきます。
関連書籍もたくさんあります。
初心者には情報過多なんです。

A.一つずつ片付けるしか方法はない

まず、ドットインストールみたいな動画はめちゃわかりやすいのでオススメです。やっぱりドットインストール最強。
あれもこれもやりたくなるし、いろいろ見てしまうのですが一つずつ片付けた方が成長も早いような気がします。
本もたくさん買ったはいいけど結局手を動かす時間がなくなって本も読まなくなります。
買って満足してしまうのであまりいろんなことには手を出さない。

 

Q.どの情報を信じればいいかわからない

本当に恵まれた時代だと思います。

しかし贅沢を言うようですがそれゆえに情報の取捨選択が必要になり、どれを元に進めるべきかわからなくなります。

「あっちではこれがいい」というし「こっちではこれがいい」というし、わけわからん。

A.メンターか仲間を見つける

やはり情報を持っている人に聞くのが一番いいと思います。できれば自分の行きたい業界にいる人に聞く方がいいです。ゲームだったりWebだったりアプリだったり。

とはいえそんなIT関係者周りにいる方が少ないと思います。私の周りにも一人もいませんでした。

そういう時は勉強会に参加するのは非常に有効かと思います。
IT系はありがたいことに勉強会やコミュニティが他の業種に比べると多いです。
ぜひ積極的に参加して、初心者でも向かい入れてくてるところもたくさんあると思います。
私の場合は幸運なことにネットで教えていただける方を見つけることができて、話を聞いていただいています。

捨てる神あれば拾う神ありです。

もちろん手取り足取りではないので、自分でやることはやらないといけないです。
でも最初は簡単なことで詰まって抜け出せなくなることがあります。
そういう時に相談できる相手がいると大変助かります。

 

Q.スクールは行った方がいいのか

スクールか独学かの問題はすごく最初悩みました。
まったく業種が違うところからの転職ですし、知り合いもいませんでしたから情報が欲しかったです。

A.お金があるんならいいんじゃない

費用を払えるんであれば手っ取り早いと思うし、誰かに相談できるのはやっぱり大きいと思います。
ただスクールに行ったって完璧にはなりません。やる人は勝手にやるし、やらな人はずっとやらないです。

なので私はとりあえず独学でなんとかやっていこうと思います。
独学でも今は教材が吐いて捨てるほどあるので、活用するしかないです。

下記はサービスは今までに使ったサービス、これから使って見たいサービスです。
無料 or 格安なんものばかりです。
自分にあったものがあれば有料版なり課金しても使ったほうがいいと思います。

ドットインストール
progate
schoo
udemy(98%offとかのセールがあるのでその時なら1000円とかの格安になります。私は全部その時に買ってました。)
N予備校
udacity(海外のサイト。英語も一緒に覚えれるかもと今狙ってます。)

 

Q.モチベーションの維持が難しい

一人でせっせと作っていくのにはなかなかモチベーションが下がります。
このモチベーションを保つのが実は一番難しいと思っていて、スケジュールもどんどん遅れていきます。

A.人に見せよう

できたものをとりあえず人に見せましょう。
IT関係の人じゃなくていいし、なんなら家族や友人でいいと思います。
みせたら何かしらのフィードバック(叱咤、激励、アドバイス、機能面、デザインetc)など自分では気づかないことを教えてくれます。
できれば外に向けても発信前提にしましょう。
ブログでもQiitaでもgithubでもいいので制作過程か完成物を公開したほうがいいと思います。twitterでもいいし勉強会のLT(ライトニングトーク)で発表してもいい。

これにはさまざまなメリットがあって、
・自分の頭を整理できる
・制作過程がちゃんと残り、成長が見れる
・誰かの目に止まることがあるし、何かのタイミングで自己紹介として見せれる
・ある程度他者を意識することで説明することの練習になる。自分の作ったものをちゃんと言語化するというのはエンジニアでもデザイナーでも求められるので
・「自分はこんなことしてます」宣言をすることで仲間になってくれたり教えてくれたりする人が現れる

 

Q.人に見せるのは恥ずかしい or そんなレベルのものじゃない

人に見せたりブログに書けるようなレベルじゃないからそんなことできないと思ってしまう。

A.そんな気持ちは燃えるゴミの日に一緒に捨ててしまえ

読んで字のごとく。
ちなみにうちは月曜日と木曜日です。

 

Q.仕事で使うレベルになれるんだろうか

どのくらいやれば仕事として採用してもらえるのだろう。
どのくらいの技術を要求されているのだろう。
雇ってもらえるところがあるのだろうかと不安になります。

Q.運による

確かに技術者なので技術力はある程度必須ですが、レベル感は企業や会社によって全然違います。
また普段は採用しないけど、未経験者でも育てていこうかなと思う時期があるかもしれないし、はっきりいって運的なものが大きく左右されると思ってます。
その運を掴むために日々勉強したり、発信したりしていけばいいと思います。
あとは宝くじを買うように企業に応募すればいつかは当選するでしょう。

それから足りないならば死に物狂いで勉強すればいいし、だめならやめたらいいんですよ。
働く場所なんていっぱいあるはず。

 

まとめ

ほんとにプログラミングといってもジャンルも多種多様で覚え方なんて人それぞれだと思います。
大事なことは自分にあったやり方でプログラムを書くことを楽しむことではないでしょうか。

道のりはまだまだ長いですが、35歳定年説なんて粗大ゴミの日に出してしまったので、もう頑張るしかないわけです。

最後まで読んでいただいてありがとうございます。勝手にAdvent Calenda参加させていただきました。ありがとうございます。