2019年の振り返り ～Qiitaへの投稿を始めて一年～ ＋ Python の pip 関連で詰まったところ

# あらすじ

Qiitaへの投稿を始めてから１年経つし、年末だから振り返り記事を書きたいけれど、プログラミングの記事かと言われたら微妙だし、どうしようか。。そうだ、プログラミングに関係するちょいネタの記事と抱き合わせにして、無理矢理プロミング関係の記事にしてしまおう！

# あらすじ ～ プログラミング編 ～

以下、pythonで直面したトラブルについて

まず、そもそもpipの実行時に以下のエラーが出た。

```
'pip' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
```

そこで、システム環境変数の「Path」に、pip.exeが存在するパスを追加することで解決できた。
（ユーザー環境変数と間違えないように注意）

次に、pipでインストールをしたパッケージをimportしたら、以下のエラーが出た。

```
ModuleNotFoundError: No module named 'パッケージ名'
```

そこで、pipによるパッケージのインストール先を調べてみた。

```
pip show [パッケージ名]
```

参考記事：https://qiita.com/t-fuku/items/83c721ed7107ffe5d8ff


すると、Location（インストール先）として出てきたのが、下記のように他のプロジェクトの中だった。

```
\他のプロジェクト\venv\lib\site-packages
```

その「他のプロジェクト」にインストールされたパッケージを今扱っているプロジェクトの中にコピーすれば使用できるが、この先新しいパッケージをインストールするたびにいちいちコピーするのは流石に面倒臭すぎる。

なので、その「他のプロジェクト」に対するパスをソースで追加すればいい。
※ 因みに「sys.path」コマンドでimport時にパッケージを探しにいくディレクトリ一覧を調べることが可能。

```python
import sys
sys.path.append("パッケージのインストール先")
```

参考記事：https://qiita.com/ktgwaaa/items/6d1f54d5ff3c4559f96c

これで解決！…と思いきや、このようなパスの追加の仕方は、コード規約PEP8に違反してしまうようだ。

参考記事：https://qiita.com/ninomiyt/items/76f6f7e3c1f833cf99e5

なので、python用の環境変数「PATHONPATH」をユーザー環境変数として設定し、パッケージを全てそこに集約することで解決できた。

参考記事：https://qiita.com/maech/items/72559402556eb2af73ad

因みに、pipで任意のディレクトリにパッケージをインストールするには、以下を使用。

```
pip install パッケージ名 -t ディレクトリ
```

参考記事：https://blog.tamesuu.com/2018/09/24/81/

あらすじだけで解決しました。

# あらすじ ～ 振り返り編 ～

約一年前の出来事

自分「なかなかスキル上がらないんだよね」
同期「プライベートで何か作ってQiitaに上げてみなよ。僕もやっているし」
自分「いやー時間なくてね。それにネットに投稿とか自信ないし」
同期「そんな言い訳してたらいつまで経っても変わらないよ？」
自分「ぐぬぬ。。」

というわけで、Qiitaライフが始まった。

# 所感

投稿を始めて、本当に良かった。
誘ってくれた同期には、心から感謝している。
間違いなくQiitaへの投稿を始めたこともあり、いい一年になった。

良かった理由は色々あるけど、主に以下：

- 1つ投稿するたびにエンジニアとしてのレベルが上がっていった（気がする）
    - 1つのものを作り上げる過程と、それを記事としてまとめることでいい経験が積めた。。と思う。

- 「時間がない」という言い訳をしないようになった
    - 本当に忙しい人もいると思うので全ての人に当てはまるとは思わないけれど、自分にとって「時間がない」は完全に言い訳だった。

- 折角作ったものが埋もれずに済むようになった
    - 今までは頑張って作ったものでも、作ったら基本それっきりで自分でも忘れてしまうことが多々あったが、投稿するようになってからは勿論そんなことはなくなった。仮に忘れても、Qiitaを開けばすぐにアクセスできるのも大きな利点と感じる。

