文系・就活生必見!知識ゼロからエンジニアになるまでの勉強方法について!

ITトレンド

私の経歴について

文系出身者がゼロからエンジニアになるまで!を話す上で、
まずは私の経歴についてお話させてください。

私は4年生の文系大学出身で、大学は日東駒専の経済学部出身で、一浪していますw
大学3年の就活するタイミングで自分は将来何をしたいかな?と考えた時に、
何もしたくないし働きたくないが本音でしたw
ただ、働かないわけにはいかないので、どんな業種にするか考えた時に、私はやりたい事よりも働く上で嫌なことをまずはじめに考えました。

結果、働く上で以下の2点だけは譲れませんでした。

  • 知らない人と話すのが苦手だから営業職は嫌だ!
  • 地元から移動したくないから転勤はしたくない!

ただ、文系出身者だとどうしても営業職に行く人が多く、文系出身の人って他にどんな業種がある?と思ったとき、当時の私はシステムエンジニアしかないなと考えましたw
実際は他にもあると思います。ただ文系出身だと圧倒的に営業職が多いイメージです。

システムエンジニアになりたいからなったというよりは、消去法でシステムエンジニアを選んだって感じですね。。。今考えると将来のことは何も考えていないただのポンコツでしたw

面接の際はものづくりがしたいとか適当な理由を付けて切り抜けました。
そんな適当な気持ちで就活をしていても何とか大手の子会社に拾ってもらい、今も同じ会社でシステムエンジニアとして8年間働いています。

正直業界について調べたり企業について調べたりしなかったので、自社開発やSier等についてもわかりませんでしたが、今考えると自社開発の選考を受けるべきだったなと思っています。

その辺のエンジニアの仕事について次の章で簡単にお話しします!

エンジニアの仕事について

システムエンジニアと言っても意味的には広く、実際中身はもっと細かく分類されています。
呼び名も沢山あり正直いくつあるかもわかりませんw詳細は皆さんググって下さい。
以下、いくつか適当にピックアップしますが、例を挙げると以下のような分類分けがあります。

  • アプリケーションエンジニア
  • データベースエンジニア
  • ネットワークエンジニア
  • セキュリティエンジニア

一般的に皆さんがイメージするのはアプリケーションエンジニアにあたると思います。
アプリケーションエンジニアでも入る会社によってやることは全然違ってきます。
前の章で私がSierではなく自社開発の会社にすればよかったと言いましたが、Sierと自社開発で大分作業が変わってくると思います。
私はSierなので自社開発については詳しくないですが、例えば皆さんが使用している大手のECサイトを運営している会社は自社開発になります。Sierは主に他社から、こんなシステムを作って欲しい!などの依頼を受けてシステムを開発し、収益を上げる会社になります。
私が自社開発がいいと言ったのはプログラミングが私は好きなので、プログラミングをする時間がSierよりも長いかなと思ったからです。実態はわからないですw
エンジニアの仕事をする上で大きく以下の工程に分けてプロジェクトを進めていきますが、正直Sierではプログラミングの工程が一番短いです。。。

                       (例)
・設計 (基本設計・詳細設計)      → 車の設計書を作成
・開発 (プログラミング)        → 車を作る
・試験 (単体試験・結合試験・総合試験) → 車がちゃんと走るか
→かなりざっくりと記載しています。

後は、システムエンジニアとしてスキルを磨いた後に自分で何かサービスを作りたいと思ったときに自社開発の方がいいと思います。Sierではこんなシステムを作ってほしいと依頼されて作成するため、BtoBのシステムを開発することがほとんどです。自社開発については、BtoBのシステムももちろんありますが、BtoCのシステムも多く開発します。そのため会社で培ったスキルがそのまま自分でサービスを開発する際に、使える可能性が高いと思います。
また最新の技術を使用するのも自社開発の方が多いと思います。

