見出し画像

【エンジニア採用担当者がプログラミングを2ヶ月間勉強した結果】

最近、プログラミングに興味がある方、これからプログラミングを始めてみたいと思っている方結構多いと思います。

筆者、ある事がきっかけで2ヶ月集中でプログラミングを勉強してみたので、この2ヶ月を通して「実際何ができるようになったのか?何が分かったのか?これから始めてみたい人へのアドバイスは?」といった内容で記事を書いてみました。

興味がある方の参考に少しでもなればなと思います!

勉強を始めるきっかけ

会社を設立した今年の5月、ある現役エンジニアの方が「2ヶ月間程プログラミング学びたい人」を募集していました。

筆者、開発については前々から興味があり、AWSやITパスポートの資格は取得していましたが、実際に手を動かして開発したことはなかったため、これは良い機会だと思いすぐに連絡を取ってみることにしました。

(筆者は5月の会社設立→8月の事業スタートまでちょうど2〜3ヶ月程あったため、今思えば本当に有難いタイミングでした・・!)

下記ブログにその時の経緯が書いてあります。

「お久しぶりです〜」からZoomでプログラミング学習へのモチベーションをお話しし、生徒として無事選んで頂きました。

そんなこんなで、筆者のプログラミング学習の2ヶ月が始まりました。


勉強前の状態

プログラミングの勉強前の筆者はこんな感じでした。

・プログラミング経験はゼロ(ブログ書いてた時にHTMLとCSSさわったことがあるくらい)
・AWSクラウドプラクティショナーとITパスポートの資格保持
・どの言語やツールがどんな用途で使われるか?等の知識はあり

知識はあるけど実際に手を動かしたことがないという、頭でっかち状態(笑)


2ヶ月のプログラミング勉強方法

記念すべき初日、1日目はZoomで画面共有をしながら「Githubの使い方」を手取り足取り教えてもらいましたが、2日目以降は「下記のようにSlackで毎週課題をもらい→自分なりにやり方を模索してみて→分からないところがあったらメッセージで質問して→また自分でやってみて」の繰り返し。

スクリーンショット 0032-08-02 19.43.36

あとは週一オンラインでミーティングを行いそこで進捗報告。という流れで、ひたすら試行錯誤を繰り返すという感じでした。

プログラミングを全くやったことのない状態からのスタートだったので、最初の数週間は分からないこと1つに数時間悩んだりして、めちゃめちゃツラかったですが、長期的にみたらこの自主学習スタイルがベストだなと思いました・・!(理由はまた後ほど。)


2ヶ月で何ができるようになったか?

あっという間の2ヶ月でしたが、主には下記の4つができるようになりました。

①クローラーの作成(Go、goquery、MySQL)
②HTTPサーバーの構築(Go、MySQL、AWS)
③Webブラウザの自動化プログラム(Go、Python、AWS、Docker)
④ホームページ公開(React、Firebase)

もっと詳細に挙げていくと下記。

・Githubにリポジトリ作成
・ローカルのプログラムをリモート(Github)にPush
・ディレクトリとファイルの作成
・PASSの設定
・Goでクローラーの作成
 ・Goでhttpリクエスト送信(GETリクエスト、POSTリクエスト )
 ・goqueryでスクレイピング
・MySQLでデータベースの作成
 ・テーブルの作成
・クローラーで取得したデータをデータベースに追加する
 ・CSVファイルの作成
 ・CSVファイルのデータをMySQLにインポート
・Goでテストコードを作成
・go modulesでサードパーティ製のライブラリを管理
・RestfulAPIの構築
・HTTPサーバーの構築
・API経由でデータのCREATE/READ/UPDATE/DELETEを行う
・AWS EC2を立てる
・EC2にSSH接続
・EC2にプログラムの送信
・AgoutiでWebブラウザの自動化プログラムの作成
・プルリクエストのマージ
・Amazon RDS for MySQLを立てる
・EC2からMySQLに接続
・GoとPythonで基本的なプログラムを書く
・PythonでWebブラウザの自動化プログラムの作成
・Dockerファイルの作成
・DockerイメージをDocker hubに公開
・EC2にDockerをインストール
・EC2で自動化ファイルの実行
・cronの設定
・Reactでホームページを作成(脱、Wix課金。)
・Firebaseでホームページを公開(脱、レンタルサーバー課金。)
・ホームページのファビコン、タイトル、OGPタグの設定

(過去2ヶ月分のブログを見返してまとめてみると、結構色々なことができるようになったなぁと・・!)


実際にプログラミングやってみて分かったこと

次は、筆者のようなこれまでプログラミングをやってみたことがない人が、実際にやってみて分かったことを挙げていこうと思います!

