Novice Engineer BLOG

プログラミングやITニュースについて発信していきます。ときどき日常

新卒3年目が転職したときのお話 20160811

今回は技術的な話ではなく転職の話。
転職したときの状況とともに転職の進め方についてつらつら書いていきます。

f:id:oooofara_prog:20160803082720j:plain

アジェンダ(←どういう意味?これ)

  1. プログラミング中心の生活に憧れる
  2. 転職決意
  3. 転職先選定
  4. 面接
  5. 退職(難易度:高)
  6. まとめ

1.プログラミング中心の生活に憧れる

前職はSE(システムエンジニア)として働いており、
要件定義から運用保守まで担当。

お客さん「今○○について困っているんだけど、システムの力で解決できないかしら?」
僕「できます!」


僕「(パソコン)カタカタトン(このトン(Enter音)がうざい。もっと静かに押そうよって思う。本当に)


僕「できました!これでお客さんの困っていることが解消されました!」
と簡単に言ったらこんなお仕事。

要件定義から運用保守までの間に、
開発工程というプログラミング言語を使ってシステムを作る作業があって、
その作業の中で、
僕「※デバッグやばっ!」
僕「なにこれくっそ楽し!」
僕「ずっとデバッグしてたい!」
僕「あ~デバッグさん!」
僕「デバッグデバッグデバッグ
と思うようになりました。

デバッグ:プログラムのバグを取り除く作業
 バグ  :虫。初期のコンピュータの中に蛾が挟まっていたことが原因で 不具合が生じたことが由来。
だからeclipse(開発環境)のデバッグボタンは虫の形をしているのか!

2.転職決意

僕「プログラミング中心の生活がしたい!そうだ転職しよう!」
僕は転職を決意した。

3.転職エージェント

別件で知り合った人にITに特化した転職エージェントの人を紹介してもらう。
その転職エージェントの人と転職やらITについてのことを語り合い、
転職先候補を紹介してもらう。
なぜか昼飯をご馳走された。っしゃ!

4.面接

会社休んで面接を受けに行くイメージあったけど、
仕事終わりに面接も可能。19時、20時からとかざら。
担当者の人と相談すれば大丈夫。

いざ面接!
僕「デバッグしたいです。デバッグさせてください。」
僕「ずっとデバッグしたい。デバッグデバッグデバッグ
面接官「・・・」
僕「デバッ・・・」

見事内定!

5.退職(本当難易度高い。めちゃくちゃパワー必要)

退職するまでの流れは大体こんな感じ
①「退職 円満」で検索
②上長に退職することを報告
③面談
④退職願提出
⑤お世話になった人へご挨拶

①「退職 円満」で検索
こんなの調べたって何の解決にもならないことは分かっていたけど、
なぜか調べてしまう。
「退職活動はスムーズに行きました!」「私は円満退職できました!」といったような投稿を見て、 安心したかっただけなんだろうなって思う。。。

②上長に退職することの挨拶
これはまじで難易度高かった。
「すいません。ちょっとお話があるんでお時間良いですか?」
この言葉を言うのにめちゃくちゃパワー使った。
退職する理由とかいろいろ伝えた。
めちゃくちゃ怒れらるんだろうなと思っていたけど、
全くそんなことはなくちゃんと話を聞いてくれた。

③面談
上長、そのまた上長と面談。
ここでは上長に伝えたことをそのまた上長に再度伝える感じ。
形式的な感じ。事業部的には本人の意思を尊重するけど、
人事部から引き止めろと言われているから一応ね、みたいな。

④退職願提出
面談のときに形式上必要だから※退職願を出してと言われたので書くことに。
会社のフォーマットが決まっていればそれにしたがって書けば良いけど、
特に指定がない場合はネットで書き方を探して書けば大丈夫。

※退職願、退職届、辞表の違いってなんだ?
「退職願」「退職届」は一般社員が提出するもので、
「辞表」は役員や公務員が提出するもの。

