IT技術者が最も恐れるもの

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

IT技術者が最も恐れ、
出来ればその姿さえ見たくないもの...

それは、、、

「バグ」です

バグとは
主にプログラムの不具合によって
システムが正常に動作しない問題を言います。

バグが生まれる原因には様々です。

設計不足、
検討不足、
動作環境の問題など...

そして昔から
多くのバグの原因となっているのは、
思い込みによるバグや、
不注意によるケアレスミスなのです。

iOSでもあったケアレスミス

iPhoneやiPadの普及により、
ユーザー数が急増したApple社のiOS。

今年の2月21日、
iOS7.0.6のアップデートが発表されたときに
その問題は発覚しました。

iOS7.0.6での修正内容は
「SSLの接続に関する問題を修正」とされています。

SSLとは、
個人情報やクレジットカード番号など、
大切な情報を入力する時に
通信を暗号化して送受信する通信技術のこと。

この技術によって、
インターネット上の通信の安全性は保たれていますが
iOS7.0.6以前のバージョンでは
SSL通信が正常に行えていませんでした。

SSL通信技術は
既にメジャーとなっている技術です。
何故今さらになって、そんな不具合が起こったのでしょうか。

Apple社は
iOSがSSL通信する箇所の
プログラムソースを公開しました。

[ソースコードURL]
http://opensource.apple.com/source/Security/Security-55471/libsecurity_ssl/lib/sslKeyExchange.c

[ソースコード(一部抜粋)]

applesource

プログラムでは
SSL通信時にエラーが発生したら
エラー処理を行う命令にジャンプする様になっていますが...

たとえエラーが発生していなくても
エラー処理を行う命令にジャンプする様に書かれています。
※goto fail; エラー処理へのジャンプ命令が余分に書かれている

つまり、必ずSSL通信がエラーになるのです。

知らずに悪意のあるサイトに接続した場合、
クレジットカード番号やパスワード等が
解析可能な状態で通信が行われていたのです。
※現在は修正されています。

しかも、その原因となるコードはたった1行。

おそらくプログラマーが、
プログラムを作る際にコピペして作ったのでしょう。

たった1行の
ケアレスミスを犯したが為に、
「Apple史上最大のセキュリティバグ」
とまで言われるバグを生み出してしまったのです。

バグをなくす為のテストって、してないの?

もちろん、全てのシステムは
様々なテストをパスしてリリースされます。

今回のiOSの場合は、
SSL関連のテストケースが不十分、
または漏れていた可能性があります。

あるいは...

SSLならば
これまでのバージョンで
ちゃんと接続されてきた実績もあるし
大丈夫だろうさ!

...という思い込み。

こういった思い込みも
バグを生み出す大きな要因の1つです。

システム開発のテストは、
大きく分けると3つの段階を経て
システムに問題がないかをチェックします。

1.単体テスト

最初に行われるのは「単体テスト」です。

設計書を元にして、
プログラムが動作する際に
確認する必要がある項目を洗い出します。

これをテスト仕様書と言い、
プログラムが完成したら、
テスト仕様書を元にテストを行うのです。

2.結合テスト

そして次の「結合テスト」では、
別々に作成された画面や機能を組み合わせ、
システムとして連携できるかどうかを確認します。

例えば
販売管理システムの場合なら、
実際の販売管理において
想定されているシステムの流れ=シナリオを組み
そのシナリオに則ってテストを行うのです。

3.総合テスト

単体テストや結合テストが
開発者が作った開発環境で行われるのに対し
「総合テスト」は原則的に
実際にユーザーが使用する環境で実施されます。

ユーザー環境が使用できない場合は
それと同等の環境を構築して実施するケースもあります。

総合テストは、システムテストとも呼ばれており...

・システムパフォーマンスの確認
・操作性や業務効率性に問題はないかの確認
・他のシステムとの連携確認

...等といった、
実環境におけるシステム動作・性能に関するテストが行われます。

1つのシステムが開発される際、
多くの人が集まり、多くの時間を費やしテストしますが
それでもバグが発生する可能性は大いにあるのです。

思い込みミスやケアレスミスを無くすには

思い込みが原因で発生するバグは、
「自分が作ったプログラムを、自分がテストする」
という時に発生しやすいです。

テスト仕様書を自分で作り、
そのプログラムを自分で作ると、
実際にテストする時になった際に…

ここはちゃんと
コーディングした時にチェックしたから
問題はないだろう!

そう思ってしまうんですよね。

大きなプロジェクトであれば
プログラマーとテスト担当が別なのですが、
小さなプロジェクトだと
プログラマーがテスト担当を兼ねるケースが多いです。

そして、
本来単体テストで発見されるハズのバグが
結合テストなどで発見されてしまうと、
ユーザーから不審な目で見られます。

本当にちゃんとテストしているのか?と。

思い込みをなくす為には
出来る限り別の技術者の観点も取り入れ
客観的な視点からテストするようにしましょう。

そして、ケアレスミス。

基本的な対策としては「見直し、確認する事」。
この行為に尽きます。

例えば
似ている箇所があるプログラムを
コピペして再利用する場合

ペースト先のプログラムで
正常に機能するのか、
期待した振る舞いを行うのかを、
きちんと確認する必要があります。

元のプログラムではバグが無かったとしても
別のプログラムではバグを生む可能性もあります。

プログラムを実行する際、
ステップ実行(1行ずつの処理確認)できる
開発環境で作成している場合は、
必ず1度はステップ実行することをお勧めします。

そして
これまで何度も使ったプログラムだからと言って
テストにも手を抜くことなく、動作確認を行うこと。

そうしていれば、
今回のApple社のiOSの様な不具合も
出る事はきっとなかったはずなのです。

信頼を損なわない為に
技術者ができる事

人間は完璧を求めますし、
システムは完璧を求められます。

しかし、人間は完璧ではありません。

バグが無いに越した事はありませんが、
様々な技術者のスキルを集め、
出来る限りバグのないシステムを作ること。

少なくとも
思い込みやケアレスミスは、
開発チームと本人の努力によって、防げるレベルのバグ対策です。

それは最低限のバグ対策だと言えます。

最低限のバグ対策を行った上で
更にバグを無くす為の対策を行ったとして、
それでもなお、後々になってバグが発覚した場合は...

・迅速に修正、復旧できるか
・被害を最小限に食い止められるか
・不具合の事象、原因、影響範囲を説明できるか
・再発防止策をどのように講じるか

...といったように、
誠意を持って、ユーザーの信頼を損なわない対応を行う事。

それが大切なのです。

バグはシステムだけでなく
ユーザーへの信頼までも貪るケースがある
その事を覚えておいてください。

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

