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

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

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

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

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

IT講師に応募する