はしばみあきら blog

プログラミングアウトプットするブログ。202010スタート

IT系資格取得に向けて動き出します(てかもう動いてる)

久しぶりの更新です。

昨年末にインフラ系企業の内定をいただき、今年からインフラ系の技術を身につけるため学習しておりました。

そのため、今まで開発系でエラーと戦った内容など更新していましたが、学習モードに入って特にネタもなく。

かといってせっかく作ってきたブログ更新しないのもったいないなと思い、また書いていきます。

資格の学習の経過を書くよ

しばらく内容は上記のようになるかと思います。

インフラ系は色々と資格を取得してなんぼな業界な気がします。

今目指している資格群を、取得宣言の意味も込めて連ねて書きます。

  • LPIC101
  • LPIC102
  • LPIC201
  • LPIC202
  • AWS クラウドラクティショナー
  • AWS ソリューションアーキテクト-アソシエイト

弊社はサーバー系に強くなってねという方針なので。

この辺りはマストで。

そして次のステップとして

この変を取得できれば、さらに上位の資格を目指そうと思います。

特にネスペ!だのデスぺ!だのセキスペ!だの

プレイヤーとして地獄の窯の蓋をあけてみたいなぁとも考えたり。

とはいえ、実務で仕事できなければ資格があろうがなかろうが関係ないですが。

まずはしっかりとITの仕事がどういうものかを現場で学んで進む方向を決めたいです。

LPIC101は合格しました

昨日2021/01/23にLPIC101を受検し、合格しました。

f:id:hashibamiakira:20210124234842j:plain

画像でっかぁ

正答率約87%なので上々かと。

ソッコーで102をものにしてレベル1をコンプしたります。

その後はレベル2ですね。結構難しいと聞くので楽しみです(Mじゃない、チャレンジ精神大盛なんだ)

学習内容はボチボチと更新していこうと思います。

最近買った本


資格試験に超速で合格る勉強法

資格試験に超速で合格る勉強法


勝負に勝つにはまず敵を知ることから。

試験に向けた取り組みを覚えるところから始めようと思い購入した本です。

丁寧にAmazon商品紹介を貼りながら言うのもなんですが、この本ベンダー資格取得にはイマイチ刺さらない内容だなぁ..と感じました。

ただ、何度も何度も繰り返し過去問が重要と書かれており、ネット上でも過去問をどれだけこなすかが重要みたいに言われているので、そこは参考にしていこうと思います。


最近知り合った、とても人生を楽しそうに生きている(キラキラしている)人たちが、口を揃えてこの本を読んだ方がいい!と言うもので。

そこまで言われたら読むかぁ、と思い腰を上げて買いました。

基本的に自分は自分が興味を持った本しか買わないので、人から薦められても読むことはないのですが。

ちょっとずつ読んでいこうと思います。



ボクの心の癒しです。

どんなアイドル本とか猫の写真集とかよりも。

目先はLPIC102

長々書きましたが、目先はLPIC102の取得を目指します。

今週末に受検ブチこんだろうかな。

ではまた。

【Linux】OSって何?からLPICレベル1を勉強する

インフラ系の企業に就職が決まりまして、Linuxの知識が必要になりました。

プログラミングスクールに通い、かつ独学でもプログラミング言語の勉強はしてきたのですが、ネットワークやサーバー側の知識はほとんど初めての状態です。

なので、まずはLinuxLPICの資格取得を目標にしていきます。

LPICってなんぞや?

Linux技術者認定試験「LPIC」とは? 公認テキストから試験問題や学習方法を紹介

LPI認定試験とは
LPI認定(Linux Professional Institute Certification)とは、国際的な非営利団体NPO)である
「LPI(Linux Professional Institute:Linuxプロフェッショナル協会)」が実施している
Linux技術者のための認定プログラムです。

国際的な資格ということか!

これがあれば最低限Linuxは触れるよ、という証明になりますね。

 初心者のLPIC勉強方法

まずさしあたって、LPICの勉強をするために本屋に赴き、平積みされていた参考書を購入しました。

内容はLinuxについてかなり詳しく書かれています。

もちろんLPIC101と102どちらの内容もバッチリ入っていて問題集もついています。

ただLinuxを始めたばかりの自分にとては少しとっつきにくい印象でした。

初めて聞くような専門的な用語もガンガン出たりするので、調べながら進めたり、といった感じになります。

そこでまずはLinuxを学びつつ、LPICの対策をする、という方がいいのかなと感じ別の書籍を購入。

この書籍だとLinuxが一体何者?というところから初めて、LPICの試験に出る内容も入ってきます。

