最新記事一覧

Java開発環境を作ろう-JDKインストール編-

From: リスキルテクノロジー 松田航
新宿本校にて、、、

以前のブログで
Javaの基礎知識をご紹介しました。

CentOS7に
Javaがインストールされているかを
確認していたところ...

openJDK

...が既にインストールされていましたね。

openJDKとは
いったい何なのでしょうか。

openJDKって何ですか?

openJDKとはJavaSEの

「リファレンス実装」

...という位置づけです。

では
リファレンス実装とは
何でしょうかという話ですが...

プログラムを学ぶ時に
実際に動いているソースコードがあると

学びやすさは
確実にアップしますよね。

OpenJDKは
Javaの言語仕様を理解するために
オープンソース化されたものです。

実際には
openJDKとJDKは
ほとんど同じコードで書かれています。

細かいところでは
書き方の違いがあるようですが

機能的に
openJDKとJDKは同じもので

JDKの提供元である
Oracleも

openJDKは
JDKのリファレンス実装であると
公式に認めています。

つまり、
JDKがなくてもopenJDKがあれば
Java言語は学べるということです。

Oracle版のJDKをインストールするには?

それでも...

正規のJDKを使いたい!

...という方も
いらっしゃるでしょうから
JDKのインストール方法をご紹介します。

まずは
Oracleのホームページから
最新のJDKをダウンロードします。

出典:Oracle
step1

Java SE Development Kit 8u45

...が最新ですね。

Linux x86

または

Linux x64

のRPM版をダウンロードします。

x86とは32bit版のこと、
x64とは64bit版のことですので、
お使いのPCにあわせてダウンロードしてください。

ダウンロードする時には...

Accept License Agreement
(ライセンスに同意します)

...をチェックしないと
ダウンロードすることができません。

ダウンロードしたファイルは

ホーム-ダウンロード

に保存されています。
※保存方法にもよります

step2

さて、
今回はいつものように
コンソールからのインストールではなく

ウィンドウからの
インストールをしてみましょう。

このファイルを
右クリックして...

step3

ソフトウェアのインストールで開く(O)

を選択すれば
インストールが開始されます。

step4

途中で
パスワードを求められますので

入力して
インストールを続けます。

step5

インストール中の
メッセージが消えれば
インストールの完了です。

では、
インストールされているかを
確認してみましょう。

step6

openJDKに加えて
JDKがインストールされました。

openJDKとJDKのどちらが有効なの?

さて、
インストールはできましたが

今のところ
同じJavaでも...

openJDKとJDK

この両方が
共存していることになります。

Javaを実行するときは
どちらが使われるのでしょうか。

Javaコマンドで
アクティブなJavaを調べてみましょう。

CentOSが認識している
Javaのバージョンを確認します。

java -version

step7

どうやら
openJDKが認識されているようです。

Oracle版のJDKを使うには
どうしたらいいのでしょうか?

次回、
その方法についてご紹介しましょう。

リスキルテクノロジー
松田

PS

Oracle版のJDKでなく
openJDKでもJavaはきちんと動きます。

プログラミング講座ならこちらから

プログラミングの勉強をスタートしたとき楽になる考え方

プログラミング

From: 松田航
新宿サザンテラスのスタバにて

何かをはじめるととても大変です。ほとんど素人ですから何をやってもうまくいきません。いたるところでつまずきます。そして、だんだんいやになっていきます。

「何時間使ってもデバッグできない・・・。センスがないのか・・・」
「いくら考えてもオブジェクト指向で書けない。なんでだ!」
「うわぁ、またssh接続できなくなったよ。馬鹿か俺は」

その分野を勉強し始めたときは、どんなものであれ苦しくなるものです。そんなときはこう考えるのをおすすめします。

だんだん楽になる

今が大変だから、もっときつくなるんだと人間は思い込みます。この職業は向いていないんだ。違う分野に移動しようか。

今がこんなに大変なんだから、今後はもっと大変になるんだろうな、とか。

特に日本人はこの傾向が強いものです。楽して成果を上げた人よりも、一生懸命練習して成果を上げた人を褒め讃えるのが日本人の特色です。いわゆる成功者も嫌われたくはないため、「いや、大変だったのははじめだけだよ!」とは言わずに、「今も努力の連続ですよ」と言います。

しかし、実際には動き出すところが一番大変で、徐々に徐々に楽になっていきます。スーパエンジニアよりも、今日初めて学んだ人の方が大変で、偉大な仕事をしているのです。

物理の基本法則

大玉ころがしは、押すときが一番大変です。しかし、どんな重い球でも、転がり始めると、すぐにコロコロところがっていきます。「慣性の法則」が働くからですね。

絶対不変の慣性の法則によると、動いているものは動き続けようとします。反対に止まっているものは止まり続けようとします。

だからはじめは大変なのは仕方がないことで、少しでも動き出せば、後から加速させるのは割と簡単なのです。

学習曲線と呼ばれる曲線をご存知でしょうか? 学習時間と効果のグラフです。効果の伸び率がはじめは非常に悪い。しかし、それを残り超えると角度は急勾配になって生きて、一気に成長することができるようになります。

ただ、頑張ればいいのです。

まずは小さいところからはじめてみる

はじめが大変なのですから、いきなりすべて理想通りにやる必要はありません。これをやるから、誰しも挫折をします。

例えば、200ページある洋書に手を出してみたとしましょう。休暇中の10日間で全部読み切ると決意したとします。大抵の場合、「よし、1日20ページだな。今日から頑張ろう」と考え、初日もしくは翌日に挫折します。

そうではなく、「今日は初日だから1日10ページにしよう。その代わり丁寧に読もう」とすると、結果目標をクリアすることが多くなります。

最大限の結果をまずは望まず、まずは小さいことからはじめてみる方がいいのです。

・オライリーの新書を買ったら、まずは目次だけでも読んでみる
・英語の勉強を決意したら、洋楽を聴くようにする
・技術ブログをはじめようと思ったら、まずはブログだけ開設してみる

などですね。まずは抵抗のない、小さいことからはじめましょう。それだけで目標への到達率が大きく変わってきます。

もしあなたが今、やりたいと思っていることがあるのなら、今日まず何かしらの行動を起こしましょう。それはとても小さいことで構いません。

あなたは何からスタートしますか?

松田

PS

はじめは苦労が多く、疲れてしまい逃避しがちなので、強制的にプログラミングを勉強しなければならない状態にするのがいいです。

一気にレベルが上がるプログラミング講座はこちら

Java開発環境を作ろう-基礎知識編-

From: リスキルテクノロジー 松田航
新宿本校にて、、、

エンジニアになるために
習得しておきたい言語のひとつに...

Java

…が挙げられます。

以前のブログで
CentOSをインストールしましたが…

そこに
Javaの開発環境を作りたいと思います。

まずは
Javaに関する基礎知識からご紹介しましょう。

Javaって何ですか?

Javaは1990年代に
Sun Microsystems社によって
開発されたプログラミング言語です。

Web上で話題となっている
プログラム言語をランキングしている…

TIOBE Programming Community Index

において
Javaは常に上位に位置しており、

就転職市場でも
習得していれば有利な言語です。

出典:TIOBE Programming Community Index

TIOBE

Java人気の理由のひとつに…

プラットフォーム(環境)に依存しない

...という点が挙げられます。

他のプログラム言語は

特定の機種やOS上でしか動作しない!

...というものが多いのですが、

Javaで作ったプログラムは
どのような環境でも動作するのです。

その理由は...

Javaバーチャルマシン(JVM)

にあります。

JVMをすごく簡単に言うと、
どんな機種やOSに対してでも

Java言語を翻訳して
プログラムを実行できるようにするものです。

言語的にも
技術者人口の多かった
C言語やC++に似ている構造ですので、

技術者にとっては
取り組みやすく、

Javaが市民権を得るまで
多くの時間がかからなかったと言えます。

JDKとJREって何ですか?

Javaについて
少しでも調べたことがある方は

JDK
JRE

という言葉を
目にしたことがあるでしょう。

Javaだけではないですが、
プログラム言語では

このような、
略語が多く使われていますので、
混乱する方もいらっしゃるようです。

この2つの言葉の違いを
簡単にご説明しましょう。

JDKとは

Java Development Kit

の略で...

Javaを使った
アプリケーション開発に必要なものです。

JDKには
開発において必要となる...

・コンパイラ
(プログラムを実行形式にする機能)

・デバッガ
(バグ発見・修正を支援する機能)

・クラスライブラリ
(開発を効率化するライブラリ)

・ドキュメント生成
(ソースからドキュメントを自動的に作る機能)

...などが含まれたものです。

一方、JREとは

Java Runtime Environment

の略で...

Javaプログラムを実行するのに
必要なものです。

実行に必要なものですので、
Javaを使った開発はできません。

簡単に言えば...

・JDKはJavaアプリケーションを作るのに必要
・JREはJavaアプリケーションを実行するのに必要

...ということです。

ちなみに
JDKはJavaを実行しますので、
JREも含まれています。

じゃあJavaME、JavaSE、JavaEEって何ですか?

また略語だらけですね。

Javaは
ターゲットとなる環境により
製品を分けて提供されています。

JavaMEは...

Java Micro Edition

の略で...

家電製品などに組み込まれる
小型端末向けのJavaのことです。

JavaSEは...

Java Standard Edition

の略で...
一般的なPC向けのJavaのことです。

JavaEEは...

Java Enterprise Edition

の略で...
サーバーなどで使用される
企業向けのエディションになります。

ちなみに、
少し前までは
違う呼び名で呼ばれていました。

JavaME = J2ME
JavaSE = J2SE
JavaEE = J2EE

インターネットで検索すると
これらの単語が出てきますので、
混乱しないように注意してくださいね。

openJDKって何ですか?

それでは
いよいよ開発環境作りに入りますが...

まずは
JDKがインストールされていないか
確認してみましょう。

コンソールを開いて
以下のコマンドを入力します。

step1

...既にJDKが入っていますね。

ですが、

openJDK

...となっています。

openJDK?

また新たな言葉の登場です(笑)。

一般的なJDKとは
違うものなのでしょうか?

次回、
openJDKについてご紹介します。

リスキルテクノロジー
松田

PS

Javaを習得しておくと
エンジニアとして対応できる
開発のジャンルが飛躍的に広がります。

エンジニアを目指すなら
ぜひ習得しておきたい言語です。

Javaプログラミング講座ならこちら

初心者のためのリーンスタートアップ

From: 松田航

リーンスタートアップ。

IT、さらに言うと、ITスタートアップの界隈で話題になっている(なった)起業の方法論です。

これがなんで話題になったかというと、起業のプロセスがようやくすこし科学的になったからです。

キーワードは「検証」です。

今からリーンで立ち上げるプロジェクトがあるため、復習がてら書いてみます。

スタートアップはギャンブル?

for_blog_la

スタートアップというのは、当たるかどうかが正直わからないものです。チャレンジングなものほどその傾向が強く、Googleもそうですし、Facebookもそうです。仮に私が記憶がない状態で、過去に戻ってFacebookの創業メンバーと会っていたとしても、なんだこの連中? くらいにしか思わず、投資なんて考えもしなかったでしょう。

実際100社に投資して、1,2社当たればいいや、というある種のギャンブルです。

急成長するスタートアップになるのか? という疑問どころか、そもろもターゲットがいるのか? その商品にお金を払ってくれるのか? そもそも悩みが独りよがりでは無いのか? 

そういう不安を押しのけつつ、作って、当たれー!!!と祈るのが、スタートアップだったわけです。(いい過ぎですが)

リーンスタートアップでは、起業のリスクを最小限にし、意味のある失敗を繰り返すことで、成功へ近づいていく方法論を確立しています。これはとても革新的で、ちゃんとビジネスとしてやりましょうね、というのがひとつの案として示されたということです。

リーンスタートアップの要訣

リーンスタートアップの要訣はなんといっても、「検証による学習」にあります。

(1)すごく前

完璧なものをつくって、リリース。ウォーターフォール

(2)すこし前

とにかく早くリリース。全力で書け。アジャイル

(3)リーンスタートアップ

ちゃんと検証して、それが本当に必要なのか見てから、最小限作ろう。リーン

というのがざっくりな違いです。前と書いてありますが、現在でも主要は上の2つでしょう。

しかし、(1)(2)ですと、無駄なものを作る可能性が高くなります。どれだけ自信満々に作り始めても、まったくユーザが欲していないものを作りがちです。(実際に、僕は全力で利益にならないものをつくってしまいました)

そうすると、それまでに使った費用や工数はすべて無駄になり、だいぶ厳しいスタートアップ生活を余儀なくされます。bootstraping起業(自己資本起業)ならともかくとして、投資家がいたらより厳しいでしょう。詰められます。

だからこそのリーンスタートアップです。

顧客の課題・それに対するソリューション(解決策)・価格(収益)・チャネル、をきちんと検証し学習して、それからスケール(拡大)を考えよう、という話です。

例えば、靴の販売で有名なザッポスは、地元の靴屋の靴をそのままオンラインで販売してみて、ニーズを確認しました。

このように、実際に必要とされているものを、ユーザがいる+チャネルで売れている、という確認が取れれば、事業化および拡大に安心して走れることになります。

反面、ダメだった場合、すぐに調整してのピボットや、そもそものアイディアの再構築に時間がさけます。

やり方

やり方はだいたいこんな感じで流れます。もちろん考え方や本質の方が大事なので、参考までに。

①プランA(本来の計画)を作る

②プランで最もリスクの高い部分を見つける

③プランを体系的にテストし続ける

① プランAを作る

はじめのプランを作ります。ビジネスモデルの仮説を捕まえて、書き出します。

プランAはソリューションではなく、ビジネスモデル全体です。

なんの課題を持っているか?

では、ソリューション(解決策)は?

チャネルは?

収益は?

の流れです。ソリューションに拘り過ぎるのはやめましょう。ここ考えるのが一番楽しくて、大体の起業家が得意なところでして、その結果はまるのもここです。

もうすこし細かいところを考えるのであれば、リーンキャンバスというツールがいいでしょう。『実践リーンスタートアップ』の著者アッシュ・マウリャ氏が作成しているものです。

これら9つのブロックに内容を記述していき、ひとつのプランとするのです。

このリーンキャンバス何がいいって、作成するのに30分もかかりません。15分くらいで作成できます。

何枚も作成して、それをまともな相談相手に相談しましょう。まともな相談相手とは、起業or事業についての理解があり、相談に対してなんらかの適切な反応が得られそうな人です。

② プランで最もリスクの高い部分を見つける

「成功する製品の構築 = リスクを減らす」ですよね。なので、成功するためにはリスクを低減しないといけません。

スタートアップの最も大きなリスクとは、「誰も欲しく無いものを作ること」です。そのため、3段階に渡ってテストします。

■ 第1ステージ 課題/解決フィット

解決に値する課題があるのか?をテストします。

実はアイディアはとても安いのです。なんらかの課題を頭に入れつつ、10冊くらい起業家やマーケターの本を読んでみてください。きっと、新規のアイディアが2,3ノートに書かれているはずです。

しかし、そのアイディアに対して取り組むのは高いコストが必要です。

・それは顧客が必要としているものですか?
・顧客はお金を払ってくれますか?
・それは解決可能ですか?

この3つの問いに答えるために、顧客にインタビューをしましょう。

知り合いの知り合いくらいの距離感がちょうどいいですが、

■ 第2ステージ 製品/市場フィット

続いて、誰かに必要とされるものを構築したか? をテストします。

簡単に言えば、必要最低限のものだけを用意して、実際に売ってみるということです。

とにかく必要最低限のものです。売るのに必要最低限。コア部分だけという意味ですね。アーリーアダプターが好みそうなあれです。

実際に売ってみるのも手っ取り早いのですが、顧客へのインタビューを挟むのもいいでしょう。そして、買ってくれた人がちゃんと使ってくれるかを確認しましょう。

