メモ帳

個人的な備忘録と感想文

Angular環境構築


今度新人にAngularの環境構築をしてもらうため、自分用メモ

昔新人の頃に書籍を参考にAngularの環境構築をしたときに、情報が古く、うまく動かなかったことがあったので復習も兼ねて


1. Node.jsのインストール

​ 1-1. nodejs.org へアクセスし、Node.js バージョン10.xx.x(推奨版)のインストーラーをダウンロードする

​ 1-2. ダウンロードを行ったらインストーラーを起動し、インストールを行う

​ 1-3. インストールが終わったらコンソールで ​ node -v ​ を実行し、バージョンの確認を行う。

​ 1-4. コンソールで ​ npm -v ​ を実行し、npmパッケージマネージャーがインストールできているか確認。 ​ 確認できたら完了。

2. Angular CLIのインストール

​ 2-1. コンソールにて ​ npm install -g @angular/cli ​ を実行。

​ 2-2. ng v ​ を実行し、インストールされたAngular CLIのバージョンを確認できたら完了。

躓いたこと

npm install時にエラーが起きた

2-1にてインストールを行ったときに、permission denied というエラーが起きて正常にインストールができなかった。 原因は不明だったが、調べたところnpmディレクトリのオーナーアカウントを自分に変更すると回避できるとのことだった。

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

このコマンドを実行し、オーナーを変更することで正常にCLIをインストールすることができた。


HTMLタグ、属性、CSSプロパティ、の整理

後輩にHTMLとCSSの課題をやってもらっているときに、 「プロパティってなんですか?」と聞かれすぐに答えることができなかったので整理。

HTML


HTMLタグ

HTMLにおいて意味を区切る記号のことをHTMLタグと呼ぶ(単にタグと呼ぶ場合もある)

<html>
<body>

HTML要素

HTMLとその中身のことを指す

<a href="">リンク</a>

HTML属性

タグの後ろに半角スペース区切りで書かれた文字列のこと

<div class="aaa"></div>

これのclassの部分が属性

CSS


CSS属性

CSSの指定している部分で:の左辺を指す