※じゃあ退職願と退職届の違いは?
 退職願は「お願いです。退職させてください。(願望)」←あとから取消可
 退職届は「俺は会社を退職する。絶対にだ!(意思)」←あとから取消不可

⑤お世話になった人へご挨拶
ちょっとしたお菓子をたずさえて挨拶回り。
思い出話をしつつお世話になったお礼を言いました。

まとめ

今は新しい会社でプログラミング中心の生活をしております。
コーディング→デバッグ→コーディング→デバッグの毎日です。笑
うん。やりたかったことができてる。オッケオッケ
今はJavaやってるけど、今後はSwiftやらRubyをやってみようと思ってます!
絶賛メンター募集中です!!笑

TO BE CONTINUED

初心者がGitを無駄にコマンドラインでいじり倒してみたよ(Mac) 2016/07/16

f:id:oooofara_prog:20160710201346p:plain 昨日前回の続きを書いてきます。つらつらと。。。


え〜っと昨日前回はGitをインストールして(僕はしていない。アップルさんのおかげで。) 、
ユーザー名とメールアドレスの登録までやりました。
さぁいよいよGitをいじり倒す!!

イジリ方

  1. 作業ディレクトリでCreate(作成) & Edit(編集) & Delete(削除)
  2. ローカルリポジトリのCreate(作成)
  3. インデックスにadd(追加)
  4. ローカルリポジトリにcommit(反映)
  5. リモートリポジトリにpush(公開)
    ※()内の日本語は僕の勝手なイメージ

用語説明

・リモートリポジトリ
 どこか遠くにある自分専用もしくは共有のロッカーみたいなもの
  (※めっちゃ遠くにあるけど、いつでも出し入れできちゃう)
・ローカルリポジトリ
 家にある自分専用のロッカーみたいなもの
 (※めっちゃ近くにあるから、いつでも出し入れできちゃう)
・インデックス(ステージングエリア)
 ロッカーに入れる前に漏れがないか確認するための引き出しみたいなもの
 (※やっぱり見直しは大事。そういう場所)
・ワーキングツリー(作業ディレクトリ)
 ロッカーから取り出したものをいじくる勉強机みたいなもの
 (※特になし)

前提条件

GitHubやGitLabのサービスを利用
GitHubやGitLabにアカウント登録済み
・リモートリポジトリがすでに作成されている
GitHubやGitLabにまだアカウント持ってない人は、GitHubGitLabから作成してね
(あれ?リンク先表示されてます?)
(英語読めないって人はお父さんかお母さんを呼ぼう)
詳しい方法は「GitHub(GitLab) アカウント作成 HOW!?」ってググれば一瞬

1.作業ディレクトリで新規ファイル作成

① 任意の場所に作業ディレクトリを作成
僕はルートディレクトリにGitというディレクトリを作ったよ
ターミナル開いて、ソッコーmkdir Gitってたたけばできあがり
Gitの部分は自分の好きな名前で大丈夫
Macでのルートディレクトリとは、DesktopやらApplicationやらがあるところね

② 新規ファイルの作成
よし!ファイルの作成!
といきたいところだけど、まずは①で作成したディレクトリに移動しよう
cd Gitってたたけば移動完了。スーパー簡単マン
移動したディレクトリに新規ファイルを作成してくだせぇ
touch sample.txtとたたけば空のsample.txtが作成される
※sample.txtの部分はなんでも良い。任意

・mkdir
ディレクトリを作成するコマンド
・cd
ディレクトリを移動するためのコマンド
・touch
空のファイルを新規作成するためのコマンド

2.ローカルリポジトリの作成

① ローカルリポジトリの作成
git initってたたけば一瞬でローカルリポジトリが作成される

② ローカルリポジトリが作成されたか確認
ls -aってたたいて「.git」ディレクトリが表示されれば成功!なければ失敗・・
(僕は一度も失敗したことはありません。。1/1回成功)

