実務経験ゼロからエンジニアになるために2ヶ月で勉強すべき知識
やまそうのだらだらブログ.vol1
〜実務経験ゼロから2ヶ月で戦力エンジニアになるための知識〜
こんにちわ
プログラミングスクールに通った後、株式会社entershareで寺子屋生をしているやまそうです。
エンジニアの見習いとして受託案件のフロント、プログラミング、インフラ構築までの業務を日々頑張っています。
弊社に入って見習いエンジニアを始めて早2ヶ月がたとうとしています。実務経験ゼロから始めてプロのエンジニアの下で教えてもらいながら2ヶ月でようやく戦力になってきたかなと肌感で感じています。やまそうはプログラミングスクールを卒業した後ここで開発をしてますが自分のような悩みを持っている方はいらっしゃると思います。
- プログラミング勉強したけど仕事できるの??
- 実務では何が必要??
- 実際に働くにはまだスキル足りないんじゃないか
などなどお悩みは尽きないと思います。自分もそうでした。
なので、これがなくては仕事にならない、それが出来たら戦力だ!という知識というか項目と簡単すぎる概要を紹介したいなと思ったりしてます。
寺子屋制度OJTの説明
ちなみに自分は下記に紹介する項目を勉強して開発を始めた人間ではありません。株式会社entersharaの寺子屋制度を利用してプロのエンジニアの下で教えてもらい勉強しながら案件こなしています。「OJT」オン・ザ・ジョブ・トレーニングです。仕事をしながら必要なものを都度勉強、習得出来ます。
必要であろう知識
- Git
- 環境構築
- シェルの知識
- SSH
- OSの知識
- ネットワークの知識
- データベースの知識
- Bootstrapの知識
- セキュリティの知識
Git
Gitとは…
開発でかなりの優先順位で必要なのでは無いでしょうか??
Gitはプログラミング等のコーディングに直接関わるスキルでは無いですが、これが使えないとプロジェクトには参加が出来ないでしょう。多分大体は。
Gitは一般にバージョン管理をしてくれるものと言われ、簡単に言うとソースコードやソースコードの変更を管理出来ます。開発現場では複数人で開発することが多くGitを使うことで複数人が編集したソースコードが管理しやすくなり、タスクを分担してプロジェクトを作成することが出来ます。よって作業効率やスピード、ミスを減らせるなどメリットだらけです。
逆にこの知識が無いと作業効率が悪く、開発スピードも遅く、ミスだらけみたいなことが起こりうる。どんなにプログラミングスキルなどがあっても協力して作業できなければ厳しいですよね。
ちなみにGithubとGitは別物です。Githubはwebアプリケーションです。
Gitの詳細は省いて参考サイト
環境構築
やまそうの開発は受託案件がほとんどです。受注した案件の中にはサイトをゼロから作成するもだけでなく、すでに出来上がっているサイトの保守や改修の案件も入ってきます。
その出来上がっているサイトを自分のパソコンで動作するようにするのが環境構築です。
なぜ必要か、、、
ソースコードをいじって編集しても実際の動作を確認しないとですよね。そこで自分のPC(ローカル)でサイトが動作するように環境構築が必要になってきます。編集作業が出来てもどのように動作しているか確認出来なかったらダメですよね。
よくある環境構築
- wordpress
- Ruby on Rails
- CakePHP
などなど
詳細を省いて参考サイト
- https://qiita.com/d-yokoi/items/e27193b2f742a058af6e
- http://e-words.jp/w/%E7%92%B0%E5%A2%83%E6%A7%8B%E7%AF%89.html
シェルの知識
シェルとは人間の命令を受け付けてくれるやつ。つまりシェルを使うことでパソコンを操作することが出来ます。
普段のというか一般的なパソコンユーザはマウスを使ってウィンドウ上で操作します。クリックしたりクリックしたり。でもシェルはキーボードで文字(コマンド)を打って操作します。コマンドがパソコン・コンピュータに対する命令となりそれを受け付けてくれるのがシェルです。
映画とかでハッキングしてるシーンとか真っ黒な画面をピコピコしてるのをよく見ますがあれです。あれがまさにコンピュータに色々なコマンドで命令をしてハッキングをしているわけですね。多分。
そんで開発で最低限のコマンド(命令文)を知っておかないと厳しい。開発ではマウスでクリック作業では済まず、なにかしらコンピュータに指示を出して動かさなくてはいけないことがとても多くある。最低限のリテラシーは無いと現場ではきちー。シェル画面に表示される英語が読めるとなおよろし。
必要であろう知識
- ディレクトリについて
- パスについて
詳細を省いて参考サイト
SSH
Secure Shell(セキュアシェル、SSH)です。
暗号や認証の技術で安全に他コンピュータに接続すること。インターネット上にアプリケーション等をアップロードする際のサーバだったりをいじくりするときにそのサーバに接続をします。ので、必要な知識かと思われます。サーバだけでなく業務をしていると色々接続します。
暗号や認証の技術で安全にと言うくらいなので表面だけでも「暗号や認証」の知識がないと作業が出来ないんじゃないでしょうか。
なんで暗号とか必要なのか、、、サーバーにだれこれ構わず接続できちゃったらものすごく良くないのです。だから合言葉(暗号)で正解をしたものだけ(認証)接続をするみたいなこと。これはおそらくいくつもあるであろう認証の方法のうちの一つで他にもたくさんあるでしょう。いざ仕事で戸惑わないように勉強するべきなのでわ。
詳細を省いて参考サイト
OSの知識
オペレーションシステム(OS)です。コンピュータを動かすためのソフトウェアです。キーボードを打ったら文字、クリックしたらこう、電源ボタンおしたら消えるみたいなこと全部管理しています。OSはコンピュータによって違うものが入っています。身近で言うとスマートフォンはAndoroid Os、iphoneはIOSとか。
プログラミングとかコンピュータに携わっているとOSという言葉がでてきます。普段聞き慣れないけどCentOsやUbuntuなどなど。これらも上記にあげたOSと同じOSです。まぁ仕事している中でOSという言葉がでてきても混乱しない程度に知っておく必要があるかなとやまそうは思います。
詳細は省いて参考サイト
ネットワークの知識
なんでネットワークの知識が必要なのでしょう。
正直プログラミングだけ出来ればいいじゃないかと思っていました。コードがかければいいじゃないかと思っていました。が。ネットワークの知識は必要だと思いました。
普段インターネットで見ているWebサイト。まぁまぁ利用するであろうメール。何気なく使っている画像投稿(SNSとかで)。これらがどんな流れで使われ動作するのか普通はなかなか知る機会がないのでは??でも、現場ではこれらを開発することが大いにあります。少なくともWebサイトをインターネットに表示は必ずさせますよ。
ってことで、ネットワークの知識は必要に感じます。この知識がないと働けないとかではなく、あったら即戦力だなっていうものの一つです。もちろん仕事の中で勉強するでもいいですよね!やまそうもその口です。
詳細を省いて参考の本
データベースの知識
やまそうはHTML/CSSのみで作るサイトだけでなくWebアプリケーションも作ります。Webアプリケーションを作る時高確率でデータベースを組み込みます。そういう意味で知っておかなくてはならない知識では無いでしょうか。
データベースとはなんぞや、データベースは何をしてくれるのか、MySQL、基本的な使い方など知っておくと開発もスムーズにいくと思います。なぜなら、この辺の基礎知識がないと開発中にデータベースわかんらんな〜〜ってときに、Googleで調べて実装するというようなことができなくなります。あと、上司のエンジニアの人に教えてもらっていても言ってることが理解できない現象に陥りますね。
開発の実務ではわからない所を都度調べて実装する力というのが必要ですからね。基礎知識が頭に入っていればなんとかググって実装ってことが出来ると思っています。
詳細は省いて参考サイト
- https://www.sejuku.net/blog/8763
- http://www.pc-master.jp/words/database.html
- https://www.sejuku.net/blog/9021
Bootstrapの知識
Bootstrapはフロントコーディングでほぼ必須です。特にBootstrapの中のグリッドシステムはおそらくどの会社の開発チームでも良く使われるのでは無いでしょうか。これを使うことでフロントのカラム構成をとてもしやすくなるのでこれだけで作業が効率化します。
Bootstrapはフロントのフレームワークです。何をフレームワークしてくれているか。Bootstrap側がhtmlのタグにつけるクラス名を用意していて、そのクラス名のcssをもうつくってくれちゃっています。例えば、divタグに「btn btn-danger」ってクラス名を入れると危険そうなボタンをつくってくれます。こんな感じで自分でcssを書かなくてすみますね。
弊社の開発でもグリッドシステムをメインで使います。Bootstrapの使い方、仕組みは勉強しましょう。
詳細を省いて参考サイト
- https://techacademy.jp/magazine/6270
- http://bootstrap3-guide.com/base/about.html
- http://websae.net/twitter-bootstrap-grid-system-21060224/
セキュリティの知識
これはやまそうも現在寺子屋の「OJT」で勉強中です。
なぜ必要に感じるのか。。。
インターネットは世界中で使われています。世界に人間が70億人もいれば性格が悪くてコンピュータの知識がそこそこあっていろんなサイトを不正で攻撃しようとする人がいるかもしれなく無いですか??ましてや自分のサイトが沢山の人に見てもらうようになればなるほど悪人が目をつけ易くなると思います。
安全なサイトにしないとダメですよね。。。
どんな攻撃をしてくるのか、どこから侵入してくるのかアンテナを張って対策をしなくてはなりません。サイトの話だけでなくサーバやデータベースなどにおいても言えることです。最低限の安全性を確保出来るような技術と知識を持っておくととても良いと思っています。意外とググれば勉強出来たりします。
- http://www.atmarkit.co.jp/ait/articles/0105/17/news002.html
- https://eng-entrance.com/linux-security-basic
- https://www.scutum.jp/information/web_security_primer/web_security_introduction.html
まとめ
以上にあげたのが開発でこれが知っているだけでも戦力だろうと思った知識です。
なかでも優先度高めなのが「Git」「Bootstrap」「シェル」。次に「環境構築」「データベース」となるのでは。
以上にあげたのはあくまで開発実務で戦力になるのに必要と思った項目で、自分の独断と偏見で決めました。これらの知識がないと仕事にならないと言うわけでなく、仕事をしながら勉強しておおよそ2ヶ月間学べば戦力でしょうと思って自分は日々仕事の中で勉強しています笑
最後まで読んでいただきありがとうございました。
やまそうでした。
最新記事 by 山宗一郎 (全て見る)
- 【HP作りたい人向け】自分でサイト制作してもらうサービス 〜サイト制作費用がもったいない〜 - 2017年11月24日
- 大学生の時間の使い方・過ごし方を考える - 2017年11月15日
- 【初心者】Vue.js 基本的な使い方。〜 導入から基本的な機能を使ってみるまで 〜 - 2017年11月14日