ta eis shoheiton

新卒入社後9ヶ月で適応障害・退職した男の、回復・社会復帰・プログラミング学習と日常。

独学者が実務未経験からエンジニアになるためにすべきこと

こんにちは、しょうへいです。

このたび、実務未経験者から正社員のPythonエンジニアとして、スタートアップ企業でご採用いただけることになりました。そこで、これまでの過程をまとめたいと思います。

エンジニアを目指し始めてから、今までいろんなエンジニアのご先輩方に助けてもらいました。私もこの記事を通じて、ご先輩方のように後輩さん(?)のお力になれると嬉しいです。

 

目次

  • この記事はこんな人向け
  • この記事の注意点
  • 簡単な自己紹介
  • 勉強を始めてから内定まで
  • 自作プロダクトを1つ作る
  • 学習の流れ
  • 未経験でプログラミングを学習している人に伝えたいこと
  • 最後に

 

この記事はこんな人向け

  • 自分が本当にエンジニアに向いているのか不安だ。
  • どの言語を学ぶべきなのか迷っている。
  • お金はあまりかけられないが、時間はかけられる。=スクールではなく独学派
  • 設計運用保守よりもまずはコーディングがしたい。
  • どちらかというとベンチャー系・自社開発志望

 

この記事の注意点

  • あくまでも自分の体験ベースの記事。
  • 最短ルートの転職ではない。最低でも1ヶ月は短縮できたと思う。
  • 「とりあえずどこでもいいから雇ってくれる会社どこ!」みたいな探し方はしていない。

 

簡単な自己紹介

  • 法学部を2017年3月に卒業した京都人。
  • 大手ソフトウェア企業にエンジニア志望で新卒入社するが、営業になる。
  • 2017年12月で体調不良(適応障害)になり退職。
  • プログラミング経験は独学のみ。連続ではないが人生総計したら8ヶ月くらい。
  • 主に使えるのはPythonとHTML/JS/jQuery。基礎しかできないけど。

という感じです。

