11月6日〜11月7日の学習内容

11月6日(月)の学習内容

N予備校プログラミングコースの「プログラミング入門Webアプリ」

第2章「準備をしよう」

06.シェルプログラミング

07.通信とネットワーク

08.サーバーとクライアント

09.HTTP通信

10.通信をするボットの開発

11.GitHub で Web サイト公開

12.イシュー管理と Wiki によるドキュメント作成

13.Git と GitHub の連携

 

まで学習を進めました。

シェルスクリプトで簡単なプログラムを組んだり →06.シェルプログラミング

HTTPサーバーを立てたり →09.HTTP通信

1時間ごとにニコニコ動画のランキングデータを取得するBotを作ってみたり →10.通信をするボットの開発

なかなか面白かったです。

 

後半はGitHubのアカウントを作成して GitHubの基本的な使い方(フォークやクローンなど)を学びました。

 

ただ、13.Git と GitHub の連携 を一通り終えて、Ubuntuを終了後、再度起動しようとした時にvagrant ssh で接続しようとするとpasswordを求められるようになってUbuntuを起動できなくなってしまいました。

途中で誤って.sshディレクトリを削除してしまったのがまずかったっぽいです。

とりあえずVagrantfile内に記述されてるpasswordを入力すれば起動できるということは分かったのですが、

毎回passwordを入力するのは大変なので、結局VirtualBoxVagrantをインストールし直して、環境構築をやり直しました。

 

おかげで前回の復習にもなったので、良かったことにします。

 

そのほか、先週の学習で難しいと感じた

正規表現 →第1章 15.診断機能の開発

・無名関数(アロー関数)→第1章 16.診断機能の組込み

の解説をしていただきました。ありがとうございます。

 

11月7日(火)の学習内容

N予備校プログラミングコースの「プログラミング入門Webアプリ」

第2章「準備をしよう」

14.GitHub への push

15.Git のブランチ

16.ソーシャルコーディング

 

第3章「サーバーサイドプログラミング入門」

01.Node.js

02.集計処理を行うプログラム

03.アルゴリズムの改善

 

 14.GitHub への push

 ローカルでリポジトリを作成してリポジトリに変更を加える→ステージング→コメントを付けてコミット→GitHubリポジトリを作成→GitHubにプッシュ

って流れをやりました。

 

15.Git のブランチ

ブランチとマージの概念を学びました。

ローカルでブランチを作成→ブランチでファイルの変更、コミット→GitHubリポジトリに、作成したブランチをプッシュ

ローカルのブランチをマスターにマージ→GitHubリポジトリにプッシュ

って流れをやりました。

 

16.ソーシャルコーディング

コンフリクトについての解説のあと、コンフリクトの修正とプルリクエストの出し方を学びました。

 

これで第2章「準備しよう」が終わりました。

GitHubを使って複数のメンバーで開発を進める流れがなんとなくイメージできた気がします。

 

続いて第3章「サーバーサイドプログラミング入門」に入ります。

 

01.Node.js

サーバーサイド向けのプラットフォームのNode.jsについての学習です。

nodebrewというNode.jsのバージョン管理のツールをインストール→Node.jsのインストールを行いました。

Node.jsを使って階乗関数のプログラムを作成しました。

 

02.集計処理を行うプログラム

csvファイルのデータから「2010年から2015年にかけて15歳~19歳に人が増えた割合の都道府県ランキング」というものを作成しました。

csvファイルからデータを読み取る→csvファイルからデータを抜き出す→抜き出したデータを連想配列で格納し、データを計算→計算したデータを並び替えて表示

という流れで実装していきました。

 連想配列のMap(文字列を添字として配列)とデータの並び替えの実装の時に出てきたmap関数(配列の各要素に与えられた関数を適用)の部分の理解がまだ追いついてない感じです。

 

03.アルゴリズムの改善

フィボナッチ数列を出力するプログラムの作成を行いました。最初に作ったプログラムは時間のかかる処理だった(指数オーダー)ため、連想配列を使ってメモ化によるアルゴリズムの改善を行いました。

プロファイルツール(nodegrind)を使って処理にかかる時間なども調べました。

 

こんな感じですね。十分に理解できていない部分があるので、授業テキストを読み直したいと思います。