非エンジニア人事必見! 優秀な学生エンジニアを見分ける5つの質問
※今回の記事は一部(かなり)ネタが混じっているので真剣に捉え過ぎないでください。
最近の学生で多いのが、就活で面接・面談時に、
「学生時代こんなアプリケーションを作りました! (どやぁ)」
っていうのをよく見たし聞きました。
エンジニアからすると
「いやいやそれデータベースにデータ入れて、それとってきただけじゃん」
みたいな。
それでも技術を知らない人から見ると「す、すげぇ! 君は優秀だ! 即採用!」
みたいになってしまうんですね。
確かに、アプリケーションを作って公開するのは素晴らしい。
でもそんなん1ヶ月あれば出来ますから!
というわけでそんな
にわかエンジニアと
本当に優秀なエンジニア
を見分ける質問を5つ用意したので人事の方や、就活中のエンジニア学生は必見!
CASE1 : 学生「Pinterest風のUIでさらにスクロールすると読み込むんです!」
ただjQuery masonry使っただけー!
それでさもすごいUIを作りました的な学生にする質問はこちら!
「すごいねーこのプラグイン作ったのにどれくらいかかったの?」
いやいやただ元々あるやつ使っただけなんですけどね。
あえてプラグイン作ったと聞いてみましょう。
すると学生も「あ、いや、元々こういうプラグインがあって…」
ってなるはず。
というわけでここでのポイント
オシャレなUIは大抵jQueryのプラグインがある!そしてそれを使うだけなら全然すごくない!
学生へ
オリジナルのjQueryプラグインを持って行きましょう。
プラグインを作れる = javascriptでのオブジェクト指向がわかるにもなるので。
作り方はこちらの記事を参考に
jQueryプラグインの作り方 ~ 重要な3つのポイント ~ - nigoblog
CASE2 : 学生「チームで一つのWEBアプリケーションを作りました!」
私はチームプレイも出来まっせアピールゥゥ!
このような学生にはこう聞きましょう。
「ほうほう。Gitコマンドのエイリアスはどう設定してる?」
と聞きましょう。
そもそもGitを使えていることは前提。ここで「 ? 」となるような学生はGitを使えてないでしょう。
コマンドにエイリアスを登録するレベルまでたくさん使っているならばok
ここで「いや、Subversionを使ってるんですけどね」
と返されたら「そうなんだ。うちはGit使ってるけど」と返しましょう。(SubversionじゃなくGitを使っていれば)
というわけでここでのポイント
複数人で開発していてGitを使っていないのはNG!
学生へ
大抵の会社はGitなりSubversionを使っています。学生のうちに是非覚えておきましょう。
使い方はこちらの記事を参考に
GitとGithubの使い方~超初級編~ - nigoblog
CASE3 : 学生「RailsでWEBアプリケーションを作りました!」
まぁフレームワークくらい誰でも使えるよね。
こういう学生にはこう聞きましょう。
「なるほど。ちなみにそのWEBアプリケーションどれくらいのトラフィックに耐えられる?」
なかなかサーバー負荷まで考えている学生はいないのでは?
当てずっぽうで「同時に10,000件くらいは…」
と来たら、「どんな感じで負荷テストしたの?」
とさらに追撃しましょう。
ここでのポイントは
サーバー負荷まで考えられるレベルなら優秀!
学生へ
インフラのことも少しは考えましょう。
CASE4 : 学生「学んだことはブログでアウトプットしてます!」
えらいえらい。で、ブログでやる意味は?
なんかアウトプットとかいう言葉を使うといいと思っている学生にはこう聞きましょう。
「今までどんなキーワードでSEO対策した?そしてそのデイリー訪問数どれくらい?」
そうそうブログは見られないと意味がないですからね。
そこで学生は「いや、自分のメモ代わりに使っているだけですから…」
と屁理屈をいうことでしょう。
そういう学生には
「は? だったらエバーノートにでも書いとけよ。ブログは読まれてなんぼだ。読まれないブログなんかに価値はない」
とここまでいうと嫌な人になっちゃうので適当に「しっかりしてるねー」とでも言っておきましょう。
ここでのポイントは
ちゃんとWEBメディアの運用を意識しているかどうか?作ることが目的になっていないかどうかをちゃんとチェックしましょう。
学生へ
ブログに限らず、WEBで何かを公開するならちゃんと分析してKPIを意識しましょう。
KPIについてはこちら
理想のアジャイル開発から流行りのアジャイル論争に参入してみる - nigoblog
Google Analyticsの使い方 ~数字を追ってwebマーケティング~ - nigoblog
CASE5 : 学生「自分のサイトに独自のレコメンドアルゴリズムを入れました!」
ここまでのポイントをことごとくクリアしてきた優秀な学生。
最後の見せ場。レコメンドアルゴリズムを持って来ました。
こんな生意気な学生にはこのような質問を。
「おぉ! 独自のレコメンドということはオリジナリティがあるってことだよね? 単純に『距離による類似度計算』や『k平均法によるクラスタリング』をしているわけじゃないんだ。どんなアルゴリズムか教えてくれるかな?」
…最初に言ってしまう!黒柳徹子メソッドですね。
ここまで言ってしまうと学生は話すことがない状態です。
逆に
「そうですね。私はさらに類似度計算の高速化でこういうアルゴリズムを入れています」
などそんなレベルが来たらそれはもう優秀です。
ここでのポイントは
どっかネットで上がっているアルゴリズムをコピペしていなかをチェック。
最近はなんでもWEBで探せますからね。
学生へ
オリジナルのアルゴリズムを使うまでは行かないまでも、アルゴリズムくらいできるアピールをしましょう。
アルゴリズムについてはこちら
モンティ・ホール問題のシミュレーションをしてみる - nigoblog
プログラマーは今こそアルゴリズムを書くべき!!~モンテカルロ法でπを計算してみよう(コードあり)~ - nigoblog
レコメンドアルゴリズム超入門 - nigoblog
まとめ
今回はネタが多いのであまり本気にし過ぎないようにしていただけると幸いです。
それでも重要なこともいくつかあるので、何が重要かを見極めて、参考にしてください。
関連記事
jQueryプラグインの作り方 ~ 重要な3つのポイント ~ - nigoblog
GitとGithubの使い方~超初級編~ - nigoblog
理想のアジャイル開発から流行りのアジャイル論争に参入してみる - nigoblog
Google Analyticsの使い方 ~数字を追ってwebマーケティング~ - nigoblog
モンティ・ホール問題のシミュレーションをしてみる - nigoblog
プログラマーは今こそアルゴリズムを書くべき!!~モンテカルロ法でπを計算してみよう(コードあり)~ - nigoblog
レコメンドアルゴリズム超入門 - nigoblog
関連図書
Git・Githubに関してはこちら