# 工夫したこと
- 各記事のタイトルの頭に、記事で扱った言語を記載した（この記事は例外）
    - 全てプログラミングに関する記事なので

- 毎回の記事は同じ構成にしてみた（概ね）
    - これで記事を書く時の構成にあまり困らなくなった

# 今後、期待する能力の向上

勿論、2020年もQiitaへの投稿を継続予定なので、その活動を通して伸ばしたいと思っている能力を下記に記載。

- プログラミング力
　- これは言わずもがな。

- 進捗管理能力
　- 最初に成果物を決め、それに向かって行動していくプロセスは正に仕事そのものだと感じた。しかし、仕事ではないからといって、成果物に向かうまでの計画を全然決めず、途中ああでもないこうでもないと手戻りを繰り返し、時間を無駄にしていた気がする。そもそも仕事には須く締切があるのだから、Qiitaの場合も締め切りを設定したほうがいいと感じた。ただし、自分だけで定めた締切であると拘束力が弱すぎるので、その締切をQiita友達や同僚と共有することで、自分自身にプレッシャーをかけるのが有効と判断した。

- 仕事の効率化
　- 上記の「進捗管理能力」と関連するが、記事の締め切りを設定する→締め切り厳守のために、記事を書く時間を確保しなくてはならなくなる→仕事を早く終わらせる必要が生じる→そのために仕事の効率化に一層励むようになる…という効果を期待。（ただし、くれぐれも本業の仕事が疎かにならないよう、注意）

# 悩み
以下は、一年間投稿を続けて未だに解決できていない問題について。
・投稿頻度の目標について
　最初は「1か月に1つ投稿するぞ！」と息巻いて始めたものの、すぐに締め切りに追われるようになり、結果間に合わせのネタに走る、という悪循環に陥ってしまった。そして、1か月に1つの目標は途中で諦めた。
　目標を立てること自体は良かったと思うが、投稿頻度を目標にするとじっくり腰を据えて自分のやりたいことができなくなり、だからと言って目標を立てないとだらけてしまうかもしれない…というジレンマが今も課題である。

# その他、この一年間で勉強した内容

## ① 英語の勉強

毎日、youtubeで興味のある分野の動画を探してはシャドーイングすることで英語の勉強しているので、今年シャドーイングした動画の一覧を記録を記載してみた。
※ ただしシャドーイングした動画のリスト化は10月頃から始めたので、今年見た動画としては、下記はあくまで一部。
また、難易度や役立度は完全に主観であり、厳密さもなくフィーリングで書きました。

