4月の記録

いつの間にか予定日まで2週間をきった。体調は胃の圧迫感がずっとあったけど、ここ最近は少しマシになった。それよりも副鼻腔炎の悪化からの咳が出るようになってつらい…。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    咳喘息になりそう…。

これまで

  • Recursion上級(2分探索木・ヒープ)c++
  • React+Firebase
    • CTの課題でCloud FirestoreとFirebase Authを利用。
    • 公式ドキュメントを理解するのに時間がかかったけど、わかると簡単につかえて便利。
  • JavaScript
    • TypeScriptの本を読んでたら、そもそもJavaScriptをもっと勉強したほうがいいのではとなった。
    • 以前Udemyで途中までみた動画(https://www.udemy.com/share/103dh4A0Acd1hSR3w=/)の続きを見たり(prototype, this, bind, generator, iterator)、JS Primerの非同期処理のページをまとめてみたりした。
  • Recursion BlackJackの作成
    • バニラJSでブラックジャックを作成。MVC(Model View Controller)というアーキテクチャを使う練習。
    • ロジックを扱うモデルの部分はすぐにイメージできたけど、Viewに反映するためのコントローラを作るというのに苦戦した。制作期間は1週間ほど。
  • iOSアプリ
    • 本を写経してサンプルアプリをいくつか作成。
    • 実機でテストできるの面白い…

これから

  • TypeScriptとReactの勉強があまりできてない…次に作るものはTypeScriptとかRedux使ったりしたい!ということでUdemyのセールで動画を3つ購入した。
    • 日本語だといまいち合うものが無かったので、英語の動画にした。

産後にどれだけ時間がとれるのか全然わかってなくて、多分勉強なんてする気にならないと思うけど、動画垂れ流すくらいはできるといいな…。

3月の記録

2月後半からReactを使ったプロジェクトを進めて、がっつりReactを触れてよかった。その後は妊娠後期なりの体調不良(動悸と息切れ)が出てきたので2週間くらいだらっとした。妊娠の症状とはいえ、座ってるときにいきなり動悸がすると結構びっくりする。

これまで

3月

  • Udemy
    • 最速で学ぶFirebase + React Hooks (TypeScript)と、最速で学ぶTypeScriptをみた。
    • とりあえずFirebaseとの連携の仕方が分かってよかった。
  • Recursion Project 3&4
    • Reactでなにか作りたいと思い、クリックゲームをReactで作った。
    • 完成までに1週間かかった。
    • useStateとReact Routerの使い方に慣れた。stateの管理は特にstate更新してもレンダーされない、みたいなエラーによく悩まされた(大体state自体を更新してしまってるのが原因)。Hooksで使ったのはuseState, useEffectだけで、useContextやuseReducerは使わなかった。
    • 一応Typescriptで作ったけど、Reactのエラー対応で精一杯でTypescriptの機能はほぼ使えなかった…
  • Recursionの上級(c++
    • データ構造(連結リスト・スタック・キュー)が終わった。
    • c++を改めて学んでいる感じ。
    • 内容は3割理解…。進めていけばatcoderアルゴリズムの勉強にもなりそうかなと思っている。
  • CTの課題
    • ReactでのTodoリスト作成。
    • RecursionのProjectでReact慣れたと思いつつ、改めて使うといろんなところで引っかかる。
  • atcoder
    • ABCに参加だけはした。もう参加してもレート変わらない。

これから

  • iOSアプリの勉強
    • 作ってみたいスマホアプリがあって、手を出してしまった。
    • とりあえず本に沿って勉強する。
  • Recursionの上級(木構造
    • 二分探索木実装できるようになりたい。
  • CT
    • Reactをちょこちょこやる。

予定日まであと2ヶ月切ったーー

2月の記録

2月の統括には1週間早いけど、進捗的にキリが良いのでいったんまとめる。 1月後半から2月前半にかけて、家探し&住宅購入(!)のために動いていたり、中だるみしたのもあって思ったよりは進んでない。

これまで

2月

  • RecursionのProject1〜3が終わった
    • UserCard、Slider、BatteryFinder、BankingAppの作成をやった
    • Bootstrapがある程度使えるようになった
    • DOM操作やEventListenerがある程度使えるようになった
    • プレーンなJSのDOM操作に飽きてきた
  • N予備校でサーバーサイド入門が終わった
    • ほぼ写経になってしまいあまり身にならず…
    • 必要なときに戻ってくるようにする
  • Reactのチュートリアルを半分やった
    • props, stateの概念を学んだ
    • まだ終わってないので今週やる
  • UdemyでTypescriptの動画を見始めた
    • React + Typescriptを使ってみたくて
  • AtcoderのABCに数回参加した
    • ABは大体解ける、Cは簡単なやつしか解けない=レート上がらない
    • 過去問は全然やってない…

RecursionのProjectがメインだった。 ProjectのおかげでJS使ってシンプルな機能の開発はできるようになったと思う。 クラスの使い方や全体設計はまだ苦手だけど、プレーンなJSで書くのに飽きたのでしばらくProjectはお休みする。

これから

プログラミングの勉強を始めて2ヶ月が経った

これまでやったこと・学んだことをまとめてこれからやることを考える。

これまで

11月

  • ProgateでHTML、CSSJavascriptを一通りやった
    • HTMLとCSS:ざっくりと理解、ある程度使えるようになった。細かいところは必要なときに覚えればいいかなと思った
    • Javascript:記法はわかったけど全く自分では使えなかった
  • ドットインストールで写経した
    • Javascriptでビンゴシート/カレンダー/ストップウォッチを作った
    • DOM操作をなんとなく知った
  • AtCoderC++を勉強した
    • 前から競プロに興味があったので
    • APG4b(AtCoder Programming Guide for beginners)で記法を勉強した

12月

  • AOJの入門編を終えた
    • C++で二重配列とか文字列の扱い方とかを学んだ
  • AtCoderでA、B問題中心に80問解いた
    • Bまではまぁ解けるかなという感じになった
    • まだ解法わかってもコード書けないこともあり、C問題は厳しい
  • 友人が運営してるプログラミングスクールが始まった
    • HTML/CSSを使った課題をこなした
  • Recursionに入会した
    • CSに興味があったので

1月

  • Recursionの初級・中級を終えた
    • Javascriptでコード問題を解くのが中心
    • 再帰やオブジェクト、map関数を学んだ
    • Classの使い方や設計がまだ難しい
  • N予備校でサーバーサイド入門を始めた
    • 一通り自分でWebサービス作れるようになりたいので始めた
    • テキスト通りに進めれば動くのでいいのだけど、何も理解してない感がすごい
    • Recursionでコード問題解いてなかったらコードの中身を理解できてなかったと思うのでやっといてよかった

これから

  • 振り返るとあれやったりこれやったり色々してるなーと思った。
  • コードを読み解くためのベースはできた気がするので、自分で一通りのサービス作れる用に、サーバーサイドやライブラリの勉強をしたい。
    • N予備校サーバーサイド入門(補助的な本とか必要かも)
    • Recursion Project
    • React(スクールでやる)
    • AtCoder(ABCには参加する・過去問は余裕があれば…)

プログラミング初心者がVS Codeで競プロ用の環境構築をした話

競プロの勉強を初めて2週間が経ちました。

この2週間では、AtCoderC++入門を第2章まで進めたり、AOJのプログラミング入門を進めたりしていました。C++の環境構築の仕方をググると、コンパイラとかPATHとかなんだか難しそうだったので、エディタではなくAtCoderのコードテストを使ってコードを書いていました。が、凡ミスに気づかないことが多く、結果的に凡ミスで間違えてるのかそもそも考え方が間違ってるのかがわからなかったため、意を決して(?)エディタでコードを書ける用意をすることにしました。
環境構築は一度やったっきり設定を覚えてないことが多いので、忘備録として残します。

  こちらの記事を参考にさせていただきました。

qiita.com

詰まったところ

GCCのバージョンが異なる

$ brew install gcc

このコマンドでインストール後、ls /usr/local/bin/を見てみるとg++-10と書かれた文字が。
あれ、参考記事とバージョン違う。brew uninstall gccしてから下記コマンドで再インストール。
(g++-10だとできないとかあるのかな?不明)

$ brew install gcc@9

これでオッケ。
ただインストールされたバージョンは9.3.0であって、AtCoderコンパイラオプションである9.2.1とは違うことにあとあと気づく。

シンボリックリンクが変わらない

シンボリックリンクってなんぞや?って感じですが、とりあえず書いてある通りにターミナル入力。

$ ln -s /usr/local/bin/g++-9 /usr/local/bin/g++

ただずっとln: /usr/local/bin/g++: File existsのエラーコードが出てうまく行かない。-sに-fとか-nとかオプションつけてみてもうまく行かない。
この時点で2時間経っててもう嫌になってる。

あ、もしかして、___再起動___

$ which g++
/usr/local/bin/g++

できたー!

その他、参考記事に書いてある通りにやって最終的に動作確認できました。 AtCoder用にサンプル入力を勝手に持ってきてくれるやつとかもあるみたいですが、とりあえずエディタ使えるだけでいいのでこれでおっけい。

参考記事はとても丁寧に説明してあって非常に助かりました。
PATHとかコンパイラとか、自分に基本的な知識がなさすぎるのですが、この辺りどうすれば・・・