・ls
これはカレントディレクトリ内のディレクトリとファイルを一覧表示するコマンド
・-a
先頭に「.(ピリオド)」がついている非表示のディレクトリやファイルも全て表示するオプション

3.インデックス(ステージングエリア)に追加

git add sample.txtってたたけば一瞬で追加される。簡単マン
samplet.txtの部分は1.②で作成したファイル名を指定してあげる
※複数ファイルを一気にインデックスに追加したいときは
 ファイル名を半角スペースで区切ってあげる

4.ローカルリポジトリに反映

git commitってたたけばローカルリポジトリに反映される
普通にコマンド打って反映させて、はい終わり!で良いけど、
僕はあまのじゃくなので、疑問に思ったわけですよ。
わざわざインデックスに追加する必要なくね!?と・・・
作業ディレクトリ→ローカルリポジトリで良くね?と・・・
インデックス必要ないじゃ〜〜〜〜ん!! と・・・

いやいや必要あるんです!!

まずローカルリポジトリにcommitするまでの流れを見ていこう
①作業ディレクトリでファイルを編集
②編集したファイルの確認(git diff)
③ローカルリポジトリに反映
とまぁおおまかにはこんな感じだと思う
git diffとは、編集したファイル一覧を表示してくれるコマンド

このコマンドでcommitするファイルを確認して、
git commit -m "返信ボタンが押せないバグ対応ってたたいて
ローカルリポジトリに反映されたとする
-mオプションはcommitするときのメッセージを付与するオプション

念のためもう一回git diffで確認すると・・・

あ〜〜〜!!commitし忘れたファイルがある〜〜〜!!

あ、でももう一回commitすればいっか・・・

NO!NO!NO!

ある機能を追加したり、バグ修正したりしたときは修正したファイルをまとめてcommitするのが定石

なぜ?

いちいち分かれていると、前のリビジョン(バージョン)に戻すときに面倒だから

で話を戻すと、ここで本領を発揮するのが

インデックス!!

commitする前に一度インデックスを経由することでcommit漏れを防いでくれる!!
■インデックスがないと
①作業ディレクトリでファイルを編集
②編集したファイルの確認(git diff)
③ローカルリポジトリに反映(git push)

■インデックスがあると
①作業ディレクトリでファイルを編集
②編集したファイルの確認(git diff)
③インデックスに追加(git add)
④もう一度確認(git diff)
⑤漏れがあればインデックスに追加(git add)
⑥ローカルリポジトリに反映(git push)

と、このような手順になるのでcommit漏れを防いでくれるのだ!めでたしめでたし

ちょっと待て! commitしたいファイルが1個だけだったらどうすんだよ!?
インデックスに追加する必要ないじゃん!

おっしゃる通りです。
ですが安心してください!
そんなときのためにこんなオプションを用意しました!!

-a

git commit -a sample.txtってたたけばインデックスをすっとばして、
一気にローカルリポジトリに反映されるぜ!!

5.リモートリポジトリに公開

git pushってたたけば一瞬で反映される
pushするときにローカルリポジトリとリモートリポジトリのbranchを考慮する必要があるけど、
記事が長くなっちゃうから、それは後日ということで・・・

TO BE CONTINUED

初心者がGitを無駄にコマンドラインでいじり倒してみたよ 20160710

f:id:oooofara_prog:20160710201346p:plain

そもそもGitってなんだ!?

Gitとは分散型バージョン管理システムのことらしい。ふむふむ

じゃあ分散型バージョン管理システムってなんだ!?

分散型バージョン管理システム(以下、DVCS)とは集中型バージョン管理システム(以下、CVCS)と対比されるVCSのことらしい。

それぞれのVCSにはどんなものがあるのか代表例はこちら
DVCS:Git
CVCS:Subversion
今回はGitの記事なので、CVCSについては触れませ〜ん。今後ノリに乗ってきたら書きます(行けたら行くパターンのやつや)

