Happiness Chain 4ヶ月目を終えて

はじめに

今回はHappiness Chain 4ヶ月目の振り返りを記事にしていきたいと思います。  

2024年6月取り組み事項

Linuxコマンドの課題完了

•Gitコマンドの操作手順(途中)

•オンライン英会話 ネイティブキャンプ

反省点

happiness chain の課題が思ったより進まなかった。仕事の残業が多く平日は30分〜1時間ほどの勉強時間しか確保できず、土日も外出しないと行けない日があり、トータルとして勉強時間が少なくなってしまった。またオンライン英会話に夢中になってしまったのも勉強時間が減ってしまった要因と考えている。しかしLinuxコマンドの課題では自分が知らなかったコマンドやオプションという存在を知れたのはよかった点と言える。Gitに関しても知らないコマンドがあったのでしっかりと復習しておきたいと感じた。中弛みしているので勉強を頑張っていきたい。  

来月の目標

Gitの課題を終了させること。 HTMLの課題に着手していること。 オンライン英会話を毎日1レッスン25分を受けること。

よく使うLinuxコマンド集!

1.はじめに

2.cdコマンド

3.pwdコマンド

4.lsコマンド

5.mkdirコマンド

6.rmdirコマンド

7.catコマンド

8.lessコマンド

9.tailコマンド

10.touchコマンド

11.rmコマンド

12.mvコマンド

13.cpコマンド

14.lnコマンド

15.findコマンド

16.chmodコマンド

17.chownコマンド

18.psコマンド

18.killコマンド

1.はじめに

今回の記事ではLinuxコマンドについて解説したいと思いますが、コマンドの説明をする前にディレクトリについて説明します。ディレクトリとはファイルが保存されている場所のことであり、ディレクトリは入れ子構造になっている。一番上のディレクトリはルートディレクトリと呼ばれ 「/」 で表記する。

2.cdコマンド

ディレクトリーを移動するコマンド
略:change directory
書き方

$ cd [オプション][ディレクトリ]

※cd コマンドではオプションを使うことは基本ない

特別なディレクトリの指定方法

ディレクト 意味 指定方法
カレント ディレクト 現在いるディレクト 「.」
ディレクト 一つ上の階層のディレクト 「..」
ホームディレクト 「/home/ユーザー名」ディレクト 「~」
ルートディレクト 「/」ディレクト 「/」

3.pwdコマンド

カレントディレクトリを表示するコマンド

略:print name of working directory

 $ pwd [オプション]

4.lsコマンド

ファイルやディレクトリの中身の一覧を表示するコマンド

略:list

 $ ls [オプション]「ディレクトリ・ファイル」

パス名展開

パス名展開を使うと複数のファイルを一度に指定できる。

記号 意味
* 任意の文字列
? 任意の一文字

-オプションについて-

オプションコマンドでコマンドの動作を変えることができる。ハイフンになにかの記号を続ける形の引数をオプションと呼ぶ。

$ ls -a

意味 :隠しファイルを含めた全てのファイルを表示する

$ ls -l

意味 :ファイルの詳細情報を表示する

※二つ以上の指定も可能

$ ls -a -l
$ ls -al
$ ls -F

意味 :ファイル種別を表示する

5.mkdirコマンド

ディレクトリを作成するコマンド

略:make directory

 $ mkdir 「オプション」<作成するディレクトリ名>

-オプション-

$ mkdir -p

意味:深いディレクトリを一度に作成することができる

$ mkdir -p tset/2019/8

6.rmdirコマンド

空のディレクトリを削除するコマンド。空でないと削除することができない

略:remove directory

 $ rmkdir 「オプション」<削除するディレクトリ名>

7.catコマンド

ファイルの中身を確認するコマンド

略:concatenate

 $ cat「オプション」<ファイル名>

-オプション-

$ cat -n

意味:行番号を表示するオプション

$ cat -n /etc/hosts

8.lessコマンド

ファイルの中身をスクロール表示するコマンド

略:less - oppsite of more

 $ less[オプション]<ファイル名>

-スクロールの操作-

