Sun~sun~Flower's

〜ITエンジニアとして日々前向きに生きていくノウハウブログ〜

MENU

【5週目】テックキャンプ エンジニア転職でやったこと【やや大変でした】

f:id:mTakata:20200620112847j:plain

こんにちは。

当ページにアクセスしてくださり、ありがとうございます。

 

この記事は、

Webエンジニアを目指したいけど、自分は未経験。
最近プログラミングスクールが流行っているって聞くけど、どうなんだろうか?
実際に通った人の意見を聞いてみたいな。

上記のようにプログラミングスクールに通おうか迷っている方に向けた記事になります。

 

前回僕は、次の記事を書きました。

【テックキャンプ エンジニア転職の記事】

www.sunsunflowers.com

 

そしてテックキャンプエンジニア転職に興味が湧いた読者さんに向けて、

実際に10週間でどんな勉強をするの?

上記を紹介させて頂きたいと思います。

 

今回は、その5週目になります。

 

この記事を読めば、

 💡テックキャンプエンジニア転職では、どんな環境で、どんな学習をするのか。

 この疑問が解決するのではと思います。

 

また、読者さんにとって、

☑️プログラミングスクール(テックキャンプ エンジニア転職)に通うかどうかの判断材料

上記のようになれば幸いです。

 

【目次】

1.やったこと

まずはざっくり紹介します。

・先輩の個人アプリ発表会

・チャットアプリ・tweetアプリの非同期通信によるメッセージ送信機能の実装

・インクリメンタルサーチ機能の実装

・自動更新機能の実装

・サーバの基本を学ぶ

・AWS(自分のアプリを実際にWeb上に公開する)

先輩の個人アプリ発表会

週の始まりにありました。

 

一つ上の先輩方が各々作成したアプリを発表する場所です。

 

参加は自由です。

 

僕の場合は、

みんなどんな個人アプリを作っているんだろ・・・?

という好奇心がありましたし、次の週から僕らも個人アプリ制作が始まりますので、

どんなアプリを作ろうかな・・・?

そのアイデアのヒントをこの発表会で得たいというのがありました。

 

むしろその為に発表会を用意していると思うので、参加しないという選択肢はないですね。

 

実際参加したところ、僕が見た限り、レベルが高かったですね。

 

カリキュラムで作った「アプリの使い回し」という感じは一切なく、オリジナルのアプリをしっかり制作していて凄いと感じました。

 

と同時にやっぱり、気持ちも高まりましたね。

❗️先輩のアプリをみることで、やる気・モチベーションが上がりました。

是非、参加してみてください。

チャットアプリ・tweetアプリの非同期通信によるメッセージ送信機能の実装

gyazo.com

4週目での記事で紹介させて頂きました、「非同期通信」の実装をやりました。

 

念のため軽く説明しますと、

サーバーからレスポンスを待たずにブラウザ側で別の処理を行う機能

例えば、おなじみのアプリ「LINE」のメッセージ送信機能やtwitterの「いいね」機能、Googleで検索しながら下に検索候補が表示されるなど・・・。

 

(グーグルでの検索ってこんな感じですよね)

gyazo.com

 

みなさんが何気なくやっている上記の行動でも、この「非同期通信」という機能が活躍しています。

 

この機能を実装します。

 

僕の印象では、ここは結構難しかったです。

 

ここからオンラインでメンターに質問する頻度が増えました。

 

理解しにくくなってきますので、ここは是非メンターや同期と話しながらアウトプットして進めていくことを大いにオススメします。

インクリメンタルサーチ

ここが、「Googleでキーワード入力すると、検索候補が表示」される機能ですね。(すみません)

 

でも使う技術はメッセージ送信機能の非同期通信と変わりません。

 

結論から言いますと、Ajaxという技術を使っています。

 

Ajax(エイジャックスまたは、アジャックスと読みます)・・・、聞くだけで難しそうな技術です。

 

実際、難しかったですね。

 

というのも、もし何らかのエラーや不具合が発生した場合に、その原因を特定する為にコードを読み解くのがかなり複雑になっているからです。(カリキュラムを読み返しても、解決しないエラーが恐らく出てきます。)

 

僕もそういったエラーに出会し、2時間以上掛かったことがあります。

 

しかし、自分で考えるのは30分くらいで良いです。

 