ただ、Sierの方がいいこともあります。
他社から依頼されたシステムを開発するとお話ししましたが、例えば銀行からシステムの作成依頼をされた場合、作成するシステムは銀行の業務知識が必要となるので、ある程度他業務の勉強する必要があります。
銀行の業務知識のスタートラインは文系も理系も関係ないので、自分の努力次第でどうにでもなります!業務知識について有識者になった場合、社内でかなり重宝されると思います。下手したら理系のエンジニアの方よりも頼りにされる可能性もあります!
後は、Sierは給料が高いと聞いたことがあります!これは会社にもよりますが。。

ざっくりまとめると、
自社開発のメリット

  • 自分でサービスを開発するときに、培った技術を使用しやすい。
  • 最新の技術を使用する機会が多い。

Sierのメリット

  • 業務知識を付けることで文系でも活躍できる場が多い。
  • 給料が自社開発よりも高い?

あくまで私の意見なので、実態はご自身で調べていただいた方がいいです!

どんな言語を学ぶのがいいか

おそらくプログラミングを初めて学ぶ方は、どんな言語を学べばいいのか分からず迷ってしまう方もいると思います。

私もこの言語を学ぶのが一番いいよ!と提案したいのですが、何を作りたいか!によるとしか言えません。
例えば、Webページを作りたいのであれば、
「HTML」や「JavaScript」を学べばいいと思いますし、
スマホアプリを作りたいのであれば、
「Swift」「Kotlin」「Flutter」を学べばいいと思います。
※IOSアプリを作成するのかAndroidアプリを開発するのかで言語も変わります。

まずは、自身が何を作りたいかを考えてそれに向けて、どの言語を学ぶか選択するべきです。
ただ、今は作りたいものはないけど、プログラミングを学びたい!という方は、私は「C言語」や「Java」を学ぶのをお勧めします。

なぜかというと基本的なプログラミングの基礎文法が学べるからです。
実際、私は一番最初に「C言語」を学びその後「Java」や「Swift」などを学びました。
正直「C言語」を理解できている状態であれば、他の言語を学習する際も独自の文法をいくつか理解するだけで、そこまで苦労しないで次の言語を理解することができます。

ただ、「C言語」自体は個人で何かを開発するのに向いている言語とは言えませんし、言語の難易度はかなり高いと思います。プログラミング言語は、基本的にPCが理解しやすいように作られていますが、「C言語」は数ある言語の中でもPCが理解しやすい言語のため、複雑な処理が多くなります。その代わり他の言語に比べてPCが理解しやすいので、性能がよく処理が速いです。
「Java」については「C言語」よりも簡単なので初心者の方が最初に勉強するのに適していると思います。「C言語」と違い最近の言語で使用されているオブジェクト指向型の言語なので、他の言語を学習する際も、多言語に入りやすいと思います。
※オブジェクト指向についてはググって下さいw

結果、
 学ぶ言語は何を作りたいかによって決める!
 今は作りたいものがない場合は「Java」を学ぶ!

でいいと思います。

あくまで私の意見なので、参考としてください。
ただ、作りたいものによって学ぶ言語を決めるは、間違いないと思いますので、
作りたいものがある方は、それにあった言語を学習していただければいいと思います。

私が今までやってきた勉強方法

最後に私がやってきた勉強方法についてお話いたします。

私がエンジニア関連の勉強を始めたのは、今の会社に就職が決まったタイミングで勉強を始めました。
まず初めに勉強したのは言語の勉強ではなく、「基本情報処理技術者試験」の資格の勉強から始めました。

情報系の就職あるあるだと思うのですが、
「基本情報処理技術者試験」を取得するよう内定が決まった後に会社から言われました。。。
私の会社は2年目以降、役職を上げる条件に基本情報の資格を持っていることとあったので、勉強しましたが正直私はお勧めしません。
お勧めしない理由は、出題範囲が広く浅くなので、実践で使用できないものが多いです。
仕事の会議中にたまに、「その単語、資格の勉強中に覚えた!」ってのがちらほらあるだけで、覚えなくても後でググって調べればいいと思いますw

