👥

面接でRubyとReactのコーディング試験を受けた話

2021/06/24に公開

自己紹介

こんにちは、最近は就活を頑張りつつPaizaで基礎固めをしているにーきこうです。
今日はコーディング試験を受けさせて頂いたので、整理のためにも記事を書きます。

僕の言語経験感

  • Rubyは1年ほど
  • Reactはコーディング試験のお話を頂いてから文法をサラッと学習した程度

Rubyの課題

ユーザーがemailとnameを入力するので、paramsを使ってユーザーを作成してください。

  • 使用言語はRubyのみ
  • IDEは自由

僕の回答

class UserController < ApplicationController

    def new
        @user = User.new(user_params)
    end

    def create
        @user = User.new(user_params)
        if @user.save
            redirect_to root_path
        else
            render action: :new
        end
    end

    private

    def user_params
        params.require(:user).permit(:name, :email)
    end
end

Rubyの総評

レビューして頂いた内容を箇条書きすると、

  • インスタンス変数はViewでも使ってるのかな?と思われるので、Controllerで完結する場合は普通に定義した方がいい。
  • newでuser_paramsをsaveしないし使わないので、書かなくていい。
  • privateでrequireしているのはバリデーションの視点から見て良いと思った。
    といった事を言って頂きました。

Reactの課題

ボタンAをクリックすると、countされた回数が表示されるようにしてください。

  • 使用言語はRubyのみ
  • IDEは自由

僕の回答

import React, {userState}from 'react';

cost Component = () =>{

    inisiate(props){
        this.state = { value : 0 }
    }
    

   clickCounter = () => {
       this.setState({ value : this.state.value + 1});
   }

    return(
        <div>
            <div>
                <button type="button" onClick={this.clickCounter}>
            </div>
            <p className="click-times">
                カウント数{this.state.value}
            </p>
        </div>
    );
}

Reactの評価

多分動かない上に規約に引っかかってたりする恥ずかしいコードです。
JavaScriptの理解がもう少しあれば出来そうなので、JSの知識を付けようと思いました。
レビューして頂いた内容は、

  • まず、関数を使った書き方じゃないとこれは動かない
  • 関数を使わない書き方であれば動きそうではある
  • あとは基本規約であったり言語のルールを理解するべし
    と言ったものでした。本当にその通りです。

今後について

Rubyは書き慣れていることもあって、危なげなくクリアすることができました。
課題はReactですが、今はAWSのSAAと基本情報技術者を取得するために時間を割きたいので、業務で必要でもない限り、積極的に勉強することは多分ないかなと思いました。
コーディング試験は初めてだったので、レビューしてくれるのが本当にありがたかった...。
明日からまた面接頑張っていきます!

Discussion