昨年の総括と今年の現状

--------------------------------------------------
◆1.入社試験を通じた環境構築を経験した:
4-6月の3ヶ月は、初めてLAMPの構築をした。
分野違いだったので(ほぼ)初めての経験だった。

そして、Ubuntuのversionの選定でも躓いたし、
SSH接続でも躓いたし、
ApacheとNginxのどちらを選定するのか、などでも躓いた。

Apacheを選定してもエラーが出て、
回避策がNginxについては言及されているページを見つけたので、
Nginxも含めて調べていったが、
結果的には、あるエラーの解決策はApacheのページに載っていて、
別のエラーの解決策はNginxのページに載っていたので、
結果的には、Apacheを選定した。

トータルで見ると、Apacheの方がTroubleshootingが、
相当行われていたために、回避策が見つけやすかったり、
Troubleshootingが反映されて設定として回避されていた、
というのが理由だ。

10個20個のツールの選定でも躓いた。

LinuxでもUbuntuにするかCentOSにするか、
それも、それぞれでどのversionが良いのか。
そういうLevelでも全部やり直した。

その2つのどちらを選定するか、でも、
commandがぜんぜん違う。

さらにcommandの過渡期だったらしく、
ネットで調べてもサクサク行かなかった。

その場限りで上手くやり過ごそうと思っていたのだけど、
上記のツールの組み合わせも考えると、
エラーが出続けて環境が作れなかったので、
しっかり解決するしか無いという状況になった。

分野違いのビギナーには大変だった。
いや、blankが多くて大変だった。

まだTroubleshootingが熟れていないversionだと、
こういうことも起こるのだ、というのも、
blankがあって距離感が掴めなかった。

今では信じられない状況だが、
昨春4-6月は、本当にそういう状況だった。

blankは恐ろしいね。

結果的には、まー、1週間以内に突破せよ、
という入社試験までに間に合うわけもなく、余裕で落選した。

さらには、なんと、どの言語で組むのか、というのも決めていなかった。
何でもOKということだったので、むしろ選定に時間がかかった。

Frameworkを導入すべきなのだろうと思って、Frameworkを選定したりもしたし、
言語ごとに、どんなFrameworkがあるのかを洗い出し、
各Frameworkの特徴も調査した。

そして、結果的には、Pythonを選定したのだけど、
そのDebug環境を用意できなかった。

例えば、どんな統合開発環境があるのかとかを調べて、
ブレークポイントとかwatchとかの機能も調査して、
さらには、hello worldだけをやったとしても、
そこから文法を調べたりした。

だいたい、本職はC++だったのだけれども、
そのC++自体にblankがあったので、
想像以上に、codingできなかった。

当時は、1日1000行は楽勝でcodingできたのに、
何にもできなくなっていた。

なのに、C++を思い出すどころかPythonをやるということで、
どういう言語構造を構築可能なのかも知らない状況で、
文法からやり始める、という状況だった。

なんなんだ??
あれだけ、設計も実装も、テスト自動化も、
評価されていたのに、blankがあると、何もできなくなっていた。

おっそろしい。

さらには、Linuxの環境構築も含めて、仮想環境を選定しようとし、
結果的にはVirtualBoxを選定したのだが、
そのVirtualBoxでも、どの構成でやれば良いのかも躓いた。

ネットに書いている内容でやろうとしてもエラーが出た。
「いいね」が多くついていた手順でもエラーが出続けた。

結果的には、自身で様々な設定を調査して組み合わせを解明して、
こうやれば良いんだな、というのを選定した。

そこで、選定したLinuxを導入しても、
ちっちゃなProgramをcodingするとしても、
versionを管理できなくなり、
そういえば、バージョン管理システムを導入すれば良いねと思って、
まあ、1時間も在ればできるでしょ?って思って、選定を開始した。

流れ的には、GitLabを選定したのだが、
例のごとく、1時間どころか数日を要した。

VirtualBoxからGitLabを選定するとしても、
Web版でやろうか、それともlocal版でやろうかと調査して選定したし、
メールの設定をしなければならないのだけど、
構成上GitLabがInternetと通信できなかったり、
認証をしなければならなかったのに、
通信できなかったので、できなかったり、
その他多くの設定で躓いては、原因を解決していった。

SSH接続でも躓いたし、そもそも、SSHの公開鍵、秘密鍵とか、
完全に忘れていた。
というか、そもそも、やったことなかった???
Server上のツールとpush, pullをしていたことはあったけど、
Gitは初めてだったからか??

ということで、SSH接続toolの選定も、
2020年版として選定し直した。
ちなみに今回選定したのはRLoginだった。

あと、他にも、以前のtoolが次々と使えなくなっていた。
例えば、FFFTPからWinSCPに乗り換えたりした。


--------------------------------------------------
◆2.入社試験と環境構築の振り返り:
「toolの乗り換え」というのは、
blankがある人にとっては大問題なんだな、と、
この一連の環境構築で経験した。

とにかく、結果的には環境構築には、4-6月の3ヶ月を要した。

これでよし!という環境を構築するのに3ヶ月だ。

