営業職の俺がエンジニアになる〜群馬Web化計画編〜

2017年に未経験からエンジニアに転職をした私が群馬でイノベーションを起こすまでの備忘録です。

未経験がエンジニアになるのにこれだけはやっておけ

ここ最近Twitterをやっていて、未経験でエンジニアを目指している人が増えてきているなぁと感じています。元々自分も同じ境遇だったこともあり、そういう方々が増えることについて嬉しさを感じることがあります。そして、そういった方々に是非夢を叶えてほしいと考えています。

自分は本格的に勉強を始めてから3ヶ月とちょっとの独学でエンジニアに転職をすることができたのですが、その中で未経験だからこそやっておいた方がよいことについてお伝えしていきたいと思います。

甘い考えは捨てる

いきなり少し辛辣な内容かもしれませんが、甘い考えは捨てる必要があります。「未経験でも採用してくれて、年収も出来る限り落としたくない」とか「出来る限り教育が充実している会社が良い」とか「受託はブラックっぽいイメージがあるから、自社サービスをやってみたい」などなど。

基本的には「未経験だから選ぶ権利はない」という気持ちでいた方が楽です。もちろん勉強している度合いにもよるし、実際にブラック企業に入ったら意味もなさそうだし、「選ぶ権利がない」という程求人が枯渇している訳でもないので、現実は選びたくなるもの。

なので、本当に「選ぶ権利がない」という話がしたいわけではなく、未経験でいきなり自分の理想に近づけるということはそんなに簡単ではないということが言いたかったわけです。

しかし、その状態から少しでも「選ぶ権利」を勝ち取っていく(転職の確率を上げる)ためには、この後に書くことを実践していった方が良いかなぁと思います。

とりあえずGitHub(Git)

エンジニアになるための第一歩は「分からずともコードを書くこと」だと思うのですが、そんな中でGitHub(Git)は必需品です。私も含めなのですが、何故か未経験からエンジニアを目指す人はGitHubを登録することに抵抗があるようで「もう少し勉強したら登録します」とか「今作っている物が形になったら使ってみます」とか「コードが綺麗に書けるようになってきたらやってみようと思います」という方が多いです。

私も全く同じ気持ちでいたので、なんとなく理由はわかりますが「使い方わからん」「何に役立つのかわからん」「自分のコードを公開するのが恥ずかしい」等、こんなところかなぁと。ただ、間違いなく言えるのはプログラミング言語を覚えるよりも先にGitの初歩的な使い方(最初はなんだか分からなくてもいいので)を覚えるのはお得です。

使い方がわからん問題

「使い方がわからん」という人はgit add .git commit -m "コメント"git pushだけでも覚えておけばOKだと思います。最初は分からなくても、使ってく中で気になったら調べればいいかなぁと思います。

まずはとにかく使ってみる、の姿勢は大事です。ちなみにコチラの書籍は、挿絵が多く、Gitの基礎にも触れており、かつ平文で分かりやすかったので、こういうのを読んで見るところから初めてみても良いかもしれません。

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

何に役立つのかわからん問題

「何に役立つのかわからん」という人もとりあえず触ってみたほうが早いです。人はメリットを感じる時か、やらたいとデメリットを被る時に行動すると言いますが、そんなことは四の五の言わず触ってください。笑

とは言っても実際に何に役立つかを知っておくことに越したことがないので私が思うメリットをお伝えすると、「エンジニアを目指している軌跡(証拠)になる」ということと「実際に現場で使うので予習になる」というこの2点が大きいです。Gitのそもそも用途のバージョン管理という概念もメリットではありますが、最初はあまりピンとこない可能性があるので、まずはこの2点をご理解頂けるだけで十分です。

エンジニアを目指している軌跡(証拠)になる

これは単純に面接などで、実際に「勉強しているんだぞ!」ということをアピールできるツールになるということです。Gitには自分の書いたコードや修正したコードが事細かに記録される機能があります。そのため「こういうコードを書きました」とか「これくらいの頻度で書いてます」とか「こんなに成長しました」ということが分かります。

