こんにちは。私はネットワークエンジニアの仕事に就いて3ヶ月しか経っていない新人エンジニアです。現在はCCNAの勉強を中心にしており、来月に受験する予定です。
そこでなのですが、CCNA受験後の勉強手順があまりよく分からないので質問させていただきました。私は将来、ネットワークを含めサーバーやデータベース等も扱えるインフラエンジニアになりたいのですが、ネットワークの勉強後はどういった分野の勉強をしていけばいいのでしょか?
現在はCCNAの勉強と同時にExcel VBAの勉強をしております。また、上司からの指示でデータベース(SQL)言語についても触れておくよう言われました。個人的にはLPIC(linux)、PHP(プログラミングにも興味がある)にも関心があります。ただ、一度に勉強するにはあまりにもやることが多いため、順を追って勉強したいのですが、どの分野から勉強するべきでしょうか?教えていただけると幸いです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
長文です。申し訳ありません。
ネットワークを含めサーバーやデータベース等も扱えるインフラエンジニアになりたい
個人的にはLPIC(linux)、PHP(プログラミングにも興味がある)にも関心があります。
いわゆるバックエンドエンジニアに相当すると思います。
どういう順番で勉強すればよいのか?というのは、昔からよく話題になります。
最近はWeb Developer Roadmap - 2018という記事が話題になっています。
- 原文: Web Developer Roadmap - 2018
- バックエンド部分の日本語訳: 2018年の最先端バックエンドエンジニアになろう(翻訳者様ありがとうございます)
図の上から順番に勉強していけば、最終的には一流のエンジニアになれるという内容です。
多くのステップがあって圧倒されますが、これらすべてを習得する必要はありません。
導入
まず、原文のIntroductionによると、フロントエンドにしろバックエンドにしろ、以下のスキルから学ぶことが推奨されています。
- Git
- SSH
- HTTP/HTTPS
- 基本的なターミナル操作(UNIXコマンド)
- 調査方法(ググり方)
- データ構造・アルゴリズム
- 文字コード(UTF-8とかShift_JIS)
- GitHub(アカウントを作る)
これらを理解してから、Back-endの道に進みます。
Back-end
上司のおっしゃるSQLは、Step8にあるRelational Databasesにあります。
ここまで習得すれば、現場で活躍できるようになると思いますので、ひとまずはこのStep8が目標になるかと思います。
Step1: 言語の選択
数多くの言語の中から選びます。どれも一長一短なので、コレ!というものはありません。
PHPに興味があるとのことなので、素直にPHPを選ぶのがよいと思います。
Step2. 練習
まずは、PHPで小さなアプリを練習で作ってみます。
Step3. パッケージマネージャー
PHPにはcomposerというパッケージマネージャーがありますので、これを学びます。
Step4. ベストプラクティスを知る
PHPならPHP-FIGという団体がPSR-0, PSR-1, PSR-2, PSR-3というコーディング規約をまとめていますので、それらを勉強します。
Step5. 練習
上記を踏まえて、改めて練習でPHPのライブラリを作ってみます。
Step6. テスト
テストを学びます。
Step7. 単体テストの練習
今まで作ったアプリやライブラリで単体テストをやってみます
Step8. リレーショナルデータベース
SQLを学びます。どのデータベースを使うのか選択をします。
ここでは、MySQLがオススメされています。
さいごに
とりあえず、Step8まで書いてみました。必ずしもこの順番で勉強する必要はないですが、それなりに理にかなっているかなと私は思います。
例えば、PHPよりも先にSQLを学ぶことは可能ですが、アプリがなければ、SQLを実践することができないので、少し効率的ではないと思います。
私も勉強中なので、一緒に頑張りましょう!
投稿2018/06/13 00:12
編集2018/06/13 01:36総合スコア73
0
ベストアンサー
長文失礼します。
私は
HPC計算機屋→WEB屋→IoT屋→機械学習とかやる受託開発屋
と進んできた者です。
主さんの話だと、他の回答者さんも仰るようにバックエンドエンジニアとかサーバーサイドエンジニアと呼ばれる職種が近い職種ですかね。
PHPでWEB開発したいのだと思いますが、WEB開発ってWEBデザイナーがテンプレとかデザイン周りをやってくれるので、PHPでやる事はユーザーの入力を加工してDBに入れたり、DBからデータ取ってきて処理して表示側(テンプレートエンジン)に渡す位までしかやりません。ここら辺は「MVCモデル」とか「php フレームワーク」でググると良いです。
渡したデータをどのように表示するとか、見た目周りはデザイナーの仕事として分業してます。規模が小さい開発の場合は分業せずに全て1人のエンジニアがやる場合もありますが、主さんの興味の幅を考えるとサーバー側の冗長化・負荷分散とかも学びたい感じですか?冗長化・負荷分散が必要なレベルの開発だと恐らくWEBデザイナーがやるようなフロント側の技術は結構後回しになると思います。
勉強をする順番ですが、主さんがやってるインフラから勉強と言うのはちょっと時間がかかるけど良いと思いますよ。
理由は、最初にプログラムから入ると裏側のネットワークなどのプログラムより低レイヤーの知識が無いために、分からないことがあった時に結局インフラ側を学ぶ羽目になったりするからです。
ITで使っている技術は、使いやすくするためにプロトコル、パッケージ、ライブラリとかフレームワークとか、使用者に中身を意識させないものが多いので、中身分からないけど使えるって言うものを使ったりしてます。
そういったところも(なんとなくで良い)ので分かっていると、調べる速度が早くなり、理解も深まりやすいです。
主さんがあげていたものを使って説明した場合は下記の順が良いかと思います。
CCNA(ネットワーク)->LPIC(サーバー)->DB(SQL)->PHP(サーバーサイドプログラム)
CCNAでネットワークを理解したら、サーバーを建てネットワーク設定してSSHでアクセスできるようにして、それができたらDB(MySQL・MariaDBかPostgreSQLあたりが良いかと)をインスコしてテーブルつくる、できたらPHPからDBのデータをSQLで取り出して、htmlベタ書きのページに表示。
の順番で良いと思います。
DBができたらKVSとかNoSQL(memcach,redisなど)もちょっとやったほうが良いです。WEB開発ではほぼ必須。
PHPでDBのデータを取得できたら、フレームワーク(Laravelが良いかと)使って簡単なWEBページをつくります。
PHPのソースコード管理はGithubを使うと良いと思います。
フレームワークでは大抵テンプレートエンジン(PHPから受け取ったデータをhtmlの記法じゃない方法で表示するものだと思ってください)を使うことになります。
フレームワーク・テンプレートエンジンは色々あるのでググってみてください。
テンプレートエンジンが使えるようになったらCSS・SassとかJavaScriptとかやると良いと思います。
まとめると
CCNA(ネットワーク)->LPIC(サーバー)->DB(SQL)->NoSQL->PHP(サーバーサイドプログラム)->CSS・Sass・JavaScript
道は長いけど頑張ってくださいm(_ _)m
投稿2018/06/19 02:00
編集2018/06/19 02:02総合スコア19
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
一つのことばかり勉強しようとしても壁にぶち当たりやすいので、
時間を区切って並行していろんなことを興味を持って取り組むのが良いかも。
一日の中で複数の分野にちょっとずつでも携わると良いです。
人間、長く取り組もうとすると飽きてきやすいので、
飽きてきたなと思ったらちょっと他の分野を学習するのが
長続きの秘訣かも。
CCNAって資格試験でしょうから、これを軸に
試験日までのおおよそのスケジュールを決めて、
サブとして一日いちにちなんの分野をつまみ食いするか、
サイドメニューを考えるという感じでしょうか。
頭に詰め込むだけだと理解したと錯覚しがちなので、
プログラミング言語やデータベースなどは自前で環境構築して試しやすいので、
そういうのもつまみ食いすると楽しいです。
投稿2018/06/13 01:23
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
サーバエンジニア(構築/保守)から、Railsエンジニアへの転身を目指して勉強中の者です。
まずインフラエンジニアとしてのキャリアを固めつつ、でもプログラミングにも興味があると理解しました。
下位層から学習していくのがいいと思います。
ネットワーク(Cisco) ⇒ サーバ(Linux) ⇒ データベース(MySQL) ⇒ Webアプリ(PHP)
自宅PCにLAMP環境を構築して、その環境内でLinuxやMySQLのコマンドを色々実行してみて、ある程度理解が深まったら、PHPでプログラミングを始めてみるのがいいと思います。
投稿2018/06/18 23:34
総合スコア15
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/06/13 01:25 編集
2018/06/13 01:26
退会済みユーザー
2018/06/13 01:30
2018/06/13 01:32