前置きはこのくらいにしておいて、今からGitをいじり倒していきます!

新米プログラマーGitをいじる編

■Gitをいじる環境

Mac OS X EI Captain

■いじるやつの環境

体調良好

まずいじる端末にGitがインストールされているか確認しよう!Let's git --version
ターミナル→git --version でバージョン情報がでできたらOK
git command not found的なメッセージが表示されたらGitをインストールしてね。
どうやってインストールすんだよ!?あ!?って思われた方!必見。
「git インストール方法 教えて あなた♡」でググりましょう。一発で手順出てきます。
ちなみに僕はこんな感じに表示されました。さすがappleさん!最初っからインストールされている!(^^)
f:id:oooofara_prog:20160710202400p:plain ※注 最新バージョンのGitではありません
最新バージョンのGitをインストールしたいって人は「Git インストール方法 最新」とかでググれば一発で手順出てきます。


さぁまずはどういじってやろうか!!!
やっぱり最初はユーザー名とメールアドレスの登録だね
スマホで最初にアプリダウンロードしたら登録するでしょ?それと一緒!
※ここからの作業は全てターミナルでの作業となります!

ユーザー名とメールアドレスの登録
git config --global user.name "お好きな名前"
git config --global user.email "お好きなメールアドレス"
git configってのはgitの設定内容を編集するコマンドです。
--globalオプションってなんだ!?ってなります?ですよね。僕もなりました。
そもそもgit config コマンドにはオプションが付けられるんですよ〜
・git config --system
・git config --global
・git config --local
こんな風に。。。
それぞれのオプションにはどういう意味があるかと言うと設定ファイルが影響する範囲と優先度が違います。
・system:OS環境全体
・global:OSにログインするユーザーごと
・local:リポジトリごと
優先度は、 system < global < local
つまりlocalオプションをつけて設定した情報が最終的に反映されるということです。

ここで余談ですが、configファイルを編集する方法は他にもいっぱい?ではないけどあります。
一つだけ紹介すると以下手順になります。
cd ~(ルートディレクトに移動)
cat .gitconfig(.gitconfigファイルの中身を表示する)
vi .gitconfig(.gitconfigファイルを編集する)
編集したファイルを確認する方法こう!ここをこう!
git config -l
このコマンドでconfigファイルを確認すると他にもなんか設定されていることに気づく。。
エディタだったり色だったり。。。。
ここらへんは割愛しますが「git config 設定一覧 なにがあんの?」でググれば一発で出てきます。

待って!!ここまでいろいろ詰め込みすぎてgit全く触れてない。。。。。やばい。どうしよう。
長くなりそうだから続きは明日(20160711)にでも書こう!!!

新米プログラマー僕はいろいろ詰め込みすぎちゃう傾向があることを知った。
でも分かりやすくするためには仕方のないことだと自分に言い聞かせた。
一つの技術ブログ見て、そこで分からないことあったらまたグーグルさんして、
グーグルさんした先でも分からないことがあってグーグルさんして......
みたいなループに陥ってほしくないのだぁぁぁぁ

見直したら①ユーザー名とメールアドレスの登録って書いてあって、
②が無ぇじゃねーかってなったけど、それはご愛嬌ということで。。。。

TO BE CONTINUED

VirtualBoxとvagrantでCentOSを構築する方法(Mac) 2016/05/29

MacCentOS環境を構築する方法をつらつら書いていきます。

手順

  1. VirtualBoxのインストール
  2. Vagrantのインストール
  3. CentOSのインストールと起動
  4. VirtualBoxからCentOSにログイン

1.VirtualBoxのインストール

そもそもVirtualBoxって何だろうか?

VirtualBoxとは、PCに仮想的なPCを作成し、他のOSをインストールして操作できるフリーのソフトウェアです。一つのPCにPCが2つあるみたいなイメージですかね?笑

