gakkie プログラミング 備忘録

tech::expert(現tech camp) 45期

Find the first non-consecutive number

問題

  • 連続していない配列の最初の要素を見つけること
  • 連続していないということは,配列の前の要素よりも正確に1つ大きくないこと
function firstNonConsecutive (arr) {
  //初期化i=0、要素数-1がiより大きい場合が真の場合以下をくり返す。最後にiに1を足す。
  for(let i = 0; i < arr.length - 1; ++i){ 
    //index番号 = 値ではない場合、値を返す。
    if (arr[i] + 1 !== arr[i + 1]) {
      return arr[i + 1] //arr[i + 1]
    }
  }
  return null
}

いつもありがとうございます。

Find the first non-consecutive number

【スキルの棚卸し】未経験から受託企業に入り1年経ったので、学んだスキルを全部書いてみる

はじめに 

2019年7月にキャリアをスタートさせました。 Railsエンジニアとして1年でいろいろなことを学んできたので、簡単にまとめてみます。

いろいろなキャリアの積み方があるのでどれほど成長できてるのかは不明ですが、ほんの一例としてご参考ください。

経歴

・調理士学校卒  パソコンには一切触れず ・レストラン、結婚式場で5年勤務  パソコンには一切触れず ・2018/10〜 某エンジニアスクールで学習開始 ・2019/01〜 卒業 ・2019/05〜 家庭の事情があり、ようやく就職活動を始める。 ・2019/07〜 就職 ・2020/7 現在(2年目)

1年で学んだこと

1)技術関連

Ruby/Rails

入社してから4ヶ月くらいは毎日触っていました。 入社当初よりだいぶ読むのに抵抗が無くなったなと思ってましたが、別PJに移ると、同じRailsでもすんなり読めない箇所が結構出てきたので、まだまだ甘いんだなと痛感しました。

要件を機能にまで落とし込むこと(ステータスを持たせるべきか、ステータスの種類としてどれを選ぶべきか等)非常に苦労した覚えがあります。 byebugを使ってどんなデータが入っているか確認する癖はここでつきました。 他にはwebとスマホでも使うようにするためUIとUXを分けて考える必要があったため非常に勉強になりました。 特にスマホは画面が小さいためUIのでデザイン設計は苦戦しました。

業務フロー的に機能の設計〜開発を担当し、お客様と何度も要件を擦り合わせ、完成後本番環境に移行した後もしばらくはバグ対応などで苦労しました。

ステージング/本番環境へのデプロイ

機能実装をして毎週のようにデプロイ作業を行なっていました。 本番環境でなぜか動かないなどの現象が起き必死てバグ修正をしていました。 rails assets:precompileなどを忘れてただけということがありました。

SQL

必要なデータを調べたり、お客様からの要望で欲しいデータを集める時に使いました。 本で学習することも大切ですがsqlに関しては現場で書くことが一番身につく方法だと思います。

Git

チームでのgit開発方法について学べました。スクールではGitHubGUIを使っていたためCUIには抵抗がありましたが、使っていくうちに慣れました。

Java

スクリプト原語の他に1つコンパイル言語を学びたい理由でJavaを始めました。 PJにもアサインされここでは簡単な機能実装や保守を担当しました。

2)顧客対応,スケジュール管理

タスク/スケジュール管理

お客様の要望の全てを、Googleスプレッドシートで管理したりエクセルの使いかたはここで学んだ気がします。 Googleスプレッドシートを爆速で活用するための基本&応用の関数10選

タスク進捗、WBSGoogleスプレッドシートで管理 そもそもWBSとは?から学びました。 結論非常に苦労しました。WBSを書くにはスタートからゴールまでわかっていないと書くことができないので。

[補足]次の1年でやりたいこと

今後学びたいスキルを書いていきます。 開発に力を入れたいです。

※ アドバイス等あれば嬉しいです。

Rails

基礎力が低いことを通感しました。 原点に戻って、基礎からサッと復習したいなと思います。 Ruby on Rails チュートリアル プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで 現場で使える Ruby on Rails 5速習実践ガイド

社内で書かれてるコードを読むのも勉強になるので、自社のPJのコードを積極的に読んで行きたいと思います。

JavaScript

実務であまりJavaScriptを触っておらず、エンジニアとして結構な弱点だと感じています。 まずはじっくり生JavaScriptに慣れていこうと思います。(今後の需要を考えてVueやReactではなくTypescriptを学びたいと思っています。)

