その他 ソフトウェア プログラミング 入門

プログラマーになるための学力とかのお話

2020年9月3日

初めましての方は初めまして。サイト管理者のDICEです。
さてさて、世間ではプログラミング教育が必修化されるという話ですね。
(私の時も欲しかった教育だなー)
それは置いておいて、今IT業界を目指している人って口に出していないだけで結構いると思います。
中には「数学とか英語出来ないとプログラマーになれないんでしょ?」とか、「情報系の学校出てないと厳しいでしょ?」とか色々と考えてしまって結局プログラマーになることを諦めてしまう人も珍しくないでしょう。

結論から言いましょう。

そこまで頭良くなくてもなれます!

って言っても信じてもらえなさそうなのでそもそも私自身がどれほどの実力と言うか...何というか...スペック?なのかを話してからの方が基準にしやすそうですね。

私のスペック

まずは、何から話しましょうかね......。
高校からの学歴ですかね。まぁ、学歴と言っても何科の学校出たかくらいですけどね。

私の学歴

  1. 高校(普通科)卒業
  2. 専門学校(情報系)卒業
    以上!

こんな感じです。ちなみに高校ですが、所謂「不良」という存在が多い高校でした。(リアルに体育館裏でタバコ吸ってたりする輩もいましたね......。)
偏差値はお察しの通り低いですねー。
(2021年の偏差値は39だそうです。)

あ!だからと言って私も「不良だった」とかではありませんよ?たまたまその時「勉強したくないなー。でも、高校くらいは出ないとなー」で選んだ学校だったというだけです。
で、そんな高校でむかえた3年生。「さて、進路どうしよう」と悩んでたのですが、突然「あ、プログラマーになりたい」と思って情報系の専門学校に進学することを選びました。
なんで大学じゃないの?という問いに対しては、「4年も勉強したくない!あと、高い!」と答えますね。

さて、進路の話は置いておいて。
次は資格とかのお話もしておきましょう。

「なんだかんだで資格は結構持ってるんでしょ?」とか「実は頭良いんでしょ?」とか疑われないように私が持っている資格の一覧をお見せしましょう。

持っている資格

  1. CompTIA IT Fundamentals (専門学校時代)
  2. Microsoft Office Specialist Excel (専門学校時代)
  3. C言語プログラミング能力認定試験 2 級(専門学校時代)
  4. ITパスポート(専門学校時代)
  5. Java Silver (就職後)

書き漏れもあるかもしれませんがこれだけですね。
有名どころの「基本情報技術者試験」なんて3回も落ちていますからね。

この時点で私がそれほどスペックが高い人間ではないことが分かったと思います。
得意だった科目は国語・数学・化学・物理ですね。英語はが付くほど苦手です。
私は理系よりですが完全に理系というわけでもないです。
テストでは理系科目より文系科目の方が点数が高いこともあったりしましたので。

はい、この時点で皆さんが心配していそうな「大卒じゃないと......」という部分はクリアですね。
次に「英語ができないと......」の部分もクリアです。
全然話せないですし、書けないです。
次、「数学ができないと......」この部分については中学生の数学までで十分です。
数学Iまでできていれば尚問題ないです。
ただし、これはあくまでも一例にすぎません。
プログラマーとひとまとめに言っても種類はたくさんあります。

プログラマーの種類

  • 組み込み系
  • Web系
  • サーバー系
  • etc...

目指すプログラマーによっては数学は必須ですし、英語も必要になってくることもあるでしょう。

プログラマーに向く人・向かない人

もちろん向き不向きがあります。私が個人的に考えている向く人・向かない人について話していきます。

向く人

  1. 発想力がある
  2. 勉強を続けられる
  3. めんどくさがりな人
  4. 楽をするために苦労ができる人
    etc...

個人的にはこんな感じだと思っています。3と4は若干矛盾している気もしますが、気にしないでください。
1.については言わずもがなって感じですね。やっぱり発想力がないと続かないですね。
やっていることに躓くとそのまま引きずってしまってそのままダメになる感じです。

2.についてはIT業界というものは日々新しい技術が生まれる業界です。すべての技術を勉強する必要はありませんが、存在する技術は数えきれないほどです。プログラマーは言ってしまえばカンニングOKの職業という感じです。ただ、見たままを丸写しするのでは技術や知識にはなりません。「知らないものは片っ端から吸収してやる!」くらいの気持ちがある人は向くと思います。

3と4は矛盾しているようでしていません。「作業は面倒だけど楽をしたい」と考えて楽をするために技術や知識を付けるといった苦労を惜しまない人は向きます。
「後で楽をする為に今苦労できる人」って感じです。
2、3、4は結構つながりますね。

