paiza times

paizaがお届けする、テック・キャリア・マネジメント領域における「今必要な情報」を届けるWebメディア

logo

paizaがお届けする、テック・キャリア・マネジメント領域の「今必要な情報」を届けるWebメディア

知らなきゃ損する!Web開発で絶対使いたくなる、人気のJavaScriptライブラリ8選と導入方法を公開

f:id:paiza:20161202165752j:plain
どうも、まさとらん(@0310lan)です。

今回は、毎日のように誕生する新しいJavaScriptライブラリの中から、思わず使ってみたくなるようなオススメのライブラリを厳選してご紹介しようと思います。


そのままWebアプリとして活用できそうなモノから、コードの書く量を大幅に減らしてくれたり、ユーザー体験を一気に向上してくれるモノまで、幅広いジャンルをまとめていますので、ご興味ある方はぜひ参考にしてみてください!

■入力された内容を自動検証する!

Cleave.js

f:id:paiza:20161202165845j:plain
フォームなどでよく使う「inputタグ」で、何が入力されたかを検証して意図しないデータ入力を簡単に防ぐことができるのが「Cleave.jsです。


使い方は非常にシンプルで、例えば「電話番号」を入力する「inputタグ」があったとします。

<input type=”tel” id=”input-tell” /> 

「inputタグ」には「id」か「class」を付与しておいてください。


あとは、JavaScriptで「書式」と「国」を指定するだけでOK!

var phone = new Cleave( '#input-tell', {


    // 書式を電話番号に指定
    phone: true,


    // 国を「日本」に指定
    phoneRegionCode: 'JP'


});

たったこれだけで、入力された数値を検証して番号以外は入力できないようにしてくれます。さらに、例えば東京の市外局番「03」とか大阪の「06」などを自動認識して適度にスペースを空けてくれるので便利です!

他にも、日付のフォーマットを揃えたり、クレジットカードの種類を判別できたり、独自のルールを指定して入力制限を付けたりなども簡単に行えます。


<参考>
「Cleave.js」公式サイト
「Cleave.js」GitHubページ
公式サンプルデモ

■スムーズな「お絵描き」を実現する!

atrament.js

f:id:paiza:20161202170114j:plain
こちらはCanvas上でお絵描きするのに最適なライブラリとなっており、描いた「線」がスムージング機能によりとても綺麗に見えるのが特徴となっています。
(スムージング機能はON / OFF可)


使い方も非常に簡単で、まずは普通に「Canvasタグ」をHTMLに記述します。

<canvas id="myCanvas"></canvas>


そして、Canvasタグの「id名(myCanvas)」と描画サイズをJavaScriptで指定すれば完了するというお手軽さ!

var sketcher = atrament('#myCanvas', 500, 400);

これでもうスムージング機能を使った「お絵描き」を行うことが可能です!

また、他にも「画面クリア」「カラーパレット」「線の太さ調整」…など、細かいオプションも充実しているので、このライブラリだけでもユニークな「グラフィックエディタ」が作れてしまうのが魅力です。


<参考>

■リアルタイム「顔認識」トラッキングを行う!

clmtrackr.js

f:id:paiza:20161202170352j:plain
画像や動画・Webカメラなどから、人物の「顔」を認識させてトラッキングできるようにしてくれるのが「clmtrackr.jsです。

ごく普通のJavaScriptライブラリで提供されており、特別なツールは一切不要なので動画や画像のファイルがあればすぐにでも試すことできます!


使い方ですが、例えば動画ファイルに写っている人物の「顔」を認識させる場合は、「videoタグ」で貼り付けた「要素」と「顔パターン」を指定します。

// HTMLに貼り付けたvideo要素を取得
var videoInput = document.getElementById('video');


// インスタンスを作成
var ctracker = new clm.tracker();


// 顔パターンを初期化
ctracker.init(pModel);


// video要素の解析を実行
ctracker.start(videoInput);

わずか4行のコードですが、これだけで基本的な準備作業が完了します。


あとは、解析結果を元にしながら動画に写っている「顔」にワイヤーフレームをトラッキングしていけば完了です!

var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');


function drawLoop() {


    // 前の描画をクリアにする
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    
    // トラッキングした顔にワイヤーフレームを描画
    ctracker.draw(canvas);


    // 毎フレームずつ処理を繰り返す
    requestAnimationFrame(drawLoop);
}
drawLoop();

これを応用すれば、最近人気のスマホアプリ「SNOW」の顔認識スタンプのようなモノも開発できるかもしれませんね。


<参考>

■リッチな「画像・動画」ギャラリーを作る!

lightgallery.js

f:id:paiza:20161202170538j:plain
もうギャラリー系のJavaScriptライブラリはコレ1つで良いんじゃないか…と思えるほど、多機能で使いやすく設計されているのが大きな魅力となっています。

レスポンシブ対応なのでPC・スマホで利用でき、動画や画像などのギャラリーとしてサクサク動くうえ、さまざまな機能を拡張できるプラグインも提供されています!


基本的な使い方として、例えば「画像ギャラリー」を作りたければ、HTMLにこんな感じで記述していきます。

<div id=”lightgallery”>


    <a href=”1枚目の画像パス”>
        <img src=”1枚目の画像パス”>
    </a>
    <a href=”2枚目の画像パス”>
        <img src=”2枚目の画像パス”>
    </a>
    <a href=”3枚目の画像パス”>
        <img src=”3枚目の画像パス”>
    </a>


    <!-- 以下省略 -->


</div>

「imgタグ」を「aタグ」で囲うカタチでギャラリー用の画像を用意し、それを「divタグ」でグルーピングすればOK。


そしてJavaScriptから「divタグ」の「id」を指定するだけでリッチなギャラリーの完成です!

var gallery = document.getElementById( 'lightgallery' );


lightGallery( gallery );

f:id:paiza:20161202170648j:plain
画像を1クリックでダウンロードする機能や、SNSにシェアする機能、フルスクリーンモード、画像のズームイン・アウト…など、多彩な機能を簡単に利用できるようになります。


これらの機能はプラグインとして提供されており、「lightgallery.js」本体ファイルの後にプラグイン用のファイルを読み込むだけですぐに利用できるので便利です。

// lightgallery.jsの本体
<script src="lightgallery/js/lightgallery.js"></script>


// シェア用のプラグイン
<script src="lightgallery/js/lg-share.js"></script>


// フルスクリーンモード用のプラグイン
<script src="lightgallery/js/lg-fullscreen.js"></script>


// ズーム用のプラグイン
<script src="lightgallery/js/lg-zoom.js"></script>

さまざまなオプション設定やイベント処理も充実しているので、大抵のケースで柔軟に活躍するライブラリと言えるでしょう。


<参考>

■「Git」を可視化する!

Gitgraph.js

f:id:paiza:20161202170841j:plain
Webサイト上でGitの解説をする場合や、インタラクティブなGit学習サービスなどを構築する時に便利なライブラリが「Gitgraph.jsです!

最大の特徴は、JavaScriptから「Gitコマンド」風のプログラムを書いていくだけで、コミットログなどを分かりやすく可視化してくれる点です。


例えば、新規に「master」ブランチを作って3回「commit」するにはこのように書きます。

var gitgraph = new GitGraph();


// 新規にmasterブランチを作成
var master = gitgraph.branch('master');


// commitを3回行う
gitgraph.commit().commit().commit();

とても直感的で理解しやすいプログラムだと思います。


他にも、ブランチの切り替えに「checkout()」を使ったり、ブランチを結合するのに「merge()」を使うなど、Gitコマンドと同じような感覚でプログラミングすることが出来ます。

ちなみに、可視化の「表示スタイル」は、独自テンプレートを作成して簡単に切り替えることも可能で、オプションを設定すれば、「commit」メッセージなども編集することが出来ます。


<参考>

■インタラクティブな「通知」を表示する!

notie.js

f:id:paiza:20161202171046j:plain
Webサービスなどで、ログインの成功時や重要なメッセージなどをWeb上に通知するケースは多いかと思います。

このような通知を表示する時に、notie.js」を使えば簡単なコードを書くだけで対応できるうえ、ユーザーに判断して決めてもらう「選択肢」なども通知と一緒に表示させることが出来るので便利です。


シンプルに設計されているのも特徴で、通常の通知はわずか1行で実行可能です!

notie.alert('success', 'ログイン成功!');

1つ目の引数に「success」「warning」「error」「information」などの通知タイプを指定することで、カラースタイルを変更することが出来ます。

2つ目の引数は、表示したいメッセージをそのまま入力すればOK!


また、通知と一緒に「選択肢」も表示したい場合は、「notie.confirm()」を使います。

notie.confirm('今からログインしますか?', 'はい', 'いいえ', function() {


    // 「はい」を選択した時の処理
    notie.alert('success', 'ログインしました!');


});

さらに、「notie.confirm()」は入れ子にすることも可能なので、複雑な条件分岐も簡単に実現できます。

他にも、フォームのような入力ボックスを追加したり、複数の選択肢を表示するようなコンテンツを盛り込むことも可能です。

細かく用意されたオプションを独自に設定することで、通知のカラースタイルも自由にデザインすることが出来るのも魅力的でしょう。


<参考>

■「画面遷移」を手軽に高速化する!

Barba.js

f:id:paiza:20161202171248j:plain
Webサービスやサイトなどで、「ページ」と「ページ」を移動する時の画面遷移を高速化して、ユーザー体験を向上させることができるライブラリが「Barba.jsです!

難しい事は考えずに、普通にHTMLを作っていける柔軟性とシンプルさを兼ね備えている便利なところが魅力的です。


基本的な使い方として、まず画面遷移することで表示が変化する要素の「class名」に指定のクラスを設定します。
(逆に、サイドバーなど共通のコンテンツは通常通りでOK)

<!-- index.html -->


<!-- 変化する要素 -->
<div id="barba-wrapper">


    <div class="barba-container">
        <!-- ここにコンテンツを書く -->




        <!-- 遷移先のURL -->
        <a href="page.html">「page.html」へのリンク</a>
    </div>


</div>


そして、遷移先のHTMLにも同様の記述を行います。

<!-- page.html -->


<div id="barba-wrapper">


    <div class="barba-container">
        <!-- ここにコンテンツを書く -->




        <!-- 遷移元のURL -->
        <a href="index.html">「index.html」へのリンク</a>
    </div>


</div>


あとは、「Barba.js」をJavaScriptで有効にするだけです!

// Barba.jsを有効にする
Barba.Pjax.start();

これで、「index.html」と「page.html」がお互いに画面遷移すると、高速に指定のコンテンツが表示されるようになります。

また、一瞬で表示するのではなく「フェードイン・アウト」や「スライド」のような効果を付けて表示させたり、各種イベント処理を実装しやすいような設定なども豊富に搭載されているので非常に便利です。

ぜひ、サンプルデモなども合わせて確認して見ることをオススメします!


<参考>

■ブラウザのサポート機能を一括チェックする!

Feature.js

f:id:paiza:20161202171514j:plain
ユーザーが利用しているブラウザ環境を検証して、使いたい機能が「利用できる・できない」を手軽に調べることができるのが「Feature.jsです!

直感的に使えるように設計されており、条件分岐が書きやすいのと軽量・高速に動作するのが特徴と言えるでしょう。


例えば、WebGLを使って3Dコンテンツを開発する場合に、ユーザーのブラウザ環境を検証するならこんな感じのコードを書いておけばOK!

// WebGLをサポートしているか?
if (feature.webGL) {


    // サポートしている場合の処理


} else {


    // サポートしていない場合の処理


}


また、CSS3で使えるようになった「Transition」でアニメーション作成するなら、こんなコードになるでしょう。

// CSSのTransitionをサポートしているか?
if (feature.cssTransition) {


    // サポートしている場合の処理


} else {


    // サポートしていない場合の処理


}

このように、簡単なコードを書くだけでブラウザのほとんどの機能を検証することが出来るわけです。

さらに、PCブラウザはもちろんのこと、スマホブラウザやKindleまで、非常に幅広い端末での利用にも対応しているのは非常に便利でしょう。


<参考>

■美少女育成×プログラミングゲーム「もし次の常駐先が女子エンジニアばっかりだったら」を公開!!

f:id:paiza:20161202164715j:plain
paizaでは、美少女育成プログラミングゲーム「もし次の常駐先が女子エンジニアばっかりだったら」の公開を開始いたしました。

「もし次の常駐先が女子エンジニアばっかりだったら」は、ITエンジニアの夢をかなえる楽しく華やかな環境での業務シミュレーションを行いながら、さまざまな難易度のプログラミング問題を解くゲームです。

ITエンジニアとして働くあなたが新しい常駐先を訪ねると……そこは女子エンジニアだらけの開発現場だった!助けを求める女子エンジニアたちへ救いの手を差し伸べていけば、あなたを慕った彼女たちはどんどんチームのメンバーとして仲間になって…!?案件炎上、メンバー離脱……さまざまなトラブルを乗り越えながら案件を成功させ、可愛い女の子たちが成長していくと――。