コマンド 内容
スペースキー、f 一画面下にスクロール
b 一画面上にスクロール
j 一行下にスクロール
k 一行上にスクロール
q lessコマンド終了

-検索の操作-

コマンド 内容
/<文字列> 下方向に向かって検索
?<文字列> 上方向に向かって検索
n 次の検索に移動
N 前の検索に移動

9.tailコマンド

ファイルの末尾部分を表示するコマンド

$ tail 「オプション」<ファイル名>

-オプション-

$ tail -n

意味:表示する行数を指定できるオプション

$ tail -f

意味:ファイルの末尾に追加された行を常に表示

10.touchコマンド

空のファイルを作成するコマンド

$ touch <新規ファイル名1> <新規ファイル名2>

11.rmコマンド

ファイル・ディレクトリを削除するコマンド

$ rm[オプション] <削除するファイル名1> <削除するファイル名2>

-オプション-

$ rm -r dir

意味:ディレクトリもあわせて削除することができる

$ rm -f

意味:ファイルを削除する際に警告文を表示しない

$ rm -i

意味:ファイルを削除する前に確認する

12.mvコマンド

ファイルの移動、ファイル名を変更する

略:move

$ move [オプション]<移動前><移動先>

-オプション-

$ move -i 

意味:名前を変更する際に同じ名前のファイルがあったときに確認する

13.cpコマンド

ファイルやディレクトリををコピーするコマンド

略:copy

$ cp [オプション]<コピー元><コピー先>

-オプション-

$ cp -i file new file

意味:上書きする前に確認する

$ cp -r dir new_dir

意味:ディレクトリをコピーする

14.lnコマンド

linuxではファイルに別名をつけることができ、別名をつけるときリンクを貼ると言う。ショートカットのようなもの。

ハードリンク:ハードリンクは一つのファイルに複数の名前をつけることができる。元のファイルを削除しても消えなく、全てのハードリンクがなくなった時に削除される。

シンボリックリンク:リンク先のパス名が書かれた特殊ファイル。シンボリックリンクを残したままファイルを削除したり移動したりすると、ファイルを参照できなくなる

略:link

$ ln [オプション]<リンク元ファイル><リンク名>

※オプションを何もつけないとハードリンクに自動的になる。

-オプション-

$ ln -s

意味:シンボリックリンクを貼る

15.findコマンド

ファイルを検索するコマンド

略:find

$ find<検索開始ディレクトリ><検索条件><アクション>

検索条件

$ find -name

意味:ファイル名を指定して検索。ファイル名の大文字小文字は区別する

$ find -iname

意味:ファイル名を指定して検索。ファイル名の大文字小文字は区別しない

$ find -type f print 通常ファイル
$ find -type l print シンボリックシンク
$ find -type d print ディレクトリ

意味:ファイルの種類で検索

$ find -a

意味:複数の検索条件を指定

16.chmodコマンド

ファイルやディレクトリのパーミッションを変更する

略:change mode

$ chmod [ugoa][+-=][rwx]<ファイル名>
記号 内容
u 所有者の権限
g グループの権限
o その他のユーザーの移動
a 全てのユーザーの権限
記号 内容
+ 権限を追加
- 権限の削除
= 記述した権限にする
記号 内容
r 読み込み
w 書き込み
x 実行する

$ chmod u+r file

chmodコマンドは数値でも指定ができる

$ chmod [8進数の数値]<ファイル名>
パーミッション 数値
r 4
w 2
x 1

$ chmod 755 file

17.chownコマンド

ファイルやディレクトリのユーザーやグループの所有権を変更する

$ chown [オプション] ユーザーorグループ ファイルorディレクトリ

-オプション-

オプション 意味
-c 所有者情報を変更された場合に詳細を表示する
-f エラーメッセージを表示しない
-h シンボリックリンクの所有権も変更する
-R ディレクトリ内の所有権も変更する
-v 所有者変更情報の詳細を表示する

18.psコマンド

実行中のプロセスを表示する

略:process status

$ ps [オプション]

-オプション-

$ ps  aux

意味:全てのユーザープロセスを詳細情報をあわせて表示