さらに詳しく知りたいと思ってくれた方はこちら→(# 準備中でござる)

勉強を始めてから内定まで

ざっくり述べます。

  • 2018年5月から8月頭まで、Python(Django)を学習して初の自作プロダクトを作った。
  • 他にはUnityやSwiftにも手を出していたし、そもそも前職の研修(という名の自習&配属試験)でWebのフロントの基礎は学んでいた。
  • 8月末から本格的に転職活動を始めて、2週間で第1志望の会社から内定をいただいた。

という感じです。



そして肝心の採用されるための要件ですが、

未経験からエンジニアに採用されるための要件をググると、他の記事では、

  • エンジニアを志望する動機
  • 将来何をしたいのか

とか書いてあります。私も面接を受けた経験からしてその通りだと思います。

ただ、見当たらないものがあるのでもうそれだけ書いてしまいます。
ただ1つです。

自作プロダクトを1つ作る

多分これが最速だと思います。
勉強会でいろんなエンジニアさんに相談しましたけど、全員口を揃えておっしゃってました。

全然立派じゃなくていい。作ろうとした理由は聞かれるけど。

言語もなんでもいい。選んだ理由は聞かれるけど。(即戦力を求めている企業だとそこの開発言語に合わせるべきですが、そういう企業だと実務経験がない時点で弾かれそうな気はします。)

実務未経験者を選考する担当者は、”自分で調べて、対処して、完成させられるかどうか”、つまり”自走できるかどうか”を見ています。教えてもらわないと何もできない”お荷物”を採用したくないからです。

その点独学派は、スクール出身者よりも強みを持てるのではないでしょうか。教育体制の充実していない企業に対しては特に。なので「スクールに通うしかないのかな…」という不安は捨ててもいいと思います。

学習の流れ

  • 2018年5月:Pythonの文法をProgateで学ぶ。1週だけで良いので一気に終え、速やかに次に移る。
  • 6月:Django(PythonのWebフレームワーク)の初心者向けチュートリアルサイトに沿って、理解しながら実装した。
  • 6月:Djangoの公式チュートリアルサイトに沿って、理解しながら実装した。
  • 7月:Qiitaに誰かが掲載してくれたチュートリアル記事に沿って、理解しながら実装した。
  • 7月〜8月頭:今まで身につけた技術を切りはりして自作プロダクトを0から作る。

解説:
「Progate」
初心者が脱落しないことが意識された、簡単に・分かりやすく基礎文法を学べるWebサービスです。月額980円で全部のコースを学ぶことができるにも関わらず、クオリティは半端なく良いです。

「理解しながら実装した」
プログラミング初心者の中で「写経」という言葉が出回っていますが、コードの意味も分からずに書き写すのではなく、極力理解した方がいいです。後で自作プロダクトを作る時に手が動き出さないことになるので。
しかし、逆に遅延しすぎは効率が悪いです。後から思い出して「そういうことだったのか」と理解できることも多いですし、15分くらい調べて考えても分からなかったら、その箇所をメモして先に進みましょう。

「0から作る」
感覚値ですが、7割くらい自分のコードになっていればチュートリアル記事で作ったプロダクトを改変していって、自作プロダクトにしていくのも良いかとは思います。ただ、残りの3割については仕組みをきちんと理解しておく必要があります。

 

ただ、エンジニアにまつわる経験がこれだけかというとそれは嘘で、実際には、

  • 2015年8月:某社のインターン20日間プログラミングを経験する。
  • 2016年10月:Javaの入門書一冊を、理解しながら写経完了する。
  • 2017年5月〜7月(某社に新卒入社):簡単な業務用Webアプリを研修で作る。

こんな感じの経験があります。

個人的にはJavaで”オブジェクト指向”の概念をちゃんと理解できたことが後の学習・理解の速さに繋がったと感じています。オブジェクト指向についてはいろんな記事が出ていますし、読んでしっかり理解することをお勧めします。

私の生の学習過程をざっと見たい人は、こちら↓#100DaysOfCodeのタグをつけた私のツイート
Twitter上で #100DaysOfCode というハッシュタグの取り組みに参加したもので、毎日の学習成果がざっくり記録してあります。

私が独学で心がけていたことに興味を持っていただけた方はこちら↓
エンジニアを目指して独学で心がけたこと

未経験でプログラミングを学習している人に伝えたいこと

プログラミングの挫折率が高いってよく聞きますけど、挫折原因も色々だと思います。中でも、自分の才能とか、向き不向きを疑って挫折しそうな人に伝えたいことがあります。



独学の過程で、理路整然としたQiitaの記事や実際のエンジニアなどを見て、

「やっぱりエンジニアの人って賢いし、スルスル進んでいける人たちがなれるものなんだ…。私は全然理解できないし間違うし進めない。向いてないんだ。」

ってなってませんか?


そんな風に考えていた時期が私にもありました。

でもそれは間違ってます。


みんな泥沼でぐちゃぐちゃもがいてます。多分。

慣れ始めるとスルスルできるようになりますが、その次元にたどり着くまでの間、たくさんエラーと向き合ってます。その体験が辛いから、みんな記事書いて公開して、助け合いをしているんじゃないかと、個人的には感じました。

”たくさんの理路整然”とした記事は、”壮絶なぐちゃぐちゃ”の裏返しなんです。多分。

というかそもそも何であれ、新しいことを始めるときは誰だってぐちゃぐちゃするはずだし。


だからエンジニアの向き不向きの判断を、スルスル学習できるかどうかで決めないで欲しい。


むしろ例えば、試行錯誤を楽しめるかどうか、などの要素で確かめることを個人的にはオススメします。エンジニアは休みの日も学習するのが当然のお仕事だそうですし、楽しめないと就職してからキツイと思います。

それ以外にも要素はあると思うので、ぜひ勉強会や懇親会の場で、エンジニアに具体的に相談してみましょう。

少なくとも私は部活の後輩感覚で力になってあげたい気持ちでいますし、エンジニアは優しい人多いと感じましたから、礼儀と準備を携えて、恐れずに質問してみましょう。

最後に

長々とお付き合いいただき、ありがとうございます。この記事が後輩さん(?)のお力になれるととても嬉しいです。

転職活動で使ったツールについては長くなってしまったので別記事にしました。
→別記事:未経験エンジニアが使った転職ツール

記事の書き方・コンテンツの内容への感想、加筆修正依頼とかありましたらコメントにてお願いします。お待ちしております。