PS

今回は主に
プログラム的なミスのお話しでしたが、
同じ事は設計者にも言えます。

設計者が仕様を勘違いしたり、
思い込んで設計したりすれば、
ミスを含んだ設計仕様でプログラムが作られる事になります。

また、このような
ミスを減らす為の取り組みは
IT業界に限った事ではありません。

1人1人が連携しつつ、
いかにミスを無くして
質の良い製品・サービスを提供できるか...

それはどの業界でも共通の課題なのです。

PPS

ミスが少なくするには、
ベテランエンジニアのコーディングを見る。
もっと言えば、直接教えてもらうのが、
最善です。

プロのエンジニアが教えるJavaの研修はこちら

そもそもサーバーの役割とは?

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

サーバーの方が普通のパソコンよりも優れているという
漠然としたイメージを持っているのではないでしょうか?

ただ、どんなものか、
何をしているのか、すごく漠然としか理解していない、
そんな人も多いと思います。

今日は私たちの日常生活において、
必要不可欠な存在となっているサーバーについて、
その役割と特徴をご紹介します。

知らない間に実は使っている?
日常生活に密接な関わりを持つサーバーとは

例えばあなたが
スマホでメールを送ったり、
Webサイトの閲覧やYouTubeで動画を見たりするとします。

これらが実現している背景には
ネットワークとサーバーの存在があります。

他にもカードキーでのドアロック解除や、
銀行のATMでお金を入出金や振込みするなど、

私たちの日常生活においてサーバーは密接に関係しており、
あなたは知らない間に数々のサーバーを利用しているのです。

サーバーの役割は
さまざまなシステムを使用したサービスを提供することです。

サービスを提供する人(モノ)だから、
サーバーです。

ネットワークを経由して
サーバーのサービスを利用します。

サービスの提供はパソコン、スマホ、ATMなどの
クライアントと呼ばれるコンピューターからの要求をサーバーが受信し、
サーバーで処理を行った結果をクライアントに提供するという流れで進みます。

ATMの例で簡単に流れを説明すると...

(1) ATMから残高照会をサーバーに要求
(2)サーバーで口座残高を確認し、ATMに情報を返す
(3)ATMで表示された残高を確認し、10,000円を出金
(4)10,000円出金した事をサーバーに通信し、口座残高を減らす

...というような流れでサーバーとクライアントの通信が行われるのです。

普通のパソコンでも
サーバーとして利用することはできます。

が、
基本的に故障やシステムダウンさせないため、
膨大な数のクライアントからの要求を高速に処理するために、
通常のパソコンよりも遥かに高性能な処理能力を持ちます。

上等なPCを使っていると思ってください。

サーバーで提供するサービスは
使用するユーザーの数や予想される要求数に応じて
処理性能を考慮し、処理するサーバーの数も検討する必要があります。

サーバーの役割はインストールする
アプリケーションによりさまざま

サーバーを構築する際、
提供したいサービスに適した
アプリケーションをインストールします。

サーバーの役割は
インストールするアプリケーションにより
決定されるのです。

大規模なシステムにおいては
1サーバーにつき1つの役割となる事が多いですが、
1サーバーにつき複数の役割を持つケースもあります。

我が社で使っているシステムなんかはそうですね。

優秀なエンジニアが頑張ってくれているので、
同じサーバーでたくさんの役割が入っています。

(褒められたものじゃないって?
 ええ、知っています。 苦笑)

たくさん入っていると、
サーバーの費用が抑えられます。

反対に、そのサーバーが壊れると
とても大変です。

なんとなくイメージがついたでしょうか?

以下に代表的なサーバーの役割と、
アプリケーションを紹介しましょう。

1.Webサーバー

インターネットの必須サーバー。

クライアントからの要求に応じた
Webページをクライアントのブラウザに表示します。

代表的なアプリは「apache」。

2.Mailサーバー

メールの送受信を管理するサーバーで、
受信サーバーを「POP(Post Office Protocol)サーバー」、
送信サーバーを「SMTP(Simple Mail Transfer Protocol )サーバー」と言います。

簡単に言えば
郵便ボストがSMTPサーバーで、郵便受けがPOPサーバーです。

代表的なアプリは「sendmail」「postfix」。

3.SSHサーバー

通信する内容を暗号化して
コンピューターとリモート通信する為のサーバー。

パスワード等の重要な情報を
暗号化しないままの通信を行うと
パスワード盗聴などの恐れがあり、
セキュリティ的に問題があります。

このため、暗号や認証などの
セキュリティを施した上で通信を
行う必要があるのです。

SSHは各サーバーをリモート操作する為、
ほとんどのサーバーに同時に設定されます。

代表的なアプリは「OpenSSH」。

4.DNS(Domain Name System)サーバー

通常、インターネット上のサーバーは
IPアドレスと呼ばれるもの(8.8.8.8など)によって
識別されます。

サーバーの住所みたいなものです。

しかし、いかんせん、
わかりにくい。

そこで、
人間にわかりやすいドメイン(www.linuxacademy.ne.jp)で
アクセスできるようにしています。

これを変換しているのが、
DNSサーバーです。

代表的なアプリは「bind」。

5.FTP(File Transfer Protocol)サーバー

FTPを利用して
サーバーとのファイル送受信を可能とするサービス。

誰でも接続できる様な設定も可能ですが、
FTP接続のための専用ユーザーを作成して、
権限を持ったユーザーのみ送受信する事も可能。

代表的なアプリは「vsftpd」。

この他にも、
データベースを管理するDBサーバーや、
ストリーム配信を行うストリームサーバー、
サーバーサイドJavaプログラムを実行可能とするAPサーバーなど、
サーバーには提供するサービスによってさまざまな種類があります。

まぁ、わからなくても気にしないでください。

とにかくたくさんアプリケーションがあって、
それをサーバーに入れることによって、
動くようになるということです。

これらをいかに使うか?
どうやって利用して行くか?

などが、Linuxの世界共通試験 LPICの
内容のメイン部分になります。

サーバーの過酷な稼働環境で
トラブルを回避するには

サーバーはメンテナンス等を除き、
基本的に24時間365日稼働することが
前提とされています。

通常のパソコンの様に、
1日使い終わったら電源を切るという
サーバーはまずありません。

しかし機械にはトラブルは付き物。

24時間365日稼働させる為に、
故障やシステムダウンといったトラブルを避けるために
さまざまな技術が採用されています。

1.RAID

ハードディスクを複数用意し、
データを分散して記録することにより
障害発生時の負荷分散と処理の高速化を行う技術。