GitHubがない状態だと「こんなに勉強しました!」と言っても立証するものがないので「本当か?」となってしまうところですが、GitHubがあれば「自分のアカウントのURLを見てください」で済みます。そして大抵のエンジニアの面接官は、GitHubを見てその人のレベル感や本気度を見極められます。

そしてそのコードをベースに話ができるので、未経験なのにエンジニアっぽい面接にすることができるようになり、めちゃくちゃ便利です。

実際に現場で使うので予習になる

これはもうそのままです。Web系で何かを開発している企業であれば少なくとも現場で使います(使ってなかったらヤバイかも)。使っているツールがGitHubではない可能性はありますが(大半はGitHubかBitBucketだと思います)大本のGitが使えれば差し障りはないです。

現場で使われているものを事前に習得しておけば入社後は楽になりますよね?っということで四の五の言わずに使いいましょう!笑

コードを公開するのが恥ずかし問題

分かります。あまりコードが書けない状態で誰かに見られるかもしれない恥ずかしさ。

大丈夫です。誰にも見られません。笑

自分から望んでコードレビューをお願いしない限り、あなたのアカウントを発見する手立てはほとんどないに等しいので、恥ずかしがらずに登録しましょう。(恥ずかしがってたのは私だけかな?笑)

とりあえずチュートリアル

プログラミングの勉強を始める際にインプットから入ることが多いんじゃないかなぁと思います。もちろん時間に余裕がある方であれば入門書を頭からお尻まで読み終えた後に、プログラミングを始めてもいいかとは思いますが、できることなら早くエンジニアになれることに越したことはないはず。

そんな時には何か作れるチュートリアル系の教材がオススメです。代表格はRailsチュートリアルチュートリアル系の教材の良いところは、インプットしながらアウトプットができるところです。入門書の難点はインプットからアウトプットまでの間が空いてしまうことです。せっかく読んだ内容をアウトプットする頃には、頭から抜けていることも多々あるかと。

そんな中で、その場で手を動かしながらインプットができるのがチュートリアル系教材の強みではあるので、最初は分からなくてもとにかくアウトプットの量を増やし、わからないところをあとで振り返る、というサイクルがなにげに効率が良いです。

先程のGitHubの話と組み合わせて、自分のアウトプットの軌跡を残していけば自動的に自分のポートフォリオが作られていきます。

Railsじゃないんだよなぁって方はUdemyというサービスを見てみると良いかもしれません。動画の解説付きのチュートリアル系の教材が多く登録されており、初回の購入は確か1,400円とかで購入が出来たはず(2回目以降は結構高かった気がするので初回のみおすすめします)なので、自分の学びたい言語に合わせた教材を選択することが可能かと思います。

いずれにしてもアウトプットをしながら、インプットをして何かを作ってみると言うのはエンジニアへの近道です。

とりあえずブログ

自分の場合、今の会社に入る時にこのブログが死ぬほど役に立ちました。選考の過程で面接官の方が読んでくれて、とても好印象に写ったようです。

ブログにはプログラミングに関することというよりは、未経験から勉強をしていく中で感じたことを中心に書いていました。そのあたりはどうしてもGitHub上から見えないものなので、どういうことを感じ、どういう工夫をしたのか、というエモーショナルな内容を補足的な感じで表現するにはブログはうってつけのツールだと思います。

プログラミングの勉強をしながらブログを書くっていうのはそれなりに大変ではあります。ただ、大変なことをやっている分、いざ転職活動をすることになった時には見返りはあるので、無理なく月1回〜2回くらいの振り返りをするつもりでスタートするのが良いかもしれません。

必ずしも書かなきゃいけないということではないですが、周りの未経験でエンジニアを目指している人との差をつけたければ、こういった工夫は大事かなぁと。

とりあえずこんな感じ

ここまでの内容をまとめると「とりあえずGitHubに登録して、とりあえず何か作ってみて、とりあえず最低月1で振り返る」という感じです。この内容を3ヶ月程度続けていれば少しずつ実績がを積むことができるはずです。