1週間で学ぶということに重点を置いていて、1日毎にここまで進めよう、という目安もあるので自分のような初心者にはもってこいかと感じます。

とりあえずは年末年始これで学習して、1月にはLPIC101までは取得したいな、といったところですね。

LPICの模擬試験をしてみる

こちらで、無料でLPICやその他イフフラ系資格の問題集を試すことができます。

Ping-t

コマンド系を一通り流して挑んだのですが、正答率は25%程度でした笑

いやわろてる場合やないのよほんまに...

資格の取得は大変ですが同じ境遇の人がいれば頑張っていきましょう

業界未経験からエンジニアとして内定を頂きました

今回、未経験からエンジニアとして内定を頂きました。

 

web系の勉強を進めてきましたが、インフラエンジニアとしての採用なので舵を大きく切っての再出発です。

 

まずはLinuxからですが、とはいえviとかシェルの操作も少し触ったので違和感なく進めています。
(ただ可視化できていた部分が全て文字列だからかなり難しい...) 

前職は今年の三月(2020/3)に退職して、プログラミング自体はprogateで去年の九月(2019/9)から始めたので、約1年3カ月くらい勉強したことになります。

 

勉強して分かるのは、個人的に勉強しての1年と、業務に携わっての1年は雲泥の差がありそうだなぁ...ということです。

実務経験を積みながらプログラマーとして動いた方が遥かに成長できると思っています。

 

しかしこのコロナ禍、いくらIT業界といえど求人はガクンと減っていて、さらに未経験となるとかなり厳しい立場だと、転職活動をしながら感じました。

 

自分は今現在大阪で活動をしていますが。

まずは書類が通らないなんてザラで、面接に通ったとしても同じ境遇の人、つまりライバルが多いので採用までいけないです。

 

たまたま、本当に縁があって、年内には無理だろうと思っていたのですが、こうして仕事をすることができることになったので、これまで以上に努力していかねば、という所です。

元々目に見えるフロントとかを目指していましたが、正味狭き門すぎる...

 

それにフロントをしようとすればするほど遠ざかっていた所は否めないんですよね。

フロントを開発しようとする

データをバック側に渡す

バックエンドを勉強する

データベースとのやりとりをしよう

SQLを触り始める

本番環境のデータベースはどうなる?

AWSを学び始める。。。

みたいな感じで。

 

ならいっそ本当に根幹となるインフラから始めるのも一つの選択肢なのではと思った次第であります。

資格の幅も結構広いし、取得すれば肩書き程度にはなるだろうし。

 

就職が決定したとはいえ、覚えることはこれから更に増えていくし、常に駆け出しエンジニアの気持ちで精進していこうと思います。

 

またこれからは、どちらかというと、インフラ系のアウトプットをここでしていこうと思います。

 

あとは今のコロナ禍でのプログラミングスクールはどんなもんなんかい!というのを記事にまとめてみたいなぁとかも思ったり。

 

何はともあれこれからも頑張っていきます。

 

サンタさんはなかなか素敵なプレザントをくれたもんだぜ。(2020/12/25)

【jQuery】複数のselectを用意して、jQueryが動かない時

問題のコード。

$(document).on('turbolinks:load',function(){

  $("#worker_list_num").change(function(){
    $("#select_form").submit();
  });
});

プルダウンを選択した時に動く記述にしたが、複数のプルダウンを用意したら一番最初の部分しか反応しない。

console.log()をつけて動きを確かめる。

$(document).on('turbolinks:load',function(){

  $("#worker_list_num").change(function(){
    // $("#select_form").submit();
    console.log($(this).val());
  });
});

左上のプルダウンしか動きません

解決法

$(document).on('turbolinks:load',function(){

  $(document).on("change","#worker_list_num",function(){
    console.log($(this).val());
  });
});

idに直接ではなく.on()で取得する記述にすると動くようになりました

左上以外のプルダウンも効くようになりました