使ってくれていないのであれば、またインタビューです。で、修正するところは修正する。

■ 第3ステージ 拡大

ここまでできて初めて拡大を考えます。

成長するための方法をひとつに絞って、時間や資金を投下します。これもちゃんとテストをしているはずですから、安心してお金を入れられるはずです。

ここまでしっかりと検証・学習に時間を費やせば、安全側な起業ができるようになります。

③ プランを体系的にテストし続ける

そして、一度検証して終わりではなく、構築 - 計測 - 学習のループを回し続けます。

常に、仮説=>検証=>結果を確認します。

・顧客はこれを悩んでいるんじゃないか?
・これだったらその悩みを解決できて、そこでお金がもらえるんじゃ無いか?
・実際に小さいものを用意して売ってみようか? 小さい機能追加してみようか?
・売れた? じゃあ、本格的に用意をしよう

です。

なので、失敗するのであれば、一刻も早く失敗する。それが学習ループです。

リーンスタートアップとはこのような起業方法です。従来の方法に比べて、かなり精度が高くスタートできるのがわかります。

サイバネティクス理論を取り入れた、誘導ミサイルみたいなものですね。

ただし!!!

リーンスタートアップがよくわからず、悩んで足が止まるくらいだったら、いいからガンガン進めちゃった方がいいんじゃないかと、個人的には思っています。

普通の人や、スタートアップ初心者がごちゃごちゃ考えると、たいてい進まずに諦めるもんです。

特にその分野自体をはじめてやる場合、どちらにせよ、よくわかりません。

検証とか言われましても。。。というのが正直なところだと思います。

突っ込んで、一回叩きのめされて、2回目突っ込む時に「ああ、リーンスタートアップって正しいよね。これだよね」というふうに言えるようになったほうが健全だと思っています。

業界に詳しければ、別なんでしょうが、強くそれを感じています。理論だけの人は行ったり来たりで進まずに、割と大変そうだなぁ、とはたから見て思います。

ただ、なんにせよ、最低限のテストを実施して、失敗するまでの速度を速めるという感覚は、持っておくといいのではないでしょうか?

松田

エンジニアにとってのレビューとは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

プログラムや
システムの設計は

作っておしまい!

という訳にはいきません。

必ず内容を
他の人に説明する必要があります。

今回は
エンジニアとっての

「レビュー」

についてお話ししましょう。

エンジニアにとってのレビューとは?

芸術家が絵を描いて
見事な作品を作ったとします。

誰もが見惚れる程の
美しい抽象画です。

しかし、
芸術家はその抽象画について

絵の表現する意味や
細かい内容については

見る人に説明する必要ありません。

絵画は
人の感性に訴えかけるものです。

説明することで
見る人が受ける感覚を
惑わせてしまうケースもあります。

しかし
エンジニアが作る
プログラムや設計書などは

感性ではなく
理論や手法を明確にしたものです。

芸術のように
人によって受け止め方が違うと
問題になる場合もあります。

そこで
他のエンジニアやユーザーに

「レビュー」

という形で
内容を詳しく説明する必要があるのです。

読んでおいてください-だけではダメなのです

設計書も
プログラムソースもあるのに
どうしてレビューが必要なの?

それを見て理解すればいいでしょう?

...という
エンジニアも中にはいらっしゃいます。

しかし、
どれだけ優れたドキュメントでも

読み手によって
理解できる範囲が異なります。

例えば...

参考書を買って勉強したという
経験を持つ方は多いでしょう。

勉強していくうちに...

「書いている内容がイマイチわからない」

「説明がむずかしい」

と思う箇所が
必ず1つや2つは出てくるものです。

そういう時に
読み手に合わせて丁寧に教えてくれる
講師がいれば理解できますよね。

レビューにおいては
関係者に内容を理解してもらうことも目的です。

設計書やプログラムを
作った本人だからこそ、
一番詳しい講師になれるのです。

エンジニアが行うレビュー

エンジニアは
レビューをする機会も
レビューされる機会も多いと言えます。

システム開発を進める上で、
よくあるレビューに次のようなものがあります。

■1: 設計レビュー

基本設計や詳細設計など
システムの設計内容について

エンジニアやユーザーに
説明することが目的のレビューです。

内容の理解を深めるの
ももちろんですが...

設計ミスを早い段階で
発見して修正するのも目的のひとつです。

2: ソースレビュー

プログラマが作った
プログラムソースを、

他のエンジニアに説明し、
適切な処理内容が行えているかをチェックします。

ほとんどの場合は
開発チーム内で行いますが、

ソースがわかるユーザーがいる場合は
ユーザーが参加するケースもあります。

3: テストレビュー

テスト仕様書や
テスト結果についてのレビューです。

テスト内容や
テストの種類に問題がないか、

不具合があった場合、
何が原因で不具合が発生したかなどを
主にユーザーに向けてレビューします。

これ以外にも
いろいろなレビューがありますが、

所属している企業やチームによって
レビュー対象は異なります。

レビューするにあたってのポイント

レビューを苦手とする
エンジニアは少なくありません。

黙々と仕事をするのは得意でも、
人前で何かを説明することが苦手!

...と言う方は多いです。

それでも、
エンジニアを続ける限り
レビューする機会はなくならないでしょう。

そういう方は、
ソースコードにコメント多用したり、

わかりやすい言葉を使って
設計書を作ったりと、

プログラムや設計書を
丁寧に作るようにしましょう。

実際のレビューでは
作成物を見ながらレビューするのですから、

丁寧に作っていれば
それを読み解く形で進めることができます。

あとはストーリーですね。

どのような流れで
レビューを進めるのかを思い描いて
レビューすれば大丈夫です。

レビューに関しては...

トーク力を高めなければいけない!

と考える方もいらっしゃいます。

それはそれで
間違いではないのですが、
トーク力を高めることが必要なのではありません。

得意不得意は誰にもあります。

トークが不得意ならば、
丁寧なドキュメントを作り、

レビューの際に
トーク力不足を補うと言ったように...

あなたの不得意分野を
得意分野でカバーできるように
それをカバーできる工夫を忘れないようにしましょう。

リスキルテクノロジー
松田

PS

誰もが優れた能力を
持っている訳ではありません。

しかし、
それに近づくための
向上心を持つことこそが大切なのです。

そして、
あなたの能力を高める手助けをすることが
私たちの役目でもあります。

講師にリアルタイムでレビューしてもらえるプログラミング講座

エンジニアのための時間管理術

時間管理術

From: 松田航
新宿本校にて

「今日、あなたはなんの仕事をしましたか?」

この質問に明確に答えられるエンジニアは幸いです。

新人エンジニアや新しい職場に入ったばかりのエンジニア、もしくはフリーでやっているエンジニアは割ときちんと答えられるでしょう。

しかし、企業に長くいればいるほど、本来やるべき仕事から遠く離れたことに時間を使ってしまいがちです。時間管理術を身につけると、仕事の効率が格段にあがります。

本来やるべき業務ができていない

for_blog_la

設計だったり、コーディングだったりすると思いますが、あなたが本来するべき仕事がほとんどできていない日が多くあるはずです。とくに最近では、1日2時間も生産的な時間が取れていないという感想を持ったエンジニアが急増しています。

本当の力から言えば、3時間で終わるような機能追加が、異常なほど時間が取られ、3日経っても終わらないというようなことがあるはずです。

これには、主に二つの理由があります。

大きく時間を取られることが沢山ある

これは会議や顧客への訪問などです。

会議を至上命題と捉えている会社員は多いもので、会議が多ければ多いほど、その分生産に使える仕事が減っていきます。

これは仕方ない部分もあり、会議がないと進まない場合もあるのですが、時間は制限すべきですし、最低でも区切るべきです。いらなくなった人は随時リリースするなど。

大きい時間がまるごとドカっと取られていると、そこに至るまでの時間もなかなか集中できません。集中しても、すぐに会議があるとわかっているからです。

ですから、会議の数は少なく or まとめてやる。

そして、会議自体も時間を少なくしても、目的に沿ったものにしましょう。

時間節約のアイディアは沢山あり、例えば、立って会議をするなど。弊社では実行していますが、会議の時間が20-30%ほど減ります。

短い時間のロスが沢山ある

とはいえ、なかなかどうして大きい時間のロスは減らしにくい物です。とくにあなたが上の立場でもなければ、、、まず意見するのは難しいでしょう。

それは仕方がないことです。階層社会にいる訳ですから、上司の命令にはある程度従うべきです。(そのために会社組織があるわけですし)

では誰しもが解決できる問題はというと、短い時間のロスをなくすということです。短い時間というのはそれこそ、3分や1分、30秒といった極短い時間です。

実はこの時間がかなり大事なのです。

なぜか? 

人間は一度切れた集中力を戻すのに、ものすごい時間と体力を必要とするからです。

一度集中状態に入ったら、その状態をなるべく維持する努力をしなければいけません。プロの将棋を見ていればわかりますが、誰も音を立てようとしません。音を立てる対局者は全般的に嫌われます。

それくらいノイズなどの集中力を妨げるものはアウトとみなされるのです。

その中でも特に対処が必要はのは、下記の3つです。

時間泥棒その1メール

メールというか、メッセージといった方が正確でしょうか?

SlackでもChatworkでもスカイプでも構いませんが、なんらかのメッセージです。メッセージが来るたびに、アラートを発信して、それを読みにいっている人がいますが、あれほど非効率なことはありません。

アラートなんて全部切りましょう!

通知はすべてオフ。

そして、読む時間を限界まで制限しましょう。例えば、メールは1日に3回も見れば十分です。とにかく見ない。

見るときはそれようの時間をあらかじめスケジュールに追加しておく。それくらい、見ない。その時間以外は見ないという固い意志をもってください。

もっとも大きな時間のロスがこれです。

確かに人付き合い的には厳しくなるかもしれませんが、生産性は10倍くらいになります。一週間でいいので試してみてください。(本当に)

また、当然ですが仕事中にSNSにアクセスするとかもNGの極みです。同様の理由で。

時間泥棒その2 電話

これはできる人だけやってください。できない人もいるでしょう。

しかし、電話から極力離れるという考えは持っておいて損はないです。電話の近くにいて、いいことはないです。

当たり前ですが、かかって来たらとらなくてはいけないのですから。

対顧客の部署では電話がもっとも大事なものなので、必ず、一瞬でも早く取るべきです。

しかし、エンジニアは違います。エンジニアの存在目的はプロダクトを作ることです。内戦の電話や顧客からのマニュアルに書いていあるようなサポートのために存在するわけではありません。まして、営業の電話をうけるのなどは論外です。

とにかく電話から逃げましょう。(逃げられるなら)

※ 顧客サポート部隊に属しているのに、逃げるとかは職務怠慢なのでやめましょうね。

時間泥棒その3 話かけらる

話しかけられるのはエンジニアの常です。他のエンジニアからだったり、営業さんからだったり、PMからだったりしますが、とにかく常に話しかけられます。IT企業以外でエンジニアをやっている人ほどそれを理解しているでしょう。

なぜなら彼らは他の人の時間や集中力を大事なリソースだと思っていないからです。

ではどうするべきか?

まずは、話しかけるなオーラを出しましょう。いえ、不機嫌そうにしろというわけではなく、イヤホンをして、画面にのめり込むように仕事をしましょう。それだけで、話しかけてくる人の数は激減します。びっくりするほど。

イヤホンは極力大きい物。イヤホンよりはヘッドホンの方が良いです。

そしてちなみに、コーディングをしながら、音楽を聴くのは止めましょう。明らかに集中力を切らします。マルチタスクは、人間には向いていません。

音楽はOFF。見せかけだけのヘッドホンを装着しましょう。

つづいて、打ち合わせの時間を決めてもらう。

5分でも10分でも打ち合わせの時間を決めてもらう習慣を持ちましょう。

ちなみに60%くらいの質問は時自分で解決できるものだったりします。調べるのが面倒だから聞いたりですとか、自分で考えるのが億劫だから聞いたりですとか、責任を一緒に追ってねという意味での質問が大体です。

なので、これだけで質問が4割くらいは減ります。なぜって、会議を設定するよりは自分で考えた方が楽だからです。

時間が倍増する

これだけで、今までの2倍は集中の時間が取れるようになります。そうすれば生産性があがりますし、バグを直すのも、顧客からの希望機能を作ることもできます。結局社内全体にとってはいいことだらけです。

性格悪くなれ、というわけではなく、自分の集中力を最大限生かすためにはどうすればいいのかを意識しましょうという話です。

これがなかなか難しいという人は、自分がどこに時間を使っているか、測ってみることをおすすめします。かなりの危機感を覚えて改善の方向に向かおうと思い出すはずです。きっと!

時間というリソース、あなたは大事に扱えていますか?

松田

PS

ちなみに、だからこそ、自分もそれをするのをやめましょうね。
相手の集中が切れたときを見計らって、話しかけたり、依頼をしたりしましょう。

PPS

プログラミング・エンジニアリングを学ぶならこちらから

エンジニアリングと2進数・16進数(基礎)

From: リスキルテクノロジー 松田航
新宿本校にて、、、

システムの学習を
進めていると

「2進数」
「16進数」

...という
耳慣れない言葉を学びます。

10進数とは異なる
このような数の考え方が

システムの学習に
どうして必要なのでしょうか。

さまざまな数の数え方

普段の生活で
使われるのは10進数です。

言う間でもありませんが、

0,1,2,3,4,5,6,7,8,9

と数えてゆき、
9の次は桁上がりして

10

となる数の考え方ですね。

人間の手に
10本の指があるから
10進数が定着したとも言われています。

他には
60進数も使われますね。

時計の考え方です。

0...57,58,59

と数えてゆき、
59の次は桁上がりします。

1時59分の次は
2時0分になりますね。

こちらは
古代のバビロニア帝国で使われた
数の考え方です。

そして
コンピュータが登場して

世に定着しはじめたのが
2進数と16進数の考え方です。

2進数は

0と1だけで数えます。

2になると
桁上がりする数え方で、

0,1,10,11,100...

...と数えます。

これを10進数で言うと

0,1,2,3,4...

にあたります。

16進数は
16の次に桁上がりする数え方で、

0,1,2,3...9,A,B,C,D,E,F

と数えてゆき、
F(16)になると桁上がりします。

F,10,11,12,13...1F,20,21,22...

と数えます。

ここまでよろしいでしょうか。

あまり理解できなくても...

普段の生活とは違う
とっつきにくい数の考え方!

という風に覚えておいてください。

コンピュータは2進数しか扱えない

基本的に
コンピュータは
2進数しか扱うことができません。

コンピュータには多くの

IC(Integrated Circuit)

…が含まれています。

コンピュータの中身を
見たことがあるならわかりますが、
黒い虫みたいな部品のことです。

最近では
小型化、薄型化されて
ICカードに内臓されていますね。

このICでは
多くの計算が行われていますが、

実際には...

0か1

...しか判断できないのです。

0か1

つまり、

0 = 電流が流れていない状態
1 = 電流が流れている状態

ですね。

ICカード内では
0か1を判断するエリアが複数あり、

その単位を

ビット(bit)

...と言い、

8ビットだと
一度に8つ判断できるという意味になります。

最近のPCは

32ビットマシン
64ビットマシン

と言いますが、

文字通り
一度に計算できる量(実行速度)が
多いことを表しているのです。

プログラムを書いていると
多くの命令文が存在しますが、

結局のところ
コンピュータ上で実行される時には

0,1

という電気信号に変換された
プログラムが実行されるのです。

人間が使う
10進数でコンピュータと
やりとりしようとしても

コンピュータは
ONかOFFの2進数しか扱えません。

機械を制御するにしても
通信してデータを送るにしても

最終的には
2進数で行う必要があるのです。

2進数と相性のいい16進数

しかし、
2進数にも欠点があります。