19.killコマンド

ジャブやプロセスを終了させるコマンド

略:kill process

$ kill [オプション]%ジョブID
$ kill [オプション]プロセスID

正確にはkillコマンドはシグナルを送信するコマンド デフォルトではTERM という終了するシグナルを送信している

$ kill 4965
$ kill -TERM 4965 

強制終了のSIGKILL

$ kill -SIGKILL 4965
$ kill -9 4965 

『プロになるためのWeb技術入門』――なぜ,あなたはWebシステムを開発できないのかを読んで

目次

1.はじめに

2.リクエストとレスポンス

3.プロトコル

4.ステートフルとステートレス

5.クッキー

6.ポート番号

1.はじめに

今回の記事では課題図書である『プロになるためのWeb技術入門』を読んで語彙の解説をしてみたいと思います。

2.リクエストとレスポンス

リクエストとレスポンスとはクライアントとサーバー間でやり取りしている要求(リクエスト)と応答(レスポンス)のことを指しています。 まず、現在のコンピュータにはクライアント・サーバーモデルの形態が広く利用されており、クライアントとはユーザー自身つまりURL等を送る側のことで、サーバーとはコンピュータの裏側にあり、ユーザーに使える側のことを言います。 クライアントからサーバーに対して要求を送ることをリクエストと言い、これは検索欄にURL等を送ることがリクエストに当たります。 サーバーはクライアントからリクエストを受け取るとクライアントに対してHTML等を返します。このことをレスポンスと言います。 このレスポンスが返されるとクライアント側は返された画面を閲覧することができます。

3.プロトコル

プロトコルとは簡単にいうと通信規格、ルールのことです。クライアントとサーバーの異なるコンピューター間で通信を行うには、どのような情報をどのように扱うかと言ったルールが必要となり、このルールのことをプロトコルと言います。

4.ステートフルとステートレス

ステートフルとはある状態(ステート)を保持することを意味し、ステートレスとはその逆である状態(ステート)を保持しないことを意味します。ステートフルな通信の具体的な例としてはショピングサイトで商品を複数を購入する際に、一点一点決済していたらすごく手間ですよね?なので商品をカートに入れ保存し、時間が経っても商品カートの中身が保持され続け購入ができます。このように後でそのまま活用できる状態にしておくのがステートフルの状態になります。その一方で、ステートレスの例としてはHTTP通信があります。作った人がwebサイトを変えない限りはサイトに何度アクセスしても誰がサイトにアクセスしても表示されるのは同じwebサイトです。

5.クッキー

クッキーとはwebアプリケーションとwebブラウザとの間で情報を交換できるようにしたものです。webブラウザからリクエストを受け取ったwebサーバーはレスポンスを返す時にクッキー(値)を送ります。webサーバーからクッキーを受け取ったwebブラウザは同じwebサーバーにアクセスする時、受け取ったクッキーをHTTPリクエストに入れておきます。webアプリケーション側ではリクエストに入っているクッキーを調べることでアクセスしてきた相手を特定することができます。

6.ポート番号

ポート番号とはコンピューター同士が通信する際に使う通信用のドアのようなものです。コンピューターは画像を送信したり様々なデータの送受信を行なっています。通信を行う際、相手のコンピューターの場所はIPアドレスというネットの住所によってわかります。コンピューターの中は通信用のドアがいくつも用意されており、それぞれのドアには番号が割り振られており、通信するデータにより担当するドアが決まっています。このドアのことを「ポート」と言い、ドアにつけられた番号を「ポート番号」と言います。コンピューターには0番〜65535番までのポート番号が用意されており、大きく3つに分けることができます。0番〜1023番は主にFTP、メールHTTPといった主要な通信用に割り当てられています。1024番〜49151番は様々なアプリケーションが利用するために割り当てられています。49152番〜65535番は独自のポート番号を使って通信を行いたい場合に使用します。

Happiness Chain 3ヶ月目を終えて 

はじめに

今回はHappiness Chain 3ヶ月目の間にできたことできなかったことに対しての反省や振り返りについて記事を書いていこうと思います。