例えば、使ってるPCのOSがMac OSだけど、久しぶりにWindows使いたいと思ったらVirtualBoxをインストールしてその中にWindowsインストールすればOK!!

前置きはここら辺にしておいて早速インストールしていきたいと思います。

下記サイトからVirtualBoxをダウンロードします。

Oracle VM VirtualBox

「Downloads」をクリック f:id:oooofara_prog:20160529110717p:plain

VirtualBox 5.0.20 for OS X hosts」の「amd64」をクリック f:id:oooofara_prog:20160529110855p:plain

Finderのダウンロードフォルダにダウンロードされるので、「VirtualBox-5.0.20-106931-OSX.dmg」をクリック

「VritualBox.pkg」をクリック f:id:oooofara_prog:20160529111959p:plain

「続ける」をクリック f:id:oooofara_prog:20160529111803p:plain

「インストール」をクリック f:id:oooofara_prog:20160529111820p:plain

これでVirtualBoxのインストールは完了です!


2.Vagrantのインストール

そもそもVagrantって何だろうか? →よく分かりません。笑 なんか、CentOSの仮想環境構築をより早くできるソフトウェアだという認識です。詳しいことは分かりません。。。すいません。。

ではVagrantをインストールしていきます。

下記サイトからvagrantをダウンロードします。

Vagrant by HashiCorp

「DOWNLOAD」をクリック f:id:oooofara_prog:20160529113036p:plain

MAC OS X」の「Universal(32 and 64-bit)」をクリック f:id:oooofara_prog:20160529113101p:plain

Finderのダウンロードフォルダにダウンロードされるので、 「vagrant_1.8.1.dmg」をクリック

Vagrant.pkg」をクリック f:id:oooofara_prog:20160529113354p:plain

「続ける」をクリック f:id:oooofara_prog:20160529113429p:plain

「インストール」をクリック f:id:oooofara_prog:20160529113438p:plain

これでVagrantのインストールは完了です!


3.CentOSをインストールと起動

基本的にはターミナルで下記コマンド順に入力すればインストールおよび起動は完了します。

  1. vagrant box add {title} {url}
  2. vagrant init {title}
  3. vagrant up
  4. vagrant ssh

0.事前準備

まずはCentOSをインストールするフォルダを作成します。 僕は「Users/user/」配下にCentOSというフォルダを作成しました。 ターミナルで「mkdir CentOS」と入力してEnterを押せば作成できます。

1.vagrant box add {title} {url}

{title}には自分が付けたいとタイトルを、urlにはVagrantbox.esからコピーしたURLを入力します。 今回はCentOSを構築するので、「Search」に「CentOS」を入力して一番上に表示された行の「Copy」をクリック f:id:oooofara_prog:20160529120628p:plain

僕の場合は下記コマンドとなりました。

vagrant box add CentOS7_64 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box

この処理には時間が掛かるので、一旦Have a break Have a kitkatでもしましょう!

最終行に

box: Successfully added box 'CentOS7_64' (v0) for 'virtualbox'!

と表示されれば完了です。

2.vagrant init {title}

{title}には「1.」で入力したtitleと同じものを入力します。僕の場合は下記コマンドとなりました。

vagrant init CentOS7_64

この処理はおそらく一瞬で終わります。

3.vagrant up

このコマンドで仮想マシンを起動します。

default: /vagrant => /Users/user/CentOS7_64

と表示されれば完了です。

ちゃんと起動できたか不安なときは vagrant statusを実行して

default running (virtualbox)

と表示されればOKです!

4.VirtualBoxからCentOSにログイン

VirtualBoxを起動し、「CentOS7_64_default...」をダブルクリック f:id:oooofara_prog:20160529140342p:plain

f:id:oooofara_prog:20160529141211p:plain localhost login: root

Password:vagrant

と入力してEnterをクリックすればログインは完了です!

以上で新米プログラマーふみの初ブログは終わりです。 ありがとうございました。