なんならchat gptに英語で聞いてみよう



いまはやりのchat gptですが、このおかげで本当に学習が楽になりました。これがなかったら自分はこの歳 (61歳)でSQLやpythonを学べてはいなかったと思います。40代の頃も初歩的なSQLは業務でつかってましたがそれ以上を学ぶ気力はなく当時本を読んで学ぶことは断念してました。

本当にここ数ヶ月の話ですが、一気にSQLやpythonが上達したのはchatgptのおかげです。プレミアム版で月額3000円ほど払ってますが、下手なスクールにいくよりもはるかに安上がりだし、プログラム言語に限らず、日常生活や政治や料理から日曜大工までなんでもかんでも答えてくれます。もちろん無料版でも十分と思いますが、それくらい月額3000円くらいは惜しくないと感じています。

そんな僕ですから米国MBA取得後に30代のころからパソコンの設定言語は英語(当時、外資系に勤務)、スマホも設定言語は英語。最初にマイクロソフトアクセスをマンツーマンで教えてくれたRegional Officeの同僚で外国人(英語ネイティブでなかったにせよ)だったので、MS-AccessやExcelも必然的に英語に設定してました(1998年ごろ)。

その後米ハイテク企業でまたアナリティクス関連の仕事を10+年振りに再開することになりあわてて当時SQLをもう一度学ぼうとcoursera.orgというオンライン学習のコースに登録したものの途中でつまづき、要領を得ず進行のニュアンスがわからなかったりで断念。courseraのオンライン窓口はオンラインがゆえに微妙なニュアンスの質問はできず、会社の経費をつかうも未修了のまま終了しました。ここ数年また別の米企業にて再度アナリティクスの業務に従事することになり今度は、きちんとSQLを習得しようと今いろいろ頑張ってます。そんななかで独自に開発した学習方法が以下です。

やや脱線しますが米国のテック系アナリテイク分野の仕事に応募するとほぼ間違いなくSQLのテストがあります。最初は面食らって落ちたりしていたのですがそんななかで出会ったとっても優れたサービスをご紹介します。それは stratascratch.com とよばれるサービスでいわゆるそう言う系の企業の入社面接の過去問を一式そろえていてSQLの訓練にはもってこいです。有料ですが価値あると思います。僕はLife Time Plan(生涯料金)というのがあって確か当時5万円くらい払いました。これは生涯使えるにして損はない選択と思います。

言うまでもなくstratascratch.comは完全に英語環境ですが、最近はわからない時にchatgpt(有償版がおすすめ)に質問できる。同じ流れからchatgptにも英語で聞くと回答も英語でかえってくる。そのなかでstratascratch.comの過去問をこなしてSQLが上達するという英語のループが確立されるイメージです。

見方によってはカンニングっていわれるかもしれませんが、もちろん本番の試験ではカンニングはできませんから、。。でもこの方法で理解が深まった実感はあります。まず自力で解いてみる、エラーが戻ってくる。そこで自分の間違った回答をCHATGPTに放り込むとCHATGPTから解説つきで答えがもどってくる、それをつかって回答する。確かにカンニングですが、目的が理解促進なので、個人的にはぼくはそれでいいと思います。次第に自力で解けるようになるというシナリオです(言うは易しそれなりに努力は必要)。実際とある巨大ECOMMERCEハイテク企業のSQLの試験では、オンラインの対面でその場でチャットボックス越しに質問され、こちらの回答は画面共有でライブで監視されるというものでした(カンニングできない)。全問正解はできず落ち込んでいたのですが、なぜか採用通知がきました。(踏ん切りがつかずに行かなかったけど。。やや後悔)。

調べると日本の大学でSQLを教えることはあまりないようで、過去の職場で出会ったエンジニアの方もほぼ皆さん独学や専門学校で習得されてるようで、日本人はほぼ例外なく日本語でSQLを学ばれてるようです。もし外資の飯を食っていこうと思われるなら、あるいは世界を舞台に活躍したいなら、僕のおすすめは「SQL / Pythonは英語で学ぶ」です。

1+1=

答えは2です。英語でも日本語でも。
でもご存じのとおり読み方が違います。
日本語では「いちたすいちはに」
英語では”One plus one equals two”と全然違う音になります。
でも書く分には全く同じ
1+1=2 つまり数式こそグローバルなのです。

これlinga franca (= Universal language)と呼ばれたります

逆に言えば日本人であれば知らず知らずのうちに小学校2年生から「究極の世界共通言語」=算数を学んでいるのです。ただ読みが日本語になってるだけで、その仕組みは英語でもそのまんま通じるのです。英語が喋れなくても筆談で意思疎通ができそうです。

この延長線で、やや飛躍しますが、僕は数学を日本語で学ぶ必要はないと思ってます。なぜなら解くことが目的であるなら何語で解いても答えは同じ。それが数学のいいところ。

その際英語で数式をつなぎ合わせる作業を繰り返すことで、次第に英語そのものも身についてくる。ここが一石二鳥で。ただ目的はぶれない、数学を学ぶという主たる目的があって、一石二鳥でついでに英語も身につけるくらいの感覚がいいとおもいます。

さらに飛躍するならば、その延長線にあるのがプログラミング言語(このサイトのスローガンでもあるーThat’s why I learn Python / SQL in English!です。)

Pythonという言語にpandaというライブラリがあってhead()という関数があります。これは先頭の5個のデータを出力するという意味なのです。イメージでいうと以下になります。(#のところがコメントなのですが日本語で書いてもいいし英語でも何語でもいいです。備忘録です。英語の場合には以下のイメージ。)

#Displays the first 5 rows of the DataFrame
df.head()

もし#コメント部分が日本語ならば、

#DataFrameの先頭5行を表示する
df.head()

といった具合ですが、いずれにしても、このコマンドdf.head()を叩いたならばこの結果返ってくるアウトプットは日本語でも英語でも全く同じ以下です。

  Name Score
0  Alice  85
1  Bob  90
2  Charlie 78
3  David  92
4  Eva   88

pythonのコード部分であるdf.head()はようするに英語なんです。head()で最初の5行がもどってくる、head=先頭という意味そのままなんです。日本語のpythonコードが先頭()という風にかわるわけではありません。df.head() の動作は 言語設定に影響されないんです。ただhead=>先頭と読み替えるとその分脳の中が英=>和という余計な動きをさせられ本来の目的であるpythonを学ぶためにはむしろ邪魔だったりします。headはそのまんまheadと理解したほうが楽。英語は目的ではなくあくまでも手段、ここでの目的はpythonです。

結果的には日本語でpythonを学ぶとコメント部分だけが日本語、
関数自体はpython(つまり英語の親戚)になるので、脳内の状態としては日本語と英語が混在してしまうことになります。個人的には英語一本に統一したほうがシンプルでわかりやすい。(正直、和英混在状態はウザいと感じます、また、プログラムのコメントに求められる英語力はさほど高いわけではないのはご想像の通りです。多分わかりきったフレーズの使い周りで事足りるでしょう。)

目的はpythonという言語を学ぶこと手段が英語でというだけです。