プログラマーへの道、備忘録
略歴
90年代のAppleとAdobeのDTP革命の熱に浮かされて、薬科大学を中退後、グラフィックとウェブデザインを独学し、フリーランスとしてウェブ系の仕事を5年ほどしつつ、その後はモノ作り中心のデザイナーに転身。
ITエンジニアとしてビリオネアとなったドイツ人投資家との縁で、彼の所有する外資系リゾートにて支配人として10年ほど働く。
が、コロナの厄災にて観光業が壊滅。失業状態。
非常事態宣言下のフィリピンにて巣ごもり中にITプロジェクトへのオファーと、数ヶ月の自習期間を与えられる。
20年ぶりに見るWEB開発のノウハウは、HTML、CSS、PERLでコツコツ書いていた20年前とは別世界であり、戦後からタイムスリップした様な気分で、ゼロから勉強し直さないと全くついて行けないと絶望する。
自習とは自分との戦いである。
モチベーションを保つ為と、学んだことを整理する目的で、自分の為に記事を書いていこうと思います。
プロジェクトに必要なスキルは
Linux
node.js
express
mongoDB
bootstrap
OAuth
React
この辺を復習がてら備忘録として書いていこうかな。
英語にてプログラミングを学び直した結果
90年代に主にフロントエンドのサイトデザインをしていて、動的なものを作る際に、PERLやJAVASCRIPT等をオライリー本(もちろん日本語訳)で勉強していた時は、挫折、再開を繰り返し、結局はほとんど身につかず、人のコードをコピーして少し書き直す程度で茶を濁していた訳だけど、海外の会社にて10年あまり働き、英語のソースをベースに勉強を始めた結果、わかり易すぎて目から鱗であった。
気づいたのは、プログラミングが分かりにくい大きな原因が、訳された日本語がムズすぎる問題である。
正規表現、連想配列、関数、引数、実行形式、コンパイル とかめちゃ分かりにくいし、本を開いてこういう単語がいっぱい出てきた時点で読む気失せるよね。
単語からそれがなんなのかが全くイメージできへんやん。
英語だと、その言葉のままやねん!当たり前だけど。なので、非英語圏の人は、まずその言葉がなんなのかを理解しないとしけないっていうので、大きなディスアドバンテージ。
その言葉を調べると、その言葉を説明するさらに知らない言葉が出てきて、さらにそれを調べるとさらに。。。という無限ループに陥り、挫折。
プログラミングが難しい というより、プログラミング用語を日本語訳した言葉が難しい。っていうのはあるんじゃないかと思う。
その次は、英語でのリファレンスやソース、チュートリアルの多さ。
とにかく情報量が日本語と比べて圧倒的に多い。
公式のドキュメントやチュートリアルは勿論ほぼ英語、インド人やロシア人プログラマーとかでも、情報発信は勿論英語。Youtubeでも怪しげなインド人が超わかりやすいデータベースのチュートリアルをしていたりする。
例えばnode.jsでよく使われる、エラーと返ってきたデータとを引数とするコールバックがあって、それについて調べたとき、日本語ではほとんど出てこないんだけど、英語では色々な人が解説していて、圧倒的に情報量が違う。stack overflowみたいなエンジニア系の掲示板とかも賑わってる。
つまり、英語圏のプログラマーと、非英語圏のプログラマーでは、もう圧倒的に後者不利であって、英語圏のプログラマーはチートレベル。プログラミングの能力以前に難解な日本語訳された用語との戦いがあり、ある意味それってあんまり本質的ではないよねと。
コーディングで挫折しそうな人は、自分はコーディングの才能がないのではなく、よくわからない用語がわからないだけではないかと考えて、少し英語を習ってみると良いのではないかと思います。言語はプログラミング以上に人生に役立つしね。
↧