最高の開発現場を作れるかどうかは、あなたのプログラミングスキルと采配次第!ぜひ挑戦してみてください!

※イベントは終了しました。

■まとめ

今回ご紹介したJavaScriptライブラリは、いずれもドキュメントやサンプルが充実しているものばかりなので、すぐにでも自分のWebページに組み込めるようになると思います。

また、基本的にJavaScriptファイルを読み込むだけで利用可能なので、もし気になったライブラリがあれば「CodePen」や「JSFiddle」などを使って、ブラウザ上からサクッと実行させてみるのも良いでしょう。


ぜひ、みなさんもお気に入りのライブラリを1つ見つけて、積極的にプロジェクトへ取り入れてみてください!




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

paizaのスキルチェック

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

JavaScriptライブラリを使った超簡単チェスゲーム開発入門!ブラウザ上でCPU対戦が可能!

f:id:paiza:20161202161825j:plain
どうも、まさとらん(@0310lan)です。

今回は、JavaScriptによる簡単なゲーム作りに挑戦するため、「チェス」をテーマにした開発チュートリアル記事となっています。


「なんだか難しそう…」と思うかもしれませんが、簡単な手順で実現できるJavaScriptライブラリを活用するので誰でも最後まで楽しめると思います。

また、後半には「CPU対戦」機能も組み込んでいくので、チェスやゲーム開発にご興味ある方は、ぜひトライしてみてください!

■必要なファイルを準備しよう!

まずは、チェスの骨組みを簡単に構築する方法として「chessboard.js」というJavaScriptライブラリを使ってみましょう。

chessboard.js

f:id:paiza:20161202162139j:plain
chessboard.jsを使うと、チェスで遊ぶための「駒」や「ボード」を簡単にWeb上へ描画することが可能で、駒を動かす際のアニメーションやマウスによるドラッグ&ドロップなどのイベント処理も充実しているのでとても便利です。


まず最初に、サイトへアクセスして必要なファイルをダウンロードしておきましょう!
f:id:paiza:20161202162158j:plain
ファイルの中には、「chessboard.min.css」と「chessboard.min.js」が入っているので、これをHTMLファイルから読み込むようにすればOKです!

<!-- index.html -->


<!doctype html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>チェスゲーム</title>
    <link rel="stylesheet" href="css/chessboard.min.css" />
  </head>
  <body>
    
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
    <script src="js/chessboard.min.js"></script>
    <script src="js/game.js"></script>
  </body>
</html>

「chessboard.js」はjQueryをベースに作られているので、一緒に「jquery.min.js」を読み込んでおくのを忘れないようにしましょう。

(「game.js」は、これから作っていくJavaScriptファイルになります)


ちなみに、ダウンロードしたファイルの中に「img」フォルダがあると思いますが、これはチェスの「駒」画像になるので、そのまま「index.html」と同じディレクトリに配置しておきます。


ここまでのフォルダ構造は以下のとおり!
f:id:paiza:20161202162344j:plain
これで必要なファイルが揃ったので、いよいよ「チェスゲーム」の開発に挑戦してみましょう!

■「チェスボード」を作ってみよう!

チェスで遊ぶには「駒」と「ボード」が必要ですが、「chessboard.js」を使って簡単に描画してみましょう!


まずは、HTMLファイルに「ボード」を描画するための領域を「divタグ」で指定します。

<!-- index.html -->


<body>


  <!-- ボードの描画領域 -->
  <div id="board" style="width: 400px">




  <!-- 以下省略 -->
</body>

インラインでCSSの「幅(width:400px)」を指定していますが、もちろん外部スタイルシートに記述しても問題ありません。