開眼! JavaScript――言語仕様から学ぶJavaScriptの本質

改訂新版JavaScript本格入門 ~モダンスタイルによる基礎から現場での応用まで JavaScript Primer まずはこの辺りを参考にする予定です。

IT基礎

知識不足を日々感じます。 まずは基本情報でIT基礎を網羅的に頭に叩き込みます。

その後Linux SQLあたりも、王道めな技術書をざっと読んで早く頭に入れてしまいたいです。

チームリーダー

チームをマネジメントしてPJを成功に導くと経験、 書くメンバーのスキルを把握し適切なタスクを振り分けるスキルを身に付けたいです。

突破力

ググり力は上がりましたが、基礎知識不足のせいか諦めて社内の人を頼ることも多々ありました。 ベースの力をつけるのはもちろん、その上で分からないことも粘り強く最後まで諦めないようにして、突破できる力をつけたいです。 ただ仕事なので、これ以上無駄だと判断したらタイミングよく見切るクセもつけたいです。

なるべく意識してるのですが、この境目がなかなか難しいです。

windows 設定備忘録

想定読者

macユーザー
新しいPJでWindowsPCを支給され操作にストレスを覚えた人

書いた目的

WindowsPCの設定方法を調べ直すのが面倒なため備忘録としてまとめた。

実行環境

windows10

1.InsertキーとCapsLockキーを無効化

記事参考にコピペしてください。

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,00,00,3A,00,00,00,52,E0,00,00,00,00

2.文字切り替えを変換キーで行う

3.よく使う単語の登録方法


※おまけ。よく使うコマンド又はショートカット
OSのバージョンを確認する方法
  1. キーボードのWindowsキーを押しながら、[R]キーを押します。 ...
  2. [ファイル名を指定して実行]画面が表示されるので、[名前]欄に「winver」と入力し、[OK]ボタンを選択します。
  3. [Windows のバージョン情報]画面が表示されるので、バージョンを確認します。
スクリーンショット

[windows]+[prtscr]又は[shift]+[windows]+[s]

Javaアプリ1

コードかき下し勉強法

やり方

【メリット】

  • 頭が整理される。
  • 理解していないと書くことができない(理解度を図ることができる。)

【デメリット】

  • 時間がかかる。

標準入力で数字を渡すとき
初めの値に6000をかけ次の値に4000をかける。
例)4 1

学習のため実際の処理を書き下し文にしてコメントアウトに残した。

import java.util.*;


public class Main {
    public static void main(String[] args) {
        //標準入力を渡してScannerクラスのインスタンスを新規作成し、Scanner型で作成した変数scに入れろ。
        Scanner sc = new Scanner(System.in);
        
        //変数scから次の行を取得し半角スペースで分割。String[]型で作成した変数pointsStrに入れろ。
        String[] pointsStr = sc.nextLine().split(" ");
        
        //String[]型の変数pointsStrの要素の数を渡して、int[]型のインスタンスを新規作成し要素の数をint[]型の変数pointsに入れろ(要素の宣言と配列の確保を同時に行う。)
        int[] points = new int[pointsStr.length];
        
        //int型 変数iの初期値0、変数iが変数pointsの要素より小さい場合繰り返す、変数iに1を足す。
        for(int i = 0; i < points.length; ++i) {
            //String[]型 変数pointsStr[i]を渡しstringをintに変換する。int[]型変数points[i]に入れろ。
            points[i] = Integer.parseInt(pointsStr[i]);
        }
        System.out.println(points[0] * 6000 + points[1] * 4000);
    }
}

rails tutorial (rails6)備忘録

【環境】
mac OS Mojave
・バージョン10.14.6
Visual Studio Code

学習テーマ rails tutorialの勉強の備忘録として残す。

rails6の環境構築

mba-2:rails6_tutorial #(myname)$ gem install rails -v 6.0.0

