テックキャンプ 就活1日目
本日の振り返り:
就活開始1日目。自分が何を目的として働くのかを探るために価値の掘り下げを行っていた。白紙の紙を用意して思いついた単語やエピソードを書きそれに対してなぜどうしてそう思うのかと掘り下げていくのだが、これがなかなかどうして難しい。
午後は説明会の話を聞いて、各種求人サイトの登録や応募を行った。興味のある求人に一つは応募してくださいねと言われたのだが、お互いに望む条件で雇用関係を結ぶためにも少しでも情報が伝わる文章を書いていきたい。
テックキャンプ短期集中オンラインコース。学習70日目のふりかえり
学習時間:3:00
学習内容:0からわかるruby超入門
解決したことや学んだ単語:配列に関するメソッド sizeメソッド、sumメソッド、to_fメソッド、sampleメソッド、shuffleメソッド、sortメソッド、reverseメソッド,joinメソッド、splitメソッド、mapメソッドなど
学習の振り返り:
昨日に引き続き「ゼロからわかるRuby超入門」を用いてrubyの基礎を学んだ。便利な道具を使うというチャプターで、配列に関するメソッドのほか、リファレンスマニュアルやるりまサーチというrubyに関する情報を得られるサイトを使って新しいメソッドを覚えた。特に配列の全要素にそれぞれ処理を行い新しい配列をつくるmapメソッドは非常に有用だと感じたので使えるときに使っていきたい。
午後からはwindowsでもrailsを使えるようにと環境構築を行ってみたのだが、macとは勝手が違い、方法を探して様々な記事を調べることとなった。
最終的によさそうだと思ったのはこちらの記事。結局いまだに導入端切れていないのだが、折を見てまた作業を再開したい。
ともあれ今日で70日間の学習は終了となる。明日から就活を本格的に始めていくことになるため、自分が納得できる企業で働くことが出来るよう頑張っていきたい。
テックキャンプ短期集中オンラインコース。学習69日目のふりかえり
学習時間:3:00
学習内容:0からわかるruby超入門
解決したことや学んだ単語:配列に関するメソッド first last push unshift pop shift 配列の足し算 配列の引き算
学習の振り返り:
本日は「ゼロからわかるRuby超入門」を用いてrubyの基礎を抑え直すことにした。すでに身についている箇所も多かったが、復習をすることでより確実に身につけることができたと思うし、初めて学ぶメソッドや処理の方法もあって良い学習になったと思う。午後からは就活に向けて履歴書を作成したり、学習中にできなかった細々とした雑務を片付けていた。明日も同様に来週に向けての準備をすることになると思う。
来週からは本格的に就活が始まるため以前のように全て学習時間に当てることは難しいと思うが、少しでも固定の時間を設けて学習を続けていきたい。
私が10週間のテックキャンプで学んだこと
最終課題及びオリジナルアプリ実装を通じて得られた学び3つ
一つ目はタスクを洗い出す力を身に付けられたことです。
アプリ開発ではやるべき作業や期日を意識しないとあっという間に時間が過ぎてしまいます。
最終課題を通じて、やるべきことを細かく分解してタスクとして洗い出し、期日を設定してから取り掛かる力が身についたと思います。
今後の開発でも、タスクを洗い出してから作業に取り掛かることで効率的に開発を進めて行きたいと思います。
二つ目は問題を切り分けて考える力を身に付けられたことです。
今まではエラーが起きた時、原因がわからず、長時間悩んでしまうことが多くありました。
しかしそういった場合にも、処理を順番に追って問題が起きている範囲を絞り、エラーの原因を丁寧に切り分けることで、解決への糸口を見つけることができると学びました。
プログラミングを行なっていく上でエラーは避けては通れないものですが、それも成長のきっかけと考えて、今後も怯まず実装に取り組んでいきたいと思います。
三つめは機能実装に必要な情報を自ら探し、試行錯誤しつつ実装する力を身に付けられたことです。
機能実装に必要な知識は多岐に渡ります。知識を与えられることを待っているだけの姿勢ではとても足りません。
その時々で機能を実装するために持っている知識の引き出しから使えそうな手段を探す、あるいは手元になかったら探して学ぶ、そうして試行錯誤しつつ実装するという姿勢がエンジニアには求められるのだと思います。
私はアプリ開発を通じて、知識を学んだだけで終わらせるのではなく必要に応じて使いこなすこと、及び知識のための知識ではなく実装に必要な手段として知識を学ぶこと、つまり、実践的な学び方と実装力を身に付けることができたと思います。
そして、私はこれらの学びによって作業全体を構造化して考える習慣を身につけることができたと思います。
一番大きく変わったのは「問題を認識して、前向きに具体的なアクションプラン」を考えるようになったこと
「どうしよう、わからない。」ではなく「それなら、どうやって解決しよう」と、前向きに解決に向けての手段を探すようになりました。
他にも「自分で計画を決めて着実に取り組めているか」「要件の説明をできるかどうか」「機能の追加が可能かどうか」「実装にどれほどの時間がかかるか」「使いやすいかどうか」「バグが少ないか否かなどを意識して実装できているか」などを自問しつつ、いずれエンジニアとして働くために必要な経験を積むことができたと思います。
曲がりなりにも一つのアプリを完成させると言うのはとても良い経験になりました。
私が今後エンジニアとして働いていく上で意識していきたいこと3つ
①プロジェクトごとに、環境が再現できるようにメモを書いておくこと
開発にエラーはつきものですが、同じエラーを何度もするのはいただけません。一度経験した出来事を血肉にして、あとで振り返ることができるように、プロジェクトごとに環境を再現できるようメモを残していきたいと思います。重要なのはその時の考え方なので、何を根拠に実装したのかもメモしていけるようにしたいと思います。
②セルフコントロールを身につけること
エンジニア職ではわからないことが日常になるため、メンタル面を鍛えるべきだとも思いました。開発途中わからないことがあったり、実装が思うようにいかないとモチベーションが下がってしまい、気力が沸かない時もあったのですが、わからないたびに落ち込んでたら仕事になりません。うまくいかない中でもモチベーションを保つことができるよう自分で自分を励ますセルフコントロールを身につけていきたいと思います。
③新しい情報を追いつつも、基礎をしっかり固めること
これでカリキュラムを終えるわけですが、基礎も応用もまだまだ足りていないと身に染みて痛感しています。私は一度実装に詰まって開発途中のアプリを投げ出してしまったのですが、それというのも基礎ができていない段階で、自分が理解できていない範囲に手を伸ばしたのが原因だと考えています。技術を増やすことばかりについ目を向けてしまいがちですが、土台となる基礎が小さければその上に立つピラミッドも小さくなってしまいます。新しい情報を追いつつも、基礎を疎かにせず着実にものにしていきたいと思います。
テックキャンプ短期集中オンラインコース。学習68日目のふりかえり
学習時間:10:00
学習内容:最終課題発表を行なった
学習の振り返り:
本日は最終課題発表会があり、これまでに得た学びをチームでお互いに発表しあった。各人がそれぞれに何を思いどのように工夫し学習を行なってきたか、どのような学びがあったかを聞くのは非常に楽しく興味深いものだった。これまで一緒に学んできた仲間というのもあり感慨もひとしおだった。発表内容を端的にまとめていたり自分にはない視点での発表だったので、勉強になった。自分の発表は内容が多くてまとめきれず、一部を発表しないで終了した。それでも時間内ぴったりでキリの良いところで終えられたので良い出来だったと思う。発表の仕方としては緩急がなく終始喋りっぱなしだったので改善したい。土日を挟んで来週からは就活という新しいステージに立つことになるので、自分が納得のいく企業で働けるよう価値観の深掘りなども並行して行なっていきたい。
テックキャンプ短期集中オンラインコース。学習67日目のふりかえり
学習時間:11:00
実装内容(オリジナルアプリ):READMEの修正
解決したことや学んだ単語:
学習の振り返り:
本日はタグ機能実装によるデプロイやREADMEの修正、明日の最終発表会に向けて発表用のスライドの作成などを行なっていた。デプロイ後に小さなエラーを見つけて修正したり、READMEの説明文が気に入らずに何度も書き直したりしたが間に合いそうでよかった。最終発表会に向けてスライドを作成する中でテックキャンプにおける学びを言語化していったが、中でも大きな収穫は学んだ知識をアプリ制作に結びつけられること、アプリの完成に必要な作業を通しで体験できたことだと思う。独学で基礎を学んでいた時は教本を読んで覚えたプログラム構文をどのようにアプリ制作に活かせるのか想像がついていなかったこともあり、あのままでは大きな回り道をしていたと思う。何にせよ、アプリを作るという目標に集中して取り組むことができたのは良い経験になった。明日の最終発表会では今までに学んだ成果をしっかりと発表できるよう、万全の準備で臨みたい。
テックキャンプ短期集中オンラインコース。学習66日目のふりかえり
学習時間:11:00
実装内容(オリジナルアプリ):タグ機能の実装に向けてテストコード修正、結合テストコード 修正、jsのターボリンク削除、タグ機能の実装によりbanned_foodカラムを削除,食事提供表及び詳細検索表示のカラム名削減によるスリム化、食事提供表のリンク修正,n+1問題の解消
解決したことや学んだ単語:factorybotで中間テーブルのあるデータを作成する方法。動的に追加されたフィールドに値を入力する方法。
学習の振り返り:
本日はライフコーチとの最終面談の後、タグ機能の実装及びテストコードの記述や各種修正を行った。細かいところではFactoryBotで中間テーブルをもつデータを作成する方法、javascriptでURLパラメータから必要な要素を正規表現を使って抽出する方法、結合テストコードにおいて動的に追加されたフィールドに値を入力する方法などを新たに学んだ。ある箇所を修正したことによって別の箇所が不具合を起こしてその修正に追われたり、以前実装していた箇所に不具合があることに終盤になって気づくなど想定外の出来事もあったが、ひとまず形にはできそうなので一安心。明日は最終発表会に向けてのスライドなどを作成し、万全の状態で発表会を迎えられるよう頑張りたい。