WebエンジニアのLoL日記

LoLをプレイしたりLJLの試合を見たりするのが好きなエンジニア。LoLのイベントやパッチノートなど気になった点を記事にしたり、LJLについの記事をかいたりしています。某社でWeb系のエンジニアとして働いているので、技術系の記事もたまに書きます。コンタクトを取りたい場合はtwitterまで。

プログラミングを勉強したいんだけど、どうしたらいいのかわからん!という人に向けた記事

f:id:yoshiki_utakata:20181121093826j:plain

はじめに

プログラミング勉強したいんだけど何から始めたら良いかわからん、ということがあるんじゃないかと思っています。

私は小学校くらいからプログラミングを学んできて、今はプログラミングを職業にしています。その経験から、プログラミングを学ぶためには何をすれば良いのかをまとめます。

結論というかこの記事の内容というか

プログラミングを勉強して何をしたいのか(=なぜプログラミングを勉強したいのか)によります。場合によっては「そもそもプログラミングを学ぶのに向いていないからやめたほうがいい」という場合もあります。

なぜプログラミングを勉強したいのか

重要なのは「なぜプログラミングを勉強したいのか」を考えることです。プログラミングを勉強したい理由やその人の状況により、どうしたら良いかは変わります。

だいたい以下のケースに分類されるかと思います。

  • 作りたいものがある
  • とりあえず手に職をつけたい
  • すでに職にはついてるけど仕事の範囲を増やしたい
  • プログラマは稼げると聞いたのでプログラマになりたい

これ以外ももしかしたらあるかもしれません。あったらコメントか質問箱でも送ってみてください。

うたかた/ヨシキの質問箱です | Peing -質問箱-

作りたいものがある

このケースは簡単で、作りたいもので何を学べばいいかだいたい決まってきます。作りたい物によって学ぶべきプログラミング言語が決まってくるので、あとはネットで調べるなり本を買うなりして学べばいいわけです。「具体的にどのプログラミング言語学べばいいんだ!」とか「どうやって学べばいいんだ!」という話は別記事にします。*1

作りたいものが決まっている場合、目標はその完成であって自分の成長ではないのでその点も簡単です。つまづく点があるかと思いますが、自分がやりたいことが明確なので質問サイトで質問することも容易です。一つ作ってみてもっと深みにはまりたいと思えばもっと勉強すればいいでしょう。一つ作り終わった頃にはそれなりに知識もついているでしょうから、次何をすればいいかもわかるはずです。

一つ注意してほしいのは、最初から難しいアプリや壮大なアプリを作ろうとすると途中で飽きてしまうという点です。「テトリス作りたい」くらいだったら頑張れると思うんですが、「FF14を作りたい」となるとまず無理でしょう。

とりあえず手に職つけたい

「とりあえず手に職つけたい」「そんなに金持ちにならなくていいから食っていけるくらいは稼ぎたい」。というのであればとりあえず勉強してみるのはありでしょう。ただ、何から手を付けていいかは難しいです。

もしあなたが高校生や大学生だった場合。プログラミングの専門学校に進学してみたり、大学の情報科に行ってみたり、すでに大学に所属しているならプログラミングの授業に出席してみたり、情報科に転学してみたりしたらいいでしょう。

ただし、情報科に入ったり専門学校に行くとプログラマーになることはほぼ確定してしまいます。それが嫌ならとりあえず JavaScript, PHP, Java, Rubyあたりの簡単なプログラミング言語を1個学んでみましょう。プログラミングは言語が違っても仕組みはだいたい同じなので、どれか1つ習得すると他もすぐ習得できます。

プログラミング言語 年収」とかでググって年収がいい言語を選択して勉強するのはやめましょう。年収が高い言語は利用者が少ない言語かつ難しい言語なので中途半端に勉強しても役に立ちません。

また、プログラミングはクリエイター職な部分があります。デザイナーや建築家と同じといってもいいでしょう。資格とかも無いので自分の技術と実績だけで戦っていく必要がありますので、そこは注意が必要です。一回勉強したら終わりではなく常に新しい技術を勉強し続ける必要があります。また、向き不向きがあり、いくら頑張ってもプログラミングができないという人はいるので注意したほうがいいです。