ERROR:  Loading command: install (LoadError)
        dlopen(/Users/#(myname)/.rbenv/versions/2.5.1/lib/ruby/2.5.0/x86_64-darwin18/openssl.bundle, 9): Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
  Referenced from: /Users/#(myname)/.rbenv/versions/2.5.1/lib/ruby/2.5.0/x86_64-darwin18/openssl.bundle
  Reason: image not found - /Users/#(myname)/.rbenv/versions/2.5.1/lib/ruby/2.5.0/x86_64-darwin18/openssl.bundle
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

#rails6はruby2.6.0以上から使えるようなのでinstallする

mba-2:rails6_tutorial #(myname)$ rbenv install 2.6.0
ruby-build: use openssl from homebrew
Downloading ruby-2.6.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0.tar.bz2
Installing ruby-2.6.0...
ruby-build: use readline from homebrew
Installed ruby-2.6.0 to /Users/#(myname)/.rbenv/versions/2.6.0
mba-2:rails6_tutorial #(myname)$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin18]

#2.6.0に変更する

mba-2:rails6_tutorial #(myname)$ rbenv global 2.6.0
mba-2:rails6_tutorial #(myname)$ ruby -v
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]

#rails6をinstall
mba-2:rails6_tutorial #(myname)$ gem install rails -v 6.0.0

rails newまで

mba-2:rails6_tutorial #(myname)$ rails -v
Rails 6.0.0
mba-2:rails6_tutorial #(myname)$ source <(curl -sL https://cdn.learnenough.com/yarn_install)
mba-2:rails6_tutorial #(myname)$ (23) Failed writing body

mba-2:rails6_tutorial #(myname)$ yarn install --check-filesPlease run rails webpacker:install Error: No such file or directory @ rb_sysopen
bash: yarn: command not found
mba-2:rails6_tutorial #(myname)$ rails _6.0.0_ new hello_app

#成功。ここでmasterにpush
mba-2:rails6_tutorial #(myname)$ bundle install

#Bundle complete! 17 Gemfile dependencies, 75 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

rails s しかし。。。。

mba-2:hello_app #(myname)$ rails s

するとエラー発生。

エラー内容

/Users/#(myname)/.rbenv/versions/2.6.0/lib/ruby/gems/2.6.0/gems/webpacker-4.2.2/lib/webpacker/configuration.rb:95:in `rescue in load': Webpacker configuration file not found /Users/#(myname)/projects/rails6_tutorial/hello_app/config/webpacker.yml. Please run rails webpacker:install Error: No such file or directory @ rb_sysopen - /Users/#(myname)/projects/rails6_tutorial/hello_app/config/webpacker.yml (RuntimeError)

run rails webpackerをしろと言われているので実行

mba-2:hello_app #(myname)$ rails webpacker:install
Yarn not installed. Please download and install Yarn from https://yarnpkg.com/lang/en/docs/install/

エラーどうやらyarnをinstallしないとけないようだ。yarnをインストール

mba-2:hello_app #(myname)$ brew install yarn
mba-2:hello_app #(myname)$ rails webpacker:install
Webpacker successfully installed 🎉 🍰

image.png

今回はここまで

参考にした記事(いつもありがとうございます。)

Rails6 Webpackerでエラーが出た

【エラー解決】SSH接続したにも関わらず push,pull するときに毎回passphraseを求められる問題

【問題】

SSH接続したにも関わらず push,pull するときに毎回 password passphraseを求められる問題

【原因】

SSH接続を設定したとき $ ssh-keygen この後に表示される Enter passphrase (empty for no passphrase): でenterを押すべきところ、 password passphraseを入力していた。

【解決方法】

$ ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/${user_name}/.ssh/id_rsa): 
/Users/${user_name}/.ssh/id_rsa already exists.
Overwrite (y/n)?$y
#enter×2 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
この後
enter×2回
$ cat ~/.ssh/id_rsa.pub
#SSH 鍵の公開鍵をコピー
#GitHubのPersonal settingsからSSH keysに情報を登録。

参考にした記事(いつもありがとうございます)

https://backlog.com/ja/git-tutorial/reference/ssh/

エラー解決 GitHub error “fatal: bad config file line 74 in .git/config”

macOS Mojave バージョン10.14.6(18G2022)

Cloud9でgitのaliathの設定をし終えた時

gakkie:~/environment/rails_tutorial/sample_app $ git config -e                                                                                                                                                                                                                   
fatal: bad config line 76 in file .git/config

.git/configの76行目にエラーがある。

gakkie:~/environment/rails_tutorial/sample_app $ vim .git/config
#76行目を修正

gakkie:~/environment/rails_tutorial/sample_app (hogehoge) $ vim .git/config
#ブランチ名が表示される、エラー表示もなくなった。