こんにちは。もんしょー(@sima199407)です。
という疑問があるかと思います。
以前に以下のようなツイートをしました。
よく言われますが「本気度が足りないから行動できない」というけど、これを言っても仕方ないですね。
やってみて火がつくパターンもあるので、色々試して見るのがいいと思う。
プログラミングは手を動かして自分の思い通り動いてから楽しさがわかる。
本気度が増す出来事を待ってもしょうがない。
— もんしょー@フルリモートエンジニア|YouTube登録者200人突破 (@sima199407) December 18, 2019
よく言われますが「本気度が足りないから行動できない」というけど、これを言っても仕方ないですね。
やってみて火がつくパターンもあるので、色々試して見るのがいいと思う。
プログラミングは手を動かして自分の思い通り動いてから楽しさがわかる。
本気度が増す出来事を待ってもしょうがない。
これについてもう少し詳しく解説していきます!
動画でも解説してます
結論から申しますと、駆け出しの頃に一番力が必要です。
例えばプログラミングやってて
「これを数十年続けてしんどいなぁ」
「ここで挫折したら今後もっと辛いんだろうな」
と考えちゃうかなと思うんですけども、実はそうでもないということを今回分かればいいかなと思います。
最初に辛いと感じるのは知らないから
これどういうことかと言うと、プログラミングって最初に覚えること結構あります。
例えば変数だとかデータの型とか出力の方法だとか色々と覚えることいっぱいあります。
それを真面目に1つ1つ覚えてからエンジニアになろうと思ったらこれは本当に最低でも1年はかかります。
そうなると辛くなって、やめてって挫折してエンジニア無理とかプログラミング無理ってなってしまうんですね。
覚えないといけないこと結構あるでしょうと思うんですけども、確かに色々覚えることあるんですけども、誤解している部分もあるんですね。
最初から全部やる必要はない
実は全部覚える必要はないんですよ。
むしろ覚えてないことのほうがエンジニアには多いんですよ。
どうやって行動、仕事をしているのかって言うと、調べながら
「あーなんとなくこうだったな」
「これってどうやってやるのかな」
というのをGoogleで調べたりして仕事をしています。
自分でその場で調べるっていう能力があれば、エンジニアとしての仕事はある程度成り立ちます。
作ることでしか成長は感じれない
ぶっちゃけて言うと、例えば最初にプログラミングを勉強する時に、プロゲートをやってみるとかいいですし、
技術書を1冊買ってきて、まるまる隅から隅までやっていくというのではなく、1週ぐらいとりあえず目を通したり、手を動かして理解ができたら、あとは実践あるのみです。
プロダクトを1つ作って、例えば掲示板を作ってみる、TODOリストを作ってみる、という方法でやった方がプログラミングを勉強するのが効率です。
初めは何も知らないから、まあ難しいなぁって感じるんですけども、だんだん手を動かしていくうちに
「あ、これ前やったな」
「これこうやってやればいいんだな!」
とか規則性みたいなところも掴めてきます。
最初だけやっぱりちょっと辛いと感じるんで、そこだけ頑張れば全然後はやっていけると思います。
プログラミングで辛い部分ベスト3
サクッとやればとさっきお話したんですけども、それでは挫折してしまうんですよね。
そう感じていたのは、僕もその1人ですし、挫折率が高いというのも事実としてあります。
プログラミング何で挫折してしまうか、多分何か辛い部分があるんです。
その辛い部分って言うのは、どういうところなのかっていうのをランキング形式で発表していきます。
僕の独自と偏見が入っているのでもしかしたら、こうではないっていう意見もあるかと思いますがご紹介しようと思います。
第3位:自己管理が大変
まず独学でプログラミング勉強しようと、プロゲートやドットインストールでやってみようとかね。
やってみるとちょっと分からないことがあると逃げてしまったりということも結構あります。
後で休憩したらやろうかなと思ったら、2、3日たったりとか下手したら1週間経って再スタートしてしまうとかそういう経験結構あるかなと思います。
なので最初はやっぱり自己管理を自分でなんとかここまでは進めよう、今週はここまで進めようっていう自己管理ってのはすごく大変なんですよ。
ある程度期限を決めてあるほうがやる気が出しやすいかなと僕は思います。
それかスクールに行って管理してもらうのが人によってはラクだったりします。
・テックキャンプ:【業界大手。転職、デザインも学べます】
僕が通ってました。渋谷や大阪に教室があります。
・ポテパンキャンプ:【転職すると全額キャッシュバックも狙える】
自社開発の転職に評判がいいです。未経験コースもお得。
・TechAcademy:【コースが豊富。1週間無料授業アリ】
LaravelやJavaなど人気の高いフレームワークを学べる。
第2位:英語が分からない
プログラミングって基本的に英語ベースなんですよ。
英語ベースなんで苦手な人からしたらもう見るだけでかなりきついところあるんですよね。笑
エラー文のところとかググってみたら解決策も英語で書いてあって
「うわ、読めない」
「全然分からない。。。」
「マジ終わった・・・」
みたいなところあるんです。笑
対処法
そんな時の1番いい方法は、Google翻訳を使ってある程度意訳みたいなところを理解できればいいかなと思います。
最初は慣れないかなと思うんですけども、英語の読解は慣れてくれば結構出来るようになります。
単語だけ勉強する
とりあえず中学校1、2年生レベルの単語とかを覚えるくらいでいいです。
使われている単語とかも同じようなものが使われていたりするんで、そこだけ抑えておけば大丈夫だと思います。
第1位:何が分からないか分からない
これどういうことかと言うと、なんか前に進まないんだけど、どこで躓いているか分からないみたいなすごい迷走状態の時があるんですね。
プログラミングほんと最初の頃って。
プログラミングって1つの場所がズレてしまうと、全部に影響してしまったりとか、ズレがどんどん生じていって最後に帳尻が合わなくなってくるっていうところがあります。
エラーになった部分のポイントに気が付かずどんどん進んでいってしまって、一気に崩れてしまうパターンです。
対処法
こういう時って最初から戻ればいいんですけども、
「せっかくやったやつを元に戻したらなんかわけわかんなくなっちゃう」
「ここまで戻りたくないな」
って思ってしまって何とかエラーを解決しようとするんですけども、逆効果だったりします。
急がば回れで最初からもう1回段階を踏んでいく方が割と解決はしやすいです。
もしそういう状況になったら、1回戻って、ここで躓いたんだなっていうのを理解してもう1回進んでいくっていう方法をお勧めします。
楽になったと感じたタイミング
僕も最初エンジニアやって1年ちょっとぐらいかな、
なんて思いながらもやってたんですけども、周りの人がやっぱり上手くいったりとか先輩エンジニアとかみていました。
「あーなんかこの人すげーなー、なんでこんなに出来んだろうなー」
「エンジニアの素質があるんだろうなー」
みたいな思ったりもしたんですけども、あるタイミングで僕もプログラミングちょっと楽になったなぁって感じるタイミングがありました。
同じことの繰り返しと気づく
繰り返しこの前と同じようなことをやった時、楽になったなと感じました。
そりゃそうなんですけども、「これ前にやったなー」という回数が増えてくれば初めの時よりも流石に処理スピードって速くなりますよね。
例えば、データベースつなげようという時に、前のソースコードとかを見れば、こうやってやればいいんだっていうので復習してやるとすごく早く感じますよね。
結局パーツは同じ
そういった体験を何度も何度もすることで、そういった悩む機会っていうのが少なくなってくると、「あ、プログラミング楽になってきたなー」っていうのを感じました。
プロダクトをいっぱい作れば作るほどそういった経験を積める可能性があります。
例えば、会員登録とかメール配信とかトップビュー作るとかどのサービスにも使える部分っていうのを何度も何度もやるとスムーズに仕事が進みやすいと思います。
時には休憩したって良い
最初から上手くいくってことは、やっぱりほとんどないわけですよ。
出来ないと思う回数も多いと思うので、そういう時はきっぱり休憩した方がいいです。
頭が本当に疲れている状態で分からないこと調べても全然いい結果出てこないんです。
なので、
・普通に1回休憩を取る
・仮眠取ってみる
・1日経ってからやってみる
・散歩してみる
・運動する
なにか1つ気分転換をやってからやるとすんなり解決策見つかったりします。
疲れている時にいいアイディアは出ない
意地になって調べていくと割といい結果出てこないんですよ。
なので集中して短期間でやるぞっていう時もですね、休憩をこまめに挟んでいくのも1つポイントになってくるんじゃないかなと思います。
https://simablog.net/programming-do-last-hack/
まとめ
1つ目、覚える部分は最初の基礎の部分だけ!
プロゲートとか技術書1周とかして軽く理解ができたら、すぐにプロダクトを作ってどんどん何が必要なのかっていうのを実践で学びましょう。
2つ目、同じような実装が増えてくると楽に感じるようになる!
最初知らない事、未知な事っていうのをやると最初躓くこともあるし、エラーが出てきたりとか、時間かかるんですけども、何回も同じことをやっていると、ある程度楽になってきて、「会員登録あーやってやるんだな」とか「データベースのつなぎ方あーやってやるんだな」っていうのが見えてくるので、それで仕事っていうのは楽になってくると思います。
3つ目、休憩を入れるとスムーズに出来る!
仕事を進めようと思って時間を使うと思うんですよ、なんとかこれを今日中にやりたいと思ったりして結構意地になってやるんですけども、中々解決しない時ってあるんですね。
そういう時は一旦休憩を入れることによって、プログラミングを1回脳から外した状態、リフレッシュした状態になると割とすんなりと「ああ、こうやってやるんだ」「見えていなかったけどこうやってやればいいんだ」っていうところが見えてくるので、是非休憩を取り入れてみてください。
今回のまとめです。
・覚える部分は最初の基礎の部分だけ
・同じような実装が増えてくると楽に感じるようになる
・休憩を入れるとスムーズに出来る