【Rails】多対多のデータを取得する時に`compute_type'というエラー

モデルに記述するhas_manyとbelongs_toの書き方を間違えていた。

モデル周りをしばらく触っていないとうっかり間違えるということがあるのでメモメモ。

has_manyは複数形、belongs_toは単数形

このルールをすっかり忘れていました。

f:id:hashibamiakira:20201221122228p:plain

thurough: のあとも複数形。

データを取得できました。

【Rails】プルダウンを選んだと同時に保存する【jQuery】

rails で "collenction_select" を使った時に、プルダウンで選んだ瞬間に内容が保存されたらいいなぁ、と思ったのですがなかなか沼ったので書き留めておきます。

フォームを作る

Railsドキュメントより

f.collection_select(メソッド名, オブジェクトの配列, value属性の項目, テキストの項目 [, オプション or HTML属性 or イベント属性])

ドキュメント、理解が難しい...

( ) の中身は左から、

  • htmlに変換した時、この情報をnameやidにする
  • プルダウンの元になる物。@users = User.all みたいに定義して、@usersを入れるとユーザーが全て表示
  • 保存する部分。ユーザーのidを保存するなら、:id のように記述。
  • プルダウンのテキスト。名前を表示するなら :name みたいにしておく。
  • オプションは色々ある模様。今回、プルダウンが選ばれた時なので、:onchange を使います。

人それぞれのコードはあると思いますが、自分の場合こんな感じです。

    tbody
      - @workers.each do |w|
        tr
          th = w.name
          - @calender.each do |c|
            td
              = form_with(model: w, id: :select_form, method: :patch, local: true) do |f|
                = f.collection_select(:list_num, @work_lists, :id, :list_num,{include_blank: true, selected: :list_num}, {:onchange => "submit: this.form"})
                = f.hidden_field :list_day, value: c.strftime("%Y-%m-%d")

f:id:hashibamiakira:20201219195749p:plain

プルダウンの部分には、collection_select の第一引数で何かしらid名が決まっていると思います。

この部分をターゲットとして、JSを実装します。

慣れているので自分はjQueryを使っています。

f:id:hashibamiakira:20201219200256p:plain

id名がついています。

$("#worker_list_num")が変化した時にsubmitされるようにJSを記述します。

$(document).on('turbolinks:load',function(){

  $("#worker_list_num").change(function(){
    $("#select_form").submit();
  })
});

プルダウンの値が変更されたら、フォームのサブミットがされるようにします。

これでプルダウンを選択すると同時に保存がされるようになりました。

collection_selectのオプションの書き方がずいぶん沼りました...

またボチボチ更新していきます。

【Ruby】【Rails】自作カレンダーで、月や週を切り替える

昨日、今月1ヶ月の表示をするカレンダーを作成しました。

今回は、今月から見て翌月や先月、またはさらにその先の配列を取得できるようにしていきます。

前回のコードに付け足していくので、もしよかったらそちらもご覧下さい。
【Rails】【Ruby】Dateを使って今月の日数を配列にして表示

月や週を切り替える

最初にどうやって実装しようか?を考えます。

今回はviewに翌月、前月に移動するリンクを作成し、クリックによってパラメータを変化させ、その分だけ移動させるようにします。

完成形はこんな感じで

まずは翌月、前月のリンクを作ります。

span = link_to "Prev", workdays_month_path(p: @x)
span = link_to "Next", workdays_month_path(n: @x)

パラメターとして、前月はpを、翌月はnを渡します。

リンク先は同じviewにして、パラメーターだけ更新します。

コントローラーでパラメーターを受け取ります。

  def month

    if params[:n].present?
      @x = params[:n].to_i + 1
    elsif params[:p].present?
      @x = params[:p].to_i - 1
    else
      @x = 0
    end
    
    # 現在の曜日と年月日
    @date_now = Date.current.months_since(@x)

    @weeks = ["", "", "", "", "", "", ""]

    firstDay = @date_now.beginning_of_month
    firstDayIndex = firstDay.wday
    @calender = Array.new(35){|i| firstDay + (i - firstDayIndex)}

    @workers = Worker.all

  end

そのままのリンクでパラメーターが何もない時は @x には 0 を入れます。

翌月のリンクが押されたらnを渡して、nが渡されたらパラメータに1を足して @x に代入します。

前月のリンクは逆に、@x を−1しています。

この @x を変化させることで、現在からxヶ月前後を取得します。

Date.current.months_since(@x)

months_since は引数の分の月を取得します。

( ) の中身が1なら1ヶ月後、−1なら1ヶ月前を現在の日時から取得します。

基本的にはこれだけで動くようになります。

viewはまだ作りかけですがこんな感じになってます。

span = link_to "Prev", workdays_month_path(p: @x)
span = link_to "Next", workdays_month_path(n: @x)

#workdays-month
  table
    thead
      tr
        th 月日
        - @calender.each do |c|
          - if c.day == 1
            td = "#{c.strftime("%m")}/#{c.strftime("%d")}"
          - else
            td = "#{c.day}"

    thead
      tr
        th 曜日
        - @calender.each do |c|
          td = @weeks[c.wday]

    tbody
      - @workers.each do |w|
        tr
          th = w.name

一応月初の日だけ月も表示させて、それ以外は日付だけ表示するようにしました。

またボチボチ更新していきます。