それは

人間にわかりにくい!

...ということです。

たとえば

10000

という10進数を
2進数で表すとなると

0010011100010000

...になり、
表している数がわかりにくいですね。

ここで表れるのが16進数です。

16進数は2進数と相性がよく、

2進数を4桁ずつ区切ると、
16進数で表現できます。

0010 0111 0001 0000

それぞれの区切りを
16進数に変換すると...

2 7 1 0

...になり、

0x2710

...となります。

ずいぶんと短くなりますね。

最初の0xは...

16進数で表現していますよ

という意味です。

プログラムや仕様書に
16進数で表現しておけば、

長い2進数を
書く必要もありませんし、

処理においても
2進数に変換しやすく、

コンピュータにも
複雑な変換処理が必要なくなるのです。

制御系やインフラ系ではよく使います

一般的なシステム開発で
2進数や16進数を使うことは
あまりないかも知れません。

ほとんどの
プログラムや仕様書では

10進数がベースで
書かれているためです。

しかし、
機械を操作する制御系システムや、
インフラ系エンジニアにとっては

2進数や16進数を
目にする機会は増えることでしょう。

その時になって
慌てないためにも、

今のうちから
2進数、16進数に馴染んでおいてください。

リスキルテクノロジー
松田

PS

私も最初は戸惑いましたが
学んでいくうちに次第に慣れます。

何でもそうですが、
知ることで不安は消えます。

安心して多くを学びましょう。

ネットワークの研修ならこちら

over 初心者の罠

From: 松田航
サザンテラスのスタバにて

「えっとここって何が書いてあるんですか?」

「ああ、これは◯◯している場所ですね」

「これって何してる関数ですか?」

「これは△△のモデルにデータを取りにいっています」

「ここで宣言している変数って何に使っているんですか?」

「えっと、これは、、、」

うちのスタッフとの会話です。

彼はかなり育ってきたスタッフで、スラスラとコードを書いてくれるようになっています。ほとんど放置しても大丈夫で、とても楽になってきました。

しかし、最近プルリクでコードを確認すると、上記のような会話が頻発するようになってきました。

僕の理解力が低いのではという話は置いておいて、これは少しまずい傾向です。

初心者を抜け出して、少しコードが書けるようになってくると、陥る罠があります。

かっこよく書きたくなる

for_blog_la

ビギナーのレベルを超えた人間が次に目指すのは「かっこよく」です。特に男性陣はその傾向が強い。

・とにかく短く書こう
・とにかくライブラリ化して使いまわせるようにしよう
・関数をたくさん作ろう(何をとってきてんだかわからんgetホニャララ)

とか、そのような感じです。これは初心者ゾーンを抜けたエンジニアによくある病です。

当然、これらが100%いけないわけではありません。向上心も二重丸です。しかし、程度もんだという話です。

目指すべきゴール地点がずれているのです。

かっこよく書くのがゴールか?

なぜ、コードを短く書くかというと、その方がわかりやすく読みやすくなる「可能性が高い」からです。

1万文字の文章と3000文字の文章、どちらの方が早く読み終わるでしょうか?

後者の方が、時間がかからないですよね? 

コードも一緒で、3000行のコードと1000行のコードを読むとき、後者の方が早く読めます。

だからこそ短く書くべきなのです。

ライブラリや関数を作って使うのは、それが再利用できて、便利で、コードが読みやすくなるからです。

解読難度の高い1行を作った時点で、どんなに短いコードであっても、読むのに時間がかかるようになります。

少なくとも今は一回しか使わないものをライブラリ化しても、工数も無駄にしますし、コードを読みに行くのが非常に手間です。(3回くらい同じこと書く必要ができたらやるべき)

ゴールは読みやすく

「かっこよく」という定性的な自己満足ではなく、「読みやすい=他人が読んで時間がかかりずらい」という定量的なゴールを目標にすべきです。

自分だけ知っているニッチなフレームワークの隠れ関数を叩いても、他の人にとっては邪魔なだけです。

自分以外が読んでもわかるか否かを基準にコードは書くべきなのです。

どうしても使いたくなったら、上にわかりやすいコメントを書きましょう。(社内wikiは読みに行くのが手間だし、そもそも調べにいかないことが多々)

メンバー全員が、「周りの人が読みやすいコードを」を意識して書いてくれれば、それだけでいいプロジェクトになりますし、メンバーが仮に抜けたとしても、その後のフォローは格段に楽になります。

読みやすいコードを書くには?

オライリーのリーダブルコードを読みましょう。

以上! 笑

あとは、コミュニケーションと一緒です。一人で暴走しないようにしましょうね。周りに合わせて話す大きさと速度を変えましょうね、ということです。

松田

PS
空気を読めという話ではないので、それが全員に伝わるように研修をやるとかも可。

ただし、新しく入ってくる人がわからないので、マニュアルを作るか(面倒だけど、、)、もういっそプログラムごとの標準的コーディング規則およびドキュメントや本に頼りましょう。

PPS
プログラミングを学ぶならこちら

MySQLを使ってみよう-SQL編-

From: リスキルテクノロジー 松田航
新宿本校にて、、、

以前のブログで
MySQLのインストールから...

データベースの作成までを
ご紹介しました。

今回はSQLを使って
実際にデータを登録してみましょう。

テーブルを作ってみよう

データベースでは
さまざまなデータを管理します。

登録されるデータは...

「テーブル」

...と呼ばれる単位で
管理されています。

住所録のような
一覧表をイメージしてください。

列には
住所や氏名などの項目があり、

行には
それぞれの住所データが
掛かれています。

テーブルも同じで
列に項目、行にデータを
設定してゆきます。

もちろん、
住所データだけではなく、

管理するデータによって
それぞれの項目が変わってきます。

テーブルがなければ
データを登録することはできません。

そこで、
まずはテーブルを作ってみましょう。

以前のブログで
MySQLで作成した
linuxacademyデータベースにアクセスします。

step1

それでは、
電話帳テーブルを作ってみましょう。

テーブルを作るには
CREATE TABLEコマンドを実行します。

telephone
というテーブルに...

num(電話帳番号)、
name(氏名)、
tel(電話番号)

...という項目を設定します。

INT(2)というのは
2ケタの数値の項目、

VARCHAR(40)というのは
半角40文字の項目を意味します。

step2

実行したら、
テーブルができているか確認しましょう。

テーブルの構造を確認するには
DESCコマンドを使います。

step3

テーブルが作成されていますね。

SQLでテーブルにデータを登録しよう

続いて、
telephoneテーブルに
データを登録してゆきます。

データベースで
データの登録や参照をするには
SQLがつかわれます。

SQLの基本は以下の4種類です。

・SELECT : データを検索する
・INSERT : データを登録する
・UPDATE : データを更新する
・DELETE : データを削除する

まずは、
INSERT文を作成して
新しいデータを登録しましょう。

INSERT文は
次のフォーマットで書かれます。

INSERT INTO テーブル名 (項目1, 項目2...)
 VALUES (値1, 値2...);

今回、
telephoneテーブルに登録するので...

...と設定しましょう。

step4

データが登録できました。

では、
登録したデータを
検索して見てみましょう。

データを検索するには
SELECT文を使います。

SELECT文は
次のフォーマットで書かれます。

SELECT 項目1, 項目2...
FROM テーブル名
WHERE 条件式1, 条件式2...

条件式は
特定のデータを検索する時に指定します。

ここでは
numが1のものを指定します。

SELECT num, name, tel FROM linuxacademy WHERE num = 1;

これを実行すると...

step5

登録されている
データが表示されました。

では次に、
登録データの電話番号を変更してみましょう。

データの変更するには
UPDATE文を使います。

UPDATE テーブル名
 SET 項目1 = 値1, 項目2 = 値2 ...
 WHERE 条件式1, 条件式2...

条件式には
変更するデータを指定します。

UPDATE telephone SET tel='0120111222' WHERE num = 1;

これを実行して
先程のSELECT文で見てみましょう。

step6

電話帳番号1の
電話番号が変更されています。

それでは最後に
登録したデータを削除します。

削除するには
DELETE文を使います。

DELETE FROM テーブル名
 WHERE 条件式1, 条件式2...

条件式は
削除するデータを特定する時に使います。

これを指定しないと
全データが削除されますので
注意が必要です。

DELETE FROM telephone WHERE num = 1;

これを実行して
先程のSELECT文で見てみましょう。

step7

Empty Set...

つまり、
データが削除されていますね。

操作しながら学びましょう

SQLは
一見すると簡単に見えますが...

実際の
システム開発では、

複数のテーブルを
組み合わせた検索方法や...

複雑な条件式が書かれた
非常に長いSQLが使われることもあります。

まずは
実際に操作しながら
SQL文を習得してゆきましょう。

実際に操作しながら学ぶことは
習得への近道です。

リスキルテクノロジー
松田

PS

データベースも学ぶ研修なら

未経験者・初心者がプロフェッショナルエンジニアになるためにやるべきこと

From: 松田航
新宿サザンテラスのスタバにて

つい先日、LPI-Japan(LPIC主催団体)の会合で、デージーネットの恒川さんとお話をする機会がありました。『ドラッカーさんに教わったIT技術者が変わる50の習慣』を書いている方ですね。(IT系の本としては、とても珍しいほど売れている良本です。ぜひご一読を)

せっかくの機会だったので、質問をしてみました。

「プロフェッショナルなエンジニアになるために、
 まずやるべきことってなんだと考えていらっしゃいますか?
 未経験や初級レベルから意識すべきことで」

ほとんど当たり前かのように、恒川さんが出してくれた答えが、

「タイピングをとにかく速くすることでしょう」

でした。

タイピングを速く!

for_blog_la

恒川さんの会社では入って来る新卒に対してもタイピングを徹底するように指導するそうです。会社にソフトがあり、そのソフトを基準に実施しているのだとか。

とにかくエンジニアの最低限の条件としてタイピングを早くしてもらわないといけないという話をしてもらいました。

即答でこの回答が来たことは、とても意外でしたが、たしかに納得できるものでした。

なぜそれほどタイピングが大切か?

答えはわかりやすくて、思考をすぐにアウトプットできないと、思考の速度がタイピングの速度になってしまうからです。

一般的な社会人にも必要な能力ですが、エンジニアはなおさらです。エンジニアは書くことが仕事ですから、思考をそのままなるべく速くアウトプットでないと、話になりません。作家さんなども同じなのですが、自分の思考スピードでものが書けないと、その速度でしか思考が進まなくなります。

人間は多くの場合アウトプットの速度に合わせて思考をします。話すのが早い人は頭の回転が早い傾向にあるのも、それが一因でしょう。

エンジニアの生産量には100倍の差があるという話がありますが、生産性の高い人は確実にタイピングも早いです。

トライアンドエラーに速度の差が出る

また、タイピングが速くなるメリットにトライアンドエラーが繰り返せるというものがあります。恒川さんの本にも詳しく書いてありますが、タイピングだけで5〜10倍の差がでます。

トライアンドエラーを1/5しか実施できなければ、その分、学ぶ量が圧倒的に少なくなるのはよくわかると思います。その分だけ成長率は下がりますし、長期間見ると大きな差になってきます。

タイピングをどれだけトレー二ングするかで、そのときの生産量だけではなく、成長の速度も変わってくるということです。

仕事ができるように見える!

もうひとつ、副次的な効果ですが、タイピング早いだけで仕事ができるように見えます。それはもうびっくりするほど仕事ができるように見えます。

近くにいるタイピング早い人を思い浮かべてみてください。多分、仕事も速い、印象がないですか? 実際の仕事量はなかなかわかりにくいのですが、タイピングの速度だけでファーストインプレッションに大きな効果があるのです。

タイピングの速度を上げるだけで仕事ができるように見えるのであれば、これほど楽なことはありません。ひたすらに向上させるべきです。話し方を変えるとか、プレゼンスキルを身につけるとか、発想力を上げるとかよりも目標が具体的なだけに目指すのが楽でしょう。

LAの授業や研修でもそう

また、授業・研修でもタイピングが遅いため、打つにのに必死になり、授業についていけないという人がやはり出てきます。

授業がわからないという相談の大きな原因が、だいたいここにあります(本当です)。タイピングに必死になり、考えるという時間がないのです。じゃあ、長く時間を取ればいいのかというとそういう訳でもありません。人間が集中できる時間はそれほど変わらないので、いつまでたっても終わらなくなります。結果、途中で挫折しがちです。

LAでも極力練習をしてから、クラスに入ってもらうようにしています。そうすることで、習得率はあがりますし、考える時間がとれ、質問の質も上がり、クラス全体がいい雰囲気になります。

練習方法と基準

練習方法は、とくにはじめのうちは、なんでも構いません。ウェブにいくらでもタイピングソフトやタイピング練習サイトが落ちているのでそれを利用しましょう。

私がよく研修などでも利用するのは、「寿司打」です。寿司を食べていくら儲けられたかというゲーム性も強いタイピングソフトです。検索してみてください。

ただ、慣れてきたら、日本語ではなく、英語のソフトを使ったほうがいいでしょう。

日本語ももちろんたいせつなのですが、どちらかというと、初心者がつまづくのは記号です。そちらも練習をすべきです。

オススメは下記サイトです。

http://typing.lk/

コードのタイピング練習には最適です。

理想的には1秒間に10文字程度のペースで打てるようになるといいです。

練習しましょう!

速くする方法はひとつだけ。練習あるのみです。

あまり意識したことがない人も多いでしょうが、確実にあなたの人生を向上させるので、時間を見つけつつ楽しんで実施してみるのをオススメします。

松田

PS
プログラミングを学ぶならリスキルテクノロジー

MySQLを使ってみよう-データベース作成編-

From: リスキルテクノロジー 松田航
新宿本校にて、、、

以前のブログで
MySQLのインストールや、

MySQLを使うための
初期設定を行いました。

いよいよ
実際にMySQLを操作してみましょう。

今回は
MySQLの起動とログイン、

そして
データベースと
ユーザーの作成方法をご紹介します。

MySQLを起動しよう

まずは
MySQLを起動します。

起動するには
CentOS7から採用された
systemctlコマンドを使います。

これで
MySQLが開始されます。

ちなみに...

MySQLを停止するには...

再起動するには...

です。

実行したら、
起動したかを確認しましょう。

で確認できます。

step1

状態は...

active(running)

となっているので
MySQLの起動が確認できました。

MySQLにログインしよう

それでは
いよいよMySQLにログインしてみましょう。

まずは
管理者権限でログインします。

MySQLに
ログインするためには...

mysql -u ログインするユーザ名 -p

と入力します。

管理者は「root」ですので...

ですね。

次に
パスワードの入力が求められますので

初期設定の時に登録した
管理者パスワードを入力します。

step2

これでログインできました。

データベースを作成してみよう

MySQLの
データベースを作成してみます。

まずは
現在登録されている
データベースを見てみましょう。

データベースを
一覧表示するには
次のコマンドを入力します。

コマンドの最後に

「;」(セミコロン)

を入力する点に気を付けてください。

MySQLにログインした後は
コマンドの最後にセミコロンを入力して

入力がここまでです!
ということをMySQLに知らせる必要があります。

step3

登録されている
データベースが表示されます。

では、
自分で使うための
データベースを作成してみましょう。

データベースを
作成するには次のコマンドを入力します。

ここでは...

と入力して…

linuxacademy

というデータベースを作りましょう。

コマンドを入力後、
データベース一覧で確認します。

step4

linuxacademyという
データベースが作成されていますね。

ユーザーを作成してみよう

続いて
MySQLにログインできる
ユーザーを作成してみましょう。

ユーザーを作成するには...

と入力します。

ユーザー:testuser
パスワード:testuser

...の設定で作ってみましょう。

ホスト名とは
ユーザーを作る場所のことです。

ここでは
このCentOS上に作りますので、

ホスト名は

localhost

…となります。

と入力します。