ただ、広く浅くIT関連の用語等は覚えられるので、資格の勉強というより、色々なIT関連の内容を理解したいという方は勉強して全然いいと思います。私は資格を取得するだけの勉強となっていたので、一応資格は取得しましたが、正直無駄な勉強でしたw今では何も覚えてません!

言語自体は、就職して「Java」の研修と「C言語」の研修が1週間づつあり、そこで初めて言語に触れました。就職するまでは「Java」?「C言語」?って状態だったので、プログラミング言語が複数あるいこと自体理解していませんでしたw

研修では、座学と実際にプログラムを書く演習がありましたが、
座学は勉強する必要はほとんどないなと思いました。
ここでの勉強は私は全く理解できず何も身にならなかったです。。。

「百聞は一見に如かず」

と言いますが本当にその通りだと思いました。
どんな言語を勉強するにしてもまずは自分でプログラムを書くべきです!
書かないと全然覚えないですし、楽しくないです。。。
自身でプログラムを書いて画面に「Hello World!」と表示できただけでも、楽しいですし、嬉しいものです。どんな凄腕のエンジニアの方でもここからスタートしているはずです。

私がある程度プログラムを書けるようになったのは、「C言語」を自分で書き始めてからです。

初学者の方にお勧めしたいのが、まずはサンプルをネット上でも参考書でも構わないので丸々コピーして、動かしてみてください。
それができたら、コピーしたソースの中から一部を変更してみて、どういう動きになるのか等色々試してみてください。
私も最初はほとんど誰かが書いたソースをそのまま書き写すことしかしていませんでした!
ここでコピーと言いましたが、コピペするのではなく自分で全部タイピングして入力してください。意外とタイピングミス等で間違えて上手く動いてくれないですw
どこが間違えているのか等を探すのが一番面倒くさいですが、これが一番の勉強になります。

私は今でも何か言語を勉強するときこの方法で勉強しています。
タイピングして内容がわからない箇所が出てきた場合、自分でネットで検索して調べてください。参考書等でもいいですが、ネットで調べる方がいいです。
エンジニアの方はソースが書けるといってもほとんどの方が、ネットで調べて書いていると思います。
実際私もそうですw
ネットでどんな検索ワードを入力すれば自分の知りたい情報がヒットするのか、そこが理解できるようになれば私はそれだけでエンジニアとしてやっていけると思います。

兎に角、
 なんでも検索する癖をつけること!
これが大事です。

これは、IT関連のことだけでなく、何か自分の趣味についてわからないことがあった場合でも常日頃から検索の癖をつけるべきです。
例えば、検索のリテラシーが上がればスマホアプリでリストのようなものを作成したい!となった時、
検索してサンプルを拾ってくることができるようになります。
サンプルを拾ってきたらコピーして動かして、自分用に変えて動かしてと、上記で解説した内容と同じ動きをすれば自分がやりたいことを実現できるようになります。

私は上記の方法で、「Swift」を勉強して、IOSアプリのリリースまですることができました。
たいしたアプリではないですが、「作業時間計測」というアプリをAppStoreでリリースしています。

ただ、今は開発したいものがなくとりあえず勉強がしたいという方は、
無料の学習ツールで「Progate」というツール等もあるので使ってみてもいいと思います。
最近は、皆さん「Progate」を使用している方が多いようです。

また、有料にはなりますが、大手企業の新入社員研修等でも多く使用されている世界最大級のオンライン学習サイト「Udemy」も評判がいいので使用してみてはいかがでしょうか。

世界で人気なオンラインサイトのため初学者から本格的に学習したい方どちらの方にもおススメできるサイトになります。

長々と読んでいただいてありがとうございます。
記載している内容はあくまで私の経験に基づいた話や私の意見になりますので、
絶対ではないことをご承知おきください。

今後、こんな話が聞きたい等あれば、コメントよろしくお願いいたします!

コメント

タイトルとURLをコピーしました