入社試験を1週間以内に解いてください、
というのは、無理だったね。

でも、いい経験をしたよ。

「toolの乗り換え」というのは、定期的にしっかりやっておくべきだ、
というのを痛感した。

10個20個のツールの選定を同時に実施するなんて、つまり、
10個20個の不確定要素を、バランスを考慮して同時に確定するなんて、
相当大変だったよ。

当時部門、数百人で一番だった実力が有っても、
こんな状況になったのだし。


--------------------------------------------------
◆3.入社試験と環境構築の残件:
だけど、そもそも、Pythonに関しては、
まだ設計もできていなかった。

文法書を買って読解して、
hello worldに毛が生えたぐらいのcodingで終わった。

ほぼ環境構築だけで、その3ヶ月は終わった。

Deep Learningのtoolを使うところまでは行かなかった。
入社試験になかったというのも有るし。

でも今後、どこかに応募する時に入社試験で出題される、
ということを想定して、やっておくべきなんだろうね。

そもそも、UMLデザインtoolも
astah* communityが使えなくなっていたので、
coding以前のデザインもできなくなってしまった。


--------------------------------------------------
◆4.その後:
7月からは英語を勉強し始めた。
つまりは、TOEIC用の英単語帳とか公式問題集を数冊買って解き始めた。

だいたい、7-9の3ヶ月間で、やり終えた。

あとは、AWSのONLINEの教育を受けた。

10月からは、また数学を再開した。
2021年の1月の中旬までは、それを実施した。
約3.5ヶ月を、そこに投資した。


2021年1月下旬からは、環境構築を再開した。
理由は、coding試験がある入社試験が出てきたからだ。
結果的には、まー、無理だったね。
昨年のcoding試験での状況と同じ状況だ。

でも1つ違ったのは、もはや、環境構築に関しては、
昨年の3ヶ月分の経験があることだ。
だから、そこで躓くことはなかった。

Ubuntu 18.04だって、サクサク使えた。
エラーが出たなんて嘘みたい。

昔、組織の人たちに、
Linuxのアーキテクチャを教えたりした程は思い出していないけど、
でも、その時と同じく、エラーは出なくなっていた。

ホントに、去年は、どうしてあんなにエラーが出まくっていたのか。
commandを打つたびにエラーが出るような、
もう大変だったのが、嘘みたいだ。

そのうち、command programを作ったり、というのも、
久しぶりにやってみようかな?とかも思ったりした。

さらに流れとして、今の時代は2021年現在は、Pythonではなく、
元々のSkillであるC++でのcodingでcodingしても良さげだな、
というtrendなんだな、ということが分かってきた(違うかもだけど)。

だけど、昨年と違って、仮想環境は、
VirtualBoxではなく、WSL2に切り替えることにした。

たった1年でも環境を再選定しなければならないと、再自覚した。
editorもVS Codeを再選定した。

WSL2上でのUbuntu 18.04の設定を構築したりした。
VS CodeでのC++のDebug環境構築を構築したりした。

Gitは、Git for Windowsを選定していたが、
WSL2上でのVS CodeでのGitに切り替えることにした。

あと、環境構築は、CI/CD をやりたいし、
Deep LearningのToolも使いたいと思ったのだけど、
現状では後回しということになる。

あと、昨年は、Debug環境の構築だけにハマっていたけれど、
今となっては、Markdownとか、PlantUMLとか、
昨年知った様々なtoolを、実際に使い始めることにした。

とにかく、入社試験を介してblankがある、と気づき、かつ、
今の時代は応募企業から要求される、というcodingスキルに関しては、
やっとDebug環境を構築できたのだから、
そろそろcodingしまくってみよう、と思う。

当分の間は、相当簡単な hello worldレベルの物を
大量に作ることになるのだろうけれど、
とにかくC++でのcoding感覚を取り戻したい。


--------------------------------------------------
◆5.横展開(Reach Out活動):
昨春の4-6月の構造解析では、LAMPの構造解析も実施した。

結果的には、LAMPの本質は、
 1.URLがApache (Nginx)に着地する。
 2.PythonがORマッパで、MariaDB (他も可能)のデータをCRUDする。
 3.PythonがHTMLファイルを出力する。
という構造だ。

さらには、その下の、HTTPSのTPSなどという、
Communication protocol についても調査したのだが、
結果的には、そこは、LAMPからは、
きれいに切り分けられていることを確認した。

だから、例えば、Office365などのWebアプリをいくら操作しても、
Office365のExcelのsource codeを読解することはできない、
ということだ。

ダウンロードしてリバースエンジニアリングしたりする人がいれば別だろうけど。

先人は、そういう点もしっかり切り分けて設計していたんだね。
流石だね。

そして、Webアプリのように、マルチプラットフォームという点では、
WindowsやLinux、MacというPlatformだけでなく、
Web Browserも、もはや1つの独立したPlatformだ、と理解した。

あらゆるアプリが、Browser上で動く、ということだ。

そういう世界になるのだろう。
SnowなどのEdge系deviceというのは、そういうことも含むのだろう。


--------------------------------------------------

この記事が気に入ったらサポートをしてみませんか?