どうも。パチと申します。
WEB系エンジニアではありませんが、未経験から独学でプログラミングを学び、WEBサービス等を作って少しですが家計の足しにしています。
プログラミングのレベルは趣味程度で、いわゆる週末プログラマーです。
完全に未経験・独学・無料でプログラミングを学びたい!と考えている人は多いと思いますが、僕が挫折したポイントや打開した考え方などを紹介します。
また、独学では『超えられない壁』も存在していると感じました。
副業でプログラミングを始める人は、僕の経験が参考になるかと思います。
【警告】未経験からの副業プログラミングで稼ぐのは厳しい
話の腰を折って申し訳ありません。
「独学プログラミングで稼ぎたい」と思っている人は、まず下記記事を読んでいただきたいです。
プログラミングは簡単に稼げる分野ではありません。
実務で使うには最低300時間の学習が必要と、どこかのプログラミングスクールのサイトで見ましたが、独学ならさらに時間が必要になる事はいうまでもありません。
「学生でヒマだからちょっと勉強してみたい」「新しい事をチャレンジしてみたい」といったような、時間的に余裕がある人なら、独学でチャレンジしても良いでしょう。
また、最終章にあたりにも書いていますが、
「頑張って早く稼げるようになりたい!」という人は独学ではなく、プログラミングスクールに通って死ぬ気で頑張るのが一番の近道な気がします。
独学プログラミング学習で体験した『挫折』とその打開方法
僕は完全独学で少しですがプログラミングができるようになりました。(主はWEBサイトの開発ですが、スマホアプリもリリースしてます)
とはいえ、レベル的には週末プログラマー。
毎日ガリガリかくようなタイプでは無いですが、何週間かに一度はプログラミングしてるって感じです。
独学で学んだ僕ですが、最初は泣くほど辛かったです。
当時、「何かスキルを身に付けないと死ぬ」という気持ちが根底にあったので乗り切れましたが、振り返ってみて「あの時、こういう発想・対処ができたらな」と思うことをまとめています。
挫折① 開発環境の構築でつまづく
「さぁ、プログラミングを書こうか!」で、いきなり書けません。
技術的な話ではなく、超簡単なプログラミングをするためには、それができる環境を設定する必要があります。
独学で始めた当時の僕は
- Android Visual Studioの設定(Androidアプリ)
- Xcodeのディベロッパー登録とか(iPhoneアプリ)
- ローカルPCにMAMPをインストール & 設定する(WEBサービス)
ググった結果通りに進めても、「一体、俺は何をしているんだ?」状態でとりあえず進めたような記憶があります(笑)
【打開方法】
一言一句違わず教えてくれる学習サイトを参考にする。
環境構築は意味のわからないことが多いので、手取り足取り教えてくれる学習サイトの指示通り進めるのが良いです。
特に動画コンテンツはわかりやすい。
PC環境によっては動作しないケースもあり、この時が一番挫折しやすいのですが、初心者レベルであれば、コピペしてググれば同じ悩みを解決している記事がほぼ100%あると思います。
挫折② エラー解決できず、頼れる人もいない
エラーが発生するとワケわからない文章が書かれており、Googleで和訳したところでチンプンカンプンです。
とりあえず、エラーをそのままググってみるものの、自分が理解できないので解決策があってもスルーしてしまいます。
しょうもないエラーで何時間、何日もハマって挫折してしまうというパターンです。
【打開方法】
1.時間をかけて調べたり書き直しまくる
はい。根性です。アナログです。でも、なんやかんや解決することが多いです。
何度もググり、意味わからない文章でも読み続けると、なんとなくわかってきますw
そのキーワードをググり直すと解決策があったりと、とにかくクソ粘ることが大事です。
2.無料で聞いてみる
本当に全く理解できなかったら、有識者に聞いてみましょう。
僕はよく「https://teratail.com/」を使っていました。学習し始めた時くらいにローンチされたサービスで、超初心者の質問でも早く丁寧に答えてくれてました。
ちなみに、質問時に覚悟して欲しいのが「怒られること」です。
初心者は何をどう質問したら相手に伝わるのかさえわかりません。そこで、トンチンカンな質問をして、
- まずは質問のルールを守りましょう
- まずはコレを確認してください
といった様な回答がきたりします。ぶっちゃけ恥ずいです。
しかし、醜態を晒したくないという保身的な発想で何もしなければ進めないので、注意された事を受け止めれば自分のレベルも上がります。
3.目標のレベルを下げる
ひらたくいうと『諦める』という事です。
わからない事を
そこで、目標を変更して、実現可能なレベルまで下げるという手段を使います。
なんとなく負けた気がしますが、粘る→疲弊する→挫折するというパターンに陥るよりよっぽどマシです。
受験勉強で言うと、東大に合格できる学力がない『大学にいければ良いと思っている人』が東大受験するようなものです。
大学に行ければ良いのであれば、レベルを下げれば解決します。
ただし、絶対に注意したい点は「この機能はユーザーにとって価値があるかどうか?」を考ることです。
「どっちでも良い」と判断すればレベルを下げれば良いし、「外せない」と思えば数週間でも粘ります。
(受験で例えると、絶対に医者になりたければ、多少の学力不足でも医学部を受験するでしょう。「工学部で良いや」とは思わないはずです)
4.有料コンテンツを利用する
どれだけググっても使えそうな情報がない時は、有料コンテンツを使うのもアリです。
たまに僕も
ほとんどの人が必要性を感じないけど、必要な人はどうしても欲しい。。。こういうコンテンツが
挫折③ 細かいバグがかなり多い
プログラミングではバグの修正作業の事を「デバッグ」と言います。
このデバッグはめちゃくちゃ時間を使い、疲弊して挫折します。
ユーザ側だった時は、プログラマーの細かな努力は一切気付きませんが、プログラミングをすると無限に湧き出てくるのでイライラが止まりません。
特に誰かに使ってもらうためには、小さなバグなども無くしていく必要があり、「こう使えば、うまくいくんですよ!」は通用しません。
全然大した事ないプログラムなのに、修正作業にここまで時間がかかるなんて…と言う状態になります。
【打開方法】
目標をしっかり持ってプログラミングを学習をする
正直、粘り続けて解決する以外ありません。イライラしつつも微修正を繰り返します。
乗り切りには「プログラムができるようになれば…」「このプログラムが完成すれば…」と夢を持つしかありません。
僕の場合ですが、「このプログラムが完成すれば、〇〇ができるようになるから、〜〜になって儲かるかもしれない。」と妄想して乗り切りることが多いです。
挫折④ 成果を出すまでには、かなりの努力が必要
あれだけの時間と労力を費やしたのに、成果物が全くショボすぎます。
- 誰が使うの?誰が嬉しいの?
- コレ何の意味があるの?
- やってらんねっ(ポイッ)
という流れ。
当たり前の話ですが、数ヶ月勉強したところでまともなモノはできません。
ある程度知識や形にできる力が備わっても『誰も使ってくれない・評価してくれない』という状態が続いて挫折します。
この段階での挫折は”自称プログラミングを頑張った人”に多い印象です。
【打開方法】
まず、自分が必要なものを意識して作る
初期の頃の成果物は、子供のお遊戯レベルです。
プログラミングスクールではモチベーションを低下させないために「いいね。」と行ってくれるかもしれませんが、現実は残酷で誰も評価してくれません。
しかし、自分に必要なモノを作って完成すれば、自分にはメリットがあるので達成感が味わえます。
とにかく実戦経験が圧倒的に足りないので、小さな目標を立ててレベルアップしていくのが望ましいでしょう。
独学プログラミング学習で成功する秘訣
僕が独学でプログラミング学習で挫折したポイント、それを打開した方法など紹介しました。
結局、プログラミングの上達は時間をかけて練習するしかない泥臭い感じになります。
さらに独学だと教えてもらうより成長も遅い。こんな過酷な環境の中、できるようになろうと思ったら、
プログラミングを学んで何がしたいか目標設定を明確にする
この意思の強さが成否を分けると思います。
コレは何万円儲けたいというお金の話ではなく、「自分がプログラミングを通じて誰にどう貢献できるか?または貢献したいか?」という力です。
例えば、アフィリエイトに活用している自分の場合を例にあげましょう。
基本的にSEO対策をして検索で上位表示させ、自分のWEBサービスを利用または商品などを購入していただいて収益を得ています。
SEOの考え方は難しいですが、「ユーザーの満足度」を重視したコンテンツ作りは重要な要素になります。
そこで、文章や写真だけのアフィリエイトサイトではなく、プログラムを活用した方がユーザーの満足度をあげれるのではないか?という考えで、いくつものプログラムを書いてきました。
実は、独自プログラムを利用してのSEO対策は収益面ではコスパは悪いと言われています。
ですが「ユーザーの満足度を上げたい」という意識で頑張り、どのWEBサイトでも提供していないサービスを与える事は出来たと思っています。
収益的な効果はわかりませんが、「誰かのために」というのは非常に大きな力になります。
独学では超えられない壁があると思います
世間一般では「プログラミングできる人」の僕ですが、プロのエンジニアさんのお話を聞いていると、「やっぱり負けるな〜」と感じることが多々あるので紹介したいと思います。
知識が偏っている
独学だと知識が偏ったり、『常識』と言われる部分でも全くわからない事が点在します。
特に僕は「専門用語」をあまり知りません。(一人だと用語を喋る必要が無いので)
また、「動けば良いから」というスタンスでやりがちで、未だに”プログラミング初心者あるある”のミスを連発していると思います。
たまに、
チームで開発するスキルが一切ない
一番致命的なのがコレじゃないかな?
ほぼ一人で完結するプログラムしかしたことないので、チームで作るビジョンがわかりません。
コミュニケーションスキルもないし(笑)
多分、僕が書いたコードを読むと、「何このクソコードw」と言われることでしょう。。。
技術力やコネがない
世間一般ではプログラミングができる部類に入ると思いますが、プログラミングでお金も貰えるほどの技術はつきませんでした。
コレは、僕個人の努力の問題もあるでしょうが、プログラミングが必要な環境や仲間がいる空間に身を置いていないことで必然的に出てくる差だと思います。
個人で案件を受けようにも「もし、これが出来なかったら頼る人がいない」と尻込みして敬遠してました。
エンジニアへの転職はガチでキツイ
独学からエンジニアへの転職を考えている人もいると思いますが、個人的にはかなりキツイと思います。
プログラミングの能力もそうですが、全くコネが無いところから、自分の能力を磨いて認知してもらい、チームを組んでプロジェクトを進める。。。ことができるでしょうか?
結局、僕は独学である程度のプログラミングスキルを習得したものの、その業界で食べていけるほどの人材にはなれませんでした。
独学でプログラミング学習して、失敗した点
自分で言うのもなんですが、独学でよくプログラミングをここまで勉強したな。と思います(恥)
ただ、振り返ってみてアレは失敗したなと思う点が、有料コンテンツを敬遠しすぎた事です。
当時の僕は、初心者向けのプログラミングの本を3冊ほど購入(約5,000円)、https://dotinstall.com/の無料分だけで頑張っていました。
当時の気持ちとしては、
なんとかプログラミングを頑張って人生を打開するんだ!!
という気概で頑張っていましたが、当然学習効率も悪いので成長率も遅いです。
人生を変えたいとまで思って頑張るのに、なぜたった5,000円しか投資しないのか?
例えば、数万円払ってでも
数十万円払ってプログラミングスクールに通った方が、間違いなく成長速度は早かったでしょう。
もちろんお金が無ければ無理ですが、当時で貯金が数百万はあった事を考えると、むしろもっとお金をかけて学んでも良かったように思います。
『独学では超えられない壁がある』と解説しましたが、スクールなら転職サポートがあったりするし、チーム内での実務作業の訓練を積ませてくれたりするでしょう。
「どうせ、付け焼き刃で役に立たない」と思った時もありましたが、やっぱりその経験が欲しいですし、その経験から来るちょっとした自信でさらに一歩進めていたかもしれません。
今の僕は副業としてちょこっと稼いでいますが、プロのようにプログラミングを作って対価をいただくまで成長できませんでした。
僕が独学でプログラミングを学んだ体験談は以上です。
未経験から始める人の参考になればと思います!
コメント