|動画名|時間|投稿者|難易度|役立度|所感|
|---|---|---|---|---|---|
|The Worst Trends in Modern Cars and Trucks|12:31|savagegeese|4|2|豆知識多し|
|5 Tires You Should NEVER Buy!|4:48|Modern Muscle|2|5|低品質なタイヤの危険性を教えてくれる|
|The state of self-driving cars: 2018|5:37|The Verge|3|4|自動運転の現状がわかる|
|What Happens If Both Airplane Engines Fail? - Aviation Facts|11:02|LogicLounge|4|3|誰もが持つ疑問を解説|
|The Differences Between Understeer & Oversteer And How To Combat Them|6:48|Car Throttle|5|5|車両の挙動に関する知識が学べる
|Can Dyson Reinvent The Electric Car? Answers With Joe|15:38|Joe Scott|5|2|あのダイソンが家電の技術を生かしてEVに挑む話|
|Self-Driving Cars: The Future of Transportation|10:31|Top Trending|4|3|自動運転の基本と現状|
|Understanding Wheel Alignment !|4:48|Learn Engineering|1|5|自動車のタイヤにつけられる角度とその影響|
|How Mazda Is Eliminating Turbo Lag|5:25|Engineering Explained|4|4|エンジンに施されている工夫に驚く|
|Unbelievable and Expensive Engineering Mistakes|10:30|American Eye|4|2|ささいなミスが引き起こした大事故の概要を紹介|
|7 MOST EPIC TRANSPORT OPERATIONS IN THE WORLD|11:21|Amazing Stock|3|3|巨大な建造物や機械をどうやって運ぶか、という話|
|Why Norway is full of Teslas|7:09|Vox|2|4|北欧でのEV事情が分かる|
|Grit: the power of passion and perseverance - Angela Lee Duckworth|6:12|TED|2|3|成功の秘訣”grit”の紹介|
|11 Lottery Winners Who Paid the Ultimate Price|12:34|They will Kill You|3|2|宝くじ高額当選者が辿った悲惨な末路を紹介|
|The Self-Driving Revolution _ Henry Su _ TEDxUAlberta|12:12|TEDx Talks|2|2|自動運転がもたらすメリット|
|Let's Talk About Tesla "Killers!"|9:38|Marques Brownlee|4|3|rivianをはじめ、EVを出す(可能性のある)企業について紹介|
|Why Tesla And Elon Musk Face Challenges In China|6:54|CNBC|4|3|Teslaの中国での奮闘の話|
|Why Hydrogen Engines Are A Bad Idea|7:12|Engineering Explained|3|3|「Hydrogen Engines」とあるが、実際にはFCVの話|
|Why Do Diesels Get Better MPG? Why Are Diesels More Fuel Efficient?|8:53|Adept Ape|2|3|ディーゼルの基本的な話|
|The Problem with Self-Driving Cars..|9:05|Snazzy Labs|3|3|「人間はどのくらいの割合で事故を起こすか」という話が興味深い|
|Why Are You Always Tired?|3:10|AsapSCIENCE|3|3|慢性的な疲労に悩んでいる人に役立つ動画|
|How job surveillance is changing trucking in America|9:35|Vox|4|3|監視下での仕事を強いられるドライバーの苦悩や監視の意義を紹介|
|I Adopted Rich People’s Habits, See How MyF Life Changed|9:04|BRIGHT SIDE|2|4|自己啓発本に載っているような習慣を実践し、役立った話|
|Why Boredom is Good For You|7:21|Veritasium|2|4|「退屈」がいかに人生を豊かにするか、解説|
|The Challenge of Building a Self-Driving Car|15:45|Real Engineering|3|3|自動運転の今後について、特にテスラに言及しながら解説|
|Why do aircraft store fuel in the wings?|12:52|Mentour Pilot|4|4|燃料が翼の中にあること、またその形状の話が面白い|
|5 Things You Should Never Do In A Dual Clutch Transmission Vehicle|7:33|Engineering Explained|4|3|とにかくDCTは摩耗させちゃいけないよ、という話|
|Why Europe Doesn't Build Skyscrapers|7:10|The B1M|4|3|先進国だからと高層ビルが建つわけではない理由が分かります|
|Ride in NVIDIA's Self-Driving Car|7:27|NVIDIA|3|3|NVIDIAの自動運転を紹介|
|The Future of Wind Power? - Kite Power Systems|7:02|Real Engineering|4|4|こんな発電方法もあるよ、という話。プロペラを浮かべる方法は他の動画でも見たけどやっぱダメかあ。。|
|Why Public Transportation Sucks in the US|10:05|Wendover Productions|3|5|公共交通機関へのアクセスの良し悪しと貧困率の関係の話が興味深い|
|Is This Glass Half Empty?|3:19|AsapSCIENCE|3|4|楽観的なのはいいことばかりでないし、悲観的なのも悪いことばかりではないようです|
|5 Tips To Improve Productivity|6:10|Joma Teck|3|3|やはり習慣の力は偉大|
|That's Why Airplane Seats Are Almost Always Blue|11:03|BRIGHT SIDE|3|4|シートが青い理由の他にも、航空機にまつわる疑問に回答|
|Why Expensive Cars Aren't Always Reliable|9:27|Engineering Explained|4|4|成程なあ…という感じ。高級車を所有する富裕層のニーズ的にreliableでなくていいようだ|
|Walk Barefoot for 5 Mins a Day, See What Happens to Your Body|10:03|BRIGHT SIDE|3|3|科学的根拠があれば面白い。具体的なやり方があるのも良かった|
|Why Ford And Other American Cars Don’t Sell In Japan|7:12|CNBC|3|2|まあ、そりゃそうだよねという感じ|
|Zero Waste Is Not the Only Solution - 4 Tips to Have a Bigger Impact|9:22|Exploring Alternatives|4|4|ploggingというのは是非やってみたいと思った|
|Can Sea Water Desalination Save The World?|13:28|CNBC|3|4|熱脱塩や逆浸透という手法があり、今は後者が主流である、などを知ることができた|
|Why Planes Don't Fly Over Himalayas|8:55|BRIGHT SIDE|4|3|乱気流や酸素マスクの制限時間など、納得の理由の数々（後半は何故か危険な空港の話に）|
|Tesla's new Battery Strategy, explained.|8:09|Curious Elephant|4|3|テスラと中国の密接な関係について|
|Hydrogen Fuel Cell Cars Aren't The Dumbest Thing. But...Answers With Joe|18:45|Joe Scott|4|3|EC≫FCV>天然ガス自動車という話|
|Some Silicon Valley residents want self-driving cars off of their streets|5:44|Washington Post|3|3|自動運転に対する反発はあるよねえ。。やっぱり|
|Why Buses Don't Have Seatbelts|9:21|BRIGHT SIDE|2|2|バスに関する基本的な話|
|Can A Mercedes G-Wagon Actually Climb A 100% Grade?|13:56|Engineering Explained|4|3|Gクラスは名実共に素晴らしい車（欲しい）|
|Why Some Countries Are Poor and Others Rich|8:47|The School of Life|2|4|貧困の基本が分かる|
|15 Things You Didn't Know About The Renewable Energy Industry|13:33|Alux.com|3|3|再生可能エネルギーで成り立つ都市や企業は意外に多いことを知ることができた|
|Why The Toyota Land Cruiser Is Disappearing From America|14:40|CNBC|3|2|ランクルもランドローバーも素晴らしい車（欲しい）|
|Why incompetent people think they're amazing - David Dunning|5:07|TED-Ed|2|3|ダニングクルーガー効果について紹介。謙虚さって大事ですね。。|
|The Difference Between Gasoline And Hydrogen Engines|14:19|Engineering Explained|3|4|水素でネックになるのはやはりスペース。でも水素が勝っている要素も意外に多い|
|Why Tunnels Don't Collapse|8:39|Practical Engineering|4|4|小規模な実験とはいえ、実際に見ると説得力抜群|
|8 Most Destructive Mathematical Errors in History|10:16|They will Kill You|4|4|エンジニアとしては背筋がゾクゾクする|
|Do We Really Need 10-Speed Transmissions?|9:41|Engineering Explained|3|4|以外に沢山利点があって驚いた。そりゃ高級車に採用されるよね|
|Why Don't Scavengers Get Sick?|2:47|MinuteEarth|5|3|生きるための知恵。あと動画中の単語がとにかく難しい|
|These Names Can Kill Animals|3:46|MinuteEarth|3|4|名前だけでこうも変わる、というのは何かしら実際の生活に活かせそう|
|Why Volvo Is Losing Its Big Lead In Safety|14:07|CNBC|4|3|ボルボの安全性に対する取り組みの歴史が興味深い|
|Should You Warm Up Your Car Before Driving?|3:04|Engineering Explained|3|4|当たり前になっていることほど、何故するのか考えるのは大事ですね|
|Michelin presented airless tires for production cars|3:59|Innovative Techs|3|5|ミシュランやハンコックの最新タイヤの紹介。これからの進化が楽しみ|
|Top 10 Most Insane Machines You must see|10:27|Innovative Techs|3|3|自動搾乳機やケーブル・パイプ用掘削機が個人的に面白かった|
|10 MOST AMAZING MACHINES|10:41|Innovative Techs|3|4|自動車の解体機、競走馬のトレーニング用機械、トラックの荷台ホテル、橋を調査する機械が面白かった|
|Top 10 Most Expensive SUVs In The World|11:26|Alux.com|2|2|ここまで高いと流石に欲しくはならない（欲しいけど）|
|Why SUVs Have Skyrocketed in Popularity|10:10|Alux.com|3|2|SUVの基本的な話|
|4 Reasons Why The Rotary Engine Is Dead|5:12|Engineering Explained|4|4|熱効率悪い、燃費悪い、エンジンオイルの管理が難しい。。など|
|5 Reasons Pushrod Engines Still Exist|4:26|Engineering Explained|4|4|トルク、サイズ、重量、コストなど、意外に長所があった|
|Are CVTs Bad? Why Mazda Avoids CVT Transmissions|12:14|Engineering Explained|4|3|走る歓びの実現のために、出力のダイレクト感は大事|
|6 MOST INCREDIBLE WHEELS YOU’VE EVER SEEN|10:04|TechZone|3|3|生分解性タイヤ、再構成可能タイヤ、球体型タイヤなどが面白い|
|Sustainable Aquaculture|4:02|Science Animated|4|3|養殖に病気は大敵|
|Underwater farms vs. climate change - Ayana Johnson and Megan Davis|4:31|TED-Ed|3|5|様々な養殖の手法と、それぞれのメリット・デメリットを紹介|