コマンドを入力したら
実際にユーザーが作成されたか確認します。

ユーザーを確認するには...

select user, host from mysql.user;

というSQL文を発行します。

step5

SQL文の
発行結果が表示されました。

testuser

というユーザーがありますので、
ユーザーが作成されたことが確認できました。

ここで
注意したいことがひとつあります。

ユーザーは
ただ作るだけではいけないということです。

ユーザーには
権限を与える必要があります。

権限とは、
データベースに対して
どのような操作ができるかという設定です。

権限を与えていないと
testuserで
linuxadacemyデータベースに
接続しようとしてもエラーになります。

step6

このように
アクセスが拒否されていますね。

ユーザーに
権限を与えるには...

grant all privileges on データベース名.テーブル名 to 'ユーザー名'@'ホスト名';

というコマンドを入力します。

all privileges

とは...

「全ての権限」

...という意味です。

もっと細かい設定もできますが、
ここでは全権限を与えるようにします。

では、
先ほど作成したユーザー

「testuser」

...に

先ほど作成したデータベース

「linuxacademy」

...に対する権限を与えてみましょう。

step7

権限の付与が成功しました。

では、
testuserで
linuxacademyデータベースに
接続できるか試してみましょう。

step8

権限が与えられたので、
接続できていますね。

MySQLからのログアウト

MySQLを終了するには

と入力してください。

と表示されて
MySQLからログアウトできます。

step9

それでは今回はこのあたりで...

Bye!

リスキルテクノロジー
松田

PS

プログラミングとデータベースを学ぶならこちら

ちゃんと失敗する

for_blog_la

From: 松田航
新宿本校にて

「とりあえず動くようにしてくれ!」

多分、先週の日曜日に、僕がもっとも発した言葉です。

リリース直前のアプリケーションがあり、これがなかなか完成しない。そのため、リリース日当日に、スタッフのエンジニアにそんなことを言っていたのでした。

いや、今思っても最悪に近い言葉ですね。僕自身もコードを全力で書いていたため、若干焦り気味だったのでしょう。

ちなみに、PM(プロジェクトマネージャ)がコードを書き始めると大体残念な結果に終わるプロジェクトが多いので、極力書かない方がいいです。全体に関係のない、API叩いてデータ取ってくる、とかそういう箇所だけやるのなら影響範囲が小さいのでOK。

で、話を戻すと、「とりあえず」という発言はそれはもう、リスキーで、情けない言葉です。

ちゃんと失敗する

アプリケーションの不具合は発見できるのが早ければ早いほど、その後の修正は少なくて済みます。他部分への影響が小さいのですから、そりゃそうですよね。だから、単体テストをいかにしっかりと実施できているかが、最終的に安定稼働するアプリケーションになるかどうかを分けます。

問題点が早くに発見できるのは、最終的にすごく健全で、堅牢のソフトウェアができることを意味して言います。だから問題を発見できるようにすべきなのです。

だから、「とりあえず」動かすのではなくリリース前であれば尚更、エラーを表示させてちゃんと失敗をすべきです。

作り始めは全力でエラーを表示

とにかく作り始めた段階ではエラーは目立たせるべきです。PHPのCakeフレームワークのエラー表示など素敵です。赤字のバーが上部に表示される形ですね。自分でゼロからアプリケーション作る場合でも、あれを表示させてもいいくらいです。

エラーをウェルカムしましょう。エラーが出たときにいちいちへこまずに、

「よし、また一個素晴らしいプログラムに近づいた!」

になったと思うべきです。完全に思い込みましょう。自分のストレスを減らすためにも。

つい先日、エンジニア向け本の中で20万部を超える大ベストセラーになった奇跡の書「なぜプログラムは動くのか」の著者、矢沢さんに講演を行ってもらいましたが、講演の中で、こんな話が出ていました。

「コンパイラやエラーそのものを大切に扱いましょう。彼らはあなたをマンツーマンで叱ってくれるいい先生です」

まさしくだと思います。

予測できない問題への対応

予測できないような問題に対応できる方法はとても大切です。ソフトウェアの品質が本当に試されているのは、何か問題が起きた時です。

誰でもミスを犯します。仕事を進めていく中で愚かなミスがあります。人間ですから。でも、そのミスをなるべく早く見つけることができれば、後からの問題は激減します。

  • 間違いに気づいたら、とりあえずの処理をしない。納期の問題で仕方がなかったら、少なくとも、メンバーのに状況を共有する。wikiにあげてもいいですし、slackで発言してもいいでしょう。
  • 解決策を提示しよう。時間リソースが足りずに、自分が解決できなくても、こうすれば解決出来るという道を見出して、メンバーに共有しましょう。できれば、そのメンバーのリソースで適用可能な対処法を提示できると、その人は重宝がられます。極端な話ですが、ある新規のプログラムを作成していて、OracleにDBを変えれば、大丈夫。というような解決策は、まぁ残念な訳です。
  • 早く相談する。相談する相手がいれば、相談することです。プロマネでもいいですし、技術のメンターでも構いませんし、仲良くなった技術者に「今度おごるから!」と叫んで協力してもらってもいいです。早めに相談することがデスマーチから遠ざかる道です。

きちんとミスをするのがリスク回避につながる!

またどこかで書こうと思いますが、breakのひと文言だけで、60億円の損失を発生させた例もあります。

真っ青になるなんてものじゃないでしょう。

ちゃんとミスしましょう!
とりあえず、動けばいいとか言わずに!

松田

MySQLを使ってみよう-初期設定編-

From: リスキルテクノロジー 松田航
新宿本校にて、、、

以前のブログで
MySQLをインストールしましたが、

今回はいよいよ
MySQLを実際に起動してみましょう。

最初にいくつか
初期設定が必要ですので、

その設定方法や、
起動方法などの操作をご紹介します。

MySQLを起動しよう

多くのデータベースでは
最初にいくつか設定しなければ

データベースとして
使うことができません。

それはMySQLでも同じです。

設定と言っても
あまり難しくはなく、

最初に起動したときに
いくつかの質問に答えることで
初期設定することができます。

では、
次のコマンドで
実際に起動してみましょう。

これでMySQLが起動しますので、
初期設定を行います。

MySQLの初期設定

初期設定は
次のコマンドで実行します。

入力すると、
対話形式でのMySQL設定が始まります。

step1

これは
設定にあたって
管理者権限のパスワードが必要だけど、

最初の設定で
また管理者権限のパスワードが
設定されていないならEnterを押してください

...という意味です。

まだ何も設定していませんので
[Enter]キーを押します。

step2

次の質問です。

管理者権限の
パスワードを設定しますか?

...という意味です。

[Y]を入力してパスワードを設定します。

step3

そして次の質問です。

デフォルトでは
誰でもログインできるように

「匿名ユーザー」

というものが設定されています。

最初の設定では
これを削除したほうがいいですよ。

...という意味です。

削除するので[Y]を入力します。

step4

管理者権限で
ネットワーク越しに
ログインできるようになっています。

これを許可しないようにしますか?

...という意味です。

セキュリティ的に
よくありませんので[Y]を入力します。

step5

次の質問です。

誰でも使える

「test」

というデータベースがありますが、
これを削除しますか?

...という意味です。

残しておいてもいいですが、
[Y]を入力して削除しておきましょう。

データベースの作り方は
次回にご紹介します。

step6

最後の質問です。

ここで設定した権限の内容を
すぐに反映しますか?

...という意味です。

[Y]を入力してすぐに反映します。

step7

これで初期設定はすべて終了しました。

少しずつ着実にスキルを身に付けよう

MySQLの
インストールから
初期設定までが終了しましたが、

このままでは
ただの空っぽの状態です。

次回は実際に
データベースやユーザーの作成、

そして
データを操作するために
簡単なSQL文を発行してみましょう。

まぁ、実際やってみると色々なエラーがでてきたり、
よくわからなくなるとおもいます。

それ自体がいい勉強です。

実際に操作して...

たくさん悩んで、
たくさん調べて、
たくさん覚えて、

少しずつ着実にスキルを身に付けましょう。

リスキルテクノロジー
松田

PS

データベースもマスターしたエンジニアになるには

MySQLを使ってみよう-インストール編

From: リスキルテクノロジー 松田航
新宿本校にて、、、

大規模なシステムから
スマホのアプリケーションまで

システム規模の大小を問わず
データベースが活用されています。

オープンソースの
代表格的なデータベースに

MySQL

...があります。

今回から数回にわたり
MySQLのインストールや設定、
簡単な操作方法などをご紹介しましょう。

ちなみに、PostgreSQLがうちのスクールでは主流ですが、
MySQLも取り入れていたりします。

MySQLとは?

MySQLとは
世界中で最も使われている
オープンソースのデータベースです。

大小さまざまな
システムで採用されており、

有名どころでは
facebookでも使われていますね。

facebookでは
何千台ものMySQLが
利用されているようです。

もともとは
スウェーデンの企業で
開発されたデータベースですが、

その後
サン・マイクロシステムズ社に買収され...

さらに
サン・マイクロシステムズが
オラクル社に買収されと...

いろいろと
歴史のあるデータベースなのです。

ともあれ、
MySQLは優れた性能を持っており、

それまで
商用で販売されていた
データベースと同等の性能を持っています。

将来有料化しないか心配ですが、
当分は大丈夫でしょう。

インストールする前に...

それでは、
以前インストールした
CentOS7にMySQLをインストールしましょう。

と、その前に...

まずは、

MariaDB

という製品が
インストールされていないか
確認する必要があります。

CentOSでは
MySQLが標準だったのですが、

バージョン7から
MySQLは標準ではなくなっています。

MySQLの代わりに
MariaDBというデータベースが
標準でリポジトリに入っています。

MariaDBとは
MySQLとの互換性を持った
データベースです。

このMariaDBについては
また別の機会にご紹介しますね。

MySQLとMariaDBは
同じ環境にインストールできますが...

割とややこしいので
今回はMariaDBに関するものを
アンインストールした上で進めましょう。

まずは、
MariaDBに関するものが
インストールされていないかを確認です。

root権限で
端末から次のコマンドを入力します。

step1

mariadb-lib
というものが入っているようです。

これを
次のコマンドで
アンインストールしましょう。

step2

アンインストールできました。

いよいよMySQLをインストール

まずは
MySQLの公式サイトから
次のコマンドでMySQLをダウンロードします。

step3

ダウンロードが完了しました。

そしていよいよ
MySQLとMySQLの動作に必要な
パッケージをインストールします。

yum -y install mysql
yum -y install mysql-devel
yum -y install mysql-server
yum -y install mysql-utilities

1行ずつコマンドを実行すると、
それぞれのパッケージのインストールが開始されます。

順番にインストールしましょう。

インストールが完了したら、
次のコマンドで確認しましょう。

step4

インストールされていますね。

これで
MySQLの準備が整いました。

次回は
MySQLの初期設定についてご紹介します。

リスキルテクノロジー
松田

PS
データベースを使ったプログラミングを学ぶならこちらから

プロフェッショナルになる方法

プロフェッショナル

for_blog_la

From: 松田航
新宿サザンテラスのスタバにて

先日、リスキルテクノロジーのインターン生から、いい質問を受けました。

「プロフェッショナルなエンジニアになるためにはどうしたらいいでしょうか?」

漠然としていますが、いい質問です。あなたも考えたことがあるかもしれません。

もし、あなたもなんらかの分野で成功したいと思っているなら今日のメルマガは参考になるはずです。プロフェッショナルになるための"現実的な"方法についてお伝えするからです。

プロフェッショナルになるには?

この方法はすべてのプロフェッショナルに当てはまります。このステップに従って、自分のキャリアを組み立てればほぼ確実になんらかの成功を手にするでしょう。金銭面か地位か時間かは、個人の望みによります。

僕もこのステップに従って動いていますし、今後も肝に命じたいと思っています。

ステップその1:分野を選ぶ

何でもいいからプロフェッショナルになればいいというわけではありません。まず重要なのが分野を選ぶということです。

ビジネスでいうとポジショニングです。これは事業だけではなく、個人にも当てはまるということです。

今からCOBOL(すこし古くなったプログラミング言語)に時間を投下して、プロフェッショナルになったところで見返りは小さいでしょう。ただプロフェッショナルになるのではなく、なんのプロフェッショナルになるのかということをまず意識する必要があります。

できるだけ長く持つ分野。とはいえ、新しすぎてブームが去ったら、すぐに消えそうではない分野。を選ぶ必要があります。

それだけではなく、需要に対して供給が少ないものに時間を投下すべきです。例えば、いまからHTMLのコーディングに時間を投下し、誰よりもミスが少なく、インデントをきれいにコーディングができても、見返りは小さいでしょう。Webがある限りなくならない技術ですが、それでも見返りが小さいのです。

だからまずは分野を慎重に選ぶことが必要です。

・その分野の将来性
・需要と供給バランス

なるべく価格競争に陥らず、将来長持ちする技術や分野に時間を投下するのが賢明です。それが難しいという話もありますが、そこはある程度の判断をし、次のステップによってリスクを下げます。

ステップその2:すこし上の階層も視野にいれる

分野を決めるとはいっても、その分野に固執するだけではリスクがあります。なぜなら、領域が小さければ小さいほど、その領域には「旬」があるからです。

特にエンジニアリングの領域は変化が激しい業界です。あるフレームワークのプロフェッショナルになっても、3年後にはトレンドが変わっているというのはよくあることです。

そのため、ひとつ上の階層に目を向ける方がいいでしょう。

プログラミングのプロフェッショナル・サーバのプロフェッショナル・ネットワークのプロフェッショナルという階層をまず視野に入れて、それから、さらにJavaやRubyのプロフェッショナルという風に一段下も見るという視点を入れてください。

そうすれば、仮にRubyが時代遅れになっても、プログラミング全般の知識があるため他の分野への移行はスムーズになります。(もともと、ひとつの言語を極めようとするとそうなります。しかし、割とそうじゃない人もいるのが事実です)

デザイナでもマーケタでもそれは同じです。企業だけではなく、個人もリスクヘッジはとても大切だということです。

そうすることで、耐久年度はあがり、あなたの価値は長続きします。

ステップその3:1万時間投下する

1万時間の法則という法則をご存知でしょうか?

1万時間その分野に、プロフェッショナルになれるという法則です。マルコム・グラッドウェルという人唱えた理論です。感覚的にも、この理論はとても現実に即しています。

幸い、僕たちがいるのはビジネスの世界です。スポーツの世界ではありません。0.1秒や0.1mを競うような世界ではないのです。

才能はもちろん作用しますが、才能以上にどれだけ時間を投下したかで、十分に勝てる領域に行ける分野なのです。

1万時間というのはどれくらいの時間でしょうか?

1日3時間、毎日で10年間かかります。

仕事で関わっているのであれば、1日8時間、平日だけで約2000時間。5年間でプロフェッショナルになれます。

ジャンルを決めたら、そこに時間を投下する覚悟を持ちましょう。

反対にいうと、5年はかかるということです。すぐに成功したいと望むのは人間のサガですが、これを頭に入れておくと、忍耐を忍耐と思わずに済みます。自然なことだと捉えられるようになるのです。

ただし、プロフェッショナルになる前が素人で食えないかというとそんなことはありません。ある程度で十分に稼げるようになります。その中でもプロフェッショナルを目指すならという話です。

最悪なのが、、、

途中で諦めて次の分野に移ることを繰り返すことです。別の分野に移ると楽しいし、楽ですが、すぐに時間が経過してしまいます。いつのまにか5年経っていたということになりかねません。

もちろん、最初の1時間がなければ、残りの9999時間はありません。しかし、自分のキャリアは慎重に選ぶ必要があります。

エンジニアリング・マーケティング・マネジメントが今後10年では重要知識になると僕は思っています。いずれかを選択されることをオススメします。マネジメントはなかなか勉強が難しいですし、実践しにくいですから、エンジニアリングかマーケティングでしょう。

