スポンサーリンク

プログラミングは独学で始められる?〜 新卒が半年で未経験からIT業界に転職できるまでの手順公開 〜

1.Programing
スポンサーリンク

今回の記事はプログラミング未経験の私の実体験に基づくものになります。タイトルに関しての回答としての結論は可能です。私の経歴とともにどのよう勉強をおこなってきたか、また何から始めるべきかなどを体験談ベースで記載していきます。新卒の方で現在の仕事に違和感を感じ転職を考えている方、また転職業界をIT業界に絞っている方、新卒以外でも未経験からIT業界に転職を考えている方は必見の記事になります。

目次を見ていただければわかると思いますが、「理解」とか書いていると思いますが「理解する」と「自由に使う」は意味が異なります。この記事に内での「理解」はあくまでも表面上の理解でOKです。しっかりと操作できるようになるにはある程度慣れが必要になります。あくまでも未経験から転職できる程度の知識習得を目標にしているので最初は調べながらコードを打つで全く問題ございません。

この記事に書いている順番に行っていけば独学でプログラミングを取得できると思うのでまずは目を通して順番に行ってみてください。各章に課題も用意したのでそちらを順番にクリアしてください。私の過去記事にもいろいろヒントあると思いますし、ネットにも無数の記事があります。

また、注意ですがプログラミングを習得すことは独学で可能ですが努力と時間は必要です。僕は社会人生活と友人関係の合間に週15時間は勉強自己的に勉強して約2ヶ月程度である程度のレベルに達したと思います。そこからさらに技術をつけつつ、転職活動を行っていったのでそう言った努力は必要ということを押さえておいてください。

また、プログラミングスクールもいいですが、費用がやはり高いですし要は努力できるかどうかなので自身で集中することができる人は独学可能、周りの環境がある程度必要な方はプログラミングスクールが良いかもです。

ただ、プログラミングスクールは生徒のことをアルバイト当然のように働かせるなんて噂もあるのでよく調べて決めてくださいね。。

では早速記事に進みます。

スポンサーリンク

私のプロフィール(経歴)

簡単に私のプロフィール から紹介していきます。私は関西ではそこそこなのしれた私立大学の学部卒で京都の大手メーカーに就職ができました。しかし、お盆あけの本就業から2ヶ月くらいで違和感を感じ始めました。

もともとPCは大の苦手で大学のプログラミング(C言語とFortran)はほぼ聞いておらず、友達のコードを写すなどかなりくそな生活を送っていました。そのため社会人になった時は全くPCスキルゼロでエクセルのグラフの操作やSUM以外の関数なんて全く知りませんでした。

このような状態を前提にしているのでこの記事を読んでいる方の方がよっぽどPCは得意なのではないでしょうか。では順番に何を行っていったかを振り返っていきます。

1番初めに行ったこと〜 Excel関数とVBA 〜

私がまず初めに行ったことはExcel関連です。業務上社会人になればExcelを使用する可能性はほぼ100%と言っても良いと思います。例えば各行を足す際はSUM関数がありますが、この行とこの行の「○」という表記を含んでいる行のみを足す際などはどのようにするかご存知でしょうか?

確かSUMIF関数というものがあるのでそれを使用すればいいのですが分からなくともOKです。なぜなら調べれば出てくるからです。PC苦手人間の私はまずそもそも調べるということを知らなかったためこの調べる習慣を身につけたのは大きいです。

先ほどの内容だと「エクセル 特定行 足す」で検索すればいっぱい出てくると思われます。

こんな感じで調べればなんでも出てきます。まずは自身の業務範囲のエクセルをできるだけ効率よく回せるようにエクセル関数を使用して検索する習慣を身につけていきましょう。

その次のレベルがVBAです。少しここからプログラミングちっくになります。まずVBAが何かご存知でしょうか?私の端末にエクセルが入っていないのでお見せすることができませんがエクセルを自動で動かすことができるプログラミングです。

例えばどのようなことができるのかというとボタンを作成し、そのボタンにVBAを仕込みます。仮にVBAの内容をCell(0,0)からCell(0,10)までに「0」を入力するという指示を与えたりすることができます。

まあ、実際に使用してみるのがいちばんの理解ですのでまずは自身の業務の中で使用できそうな箇所を見つける。そこに関してどのようにアプローチするかを調査する。実際に書いてみる。です。

VBAには「デバック」という機能があり、このデバック機能を駆使してプログラミングがどのような動作をしているかを確認しながらまずはなれていきましょう。この章の課題として下記を用意します。

『自分の好きなCellに「OK」という文字を出力するVBAを埋め込んだボタンとそのCell内の文字を消すVBAを埋め込んだボタンを作成して交互に押してみる(ボタンは二つ)』

2番目に行ったこと〜 ExcelをPythonで外部操作 〜

先ほどの章の内容でまずはエクセル内で行うことを自動化させるなどができるようになっていると思います。調べながらで全然OKです。エクセル操作にはなれいるという方はここからでも問題ないです。