RAID1(ミラーリング)と言う手法で、
2代のハードディスクに同時に同じデータを記録したり...

RAID0(ストライピング)と言う手法で、
複数のハードディスクに分散してデータを記録することにより
データを記録する速度を高速化する技術などもあります。

RAIDには0~6までの7種類の手法が存在し、
各手法を組み合わせて運用されるケースもあります。

2.UPS(Uninterruptible Power Supply)

日本語では「無停電電源装置」という意味で、
万一停電が発生した場合でも、サーバーに電源を供給して
サーバーダウンを回避する装置です。

大量のサーバーを管理する
データセンターには必ず備え付けられており、
データ保護のため普通のパソコンに使用している企業もあります。

3.ホットスワップ

サーバーの電源をONにしたまま
ハードディスクやケーブル、パーツを交換できる技術。

サーバーの一部に障害が発生した場合でも、
サービスを停止させることなく故障した部品の交換が可能です。

4.クラスタリング

複数のサーバーを1台のサーバーの様に見せかける技術。

例えば2台のWebサーバーとした場合...

1台を運用、1台を休止状態にして待機させ、
トラブル発生時に切り替えを行う
フェイルオーバーというクラスタリング手法や...

2台とも同時に運用させておき
一方のサーバーに問題が発生してもサービスが継続できる
負荷分散型クラスタリングといった手法があります。

5.ディザスタリカバリ

データのバックアップを行う際、
サーバーと同じ場所ではなく遠隔地のサーバーにバックアップする手法。

事業継続性を考慮する上で有効な方法で、
災害などによるトラブルが発生してサーバーが故障しても、
バックアップデータは遠隔地に保存しているので、
バックアップデータをリカバリして短期間で事業再開できるのが特徴です。

いかにしてダウンタイムを抑えるか
それがサーバーエンジニアの究極の目標

このようにサーバーは
日常生活や企業業務と密接な関わりがあり、
24時間365日稼働させないといけない過酷な状況下で
高い処理能力を発揮させる必要があります。

サーバーダウンを回避する技術には
上で紹介した以外にもさまざまあるのですが、
いずれの技術においても...

「いかにしてシステム稼働停止時間(ダウンタイム)を短くするか」

...というのが究極の目標であると言えます。

ダウンタイムが長くなればなる程、
ユーザーはそのサービスを使用することができず、
ユーザーからの信頼を失墜させることにもなりかねません。

ダウンタイムが続けば続くほど、
ユーザーは利益を得る機会を失ってしまうのです。

普段私たちが使用している
パソコンも十分に大切な存在ですが、
サーバーはそのサービスを利用する
多くの人にとって大切な存在です。

一件、プログラマーよりも地味な職業ですが、
必要性は同等以上あり、やりがいのある職業です。

ITに興味があり、
業界に入っていきたいなら、
インフラ技術・サーバー技術をスキルとして体得することが、
近道になります。

ぜひ、学習を進めてみてください。

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

PS

現在のIT業界における
サーバーエンジニアの需要は高く、
データセンターや企業のIT部門など、幅広く活躍できるステージがあります。

未経験でもスキルさえ習得すれば、
就職や転職できるチャンスは非常に高いと言えます。

サーバーエンジニアには
ネットワークの知識も必要不可欠ですが...

当校ではサーバー構築からネットワーク、セキュリティまで、
インフラ系のスキルやノウハウを総合的に身に着けることができます。

現場で使えるインフラ系スキルを身に着けたい...

そんなあなたはまず、リスキルテクノロジーの資料をみて見てください。
↓↓↓
サーバーエンジニアになるならこちら

システムリリースを成し遂げるには?

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

前回は「データ移行」についてお話ししました。

しかし、
システムリリース時に注意すべき事項は
データ移行だけではありません。

ユーザーに安心して新システムを使用していただく為、
考慮する事項はまだまだあります。

前回はデータの移行方法を説明しましたが、
今回は「システム移行」についてお話ししましょう。

システム移行は「引越し」に似たり

システム移行は
身近な話で言うと「引越し」に似ています。

旧システムという家では
家族も増えて手狭になって来たので...

最新式設備のある
新しく広いデザイナーズ設計の家に引越しするイメージです。

既に新しい家は建築済で、
これまで使用していたソファや冷蔵庫など、
新しい家で住むのに必要な資産は業者に運んでもらいました。

これが前回お話しした「データ移行」にあたります。

そして実際に人が移り住み、
生活を営む事が「システム移行」にあたるのですが...

システム移行方法には3種類あります。

(1)新旧の家で実際に住み比べる方法

今までの家で住み方と、
新しい家での住み方を比較し
今まで住んでいた家での利便性や快適性が確認できてから引越しします。

(2)部分的に順次引越しする方法

ひと部屋ずつ順番に引越しして住み心地を確認し、
住み心地に問題が無ければ別の部屋の引越しを始めます。

(3)一斉に引越しする方法

とりあえず一家全員
引越しして新しい家での生活を開始します。

移行方法にはそれぞれ特徴がありますが
具体的にはどのように異なっているのかを見て行きましょう。

3種類のシステム移行方法の特徴

上で述べた移行方法は、それぞれ...

(1)並行稼働 (新旧の家で実際に住み比べる方法)

(2)部分移行 (部分的に順次引越しする方法)

(3)一斉移行 (一斉に引越しする方法)

...と呼ばれています。

(1)並行稼働

これは最も安全性の高い移行方法ですが
移行期間や人的リソースが多くかかる方法です。

具体的には、
旧システムと新システムで
ユーザーに同じデータを入力してもらいます。

例えば入金伝票を登録する際、
旧システムにも入金伝票を入力し、
新システムにも同じ入金伝票を入力するのです。

並行稼働中は
新旧両システムの入出力内容を比較して同じであれば問題はなく、
これまでのシステムと同じ動作確認が取れているという意味を持ちます。

そして全体の動作確認が取れた上で、
新しいシステムに完全に切り替えてしまう方法です。

ただし、
平行稼働中はユーザーの手間も2倍かかり、
またある程度の稼働期間を確保した上で行う必要があるため、
移行期間と人的リソースを大幅に確保しないといけません。

(2)部分移行

支店単位、業務単位、機能単位といった、
カテゴリ別に新システムを導入してゆく方法です。

新システムを導入して問題が発生した場合、
旧システムに戻してリカバリーを行う事により
トラブルの拡大を最小限に抑えられるという効果があります。

ただし、部分移行期間中は
旧システムと新システムの連携が必要となるため、
開発時に新旧システム連動が正しく行われる事をテストする必要があります。

実際に部分移行という方法は、
都市銀行の統合などで使用される手法として有名。