向かない人

  1. 同じことを続けられない
  2. 「俺が正しい!」という人
  3. 指摘されてキレる人
  4. 「だって」「でも」が多い人
    etc...

こんな感じですかね。

1.については、プログラマーって正直同じようなことを繰り返しやっていくことが多いです。
なので「できるようになったから次!」というのは良いのですが、「できるようになったから何?」という現場は結構多いです。なので「こいつ偉そうにしやがって...」と思っても「はいはい」と言ってサラッと作業を終わらせてって感じでできないと結局「思っていたのと違う」となって辞めていきます。

2~4については、指摘されても「いやー、それよりもこっちのほうが良いですよー?」と言うだけで結局やらない人や、「この処理おかしくない?」と上司に指摘されると「だってこうやれって言いましたよね?」と言ってしまう人は続かない人が多いですね。
正直日常茶飯事ですよ。仕様通りに作っても「思ってたのと違うから直して」とか「あ、良い忘れてたけど仕様変わったから」とかですね。(ふざけるな!)

はい、心の中で罵倒しまくるのは構いませんが表に出すようであれば居心地が悪くなってやめていってしまいます。いろいろ言われたら「はいはい」でOKです。かるーく流せないといろいろと面倒な業界なので...。
正直私は全力で衝突しに行きますけど……w
会社内での居心地とか雰囲気をまったく気にしないのであれば、衝突してでも自分の意見を言って理解してもらおうと動くのも悪くないですが……。

まぁ、向き不向きは正直私はこんなものだと思います。
会社は結構学歴重視だったり年功序列だったりしますが、最終的には実力がものをいう世界です。
「こいつ見返してやる!」という感じでむしろ燃える!という人は向いてそうですねー。

何から始めれば良いの?

よく聞かれますねー。結論から言うと、知らん!です。
「無責任な」と思うかもしれませんが、人に頼って決める時点であまり向いていないと思った方が良いです。
まぁ強いてアドバイスを挙げるとしたら

・何が作りたいか、何をしたいかを決める。
・最終的なゴールを決める。

です。正直これだけですね。
上の方で「Web系、組み込み系…」とか書いたと思いますが、目的によってやるべきことが変わってきます。正直すべてに共通する点としては困ったらC言語やっとけということですね。
基本的にC言語ができれば他の言語は大体できるようになります。他の言語で仕事が多いのはJavaですね。
色々な場面でJavaは使われていますからね。
困ったらCJavaをやっておけば良いと思います。

初心者おすすめ言語

投げやりな感じで終わるのも癪なので初心者でもとっつきやすい言語を書いておきます。

・Python
・Java
・Ruby
・C#
・PHP

こんな感じですね。
Pythonは文法的に結構理解しやすいですし、環境構築も容易です。調べればいくらでも出てきます。ライブラリも豊富なので色々とやりやすいです。

Javaは今世界的に一番と言っても良いほど幅広く使われている言語です。様々な仕事につながるのでとりあえずプログラミングをやってみたいという人には向きますね。あとマインクラフトのプラグインを作りたいという人にも向きます。

Rubyは日本人が作った言語という点でおすすめです。文法的にはPythonに近いです。環境構築も容易なのでおすすめです。

C#はUnityでゲームを作る時にも使用します。文法的にはJavaに限りなく近いです。なのでC#ができれば必然的にJavaができますし、JavaができればC#ができる。こんな感じです。Unityでのゲーム開発ができる点からゲームを作ってみたいという人にはおすすめです。

PHPはWeb系の言語になります。URLで「~.php」って見たことありませんか?これがPHPです。
PHPを使えば会員制のWebページやメールフォームなど多機能なWebページを作成することができます。
Web開発の現場では多くつかわれる言語なのでおすすめです。

まとめ

はい、私が主観的にまとめたプログラマーに向く人と向かない人でした。
私もプログラマーになりたいと思った時何をすれば良いのかわかりませんでした。「とりあえずC言語やっておくかー」という感じでC言語をやり始めて今に至るという感じです。
興味を持ったらとりあえずやってみるというのが重要です。自分でやっている分には色々なものに手を出してみて「あ、これ楽しい」と思えるものだったり「あ、これ向いてるかも」と思う言語を見つけてください。もちろん「○○を作りたいからこれをやる!」でも良いです。
とにかくいろいろやってみること。これが重要です。やるかやらないかで悩むくらいならとりあえずやってみましょう。

-その他, ソフトウェア, プログラミング, 入門
-