次に、JavaScriptファイルの「game.js」に、先ほど作った「divタグ(#board)」を指定してボードを描画してみましょう!

// game.js


var config = {


  // チェスの駒を初期位置にする
  position: 'start'


};


// divタグ「board」を指定して「config」を設定する
var board = ChessBoard('board', config);

初期設定用のオプション「config」を「ChessBoard()」から参照するだけでOK!


これで、index.htmlをブラウザで開くと立派な「チェスボード」が表示されるはず!
f:id:paiza:20161202162954j:plain
ただし、このままだと駒が表示されるだけで、自由に動かすことができません。


そこで、駒をマウスで自由に動かせるように、先ほどの設定オプション「config」に「draggable」を追記します。

// game.js


var config = {


  position: 'start',


  // マウスで駒を動かせるようにする
  draggable: true


};


これだけで、駒を自由にドラッグ&ドロップで動かすことが可能になります!
f:id:paiza:20161202163027j:plain
実は、すでに相手の駒を取る動作も可能になっているので、対人戦であればこの状態でも遊ぶことは出来るでしょう。

■「ゲームロジック」を構築しよう!

さて、ここまでのプログラミングで、チェスを遊ぶための骨組みは完成しました。


ただし、今の状態だと「駒」をどこにでも動かせるし、どちらの手番なのかも不明なうえ、ゲームが終了したかどうかの判定もできません。

つまり、チェスという「ゲームロジック」が必要になるのですが、普通にプログラミングすると膨大な時間と労力が掛かってしまいます。


そこで、このロジック部分を提供してくれるJavaScriptライブラリが公開されているので、こちらを利用してみたいと思います!

chess.js

f:id:paiza:20161202163110j:plain
jQueryと同じく、こちらもCDN経由で手軽に利用することが出来るので、以下のスクリプトをHTMLファイルに追記すれば準備完了です!

<!-- index.html -->


<script src="https://cdnjs.cloudflare.com/ajax/libs/chess.js/0.10.2/chess.min.js"></script>

「chess.js」を使う上で重要なポイントは、「駒の状態監視」と「駒が動ける場所」を常に把握しておくという点です。

// gameインスタンスを作成
var game = new Chess();


// 駒の状態監視
game.move();


// 駒が動ける場所
game.moves();

それぞれの使い所は以下のとおり!

  • 「game.move()」:駒がルールに沿って移動したかどうかを確認する
  • 「game.moves()」:相手の動ける駒の場所をすべて配列で取得する


このライブラリと「chessboard.js」と組み合わせることで、手軽にロジックを組み込んだ「チェスゲーム」が構築できるわけです。


そこで、設定オプション「config」に、駒が移動した後のイベント処理を追記します。

// game.js


var config = {


  position: 'start',
  draggable: true,


  // 駒が移動した後にonDrop関数を実行する
  onDrop: onDrop


};

「onDrop」を追記することで、駒を移動してボードに置いた瞬間に発動するイベント処理を書くことが出来るようになります。


この時に実行する関数として、「onDrop」を作成します。

// game.js


// 関数
var onDrop = function(source, target) {


    // 処理内容を書く


};

「config」に追記した「onDrop」は、引数として「駒を移動する前の位置」と「駒を移動した後の位置」を受け取ることが可能なので、それぞれの位置を「source」「target」に割り当てています。


そして、先ほどご紹介した「game.move()」を組み込むことで、ルールに沿った移動ができているかをチェックし、問題があれば元の位置に戻すようなプログラミングをしていきます。

// game.js


var onDrop = function(source, target) {


  // 駒の移動パターンをチェックする
  var move = game.move({


    from: source,  // 移動元の位置
    to: target         // 移動後の位置


  });


  // 駒の移動に問題があれば元の位置に戻す
  if (move === null) return 'snapback';


};

「game.move()」は、駒の移動に問題があったら「null」を自動的に返すようになっているので条件分岐が書きやすいですね。
ちなみに、「null」が返ってくるパターンとしては…、

  • ルールで動かせない場所に移動した場合
  • 取ることが出来ない駒を取ろうとした場合
  • 自分の手番じゃないのに駒を動かした場合

…など。

ゲームを遊ぶ上で最低限のロジックを兼ね備えているので便利です。


また、「game.moves()」は相手の動ける駒の場所をすべて配列で取得できるわけですが、逆に言うと「もう動けない…」という状況になったら配列は空っぽの状態ということになります。

これを利用すれば、ゲームの終了判定も簡単にプログラミングできるのが分かります。

// game.js


var playerMove = game.moves();


// 配列の中身が0になったらゲームを終了する
if (playerMove.length === 0) {


    alert('終了');


}

■「CPU対戦」機能を組み込もう!

f:id:paiza:20161202163402j:plain
最後に「CPU対戦」ができる機能を簡易的に組み込んでみましょう!
実は、これまでに学んできた内容で十分に実現できる機能なので、難しい処理を構築する必要はありません。


まず、「CPUプレイヤー」の駒を自動的に動かす方法ですが、すでにご紹介したように「game.moves()」で相手の駒が動かせる場所をすべて配列で取得することが出来るようになっています。

そこで、乱数を使ってこの配列の中から1つ選んで、そこへ駒を移動させるようにしてみましょう!

// game.js


var game = new Chess();


// CPUプレイヤーの移動処理
var makeCPUmove = function() {


    // CPUが動ける場所を変数に代入
    var cpuMoves = game.moves();


    // 駒が動かせる場所をランダムに1つ選ぶ
    var randomNum = Math.floor(Math.random() * cpuMoves.length);


    // 選択した場所へ駒を動かす
    game.move(cpuMoves[randomNum]);


    // チェスボードの描画を更新する
    board.position(game.fen());
}

プログラミングしやすいように、CPUプレイヤーの移動パターンを管理する「makeCPUmove()」という関数を作りました。

中身は単純で、CPUが動ける場所を取得し、乱数を使って次に動く場所を決めて移動するだけの処理です。


ポイントは「game.move()」と「board.position()」の使い方です。

これまで「game.move()」は、ルールに沿った駒の移動ができているかのチェックに使っていましたが、実はボードの位置を指定するとそこへ移動させることも可能です。

また、CPUプレイヤーの駒が移動した後は、一度ボードの描画を更新する必要があるので、「board.position()」を使ってすべての駒を再描画しています。


あとは、自分の駒をボードへ置いた後に、「makeCPUmove()」関数を実行させれば「CPU対戦」機能の完成です!

// game.js


var onDrop = function(source, target) {
  
    // 一部省略
  
    
    // CPUプレイヤーの移動処理を実行
    makeCPUmove();


};

ぜひ、以下のリンクからチェスゲームを遊んでみてください!
(PCブラウザ推奨)
チェスゲーム サンプルデモ


また、今回のサンプルの全ソースコードはコチラから確認できます!
サンプルコード

■開発シミュレーションプログラミングゲーム「もし次の常駐先が女子エンジニアばっかりだったら」が2016年12月6日(火)から公開!!

f:id:paiza:20161205165335p:plain
paizaでは、開発シミュレーションプログラミングゲーム「もし次の常駐先が女子エンジニアばっかりだったら」の公開を予定しています。

最高の開発現場を作れるかどうかは、あなたのプログラミングスキルと采配次第!2016年12月6日(火)から、ぜひ挑戦してみてください!

※イベントは終了しました。

■まとめ

今回は、「chessboard.js」に画面の描画を担当してもらい、「chess.js」にゲームロジックを任せてみました。

このように便利なライブラリを活用することで、本格的なチェスゲームを短時間で制作することが出来るのでとても便利だと思います。


それぞれの公式ドキュメントには、さらなるカスタマイズ方法も記述されており、ゲームの結果を「FEN形式」で書き出したりも可能なので、ご興味ある方はぜひトライしてみてください!


<参考>




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

paizaのスキルチェック

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

【JS・C++コース追加】プログラミング言語擬人化キャラ紹介!コードを書いて美少女を集める学習ゲーム

f:id:paiza:20161130120755j:plain
paiza人気プログラミング学習コンテンツ「コードガールこれくしょん、これまでのPHP、Ruby、Java、Python・C言語・C#コースに加え、JavaScript・C++のコースが追加されました!

コードガールこれくしょん略してガルこれは、美少女ナビゲーターと一緒にプログラミング問題を解いて「コードガール」を集めながらストーリーを進めていく、これまでにないプログラミング学習ゲームコンテンツです!

■「コードガールこれくしょん」って、どうやって遊ぶゲームなの?

プレイヤーはプログラミング力が鍛えられるクエスト形式でストーリーを進行させていきます。進行度に合わせて徐々に難易度が上がっていく設定になっているため、初心者でも安心してプログラミング問題に挑戦することが可能です!

f:id:paiza:20160420122755j:plain
クエスト報酬やログインボーナス・ミッションクリア等の各種特典として手に入る「コイン」や「ダイヤ」を使って、ガチャでさまざまな「コードガール」を収集することができます。クエストで有利になる特殊スキルを発動させたり、「これくしょん」に入れてマイページに飾ったりと、コードガールをたくさん集めるほど楽しみ方が広がります!!

このコードガールの人気ガチャシリーズに「武装擬人化プログラミング言語シリーズ」があります。

今回は、このガチャで登場する擬人化プログラミング言語ガールズをご紹介します!

■武装擬人化プログラミング言語シリーズ

◆Java

「戦いの合間に飲むコーヒーは私にとって何よりも癒やされるもの。口にしてひと息つけば、どんな状況でも不思議と心が落ち着くんだ。キミが疲れたときにも淹れてあげよう」


武器:槍・盾(保守性が高く堅牢な守り)
真面目で素朴な女の子。実は、子供の頃に何度か父親が変わったという複雑な過去の持ち主ですが、どこへ行っても長期にわたって安定した仕事をしようとする頑張り屋さんで、多くの人から慕われています。流行りの派手なものは苦手で、コーヒーが大好き。

◆C

「私のように古ぼけた存在でも…この銃を必要としてくれる方がいる以上、まだまだ引退するわけにはいきませんわね。この世界の秩序を取り戻すため、ともに参りましょう」


武器:回転式拳銃(古い型の拳銃で攻撃数は多くなってしまうが、威力のある大口径のマグナム弾を撃つ)
この世界の女神であり創始者のような存在。この中には、Cさんとの血縁者やCさんの思想を継ぐ者がたくさんいます。年長者とは思えない俊足を誇り、古参のファンの中には「Cさんを知らないやつはモグリ」と言って聞かない者もいるようです。過去には「ポインタ」「ポインタのポインタ」という呪文で、初対面の多くの人間に癒えない傷をつけてきました。

◆Scala

「ちーさなものからおおきなものまで~♪この歌、お父さんに教えてもらったんだ!この前ね、大好きなJavaさんに聞かせてあげたら「あなたにピッタリね」って言われたよ」


武器:ガトリング銃(Javaのライブラリも使えて効率的な攻撃が可能)
Javaさんを姉のように慕う女の子。Javaさんの真似をして同じトレーニングをしたり、こっそりJavaさんのあとをつけて同じ本を買って勉強したりしてきました。その結果、Javaさんばりの実力がつき、明朗快活な性格も相まってか「Javaさん一筋だったのに、最近はScalaちゃんが好き…」というファンも。赤い髪飾りが大のお気に入りです。

◆JavaScript

「このチェーンソー、見た目よりずっと小回りがきくのよ…さあ、お望みのとおりに形を整えてあげる。大丈夫、私に任せてくれれば最適な姿に変えることができるわ」


武器:チェーンソー(安全性にやや不安があるが攻撃力は高い)
Javaさんが大流行していた頃に生まれたのでこの名前をつけられましたが、よく知らない相手から混同されることが多く、本人はあまり気に入っていないようです。Web開発のお手伝いをするのが得意ですが、いきなり新しい作業部屋に連れてこられると混乱して、それまで自分で作っていた物を壊してしまうことがあります。

◆Ruby

「みんなー!今日は私のために集まってくれてありがとー!…って、あれ?ここはどこかな?パパに「一人で遠くに行っちゃダメだよ」って言われてるのに、どうしよー!」


武器:PDW(短機関銃に似た銃器、人間工学に基づいて設計されていて取り回しが楽)
元気で明るく親しみやすい、日本ではアイドル的な存在の女の子。初めましての相手でも楽しませられるような神対応が得意で、日々ファンを増やしているそうです。世界でも活躍していますが、生まれ育った地元の島根県とパパが大好きです。

◆Python

「君と組むと戦いが楽になる」とよく褒めてもらうんだけど…本当に今のやり方でいいのかはわからないんだ。この世界が落ち着いたら、改めて色々と考えてみようかと思ってるよ


武器:大型セミオート式狙撃銃(孤独でクールなスナイパー)
無駄なおしゃべりが苦手で受け答えはいつも完結、誰が相手でもクールに接する女の子。そのクールさや公平さに憧れるファンも多いようです。ペットのヘビを常に連れており、彼女に興味はあるけどヘビが怖くて近づけない……という人もいるとかいないとか。

◆C++

「身の丈に合わない大剣だと思うかい?だが、私はこれを使いこなすために絶えず努力をしてきた。無論、これからも人になんと言われようとも鍛錬を続けていくつもりだよ」


武器:ツーハンデッドソード(攻撃力が高い割に軽く取り扱える)
「Cさんよりも無駄なくいろいろな仕事ができる子を育てよう!」という思惑で育てられた女の子。教育の結果、Cさんができることはほとんどできるようになったそうです。人見知りな性格のため、最初はとっつきにくい対応をされますが、Cさんばりに足が早くてCさんよりいろいろなことができるので、競技プログラミングが好きな人たちにファンが多いとか。

◆C#

「生まれたときから大きな窓のある家に住んでたんだけど、もっと外の世界に出てみたくなったの。この大砲さえあればどこに出かけて行っても身を守れる…よね?」


武器:大砲(環境は選ぶがJavaやC++の攻撃力を強化して受け継ぐ)
大きな窓がある資産家のお屋敷に生を受け、小さなころから英才教育を受けてきたお嬢様です。深窓の令嬢として育てられてきたため、資産の恩恵を受けている人達からは大切に崇められていますが、そうでもない人達にとってはほとんど見かけることがない存在かもしれません。最近、窓を開けて外の世界に出たがっているとかいないとか……。

◆PHP

「みんながね、わたしを「だれにでもやさしくて、とってもいいこだ」ってほめてくれるんだよ。わたし、まだ「しゅぎょうちゅう」だけど、もっとほめてもらえるようにがんばる!」


武器:のこぎりとハンマー(何でもすぐに自分で作ってしまう)
Webサイトやアプリを作成したい人のお手伝いが大好きな優しい女の子で、誰とでも仲良くなりたがります。逆に言うと、Web開発以外の作業はあまり手伝いたがりません。HTMLちゃんとは幼なじみです。好きな動物は象さん、好きな食べ物はケーキとクッキー。

◆Perl

「ほら、仕事は手早く効率的に片付けないと。その点、この投げナイフってやつはとても便利なの。興味のあるものに向けてポイっと投げて押さえちゃえばいいだけだからね」


武器:投げナイフ(ピンポイントの細かい攻撃が得意)
ちょっとした仕事を素早く片付けるのが得意な、運動神経のいい女の子です。年齢は見た目よりも結構上だそうで、最近はPythonちゃんやRubyちゃんの人気に押されていますが、年の功で博識なところもあります。移動の際はペットのラクダに乗ります。

■「コードガールこれくしょん」とは?

youtu.be

コードガールこれくしょんは、日本初のプログラミング学習ゲーム!

仮想世界に取り込まれ記憶を失ってしまったプレイヤーは、そこで同じように記憶をなくした美少女「リリア」と出会います。2人は記憶を取り戻すべく”リアル”なプログラミングスキルを高めていくことに……プログラミングをしながらストーリーを進行させていく、新感覚の”学習型プログラミングゲーム”です!!

対応言語:PHP、Ruby、Java、Python、C、C#、JavaScript、C++
利用料金:無料
対象者:誰でも何度でも遊べます




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

paizaのスキルチェック

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

あなたは自分がエンジニアに向いていると思いますか?適性を知らないままの就職が招く不幸とは

f:id:paiza:20161130144125j:plain
Photo by David A Ellis
f:id:paiza:20140916135428p:plainこんにちは。谷口です。

近年、エンジニア不足がたびたび話題になっているため、就活生の中にも就職課やエージェントの人にすすめられるまま応募をしたり、「不足してるなら簡単になれそう」「手に職がついて将来安泰そう」という考えだけで、プログラミングにふれたこともないまま、安易にエンジニア職を目指す人が増えています

もちろん情報系が専門ではなかったとしても、勉強と経験を積んで素晴らしいエンジニアとして活躍されている方はたくさんいらっしゃいます。

しかし一方で、システム開発の適性がないにも関わらずエンジニアとして就職してしまったがために、開発スキルがなかなか向上せず、苦労をしている人も少なくありません

就職後に後悔や苦労をしないためには、まずご自分の「エンジニアとしての適性」を見極めてから、「エンジニアを目指すかどうか」を決めた方がよいかと思います。

「適性を見極めるってどうすればいいんだ?」と思われた方は、以下にご紹介していきます方法を参考にしていただければと思います。

目次

■エンジニアの適性って?

f:id:paiza:20161130144235j:plain
Photo by Gergely Schmidt
エンジニアに向いている人と向いていない人では、仕事の生産性に大きな格差がある…という話は、かねてから多くの技術者や研究者たちによって叫ばれてきました。

ソフトウェアのコンサルタントだったデマルコ氏とリスター氏は、著書『ピープルウェア』で、プログラミングコンテストのデータをもとに、優秀なプログラマと成績の悪いプログラマの生産性には約10倍の差があることを示しています。フレデリック・ブルックスがソフトウェア工学とソフトウェアプロジェクト管理について書いた有名な書籍『人月の神話』にもこの話は出てくるため、ご存知の方も多いかもしれません。

また、『ピープルウェア』より過去に発表されていたサックマンの論文では「プログラマ個人の能力差は28倍の差」があるという研究結果が出てきますし、最近では、奈良先端科学技術大学院大学の森崎修司氏が、個人によって同じソースコードを理解するための時間に6倍の差が出た事例を示しています。

実験により差は出るものの、オーストラリアのグリフィス大学名誉教授であるロバート・L・グラス氏も、著書『ソフトウエア開発 55の真実と10のウソ』の中で、エンジニア個人おいては、5から28倍のスキルの差があるとまとめています。

ピープルウエア 第3版

ピープルウエア 第3版

人月の神話【新装版】

人月の神話【新装版】

ソフトウエア開発 55の真実と10のウソ

ソフトウエア開発 55の真実と10のウソ

【読者参加型企画】2,000行のJavaソースコードを読むのに何分かかりますか? (1/2):CodeZine(コードジン)

これらの格差に関する話は、少しでも学校の授業などでプログラミングを習った経験がある方や、開発経験のある方はすぐに実感がわくかと思います。

プログラミングに関して同じ授業を受け、同じ課題が出されたとしても、適性のある人は短時間で課題をクリアできるのに対し、適性のない人の中には時間をかけてもほとんど進まない…という場合があるのです。

これが仕事となると、できる人がやれば一日で終わる業務を、適性がないのにエンジニアになってしまった人が担当したせいで、一週間経っても終わっていない……できている部分もクオリティが低い……納期が迫ってきて、結局はできる人が時間を捻出してほとんどの部分を作らざるを得ない……といったことにもなりかねません。

こうした不幸なミスマッチは、「エンジニアの仕事をよく知らないまま目指す」のではなく「少しやってみた上で目指す(自分には合わないと思ったらやめておく)」ことで、ある程度は防げるはずです。

では、「エンジニアとしての適性があるかどうかを知るには、何をすべきなのか?」をこれからご説明していきます。

■1.プログラミングの基礎を学んでみる

まずはプログラミング言語の書き方を学んでみましょう。

プログラミング初心者が学ぶのであれば、比較的コードが書きやすくて学びやすいのはPHPかと思われます。PHPは大抵のレンタルサーバで動きますし、参考になる学習サービスや書籍も多い言語です。

もちろん、既に作りたいものがある!学びたい言語がある!この言語に詳しくて教えてくれる人が周りにいる!という人はこの限りではありません。

全くの未経験からプログラミング学習を一人で始める場合、下記のような学習サービスが役に立ちます。複数言語に対応していますから、いくつかの言語で入門コースをやってみるのもよいかと思います。

Progate

f:id:paiza:20150204125057p:plain

paizaラーニング

f:id:paiza:20160830130051j:plain


プログラミングの基礎を習得して、自分のスキルを試したくなった人や、既にある程度プログラミングの勉強ができている人は、paizaスキルチェック問題をぜひ解いてみてください。

paizaのスキルチェック問題

f:id:paiza:20150205133638p:plain

paizaでは、プログラミングスキルをはかる問題の回答結果によって、S・A・B・C・D・Eの6段階でスキルランクを判定しています。Dランクが取得できると、プログラミングの本当に基礎の基礎に当たる概要は理解できているという目安になります。

このスキルチェック問題も、エンジニアとしての適性を見る目安になります。もちろん勉強を始めたばかりの頃はD問題でも難しいかと思います。しかし、しばらくちゃんと勉強を続けていったとして、どんなに頑張ってもCランクの問題が解けない…という人は、恐らくエンジニアとしての適性はないと思います。

■2.動くものを作ってみよう

f:id:paiza:20161130144427j:plain
Photo by Mark Turnauckas
基本的なコードが書けるようになってきたら、何か動くものを自分で作って、できれば完成させてみましょう

コードの書き方や作法は、初心者向けサイトや書籍を見て勉強すれば多くの人が身につけられます。しかし、作品を一つ完成させようと思ったら、コードの基本的な書き方だけでなく、システム作りにおける様々な分野を勉強したり、仕様を考えたりしなければなりません。思うような機能が作れなかったり、わけのわからないエラーが出たり、詰まってしまうこともあるかと思います。

少し大変かもしれませんが、ここでどうしたら解決できるか調べたり、人に聞いたりして、何とか解決を目指してください。そうやって調べる中で「この機能を追加したかったけど、思いのほか複雑な作業が必要みたいで今の自分には無理かも……」と思ったら、そこは飛ばしても大丈夫です。(そこでストップしてしまわないよう、「この日までに解決策が見つからなかったら飛ばして次の作業に取り掛かる」と決めておいてもよいでしょう)

ただ、とにかく作品としての完成を目指して、試行錯誤してみてください。

実際のエンジニアの業務でも、問題が起きる→解決策を調べる→実行する…という流れは同じです。

ここで「調べるのが億劫でこれ以上進めたくない」「問題解決に興味が持てない」と感じる人は、恐らくエンジニアとしての適性はないと思います。

動画でプログラミングが学べるpaizaラーニングでは、クラウド上に用意されたエディタとWebサーバ、DBサーバを利用し、ブラウザだけで動画を見ながらWebアプリケーション開発を学べる「Webアプリ開発入門 PHP+MySQL編」を公開しています。

Webアプリ開発入門 PHP+MySQL編

■3.IT系の勉強会に参加してみよう

f:id:paiza:20161130144612j:plain
Photo by ITU Pictures
IT業界では、未経験者・初心者でも参加可能のオープンな勉強会が日々開催されています。

プログラミングの勉強になるのはもちろんですが、経験者や現役エンジニアの人と話せるよい機会です。というか知り合いやOBでもいない限り、現役エンジニアと直接話せる機会って、就活の説明会や面接以外では勉強会ぐらいしかないかと思います。

前述の作品作りや勉強でわからないところを聞いてみるのもよいですし、エンジニアの仕事や企業について聞いてみるのもよいでしょう。やはり現役の方からは、ネットで調べるだけでは出てこないリアルな話を聞くことができます。

最初は緊張するかもしれませんが、「自分はいま学生で、将来エンジニアになりたいと思って勉強をしているのですが…」と言って質問をすれば、結構皆さん優しく教えてくれるかと思います。


【勉強会を探せるサービス】

■4.自分の書いたコードや作品を公開しよう

f:id:paiza:20161128212352j:plain
Photo by othree
自分で作った作品やコードをGithubやWeb上に公開してみましょう。

企業の面接でいくら「プログラミングの勉強をしています!エンジニアになりたいです!」と言っても、「本当にコードが書けるのか?」「どれぐらいのプログラミングスキルがあるのか?」といったことは証明できません。

自分の作品やコードが公開されていれば、企業としても評価がしやすくなりますし、「プログラミングの勉強をしています」と口で言うだけで作品がない人よりも、説得力が出てアピールしやすくなります

「まだしょぼいものしか作れないし…」と思われて、公開をためらう方も多いのですが、企業だって、すべての応募者が完璧な素晴らしい作品を持っているとは思っていません。

自分なりに調べながら作ったものを通して「なぜこれを作ろうと思ったのか」「どこを工夫したか」「どこが楽しかったか」「どこが難しかったか」など、自分の考えや想いを説明できれば、多少うまくできなかった部分があったとしても、立派なアピールポイントになりますし、熱意が伝わります

特に情報系が専門ではない人がエンジニア職を目指すのであれば、既に自分で勉強を始めていることをアピールするのに、ポートフォリオがとても役立ちます。

GitHubでは、ほかの人が公開しているコードを見ることもできますので、それもまた勉強になりますよ。
github.com

■プログラミング、楽しかったですか?

f:id:paiza:20161130144743j:plain
Photo by Gordon
ここまで、コードの書き方を学んだり、動くものを作ってみたりして、「楽しい」「もっとやりたい」と思われましたでしょうか?

「まったく楽しくなかった」「大変なだけだった」「一つのところでずっと詰まっていた」という人は、恐らくエンジニアとしての適性はないと思います

「楽しかった」「もっとやりたい」と感じられた人は、「プログラミングが好き」というエンジニアとして大変重要な素質があると言えます

ただ、実際の業務では、「一人でガリガリコードを書いたら完成!」ではなく

  • グループでの開発
  • 最適なアルゴリズムを考える
  • 一つの言語だけでなく、複数言語やツールの使用
  • コーディングだけでなく、サービス企画から考える開発
  • エラー処理やセキュリティ対策
  • あらゆるパターンを網羅した動作テスト
  • 人のコードを読んで修正するリファクタリング

…などなど、さまざまな作業が発生します。

求人応募の際は、「ちょっとプログラミングやってみたら楽しかったからエンジニアになりたいです!」だけではなく、エンジニアの業務内容についてもある程度把握しておいた方がよいでしょう。

書籍やWebサイトで学ぶのもよいですが、これも先輩や勉強会で会った人に話を聞くと、普段どんな業務をこなしているか(もちろん会社にもよりますが…)がよくわかるかと思います。

また、paizaラーニング就活パックでも、業界構造やキャリアについてがわかる「IT業界の構造とエンジニアのキャリアについて」の動画学習講座を公開しています。

paizaラーニング

■まとめ

前半に言いましたとおり、エンジニアは適性が物を言う職業です。

別に適性があるから優れている、ないから劣っているという話ではありません。適性がなさそうだと感じる職業は、先に選択肢から外しておいた方がいいという話です。

例えば、話すことが苦痛な人が進んで営業職を目指すことはあまりないと思いますし、計算が苦手で仕方ない人は、経理に応募するよりも別の仕事を選んだ方が幸せかと思います。

よく知らないまま適性のない仕事を選んでしまうと、合わない仕事に苦労が重なり、限界を迎えてから退職……といった不幸な結果にもなりかねません。

情報系が専門でない人の中には、エンジニアについて「なんとなくよさそうで、だけど実態がいまいちわかりにくい」と思っている人もいるでしょう。

そんな中で「なんとなくエンジニアを目指そっかな」と考えていた人には、ぜひ上記を参考にして、少しでもプログラミングやエンジニアの業務について知ってから、改めて考えていただければと思います。

その上で「楽しい、もっとやりたい」「やっぱりこの仕事につきたい」と思われましたら、ぜひエンジニア職に応募してください!


paiza新卒は、paizaがITエンジニアを目指す学生の皆さんに向けてオープンいたしました、規定のプログラミングスキルがあれば大手企業からベンチャー企業までエントリーシート選考なしで応募ができる就職活動支援サービスです。

プログラミング問題を解いてスキルランクを獲得した上で企業に応募ができますので、自分のプログラミングスキルのレベルが明らかとなり、プログラミングができる人ほど有利に就活を進めることができます。

また、paiza新卒の学習コンテンツ「paizaラーニング就活パック」は、企業からの「こんな開発スキル・知識を身につけている学生がほしい」という要望と、ITエンジニア志望の学生からの「就活を上手に進めるためにはどうしたらいいのか」という悩みに応えるための特別コースです。

単純なプログラミングスキルだけでなく、業界・キャリアに関する知識やWeb周辺の知識の習得、ポートフォリオとして応募時に提出できるようなサービスの作成までを行える就職特化型の講座内容になっております。

youtu.be




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

「paiza転職」は、自分のプログラミング力が他社で通用するか(こっそり)腕試しができる、IT/Webエンジニアのための転職サービスです。プログラミングスキルチェック(コーディングのテスト)を受けて、スコアが一定基準を超えれば、書類選考なしで複数の会社へ応募ができます。

paiza転職

まずはスキルチェックだけ、という使い方もできます。すぐには転職を考えていない方でも、自分のプログラミングスキルを客観的に知ることができますので、興味がある方はぜひ一度ご覧ください。

paizaのスキルチェック

また、paiza転職をご利用いただいている企業の人事担当や、paiza転職を使って転職を成功した方々へのインタビューもございます。こちらもぜひチェックしてみてください。
詳しくはこちら

世界初! エディタも環境構築もサーバも不要。クラウド上でWebアプリを作る学習講座が新登場

f:id:paiza:20161129120003p:plain
動画で学べるオンラインプログラミング学習サイト「paizaラーニング」では、この度Webアプリ開発入門PHP+MySQL編1」を公開いたしました。

paizaラーニングって何?「Webアプリ開発入門PHP+MySQL編1」ってどんなレッスン?

f:id:paiza:20161129115712j:plain
従来のWebアプリケーション開発(Webサービス開発)の学習サービスは、PCのプログラミング環境構築やエディタの準備、サーバのレンタルおよび設定など、実際の学習前に数日~1週間ほどの煩雑な手間が発生していました。このプロセスがプログラミング学習において多数の挫折者を出す要因ともなっています。

paizaが提供する「Webアプリ開発入門PHP+MySQL編1」では、クラウド上に用意されたエディタとWebサーバ、DBサーバを利用し、ブラウザを開くだけで、すぐに動画を見ながらWebアプリケーション開発を学べます

クラウド上に用意されるのは、OSとしてLinux、WebサーバとしてApache、DBサーバとしてMySQL(管理ツールとてphpMyAdminをインストール済み)、開発言語としてPHPが動く環境です。必要に応じてブラウザ上でLinuxのシェルを使うこともできる環境となっています。

paizaラーニング

■サービス提供の背景

Webアプリ開発入門PHP+MySQL編1」で提供しているクラウド上のエディタ、サーバは一般的にオンラインIDE(統合開発環境)と呼ばれ、誰もが同じ開発環境を素早く用意できることから近年需要が高まっています。

ブラウザ上でプログラミングを学べる学習サービスは国内・海外合わせても多数ありますが、プログラミング実行環境が用意されていても、セキュリティの関係で実際に試せるコマンドは制限されているものがほとんどでした。

そこでpaizaでは、月間200万回以上実行されるプログラミングスキルチェックで蓄積したセキュリティノウハウを元に、学習ユーザーがブラウザだけでプログラムが書け、壊すことを恐れず自由にサーバをいじれて、すぐに復旧できるオンラインIDEの「paiza Cloud(パイザ・クラウド)」を開発しました。(※paiza Cloud単体サービスとしては2017年春ごろ提供予定です)

オンライン学習サービス「paizaラーニング」とオンラインIDE「paiza Cloud」を組み合わせることにより、これまでにない手軽さで自由にWebアプリケーション開発が可能な、新時代の学習サービスの提供が可能となりました。

■学習進捗によってキャラで可視化!

f:id:paiza:20160830130051j:plain
この講座では、paizaの人気美少女キャラクター霧島京子(cv:上間江望)が、かわいい声で優しく・楽しく・わかりやすくSQLの使い方を教えてくれます「霧島京子による1本3分程度のレッスン動画」に加え、「ブラウザ上でコードを書いて実行できるオンライン実行環境」「複数の練習問題」で、初心者でも無理なく習得することができます。

また、「paizaラーニング」では、各言語毎に登場するキャラクターが学習の進捗度合いによって成長!

学習のモチベーション向上を図る仕組みがあちこちに散りばめられているので、楽しく学び進める事が出来ます。 
f:id:paiza:20160726140649j:plain

■「paizaラーニング」を使う4つのメリット

f:id:paiza:20160726140821j:plain
1. 環境構築不要、5秒で学習を開始できる!
これまで、プログラミングを始める初心者にとって最大のハードルだったのが、丸1~2日かかる「プログラミング実行環境構築を構築すること」でした。paiza動画ラーニングでは環境構築不要、ブラウザ上でプログラミング言語を実行できるので、誰でもすぐに学習を始められます。

2. 3分動画で、毎日続けられる!
動画レッスンを見て、その場でレッスン内容をプログラミングすることで理解を深め、その後に練習問題を解いて応用力をきたえることができます。1本3分程度という短い動画なので、毎日無理なく続けることができます。

3. わからないところはプロのエンジニアに質問できるから安心!
わからない点は弊社エンジニアに質問をして、アドバイスをもらうことができます。初歩的なところでつまずいて、やる気を失ってしまうこともありません。

4. エンジニア30万人受験のスキル評価システムに基づいたカリキュラム
paizaが転職サービスで展開する、延べ30万人以上の現役エンジニアが受験したプログラミングスキル評価システムのデータと、paiza掲載の600社以上の求人票を元にカリキュラムを作成。開発現場で役に立つスキルを身につけることができます。

Webアプリ開発入門PHP+MySQL編1以外にも多数の学習レッスン動画公開中!プログラミング学習コース

f:id:paiza:20160830130051j:plain
paizaでは、Webアプリ開発入門PHP+MySQL編1の他にもJava、Ruby、Python、C言語、HTML/CSS、JavaScript、SQL/DB等、多数の学習動画が視聴可能な「paizaラーニング就活パック」を好評公開中です。

paizaラーニング就活パック」は、企業からの「こんな開発スキル・知識を身につけている学生がほしい」という要望と、ITエンジニア志望の学生からの「就活を上手に進めるためにはどうしたらいいのか」という悩みに応えるための特別コースです。

もちろん学生だけでなく、既卒の方、社会人の方、どなたでも受講いただけます。

単純なプログラミングスキルだけでなく、業界・キャリアに関する知識やWeb周辺の知識の習得、選考用ポートフォリオとなるサービス作成までを行える就職特化型の講座内容になっております。

youtu.be



paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

paizaのスキルチェック

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

ブラウザだけで今すぐ使える!無料の「ゲーム開発環境」Webサービス厳選まとめ!

f:id:paiza:20161124131843j:plain
どうも、まさとらん(@0310lan)です。


みなさんは、「ゲーム開発」にご興味あるでしょうか?

最近人気の「Unity」みたいな統合開発環境があれば、かなり本格的なゲーム作りが個人でも可能になってきましたが、実はこのような統合型の開発環境をブラウザ上で実現するサービスがいくつか存在します。

そこで今回は、用途別に厳選したオススメのサービスをご紹介しようと思いますので、ご興味ある方はぜひトライしてみてください!

■本気で作り込める「2Dゲーム」開発環境!

WiMi5

f:id:paiza:20161124131948j:plain
ゲームに使う「ステージ」作りをグラフィカルに設定し、キャラのアニメーションやメインのゲームロジック、最終的な書き出しまですべてカバーする統合開発環境が「WiMi5」です。


シューティング、RPG、パズル、アクション…など、基本的に2Dゲームならどんなゲームでも制作可能で、すでに多くのユーザーが多彩なゲームを公開しています。
f:id:paiza:20161124132051j:plain

開発用のエディタは、2つの画面を切り替えながら作業するように設計されており、「シーンエディタ」と「ロジックエディタ」が搭載されています。


「シーンエディタ」では、ゲームで使うステージやキャラクターなどを構築します。
f:id:paiza:20161124132104j:plain
マウスによるグラフィカルな操作で配置出来るようになっており、用意されている無料のリソースを使ったり、自分で作った画像なども簡単に取り込めます。

また、スプライトシートを読み込んで、自動的にキャラクターのアニメーションを作成する機能など、便利なツールも数多く用意されています。


「ロジックエディタ」では、ゲームとして遊べるようにプログラミングを行うのですが、さまざまな機能を持ったブロックを「線」で繋げていくだけで構築できるようになっているのが特徴です。
f:id:paiza:20161124132134j:plain
基本的な「イベント処理」や「ユーザー入力」などはもちろんのこと、「WiMi5」で用意されている「ランキング機能」「ストレージ機能」「ユーザー管理機能」なども同じようにブロックを繋げるだけで簡単に実現します。


また、「課金機能」も搭載されており、ゲーム内でアイテムの購入などを電子決済で行えるように組み立てることも出来ます。

さらに、中・上級者向けの機能として、JavaScriptでプログラミングを行うことで自分独自の「オリジナルブロック」を作ることも可能なので、開発できるゲームの幅は非常に広いと言えるでしょう。


あと、特徴的な点としては「ドキュメント」や「チュートリアル」がとても豊富に揃っている点が挙げられます。


ちなみに、作ったゲームの書き出し機能も強力で、「WiMi5」のサーバー上に公開したり「Chrome Web Store」へ書き出すことも可能。

「iOS / Android」についても、リクエストボタンをクリックすることで、WiMi5のスタッフがオンラインで「Xcodeプロジェクト」や「apkファイル」に書き出してくれるサービスもあります。


<参考>

■本気で作り込める「3Dゲーム」開発環境!

PlayCanvas

f:id:paiza:20161124132329j:plain
3Dゲーム開発」と言えば、人気のゲームエンジン「Unity」を思い浮かべる人も多いと思いますが、似たような操作感覚で開発できるのがコチラの「PlayCanvas」です!


現在もバージョンアップが続いているせいか、ブラウザ上で動いているとは思えないくらい安定性のあるリッチな開発環境が手軽に利用でき、3Dゲーム以外にも最近人気の「VRコンテンツ」の開発も行えるようになっています。


開発エディタは、「プレビュー&テスト」がしやすく、また各オブジェクトのパラメータも編集しやすい設計になっています。
f:id:paiza:20161124132419j:plain
「ステージ構成」の組み立てや「3Dオブジェクト」の細かい調整など、ほとんどの作業をマウス操作で行えるようになっており、キーボードショートカットキーを組み合わせればさらに効率よく作業が進みます。

また、「3D物理演算」「当たり判定」といった主要機能も、3Dオブジェクトに各コンポーネントを追加していくだけで利用できる設計になっています。


さらに、「アセットストア」のようなサービスも搭載されており、他ユーザーが作成した3Dオブジェクトを自分のプロジェクトへ手軽にインポート出来るのは便利です。
f:id:paiza:20161124132432j:plain


基本的なゲームロジックに関しては、専用のコードエディタにJavaScriptで書いていきます。
f:id:paiza:20161124132500j:plain
「コードエディタ」は別タブで開くようになっており、シンタックスハイライトやコード補完なども装備されているので意外に使いやすいです。


完成したゲームは、PlayCanvasのサーバーに公開することが可能で、URLをシェアするだけで友人・知人に遊んでもらえるのは便利でしょう。

すでに、多くのユーザーが作品を公開しているのでご興味ある方はぜひチェックしてみてください!


ちなみに、「PlayCanvas」の開発環境を使わずに、ゲームエンジン単体で利用できるJavaScriptライブラリも公開されています。


<参考>

■初心者でも手軽にゲームが作れる開発環境!

PLiCy

f:id:paiza:20161124132704j:plain
こちらは開発環境と言うよりも自作ゲームを投稿&共有できるプラットフォームに近いのですが、簡単に「アクションゲーム」や「ノベルゲーム」を開発できる機能も搭載された珍しい国産Webサービスです。


PLiCy」で開発したゲーム以外にも、「RPGツクール」や「Unity」などで作ったゲームも投稿できるのが特徴で、不特定多数のユーザーにゲームをプレイしてもらい「コメント」や「メッセージ」などをもらうことも可能です。


「アクションゲーム」を開発するエディタでは、すべてマウス操作で「キャラクター」や「地形」などを画面に配置しながら作っていきます
f:id:paiza:20161124132724j:plain
敵キャラなどは、配置するだけでさまざまな動きを自動的にしてくれて、仕掛けのある地形やアイテム、ゴール地点、BGMなど、メニューからどんどん追加していくだけでゲームの骨組みは簡単に構築することが可能です。

また、キャラクターに関しては自作のアバターを作ることも可能で、キーボード・タッチ操作にも自動的に対応してくれるので便利です.


「ノベルゲーム」を開発するエディタでは、豊富に用意された「背景画像」や「キャラクター」を選択し、自分でシナリオを考えながら組み立てられるようになっています。
f:id:paiza:20161124132737j:plain
複雑な条件分岐や、効果的なエフェクト・BGMなどを駆使しながら本格的なノベルゲームが初心者でも簡単に作れるのが醍醐味でしょう。

また、「アクションゲーム」も「ノベルゲーム」もボタン一発で簡単に「PLiCy」のサーバー上へ公開することが可能で、すぐにでも多数のユーザーにプレイしてもらうことが出来ます。


公開されたゲーム作品は、ユーザーからのレビューや獲得ポイントなどに応じてランキング化されており、多くの競合作品が日々更新されています。
f:id:paiza:20161124132751j:plain
興味深い点としては、PCブラウザだけでなくスマホのブラウザからでもゲーム開発ができるように設計されている点が挙げられます。

そのため、スマホひとつでゲームの開発から公開まで完結することが可能で、プラットフォーム内の共有機能からユーザーの評価も同時にチェックできる環境が整うのはスゴイところ…。


ちなみに、プレミアム機能を使うと3D描画のアクションゲームなども開発できるようになっているので、ご興味ある方はぜひチェックしてみてください!


<参考>

■独自の言語仕様で「ファミコン風ゲーム」が作れる開発環境!

PuzzleScript

f:id:paiza:20161124132900j:plain
こちらは、ちょっと懐かしい「ファミコン風」ゲームが作れる開発環境になっているのですが、ちょっと扱いにクセがあり、しかも何らかのプログラミング言語を触ったことのある経験者向けという位置づけです。


扱いは難しいのですが、専用のコードエディタのみで「グラフィックデザイン」「ロジック」「ステージ構築」「HTML書き出し」などが行えるので、慣れると素早くゲーム開発が出来るポテンシャルを秘めています。(そのままWeb上に公開することも可能)


開発エディタは、「コーディング」「プレビュー」「コンソール」が1つの画面にまとまっているので扱いやすいです。
f:id:paiza:20161124132912j:plain
あらかじめ複数のサンプルゲームが読み込めるようになっており、コードを見るだけでどのようにプログラミングすれば良いのか分かるようになっています。

特徴としては、独自の言語仕様によるプログラムでゲーム制作のほぼすべてをカバーしている点です。


例えば、キャラクターデザインをしたければ、コードエディタでカラーに合わせた数値をプログラミングするだけで完成するというお手軽さ!
f:id:paiza:20161124132922j:plain


ステージ構成は、あらかじめ設定した「キャラクター」や「地形」の値を並べていきます。

(GUIによるステージエディタも搭載されています)
f:id:paiza:20161124132954j:plain
また、ゲームロジックに関しては、基本的な「ルール」を記述していくスタイルで構築していきます。


簡単に言えば…

「この状態の時に」→「こんな感じに動いて欲しい」
( [ > Player | Crate ] -> [ > Player | > Crate ] )

というようなルールを、1行のコードで表現してどんどん書いていきます。


プログラムをゴリゴリ書いていくのが好きな人にはピッタリの開発環境で、ゲームサウンドなども複数用意されているので、手軽にゲームを作ってURLをシェアするだけでいろんな人に自作ゲームを遊んでもらえるでしょう。


<参考>

■2D・3D・VRなど、あらゆるゲームをカバーする開発環境!

Goo Create

f:id:paiza:20161124133107j:plain
恐らくブラウザ上で利用できるゲーム開発環境としては、最強の部類に入ると思われるのがこちらの「Goo Create」です。

とにかく、どんなゲームでも開発できるポテンシャルの高さと、軽快な動作にも関わらず初級者から上級者まで幅広く扱える多彩な機能が魅力です。


開発エディタは、「ファイル管理」「プレビュー&テスト」「パラメータ調整パネル」「コードエディタ」などがすべてセットになっています。
f:id:paiza:20161124133122j:plain
画面下段には、ゲーム開発において必要となる専用のエディタも起動するようになっています。


例えば、アニメーション処理を自作したい場合には、専用のタイムラインエディタが表示されて、任意のオブジェクトから「キーフレーム」を作って構成することが可能です。
f:id:paiza:20161124133133j:plain


「爆発」「煙」「魔法」のようなエフェクトも、専用のパーティクルエンジンを使うことで、ほとんど無限のパターンを構築することができます。
f:id:paiza:20161124133144j:plain


キャラクターに「動き」をつける場合も、2D・3D関わらず「ステートマシン」を使えばブロックを繋ぎ合わせるだけで複雑な「状態遷移」を実現できます。
f:id:paiza:20161124133157j:plain
「動き」以外にも、簡単なキャラクターのコントロールや、オブジェクトの移動パターンなどをコーディング不要で構築することも可能です!(JavaScriptによるプログラミングも可能です)


ユニークな機能として、HTML / CSS / JavaScriptを使ったオブジェクトを生成することが可能で、これにより「画面UI」などをまるでWebページを作る感覚で制作することが出来るのは非常に便利です。


さらに、最近になって充実してきた「アセットストア」も大きな魅力でしょう。
f:id:paiza:20161124133209j:plain
3Dオブジェクトはもちろんのこと、さまざまな機能をプログラミングしたソースコードなども公開されており、クリック一発で自分のプロジェクトに組み込むことが出来ます。

完成したゲームは、そのままWeb上に公開することが出来るのでシェアするのも簡単でしょう。


また、「Goo Create」のゲームエンジンは単体で利用できるJavaScriptライブラリとしても公開されています。


公式ドキュメントもかなり充実しており、「Goo Create Learn」と呼ばれるチュートリアルコースを最初から進めていけば、自然と高度なテクニックを覚えながら本格的なゲーム開発が出来るようになるのでオススメです。


<参考>

■JavaScriptの学習レッスン動画も公開中!プログラミング学習コース

f:id:paiza:20160830130051j:plain
paizaでは、未経験者でも動画を通してプログラミング等が学べる「paizaラーニング就活パック」を公開しております。

ゲーム制作中に「少し手を加えたいな…」「ここだけ変更したいな…」となった場合も、JavaScriptやHTML等を使った基礎的なコードの書き方が理解できていれば、スムーズにクオリティの高いゲームを作ることができます!

paizaラーニング就活パック」は、企業からの「こんな開発スキル・知識を身につけている学生がほしい」という要望と、ITエンジニア志望の学生からの「就活を上手に進めるためにはどうしたらいいのか」という悩みに応えるための特別コースです。

もちろん学生だけでなく、既卒の方、社会人の方、どなたでも受講いただけます。

単純なプログラミングスキルだけでなく、業界・キャリアに関する知識やWeb周辺の知識の習得、選考用ポートフォリオとなるサービス作成までを行える就職特化型の講座内容になっております。

youtu.be

■まとめ

今回ご紹介したサービスの中で、もし自分がイメージしているゲームを開発できそうなモノがあれば、いずれも無料で利用できるので気軽にチャレンジしてみるのが良いと思います。

ドキュメントに関しては英語の場合が多いのですが、ほとんどのサービスはYouTubeチャンネルを持っているので動画を見ながら学習するのもオススメです。


このように、ブラウザさえあれば今すぐゲーム開発ができるので、ぜひみなさんもオリジナルのゲーム作りに挑戦してみてください!




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

paizaのスキルチェック

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

「いつか勉強する」を実現できたことありますか?現役エンジニアがやっている勉強法10

f:id:paiza:20161130143208j:plain
Photo by UBC Learning Commons
f:id:paiza:20140916135428p:plainこんにちは。谷口です。

自分以外のエンジニアを見ていて、「どうしてこんなことまで知っているんだろう?」「何でここまでできちゃうんだろう?」と思うことはありませんか?

デキるエンジニアたちは、やはり裏でいろいろな勉強をしています。とはいえ、誰もが業務後や休みの日に何時間も難しい勉強をしている…というわけではありません

結論から言うと、彼らは情報収集やインプットなどに関して、普段の生活の中で効率よく学べる仕組みを作っているため、無理のない勉強とスキルアップができているのです。

では、具体的にどんな勉強法を実施しているのか?

今回は、弊社でpaizaを作っているエンジニアたち(記事公開当時)に比較的簡単に習慣化しやすい学習方法を聞いてきましたので、ご紹介いたします。

「なかなか勉強のための時間が作れない」「どういうステップで勉強したらいいかわからない」という方の参考になればと思います。

【目次】

■聞いた人

※記事公開当時の情報です。

佐藤

担当:paizaのバックエンドシステムの開発
最近勉強してること:JavaScript関連のこと。React.jsとか

中村

担当:paizaの中途向けフロントエンド、バックエンドシステムの開発
最近勉強したこと:JavaScriptのライブラリとか。最近は機械学習とか統計学とかにも手を出したい気持ち…

高村

担当:paiza新卒、POHなどイベント企画系の開発
最近勉強したこと:css、sass、Bootstrap、Vue.jsとかフロントエンド周辺のこと

■1.ゆるく情報収集し続けられる状況を作る

f:id:paiza:20161122123729j:plain
Photo by Gonzalo Baeza
何でも「勉強のため!」とか「毎日何分必ずこれをやる!」とか思っていると絶対に嫌になりますから、情報収集に関しては、ゆるく習慣づけしちゃうのがよいです。

インターネットやTwitterは普段から手癖でやっていたり、スマホ依存してる人も多いと思うので、最初はQiitaはてなstackoverflowPOSTDTeckFeed等の情報サイトで好きなものをチェックするとか、Twitterで技術系のアカウントのフォローを増やすとかして、隙間時間にざーっと眺めたり、気になった記事だけでも開いてみて、よかったらブックマークやストックをしておく。

それだけでも情報に触れる機会は増えて、「なんか最近このフレームワークの記事がよく流れてくるな、人気出てきたのかな」といったことが何となくでもわかるようになります。

参考までに好きなサイト書いておきます。

好きなサイト
Qiita
はてなブックマークのテクノロジーカテゴリ
stackoverflow
POSTD
TeckFeed

好きなツイッターアカウント(敬称略)
Qiita
Amazon Web Services
Yukihiro Matsumoto
Dan Kogai

■2.何を学ぶ必要があるか明確にする

そもそもエンジニアの勉強って、「どんな技術があるのか?」「この技術では何ができるのか?」「自分が抱えている課題にはどの技術が役立ちそうか?」などを知って、初めて「自分はいま何を勉強すべきか?」が明確にできるんだと思います。

ですので、具体的な実践に入る前の情報収集は重要です。

例えば、「JavaScriptのライブラリを導入したいから勉強しよう」と思っても、数はたくさんあるし、目的によって最適なものも異なりますから、片っ端から触ってみるのは大変です。

まずは「どういうライブラリがあるのか?」「それぞれどんな特徴があるのか?」「自分の目的に合っていそうなのはどれか?」「使った人の感想はどんな感じか?」といった感じで普段から情報収集をしておいて、「自分にはこれとこれとこれがよさそうかな?」「もうこれ以上は実際に使ってみないとわかんないな!」といったところまで来たら、実際にチュートリアルなどで実践をしてみる……というのがいいと思います。

「次の転職先ではRailsを使っているから勉強しておかねば!」みたいな感じで、既に目的と学ぶべきものが確定している場合はよいのですが、それ以外の場合は情報収集を通して「何を学ぶ必要があるか?」を明確にしていった方がいいです。じゃないと、「この技術の勉強を一生懸命やっていたのに、実はあの技術のほうが適していると後から知った……」ということにもなりかねないので。

■インプットと実践をする

f:id:paiza:20161130143328j:plain
Photo by Kara
情報収集は普段からできているけど、実践的な勉強はつい後回しになっている人は多いかと思います。

大体そういう人は「時間ができたらやる」と言いますが、意識をしなければ時間ができることなんか一生ありません。これも情報収集のように「勉強するしかない」時間を生活の中に組み込んでいく必要があります。

◆3.社内勉強会を定期開催する

paiza運営元のギノでは、有志のエンジニアで業務時間内で開発関連と英語のもくもく勉強会を週一回ずつ実施しています。

これは私が最初に始めたのですが、今は毎週のスケジュールの中に組み込まれています。

最初は、直近の業務に関する調査や勉強だけをしていると狭く深くになってしまいがちなので、もっと知識を横に広げておくために勉強したいと感じていたのと、あと自分一人でやろうとしても業務が忙しいと結局なあなあになってしまいそうだと思い、周りのエンジニアにも声を掛けて始めました。

一人でやろうとすると、正直言ってモチベーションの波に左右されたり、時間がないとか言い訳して中断しまう日も多いと思います。そんな場合は周りの人も巻き込んで、もう勉強するしかない時間を機械的に組み込んでしまった方がよいのです。いつかやろうと思ってても一生やらないですし

と言ってもうちでやってるのはもくもく会なので、↓こんな感じでオフィスの片隅の会議スペースに集まって、一定時間自由に勉強したり、感想や情報を共有したりしているだけです。最近はフロントエンドのフレームワークのチュートリアルをやってみて、感想を言ったりすることが多いです。この時はメンバーの好意でブルボン菓子が提供されました。ブルボン菓子最高。

会社の環境にもよるかと思いますが、可能そうなら週1回1時間ぐらい、どこかで試しにやってみることをおすすめします。

◆4.社外の勉強会に行く

社内で勉強会を実施できない人は、社外の勉強会に行くのもよいと思います。

もくもく会でもきっちり講義形式の勉強会でもいいのですが、これもやっぱり、気分の波に左右されやすい自分を一定時間勉強するしかない環境に放り込むのが目的です。

私は最近、講義+実践形式の機械学習の勉強会によく参加しています。(個人的にですが、手を動かさず話を聞くだけの勉強会は、勉強した気になって自己満になりがちなので、ほどほどに……と思っています)

社外の勉強会は、周りの人と話して、「最近こんな本を読みました」とか「これ使ってみたけどよかったですよ」とか、情報交換できることもモチベーションになっています。

◆5.公式のドキュメントを読んでチュートリアルをやってみる

最近の、特に新しめのオープンソース系の技術というのは「いろんな人に使ってもらって広まってほしい」といった目的があるからか、公式のドキュメントやチュートリアルがかなり充実しているものが多いです。そういったコミュニティが活発になってくると、ドキュメントの日本語訳とかも充実してきますし。

全くのプログラミング未経験者にはちょっとハードルが高いかもしれませんが、既に何らかの開発経験がある人が「このフレームワーク人気だなあ、試してみたいなー」みたいな場合は、公式でドキュメントを読みながら、手を動かしてチュートリアルをやってみるのが一番手っ取り早いし勉強になると思います。

◆6.本を読む

f:id:paiza:20161130143434j:plain
Photo by Brittany Stevens

  • 「内定先ではこの言語を使っているから基礎を学んでおきたい!」など、学ぶべき技術が明確になっている
  • 既に定番化してるものを体系的に追いたい

という場合は、断片的な情報収集をするよりも、書籍を一冊通して体系的に勉強するほうが効率よく正確な知識を得られます。

◇本の選び方

ブクログというWeb本棚サービスは、レビューがAmazonより信頼できると思うので、参考にしています。自分は、ブクログで技術書を探す→そのままAmazonに飛んで、kindle版を買ってiPadで読むのが定番になっています。

有名エンジニアの方が本棚を公開してくれたりしていますから、それも参考になります。

「ネットはするけど本を読む習慣がない」とか「技術書が重い」という人は、絶対にkindleがおすすめなので、ネットする感覚で隙間時間に読みましょう。

ブクログ - web本棚サービス


自分はお金がない新人の頃に、図書館でよく技術書を借りてました。区によって蔵書が異なるので、貸し出しカードを5枚ぐらい持っていたと思います。カーリルという検索サービスを使うと、全国の図書館から蔵書検索ができて大変に便利です。

最新の技術書が何でもすぐに入ってくる…というわけではないですが、古典の良書(リーダブルコードなど)とかは意外とそろっているので、「中身をちゃんと見ないと自分に合うかわからないし…」「予算がない…」という人は借りて読むのもいいと思います。

カーリル | 日本最大の図書館蔵書検索サイト | カーリル

◇技術書の読み方

まず目次でもいいのでざっと目を通して、何となく全体を把握してから、興味のあるところ・役立ちそうなところから読んでみるのがよいと思います。

技術書は物語ではないですから、全体のボリューム感や「何がどこまで書いてあって、どんな知識を得られる本なのか」を知ってから、「じゃあここが必要そうだな」という感じで読み始めれば大丈夫です。

新しい言語を勉強するために初心者向けの本を買ったけど、他の言語でプログラミングした経験はあるから、最初の基礎的な解説は読まなくてよかったな…というパターンは地味に多いですよね。

◆7.オープンソースのコードや、Githubで人の書いたコードを見る

f:id:paiza:20161130143803j:plain
Photo by John Loo
よいオープンソースのコードというのは、Webデザインで言うところのデザインパターンみたいなベストプラクティスが見られるんです、無料で!ある程度コードが読める人、実践でWebサービスを作っている人は、かなり参考になると思います。

個人的にはGitLabのコードとかおすすめです。

GitHub - gitlabhq/gitlabhq: GitLab CE Mirror | Please open new issues in our issue tracker on GitLab.com

◆8.メンターを作って、真似したり追いかけたりする

身近な先輩でも遠くのスターエンジニアでも誰でもいいので、憧れの人や「この人の記事好きだな~」と思える人がいれば、その人の発信する情報を追いかけたり、真似をしてみたりするのが勉強になりますし、「あ~自分もやらねば~」という気持ちになって、モチベーションも上がります。

自分も前職の先輩ですごく尊敬している人がいまして、ブログをチェックしまくったり、その人が登壇する勉強会に行ったりしています。

好きな人がいたら積極的に追いかけたり、真似してみたりするといいんじゃないでしょうか。これもやっぱり一人でやるよりはモチベーションが上がります。

■学んだことをアウトプットして、整理する

f:id:paiza:20210712191132j:plain

◆9.ブログを書く

以前は書籍などを読んでインプットするだけの勉強をしていたのですが、いざ実務となると学んだはずの知識が出てこない場合も多く、「インプットだけでは知識が全然定着しない…どうにかしなければ…」と思って、ブログでアウトプットをすることを始めました。

やはり不特定多数の人へ向けて説明できる文を書こうとすると、自分があいまいなままにしていた部分が明らかになり、それをつぶすためにまた調べる…という行為が必要になって、ただインプットをしていた時期よりも、知識が定着しました。実際に仕事で類似したパターンに出くわしたときも「あっ!これ進研ゼミブログでやったところだ!」といった感じで記憶のフックにもなって、スムーズに対応できるようになりました。

view数とか、今はQiitaで書いているのでストック数とかコメントとかもモチベーションになります。

「アウトプットする時間まで作れない…」という人も多いかもしれませんが、私は仕事が終わって帰りがけにちょっとカフェに寄って書いたりとかしています。頭が休息モードになっちゃってから改めて書こうとしても、切り替えるのが大変だと思いますので、仕事モードなうちに書いちゃった方がよいです。

◆10.業務で使えるものを作ったり、簡単めな仕事を請けてしまう

私は前職ではJavaを使った開発をしていたのですが、Rubyの勉強をしていたときに、会社の端末管理に使えるようなアプリをRubyで作りました。新しく学んだ技術を使って、実際に自分の仕事や生活の中で使えそうなシステムを作ってみる(できれば最後まで作り切ってみる)のがよいです。

あとは過去にココナラというサイトでちょっとした実践的な依頼を受けたりしていて、ちょっと知らなかったことを調べるきっかけになったりしてすごくためになりました。

■まとめ

以上、弊社エンジニアに聞いた勉強法を紹介してきました。

特に、情報収集の習慣や勉強会など、無理のない範囲で勉強になる習慣をつけること、そして自分一人だけで全て学ぼうと思うとそのときのモチベーションに左右されてしまいがちなので、いろいろな形で他人を巻き込める仕組みを作ることが重要かと思います。

paizaで実施しておりますpaizaオンラインハッカソンは、ストーリーやゲーム内に登場するプログラミング問題を解いていくWeb上のハッカソンです。

実践的なプログラミング問題を解いてその場で採点できるだけでなく、回答コードは自由に公開でき、毎回多くの方がブログやSNSなどにご自分のコードを公開していただいておりますので、問題を解く練習や人のコードを見る勉強にもなるオンラインイベントになっております。

詳しくはこちら
paiza.hatenablog.com


また、paizaではS,A,B,C,Dのスキルレベルに合わせて挑戦できるプログラミングスキルチェック問題や、初心者でも動画で学べるプログラミング学習&就活講座「paizaラーニング初心者でも遊べるプログラミング学習ゲーム「コードガールこれくしょんも公開しております。

「独学でプログラミングを学びたい」「一人でやっているとなかなかモチベーションが保てない…」という方もぜひ挑戦してみてください!




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

paizaのスキルチェック

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

簡単なプログラミング演習問題を解いてAmazonギフト券を当てよう!キャンペーン実施中

動画で学べるオンラインプログラミング学習サイト「paizaラーニング」では、2016年11月7日(月)~2016年12月5日(月)までの期間中、paizaラーニングを受講し、演習問題(どのコース・どの演習問題でもOK!)を解いて、表示された結果ページからツイートしていただいた方の中から抽選でAmazonギフト券をプレゼントいたします。

この機会にぜひ初心者でもプログラミングが学べる「paizaラーニング」に挑戦してみてください♪

■キャンペーン概要

開催期間:2016年11月7日(月)~2016年12月5日(月)23:59(※ツイート投稿時間)

プレゼント10,000円分を1名の方に、500円分を20名の方にプレゼントいたします!

※鍵付きアカウントからの応募は無効です。オープンアカウントからの応募をお願いします。

■応募方法

① paizaの公式アカウント@paiza_officialをフォローしてください

f:id:paiza:20151015114857p:plain

② 「paizaラーニング」の動画学習(どのレッスンでも構いません)を受講します。

f:id:paiza:20161107134435p:plain
f:id:paiza:20161108110029p:plain

③ 演習問題(どの問題でも構いません)を解いて、採点を実行します。

f:id:paiza:20161107134607p:plain
f:id:paiza:20161107134645p:plain

④ 採点結果の画面が表示されるので、ツイートボタンを押します。

f:id:paiza:20161107134721p:plain

⑤ ツイートして完了です!!

※ツイート画面に出てきたハッシュタグやURLを削除・改変されますと、抽選の際に無効となりますのでご注意ください。
f:id:paiza:20161108104345p:plain

キャンペーン終了後、当選された方にはTwitterのダイレクトメッセージでお知らせいたします。(抽選時にフォローが外れていた場合やメッセージにご返信いただけない場合、当選は無効となります)

つぶやくだけでAmazonギフト券がもらえるチャンス!ぜひご参加ください!

■「paizaラーニング」とは?

paizaでは、初心者でも動画でプログラミングが学べる「paizaラーニング」を公開しています。

◆「paizaラーニング」を使う4つのメリット

f:id:paiza:20160726140821j:plain
1. 環境構築不要、5秒で学習を開始できる!
これまで、プログラミングを始める初心者にとって最大のハードルだったのが、丸1~2日かかる「プログラミング実行環境構築を構築すること」でした。paiza動画ラーニングでは環境構築不要、ブラウザ上でプログラミング言語を実行できるので、誰でもすぐに学習を始められます。

2. 3分動画で、毎日続けられる!
動画レッスンを見て、その場でレッスン内容をプログラミングすることで理解を深め、その後に練習問題を解いて応用力をきたえることができます。1本3分程度という短い動画なので、毎日無理なく続けることができます。

3. わからないところはプロのエンジニアに質問できるから安心!
わからない点は弊社エンジニアに質問をして、アドバイスをもらうことができます。初歩的なところでつまずいて、やる気を失ってしまうこともありません。

4. エンジニア40万人受験のスキル評価システムに基づいたカリキュラム
paizaが転職サービスで展開する、延べ30万人以上の現役エンジニアが受験したプログラミングスキル評価システムのデータと、paiza掲載の600社以上の求人票を元にカリキュラムを作成。開発現場で役に立つスキルを身につけることができます。

paiza新卒について

f:id:paiza:20150730172136p:plain

paiza新卒は、paizaがITエンジニアを目指す学生の皆さんに向けてオープンいたしました、規定のプログラミングスキルがあれば大手企業からベンチャー企業までエントリーシート選考なしで応募ができる就職活動支援サービスです。

プログラミング問題を解いてスキルランクを獲得した上で企業に応募ができますので、自分のプログラミングスキルのレベルが明らかとなり、プログラミングができる人ほど有利に就活を進めることができます。

Skype面接OKの企業も多数掲載しておりますので、自宅にいながら面接を受けることも可能です。「東京の企業に就職したいけど、地方に住んでいるので交通費が……」「研究で忙しいのに、移動に時間がかかりすぎるのはちょっと……」という人もぜひご利用ください。




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

paizaのスキルチェック

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

ブラウザ上で超簡単にWebサイトが作れる!Bootstrap4対応のWeb制作エディタ「Pingendo」の活用ワザを一挙大公開!

f:id:paiza:20161107150346j:plain
どうも、まさとらん(@0310lan)です。

今回は、マウス操作で簡単に「Bootstrap4」に対応したWeb制作をブラウザ上で行えるサービス「Pingendoをご紹介しようと思います。

以前から、PC向けソフトウェアとしてリリースされていましたが、最近になってベータ版ではあるものの「Chromeブラウザ」からでも利用できるようになりました!

Pingendo

f:id:paiza:20161107154609j:plain
Pingendo」は、基本的にマウスでポチポチとクリックしていくだけで、簡単に見栄えの良いWebサイトが作れてしまう便利なサービスです。

また、中・上級者向けにソースコードもすべて編集可能になっているので、自分好みにカスタマイズすることも出来るのが特徴となっています!

■基本的な使い方!

それでは、実際に「Pingendo」を使いながら、どのようなサービスなのかを見ていきましょう。

利用するにあたり、面倒な登録やインストールなどは一切不要なのでぜひ気軽にトライしてみてください!(2016年11月現在)


まずは、サイトにアクセスして「Try now in Chrome」と書かれたボタンをクリックします。
f:id:paiza:20161107154712j:plain
(※ちなみに、隣りにある「Download」ボタンからPC向けソフト「Windows / Mac / Linux」も入手可能です)


エディタ画面が表示されたら、「新規作成」ボタンをクリック!
f:id:paiza:20161107154740j:plain


テンプレートの選択画面になるので、ここではとりあえず「レストランテーマ」を選んでみましょう!
f:id:paiza:20161107154756j:plain


すると、「Web制作エディタ」が表示されて、先ほど選んだテンプレートを編集できる画面になります。
f:id:paiza:20161107154804j:plain


基本的な使い方ですが、まず…ざっくり言うと3つの画面構成になっているのが特徴です。
f:id:paiza:20161107154813j:plain
①は、Bootstrap4で作られた多彩なコンポーネントの選択メニュー
②は、編集用の「エディタ/プレビュー」画面
③は、各パーツのCSSや設定などの調整パネル

となっています。


また、画面下部にある「HTML / SASS」タブをドラッグして引っ張り上げると、自由に編集可能な「コードエディタ」も搭載されているのが分かります。
f:id:paiza:20161107154838j:plain
大抵の場合は、マウス操作でも十分にWebサイトを作っていけますが、この「コードエディタ」を利用することでさらに自分好みに細かく調整できるわけです。


ちなみに、画面上部にある「デバイス切り替え」メニューを使えば、タブレットやスマホなどの表示状態もすぐに確認できるので便利です!
f:id:paiza:20161107154847j:plain
ここまでの内容さえ分かってしまえば、あとは自分が作りたいWebサイトを組み立てていくだけです!

■Webサイトを作ってみよう!

もう少し詳しく解説するため、実際に簡単なWebサイトを1つ作りながら「Pingendo」の各機能を見ていきましょう!


Webサイトをゼロから作りたいので、まずはテンプレート画面から「ブランク(空っぽ)」を選択してください。
f:id:paiza:20161107154918j:plain


すると、プレビュー画面が空っぽの白紙状態になると思います。
f:id:paiza:20161107154929j:plain


この白紙ページに、配置したいコンポーネントをどんどん追加していきながら、自分がイメージするWebサイトを完成させていくのが基本的な作業の流れになります。


まずは、左側のメニューからいろんなパターンのコンポーネントを配置したいのですが、上部にいくつかのアイコンが並んでいるので好きなモノを選択してみましょう。
f:id:paiza:20161107154941j:plain


実は、このアイコンを切り替えることで、用途に応じた画像に自動変換されるようになっています。
f:id:paiza:20161107154949j:plain
飲食系、ビジネス系、ファッション系、IT系など、プロトタイプをサクッと作るのに最適な機能なのでぜひ活用したいところ…。


今回はビジネス系のアイコンを選択し、フルサイズの「トップ画面」用コンポーネントを選択してみましょう!
f:id:paiza:20161107155005j:plain


白紙ページにコンポーネントが追加されるので、あとはテキストを好きなように入力しておきます。
f:id:paiza:20161107155014j:plain


「ボタン」は今回不要なので、要素を選択してから「バックスペースキー」を押すか、右クリックから削除します。
f:id:paiza:20161107155023j:plain


同じ要領で、トップ画面の下段にもう1つコンポーネントを追加します。
f:id:paiza:20161107155030j:plain
もし、テキストの「カラー」や「配置」、各要素の「クラス名」「余白」などの調整を行いたければ右側にあるメニューから簡単に指定可能です。


もちろん画像なども変更可能で、その場合は右メニューに表示されている画像をクリックします。
f:id:paiza:20161107155040j:plain


すると、あらかじめ「Pingendo」が用意している画像を選べるようになります。
f:id:paiza:20161107155048j:plain


自分がクラウドサービスなどに保存している画像も、リンクを指定すれば利用可能です。
f:id:paiza:20161107155057j:plain


こんな感じで、自分のイメージに近いコンポーネントを次々と追加していけば、すぐにWebサイトがカタチになっていくのが分かります!
f:id:paiza:20161107155104j:plain


ある程度カタチになってきたら、「PAGE」タブに切り替えて「タイトル」「サイトの概要」「ファビコン」「カラーテーマ」などの基本設定を済ませておけばOK!
f:id:paiza:20161107155111j:plain

■作ったサイトを公開してみる!

ここまでの作業で、Webサイトのカタチがなんとなく見えてきたので、HTMLファイルに書き出して公開してみたいと思います。


まず、画面下段のコードエディタを表示させて、「HTML」タブに記述されているソースコードを全部コピーします。
f:id:paiza:20161107155155j:plain
あとは、普段自分が使っているテキストエディタ(メモ帳とかでも可)にソースコードを貼り付けて「index.html」などのファイル名で保存すればOK!


ブラウザで「index.html」を開くと、先ほど作ったWebサイトがしっかりと閲覧できるのが分かると思います。
f:id:paiza:20161107155205j:plain
つまり、このままファイルをサーバーにアップロードすれば、すぐにWebサイトを公開することが出来るわけです。


試しに、GitHubへソースコードをアップロードし、「GitHub Pages」を使ってWebサイトを公開してみましょう。

GitHubのサンプルページ
f:id:paiza:20161107155231j:plain


アップロードが完了したら、「Settings」ページにあるGitHub Pagesの項目で、「master branch」を選択すれば公開完了です!
f:id:paiza:20161107155240j:plain
以下のリンクをクリックすると、Webサイトを閲覧することができます!


「サンプルサイト」のリンク


ちなみに余談ですが、「Pingendo」は2016年11月時点でSSLにまだ対応していないため、GitHub PagesのようにSSL対応しているサーバーにアップロードする場合は、当然ながらリンクを「https://〜」に変更するかファイルを用意するなどの対応が必要です。


このような対応も含めて、今回の「サンプルサイト」の全ソースコードをぜひ参考にしてみてください!


全ソースコード|GitHub

■HTML/CSS/Bootstrapの学習レッスン動画公開中!プログラミング学習コース

f:id:paiza:20160830130051j:plain
paizaでは、動画を通してプログラミング等が学べる「paizaラーニング就活パック」で、未経験者でも始められるHTML/CSS入門編を公開中です。こちらはHTML/CSSだけでなくBootstrapの使い方も学べる講座となっております。

HTML/CSSやBootstrapは、簡単なページデザインであればテンプレートを当てはめるだけで作成することができますが、少しでも「手を加えたいな…」「ここだけ変更したいな…」となった場合は、基本的なコードの書き方が理解できていなければできません。

paizaラーニング就活パック」は、企業からの「こんな開発スキル・知識を身につけている学生がほしい」という要望と、ITエンジニア志望の学生からの「就活を上手に進めるためにはどうしたらいいのか」という悩みに応えるための特別コースです。

もちろん学生だけでなく、既卒の方、社会人の方、どなたでも受講いただけます。

単純なプログラミングスキルだけでなく、業界・キャリアに関する知識やWeb周辺の知識の習得、選考用ポートフォリオとなるサービス作成までを行える就職特化型の講座内容になっております。

youtu.be

■まとめ

今回は駆け足で「Pingendo」の基本的な使い方をご紹介しましたが、もっとじっくり作り込めば本格的なWebサイトも構築できると思います。


また、搭載されている「コードエディタ」と照らし合わせながら構築することで、少しずつBootstrapの仕組みも理解できるようになるのでオススメです。


現時点で、まだ「ベータ版」というのもあり、シンプルな機能に特化していますが、今後もバージョンアップが行われると思うので、ご興味ある方はぜひ今のうちにトライしておきましょう!




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

paizaのスキルチェック

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

ディレクターも営業も…非エンジニア職こそSQLを学ぶべき理由と初心者向け学習コンテンツ

f:id:paiza:20161130142147j:plain
Photo by Delwin Steven Campbell
f:id:paiza:20140916135428p:plainこんにちは、谷口です。

皆さんは普段お仕事でSQLを使っていますか?

ITエンジニア以外の職種だと、「自分では使えないので、データがほしいときなどはエンジニアに依頼している」という方も多いと思います。

ただ自分でSQLが使えないと、今すぐデータがほしいのに確認できるまで時間がかかったり、エンジニアの仕事を増やしてしまったりして、双方にとって面倒が増えてしまう場合もあるかと思います。

「エンジニアじゃないんだからSQLなんてわかんないよ!」と思われるかもしれませんが、既に運用中のデータベースから基本的なデータ取得をするのであれば、自分で基本的なSQLの使い方を覚えた方が、マーケティングや営業、分析や企画といった業務も捗るはずです。

今回はSQL初心者の方に向けて、ブラウザ等でSQLを書きながら学べるコンテンツをご紹介します。

■エンジニアが思う、SQLができないデメリットとメリット

◆SQLできる人がエンジニアだけな場合のデメリット

◇エンジニアが開発に集中できない

ディレクター「このデータとこのKPIとこのページの訪問者数を取得してください」
エンジニア「はい」
営業「それが終わったらこの売り上げデータとこのデータを取得して~」
マーケティング「この数値とあれとこれと~」
エンジニア「」

エンジニアでない方は、「プログラミングとかやったことないしSQL書くなんて無理!」と思われるかもしれません。

が、エンジニアの本業は開発なので、あまりにもデータ抽出の依頼が増えると開発工数に影響が出てしまいます。特に忙しいときに依頼が集中すると「開発に集中したいのに…」と思われてしまいます。

◇テーブル設計もわかってない人がむちゃくちゃなデータ抽出を依頼してくる

ディレクター「今月このコンテンツに来たユーザーのデータとあのKPIとそのDAUとあれとこれとそれの数値を紐づけたデータがほしいんですけど~」
エンジニア「どのデータもテーブルの中で全く紐づいてないから無理ですね!!」

SQLができる人が少ない現場にいるエンジニアに話を聞いていると、「テーブルの中身も全然わかっていない人からむちゃくちゃなデータ抽出を依頼されて、『そこから説明しないといけないのか…』ってなったことがある」という人が結構いました。

DBの中身を全て理解できなくてもよいので、自分がKPI等の数値を持っている部分の構造だけでも理解できていると、このような面倒は減らせるはずです。

◆エンジニア以外の人がSQLを学ぶメリット

◇必要に応じて、数値の抽出から分析まで自分の手元でできる

データ取得が完全にエンジニア任せだと、「こういうデータがほしい」という依頼をして、開発の手を止めて取得してもらう…足りないデータがあると気付いたからまた依頼をして手を止めて取得してもらって……といった感じでデータ分析までに時間がかかってしまう場合もあるかと思います。

数値を追っている人が取得から分析までワンストップでできれば、「他の人にとってもらったデータが思ってたのとちょっと違った…」「見たい数値が取得できていない!」ということも起こりませんし、「今月だけこっちの商品の売り上げデータとも比べてみたいな」という場合も必要に応じて好きに対応できます。

エンジニアを通す手間も省けて、必要に応じた企画等のPDCAのスピードも上げられるでしょう。何よりエンジニアの手を煩わすことがなくなりますから、エンジニアの方もより開発に集中できるようになります。

◇どこでどんなログが吐かれているかがわかるようになり、エンジニアとの仕事もスムーズになる

SQLが書けるようになり、自分で数値を取得できるようになると、例えば「自分が企画をしたゲームコンテンツに対し、来訪ユーザーの情報や行動遷移はどこまで細かくログとして取得できるか」など、担当事業の何が可視化されているのか、どんなデータが出せるのか・出せないのかといったことがわかるようになります。

どんなログがあるのかしっかり理解できていると、数値をもとにした分析や改善もより的確にできるでしょう。

これがわかってくると、例えば新コンテンツを開発しようとなったときに、「このログはこう吐いておくようにしてもらえますか?」といったことが言えるようになります。「新たなログ設定は不要だな」という場合も設定前に把握できていれば、エンジニアの手間を省くこともできます。

■SQLの学習コンテンツ紹介

かつてはSQLの勉強をしようと思うと、一から環境設定をして、練習用のDBを構築し、ようやくSQLを書いてみる……といったステップが必要だったため、環境構築で挫折してしまう人も多かったですが、最近は基本のSQLの読み書きがすぐに学べて、オンラインで実行できる学習コンテンツが増えています。

これらを使って学習をすれば、エンジニア以外の方でも自分でSQLを書いてビジネスの分析に必要な、基本的なデータ取得ができるようになるでしょう。

SQLZOO

f:id:paiza:20161101204230p:plain
対応言語:英語・中国語
料金:無料

SQLZOOは、オンラインで出題されるSQL問題を解くと、実行結果が出力される学習コンテンツです。

f:id:paiza:20161101205711p:plain
問題は、「SELECT basics」から始まって「SUM and COUNT」や「JOIN」、さらに複雑な応用問題など複数用意されていますので、自分のレベル感に合わせて挑戦・学習できます。

最初の問題はこんな感じ。フランスの人口を取得するSQLをドイツの人口が取得できるように書き換えましょうということですね。
f:id:paiza:20161101204336p:plain
英語か中国語にしか対応していませんが、そこまで難しいことは書いてないので英語が苦手な人でも翻訳ツール使いながらなんとかなると思います。

paizaラーニング「SQL入門編1・2」

f:id:paiza:20161025195153p:plain
対応言語:日本語
料金:今だけ無料

動画で学べるオンラインプログラミング学習サイトpaizaラーニングpaizaラーニング「SQL入門編1・2」です。

f:id:paiza:20161101210922p:plain
現在、入門編2の追加キャンペーンとして、2016年11月7日(月)までの期間限定で「DB/SQL入門編1」「DB/SQL入門編2」をあわせて無料で公開しております。(※通常時は入門編1は月額課金プラン加入者のみ視聴可能となっております)

f:id:paiza:20161101210825p:plain
DB/SQL入門編」は、SQLのオンライン実行環境と構築済みのDBを使うことで、初心者でも環境構築で挫折することなく、動画と演習問題を通してSQLの実践的な書き方がすぐに学べて身につく講座となっています。

Oracle Application Express

f:id:paiza:20161101211545p:plain
対応言語:英語・スペイン語・ドイツ語・韓国語・日本語
料金:無料
オラクルが提供しているOracle Application Expressでは、ブラウザ上でDB作成・SQL実行をすることができます。

f:id:paiza:20161101212523p:plain
本来はWebアプリケーション開発ツールですが、SQL文を試せる「SQLワークショップ」というチュートリアルのような機能がついているので、これを使ってSQLを学べます。ユーザー登録をして、フリー・ワークスペースから始めましょう。

Codecademy

f:id:paiza:20161102110809p:plain
対応言語:英語
料金:無料
プログラミング学習サイトとしておなじみのCodecademyでもSQLが学べます。

これはイントロダクションの画面ですが、こんなふうに左側に問題が出るので、中央のエディタに回答のSQL文を書いて実行すると、右側に実行結果が表示されます。
f:id:paiza:20161102111018p:plain

SQL学習 -分かりやすい説明とオンラインでの練習

f:id:paiza:20161102111230p:plain
対応言語:英語・フランス語・日本語・ドイツ語
料金:無料

こちらのサイトでもオンライン上でSQLの問題を解いて実行ができます。
f:id:paiza:20161102112756p:plain

SQLを書いて問題を解くだけでなく、選択制の知識を問う問題も出題されますので、体系的にSQLやDBの知識を学びたい人におすすめです!
f:id:paiza:20161102112800p:plain

SQL攻略 - 実行すれば理解できる!

f:id:paiza:20161102114055p:plain
対応言語:日本語
料金:無料

基本情報処理技術者とITパスポート試験の対策としてのSQLの問題練習サイトですが、もちろん資格取得が目的でない方でもSQLの基礎を勉強できる内容になっています!

こちらでも構文について学んだ後に、オンライン上でSQL問題を解いて実行し、結果を見ることができます。
f:id:paiza:20161102114113p:plain

改訂第3版 すらすらと手が動くようになる SQL書き方ドリル

改訂第3版 すらすらと手が動くようになる SQL書き方ドリル (WEB+DB PRESS plus)

改訂第3版 すらすらと手が動くようになる SQL書き方ドリル (WEB+DB PRESS plus)

こちらは書籍ですが、SQL実行環境アプリの入ったCDが付録でついており、実際に手を動かしてSQL文を書きながら学べる書籍です。

初心者がつまずきがちなSQLの書き順の解説や、「SQUAT」というアプリでSQL文の反復練習ができるため、初心者の方で「本を使って勉強したい!」という人にはぴったりだと思います。

ドットインストール

f:id:paiza:20141014152641p:plain
対応言語:日本語
料金:基本無料((プレミアム会員は月額¥880)
プログラミング学習でおなじみのドットインストールにも、動画でSQLを学べる講座があります。

「MySQL入門」「PostgreSQL入門」「SQLite入門」「PHPデータベース入門」等、学びたい環境に適した講座がありますし、有料会員になればわからないことをスタッフに質問することもできます。

逆引きSQL構文集

f:id:paiza:20161102131431p:plain
対応言語:日本語
料金:無料

こちらはSQLの各コマンドの機能について調べられる構文集です。

逆引きなので、勉強中でも実践中でもよくある「こういう処理がしたいときってどのコマンド使うんだっけ?」というときに便利です。このサイトに限らず、書籍でもいいので自分でリファレンスとして調べられるものを用意しておくとスムーズに勉強できると思います。

■まとめ

SQLはITエンジニア以外のさまざまな職種の方にも、「ビジネスでの数値分析に役立つスキル」として需要が高まっていますので、学んでおいて損はありません。

プログラミングをしたことがない方は「難しそう…」と思われるかもしれませんが、既に運用中のDBから特定のデータを取ってきて表示させるような基本のSQL構文は、そこまで難しいものではありません。

まずはオンライン上の環境でSQLを書いて実行し、「どう書くとどんなデータが表示されるのか?」といったことを試してみると、気軽に学習を始められるかと思います。

■現在無料公開中のDB/SQL入門編以外にも多数の学習レッスン動画が揃ったプログラミング学習コース!

f:id:paiza:20160830130051j:plain
paizaでは、DB/SQLの他にもJava、Ruby、Python、C言語、HTML/CSS、JavaScript等、多数の学習動画が視聴可能な「paizaラーニング就活パック」を好評公開中です。

paizaラーニング就活パック」は、企業からの「こんな開発スキル・知識を身につけている学生がほしい」という要望と、ITエンジニア志望の学生からの「就活を上手に進めるためにはどうしたらいいのか」という悩みに応えるための特別コースです。

もちろん学生だけでなく、既卒の方、社会人の方、どなたでも受講いただけます。

単純なプログラミングスキルだけでなく、業界・キャリアに関する知識やWeb周辺の知識の習得、選考用ポートフォリオとなるサービス作成までを行える就職特化型の講座内容になっております。

youtu.be




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

paizaのスキルチェック

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

paizaのおすすめコンテンツ

PPG proken プログラミングゲーム「初恋 プログラミング研究会〜海に行こうよ〜」 PPG Bingo プログラミングゲーム「コードレビューBINGO!!」
paiza転職 paiza新卒 EN:TRY paizaラーニング 記事内に記載している情報は、記事公開時点でのものとなります。 Copyright Paiza, Inc, All rights reserved.