.content{text-color: #000000}

text-colorの部分

CSS属性値

CSSの指定している部分で:の右辺を指す

.content{text-color: #000000}

#000000の部分


意外と忘れがち

Matzの講演を聞きました

聞いてきたのでメモったことを書き残し

20代エンジニアのためのプログラマー勉強法

講師:まつもとゆきひろ(Matz)

Rubyを作った人

プログラミングの話はしない

勉強の必要性

  • 死なないため

  • テクノロジーによる不幸

    • エントリーシート(史上最悪の発明)
    • 就活生に不幸 見栄えがいい学校、勉強していることで人物で見てもらえない
    • 人事担当に不幸 会社の名前だけでたくさんエントリーが届く
    • 喜ぶのは就活会社
    • IT企業
      • ブラックが多い
  • 罠が多い時代

    • 戦略が必要

      • 自分がしたいこと、未来、方向性を考える必要性→それこそが戦略
        • 特に若い時
          • 人生に大きな影響を与えるため
          • 大きな成果は若いときに出る 特に20代
          • 30代は遅すぎるわけではないが、現代においては若いというのはそれだけでアドバンテージ
        • モラトリアムはもったいない!
      • 若いときこそ戦略が必要!
      • 社会的地位が(まだ)ないから
        • 本当はNoと言ってもいいはずなのに上の人に従いがち
          • 体壊しても面倒を見てくれない →自分のことは自分で守らないといけない
          • 若いときは立場がないぶん辛い、死なないためにも社会戦略が必要
            • そのために学ぶ必要がある
    • 勉強

      • 社会人しての勉強

      • 勉強というのはメタファー

      • 学ぶことを抽象化して勉強といっている

      • 抽象化の強み

        • プログラミングは抽象化の塊
          • 理解しやすくなる
          • 背景知識の活用ができる
          • 物事を単純に
          • 類似性からパターン抽出
      • 抽象化のデメリット

        • 抽象化のモレ 過剰な抽象化

          • 人間の癖
          • 物事をシンプルにしすぎる
          • 抽象化で切り落とされたもの
    • あえて学生と社会人としての勉強の違いを考える

      • 満点VS満点なし
        • 正解があるかないか
      • 苦手克服 VS 得意を伸ばす
      • 記憶 VS 把握
      • 知識 VS インデックス
      • 試験 VS 常在戦場
      • メイン VS サブ
      • 安定 VS 変化
    • なぜ勉強するか

      • 成功したい
      • 高収入が得たい
      • 良好な二元関係
      • 嫌なことはしたくない
    • これらを達成するには

      • 勉強したら達成できる?
        • 成長すれば達成する可能性はある
  • 勉強とは成長するため

  • みんな勉強は大切と思ってる

    • 差別化にならない
      • むやみに知識を持とうとしても差別化にならない
  • なにを どこで どう学ぶか

  • 実社会に満点はない

    • 学生時代の常識が通用しない
    • とりあえず知識をつけておこう → それでは成功する確率が上がらない
  • 好きなものに集中したほうが効率的

    • 学びたいから学ぶと義務では大きな差
      • 何を学べば良いかはない
    • インベントリ
      • 時々やる必要がある
      • 自分を振り返って、自分は何が好き?興味がある?得意?嗜好、背景
      • これらについて定期的に考える必要がある
      • 書き出して考える
      • 様々なジャンルを組み合わせることもできる!
        • 得意なことを伸ばす
        • 人と違うととても良い
        • 生活につながるとなおよい
        • が、お金は目をくらませる
        • 一番大事なところ
      • 自分が何をすればいいか、他人は教えてくれない
      • 他人を信じてはいけない
        • 何をするかは自分で決めなければいけない
    • どこで学ぶか
      • いつでもどこでも
      • 学びやすい環境
        • 良い環境は成功要因
        • 成功=高評価
        • 尊敬される
        • 尊重される
        • 勉強をする=高評価を受けるサメ
        • 尊敬される=高いモチベーション
        • 高いモチベーション=成長しやすい
        • 成長=成功
      • ポジティブフィードバックループ
      • ループがないとき
        • ループを壊す環境から逃げる
          • 尊重してくれない人とは働かない
          • 搾取するひとから逃げる
          • WinーWinの関係
          • 持続可能な取引は2種類
            • Win−WInとNoDeal
              • NoDeal = 取引しない
              • 逃げてもいい
    • いつ学ぶか
      • まとまった時間を作る難しさ
      • 暇、退屈だと思ったら注意
        • 時間の使い方が良くない
        • 時間の使い方に優先順位をつける
        • プライベートはあまり犠牲にしない
      • 生産性を高める
        • 早く仕事を終えて、勉強時間を作る
      • スキルのためにすべての時間を費やすのはあんまり良くない
        • なんのために生きてるかわからない
      • 睡眠時間削減はNG
        • 脳に辛い
      • 時間使いは優先順位を無意識に反映している
        • 成長成功のために意識的に優先する
        • 立ち止まって、ダラダラした時間を削減
          • ゲーム、SNS、漫画動画
        • 楽しい時間を学びにする
        • 生活と価値観に依存するがやりようはある
      • 学び方
        • 記憶をする必要はない
        • 知らない知識は調べられない
          • 知のインデックスをつくる
          • 概要の把握が重要
        • 好奇心を育てる
          • 知らないことを知るのは楽しい
          • 好奇心こそが成功の鍵
          • 知的チャレンジ
        • 差別化
          • 人と同じでは成功は難しい
          • 人と違うことをする 
          • インベントリを改めて考える!
        • 妥協と打算
          • 人生において必要・・・
            • 理想だけでは生きていけない
          • 悪いことではない
          • 人間の判断を信用しない
            • 妥協と打算をした場合は頻繁に振り返る必要がある
        • インプットアウトプット
          • インプットだけでは差別化にならない
          • アウトプットが必要
            • ハードルが高い
              • 面倒、億劫、羞恥心等・・・
              • 心理的障壁
                • 思い込み
            • とにかくやれ!
              • 最初は拙い
              • クオリティは気にしない
              • ブログ等
            • アウトプットを繰り返す
              • 最適化がされる
              • 心理的障壁の低減
              • 人間の可塑性にかける
                • 置かれた環境に合わせて変化する
                • 新しい可能性
                • ゆっくりだが変化する
                • 予想もしない方法で
  • 成功するために

    • 知名度
      • 尊敬してなくても
    • 知名度は価値に変換可能
    • 知られる必要がある→アウトプットが必要
    • アウトプットをして知名度を上げて価値があると思ってもらう
    • 価値が上がると成功しやすい→ポジティブフィードバックループ
    • キャズム理論
      • 顧客を5つの段階に分ける
      • ニッチに進出
        • 競争相手が少ないところで
        • アウトプットの際も他の人がしていないこと
  • Runyの話をしていない

    • 横展開
  • 大抵の問題は「人間の性質」のせい

時間と収入は無関係

あなたはどうするか

​ 何をどう勉強するか

​ インベントリ

​ 真剣に考える

​ なにがしたいかい

​ どう差別化

​ どう生きるか

若いうちに真剣に考える

どこまで妥協できるか

どこまで意地を張るか

度々考える

予想しても外れることが多い

決めたことを変えても良い

本当に考えるべきこと

​ 将来・未来

必要なこと

基礎を抑える

英語を学ぶ

  • 18億人と話せる
  • 新しいことは英語
    • タイムマシン経営
    • 差別化につながる
  • 時間的アドバンテージ
  • ガラパゴスを出る
    • 必要なレベルで

コンフォートゾーン

  • 居心地のいいところだけにいると成長はない
  • 自分で決めてコンフォートゾーンから出ることも必要

質疑応答

やりたいことに適正があるかわからない

 →やりたいというやる気が優先

アウトプットあってるかわからない

  • 誠実であれ
    • 内容が間違っていることがわかったら、訂正をすればよい
  • 書かなかったら良かった、、、
    • 間違ったことを書き残す、誠実であれば大丈夫

Rubyを作った欲求

  • 作りたいから作った

挫折

  • 小さいタスクに分けて

しごと

調査ごとをするのに簡単なマクロを作って実行してたけど、先輩に正規表現使ってやれば早いじゃんと言われもう少し頭働かせないと行けないなと思った(小学生並みの感想)

正規表現って覚えるのは結構めんどくさいけど、使えたら便利だから勉強します…

単純な作業ほどシステム化ができないか、効率の良い方法がないかをもっと考える必要があると思う。