2024年5月の反省と振り返り

できたこと

vimの使い方を知ることができたこと

・web用語を理解することができたこと

・記事を書く習慣が身についたこと

・Ted talks のシャドウングの継続ができるようになったこと

 

できなかったこと

・コーデイングができなかったこと。

 

 

できたことに関して

この一ヶ月間は知識をインプットして、アウトプットするような一ヶ月でした。具体的にはwebの基本的な用語について記事を作成や、vimの操作やvimについての記事を作成をしていました。webの用語に関してはプロトコルDNSサーバーなど未知の単語だらけで大変だと思っていましたが、丁寧に解説してくれている動画を参考に一つずつ理解していきました。またvimに関しては、vimの起動の仕方すらわからなかったですが、今ではある程度のコマンドなら暗記しているぐらいにまでなりました。

Happiness Chainとは無関係ですが、自己学習の一環で英語の勉強をしています。最近はTed talks というスピーチ形式の英語の動画のサイトでスピーキングとリスニングの勉強をしています。英語のスクリプトがサイトにあるのでそれをWordに貼り付けした後に印刷し音読をしています。Ted talks は英語の勉強だけではなくスピーチ自体も興味深い内容なので、新しいスピーチを探しているときはどんな内容のスピーチを聞こうか楽しみです。

 

できなかったことに関して

できなかったことはコーデイングです。記事作成や知識のインプットに時間を使っていたのでVSCodeを開いてコードを書くといったことができなかったです。少しぐらいProgateでコードの勉強をしていればよかったと感じました。

 

6月の目標

6月の目標はHappiness Chainの課題であるHTML・CSSを終わらせることです。

またTed talks のスピーチを週に2個はやりたいと考えています。

 

 

 

 

非エンジニア必見! Web用語まとめてみた

はじめに

こんにちは。みなさんいかがお過ごしでしょうか。GWが終わり時期的には少しだらけてくる時期ではないでしょうか。私はGW期間中は缶詰状態でプログラミングスクールの課題と英語の勉強をしていました。そのおかげもあってかようやくProgateの課題を終わらせることができました。今回の記事ではタイトルにもある通り、IT業界で使われるIT用語について①アプリケーション編②バックエンド編③クラウド編に分けて紹介していこうと思います。

1.アプリケーション編

・アプリケーション

アプリケーションとはコンピュータ上で動く何らかのプログラムのことを指しています。プラットフォームはどこでもよくてモバイル上でもwebブラウザでもデスクトップでも構いません。アプリケーションを理解するにあたってソフトウェアとハードウェアについて解説をしていきたいと思います。アプリケーションはさらにクライアントサイドとサーバーサイドに分類することができます。

 

・クライアントサイド

クライアントサイドとはアプリで見えてる部分のことを指しています。

 

・サーバーサイド

サーバーサイドとは目に見えない部分の処理のことを指していますが、具体的に言うと

私が自分のyoutubeアカウントで他人の動画に対していいねを押した時に、その処理がデータベースに記憶されていいね数がカウントされるなどこういった処理をしているのがサーバーサイドになります。見えてる部分ではなく、ユーザーが何かしらの行動したことによって、プログラムが実行されるときサーバーサイドが必要になってきます。具体的に言うとメールフォームを送る時やアカウントフォームを送る時などです。

 

 

・ハードウェア

ハードウェアとは目に見えて物体として触ることができるものを指しており、具体的にはコンピューター、サーバーネットワークのことを言います。

 

・ソフトウェア

ソフトウェアとはアプリケーションの目に見えない部分を指しています。ソフトウェアはさらにアプリケーション、ミドルウェア、OSの3つに分類することができます。アプリケーションは先ほどの意味で、ユーザー見ることができる部分のことを意味しますが、実際にアプリケーションが動くにはアプリケーション以外の後ろのミドルウェアとOSが必要になってきます。ミドルウェアとOSはハードウェアのコンピュータやサーバーの中に置いてあります。

 

ハードウェア                 ソフトウェア

 

・OS