支店単位で移行する事により、
システムトラブルが発生した場合の影響を
支店という限定された範囲に抑え込むことができるのです。

全店でシステムトラブルとなるよりは、安全な移行策であると言えます。

(3)一斉移行

これは文字通り、
あるタイミングを持って新システムに一斉切り替えを行う方法。

ゴールデンウィークといった大型連休など、
一定の間、ユーザーがシステムを使用しない期間に行われる事が多いです。

休み明けにユーザーが出社したら
新しいシステムに切り替わっているという流れですね。

短期間でシステム移行を行う必要があり
予め立てておいたシステム移行の計画に則り移行が行われます。

移行コストという面では
他の移行方法に比べて抑えられますが、
システム移行後にトラブルが発生した場合に
どのように対処するかという事を想定した上で行う必要があります。

問題が大きい場合は
旧システムに戻すという手段も想定されますが…

その問題が一斉移行後に発覚した場合、
ユーザーの業務が停止してしまうため、リスクは大きいと言えます。

リハーサルによる事前確認で
リスク検知・安全性確認

システムの移行方法は
業種や案件の種類によって異なりますが、
多くの場合は一斉移行の方法が採用されています。

ただし、
その前にある程度の期間を設けて
ユーザーテスト的に並行稼働期間を設けるケースもあります。

例えばテスト的に約1カ月間、
経理担当に新旧両システムにデータを入力してもらいます。

そして請求書データの突合などを行い...

新旧システムで数値が一致した!

...という機能的な保障を取った上で、一斉移行を実行するのです。

会計データなどを扱うシステムの場合は
新旧システムで入力・出力したデータの整合性は特に注意されます。

また、システム移行において、
移行時のトラブルを極力避ける為、
システム移行実施前にリハーサルを行うケースがほとんどです。

本番環境と同様のテスト環境を構築し
データ移行とシステム移行を行い、
移行時に発生するリスクを前もって把握しておくのです。

リハーサルであまりにも大きな問題が発覚した場合
システムリリースが延期される場合もあります。

リリースが延期されるのは
何もシステムに重大なバグがある場合ばかりではありません。

ハードウェアやネットワークに問題があり
期待した以上の処理速度が出ずに、本番稼働に耐えられないといった
環境的な設計に問題がある場合にもリリースが延期されるケースがあります。

システムリリースには
ユーザーが協力しあうサポート体制が必要

システムリリースではサポート体制が重要です。

何度もリハーサルを行い、
何度もシステム設定を確認し、
移行はもう大丈夫!と判断しても、
移行本番時には何が発生するかわかりません。

これは何もITの現場にだけ言える事ではありません。

どのようなスポーツでも、
どのような業種職業でも、
どれだけ研鑚やトレーニングを積んだとしても、
試合本番や実際の現場では、何が起こるかわかりません。

本番という事で緊張する事もありますし
何らかの理由により、少し予定が変わってしまうだけで
冷静な判断ができなくなる場合もあります。

どのようなトラブルにも対応できるように
リリース時のサポート体制は特に重要なのです。

リリース時のサポート体制には、
システム開発側だけでなく、ユーザーにも協力者が必要です。

リスクを検知した際、
ユーザーの協力が必要な場合であれば、
速やかにユーザーに相談した上で解決策を講じる必要があります。

ユーザーとの連携力を高める為にも、
普段からユーザーとの関係を良好にして…

「一緒に新システムを作りましょう!」

...という姿勢でシステム開発を進めて行く必要があるのです。

システム移行やデータ移行など
新システムのリリースをするということは、
システム開発ベンダー側だけが頑張ればできるというものではありません。

システム開発ベンダーとユーザーが協力し
リスクを極力回避できるサポート体制をもって臨む事により
新しいシステムをリリースすることができるのです。

システムはひとりだけでは作れないし、
リリースもできない。

関係各所の協力があって初めて、
成し遂げることができるのです。

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

PS

あなたが新しい家を買ったとして
欠陥住宅だとわかったらどう思いますか?

誰も欠陥住宅には住みたいと思わないですよね。

新システムを使うことによって
より快適で、より便利な生活が始まることが期待されています。

あなたが作るシステムは
ユーザーの生活の一部になるのです。

決して欠陥品を提供する訳にはいかないのです。

PPS

システムエンジニアになるならこちら

ユーザーの資産を守るということ

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

「システムリリースの際に注意しないと
 いけないことは何でしょうか」

この質問に対しては正直に言って、
ひとことでは答える事ができません。

システムリリースにおいては
ユーザーにできる限り負担がかからない様、
気を付けないといけない事は数多くあります。

今回はその中でも重要事項のひとつ、
「データ移行」についてお話ししましょう。

システムだけを作ってしまえば
それで終わりではない

携帯電話やスマートフォンの
機種変更をされた経験がある方は多いでしょう。

新しい機種に変えてから、まず何を行いますか?

そう、電話帳データの移行です。

多くの携帯電話ショップでは
電話帳データの移行サービスを行っていますが...

「完全に移行できるとは限りませんのでご了承ください」

...と言われる事が多いのが現状。

事実、私も何度か機種変更した時
携帯電話ショップでの移行を依頼したことがありますが、
正しく移行できたという経験はあまりないです。

同じキャリアだと移行しやすいそうですが、
別キャリアに機種変更する場合は、失敗する確率が高いようです。

電話帳が移行できないと
1件1件手入力で電話帳データを入力しなおすか、
電話帳移行ツール等を新しく購入して試してみるなど、
利用者に作業負担がかかってしまいます。

数十件程度ならそれほど苦になりませんが、
何百件、何千件も電話帳データがある場合は大変です。

これは、システムでも同じことが言えます。

既存のシステムを廃止して
新しいシステムを開発して導入する場合、
既存のシステムで使用していたデータを移行する必要があります。

システム開発とは、
システムだけを作ってしまえば終わりではありません。

既存システムのデータを移行した上で、
新システムを使用してもらう必要があるのです。

データはユーザーの大切な資産

既存システムにおいて
日々の業務で入力されてきたデータ。

これらはユーザーの大切な資産です。

新システムにおいて
その資産を有効に活用できないという事は、
ユーザーにとって新システムに移行するメリットがないという事を意味します。

ツール系アプリケーションの場合
定期的にシステム改良を伴ったバージョンアップが行われますが...

旧バージョンのデータが使用できない場合、
ユーザーからクレームが来ることは必至です。

アプリケーションの改良により
機能が増えました!処理が早くなりました!
だけど旧バージョンのデータは使えません!

それでは、ユーザーは納得しません。

