エンジニアになるために、独学である程度スキルを身につけたい!実際にどんな手順で学習進めたらいいのか知りたい!という方の参考にしてください。プログラミングを1年ほど独学しAIエンジニアに就職できた現役エンジニアが初心者向けに実体験を解説していきます。
基本的に無料の情報で独学を進めることができるので、安心してください。
プログラミング独学の成果
正直、お金をあまりかけずにスキルを習得したいですよね!
私が独学で習得できたスキルや期間を体験談を基にお伝えします。
独学でも問題ないけどしんどいかも
っていうのが独学を経験しての感想です。
習得したスキル一覧
HTML・CSS 簡易的なサイトのコーティング
javascript Jquery サイト内の動的デザイン・簡単なwebアプリ
Python 基本的なライブラリを活用したアプリケーション、機械学習AIの自作
それぞれの学習に使った時間
HTML・CSSを最初のプログラミングへの入り口として学び、1ヶ月くらい使いました。
その後サイトで動きを出すためのJavascriptとJqueryに触わり名前占いアプリ、や有名なfezbuz問題あたりを勉強して2ヶ月くらい使用。
Pythonは、いきなり自動化ツールを自作から入り1ヶ月程で完成。その後、自然言語処理AIを半年程かけ作りました。
プログラミング初心者が陥りがちなのが、何も見ずに出来ないからまだまだ勉強不足という考えです。
私自身がそうだったのですが、見て作れれば問題ないんです。実際の開発でも沢山調べながら正しく機能するように作り上げていきます。
なので調べた情報を活かして作れればOKという認識でプログラミングに触れていきましょう。
エンジニア独学で実際に感じたメリット・デメリット
エンジニア独学のメリット
金銭的コストが圧倒的に少ない
学習内容を調整できる柔軟性が高い
プログラミングスキルとセルフマネジメント力
金銭的コストが圧倒的に少ない
独学はスクールなどに通う場合に比べて、圧倒的に金銭コストが少なくすみます。スクール利用料金の相場が5万〜30万円ほどです。この金額がまるまるなくなるので当然といえば当然ですよね。実際に私が独学でプログラミングを学習した時に使った、学習費用の合計は約1万円程度で収まっています。お金があまりない学生や第二新卒の方々にはまず独学から勉強を開始することをおすすめします。
学習内容を柔軟に調整できる修正力が高い
スクールに比べると、日にち単位や週単位などで学習内容を柔軟に変更することができ、将来やりたいことにピントを合わせて学習していくことができます。誰でも最初は初心者の状態から目標や学習内容を決めていきます。
少しづつ知識がついてくると、この分野は、興味が湧きにくいな!この内容を将来的にやりたいな!とやりたい事の方向性が変化していくモノです。その為いきなり高額なスクールに通ってしまうと、この分野への興味が高いと分かってきたタイミングで、カリキュラム通りの学習を続けることがつまらなくなりやすいです。
そうなるとお金が無駄になってしまいますよね。なので最低2.3ヶ月は自分で独学を進めていき、将来の目標や興味などがある程度固まってからスクールの検討をしましょう。自分で継続して調整し学習が進められるのであれば、スクールに通うわないで良いと思います。
自分で修正しながら目標に向かっていくことによってセルフマネジメント能力も勝手に身に付きます!
エンジニア独学のデメリット
学習がスムーズに行かず挫折と隣合わせ
学習内容やモチベの管理が困難
学習が予定通りに進まない
エンジニア独学のデメリットは、つまづきまくるので、想像以上に学習が進まない時があります。ほんとに小さいミス(コロンとセミコロン間違い)でもエラーになってしまいます。また初歩的なミスなのか、プログラミング構文がおかしいのか、といった判断が最初はわからないものです。どのスキル習得も同じですがある程度の学習時間や量が必要になります。プログラミング独学は簡単には進まないことを知っておきましょう。
学習内容やモチベの管理が困難
やる予定の学習が、エラーで止まって丸一日進まない事が割とあります。壁を乗り越えるまでの時間が長くなるほど勉強自体がだらけてしまいます。実際に私もプログラミング学習を最初の3ヶ月で挫折しています。。。その後やるしかない状況を作れたのでなんとか乗り越え就職できるレベルのスキルアップは出来ました。誰かを頼れる環境があると、モチベーションなどを高くもったまま継続可能だと思います。
実際の学習ステップ
プログラミング独学はお金をあまりかけない分、自分との戦いになります。
独学でスキルを習得しAIエンジニアに就職するまでの体験談をお話しできればと思います。
- まずはプログラミングに触れてみた
- アニメーションの関数や簡単なwebアプリケーション作り
- 学習3ヶ月目で挫折and離脱
- 【リベンジ】興味の高いPythonで自動化ツール作り
- 物語文章生成AIを開発(ディープラーニング)
プログラミングに触れてみる
プログラミングの知識がほとんどなかった私は最初にHTMLとCSSの学習からスタートしました。Progateというサイトが初心者向けの基礎から学べるという事でやっていきました。細かい丁寧な説明のおかげて、プログラミングの雰囲気を掴むことができました。
厳密にはマークアップ言語といわれプログラミングとは違うと言われることもあります。ただ知識ゼロからの場合、プログラミングの感覚を掴む意味では取り掛かりやすいのでオススメです!
マークアップ言語ではwebページのテキストやデザインを作ることができます。そのサイトでクリックすると次のスライドを表示させたり、メニューがでてくるようにするにはプログラミング言語が必要になります。
アニメーションや簡単なwebアプリケーション作り
プログラミング言語で動きや複雑なデータのやり取りを行う事ができます。サイト内でQ&Aをクリックで表示非表示の切り替えなど使った経験があるのではないでしょうか?この辺の知識もProgateで従って進めて行くだけでした。私はweb制作にはあまり興味が無かったので軽く流しながらやってました。それでも初めての知識が大量に入ってくるので頭がパンク気味でした。完璧に理解できるレベルにはなっていません。
webサービスなどに興味があったので、アプリ作りの基礎を学べるドットインストールというサービスを使いました。動画で解説しながら一緒に作っていけるので、スッと頭に入ってきました。名前占いやーーーなど無料で作れるアプリケーション開発をやっていきました。正直作れるようになるというより、真似してるから作れている感覚でした。理解は全然追いついてなかったです。
学習開始3ヶ月で挫折し戦線離脱
学習を進める中で、複雑なアプリ作りではコード数が急激に増えていきます。自分でサービス作るとしたら知識を完璧に理解した上で作っていく事を考えると「こんなの自分には無理だ」ってシンプルに絶望しました。そして勉強する事を完全に放棄してしまいました。。
自分の場合ドットインストールは無料でしか使っていないのですが、有料の講座で様々なアプリ作りを体系的に習得していけば挫折しなかったのかもしれません。
続けることが大事なんて書いている張本人が一度諦めてます。スミマセン
【リベンジ】興味の高いPythonで自動化ツール作り
離脱して4ヶ月くらい過ぎた頃、インターンで広告入稿やデータ収集などの業務(雑務)をこなしていました。1000件程の地名のデータをGoogleマップで検索し検索結果URLをスプレッドシートに貼り付ける。といった単純作業の繰り返しでした。
100件ほど手作業で終えた頃に、「同じ事の繰り返しだ。。」と気付いたのです。(遅いけど)
そこで私は面倒臭い作業を自動化できれば仕事が楽になるなと思いリサーチを開始しました。
まずselenium(セレニウム)というライブラリの情報を発見し神か!!と興奮したのを覚えています。
パソコンでの操作(カーソル移動やクリック)を自動化できるというのです。こいつがあれば完璧やと思いました。
最初は全部操作パターンを覚えさせてデータをスプシにまとめていこうと考え開発を進めました。
そう浮かれた矢先ですぐに壁にぶち当たります。
新規タブでログアウト状態なのでスプシデータに辿り着きません。
selenium ... WEBページの操作に向いているライブラリ。
その問題を解決するためにさらに調べ込みを進めると入力を指定できるライブラリを発見。
HTMLのクラスやidを指定してデータの読み書きができるのです。忘れかけていたHTMLなどの知識も少しは役に立ちました。
こいつを使うと検索場所を認識してからデータを入力することができる。(ログインも可能)
操作が正常に機能せずエラーを繰り返すので別のやり方を模索。
BeautifulSoup ... BeautifulSoup ... HTMLデータの解析ライブラリ。
トライアンドエラーを繰り返しながら、検索データを配列に入れてループで順番に検索していく基本的なシステムに変えてみると自動化ツールが完成しました。
このあたりは今は何言ってるのかわからなくて大丈夫です。先駆者のサイトや動画を参考にしながら作り上げています。
実際に動かしながら開発を進めると個人的にはとても楽しく、達成感も感じられました。のめり込んで開発を行い、10日間くらいで仕上げ切ることができました。
実際に自動化した作業の動画です。一切パソコンを操作せず検索からデータ収集までを行いCSVファイルにまとめて出力してくれます。
自動化ツール開発がボリューミーになってしまったので軽めに書きますね。w
物語文章生成AIを開発(ディープラーニング)
文章の特徴を学習するAI・機械学習を卒業研究のテーマとして取り組みました。
これも結局、卒業論文の文字数を沢山生み出してくれるだろうというズルい戦略からでしたw
この開発も進みの中で何度もトライアンドエラーを繰り返し星新一作品を学習した文章生成AIを作りました。
個人レベルのAIの精度は正直かなり低かったです。
ですが機械学習や人工知能の基礎理解をグッと高めることができました。
RNN・LSTM / Transformer / GANなどを少し理解できたって感じです。
まとめ|これからAIエンジニアに向けて独学するなら
どんな学習を行ったのかを見ると割と簡単そうに見えるかもしれません。
その感覚は決して間違いではないのです。素早く求めている情報に辿り着ければエラー解決も困らなくなるでしょう。
しかしそのエラーと向き合うフェーズで挫折してしまう、諦めてしまう初心者が非常に多いのです。
私自身も全てのステップでエラーや理解不足に悪戦苦闘しています。なんとか乗り越えた、という感じです。
目標に沿った正しい独学を実践することで就職には困らないレベルの技術を身につけることができます。