OSとは人間で言う所の脳みそに当たり、OSによってミドルウェアやアプリケーションが使えるかが変わってきます。OSの代表例はLinux,Mac,windowsになります。

 

ミドルウェア

ミドルウェアはアプリケーションとOSを繋ぐ部分になり、ミドルウェアはwebサーバー、APサーバー、DBサーバーに分解できます。webサーバーはブラウザからリクエストを受け取ったら必要に応じてDBサーバー(保管庫)に問い合わせをしデータを受け取ります。そしてHTML,CSS,Javascriptといったデータを返します。サーバーは平たく言うとサービスを提供するコンピューターのことを指しています。

   

     

      

Webサーバー         APサーバ        DBサーバー   

 

 

・フロントエンド

簡単に言うと目で見える部分のことを言いクライアントサイドのことを指しています。

フロントエンドでよく使用される言語としてはHTMLやCSS、またJavascripyなどがあります、

 

・バックエンド

バックエンドはサーバーからOSまでのことを指しています。バックエンドでよく使用される言語としてはPHP,Ruby,Python等があります。

 

以上がアプリケーション編になります。

 

バックエンド編

API

APIとはアプリケーションに対して命令をした時にアプリケーションができる範囲で

データを提供してくれる仕組みのこと言います。例えば、LINEが公開しているAPIではMessaing APIが有名です。これは自動返信ボットを作ることができ、ヤマト運輸ではこの機能を利用してお届け予定や不在連絡などをLINEで送信しています。APIは自作で作ることもできますが、外部のAPIを連携することも可能です。

 

ドメイン

ドメインとはWeb上における住所みたいもの。〜.comみたいものですが、これがわからないとどのURLを開いたらいいかわからないためドメインは全てのアプリケーションが持っているものになります。

 

DNSサーバー

DNSサーバーとはドメインを正しくつなげるためのサーバーのことで、サイトにアクセスするとき複数のサーバーがやりとりしています。

 

プロトコル

プロトコルとは通信規格のことを指しており、簡単に言うとコンピュータ上でやりとりする際のルールのことです。代表的なものとしてFTP,HTTP,HTTPSがあります。FTPとはファイルをアップロードしたりダウンロードする際の規格になります。HTTPとはコンテンツを送受信する時のルールで主に画像、テキスト、動画などがあります。HTTPSはHTTPを暗号化したものになります。暗号化していない状態で個人情報に関わる情報を送信していた場合、ハッカーがハッキングした際にその情報を見られる恐れがあるため暗号化しておくことで不正利用を防ぐことができます。

 

クラウド

 

・オンプレミス

オンプレミスとは自分でデータを保存管理して自分のPC内で完結させるやり方です。

 

クラウド

クラウドとはオンプレミスの逆で会社が提供しているwebのサービス内で管理・利用するやり方のことです。クラウドサービスというのはSaaS,PaaS,IaaSの3つの領域があります。IaaSは主にインフラ領域に特化したサービスで、PaaSはミドルウェアからOSまでを提供してくれるサービスで、SaaSは全ての領域まで提供してくれるサービスになります。

 

その他

チーム開発の方法

 

ウォーターフォール開発

ウォーターフォール開発とは一つずつしっかり機能を作っていく開発手法のことで変更が起きずらいシステムの開発に適しています。

 

アジャイル開発

アジャイル開発とは機能単位で素早く開発を進める手法のことで細かい修正等に柔軟に対応できるのがアジャイル開発のメリットと言えます。近年ではこの開発手法が取り入れられています。

 

 

 

以上がweb用語のまとめになりますがいかがだったでしょうか。これらの言葉をある程度理解しておけばweb業界で問題なく商談等も行えるのではないでしょうか。それではまた次回の記事でお会いしましょう。

 

参考動画 ※下記動画を見ていただければより理解を深めることができます。

www.youtube.com

www.youtube.com

 

 

 

 

 

 

 

 

 

 

Happiness Chain 2ヶ月目を終えて 

はじめに

今回はHappiness Chain2ヶ月目の間にできたことできなかったことに対しての反省や振り返りについて記事を書いていこうと思います。

2024年4月の反省と振り返り