- 作者: 大塚弘記,渡辺修司,堤智代,森田創,中島聡,A-Listers,はまちや2,川添貴生,井上誠一郎,近藤宇智朗,ヒノケン,後藤秀宣,佐藤鉄平,mala,奥野幹也,伊藤智章,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2012/06/23
- メディア: 大型本
- 購入: 13人 クリック: 143回
- この商品を含むブログ (18件) を見る
Railsのサーバー環境に関してはこちら

- 作者: 黒田努
- 出版社/メーカー: インプレスジャパン
- 発売日: 2013/03/22
- メディア: 単行本(ソフトカバー)
- クリック: 3回
- この商品を含むブログ (1件) を見る
KPI分析に関してはこちら

- 作者: 小川卓
- 出版社/メーカー: 翔泳社
- 発売日: 2012/08/17
- メディア: 大型本
- 購入: 1人 クリック: 6回
- この商品を含むブログ (3件) を見る
レコメンドアルゴリズムについてはこちら

- 作者: Toby Segaran,當山仁健,鴨澤眞夫
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/07/25
- メディア: 大型本
- 購入: 91人 クリック: 2,220回
- この商品を含むブログ (267件) を見る
Githubの使い方 Rails編 ~railsプロジェクトをGithubのリポジトリにアップ~
Githubでプロジェクトを作成する場合、
っていう流れ。
一方Railsでプロジェクトを作成する場合、
- rails newでプロジェクトを作成
- git initでgit環境構築
という流れでプロジェクトが別々に作成されてしまう!
という疑問が出てきたのでGithubのリポジトリにrailsのプロジェクトを作る方法を説明します。
Githubでリポジトリを作成
普通に作成します。
特別なことはしません。
ちょっと進んだGit, Githubの使い方~ブランチ活用編~
以前Gitの超入門的な記事を書きました。GitとGithubの使い方~超初級編~ - nigoblog
今回はそこから一歩進んで、これぞGitというような使い方を説明していきます。
この記事を読む前に最初に上の記事を読むことをおすすめします。
- ブランチとは?
- ブランチの作成
このような流れで説明します。
ブランチとは?
突然ですが、gitのロゴ(上部画像)の左側の図。何を示しているかわかりますか?
このロゴは
- マスター
- ブランチ
を表しています。
マスター、ブランチの使いどころ
例えばあるサイトに新しく新機能を追加させたいという時があります。しかし、既存のサイトになるべく手を加えないで完璧な状態で新機能をリリースしたいという状態になりがちです。リリース前ならば新機能の追加はそのままできるのに、ユーザーがたくさんいる状態ではなかなか既存のコードに手を付けられない。そういう時にブランチ機能を使います。
具体的には?
例えば、あるブログポータルサイトがあるとします。そこに新たにランキング機能を追加したい。その時に、ランキングブランチを作成します。ランキング機能はそのブランチのみにどんどん作っていき、最終的に完成したらマスター(既存のサイトのソースコードがある場所)にマージ(組み合わせ)します。
すると既存のサイトは通常運営しつつ新機能の作成がリスクなくできます。
ブランチの作成
というわけで早速ブランチの作成の方法をみていきます。
まずリポジトリがあるディレクトリで次のコマンドをうってください。
git branch -a
これはブランチを見るコマンドでオプションの 「 - a 」はリモートのリポジトリのブランチを見るオプションです。結果はつぎのような感じになります。
* master remotes/origin/HEAD -> origin/master remotes/origin/master
緑の文字がローカルのリポジトリのブランチで
赤の文字がリモートのリポジトリのブランチです。
つまり現在はリポジトリにブランチが無い状態です。
では早速ブランチを作成します。
git checkout -b test origin/master
checkout はブランチ移動するコマンドでオプションに「 - b 」をつけることで新しくブランチを作りつつ、そのブランチに移動するというコマンドです。
また
git branch -a
で確認すると
master * origin/test remotes/origin/HEAD -> origin/master remotes/origin/master
となり、新たにブランチが作成されたことがわかります。
この状態で
index.html
などに変更を加えてみましょう。その後、それが正しく表示されているかどうかを確認してください。
次に、index.htmlをコミットします。
git add index.html git commit
詳しくはGitとGithubの使い方~超初級編~ - nigoblogを参考に。
最後にリモートにブランチを追加します。
git push origin test
そして
git branch -a
で確認すると
master * origin/test remotes/origin/HEAD -> origin/master remotes/origin/master remotes/origin/test
のようにリモートにブランチが追加されたことがわかります。
githubなんかでも確認してみるとよいでしょう。
確認後、よければマージしてマスターに機能を追加します。
それには次のコマンドを使います。
git checkout master git merge test git push
するとテストの内容がマスターに追加され、新機能として反映されます。
以上駆け足でしたが、ブランチの使い方でした。
ここまでが私が現在扱えるgitの使い方です。
これから新しく学んだ便利な使い方はどんどんブログにアップしていくのでよろしくお願いします。
GitとGithubの使い方~超初級編~
今日のテーマはGitとGithubの使い方!!
Git、Githubの順に説明します。
Git
Gitとは分散型のバージョン管理システムです。
次の図を元に簡単に説明します(落書き…)。
図1. gitのイメージ
このようにローカルで開発したものをリモートのリポジトリに置くことによってバージョン管理を行います。
ローカルからソースコードを持ってくることもできます。
さらにgitはステージングエリアとリポジトリの段階があり、ステージングエリアにまず置いてから、リポジトリに置く。
リポジトリは本番環境みたいな認識でOKです。
また、それぞれローカルでもリポジトリを置くことができるのが分散型のメリットです。
ざっとリポジトリの作成からバージョン管理までのコマンドを説明します。
コマンドはいずれもプロジェクトのディレクトリで入力します。
リポジトリの作成
git init
ステージングエリアにファイルを追加
git add ファイル名
リポジトリにステージングエリアのファイルを追加
git commit
この時、vimが起動されるので追加したものや状況などをメモって下さい。vimの使い方については前回参照- vimの使い方~超初級編~ - nigoblog
ログや状態を見る
git log git status
Github
Githubはリポジトリを公開するためのwebサービスです。GitHub · Build software better, together.
コードを公開したり公開してるコードをみたりすることができます。
使い方は次の通り
以上の流れでソースコードを公開します。
ユーザー登録
ユーザー登録は最初の画面にでかでかと書いているのでアクセスするとわかります。
リポジトリの作成
リポジトリの作成もnew repositoryというようなところがあるのでそこをクリックします。
するとリポジトリの名前や公開、非公開などの選択をし、作成します。
これでGithubにリポジトリが作成されました。
リポジトリをローカルにコピー
リポジトリを作成したいディレクトリ上で次のコマンドを入力します。
git clone リポジトリのURL
リポジトリのURLはgit@github.com:nigohiroki/LightsOut.gitのような感じのがリポジトリページの上の方にあるのでそれを入力します。
ローカルのリポジトリにファイルをアップする
先ほどのGitの説明を参考に。
関連記事
Githubの使い方 Rails編 ~railsプロジェクトをGithubのリポジトリにアップ~ - nigoblog
ちょっと進んだGit, Githubの使い方~ブランチ活用編~ - nigoblog
参考図書まとめ

- 作者: 大塚弘記,渡辺修司,堤智代,森田創,中島聡,A-Listers,はまちや2,川添貴生,井上誠一郎,近藤宇智朗,ヒノケン,後藤秀宣,佐藤鉄平,mala,奥野幹也,伊藤智章,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2012/06/23
- メディア: 大型本
- 購入: 13人 クリック: 143回
- この商品を含むブログ (18件) を見る
登録関連で躓いた方はこちらを

- 作者: 濱野純(Junio C Hamano)
- 出版社/メーカー: 秀和システム
- 発売日: 2009/09/19
- メディア: 単行本
- 購入: 31人 クリック: 736回
- この商品を含むブログ (155件) を見る

- 作者: 岡本隆史,武田健太郎,相良幸範
- 出版社/メーカー: 技術評論社
- 発売日: 2012/07/10
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 103回
- この商品を含むブログ (23件) を見る