次にエクセル外からエクセルファイルを操作してみませんか?正直エクセル起動に時間かかる時ないですかね?ページダウンロードみたいな感じで。仮にエクセルの中の数値をエクセルを開かずとも開けるということであればかなり便利ではないでしょうか。そこで登場するのがプログラミング言語のPythonです。なぜPythonかというと下記記事にも書いているのですが、初心者が始めやすく比較的簡単で非常に将来性があるためです。

この章をクリアするためにまずは「Pythonインストール」「Pythonで「Hello World」」「Pythonでエクセル内の数値を取得」の順にクリアしていってください。PC苦手人間からするとまずインストールとは?みたいな感じでしたが先ほどの1章エクセル関数とVBAで調べるという能力が身についているので調べつつやってみてください。下記が課題です。

『エクセル内のCell(5,8)に「OK」という文字を記入。そのエクセルファイルをPythonで読み込みPythonのprint関数で出力』

まずこれはできるようになる必要がありますのでここは確実にこなしてください。

3番目に行ったこと〜 Pythonで簡易RPA 〜

先ほどの章でPythonを用いてエクセルを操作できるようになったことでしょう。Pythonでエクセルを操作できるということはエクセル間を飛び越えて情報の受け渡しも可能ということです。また、エクセル内のVBAをPythonで起動することも可能なので業務の自動化がかなり捗っていると思います。ではさらに業務を自動化していく作業を通して、Pythonなれていきましょう。

まずはインストールです。こちらの記事でPythonの簡易的な環境構築が可能なAnacondaのインストール方法を記載しております。(リンク記事ではtensorflowをインストールしていますがまずはAnacondaのみのインストールでOKです。Pythonがきちんと入っているか確認しましょう。)

過去に私の記載している記事でPythonでPC画面のクリック操作やキーボードのタッチ操作を行うモジュール「pyautogui」を紹介しています。これを行うことができれば提携業務をPCが勝手にやってくれるようになりますので『下記記事内の内容を再現する』がこの章の課題になります。他にもSeleniumという自動テスト用のPythonモジュールもぜひ使用してみてください。かなり便利です。

PythonのおすすめRPAモジュール「pyautogui」で自動クリック

4番目に行ったこと〜 PCの通信やWeb・インターネットの仕組み理解① 〜

この章に関しては少しプログラミングから離れ、PCの基本的な構成について理解を進めます。自分は本当に何も知らない状態でしたのでそんな方でもOKです。私がこれを知ったきっかけは社内のセキュリティに少しつまずいたことから調べてみたというのがいちばんの原因です。

まず皆さんPCがネットで情報を収集できる仕組みを知っていますか?
私は「ネットに繋がっていればなんでもみれるんじゃ?」とか考えていました。しかし実際はすごい仕組みになっています。初心者でも確実にわかるように説明していきます。

こちらのサイトとかすごく参考になると思いますのでこちらもみてください。

先にこの章では『IPアドレス』『サーバ』『Webサーバ』『Webページ(html,css,js)』の語句の意味がわかればOKです。最後にもう一度確認するのでその際にきちんと整理されていればOKです。

「IPアドレス」とは?
全てのネットにつながるPCにはIPアドレスという住所が存在します。全世界でです。これはPC固有の番号なのでこのIPアドレスがわかればPCが特定できるとうものです。IPアドレスは自身のPCのコマンドプロンプトやterminalから確認できるので一度確認してみましょう。「ipconfig」で確認できます。社内などではIPアドレスを親PCから派生させたものを利用して管理しているようです。

「サーバ」とは?
サーバとはデータやファイルなどを保管しておくことのできる棚のようなものです。大規模なものから自作で自身のPCをサーバのように扱うこともできます。

「Webサーバ」「Webページ」とは?
WebサーバとはWebにあるサーバのことです。IPアドレスのようなものとしてURLを各サーバが固有に持っています。このWebサーバ実はもう少し奥深いのですが、それはもう少し先の章にとっておきます。一番多い利用方法としては「Webページ」の表示ではないでしょうか?「Webページ」は「html」という文章などを書いているメインの部分と「css」というページの配置や色などをの部分、ページに動きをつける「javascript(js)」というものが集まってページを表示しています。これらのファイルは拡張子がそれぞれ違うので別々のファイルに保存されています。このファイルなどを保管しているのがWebサーバです。

つまりWebページをネットで見るということは「自身のPCのブラウザ(google chromeやsafariなど)からこのURLにアクセスしWebサーバにページを見せてという指令を出す」「Webサーバがその指令通りのページを表示するために必要な「html」「css」「js」のファイルを読み込んで返す」「その帰ってきたファイルを読み込んでページとしてブラウザが表示する」の段階を踏んでおります。

理解できたでしょうか?では課題に戻りましょう。

『IPアドレス』『サーバ』『Webサーバ』『Webページ(html,css,js)』それぞれ意味はわかりますか?