僕は性格上、自分で何としてでも解決したい気持ちがあったので、時間をかけてしまいました。

 

ですがカリキュラムはまだまだ残っていますからね。なので、

 

30分以上掛かって無理なら、躊躇せずメンターさんに質問してください!

 

しかし、このエラー解決にかけてしまった時間も決して無駄ではないと思っています。

 

理由は、3つあります。

☑️エラー・不具合に対して調査する経験ができる

☑️解決する過程で、コードの動きや仕組みが理解できる

☑️どんな方法でもエラーが解決すれば、かなり自信になる

上記です。

 

なので、エラー歓迎!くらいの気持ちで取り組んでみてください。

 自動更新機能

ここで例えがまた、「LINE」になってしまうのは申し訳ありませんが、相手からのメッセージって、こちらが何もしなくてもメッセージを自動的に受信できますよね??

 

あれはLINEに「自動更新」機能が備わっているからです。

 

これを実装します。

 

自動更新機能があるおかげで、わざわざアプリの更新をしなくてもメッセージを閲覧できるようになります。

 

便利ですよね。

 

ですが、いざ実装してみるとこちらも難しかったです。

 

僕が苦労したところは、

自動更新すると、過去メッセージも一緒に追加される

このような不具合がありました。

 

こちらは原因として、

❗️各メッセージに割り振られるべきIDを割り振っていなかった

上記でした。

 

もし、ここでつまづいている読者さんがいらっしゃれば、是非確認事項として活用してください。

 

これが完了すると、チャットアプリ機能の実装は完了です。

 サーバの基本を学ぶ

一通り機能を実装したチャットアプリですが、最終的に

☑️自分以外のPC・スマホからでもアクセスして見れるようにする

上記をやっていきます。

 

こういったアプリの公開は、「サーバ」というWeb上で様々なサービスを提供する「源泉」と言われる場所から公開されています。

 

そのために必要になってくるのが、サーバの知識です。

 

具体的には、

❗️IPアドレスやLinuxコマンド、パーミッション、ログ出力などについて学びます。

プログラミングではないので、プログラミングが好きになった人からすると少々退屈するかもです。

 

ですがサーバ構築などインフラ系ができる人は、この業界でも特に重宝される人材と言われています。

 

なので、もし同期と差別化を図りたいと考えているなら、ここも学ぶべきだと思います。

 

絶対に損しません。

AWS(自分のアプリを実際にWeb上に公開する)

いよいよカリキュラムもラストです。

 

こちらは、自分のPC内環境でのみ動かしていたチャットアプリを、みんなが見ているPC・スマホでも見れるようにする(Web上に公開する、という言い方ですね)というのが目標です。

 

その目標を達成するためにAWS(アマゾン ウェブ サービス)というサービスを利用して、チャットアプリを公開します。

 

ちなみに次のサイトは、僕が個人アプリ開発で作ったショッピングサイトです。(商品にコメントができる機能がついています)

 

Shopping Review

↑↑こちらが僕の個人アプリへのリンクになります

⭐️注意点⭐️

・出来れば、PCで見ていただくとありがたいです。(スマホ画面には対応していません、すみません。)

・AWSではなく、「heroku」というサービスを使っているので、表示が遅いかもです。

 

こんな感じで、みなさんが閲覧できるようにすることを目指します。

 

最後に、完成したチャットアプリをメンターさんに見せて、オッケーをもらえば、

とりあえず応用カリキュラムは完了です。

 

ここで個人アプリ開発へ進めます。

 2.まとめ【来週から個人アプリ開発です】

5週目、お疲れ様です。

 

この週は僕も同期も、エラーや不具合の解決に結構時間を注いでいました。

 

しかも、チャットアプリはこの週までにメンターさんから承認を貰っておかないと転職保証が外れますので、結構焦りもありましたね。

 

なので、頭を特に使った週だという印象が強かったです。

 

でも、エラーや不具合対応はプロとして仕事の一環ですので、ここで経験出来たのはかなり有意義でした。

 

6週目から、「個人アプリ開発」ですね。(あくまでスケジュール上でして、チャットアプリが早く終わるほど早く開発できます)

 

なので、体調に気をつけて、頑張ってくださいね。

 

個人アプリを作りきると、あなたはもっと変われます。

 

以上となります、参考になれば幸いです。

最後まで読んで頂き、ありがとうございました。