・ググれば全てやり方は出てくる。

・ただ、ググり方が悪いと解決できないことがあるので、ググり方は大事。

・「仮説を立てて→検証」の繰り返しなので、論理的思考力が上がる。

・チュートリアルをやったり基本的な文法をひとつひとつ学んでいくよりも、何か作りたいものを作る中で自分ができることを増やしていく方が成長が早い。

・プログラミングの文法が何も分からない状態でいきなり開発を始めても、コピペやエラー対処を繰り返していれば段々と文法は分かってくる。

・「与えられた課題をこなしながらプログラミングを勉強する」よりも、「自分の作りたいものを完成させるためにプログラミングを使う」方がモチベーションを維持しやすく、結果上達スピードも速い。(自分の場合、HTTPサーバのプログラムを書いている時より、個人的に気になっていた自動化のプログラムやHPを作成してる時の方がモチベーションが高かったです。)

・英語ができた方が、その分アクセスできる解説や説明も多いので有利。

・1つの言語で文法をある程度理解した後、別の言語を勉強することで、より文法の理解ができた。(自分の場合、Go→Python。)

・はじめの1ヶ月〜1ヶ月半は、お金を払ってでもリアルタイムで分からないところを質問できる人をつくるべき(筆者、もし身近に質問ができる人がいなかったら恐らく途中で挫折してました。)

・はじめの1ヶ月はツラいけど、やれることが増えてくると楽しくなってくる。

・「分からないことが分からない状態」になるのは普通。そんな時は「自分の知識の域を超えてることをしてるんだな」とポジティブに考えるべき。(プログラミングを始めてから人生初、ふて寝をしました笑)

・つまずいているポイントが分からない時は、簡単なサンプルを別に作ってみると、つまずいてる箇所を発見しやすい。

・毎日ブログを書いてSNSで発信することで、途中で辞めれない状況を作るのは良い作戦(笑)

結構たくさん出てきました(笑)これを元に、これからプログラミングを始めてみたい人へ自分なりのアドバイスを書いて終わりにしようと思います!


これからプログラミングを始めてみたい方へ

①はじめの1ヶ月〜1ヶ月半は、誰かにメンターをお願いするべき

プログラミングを始めたての頃は、どうやってエラーを解決すれば良いのか?そもそもどこが原因でつまずいているのか?といったことが分からないため、そういった時に「リアルタイムで分からないところを質問できる人」をつくるべきだと思います。何か有料のオンラインコースにお金を払うよりも、メンター的な存在になってくれる人にお金を払うべきだと思います。

②ツラくても1ヶ月半は我慢して続けてみるべき

この期間は個人差あると思いますが、筆者ははじめの1ヶ月半は「分からない問題に対してどうやってアプローチするかに悩む時間」が多かったため、結構ツラかったです。

ただ、1ヶ月半も経ってくると「あ、これはこのパターンか。」と問題に対処できるようになったり、単純にできることが増えるのでこれまでよりもサクサク進むので、「自分で何か物を作ってる感」がでてきます(笑)そうなるとめちゃめちゃ楽しくなるので、それまで何とか頑張ってください!!

③「自分が作ってみたいものを完成させる」ということをモチベーションに、プログラミングを勉強するべき

基礎を固めてから実践に、というパターンよりも、何か自分が作りたいものがあって、それを完成させるためにプログラミングを学ぶという方法の方が、モチベーション高くプログラミングを学習できますし、上達も早いと思います。

モチベーションは人それぞれなので、本当に何でも良いと思います。「普段いつも自分がしている単純作業を自動化するプログラムを書いてみたいなぁ」だったり「自分のホームページを作ってみたいなぁ」だったり。

YouTubeで色んなアプリのアイデアを出している動画があったりするので、是非見てみてください!


さいごに

いかがでしたでしょうか?プログラミングに興味がある方、これからプログラミングを始めてみたいと思っている方の参考になればなと思います!


さいごのさいごに

DirectPicks株式会社では、エンジニアポジションに特化した採用支援を行なっております。(人材紹介事業/ヘッドハンティング事業/人事コンサルティング事業)

エンジニア人材の採用にお困りの人事担当者さま、スタートアップやFintech業界に興味のあるエンジニアの方、お気軽にご相談ください!お待ちしております!

Email: hiroki_maekawa@directpicks.co.jp
Twitter: @hiroki_maekawa
Facebook: https://www.facebook.com/hiroki.maekwa
LinkedIn: https://www.linkedin.com/in/hiroki-maekawa/


それではまた!!

この記事が気に入ったらサポートをしてみませんか?