5番目に行ったこと〜 データベースについて理解 〜

先ほどのページでWebに関することが浅く分かったと思います。ではWebページに表示している写真などのイメージはどのように保存していると思いますか?写真に限らず、IDなどをもつ会員制ページなどはそのデータをどのように保存しているのか?

大昔はファイルに直接書き込んで保存していたようですがいちいち現在はもっと進んだデータベースというものが存在します。例えば「MySQL」「PostgreSQL」「SQLite」「オラクルDB」など有名です。この章では『PostgreSQLを自身のPCにインストール。そのデータベースにデータを入力。その入力したデータをPythonで取得する』ところまで行いましょう。

PostgreSQLインストールからデータベース構築まで
PythonでPostgreSQLに接続しデータベースからデータを取得する方法

『PostgreSQLを自身のPCにインストール。そのデータベースにデータを入力。その入力したデータをPythonで取得する』はできましたでしょうか?

次の章では嫌でもデータベースを触ることになるのでまずはここでデータベースの種類や活用例、Pythonでのデータ取得方法を知ってください。

6番目に行ったこと〜 フレームワークなどについての理解 〜

この章はかなり本格的になってきます。Pythonのフレームワークを利用して簡易Webシステムを作る練習をしてみてください。この章での課題は『データベースとやり取りのあるWebシステム(htmlは3ファイル程度)を作る』です。

まずフレームワークとは?という方もいると思うのでそちらの説明から。フレームワークとは要はツールのようなものです。システム開発を加速させるためにいろんな方の知識を集約させて作ったプログラミングの道具です。例えばPythonでWebページに何かを表示させるために10のコマンドが必要とします。しかしその10このコマンドのうち7このコマンドはWebページを表示させるために必須のコマンドとします。この場合Webシステムを作る際はこの7このコマンドを必須で使用するとううことなので、この7このコマンドを一つのコマンドで実行できるとすればかなり楽ですよね。

フレームワーク未使用:「1コマンド」かける10回。
フレームワーク使用 :「’1コマンド’」+「1コマンド」かける3回。

作業量はかなり減りますよね。これが大規模なシステム開発であればあるほどいきてきます。私のDjango記事やネット参照記事を参照しつつ上記の課題に取り組んでみてください。以前の章のhtmlやWebの知識、データベースの復習も兼ねているのでここが1番の難所になると思われます。私も理解に時間がかかりました。

コツはURLの理解とDjango固有のプロジェクト起動コマンドなどを覚えることです。詰まったらこのコツを思い出してみてください。

私のDjango記事一覧

ちなみにフレームワークはPythonはDjango、PHPはLaravel、Rubyはrailsと3Topです。どれがいいとかに関しては思想の問題ですがDjangoは知名度的には少し劣っていますが今後の将来性はAI方面が明るいため非常に良いと考えられます。

7番目に行ったこと〜 Webアプリ制作環境のRAMP環境について 〜

先ほどの章はクリアできたでしょうか?もうこれで特に問題はないと思います。お疲れさまです。

この章では本格的にWeb業界で働いていくために必要な情報を記載していきます。過去にWebシステムをベースにWeb環境の説明をした記事を書いているのでそちらをご参照ください。

Webシステム解説
javascript仕組み解説

8番目に行ったこと〜 クラスやオブジェクト指向の理解 〜

言わずもがなです。少し遅いですがクラスやオブジェクト指向に関しては私はこの段階まで知りませんでした笑。しかしここまでやってこれたということは今のところ意味を知らずともなんとかなっていたということ。しかしいよいよIT業界に転職を考える際に必ず複数人で開発を行う機会が出てくると思います。その際にクラスうを知らないとかなり恥ずかしいのでなんの言語でもいいのでクラスについて理解してください。Pythonではクラスを使っていなかったので私はJavaにチャレンジしつつjavaの勉強もしました。javaっていろんなところあなたのPCにも私のPCにも入っているんだなと感じました。

9番目に行ったこと〜 転職 〜

この章の内容に関しては別記事をご用しておきます。転職をどのように調べるか分からなければまずはマイナビに登録し、エージェントに転職スケジュールなど聞いてみましょう。途中でマイナビを止めることもできますし、まずは行動あるのみです。

転職関連の記事は別途用出来次第リンクを貼ります。

長くなりましたが今回の記事は以上です。現状の職に違和感ある方や将来性のある業界で働きたい方、自身の努力でプログラミングにチャレンジしてみたい方などは是非頑張りましょう。皆初めは0の状態なので努力でどうとでもなります。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

1.Programing
スポンサーリンク
スポンサーリンク
ともぶろぐ

コメント

  1. […] メーカー勤務の新卒未経験が半年でIT業界に転職できた手順を体験談ベースに記載している記事はこちらになっております。合わせてご参照ください。 […]

  2. […] 私の転職までに行ったことをまとめた記事も記載しているのできになる方はこちらの記事をご参照ください。 […]

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