業務系システムの場合も同様。

これまでの業務によって培った
会計データや、顧客データ、営業履歴、案件データなど...

それらの資産が使用できないと
新しいシステムに変わったところで意味がないのです。

また、業務内容やデータの種類にもよりますが
データには法律で保存期間が設けられている場合もあります。

例えば会計帳簿データであれば
会計法では10年、法人税法では7年と定められています。

あまりにも古いデータの場合
とりあえずCSV形式に変換して
磁気テープ等に保存するという企業がほとんどです。

ですが営業売上を管理するシステムなどで...

「過去3年間の月間利益率と当年の月間利益率の対比を見たい」

...といった要望がクライアントから出た場合、
最低でも過去3年間の売り上げに関するデータは移行する必要があります。

データはユーザーにとって資産であり
今後の営業戦略を決定する上での判断材料ともなるのです。

どうやってデータ移行は行われるのか?

では、実際にどのようにデータ移行が行われるのでしょうか?

データの移行方法については
上流工程フェーズにおいて検討される必要があります。

既存システムと新システムのデータベース項目を比較し、
移行できる項目や、移行するのに加工が必要な項目などを検討。

基本的には
既存システムで使用中の全項目が
移行できるのが理想的ですが...

既存システムがオリジナルシステムで
新システムがパッケージシステムの場合など、

パッケージシステム側のデータベースに
既存システムで使用していた項目がない
といったケースもあり得ます。

その項目をどうしても移行しないといけない場合は、
追加費用を支払い、パッケージをカスタマイズした上で
移行しなければなりません。

移行するのに加工が必要な項目とは、
これまで使用していたコード体系を
新システム導入と同時にコード体系を変更して運用する項目などが挙げられます。

例えばこれまでの商品コードが10ケタであり
上位3ケタが商品分類、下位7桁が商品コードとしていたが
新システムでは商品分類と商品コードの2つの項目に分けたい場合...

既存システム「商品コード」
ABC0000001

新システム「商品分類」
ABC

新システム「商品コード」
0000001

...と分割した上で、新システムに登録しなければいけません。

データ移行では
主に移行用のプログラムを作成しての移行や
SQLを使用してデータ移行するのが一般的です。

データ加工が必要な項目の場合は、
移行用プログラムに加工条件をプログラムし、
新システム側のデータベースに加工データを自動登録します。

しかし中には、
ユーザーが判断しながら登録しないと
いけないデータもあります。

こういったデータ項目がある場合は
ユーザーに手入力で入力してもらうか、
あらかじめCSVデータをユーザーから入手して
CSVデータを新データベースに反映する方法が採られます。

データ移行はこのような流れで行われ、
新システムの動作確認を行った上で稼働準備が整うのです。

覚えておいてください
資産を守るという重要性

データ移行を疎かにしてはいけません。

データ移行が疎かにされ、
訴訟にまで発展したケースも実際にあるのです。

薬局の業務システム開発において
データ移行が適切に行われなかった為、通常業務に支障が発生。

裁判所から開発費用の返金命令が下った判例があります。
(東京地判平22・11・18)

先ほども言いましたが、
データはユーザーにとっての大切な資産です。

その資産を守る為に
データ移行については様々なケースを想定した上、
システムの上流工程から早めに検討しておく必要があります。

そしてシステムによっては...

・随時処理(随時データ更新されるもの)
・日次処理(1日に1回処理されるもの)
・月次処理(ひと月に1回処理されるもの)
・年次処理(1年に1回処理されるもの)

...など、処理されるタイミングがさまざまな場合も。

どのタイミングでデータ移行するのか
そういった事も含めて、移行計画を立案する必要があります。

もちろん、データ移行にはユーザーの協力も必要です。

場合によっては、
ユーザー企業の全社員にシステムの使用を中止してもらい
限られた時間内でデータ移行をしなければならないケースもあります。

ユーザーとの円滑なコミュニケーションなしには
データ移行どころかシステムリリースさえもうまく進みません。

ユーザーが新しいシステムに望んでいるもの。

それは効率性や利便性、
操作性や事業拡張性など、ユーザーによってさまざまです。

ただ共通している点は、
今現在使用しているシステムに限界を感じており、
新たな期待を込めて、新システムを導入しようとしている点。

IT技術者には、
ユーザーのさまざまな期待に応える必要がありますが
データ移行もそのうちのひとつです。

「ユーザーの資産を守る」ということ。

その重要性を、どうか覚えておいてください。

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

PS

ユーザの資産を守ることは
あなたとユーザーの信頼関係の良化に繋がります。

良好な信頼関係を育む事は
あなたにとって「最高の資産」となるのです。

PPS

Javaプログラミングとデータベースを学ぶなら、こちらのスクールで

「自分はエンジニアだ」という思い込みと行動

From: リスキルテクノロジー 松田航
@新宿オフィス

先日、面白いなと思う質問を受けました。
その質問とは・・・

「どうすればエンジニアになれますか?」

という質問です。

この質問のどこが面白いと思ったのか?
それを今日はあなたにお話したいと思います。

あなたがエンジニアと名乗った瞬間から
エンジニアになれる!

この質問は、

「エンジニアとして知識やスキルさえ
身につければ初心者でもなれますし、
就職も引く手あまたです!」

という答えを期待しているのかもしれませんが、
ちょっと見方を変えて回答を考えてみました。

エンジニアの業界を見渡すと、
「人が余っていて就職難・・・」
という話はまず聞きませんし、

むしろ人材が足りず、

企業はエンジニアの募集を熱心に
やっている、という状態です。

今の社会でコレほど歓迎される職業って、
なかなかないですよね。珍しいと思います。

そしてエンジニアは他の仕事と比べると、
比較的独立してやって行くことが容易な専門職です。

なぜなら、エンジニアが足りていないということは
それだけ大きな市場があるということですから、

エンジニアとして独立しても、
仕事を自分で取りやすい、ということですね。

ですから実は、あなた自身も「エンジニアです」と
名乗った瞬間から、

広告を出したり企業に営業したりして、
エンジニアとして仕事をすることもやろうと思えば
できるわけです。

専門スキルもないのに現実的ではないかもしれません、
しかし

こういう話をすると、
「いや、専門スキルもないのに無理ですよ」
という話が聞こえてきそうですが、

私自身そんな乱暴な話を
したいわけではありません。

ただこれは、

あなた自身が「エンジニアです」と
名乗った瞬間から、あなたに変化が
訪れることを期待しての回答でもあります。

たとえば、

□読む本が変わる
(エンジニアとして最新の知識を得ようとする)

□時間の使い方が変わる
(いつお客さんから質問されてもいいように勉強する)