## ② 読んだ本

自己啓発及び技術書に限定して、今年読んだ書籍を下記にリスト化してみた。しかし少ない…来年はもっと読もう。
※ 下記の役立度も、完全に主観です。

|タイトル|役立度|所感|
|---|---|---|
|GIVE＆TAKE 「与える人」こそ成功する時代|5|ここ数年読んだ中で一番の良書。今後の人生の指針になった|
|システム同定の基礎|5|難易度は高いが、システム同定に関する数少ない書籍の1つ|
|ゼロ秒思考 頭がよくなる世界一シンプルなトレーニング|5|具体的なアクションプランが書いてあるのがいい。これを続けるのも来年の目標|
|仕事に追われない仕事術|3|そのまま実践できるわけではないのもあったが、仕事を効率的に終えるためのヒントが見つかった|
|ArduinoとMATLABで制御系設計をはじめよう!|5|セットを揃えるのに少しお金がかかるが、制御工学とmatlabの基礎を学ぶことができた|


# 2020年の目標

以上を踏まえて、2020年に達成したい目標を下記のように設定し、一年後に達成率を確認する。
（ここに書くことで、自分自身にもプレッシャーを与えるのが目的）
ただしこれは現時点の目標であるので、理由を伴う計画変更はよしとする。

|No|内容|理由|
|---|---|---|
|1|制御工学ネタを3つ以上投稿|制御屋の端くれなので|
|2|組込みネタを3つ以上投稿|組込み屋なので|
|3|機械学習ネタを1つ以上投稿|未経験だけど興味があるので|
|4|画像認識ネタを1つ以上投稿|未経験だけど興味があるので|
|5|C or C++ネタを3つ以上投稿|組込み屋なので + オブジェクト指向を学びたいため|
|6|pythonネタを3つ以上投稿|使えると色々便利＋機械学習のため|
|7|Rustネタを1つ以上投稿|危険とされるCをセキュアに書いてみたいので|
|8|自分の思考を毎日紙に書くようにする（赤羽雄二 著「ゼロ秒思考 頭がよくなる世界一シンプルなトレーニング」を参考）|直感的ではあるが凄く役立ちそうと感じた ＆ 尊敬する経営者（まこなり社長）も勧めていたため|
|9|全てのQiita投稿ネタは行き当たりばったりで進めずに進捗計画を立ててから開始|自身の進捗管理を自力でできるようになりたいため|
|10|英語の勉強を毎日継続|英語を毎日使用する仕事に就きたいので|

我ながら立派すぎて守れるかどうか不安だが、折角公開するので頑張ってみようと思う。

# 最後に

年末に訪れた役所のトイレにあった注意書きの内容が胸に突き刺さったので、これを肝に銘じて2020年を過ごします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/271833/135757a2-de42-63cf-2679-45533236a449.png)