現実的にプロフェッショナルを目指す

これがプロフェッショナルになるための現実的な方法論です。

宝くじを当てるよりも、片手間にFXに手を出してみるよりも、不動産投資をやるよりも確実にあなたに金銭的利益ももたらしてくれます。

世の中誘惑がいっぱいですが、それらに振り回されないようにしましょう。

あなたはどの分野に時間を投下しますか?

松田

PS

僕は「教育事業」というまた別の視点に1万時間を投下しています。このような投資の仕方も、(オススメはしませんが)ありです。特化して、そこに集中することです。

PPS

一方で全体像を理解していることは大事なので、その話はまた時間があるときに。。

システム開発の質を高めるバージョン管理ツールとは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

「バージョン管理」

という言葉をご存知でしょうか。

システム開発においては
欠かすことのできない手法です。

これが欠けてしまうと
開発作業は大きく混乱してしまいます。

今日は
大切なバージョン管理に必要な...

「バージョン管理ツール」

...についてお話しましょう。

バージョン管理は何のために?

多くの場合、
システム開発は1人では行いません。

複数のエンジニアが集まり
システムを作り上げてゆきます。

システムを作るにあたっては
設計書やプログラム、マニュアルなど

多くのファイルを作りながら
進められてゆきます。

全て1人でするならば...

どのファイルに
どんなことを書いたのか、
どのように修正したのかなど、

ファイルの内容を
ある程度覚えておくことができます。

しかし、
複数の人で開発をする場合は別です。

自分が書いたファイルが
知らない間に他の人に修正されたり、

プログラムが書き換えられたりと
ファイルの状態を把握できなくなります。

ファイルの状態を把握できないと
何が起こるかというと...

本来は
プログラムのバグを修正した
最新のファイルを納品しないといけないのに

バグのある古いファイルで納品し
システムトラブルが発生することもあります。

そのような問題を避けるために
ファイルのバージョン管理を行う...

「バージョン管理ツール」

...が、
ほとんどの開発現場で導入されています。

ファイルのライフサイクルを管理する

バージョン管理ツールとは
ひとことで言うと...

「ファイルのライフサイクルを管理するツール」

...だと言えます。

ファイルに対して...

誰が、いつ作成したのか?
誰が、いつ、どこを修正したのか?
ファイルが何回修正されたのか?

...などをデータベースで管理します。

プログラムだけでなく、
様々なフォーマットのドキュメントや、

画像ファイルや動画ファイル、
音楽ファイルに至るまで、
あらゆるファイルを管理することができます。

また、
複数の人が同じファイルを
同時に変更することがないように

誰が今、ファイルを変更しているか?

といったことも管理することができます。

バージョン管理ツールには
大きく分けて2つのタイプがあります。

■集中型

まず1つ目は「集中型」と呼ばれるタイプ。

これは、
ファイルのバージョン管理をする

「リポジトリ」

と呼ばれるデータベースのようなものが、
専用のサーバーで一元管理されているタイプです。

比較的古いバージョン管理ツールは
この集中型のものが多いですね。

■分散型

そして2つ目は「分散型」と呼ばれるタイプです。

分散型も集中型と同じように
リポジトリでファイルを管理しますが、

作業する人がそれぞれに
リポジトリのコピーを持つことで、

たとえば
ネットワークに繋がっていなくても
修正することができるというのが特徴です。

最近開発された
バージョン管理ツールは分散型が多いですね。

代表的なバージョン管理ツール

それでは、
代表的なバージョン管理ツールを見てみましょう。

■CVS

CVSとは
Concurrent Versions Systemの略称で、
並行バージョン管理システムを意味します。

1990年に開発された
比較的歴史の古いバージョン管理ツールです。

こちらは集中型の
バージョン管理システムになります。

■Apache Subversion

多くの開発現場で使われていた
CVSの問題点を改善するために作られたツールです。

2000年に開発され、
操作がCVSと似ていることから、

CVSからSubversionに
乗り換えるユーザが多くいました。

CVSと同じく
集中型バージョン管理システムです。

■Visual Source Safe

1994年にMicrosoft社が開発した
集中型のバージョン管理ツールです。

CVSやSubversionと違い
フリーウェアではなく商用ツールですが...

ファイルの破損といった
トラブルがけっこうあったツールですね。

商用だから良い!
というわけではありませんね。

■Git

2005年に開発された
分散型のバージョン管理ツールです。

Linuxカーネルの
ソースコード管理のために開発されたもので、

今では多くの開発者に使われている
人気のバージョン管理ツールです。

開発者は
Linuxカーネルの生みの親である
リーナス・トーバルズです。

もちろんフリーウェアです。

フリーで使えて質が良い...

