生活を良くします - 怠惰なプログラミング

生活を良くします-怠惰なプログラミング

外資系でエンジニアをやっています。便利なサービスや商品、プログラミングで作ったものなどを紹介していきます

プログラミング初心者が一ヶ月でJavaを使えるようになるまでにやったこと 〜 勉強方法と学べるサイト・サービスについて

プログラミング初心者がコードを書けるようになるまで

要約すると基礎知識を覚えた後は実践してみてダメなところをググるか・質問しようという感じです。以下、詳細。

プログラミングのきっかけ

昔は一応理系だったけどパソコンはほとんど使わない学生でしたが、今はエンジニアとして働いているのを自分でも不思議に思う今日この頃。

最近になって特にプログラミングの勉強の仕方について聞かれることが多くなったので自分の中での整理とやったことの確認を兼ねて書き留めておきます。同じ言葉を繰り返すのは大変なので今度からURLを送りつけようと考えています。

そもそも勉強しようと思ったきっかけはバイトの時給が良かったという単純な理由です。居酒屋バイト(かなりきつい)の時給が1000円くらいなのに対してプログラミング系の求人は最低でも1500円くらいありました。そこで学ぶことを決心しました。

未経験が応募できるところはほとんどなく応募しても落ち続けたので自分で勉強することにしました。なんとなくJavaを選択しました。

Javaが出来るようになるまでにやったこと

  • ドットインストールで簡単な使い方の学習
  • 技術書を軽めに、でも全部通して読む
  • そのまま仕事開始
  • わからないところをひたすら検索

以上を繰り返せば出来る様になります。近道は今のところ見つけていません。

まずドットインストールは初心者にとって必須ツールと言っても過言ではないくらい初期の頃は力を発揮します。基本的に無料ですが質は高く、説明がわかりやすいのでイメージがつかめます。

次にJavaの入門書を購入して全部に一応目を通します。理解できればそれでいいですが難しいと思うので、だいたいどういう機能があるのかを覚えておくだけに留めておきます。全部に目を通しておくのがポイントで、用語に対して体を慣れさせます。


Javaの入門用の本です。オブジェクト指向のことも書かれています。


最後にプログラミングで何か作ってみます。自分の場合は大学で、何かサービスを作れという丸投げのプログラミングの講義に参加してサービスもどきを作りました。


そういうのがない人や恥ずかしい人は以下のサイトの内容に挑戦してみると面白いかもしれません。内容は中級者向けですが、適度に難しい方が成長速度は早くなる気がします。

内容はNetflixやAmazonも採用しているレコメンドシステムを自作してみようというやつです。

www.coursera.org

あえて自分を追い込むことで強くなっていきましょう。


初心者のプログラミングの勉強は知識を増やすよりも、困った時に検索する方が断然に覚えが良くなります。プログラミングで困ったらGoogleで検索しましょう、たいてい答えがあります。しばらくすると検索のコツがわかってきます。

以上の工程が終われば実際に学生ならアルバイト・インターンに応募してみましょう。社会人だと未経験かつ副業OKのところはあまりないですが、wantedlyあたりなら探せば出てきそうです。社会人なら教養の範囲に抑えておくのでも営業などで仕事の役に立つでしょう。

バイト時代に作ったサービスが凄まじく売れたのですが(幸運が重なりまくった)、追加の報酬は特にもらえませんでした。

ここで実務を一年くらい積んでおけば就活も有利になります。エンジニアをやっててわかったのが割とベンチャー企業などはたくさんあるのでスキルがあれば転職できるということです。今のところ転職には困りにくいという気がしています。

プログラミングのメリット

フリーランス・起業・デザインと相性が良い

営業だと商品やサービスを売るのが仕事ですが、エンジニアはどちらかといえば作る方です。

つまり面倒臭いことを簡略化する仕組み・自分が必要なサービス・売れそうだと思っている商品をプログラミングである程度は作れてしまいます。

起業しても最初は人手が足りないはずなので自分で作れる能力があれば役に立ちます。

Arduinoとかも安く手に入るようになりましたし。

またエンジニアは割と人で足りないことが多いのでフリーのエンジニアがよく活躍しています。会社に縛られずカフェとかで仕事をしている知り合いも結構います。

ここで注意しておきたいのがフリーのエンジニアが悠々自適というわけではなく、仕事がもらえるのは優秀な人かツテのある人に限られてしまうのが現状です。それ以外では難しいので最初はアルバイト・インターンをしながら徐々にネットワークを作っていったほうがいいと思います。

これからプログラミングをやるなら

自分の力で勉強する

最初はJavaを選びましたが、自分が初心者時代をやり直すならPythonを最初に選ぶと思います。

オブジェクト指向で機能が驚くほど充実していて書きやすい言語だと思います。理数系だとPythonかC++ですがNumpyがあるのでPythonの方がやや優勢らしいです。

Pythonを勉強するとこんなことができるようになるというのを書きました。

www.what-a-day.net

無料のプログラミングオンラインスクール

なんで無料なのかわからないほど優良なオンラインでプログラミングを学べるサイトをまとめました。自分が初心者の時に知りたかった情報です。

入門用から上級者用まで揃っています。

ちなみに無料の理由はAmazonやGoogle、BMW、Stanford Uniなどが協賛しているからです。怪しいわけではないです。

www.what-a-day.net

質問できるサイトへの登録・トラブルシューティング

基本的にこういう奴は全部無料で使えます。たまに会員登録などがあるくらいです。

stackoverflowなどがトラブルシューティング用に使えます。プログラミングでミスをするとエラーが発生します。

そのままエラーをコピペして検索すると直し方などが出てくるのでそれを参考にしましょう。

初心者で一番辛いのが誰にも質問できないというところです。身近に質問できる人がいなければネットで質問しよう(またはググろう)というのがエンジニアの考えることで、プログラミング質問サイトなどがあります。

ちゃんと回答してくれる人も多そうですが、質問するよりも過去のQAを見ていると解決することが多いです。

スクールに通う

お金はかかるけど時間は節約できる

オンラインでの学習は苦手だったり短期間で集中して学びたい社会人向きです。

お金はかかりますが、お金を払って時間を節約するのも社会人の作法なのでそこは天秤に乗せて計算しましょう。

学生だったら大学のプログラミングの講義に潜るなり、オンラインでの勉強の方が良いかなという気がします。

まとめ

  • 一ヶ月でプログラミングができるようになるには勉強することが必要
  • 勉強するためのサービスはたくさんある
  • プログラミングはコスパが良い