この内容を続けて初めて「未経験からまともな企業に就職をする」スタートラインに立てると思っても良いかもしれません。そして、これをベースラインとして自分なりの創意工夫ができるか出来ないかが、命運を分けると思っても良いかもしれません。

それくらい上には上がいると思って、万全の体制で勉強をしても損はないかなぁと思いますので、是非学習の参考にして頂ければと思います。

転職活動を始めたばかりのエージェントの選び方はコチラの記事でまとめていますので合わせてどうぞ。

toyokappa.hatenablog.com

あけましておめでとうございました

あけましておめでとうございます。

2018年に入って1発目の記事です。はい、すいません。2018年早々ブログをサボってしまいました。走り出し最悪ですね。最早タイトルの通り「あけましておめでとうございました」といった感じです。(何を言っているかよく分かりませんが)

もちろん、エンジニアとしての活動をサボっていた訳ではなく、むしろそちらの方に集中をしすぎてブログを書くのが億劫になっていたというのが本音です。おかげさまでTabimemoの開発は好調で、早ければ今月中にはα版をリリースできそうな進捗です。

ブログを書いていなかった間の開発の内容については別の機会にお話をするとして、今回は2018年をどういう年にしたいか、について決意表明とともに書いていきたいと思います。

続きを読む

画像の複数アップロードに奮闘した話

Tabimemoの開発を始めて以来、幾つか実装をしたい機能があったのですが、その中でも特に画像の複数アップロードは実装をしたいと思っていました。しかしながら、どうやっても上手く行かず作ってみてはやり直してを繰り返し前に進めずにいました。試行錯誤を重ねて先日ようやく実装できたのですが、その時の喜びは大きく、また、学びや成長も感じられた案件だったので振り返ってみたいと思います。

続きを読む

先週の開発ハイライト_20171210

今週は割りとTabimemoの開発に時間を割くことができたので、充実した1週間だったかなぁと感じています。今週の開発ハイライトとしては大きく2つ。

  • has_oneに納得をした話
  • I18nの運用方針は事前に決めるべきだった話

こちらについてお話をしていきたいと思います。

続きを読む

群馬イノベーションアワードが想像以上に良すぎた

12月2日(土)に群馬イノベーションアワードに行ってきました。今日はそちらに行ってきての感想を書いていきたいと思います。Tabimemoの開発状況については地道にゆっくり進んでいますが、先週からの進捗としてはdeviseを使った認証認可の実装のみで、Qiitaなどに情報はたくさん乗っているので割愛とさせていただきます。

deviseの実装について気になる方はコチラが良記事だったので念のため転載させていただきます。

qiita.com

続きを読む

JavaScriptで画像プレビュー機能を実装してみた

ここ最近、エンジニアとしてスキルを伸ばす方法を色々と考えていました。自分で考えていても答えは堂々巡りになるばかりだったので、思い切って自社のエンジニアランチで「どうやったらエンジニアとしてのスキルが伸びるのか?」という質問をしてみることに。すると、色々な情報や方法を皆さんから提示頂くことができ、その中で幾つか共通していたのが「自分の作りたいものを作る」というものでした。

そういえばこのブログの前回の記事でも、同様に「自分のサービスを作る」ということを記載していることを思い出し、改めてこの勉強方針に自信を持ちました。ということで、今回から「自分のサービスを作る過程で学んだこと」を週1回程度のペースで振り返る、ということを実践していきたいと思います。

続きを読む

Javascriptの習得は程遠い話

ここのところ寒さがぐっと強くなり冬の訪れを強く感じるようになりました。私の仕事部屋は暖房器具がないため、室内なのにコートにマフラーで手足を震わせながら仕事をしています。これ以上寒くなったらどうなってしまうのでしょうか笑

さて、2週間以上前に掲げたJavaScriptの技術書読破の目標をようやく達成できたので、その振り返りと次回目標についてのお話をしていきたいと思います。

続きを読む