やはり
オープンソースはいいですね(笑

開発の生産性と質を高めるために

この他にも
多くのバージョン管理ツールがありますが、

現在の主流は
SubversionとGitです。

Subversionのシェアは高いですが、
それを追うようにGitがシェアを広げています。

これらの
集中型と分散型の代表的なツールを
一度は触っておいたほうが良いでしょう。

私はプログラムを触らないから...

という方も、
一度は触っておいてください。

なぜなら、
管理するファイルはプログラムだけでなく、

業務資料や仕様書といった
さまざまなファイルが対象となるからです。

バージョン管理ツールを
活用することで...

システム開発の生産性を高め、
開発の質そのものを高めることに繋がるのです。

リスキルテクノロジー
松田

実践的な開発手法を習得するならこちら

サービスを停止させないクラスタリングとは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

システムの障害などにより
サーバーが停止してしまうと、

ビジネスだけでなく
生活にも大きな影響を与えてしまいます。

今日は
システムを停止させない技術である、

「クラスタリング」

についてお話しします。

クラスタリングって何ですか?

現代社会では
システムが止まってしまうと、

大きな混乱が
発生してしまいます。

また、
システム利用者の増加によって

大量のデータや
通信のやりとりが発生しています。

システムを
停止させないように、

そして、
できるだけ高速に
処理を行うように考えられた技術が

「クラスタリング」

という技術です。

「クラスタ」とは
「ぶどうの房」という意味で、

複数のサーバーを統合して
処理を行うことを言います。

複数のサーバーを
統合することにより、

1台のサーバーでは
実現できないサービスを提供できます。

クラスタリングは大きく分けて…

・HAクラスタ(High Availability)

と…

・HPCクラスタ(High Performance Computing)

…の2種類があります。

では、
それぞれの特徴を見てみましょう。

高可用性を実現するHAクラスタとは?

HAクラスタは
高可用性を目的としたクラスタリングです。

「可用性」

とは、
継続して稼働できることを意味します。

言い換えれば、
システムの壊れにくさですね。

HAクラスタは
さらに2種類に分けられます。

 

■1:フェイルオーバー型

同じ役割を持つノードを
複数用意しておき、

一方を稼働系
もう一方を待機系とします。

※ノード:サーバーやネットワーク機器などの総称

常に動いているのは
稼働系のノードです。

そして稼働系ノードに
何か障害が発生したときには、

待機系ノードが
稼働系ノードに切り替わります。

こうすることで、
サービスを停止することなく、
システムを稼働することができるのです。

稼働系がActive、
待機系がSatndbyなので
Active-Standby型とも言われます。

■2:負荷分散型

同じ役割を持つノードを
複数用意しておき、

いずれも並行して
稼働させておく方法です。

1つのノードが停止しても
他のノードが処理をするので、

サービスを停止することなく
システムを稼働させられます。

また、
複数のノードで処理をするため、

各ノードの負荷が減り、
高い処理性能を発揮することができます。

いずれもActiveなので
Active- Active型とも言われます。

高い処理性能を実現するHPCクラスタとは?

HPCクラスタとは
処理速度を高めるための手法で、

スーパーコンピュータでも
使われている技術です。

HA構成では
各サーバーの役割は同じでしたが、

HPC構成では
それぞれの役割が異なります。

 

ヘッドノードは
クラスタの管理を行う役割で、

各ノードの管理や
クライアントとのやりとりを行います。

そして、
計算用ノードは
計算処理を専門に扱うノードで、

複数の計算用ノードが
平行して処理を行う事で
高い計算能力を発揮します。

データベースとのやりとりは
データノードが行います。

このように、
それぞれの処理を専門に行い、

処理の高速化をするのが
HPCクラスタの特徴なのです。

インフラエンジニアの大切な役目

ひと昔前までは
クラスタリングをするには、

高額なアプリケーションや
専用の機器が必要でした。

しかし、
オープンソースソフトウェアにより
安価に導入できるようになり、

多くの企業や研究機関で
クラスタリングが行われています。

Linuxをはじめとする
オープンソースの普及が、

現代のITを
リードしていると言えるでしょう。

これからの時代、
インフラエンジニアを目指すなら、

サービスを停止させずに
高い処理性能を維持する、
クラスタリングのノウハウは必要です。

多くのシステムは
人々の生活に大きく影響しています。

インフラエンジニアには
そのようなシステムやサービスを

停止させないという、
大切な役目があるのです。

リスキルテクノロジー
松田

PS

サーバーエンジニアや
ネットワークエンジニアを目指すならこちらから

マルウェアとは、どんなプログラム?

マルウェア

From: リスキルテクノロジー 松田航
新宿本校にて、、、

この社会では
コンピューターを触らない日はない!

...と言っても過言ではありません。

そのコンピューターを
危険な状態にしてしまうプログラムに

「マルウェア」

...があります。

今回はマルウェアについて
お話ししましょう。

マルウェアって何?

マルウェア(malware)

とは

英語で「悪いこと」を意味する

「mal-」

という接頭語にソフトウェアの

「ware」

を付けた言葉です。

マルウェアと言うと
わかりにくいかも知れませんが

「コンピューターウィルス」

と言えば皆さんご存知でしょう。

とはいえ、
コンピューターウィルスは
あくまでマルウェアのうちの1種類で、

他にもコンピューターに
さまざまな障害をひきおこす
マルウェアが存在します。

ひと昔前までは
せいぜいコンピューターを
実行できなくする程度のものでしたが、

今では
ネットワーク環境の発展にあわせて
さまざまな障害を引き起こしています。

マルウェアは
現代のネットワーク社会において
非常に大きな問題となっているのです。

代表的なマルウェアの種類

それでは、
マルウェアの種類を見てみましょう。

とても多くの種類がありますが、
ここでは代表的なものをご紹介します。

■1:ウィルス

ユーザーが
気づかないうちに増殖して
ファイルに感染していくマルウェアです。

メディアやネットワークを通じて
他のコンピューターに感染します。

感染して
すぐに発症するものもありますが、

潜伏期間を過ぎて
発症するものもあります。

■2:ワーム

ウィルスのように
ファイルに感染することなく
自己増殖してゆくマルウェアです。

ネットワークを通じて
自分のコピーを別のコンピューターに作るため、

コンピューターの
ネットワークリソースを消費します。

■3:トロイの木馬

一見すると
何もないプログラムですが、

実際には
ウィルスやワームなど

害を与えるプログラムを
運ぶためのマルウェアです。

プログラムを
知らずに実行すると、

トロイの木馬が
運んできたマルウェアが動作します。

■4:スパイウェア

ユーザーが知らないうちに
クレジットカードやパスワードなど、
個人情報を盗み出しマルウェアです。

盗み出された情報は
スパイウェアの製作者に送信されます。

■5:ボット

コンピューターを
外部からコントロールするためのマルウェアです。

ボットに感染したコンピューターは

「ゾンビPC」

と呼ばれ、
他のコンピューターに操られてしまいます。

■6:ボットネットワーク

ボットに感染した
複数のゾンビPCで構成されたネットワークで、

悪意あるユーザーが
ゾンビPC指令用サーバーを経由して
ゾンビPCに一斉に命令を指示します。

マルウェアに感染するとどうなる?

感染するマルウェアによって
引き起こされる症状はさまざまですが、

大きく分けると
次のような影響があります。

■1:ウィルスの拡散

ネットワーク内にある
他のコンピューターにウィルスを拡散します。

遠隔操作系のマルウェアなら
新しいマルウェアを
次々と送り込まれる可能性もあります。

■2:情報の漏えい

システム情報や
ルートパスワードなど

コンピューターにとって
非常に大切な情報を盗まれることもあります。

管理者権限を持つ
ユーザー情報を盗まれた場合は

コンピューターが
乗っ取られる可能性もあります。

■3:他のコンピューターへの攻撃

マルウェアの1種である
ボットに感染したコンピューターの場合、

ボットネットワークを通じて
ゾンビPCに一斉に命令を置くることで、

迷惑メールの送信や
ネットワーク障害を起こすことがあります。

マルウェア対策の重要性

「Linuxはマルウェアに強い」

と言われています。

しかし、
Linuxユーザーが増えるにつれ、

Linuxを狙ったマルウェアが
増えているのも残念ながら事実です。

基本的なマルウェア対策としては...

・ファイアウォールを利用する
・セキュリティソフトを利用する
・不要なサービスを起動しない
・知らないファイルを実行しない
・パスワードを定期的に変更する

...などが挙げられます。

Linuxは
サーバーやクライアントだけでなく、
家電製品などに組み込まれるケースが増えています。

そして
ライフラインを管理するような
重要なシステムにも使われているため、

これまで以上に
セキュリティ対策が必要です。

万が一、
マルウェアの標的にされたとしても

問題を起こさないような
セキュリティ対策を心がけるようにしましょう。

リスキルテクノロジー
松田

PS

Linuxの構築から運用
そしてセキュリティまで学びたいならこちら

VirtualBox使ってみよう! 副題:1台で複数のOSを動かす仮想化とは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

Linuxを使いたい時などに、
パソコンそのまま使うのは大変ですよね?

今回は
1台のパソコンを
2台にも3台にもすることができる

「仮想化」+「VirtualBox」

についてお話ししましょう。

仮想化って何ですか?

一般的には
パソコン1台につき
1つのOSがインストールされています。

ですが、
新しい環境が必要になった時、

毎回新しいパソコンを
購入するのは費用がかかってしまいます。

この問題を解消するのが...

「仮想化」

...という技術で、
1台のパソコンの中に、

複数のOSを同居させることを
可能とする技術です。

仮想化で作られた環境を...

「仮想マシン」

と呼び、仮想マシンで動作するOSを...

「ゲストOS」

と呼んでいます。

つまり、
仮想化されたパソコンには
複数の仮想マシン・仮想OSが同居しています。

仮想化を理解するには、
賃貸マンションをイメージしてください

マンションの空き部屋を
別のOSに貸し出すようなイメージです。

この例だと
空き部屋が仮想マシンですね。

内装やインテリアは
住む人によって違うのでさまざまです。

内装が仮想OSにあたります。

同じ物件を使っているので、
物理的な資源は共有しています。

つまり、
CPUやメモリーなど、

パソコンが持つ資源をシェアして
複数のOSを動作させることができるのです。

仮想化するには仮想化ソフトが必要

仮想化するには
専用のソフトをインストールして、
仮想環境を作ります。

代表的な仮想化ソフトを
いくつか見てみましょう。

■1:VMWare

アメリカのVMWare社が開発した
仮想化ソフトウェア。

サーバーの仮想化など
多くの企業で採用されています。

個人用途には
VMWare Playerがあり、

業務用のVMWareと
同じ仮想化技術が使われています。

■2:VirtualBox

DBやJavaで有名な
アメリカのOracle社の仮想化ソフトです。

商用利用すると
ライセンスが必要となるVMWareと異なり、

オープンソースなので
無料で使用することができます。

■3:KVM

Linux標準の仮想化技術で
イスラエルのQumranet社が開発した仮想化ソフトです。

正式名称は

「Kernel-based Virtual Machine」

と言い、
Linuxカーネルの機能を
最大限に利用することができるソフトです。

■4:Xen

イギリスのケンブリッジ大学で
研究されたソフトがベースの仮想化ソフトです。

こちらもオープンソースなので
無料で仮想化環境を作ることができます。

VirtualBoxで仮想マシンを作ろう!

仮想化するには
どのようにすればいいのでしょうか。

実は意外と簡単に
仮想環境を作ることができるのです。

VirtualBoxを使った
仮想マシンの構築法をご紹介しましょう。

まずは、
VirtualBoxをダウンロードします。

「VirtualBox platform packages」

にあるリストから、
仮想環境を作りたいパソコンの
OSに合うソフトウェアをダウンロードします。

ダウンロードしたら、
インストールしましょう。

インストール時に
いろいろ設定画面が出ますが

特に変更する必要はありませんので、
そのままインストールしてください。

step1

インストールが終わったら
VirtualBoxを起動して仮想マシンを作りましょう。

「新規」ボタンをクリックします。

step2

ゲストOSはCentOSにします。

(CentOSのDVDイメージファイルが必要です)

step3

ゲストOS(今インストールしているこれのこと)に
割り当てるメモリーの量を指定します。

上限はパソコンで使える
メモリーの最大量ですので、

あまり負担をかけ過ぎないように
設定しましょう。

step4

仮想マシン用の
ハードディスクを作成します。

step5

ハードドライブのファイルタイプは
「VDI(VirtualBox Disk Image)」

step6

物理ハードドライブにあるストレージは
「固定サイズ」

step7

ファイルの場所とサイズでは
「16.00GB」

...に設定して
「作成」ボタンをクリックします。

サイズはパソコンの
空き容量にあわせて設定してください。

step8

これで仮想マシンができました。

CentOSを選択して
画面上の「起動」ボタンをクリックします。

step9

最初の起動ですので…

「起動ハードディスクを選択」

という画面が表示されますが、
右のフォルダアイコンをクリックして…

あらかじめダウンロードしておいた
CentOSのDVDイメージファイルを選択します。

これで
CentOSのインストールが開始されます。

仮想環境に接する機会はますます増える

仮想化技術は
多くの企業が採用している技術です。

レンタルサーバーなどでは
1台のサーバーに複数の仮想マシンを構築し、

仮想マシンを
レンタルするサービスが多いです。

また、
実際にサーバーを購入すると

コストや維持費がかかるため、
自社サーバーを仮想化する企業も増えています。

インフラエンジニアだけでなく
アプリケーションエンジニアでも

仮想環境に接する機会は
これからますます増えて行くことでしょう。

仮想化技術についての
基本的なノウハウを持つようにしてください。

リスキルテクノロジー
松田

PS
仮想化の講座ならこちらから

CentOSのインストール方法

From: リスキルテクノロジー 松田航
新宿本校にて、、、

このブログを
読んでくださっている方は、

Linuxに大きな関心を
持っている方が多いことでしょう。

「Linuxを実際に触ってみたい!」

そう思うこともあるかと思います。

では、
実際にLinuxに触ってみましょう。

下記でより細かいことを解説もしてみましたので、こちらもご参考ください。

かなり詳しく!CentOS7のインストール方法

Linux環境の構築方法

今回はLinux環境の
構築方法をお教えします。

パソコンを1台だけ
用意しておいてください。

Linuxに興味はあって
パソコンも持っているけど、
他のOSが入ってしまっている...

という方でも大丈夫です。

ほとんどのOSには
無償の仮想化ソフトがあります。

仮想化というのは
1台のパソコンの中に、

別のパソコンがあるかのように
新しい環境を作ることを言います。

詳しくは
ネットで検索してみてください。

また、このブログでも近いうちに
ご紹介していきます。

もちろん
仮想化ではなく、

他のOSから
Linuxに乗り換えるのもアリですね。

まぁ、なかなか難しいかと思いますが、
楽しいですよ。

CentOSをインストールしよう

CentOSとは
Linuxディストリビューションのひとつで

Red Hat Enterprise Linux(RHEL)と
互換性のあるディストリビューションです。

RHELのクローンOSとして有名で、
安定性の高さで評判が高く、

Webサーバーの
およそ20%でCentOSが使われており、

当スクールの授業でも
このCentOSを使っています。

それでは、
CentOSを入手しましょう。

CentOSは
以下のサイトで手に入ります。

出典:CentOS
centos

今回は

「DVD ISO」

を選択して
CentOSのDVDファイルを選びます。

すると、
何やらリンクの一覧が出てきます。

mirrorサイト

これはCentOSを
ダウンロードできるサイトの一覧です。

「Actual Country(現在の国)」

にあるリンクが
日本で入手可能なサイトになります。

この中のいずれかから
ダウンロードしましょう。

ダウンロードした
DVDイメージをメディアに書き込んで
準備完了です。

なお、現時点での
CentOSの最新バージョンは7です。

CentOSインストール手順

いよいよインストールです。

先ほど準備した
メディアからをパソコンに入れて
起動しましょう。

step1

インストールの初期画面です。

Enterキーを押せば
インストールが始まります。

step2

しばらくすると
言語の選択画面が表示されます。

日本語を選択しましょう。

step3

インストールの概要画面です。

ここではいくつか設定変更します。

・ソフトウェアの選択(S)

次に表示された画面で
「GNOME Desktop」を選択して
[完了(D)]ボタンをクリックします。

・インストール先(D)

次に表示された画面で
何もせずに[完了(D)]ボタンをクリックします。

最後に
[インストールの開始(B)]
を選択すると、インストールが始まります。

step4

インストールが始まると
root(管理者)パスワードと
ユーザーが作成されていないと表示されます。

それぞれ、

・rootパスワード(R)
・ユーザーの作成(U)

をクリックして設定します。

インストールが終われば
[再起動(R)]ボタンをクリックします。

step5

これでCentOSが使えるようになりました。

実践で活躍するには多くのノウハウが必要

いかがでしたか?

Linuxのインストールは
意外と簡単にできるのです。

ただ、
今回ご紹介した構築法は
あくまでLinuxに触れるためだけの構築法です。

実践で活躍できる
エンジニアになるためには、
多くのノウハウの習得が必要になります。

まずはLinuxを
身近に感じるためにも

CentOSを
インストールしてみるのもいいでしょう。

それが、
あなたがエンジニアになるための
第一歩になるかも知れません。

リスキルテクノロジー
松田

PS

Linuxの
体系的なノウハウの習得は、
独学ではなかなか難しいと言えます。

基礎から実践まで
体系的にマスターしたいならこちらから。

Linuxの専門スクール

Linuxディストリビューションとは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

Linuxには
さまざまな種類があり、

それらを

「ディストリビューション」

...と呼びます。

今回はさまざまな
Linuxディストリビューションについて
お話ししましょう。

そもそもディストリビューションとは?

ディストリビューションとは

「流通」
「配布」

という意味で、
Linuxが配布される形態のことを言います。

本来、
Linuxという言葉は
Linuxカーネルのことを意味していますが、

カーネルだけでは
OSとして手軽に使うことはできません。

そこで、
Linuxを利用しやすいように

アプリケーションなどをパッケージにして
すぐに使える状態にしたものを

「ディストリビューション」

...と呼びます。

自動車で例えるとわかりやすいですね。

自動車には
エンジンの他にハンドルやタイヤなど

さまざまな部品があって初めて
自動車として利用することができます。

Linuxも同じで、
カーネル以外にも
さまざまなアプリケーションがあって初めて

Linuxとして
利用することができるのです。

そして同じ自動車でも
いろいろな車種があるように

Linuxにも
いろいろなディストリビューションがあるのです。

代表的なLinuxディストリビューション

代表的なディストリビューションを
いくつかご紹介しましょう。

■Red Hat Enterprise Linux (RHEL)

アメリカのRedHat社が開発した
商用向けのLinuxディストリビューションです。

クライアントPC用途ではなく
大規模システムのサーバーに利用されています。

■Fedora

FedoraはRedHat社が
支援しているディストリビューションです。

RHELは商用向けで有料なのに対し
Fedoraは無料で使うことができます。

Fedoraは次世代のRHEL向けの
検証用ディストリビューションとしての役割があり、

実際にFedoraで検証された
多くの新しい技術がRHELに採用されています。

■Debian

Debianは
世界中の有志が集結して作り上げた、

100%フリーで使うことができる
Linuxディストリビューションです。

さまざまなCPU上での動作サポートと
数万にもおよぶ膨大なアプリケーション数が特徴で、
多くの企業のシステムに採用されています。

■CentOS

CentOSはRHELのクローン(複製)OSで
RHELの商用部分を取り除いたディストリビューションです。

Fedoraのように
RHELの実験的要素を含んだOSとは異なり、

安定性も比較的高く、
商用でも使われる機会も増えています。

うちの授業はこれでやっています。
Centいいですよ。

■Ubuntu

Debianをベースに作られた
世界的な人気を持つディストリビューションです。

使いやすいデスクトップで
初心者にも抵抗なく使えるのが特徴ですが、

Debianと同じく
多くの企業のシステムにも使われています。

Linuxディストリビューションのトレンドは?

Linuxには
多くのディストリビューションがありますが、

実際に使われているのは
どのディストリビューションなのでしょうか。

実際にWebサイトで使われている
ディストリビューションを見てみましょう。

dist

出典:W3Techs

これは
2014年から2015年にかけて、

Webサイトで使われている
Linuxディストリビューションの割合を示したものです。

2015年3月時点で...

1位:Debian … 32.4%
2位:Ubuntu … 26.2%
3位:CentOS … 20.3%

…と全体の78%以上を
Debian、Ubuntu、CentOSが占めています。

リリース当初は人気が高かった
Red Hat Enterprise Linuxですが、

Debian系ディストリビューションの人気が高く、
少しずつ利用率が減ってきています。

どのLinuxを使うかは企業によりますが、

・Debian系(Debian、Ubuntu)
・RedHat系(RHEL、CentOS)

...といったLinuxが
現時点でのトレンドであることを覚えておいてください。

操作自体は大きく変わりませんが、
コマンド等が変わってくるので、
注意しましょう。

Linuxテクノロジーをしっかり学ぶことが大切

ディストリビューションは違っても
Linuxというテクノロジーに違いはありません。

まずはLinuxという
テクノロジーをしっかり学ぶことが大切です。

ディストリビューションに左右されない
正しいノウハウがあれば、

どのようなディストリビューションにも
対応できるエンジニアになれるのです。

「環境に左右されないエンジニア」

そんな素晴らしいエンジニアを目指してください。

リスキルテクノロジー
松田

PS

Linuxテクノロジーを学び
環境に左右されないエンジニアを目指すならこちらから

Linuxならリスキルテクノロジー

エンジニアに必要なスケジュール管理能力とは?

エンジニアのスケジュール管理

From: リスキルテクノロジー 松田航
新宿本校にて、、、

先日、
あるプログラマーが
こんなことを言っていました。

「仕事をこなしても家に帰れない」

スケジュールが遅れたり
プログラミングが進まなかったりすると
よくあることですが...

いつまでに仕事をすればいいのかわからない

そのプログラマーは
大きなプロジェクトに参画しています。

システム化にあたって
作らなければいけない機能は多いのですが、

参加している
エンジニアの数も多いので
何とかなるだろうと考えていたようです。

彼は割り振られたプログラムを
難なく作っていくのですが...

「いつまでに作ればいいのかわからない」

...と言うのです。

プロジェクトリーダーに
いつまでにプログラムを作ればいいか尋ねても...

「できるだけ早く!」
「できるだけ前倒しで!」

...と言われるだけで、
期日がはっきりしないのだそうです。

そのため、
毎日遅くまで残業が続き
なかなか家に帰れないのだそうです。

欠けているのは「スケジュール管理能力」

同じ経験をしている
エンジニアは多いと思いますが...

このようなプロジェクトでは
ひとつ欠けているものがあります。

それは、

「スケジュール管理能力」

...です。

もちろん、
突発的な仕事が起きた場合には

スケジュールが進んでいれば
対応しやすいと言えるでしょう。

しかし、単純に...

「早く仕事を済ませたい!」

...という理由で

「できるだけ早くしてほしい」

といった指示をする管理者も少なくありません。

ほとんどの場合、
最終的な納期しか理解しておらず、

いつまでに、
何をする必要があるのか

プロジェクトを
詳細まで分解して理解できていない場合に
このような指示がされやすいのです。

スケジュールを立てるには
やることを詳細まで分割したうえで、

それぞれの作業ごとに
スケジュールを立てなければいけません。

スケジューリング能力が
不足しているということは

全体の仕事を
作業項目に分ける能力が
不足しているということにもなるのです。

管理者以外にも必要な能力なの?

もちろん
プロジェクトを管理する側だけでなく

プロジェクトメンバーにも
スケジュール管理能力は必要です。

仕事をするにあたっては、
自分が受け持った作業の期日だけでなく...

自分のスキルも判断したうえで
いつまでに終わらせることができるか?

その仕事を終わらせるために
どのような作業項目があって、
どのような流れで対応するのが効率的か?

そして、
想定した作業で高い品質を保てるか?

...といったことを
意識して対応する必要があります。

スケジューリングの対象が...

プロジェクト全体なのか、
個人の作業レベルなのか、

...それだけの違いです。

いずれにせよ、
しっかりスケジューリングできなければ、

作業の期限ギリギリになって
慌てて作業することになってしまいます。

慌てて仕事をすることは、
品質を下げる結果に繋がりかねません。

エンジニアとしての価値を高めるために

エンジニアの仕事には
必ず納期というものがあります。

なければ決めるべきでしょう。
締め切り効果って実際にありますからね。

その納期に向けて
早めに対応する越したことはありませんが、

早く終わらせることを目的にすると
品質が低下するリスクが高くなります。

システムやサービスを提供する側としては、
品質の低下は避けなければなりません。

そのためにも...

いつまでに、
何を、
どこまで終わらせるか、

といったスケジューリングは
エンジニアにとって必要な能力なのです。

たとえそれが
プロジェクトを管理する
立場の者であってもなくても、

普段から
スケジュールを意識しておかなければ、

その場その場の
対応だけになってしまいます。

全体を見据えて個々の仕事を行う...

その姿勢は
あなたのエンジニアとしての
価値を高めてくれることでしょう。

リスキルテクノロジー
松田

PS

スクールの開発演習で力をつけましょう

アルゴリズムの基本3:ソート(並べ替え)

From: リスキルテクノロジー 松田航
新宿本校にて、、、

プログラムでは必ずデータを扱いますが...

データ量が増えれば増えるほど、
並べ替えしておいた方が扱いやすくなります。

今回は並べ替えのアルゴリズムである、

「ソート」

についてお話ししましょう。

ネット検索にも使われている

インターネットのウェブサイトの数は
2014年に10億件を突破しました。

Yahoo!やGoogleなどの
検索サイトからサイト検索をするときに、

いちいち10億件のサイトを
検索していたのでは時間がかかって仕方ないですよね。

このため、
インターネットで何かを検索すると
必ず訪問者の多いサイトが上位に表示されます。

これはサーチエンジンが
有効な情報を持っているサイト順に並べ替えて、
訪問者の多いサイトを上位に表示しているからです。

データというのは
量が増えれば増えるほど、
きちんと並べ替えられている方が管理しやすいですよね。

この並べ替えのことを...

「ソート」

...と言い、非常によく使われるアルゴリズムです。

ソートする時には
以前にお伝えした「配列」が必要で、
配列にデータを入れてからソートするのが一般的です。

値の小さい順にソートすることを「昇順」、
値の大きい順にソートすることを「降順」と言います。

どちらの順でソートするかはケースバイケースですね。

それでは、
代表的なソートアルゴリズムを
いくつかご紹介しましょう。

バブルソート
~単純なソートアルゴリズム~

ソートのアルゴリズムで
もっとも単純なもののひとつがこの「バブルソート」です。

バブルソートとは、
隣り合ったデータの値を比べて、
単純に並べ替えていくというものです。

イメージを見てみましょう。

bubblesort

1、4、3、2と並んだ
4つの値が入っている配列があります。

これを左から順に...

1番目と2番目のデータを比べ、
1番目と3番目のデータを比べ、
1番目と4番目のデータを比べ...と、

単純に順序だてて比べていって、
左側の値が大きければ位置を交換する仕組みです。

1番目の値を比べ終わったら、
2番目のデータを元に比べてゆきます。

数字が上に上がっていく様子が、
泡が水の中で上に浮いてくる様子に似ていることから
バブルソートと言います。

ソートのアルゴリズムの中では単純で、
少ないデータを扱う時には問題ありません。

ですが、
データ量が増えれば増えるほど、
バブルソートでは処理に時間がかかってしまうのです。

例えば、全ての値を
比べ終わるのに必要な処理回数は最大...

1,000個の配列だと49万9500回、
10,000個の配列だと4999万5000回かかります。

ちょっとかかりすぎですよね。

そこで、バブルソートよりも
高速なアルゴリズムが必要になってきます。

クイックソート
~文字通り高速にソートできるアルゴリズム~

バブルソートよりも処理の速いアルゴリズムで、
代表的なものに「クイックソート」があります。

簡単に言うと、
データの中から基準となる値を決めて、
それより大きいグループと小さいグループに分けてから、
ソートしてゆくアルゴリズムです。

ちょっとややこしいので、
今はわからなくても大丈夫です。

クイックソートのイメージだけ掴んでくださいね。

それでは、イメージを見てみましょう。

quicksort

3、4、5、2、1と並んだ
5つの値が入っている配列があります。

一番左にある3を
とりあえず基準値として、
3よりも大きいグループと小さいグループに分けます。

このとき、3の位置はもう確定しています。

ちょうど大きいグループと小さいグループの間ですね。

そして今度は、
それぞれのグループから基準値を決めて、

その基準値と
グループの中のほかの数を比べて、
相手の値が小さければ並べ替えます。

最終的に比較するものがなければ、
そこでソートが終わりです。

ちなみに、この5つの値のソートを
バブルソートですると処理回数が10回かかります。

クイックソートは名前のとおり、
素早くソートできるアルゴリズムなのです。

適切なアルゴリズムを使って効率性を上げよう

バブルソートやクイックソート以外にも、
さまざまなソートのアルゴリズムがありますが...

それらは必要に応じて覚えてゆけばいいでしょう。

クイックソートは
実用的で処理の早いアルゴリズムとして
多くのシステムで使われますが、

データ件数によっては
別のアルゴリズムの方が速いケースもあります。

扱うデータ件数によって
アルゴリズムを使い分けると処理速度が上がるのです。

アルゴリズムはあくまで
効率的に処理を行う手順です。

1つの手順にこだわることなく、
常に適切なアルゴリズムを使うことができれば、
効率の良いプログラムを組めるエンジニアになれます。

柔軟な考え方のできるエンジニアになってください。

リスキルテクノロジー
松田

PS

柔軟な発想を持つには、
基本から応用まで、幅広いノウハウが必要です。

基本的なアルゴリズムを始め
現場で使える応用力を身に着けたいなら資料請求を。

アルゴリズムも勉強できるリスキルテクノロジー

高品質サービスの指標となるSLAとは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

インフラエンジニアでも
アプリケーションエンジニアでも

何らかのサービスを作って
ユーザーに提供するのは変わりありません。

どのようなサービスを提供するかは
ユーザーと話し合った上で取り決められます。

今回はその取り決め内容をまとめた、

「SLA」

...についてお話ししましょう。

もしもコンビニが営業していなかったら

どこを歩いていても
必ず目に入るのはコンビニエンスストア。

コンビニは
24時間営業と豊富な品揃えが特徴ですが、

あなたがコンビニに行ったとき
営業していなかったり
ほとんどの商品が売り切れだったらどう思いますか?

ちょっと珍しい光景かもと
面白く感じるかも知れません。

しかし、
コンビニとあなたの間で、

24時間営業と豊富な品揃を提供するという
「合意」を取り決めていたとしたら、

「ちゃんと合意していた何どうして?」

...と思ってしまうことでしょう。

このように、
サービスを提供する側と
受ける側との間で取り決められた合意内容を、

「SLA(Service Level Agreement)」

...と言い、提供する側は
SLAで取り決めた内容を目標として
サービスをユーザーに提供するのです。

実際にはコンビニと利用者はSLAを結びません。

あくまで例です。
念のため。

データセンターなどで見られるSLA

SLAはデータセンターや
通信サービスなどでよく結ばれています。

データセンターにおける
SLAの内容について例をあげてみましょう。

SLA(INFRA)

SLAでは評価項目に対して、

「目標とする水準をクリアできたかどうか」

...を客観的に判断できる目標が設定されます。

この例で言うと、
サーバー可用性は99.9%以上ですが、

サーバーが99.9%以上の確率で
正常に動いていることを保証するという内容です。

簡単に言えば、

「1年のうち99.9%は使用できることを保証しますよ」

...という意味になります。

この他にも、
障害が発生した場合の回復時間や、
問合せの対応可能時間など

データセンターに関するサービス内容が
SLAで取り決められています。

Webやメールサービスを
提供しているレンタルサーバー業などでは、

SLAの基準をクリアできない場合は
月額料金を返還する業者もあるほどです。

インフラ系のサービスにおいては
SLAの取り決めは基本的なものになっていますね。

システム開発にもSLAは有効です

SLAはインフラ系サービスだけでなく、
システム開発でも取り決められています。

システム開発における
SLAの例を見てみましょう。

SLA(SYSTEM)

システム開発におけるSLAでは
比較的アプリケーションよりの内容になっています。

たとえば
オンラインレスポンスですが、

ボタンをクリックして
次の画面に移動するまでの時間について
取り決められています。

処理速度が遅く、
画面表示に1分以上かかるのでは
実際の業務では使うことはできません。

そのため、
要件定義や基本設計段階で
処理時間について目標を決めて開発します。

他にも、
障害回復時間など
障害発生後の対応をランク分けすることで
復旧時間を決定するケースもあります。

システム稼働に問題がない
軽度な不具合は対応がややゆっくりの対応、

障害復旧しないと業務できないといった、
深刻な不具合は即対応などですね。

システム開発におけるSLAは
企業間のシステム開発だけでなく、

社内システムの開発でも有効な方法として
多くの企業で取り組まれるようになっています。

高いサービス品質を保つことがエンジニアとしての質を高める

インフラ系でも
システム系でも、
SLAを取り決めることによって、

・システムのサービス提供範囲の明確化
・サービスレベルに応じたコストの明確化
・高品質のサービスレベルの維持
・ユーザーとの信頼関係の構築

...といった多くのメリットがあります。

サービスを提供するにあたり、

「高い品質を保つための目標」

...とも言えるのがSLAを、
エンジニアとして意識するようにしましょう。

それは、
エンジニアとしての質を
高めてゆくことにつながる姿勢なのです。

リスキルテクノロジー
松田

PS

提供するサービスの品質は
高ければ高いほどいいですよね。

これは学習も同じです。

品質の高いスクールはエンジニアへの近道です。

エンジニアの専門スクール

オープンソースの普及が4年間で2倍に

From: リスキルテクノロジー 松田航
新宿本校にて、、、

Linuxをはじめとする
オープンソースソフトウェアは

多くの企業のシステムに
採用されはじめています。

その傾向が、
2010年から急激に動き、
より顕著になってきました。

オープンソースの採用は標準的なアプロ-チに

ここに、
オープンソース管理ソリューションを提供する
アメリカのBlack Duck Software社と

ベンチャー企業を支援する
North Bridge社が共同で行った調査結果があります。

blackduck

出典:The Ninth Annual Future of Open Source Survey

これは

「オープンソースの未来について」

というテーマで
企業に対して行われている調査で、

企業における
オープンソースソフトウェアの
使用状況などを調査しています。

調査結果では、
78%の企業が自社の業務で
オープンソースを採用していると回答しており、

42%だった
2010年度の調査結果と比べると
2倍近くにまで増えています。

また、
66%以上の企業は
システム的な課題解決のために

オープンソースを
まず先に検討すると回答しており、

オープンソースの検討が
標準的なアプローチになっています。

企業がオープンソースを選択する訳とは

オープンソースの検討が
標準的になっている背景には
どのようなことが起きているのでしょうか。

まず、
企業の58%はオープンソースが
拡張性に優れていると回答しており、

オープンソースと
そうでないソフトウェアを比べると、

オープンソースの方が
システム展開しやすいと回答しています。

また、
オープンソースと
そうでないソフトウェアを比べると、

55%の企業が
オープンソースの方が
セキュリティ性に優れていると回答しており、

この考えを持つ企業の割合は
今後2~3年間で61%にまで増える見込みです。

ビッグデータや
クラウドコンピューティング、

そして今後大きく広まる
モノのインターネット(IoT)などは

2~3年のうちに
オープンソースの影響を受けると予想されています。

オープンソースの課題は「管理体制」

しかしここで、
ひとつの課題が浮き彫りになっています。

確かに多くの企業で
オープンソースが採用されていますが、

オープンソースソフトウェアを
しっかりと管理できていないという点です。

55%以上の企業が
自社でオープンソースを採用するにあたり
正式な導入ポリシーを定めておらず、

正式なポリシーを定めている企業は
27%と低い水準にとどまっています。

これは
オープンソースを導入したはいいけど
きちんと管理できていないことを意味しています。

また、
50%以上の企業は
オープンソースに潜んでいる

セキュリティ的な弱点(脆弱性)を
把握するスキルが足りていないと回答しています。

オープンソースを使った
システムにおいて、

脆弱性が潜んだ
プログラムがあるかどうかを
監視しているのはたったの17%でした。

他システムと連携しやすく
無償で導入できるのはオープンソースのメリットですが、

それを使って
セキュリティ的な弱点を潜ませる
システムを構築してしまうのは問題ですよね。

オープンソースの未来のために

オープンソースが
多くの企業で選択されているのは喜ばしいことです。

Linuxをはじめとする
オープンソースの活用シーンが増えることで

エンジニアが
活躍できる機会が増えています。

しかし、
オープンソースと言っても

システムを作るための
ひとつの道具にすぎません。

どこでどの
オープンソースが使われているか、

しっかり管理されていないと
収拾がつかなくなってしまいます。

セキュリティについても同じです。

脆弱性を知らずに
システムを構築することは、

玄関の鍵が
壊れているのに気付かないまま
家を建てているのと同じことです。

エンジニアは
オープンソースを使うにあたって

オープンソースを使った
システムやサーバーの構築法だけでなく、

なぜシステム化するにあたって
そのオープンソースを選択したのか、

そのオープンソースに
どのような脆弱性があるのかを
理解したうえで活用しなければなりません。

あなたもプロフェッショナルエンジニアになるなら、
その意識を強くもっていきましょう。

リスキルテクノロジー
松田

PS

オープンソース一筋の
専門校リスキルテクノロジー

プログラマーは専門性だけではダメ?

プログラマーのスキル

From: リスキルテクノロジー 松田航
@新宿オフィス

「プログラマーを目指す以上、専門性を
身に付けることは必須ですよね?」

「やはりエンジニアを目指すなら、
高度な専門技術が必要ですか?」

エンジニアやプログラマーを目指すあなたが
感じている通り、

スペシャリストである以上、専門的な技術を
身に付けることは必要条件です。

しかし

専門的な技術を身に付けたからといって、
引く手あまたのエンジニアやプログラマー
になれるか?

というと、必ずしもそうではありません。

事実、未経験からエンジニアを目指した方々が、
転職後に活躍しているということは、
まったく珍しいことでありません。

つまり、専門的な技術だけではない、
ということなのですが・・・

それでは、エンジニアやプログラマーとして
活躍するには、一体何が必要なのか?

これについてお話したいと思います。

【ヒューマンスキルを磨く必要がある】

エンジニアやプログラマーを目指す方にとって、
専門性を身に付ける必要があるというのは、
ごく当たり前のことと考えられているようです。

確かに少し考えてみると、

料理人になるなら料理が作れないとなりませんし、
美容師になるならカットなどの技術が必要ですから、

仕事を遂行するにあたって専門的な技術を
身に付けることは、スペシャリストに不可欠です。

しかし専門性だけでお客さんと仕事をすることが
できるかというと、そうではありません。

たとえばプログラムの開発とサーバの構築の両方を
お客さんから受注した場合、

プログラマーやインフラエンジニア、営業担当などを集め、
プロジェクトチームを作る必要があります。

担当ごとに求められる専門性は異なりますから、
多くの会社では分業化や専門化が進んでいるはずです。

分業化や専門化が進めば進むほど、
一つのプロジェクトを完了するにあたり、
協力してもらうスペシャリストの人数が増えますから、

あなたの担当する仕事を終えるためには、
他のスペシャリストと協調して仕事をしていくスキルや

正しく依頼や相談をするためのコミュニケーション力が
必要になるわけです。

つまり、プロジェクトの完遂には技術的なスキルに加え、
ヒューマンスキルを磨く必要がある、ということです。

そして仕事というのは、
お客さんの課題を解決することですから、

課題を理解するといったコミュニケーション力を
はじめとする、ヒューマンスキルが必要不可欠です。

技術だけではだめ

エンジニアやプログラマーとして活躍し、
評価されるには専門性だけでは十分ではなく、
ヒューマンスキルが求められるということ。

また、結局給料が上がって行くのも、
技術力だけではなくバランスよく能力が上がっている
人材です。

なぜなら、上の立場の人間は、
人を育てることも重要な仕事になるからです。

専門性を身に付けなければならない、
という意識はきっとあなたも持っていると思いますから、

むしろヒューマンスキルこそ、
仕事を進めるにあたり大事なスキルである

こう、考えてみてもいいかもしれません。

リスキルテクノロジー
松田

PS

手っ取り早くエンジニアに必要なヒューマンスキルを上げるには、
開発演習をやるべきです。

開発演習も行うプログラミング講座

エンジニアリングの基本:PDCAサイクル

pdcaサイクル

From: リスキルテクノロジー 松田航
新宿本校にて、、、

「PDCAサイクル」

という言葉を知っていますか?

学生であれ
社会人であれ、

一度は聞いたことがあるかと思います。

今回は

「PDCAを意識する大切さ」

についてお話ししましょう。

PDCAサイクルって何ですか?

PDCAサイクルとは
業務品質を高めるための手法で、

継続的に業務内容をチェックして
改善・改良しやすくするための理論です。

PDCAは以下の4つの要素に分かれています。

【P】Plan(計画)

目標を設定して計画をたてる。

【D】Do(実行)

計画に基づいて実行する。

【C】Check(評価)

実行結果を分析して評価する。

【A】Action(改善)

実行結果や計画通り進んでいない点について、
実行方法を改善する。

この4つの要素の頭文字を取って、

「PDCAサイクル」

と呼ばれています。

PDCAはサイクルですので、

P→D→C→A→P→D...

と繰り返してゆきます。

この繰り返しによって、
より良い品質を保つことができるのです。

個人の業務にもPDCAサイクルは当てはめられる

PDCAサイクルは
企業の品質管理や業務管理に使われますが、

個人の業務にも
当てはめることができます。

例えば、あなたが
プログラムを作るとしましょう。

その時には、
あなた個人の業務の中に
PDCAサイクルができているのです。

【P】Plan(計画)

仕様確認してどのように作るか計画する。

【D】Do(実行)

仕様に基づいて作成する。

【C】Check(評価)

動作確認を行う。

【A】Action(改善)

不具合があれば修正する。
もっと処理を効率化できる点を改善する。

プログラミングの例で言えばこうなりますが、

どのような業務でも
PDCAサイクルは個人の業務に生まれています。

もし、個人の業務に
PDCAサイクルが生まれていない場合は、

業務の品質が低くなってしまうのです。

PDCAを意識しない業務は品質が低い

業務の中に、
PDCAサイクルが
生まれていない例を見てみましょう。

例えばサーバー障害が発生して、
ネットワークが接続できなくなったとします。

あるエンジニアは、
やたらとコマンドを入力して
設定変更を行っては障害復旧しようとします。

思いつく限りの方法を試みますが、
まったく障害復旧する様子はありません。

時間は過ぎて行く一方で、
エンジニアには焦りだけが募ります。

…これって効率が悪いですよね。

「とりあえずやってみるか!」

というタイプの方に多いケースなのですが...

(私もこちらのタイプですね。)

このタイプのエンジニアには
Plan(計画)とAction(改善)がないのです。

Do(実行)とCheck(評価)だけです。

知っていることをひたすら試し続ける。

それが問題だとは言いませんが、
もっと効率的に業務を行う方法はあるはずです。

できるだけ短い時間で最大の効果を発揮する方法が、
高い業務品質を持った業務です。

そのためには、
サーバーログファイルなどを確認して
情報を集めた上でどのように対応するか計画し、

実行、評価して障害回復しなければ
改善策を検討して別の方法を試してみる...

といったように、
PDCAサイクルを業務に活かさなければ、

業務品質が低くなってしまうのです。

業務品質を高めるためのポイント

普段の業務では...

「PDCAサイクルをいかに早く回すか」

...という点がポイントです。

慎重なタイプの方に多いのですが、
Plan(計画)ばかりに気をとられていると、

なかなか行動が起こせずに
業務が進まなくなってしまいます。

何かの業務をするときには...

【P】手早く業務を進める手順をたてる。
【D】手順通りに業務を行う。
【C】業務内容をチェックする。
【A】不備や手順どおりにできていない点を確認する。

...というサイクルを
どれだけ早く繰り返すかが大切なのです。

PDCAサイクルは、

・大きく見れば企業全体の業務品質を高める
・小さく見れば個人の業務品質を高める

...ということを覚えておいてください。

リスキルテクノロジー
松田

PS

PDCAサイクルは
品質管理としてはスタンダードな手法です。

より良い品質を提供するために
個人レベルでPDCAを意識するようにしましょう。

エンジニアになるならリスキルテクノロジー

最近よく聞くIoTって何のこと?

IoTとは?

From: リスキルテクノロジー 松田航
新宿本校にて、、、

最近よく聞く言葉に...

「IoT」

という言葉があります。

ITじゃなくてIoT?

IoTとは
いったい何なのでしょうか?

IoTって何のこと?

IoTとは

「Internet of Things」

の略で、
「モノのインターネット」のことです。

じゃあ
モノのインターネットって何?

という話になりますよね。

これまでのインターネットは
パソコン同士がネットワーク通信していましたが、

モノのインターネットでは
パソコンに限らず...

家電製品や機械などが
インターネットで通信することを言います。

IoTはビジネスから日常生活まで
幅広いシーンで活用することができます。

たとえば
自宅にある家電を
スマートフォンから操作したり、

自動販売機などで
在庫が少なくなったら
自動的に商品を発注したりと、

活用シーンはさまざまで、
これからもアイディア次第で
IoTの活用シーンはどんどん増えてゆきます。

IoTとLinuxの関係

IoTの普及には
Linuxが大きく役立っています。

アメリカの調査会社である
VDC Research Groupの調査によると、

家電製品などを
制御するために組み込むOSとして、
Linuxを活用する企業が増えています。

まぁ、そりゃそうですね。
一個一個の家電に有料OS入れる訳には
いきません。

Linuxの活用は
2012年には市場シェアの56.2%でしたが、

2017年には64.7%にまで
増えるであろうと予測しています。

このLinuxシェアの増加の背景には
IoTの普及があります。

IoTの急伸が、
機械に組み込むOSとして、

従来の組み込みOSから
Linuxに移行することを加速させているのです。

誰でも入手できる、
オープンソースで無償であるLinuxを、

IoTの活用において、
第一の選択肢となる企業が増えています。

個人でもできるIoT

IoTの活用は
企業でないとできないのでしょうか?

いえ、そんなことはありません。

その気になれば
個人でも少しの出費で
IoTの環境を作ることができます。

ちょっとIoTをやってみたい!

という方向けに...

「Raspberry Pi(ラズベリーパイ)」

というコンピューターが売られています。

手のひらサイズで、
5,000円もあれば買えてしまいます。

小さいけれど性能は高く、
ひと昔前のコンピューターと同じ性能です。

温度や気圧などの
さまざまなセンサーや、
カメラなどのUSB機器が接続できます。

実はこれ、
Linuxベースのコンピューターなのです。

Raspberry Piを使って
自宅のペットを監視するカメラや、

音声で自宅のドアの開閉や
照明のON/OFFを制御するなど、
IoTを活用した環境が作れます。

もちろん、
ある程度の知識は必要ですが、
興味のある方はチェックしてみてください。

Linuxはエンジニアの標準スキル

IoTは世界的に注目されており、
今後もますます広がってゆく分野です。

大手CPUメーカーであるIntelは
IoTのための標準機能の提供を予定しており、

そこに
Linuxの普及促進機関である
LinuxFoundationが全面協力しています。

IoTの世界的な普及は確実であり、
IoTにおけるLinuxの活用も確実に広がります。

ソフトウェアエンジニアでも
コンピューターの小型化によって、

Raspberry Piのような
小さなコンピューターで
動作するソフトを開発する機会は増えるでしょう。

どのようなエンジニアでも
あなたの前には必ずLinuxが存在するのです。

Linuxはこれからの時代、
エンジニアとしての標準スキルなのです。

リスキルテクノロジー
松田

PS

このIoTの活用には
以前お話ししたIPv6の技術が必要不可欠です。

数多くのモノがインターネットするので
それぞれのモノにIPアドレスが必要となります。

膨大な数のIPアドレスを管理できる
IPv6の技術があってこそIoTは実現します。

インターネットは
新しい時代に入りつつあるのです。

Linuxとネットワークに強い リスキルテクノロジー

エンジニアのキャリアプランを実現するために大切なこと

エンジニアのキャリア

From: リスキルテクノロジー 松田航
新宿本校にて、、、

エンジニアとして活躍する上で

「キャリアプラン」

...をしっかり持つことが大切です。

そして
キャリアプランは持つだけでなく、
実現させることも重要です。

今回は

「キャリアプランを実現するためのポイント」

...についてお話ししましょう。

キャリアプランを意識することが必要

入社1年はプログラマー。

入社2~3年はSE。

入社4年目以降で上級SE...。

昔の企業では
社員のキャリアプランを
企業が設定してくれていました。

なんとか仕事に
しがみついてさえいれば、

会社が敷いた
キャリアプランというレールに乗って
活躍できるという保証(?)がありました。

しかし、
今はどんな大企業でも
いつ倒産するかわからない時代です。

企業が設定したキャリアプランは
ほとんど意味がなくなっています。

また、
今の企業のほとんどは、

「自分はこうなりたい!」

...という主体的な
キャリアプランを持つ方を求めています。

エンジニアにとって
キャリアプランをしっかり意識することは、

IT業界で活躍するためには
必要な意識のひとつです。

年齢と案件

あるエンジニアの話をご紹介しましょう。

そのエンジニアは50代前半で
小さなSIerに15年以上勤めていました。

15年選手ともなると
エンジニアとしてもベテランの域に入りますが、

どういう訳か
参加できる開発案件がなくなってきました。

その理由は、

年齢とスキルがマッチしない

...ということでした。

エンジニアは
ある程度のキャリアを積むと、

上流工程のスキルや
マネジメントスキルなどが求められます。

しかしその方は、
会社から紹介された
プログラミングやテストの案件など

フェーズの限られた
短期的な開発案件にばかり参加しており、

自分が思い描いていた、

「マネジメント系のスキルを磨く」

...というキャリアプランを
実現することができなかったのです。

仕事をこなすのに精一杯で、
何もできなかったという例ですね。

そういった仕事ばかり取る会社にも
原因があるかとは思いますが、

仕事を理由に
キャリアプランを実践できなかった
エンジニアにも原因はあります。

仕事をしながら
キャリアプランを実践するのは大変ですが、

毎日少しずつでも、
キャリアプランの実現のために何かをすることで、
将来に大きな差が付くこともあるのです。

未経験から業界に入る場合

未経験から業界に入る場合にも注意が必要です。

IT業界は建設業界などと同じように、
ピラミッド構造で成り立っています。

元請け、一次請け、二次請けと仕事が
流れる構図になっているということです。

はじめに働く階層により、その後のキャリパスが大きく変わるのが
ピラミッド構造の特徴です。

「初心者歓迎」「未経験者OK」という求人はたくさんありますが、
その企業はどの階層でしょうか?

もし、成長していいエンジニアになりたいと思っているのであれば、
かつ新卒でないのであればある程度のスキルを持った上で、
入らなければパーツを作る作業を繰り返すだけになってしまいます。

キャリアプランを描くためには?

キャリアプランを
描くにあたって大切なことは、

「どんな自分になりたいのか?」

ということを強く意識することです。

エンジニアと言っても
さまざまな職種があるので
具体的なことはここでは話しませんが、

「なりたい自分」

...を意識することで
あなたの中に目的意識が生まれます。

そして次に、
なりたい自分になるために、

・今のあなたでもできること
・今のあなたではできないこと

...をリストアップしてください。

今のあなたでもできることは、
キャリアプランを実現するために
必要なものを持っているということです。

必要であれば
既に持っているスキルなどを
伸ばしてゆけるようにしましょう。

そして、
今のあなたではできないことは、
キャリアプラン実現のために必要なことです。

できないことを
できるようにするために、

どのようなことをすれば良いのか?

それを考えて実践しましょう。

既に持っているスキルは
更にスキルを伸ばせるように、

持っていないスキルについては、
どのようにすれば身に付けられるか、

常に自分を分析して、
なりたい自分になるために
必要なことを見極めることが大切です。

あなたが思い描いている
キャリアプランを実現した人がいたなら、
その人に相談してみるのもひとつの方法です。

そこから
自分では気が付かなかった
新しい視点が発見できるかも知れませんね。

学び続ける姿勢、前に進もうとする姿勢が大切

また、
キャリアプラン実現のためには、
たとえどんなに忙しくても
何かを学ぶ姿勢は忘れないようにしてください。

新人エンジニアの頃は
毎日が学びの連続で得る物も多いですが、

数年経つと
学ぼうとしなくなる
エンジニアが増えるのも事実です。

毎日数分でもかまいませんので、
目標のために進み続けることが大切です。

そして、
キャリアプランは
変更してもいいという事も覚えておいてください。

IT業界では
毎日新しい技術が生まれ、
新しい職種が次々に生まれています。

状況に応じて
なりたい自分が変わることもありますし、

最初考えていたキャリアが
数年後には需要が低いことも考えられます。

ですので、
キャリアは柔軟に考えるようにしてください。

大切なのは
学び続ける姿勢や、
前に進もうとする姿勢です。

その姿勢を持ち続けることができれば
数十年後も活躍できるエンジニアになれるのです。

リスキルテクノロジー
松田

PS

スクールで学ぶことは
キャリアプラン実現のために有効な手段です。

あなたのキャリアプランの実現をサポートします。

リスキルテクノロジーの資料請求はこちらから

膨大なIPアドレスを管理できるIPv6とは?

ip v6とは

From: リスキルテクノロジー 松田航
新宿本校にて、、、

ネットワークでは

「IPアドレス」

...が使用されています。

IPアドレスとは
コンピュータの住所とも言えるものですが、

このIPアドレスに変化が起きているのです。

今回は新しいIPアドレスである

「IPv6」

についてお話ししましょう。

IPアドレスが不足している?

IPアドレスは

"192.168.25.100"

というように、
0~255までの数字を
組み合わせて割り振られています。

ホームページなどのアドレスは

http://www.linuxacademy.ne.jp/

というように
文字でアドレスが指定されていますが、

実際には...

"203.174.70.235"

というIPアドレスで管理されているのです。

このIPアドレスの仕組みを

「IPv4(Internet Protocol version 4)」

と言い、
インターネット通信の規約である
プロトコルのバージョン4を意味します。

そしてこのIPv4には

「IPアドレスが不足している」

と言う問題がおこっているのです。

現在の世界人口は
70億人を超えていますが、

IPv4で割り当てることができる
IPアドレスの数は、およそ43億個です。

世界中の人に1つのIPアドレスを
割り当てることすらできなくなっています。

そして
インターネットサービスの普及などにより
IPアドレスの需要が増加しているため、

IPv4でのIPアドレス管理は
すでに限界に達しているのです。

IPアドレス不足を解消するIPv6

そこで登場したのが

「IPv6(Internet Protocol version 6)」

と呼ばれるプロトコルです。

インターネットプロトコルの
バージョンが4から6にアップしたのですが、
仕様が大幅に変更されています。

まず、IPアドレスの表現が...

"192.168.25.100"

といった4つのブロック表記から、

"2015:c900:0000:0bc1:0000:4321:1256:0000"

といった、
「:」(コロン)で分けられる
8つのブロック表記に変わりました。

これにより、
設定できるIPアドレスの組み合わせが
以下のように飛躍的に増えているのです。

[IPv4]
4,294,967,296個
(2の32乗 約43億)

[IPv6]
340,282,366,920,938,463,463,374,607,431,768,211,456個
(2の128乗 約340潤(かん))

ものすごい量に増えていますね。

IPv4で管理できるIPアドレスを
バケツ1杯の砂の数だとすると...

IPv6で管理できるIPアドレスは
太陽一個分の体積の砂になると言われています。

IPv6の登場によって
IPv4のアドレス不足問題が解消されるのです。

アドレス数だけではないIPv6の特徴とは?

IPv6にはIPアドレスの数以外にも
さまざまな特徴があります。

IPv4とIPv6の
特徴を比較した表を見てみましょう。

IPv4v6

■IPアドレス数

IPアドレス数は既にお話しした通り、
圧倒的にIPv6の方が多いです。

世界中の機器に割りあてることも
可能だと言われています。

■NAT

IPv4では
アドレス不足を解消するために

「NAT(Network Address Translater)」

という技術が使用されています。

これはIPアドレスを
一時的に書き換える技術なのですが、

IPv6ではアドレス数が多いので
NATが不要になります。

■オートコンフィグレーション

オートコンフィグレーションとは
IPアドレスを自動で設定する方法です。

IPv4ではIPアドレスの設定を
手動で行う必要がありましたが、

IPv6では
オートコンフィグレーションにより
自動的に設定されます。

■セキュリティ

IPSecとは簡単に言えば
通信を暗号化する手法です。

IPv4では
オプションで実装できますが、

IPv6では標準で実装されているので
通信内容を読み取られる危険が少なくなります。

■処理速度

送受信されるデータの
共通情報などが見直しされたことで、

ネットワーク機器の処理負担が減り、
処理速度が早くなりました。

これからのエンジニアに必須のノウハウ

IPアドレス不足問題の
救世主のようなIPv6ですが、

実際には
通信機器のIPv6対応不足や、

IPv4との互換性の問題などにより、
十分に普及しているとは言えません。

そして...

「IPv6のノウハウを知るエンジニアが少ない」

...というのも普及が遅れる理由のひとつです。

これからのネットワーク社会は
IPv6の技術が必要になってきます。

それはIPアドレス不足の問題からも
明らかなことです。

しばらくは、
IPv4とIPv6が共存する時代が続くでしょうが、
いずれはIPv6に変わる時代が来ます。

IPv6についてのノウハウは、
これからのエンジニアに必須だと言えるのです。

リスキルテクノロジー
松田

PS

IPv4からIPv6まで
ネットワークに関するノウハウを学ぶなら、
ネットワークの専門スクールリスキルテクノロジー

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する