卒業すればエンジニアになれるのかな?
という疑問を持つ方に向けて大学でプログラミングを学ぶのはありか?どんなことを学べるのか?というお話をしたと思います。
なお、本記事は現役情報系大学生の僕の経験に基づいて書かれております。
目次
プログラミングを学ぶために大学に入るのは遠回り
前置きを長々と書いてもアレなので結論から書きます。
将来エンジニア・プログラマになりたいという明確な目標や将来のビジョンがある方は大学でプログラミングを学ぶのは遠回りだと思います。
こう思う理由としては
- 大学ではプログラミングだけを勉強できる訳ではないから
- 大学で学べるのは基礎的な文法ばかりだから
- 大学はコードの書き方より何故プログラムが動くのかその「仕組み」を学ぶ所だから
- 大学に入学しただけでは社会で通用するようなスキルは身につかないから
といったものがあります。
ここからはそれぞれの理由について詳しく解説していきます。
大学ではプログラミングだけを勉強できる訳ではないから
まず大学はプログラミングだけを勉強できるわけではありません。
僕の学科は大学内で一番プログラミング関係の授業が多い「情報通信工学科」なのですが過去三年間であったプログラミングを扱う講義は
- コンピュータプログラミングおよび演習I(C言語)
- コンピュータプログラミングおよび演習II(C言語)
- データ構造とアルゴリズム(C言語)
- インターネットプログラミング(Java)
ぐらいのものでした。
後は機械語に関する講義やデータベースなどの講義もありましたがあまりコードを書くような感じではありませんでしたね。
その他の講義は電気や通信に関する講義、果ては経済や憲法に関する講義などで入学後にかなり違和感を覚えました。
大学に入学する前の方は「情報系の大学だしプログラミングの講義が多いんだろうな」と思うかもしれませんが上記で説明した通りそれほどプログラミングの講義は多くないのです。
大学で学べるのは基礎的な文法ばかりだから
前述したとおり情報系大学と言ってもプログラミングの講義ばかりではないので「プログラミングを応用して大きな作品を作る」というような事も滅多にありません。
大抵の講義はif文やfor文などの独学でも勉強できる基礎的な内容を扱い、最後にそれらを利用して出された課題に取り組むという流れです。
まぁポインタの概念なんかは独学では中々理解しづらい事もあるので一概に無駄とも言い切れませんが...
大学はプログラムが動く仕組みを学ぶ所だから
大学で学ぶのはコードの効率的な書き方や便利なライブラリについてではなく、プログラムが動く仕組み、所謂「機械語」などについて学びます。
機械語とは、コンピュータのマイクロプロセッサ(CPU/MPU)が直接解釈・実行できる命令コードの体系。0と1を並べたビット列として表され、人間が直に読み書きしやすい形式ではない。
IT用語辞典より
この機械語が人間には理解できないからプログラミング言語がある訳ですが、あえてこの機械語を理解しようぜってことですね。
こういった知識を備えているに越したことはありませんが、実際に社会に出て業務で使うかと聞かれると...うーん、だいぶ機会は限られてくるんじゃないでしょうか。
そのため実際に手を動かしてコードを書きたい、社会に出て業務で役立つようなテクニックを知りたいという方には退屈に感じるかもしれません。
大学に入学しただけでは社会で通用するようなスキルは身につかないから
最後の理由は上記3つの理由のまとめ的な感じですね。
前述したとおり情報系大学といえど
- プログラミングの講義ばかりではない
- 講義の内容も基礎的なものが多い
- コードの書き方よりプログラムが動く仕組みの方が重要視されがち
といった理由から、ただ大学に入学して卒業しただけではプログラミングの習熟度は文系の方と大差無いと思います。
むしろ独学で勉強している文系の方のほうがスキルは高いんじゃないかと。
エンジニアやプログラマになるための効率的な方法は?
ここからは大学に通うより効率的にプログラミングを学べる方法についてご紹介していきます。
プログラミングの専門学校に行く
大学は比較的、浅く広く学ぶのに対して専門学校は突出した分野を深く学ぶことができます。
また、専門学校に行くメリットとしては
- 教えてくれる講師もプログラマの方が多く、実務でも使えるような役立つ知識が学べる
- 資格が取りやすい
- 学校からの就職に対するサポートが厚い
といったものがあるので
「コードを書くのが大好き」「即戦力になれるような人材になりたい」
という方は専門学校の方が良いかもしれません。
プログラミングスクールを受講する
プログラミングスクール(学校)とは、これからのIT業界に必要な技術やプログラミング言語に関する講座を受講できるスクールのことで、主に就職や転職、副業を目指して、スキルアップ(自己研鑽)を希望する方が通っています。
INTERNET ACADEMY プログラミングスクール(学校)とは?講座内容&タイプ別おすすめポイント より
専門学校と少し似ていますが、イメージとしては大学・専門学校が学校とするとプログラミングスクールは塾や予備校のようなものです。
プログラミングスクールには様々な授業形態があり実際に学校に通って学ぶ方法やマンツーマンの個人指導、ビデオ形式の授業などがある為、自分の生活スタイルにあったものを選択できます。
長期インターンに参加する
長期インターンとは3ヶ月以上の職業体験のことを指します。
IT系の企業にインターン生として入社すれば現場で実際に使われているプログラミングの技術や知識を学ぶことができるだけでなく、ビジネスマナーや目上の方への接し方も身につくので就職にも強くなります。
また、形式上はアルバイト扱いの場合が多く有給の所が殆どなのでプログラミングの学びながらお金も貰えるというメリットもあります。
長期インターンに参加するメリット等は下記の記事で詳しく解説しています。
大学でプログラミングを学ぶメリットは無いのか?
さてここまで色々とお話してきましたが、では大学でプログラミングを学ぶメリットは無いのか?と聞かれると決してそういう訳ではありません。
先程大学は広く浅く学ぶと言いましたが裏を返せば幅広い分野の基礎が身につくのでプログラマやエンジニア以外にも職業の幅が広がりますし、やはり大卒という肩書はあって困るものではありません。
じゃあ結局大学と専門学校どっちが良いんだよという話になりますが
専門学校が向いている人
- とにかくプログラミングが好き
- 将来はエンジニアやプログラマなどしか考えていない
- 即戦力になれるような専門的な知識が欲しい
大学が向いている人
- プログラミングに興味はあるけど将来についてまだ迷っている
- プログラミング以外の学問にも興味がある
- 学歴を重視している
このような感じになると思います。
また先程書いた『エンジニアやプログラマになるための効率的な方法』ですが『専門学校に行く方法』以外は大学に通いながらでも実践できるので、もし今
と思っている方はやってみることをおすすめします。