- バックエンド / リーダー候補
- PdM
- Webエンジニア(シニア)
- 他19件の職種
- 開発
- ビジネス
ここで書くのは基本的なことなので、実際の面接ではもう少し複雑な問題になるかもしれません。
逆にいうと、このあたりの問題は一度は解いておいた方がいいので列挙しました。
普段ウェブの開発をしているだけでは考えたことがない場合もあるので、一度確認するといいかもしれないです。
アルゴリズム
チェックポイント
計算量, ハッシュと二分木, ソート, 再帰
計算量
計算量の話 http://qiita.com/cotrpepe/items/1f4c38cc9d3e3a5f5e9c
二分探索とは https://ja.wikipedia.org/wiki/%E4%BA%8C%E5%88%86%E6%8E%A2%E7%B4%A2
Binary Searchのコードを書いてみよう http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_4_B
Binary Searchの計算量は?
C++のSTL (Standard Template Library)の使い分け http://qiita.com/h_hiro_/items/a83a8fd2391d4a3f0e1c
rubyのArray#include?とArray#bsearchとSet#include?の挙動の違い http://pocke.hatenablog.com/entry/2014/11/27/224651
ソート
ソートについて https://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%BC%E3%83%88
Quick Sortのコードを書いてみよう http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_6_C
再帰
再帰とは https://ja.wikipedia.org/wiki/%E5%86%8D%E5%B8%B0
メモ化の話 http://blog.h13i32maru.jp/entry/20101016/1287227174
フィボナッチ数列を解いてみよう http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_10_A
その他参考URL
Algorithms and Data Structures http://judge.u-aizu.ac.jp/onlinejudge/topic.jsp?cid=ALDS1
ex) String Search http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_14_B
ex) Multiple String Search http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_14_D
Interview Question(Algorithms) https://github.com/MaximAbramchuck/awesome-interview-questions#algorithms
ex) Ruby Algorithms https://github.com/sagivo/algorithms
僕は、この本の初級・中級あたりが解けるように勉強しました
Database
チェックポイント
Index ScanとSeq Scan, n+1問題, redis(インメモリデータベース), トランザクションとロールバック, 同時実行制御, SQLインジェクション
学習になるサイトリンク
Join, Group By, Orderの実行方法の確認 http://techlife.cookpad.com/entry/2016/07/06/094332
n+1問題 http://ruby-rails.hatenadiary.com/entry/20141108/1415418367
RailsエンジニアのためのSQLチューニング速会 http://engineer.wantedly.com/2015/12/17/rails-sql.html
-> Index ScanとSeq Scanの違いは
プログラマが知っておくべき、メモリ/ディスク/ネットワークの速度まとめ http://qiita.com/awakia/items/c8ada6c8101efe2de561
トランザクション http://qiita.com/komattio/items/838ea5df68eb076e8099
同時実行制御 http://qiita.com/jshimazu/items/ce6e1f6435890ae5be46
その他参考URL
isucon5 https://github.com/isucon/isucon5-qualify
isuconはデータベースのチューニングを学ぶ上ではいい問題が多い
isucon5はデータベースがネックだったので取り組んでみると力試しになります
RDBMS解剖学
自分はこの本を読んでDBの仕組みがよく分かった
同時実行制御(postgres) https://www.postgresql.jp/document/9.4/html/mvcc.html
プラスα WAL, レプリケーション
Redis 本番障害から学んだコードレビューの勘所 http://qiita.com/haminiku/items/43bafbb9d74ef3a1f74c
テーブル設計
チェックポイント
正規化を行った設計ができるか
設計におけるメリットとデメリット
パフォーマンスを考慮した設計
実例
変更履歴を持つテーブル設計 http://qiita.com/ak-ymst/items/2e8e92f212c807bb09a1
RDSの正規化の方法と、正規化を崩す方法 http://blog.goo.ne.jp/xmldtp/e/2a35412416a6f9b56f194d69d09f94bb
SQL アンチパターン
http://qiita.com/iwata@github/items/9a47ddababd8e0a82662
Naive Trees(素朴な木) http://qiita.com/hirashunshun/items/06adf4f42f03a9f3b63d
EAV (エンティティ・アトリビュート・バリュー) http://qiita.com/deme0607/items/a89319014bc007f09f5c
プアマンズ・サーチエンジン http://qiita.com/avvmoto/items/988fa795f10cf351287a
Web関係の知識
チェックポイント
httpって実際にはどのようなデータとして送られているか?見るためにはどうする?
POSTメソッドとGETメソッドは、実際にhttpの通信の中身だとどう違うか?
レスポンスヘッダってなんのためにある?2系と3系と4系と5系の使い分けは?
リダイレクトはどんな風に起きている?
キャッシュって何が起きている?キャッシュのコントロールは、配信側でどのように行なっているか?
RESTとは何か?
セッションは何か?cookieとsessionはどのように連動しているか?
学習になるサイトリンク
WebAPIについての説明 http://qiita.com/busyoumono99/items/9b5ffd35dd521bafce47
超絶初心者のためのサーバとクライアントの話 http://qiita.com/shuntaro_tamura/items/ae55b99deb9e2a170754