□付き合う相手が変わる
(同じエンジニアを目指している人と交流したほうが刺激になるし、
役に立つ知識も情報も得られる)

・・・こんな変化が訪れます。

自分がなりたい姿を明確に思い描き、
周囲に宣言すると、行動が変わります。

あなたがプロなら、
お客さんに対して「初心者なんで・・・」とは
言いませんよね?

お客さんの課題を解決するために、
一生懸命に勉強して仕事するはずです。

あなたがエンジニアになりたいなら、
行動するだけです

「エンジニアになれますか?」と質問しているということは、
エンジニアになりたいということですよね。

であれば、行動を起こしましょう。

行動を起こすことで、次に何をすべきかが
より明確になりますから、

エンジニアとしてステップアップするには
次に何をすればいいのかも

きっとわかるようになるでしょう。

エンジニアになりたいと思って
行動しはじめた瞬間から、
エンジニアと名乗って構わない。

むしろそうした方が自分に
プレッシャーをかけられます。

ぜひ、自分がエンジニアだと意識・自覚して
行動をはじめてください。

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

PS
エンジニアになる手順など、
ご質問はご遠慮なくどうぞ!

PPS
もうご覧になっているかと思いますが、
オープンソースエンジニア教育に自信のリスキルテクノロジーはこちら

JavaとPHPのどちらを学ぶか?

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

未経験者が最初に覚える
いわゆる「スタートアップ言語」。

当校では、JavaとPHPの講座を開講しており、
個別カウンセリングの際、こういった相談を度々受けます。

「最初に学ぶプログラム言語を、JavaにするかPHPにするか迷っています」

スタートアップ言語として最適な言語
JavaとPHP

IT業界には、実に様々な言語があります。

Java、.NET、PHP、Ruby...

そして新しい言語は年々増え続けています。

つい先日もApple社が
新しい言語「Swift」を発表しました。

これはiPhone、iPad、Macなど
Apple製品向けアプリを作るのに使用される言語です。

Apple社だけでなく、
FacebookやGoogleなど
大手企業は独自の言語を開発しようとする傾向があります。

目的は様々ですが
多くは自社サービスに特化した
高速かつ安全な言語を開発することにより、
サービスの向上や技術者の囲い込みを計るといったものです。

このように、
この世には何百という言語が存在している為、
未経験者の方は、どんな言語を学ぶか悩むこともあるでしょう。

そんな数ある言語の中から
当校ではJavaとPHPの講座を開講しています。

何故JavaとPHPの2種類なのか?

信頼性。
拡張性。
汎用性。
技術者としてのニーズ。

それらを総合的に考慮した上で...

JavaとPHPのいずれもが
スタートアップ言語として最適な言語であると判断したからです。

信頼性が高く
就転職に有利とされるJava

まず、
Javaがスタートアップ言語として
最適である理由をご説明しましょう。

Javaは1985年に誕生し
現在でも多くのシステムに採用され
不動の人気を誇る言語です。