-できたこと

  • Progate のカリキュラムをほぼ完了できたこと。
  • 英語の勉強を再開できたこと。

-できなかったこと

  • 平日に勉強時間を確保できなかったこと。

 

できたことに関して

ProgateのRuby on rails,Javascript,React,Node.jsのコースを完了したことが4月の大きな進捗になります。各言語の基本的な文法や記法を学ぶことができましたが、完璧に記憶できているわけではないので記事のアウトプットを行い理解の定着をはかりたいと考えています。

また4月からは英語の勉強も並行でしていました。元からある程度の英語の理解はでできるのですが、リスニングが苦手なのでYoutubeで英語を聞き流ししてみたり、英単語帳を見返したりと勉強を再開しました。ただ目標がないと英語の勉強を続けることは難しいと思っているのでTOEFLの試験で90点を目指して勉強をしたいと考えています。

できなかったことに関して

平日に勉強時間を確保できなかったこと。これは普通に自分のせいですね笑。

4月は睡眠が不規則になりがちで疲労が取れず、勉強する体力が残っていませんでした。

それでも30分だけパソコンを開いて勉強をしていましたが、勉強できていない日が目立っていたのを感じずにはいれなかったです。疲労がたまりすぎている時は早めに寝て翌朝に勉強するなど工夫しながら勉強したいと考えています。

 

転職について

直近の転職活動でSESの会社に内定を頂き転職すると記事で報告しましたが、先週、SESの会社の内定辞退をしました。そのため転職せずにHappiness Chainで勉強し自社開発の企業に転職しようと思います。

 

 

 

 

 

 

 

 

 

 

 

 

 

yas@Happiness Chain HEuforia 1ヶ月目を終えて

はじめに

初めまして、yasuです。現在は営業職で働いていますが、転職先の企業が無事決まり6月頃からIT企業で就業予定です。この記事では主にHappiness Chainに入会した理由等を書いていきたいと思います。

Happiness Chainに入会した理由

PHP以外での開発経験と自走できる開発力を鍛えたいと思ったのでHappiness Chain に入会を決めました。X(Twitter)上でHappiness Chainの実績は申し分なくあり、説明会でも自分が叶えたいスキルが身に付くと考え入会を決意しました。実は、Happiness Chainに入会する前は別のプログラミングスクールに通っていました。そこのスクールでは主にPHP/Laravelを用いた開発をしていて実際に実務経験を積むこともできましたが、仕事をしながら開発していたのもあって時間的にも大変なところは多々ありました。ルーティングやコントローラは参考になるコードを見て、少し変更するぐらいで、viewファイルにいたってはファイルを渡されてコピペで開発していたレベルでした。コピペでコードを書いていたおげで時間的には期限内に終わりましたが、なんとなく理解している程度で本質的にはわかっていない箇所がありこのままではまずいと感じました。そのこともあって転職活動がおわったら新たにスクールに入り、自分一人でアプリを作れるレベルになろうと考えていました。

転職活動とHappiness Chainへの入会

2024年2月から転職活動を本格的にスタートしていましたが、同時並行で3月からHappiness Chainの勉強もしていました。もちろん日中は仕事をしていたので仕事と面接と勉強の三足の草鞋でハードな一ヶ月間を過ごしていました。Happiness Chainの勉強は主にprogateの勉強を進めていました。前のスクールでも共同開発に入る前にprogateを触っていましたがHTML,CSSの無料部分までしかしていない状態でした。夜間に転職活動をしていたので1ヶ月間の勉強時間は約60時間でした。平日の夜に1〜2時間程度、土日で5〜6時間の勉強をしていました。4月からは勉強に専念できるのでガンガンタスクを消化していきたいと考えています。

 

Happiness Chainでの目標

Happiness Chainでの目標は冒頭にもある通り①自走力できる開発力を身につけるのと②PHP以外での開発経験です。それぞれ具体的に言うと、①は自作アプリを開発すること②はGo/Python/Ruby/Next.jsの開発経験です。現段階ではPHP以外の言語でアプリ開発をしたいと考えています。まずはprogateの課題を完了させたいと考えています。