もしあなたがもういい年齢なら。今からプログラミングを学んで手に職つけるのは厳しいでしょう。ニートやってるよりはマシかもしれませんが、それで食えるようになるまではそれなりに時間がかかります。早くても1年、長いと3年はかかるでしょう。1ヶ月勉強したらなれるのはそれなりに頭のいい人です。

仕事の範囲を広げたい、仕事の関係上プログラミング知っておきたい

この場合、IT企業の企画職や営業職の場合が多いんじゃないかと思っています。会社にエンジニアはいますか?いるならとりあえずその人に「プログラミング勉強したいんだけど...」と聞くのが早いです。快く教えてくれるでしょう。*2

いない場合はこれまた困りますが、とりあえずPHP, JavaScript, Java, Ruby, Pytohn あたりからなにか一つ勉強してみるといいかもしれません。プログラミング言語は構造自体はだいたい同じなので、1つプログラミング言語を学べば、他のプログラミング言語もすぐ習得できます。

プロが教えてくれるプログラミングセミナーとかに行くのはおすすめ できません(会社の金で行けるならいいのですが)。そこそこのお金がかかるのでリターンには見合わないケースが多いと思います。

プログラマーって稼げるでしょという邪な考えをお持ちの方

プログラマーで年収1000万とかよく聞きますよね。確かにプログラマーで稼ぐ人はいますが、それは本当にプログラミングが好きな人です。小学生の頃からプログラミングをしている、仕事以外でも朝起きてから夜寝るまでプログラミングのことばかり考えている。そういう人はそれくらい稼ぐかもしれません。1年プログラミング勉強したくらいでは無理です。*3

プログラミングが好きだからやってたら結果的に稼いでいた、というのはわかりますが、稼げるからプログラミングをする、のは相当きついです。モチベーションが続かない人がほとんどでしょう。

また、次々と新しい技術が出てくるので、常に勉強していないとすぐ年収は落ちます。一時期ビットコインとかでブロックチェーンが話題になりました。*4 世の中のプログラマはみんなブロックチェーンを勉強したでしょう。しかし今やもうブロックチェーンの流行りは終わりました。このように新しいことを勉強しても1,2年で役に立たなくなります。そしたら次の新しいことを勉強しなければいけません。

プログラマはクリエイター職といっても過言ではありません。要するにデザイナーとか漫画家とか画家とかと同じです。稼ぐ漫画家は一握りであるように稼ぐプログラマは一握りなのです。というか、誰でも簡単にプログラマになれるならそんな給料いいはずがないですよね。普通にはなれないようなプログラマだからこそ給料が高いんです。プログラマが給料高いってのは幻想です。

まとめ

なんか話がまとまらない方向に行ってしまいましたが、まとめると。

  • 何か作りたいものがあるからプログラミングを勉強したい!という場合は、作りたいものの種類によって何を勉強したらいいかだいたい決まります。
  • 手に職つけたい!というのであれば技術科や専門学校に行くか、とりあえずなにか一つプログラミング言語(簡単なやつ)を学ぶといい
  • プログラマになるのは思っているほど簡単ではない。特にプログラマーとして会社に雇われ働いていく場合は自分の技術力と実績のみが武器。

独学プログラマー Python言語の基本から仕事のやり方まで

独学プログラマー Python言語の基本から仕事のやり方まで

ノンプログラマのためのJavaScriptはじめの一歩 (WEB+DB PRESS plus)

ノンプログラマのためのJavaScriptはじめの一歩 (WEB+DB PRESS plus)

*1:ここで書くと長くなりすぎてしまうので。需要があれば書きます。

*2:本当はエンジニアなんてやりたくないんだけどしかたなくやってる、とかでない限りは、(主観ですが)エンジニアは教えたがりな人多いと思うので快く教えてもらえます。

*3:手に職つける(とりあえず食える)くらいまでのレベルまでは行くと思いますが

*4:ブロックチェーン自体は新しい技術ではないのですが