アメリカのIT系求人サイト
Dice.com(http://www.dice.com/)では、
「プログラミング関連の仕事に就く為に有利な言語」のひとつとして、
Javaを挙げています。

技術者求人としての人気だけでなく
オープンソース言語としての人気においても
他の言語を差し置いて、常にトップに君臨している言語です。

Javaは様々なシステムの言語として採用されています。

身近なところでは
スマートフォンOSであるAndroidアプリの開発、

大きなところでは
銀行のATMシステムなど、
信頼性が求められる金融系システムの開発言語として、

モバイルユースでも企業ユースでも
利用される幅が広く、信頼性の高い言語として使用されています。

2000万人が使用する
情報管理アプリであるEvernoteや、
2億4千万のユーザー数を誇るTwitterなど、
多くの有名アプリでJavaが採用されているのです。

Javaを学ぶメリットは様々です。

・Web系、組み込み系、デスクトップアプリなど、
 様々な形態でのシステム開発が可能

・言語としての信頼性や拡張性が高い

・大小様々なシステムで採用されている実績がある

・Java開発案件数は衰えを見せず、常に技術者のニーズがある

・OSに依存せず、ライブラリが豊富であるため、開発の幅が広い

他の言語に比べると若干難易度は高めです。

ですが、Javaを知っておくことにより、
IT技術者としての対応範囲が広がる事は間違いありません。

また、ストレートに言って、
2020年までJavaエンジニアの需要は増え続けると予想でき、
職に困ることがないのが最大の魅力でもあります。

Webアプリケーションで
根強い人気を誇るPHP

そして次にPHP。
PHPがスタートアップ言語として優れている点です。

PHPは1995年に誕生し、
多くのWebサービスで使用されている
サーバーサイドスクリプト言語(*)です。
*Webサーバー上で実行される言語

動的なWebページを作る上で
最適なスクリプト言語であるPHPは、
FacebookやGREE、Yahooなどでも使用されており、
世界中で24億のWebサイト、210万のウェブサーバーで使用されています。

ソフトウェア開発で有名な
アメリカのシリコンバレーにおいても、
スタートアップ言語として最も人気のある言語です。

もちろんアメリカだけでなく
日本のWebサイトの多くでもPHPが使用されており
規模の大小を問わず、多くのWebページで採用されている言語です。

最近ではCMS(Content Management System)を使った
ウェブコンテンツの生成が主流となっていますが、
CMSで最も人気のあるWordpressはPHPで開発されています。

Webコンテンツ制作業界では
Wordpressのカスタマイズ案件も増えてきており、
それらに対応する為にも、PHPは必須の言語であると言えるのです。

PHPを学ぶメリットは多数あります。

・多くの開発実績があり、信頼性が高い

・使用ユーザーが多く、情報や拡張機能が豊富

・Webプログラマーとして活躍できる場が多い

・Wordpress以外の主要CMS(*)でも採用されているため
 カスタマイズニーズ等に対応できる
 *Xoops、Drupal、Joomla!など

言語としても比較的習得しやすく、
スタートアップ言語としては最適であり、
PHPを用いたWebアプリ開発案件は豊富ですので
初心者からWebプログラマーとしてデビューするには最適な言語です。

ニーズの高さと信頼性がポイント
どちらを選ぶかはキャリアパス次第

当校がJavaとPHPの講座を
提供している理由は様々ですが、

最も大きな理由としては…

「Java技術者・PHP技術者に対するニーズが高い」

…という事が挙げられます。

JavaやPHPを習得していれば
未経験の方でもIT技術者として活躍できるチャンスが高く、
スタートアップ言語として習得するには最適の言語だからです。

そしてもうひとつは…

「言語としての信頼性の高さ」

…が挙げられます。

オープンソースであるため、
世界中の技術者が改良に携わり、
言語としての質の向上が長年行われています。

いずれも歴史ある言語であるにも関わらず、
十数年にわたって多くのシステムで採用されており、

一時的にニーズが高い言語なのではなく、
今後も継続的に主力言語として使用される理由がここにあるのです。

それでは、JavaとPHPのどちらからスタートするか?

これはあなたの目指すキャリアパスによります。

Webアプリの開発も含め、
Androidアプリといったモバイルアプリ開発、
組み込みやデスクトップアプリ開発も視野に入れたいのであれば...

Javaをお勧めします。

Webアプリに特化した開発や
リッチなWebコンテンツの開発、
WebデザイナーやWebディレクターも視野に入れたいのであれば...

PHPをお勧めします。

ただ、ひとつだけ注意してほしい事があります。

確かにPHPは
人気言語でニーズも高いですが、
RubyやPythonなどといったPHPの代替言語が多く
2011年以降、人気が少しずつ下火になっているのも事実です。

実際にPHPをメイン言語としていた企業が
自社アプリを別の言語に変更したという事例もあります。

PHPをスタートアップ言語とする場合、
将来的に代替言語での開発を迫られる場合もある...

それを念頭に置いた上で、学習した方が良いです。

このような流れを考慮すると、
未経験者のスタートアップ言語としては、
Web系システムから組み込み系システムまで
幅広いジャンルで活躍できるJavaを選択する方が良いです。

言語的にも確立されており、
多くの開発案件で採用され続けるJavaを習得する...

それは、あなたが長年にわたり、
技術者として活躍できるフィールドを広めてくれるのです。

どちらからスタートするかはあなた次第です。

そして、
どちらからのスタートでも
あなたが活躍できる場がある事を覚えておいてください。

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

PS

当校では、
Java認定資格の取得からJava+DB連携のノウハウ、
Androidアプリ開発についても学べるコースを用意しています。

PHPもプログラミングだけでなく、
Webデザインからプロデュースまで総合的に学べるコースもあります。

机上の技術ではなく
実践で通用する技術を習得する事が大切です。

javaのスクールリスキルテクノロジーはこちらから

なぜLinuxを学ぶべきか?

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

エンジニアとしてLinuxをなぜ学ぶべきか?
Windowsもあるのに。

その理由はとても単純です。

Webサーバーやクラウド環境で
飛躍的な普及を見せているから

IT業界の開発案件は、
Web上で稼働することを前提としたシステム開発が
数年前から大幅に増えているのが現状です。

Webアプリケーションは
サーバーマシンで動作させないといけません。

開発時の環境であれば
デスクトップマシン上に
一時的にWebサービスを構築するケ-スもありますが...

商用で使用するアプリケーションは
システムダウンを避けなければいけません。

その安全性や信頼性の高さを考慮すると
サーバーマシンで稼働させる事が必須なのです。

LinuxはUNIXをベースとして開発されたOS。

つまり、Webサーバーで使用されるOSは
その大半においてLinux系OSが使用されているというデータもあります。

サーバーへのLinux普及率は日に日に高まっています。

特に近年では、
クラウドブームにより、
レンタルサーバーや専用サーバーなどを提供する
クラウドサービス市場が拡大しています。

クラウドサービス提供企業は、
Windowsの様な高額なライセンス費用がかからない
その導入コストの安さから、

クラウドサービス利用者は、
提供側にライセンス費用が掛からない分
利用料が安くなるという理由から、

使用するサーバーの多くで、Linuxが選択されています。

IT技術者として求められるスキルは
1つではありません

IT業界未経験の方が、
目的のIT企業に就職できた時
最初は簡単な作業から始まる事でしょう。

それは
開発中のシステムのテストかも知れませんし、
先輩に教わりながら、簡単なプログラムを組むかも知れません。

最初は1つの技術を伸ばせる様に
1つの業務に集中できることでしょう。

ですがゆくゆくは、
あなたの開発経験が深まり、
システム開発スキルが磨かれてゆくにつれ...

LinuxサーバーにWeb環境を構築し、
Webサービスの設定を行い、
システムのリリースを行うといった様な、

様々なスキルを必要とされる事が増えてくる事は
間違いありません。

そんな時こそ、
Linuxのノウハウを習得している事が
いかに大切な事であるかを、
改めて理解することになります。

Webサーバーだけではありません。
Webシステムでは、その殆どがデータベースサーバーを必要とします。

LinuxにMySQLなどのデータベースを構築するには?
Linuxに構築したWebサービスとデータベースを連携させるには?

1つのシステム開発においては
OS、ミドルウェア、アプリケーションと
総合的なノウハウが必要となってくるのです。

現在も、そして今後も
企業サーバーに、クラウドサーバーにと、
LinuxがサーバーOSの主流となることは間違いありません。

そんな時、ITのプロであろうとする者が...

「Linuxは経験がないので、わかりません」

...では、通用しません。

IT技術者になるにあたって
Linuxを習得する事は、もはや必須条件なのです。

Linux技術者が不足しているという現状

ある企業で、こんな事例を聞きました。

その企業では、
複数の社内サーバーを構築して
Webサービスも外部に提供しています。

サーバーは全てWindows系OS。

業績も好調になり、
社員数も増えてくるようになると、
使い慣れたWindows系サーバーを次々に増やしていったそうです。

そうこうしている内に
サーバーの維持管理費用がどんどん高額になってきたため、

クラウドサービスを利用して、
社内のサーバー機能を外部化するプロジェクトが発足。

クラウドサービスの
専用サーバーをレンタルして、
システムを移行する事となったのですが...

専用サーバーのOSを選ぶにあたり、
稼働の安定性や月額利用料等を考慮した結果、
Linuxの専用サーバーを利用する事になったのです。

今までがWindows系サーバーばかり使用していた為、
Linuxに関するノウハウがほとんどなく、
システムの移行はおろか
基本的な使用や設定にも大変苦労したそうで...

Linuxに関する調査・技術習得の時間を含めると、
人件費が大幅にアップしてしまったという事例があります。

この事例から判断できる事...

それは、Linux技術者の数が圧倒的に足りていないという事です。

Linuxを習得することは大きなチャンス

実際問題として
Linux技術者の数は不足しています。

私がリスキルテクノロジーを運営する理由の一つとして...

Linux技術者をもっと世界に広めたい!

...そんな思いがあるのです。

そして、
Linux技術者が不足しているこの現状は、
これからIT技術を習得したいというあなたにとって
とても大きなチャンスなのです。

IT業界は、Linux技術者を求めています。

つまり
あなたが習得したLinuxスキルが、
IT業界というマーケットにおいて、高く評価されるチャンスがあるのです。

私はLinuxのノウハウを
あなたに提供する事によって、

あなたにIT業界で、大きく活躍してもらいたい、
あなたの可能性を、もっともっと伸ばしたいのです。

もう一度言います。

Linux技術を習得する事は
あなたにとって、とても大きなチャンスなのです。

あなたにも、そのチャンスを掴んで欲しいと
思っています。

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

PS

Linuxを学ぶなら、まずは
資料請求は請求して詳しく見てみてください。

リスキルテクノロジー

スクールと独学どちらがいいか?

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

「スクールで学ぶのと独学で学ぶのは、
 どちらの方がいいのでしょうか?」

ITスキルを学ぼうとする、
未経験者の方や経験の浅い方から、
学習を始める前によく聞かれる質問です。

実際どっちが良い学習法なの?

スクールと独学ではどちらが良いか?

まず、あなたのライフスタイルや環境を
見直してみましょう。

学習に費やせる時間はどれくらいか?
自己投資できる費用はどれくらいか?

そういった環境的な要因によって
スクールが適しているのか、
独学に適しているのか、
どちらかを判断することは可能です。

しかし、人の性格は様々です。

実際のところ、
スクールでも独学でも、向き不向きがありますので
一概にあなたには○○が良い!とは言えません。

いずれにしても、
何かを始めようとされている
あなたから感じられる事。

それは...

新しい技術を学んで活躍したい!

自分をもっと伸ばしてゆきたい!

視野を広めてゆきたい!

そういった、
現状を打開して前に進もうとする、
前向きな熱意を感じます。

ですので、質問を受けた時は
その熱意に応ようと、
それぞれのメリットやデメリットについて、
私なりの考えをまとめて伝えるようにしています。

参考にしてください。

スクールで学ぶ
-効率性の高い学習法-

まず、スクールで学ぶメリットです。

・スキルを熟知した講師から生の指導が受けられる

・疑問点があれば、すぐに確認できる

・開発環境等、学習するのに必要な環境がある

・同じ目的を持つ仲間と出会える

・現場で使えるスキルを学べる

・就職転職の支援が受けられる

最も大きなメリットは
学習のリアルタイム性と学習環境です。

講師からの直接指導と
解らないことがあった時に質問して
即座に問題を解決できる。

そして整えられた学習環境があるので
思う存分、スキルの習得に集中できます。

つまり学習効率が必然的に高いのです。

また、同じ目的を持つ仲間と出会う事は
人脈を広げる事にもなりえますし、
学習モチベーションを継続させるのに役立ちます。

デメリットとしては...

・学習費用が独学に比べると高くなる
 (入学金、受講料、交通費など)

・決まった時間にスクールに通わないといけない

・講師やテキストとの相性が合わない場合がある

...などが挙げられます。

スクールは独学に比べると、
受講料や交通費が必要で、費用は高くなります。

これを理由に
独学を選ぶ方も少なくありません。

そして時間的な問題もあります。

独学で学ぶ
-ライフスタイルに合わせやすい学習法-

次に、独学のメリットです。

・自分の自由な時間や場所で学習できる

・生活リズムに合わせた学習計画が立てられる

・学習費用がスクールに比べて安くなる

・自分に合う参考書を選ぶ事ができる

独学の最大のメリットは、
自由度の高さと費用面の安さにあります。

そして
自分の生活リズムに合わせて、
好きな場所、好きな時間に学習できます。

図書館で、カフェで、好きな時に、好きなだけ。

そして費用面も
スクールのほどの高額な費用はかかりません。

スキルに関する参考書や問題集は
インターネットでも情報収集できるので
学習に必要な情報は、比較的手に入れやすいです。

ライフスタイルに合わせた学習を進めやすい
それが独学の特徴です。

デメリットとしては...

・疑問点がある時、すぐに答えが得られない

・開発環境等、学習するのに必要な環境を揃える必要がある

・独学は孤独。モチベーションの維持が難しい

・最新技術や現場で使われる技術の習得が難しい

...等が挙げられます。

独学で最大のネックになるのは、
学習のリアルタイム性に欠けるという事。

解らないことがあった時でも
質問できる講師がいないために、
即座に問題を解決できない場合が多いです。

そして開発環境など、
学習に必要な環境がある人は良いですが
何もない場合は準備しないといけません。

例えば、
WindowsPCはあるけどLinux環境がない場合は、
環境を構築する必要があります。

ネットワーク資格(CCNA)の資格を学ぶ場合
参考書上の理論だけで学ぶのではなく
実機(ルーター)があった方が習得しやすいです。

また、独学は孤独ですので
モチベーションの維持が難しいです。

業界に関する最新の情報や
実際に現場で使用されるテクニックなど
情報が入りにくいという面もあります。

スキルアップの為、
モチベーションアップの為、
無料講習会や、最新技術情報を調べるなど
情報収集の努力を積極的に行ってください。

新しい一歩の為に

あなたもこれまで、
学校や塾などで
様々な学習をしてきたでしょう。

独学で受験して
成功された方も中にはいるでしょう。

少し思い出してみてください。

どんな学習方法が、あなたにとって良かったか、
成績がアップした=学習効率が良かったかを。

そして今のあなたの生活環境。
仕事や資金、使える時間等を総合的に考えて、
独学がスクールかを選べば良いでしょう。

時間的な余裕があり、
自分で学習計画を立てられ、
コツコツと学ぶのが好きな方であれば
独学でも良いです。

しかし、仕事等で
あまり時間的な余裕もなく、
できるだけ効率的に学ぶなら
スクールを選ぶ方が良いです。

未経験の方が
技術を学ぶ場合も同様です。

その理由は、
学習効率の良さもありますが、
スクールで学ぶ事の「安心感」です。

スクールに通っているから大丈夫という、
自分に対する安心感ではありません。

もしあなたが
就職・転職のための武器として
技術を学び、資格を取りたいなら
スクールで学んだという実績が残ります。

つまりこの人は初心者ではなく、
技術的には問題がないのだなといった、
就職・転職先への安心感を与えられます。

安心感を与えられる。

これはきっと
新しい一歩を踏み出そうとしている
あなたにとって大きな武器になります。

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

PS
スクールでも独学でも
基本的には本人の熱意とやる気が重要です。
本当に自分を変えたいなら
それを忘れないようにしてくださいね。

効率良くスクールで学ぶことを考えている方は、
リスキルテクノロジーの資料請求はこちらから
https://tech.reskill.jp/

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する