pseudoyu

pseudoyu

Blockchain | Programming | Photography | Boyi
github
twitter
telegram
mastodon
bilibili
jike

周報 #23 - 新しい技術を学ぶ方法(文系からの転職者の考察)

前言#

weekly_review_1219_photo

本記事は 2022-12-14 から 2022-12-19 までの一週間の生活の記録と考察です。

今週も引き続きコロナの影響で在宅勤務(このオープニングはもう不要かもしれませんね、すでに常態化しています)で、相変わらず「本業をおろそかにして」フロントエンドを学びつつ、少しだけバックエンドのコードも書いていました。何日かは知らず知らずのうちに夜明けを迎えてしまい、昨年香港での締切や期末試験の準備をしていた頃の状態を思い出しましたが、今回は外部からのプレッシャーや不安感が少なく、より楽しんでいます。

以前は毎晩遅くまで働いていた経験があるため、自分の時間を自由に使い、学びたいことを学んだり、猫と一緒にぼんやり過ごす日々がどれほど貴重であるかを実感しています。しかし、最近は自分の日常を調整し、共有することに時間を費やしていて、実用的な内容や経験を書くことが久しぶりになってしまいました。今日は自分の学習経験、方法、考え方を少し共有したいと思います。おそらく概念的な内容が多く、今後(おそらく?)より具体的な共有もあるかもしれません。

考えた結果、以下の二段落を追加しました。

実は最初は年度のまとめを書くべきだと思っていたので、今年一年(厳密には 5 月から再び更新を始めたこの半年)の自分の記事を見返しました。5 月には多くのツールや効率に関する記事を投稿しましたが、大半は週報で、いくつかの考察や思考、感情、そしてつぶやきが含まれています。表現欲のための手段に過ぎないと言えますが、時折、自分が感情を語りすぎていることに恥じ入ることもあります。ブログを出口として使っているように感じたので、少しでも実用的な内容を提供できればと思い、この経験談を書きました。気がつけば、7000 字近くになってしまいました。

年度のまとめも行います。今年の様々な出来事、失ったもの、得たもの、感謝すべきこと、避けられない後悔などについて触れる予定です。いくつかのことを再度言及するかどうか迷いましたが、よりリアルに向き合うことにしました。結局、すべてのものには期限があり、パイナップルの缶詰もそうです。今年もそうです。これらの喜怒哀楽が私の 2022 年を形成し、より完全な私を作り上げました。

そして、12 月 31 日に投稿します。私にとって特別な日です。

今年のある時点から、私は各記事にテーマソングを追加しました。五月天の「後来的我们」という曲が好きです。今日は「Brand New Day」に変更しました。これは「底辺辣妹」映画のテーマソングで、ずっと良い曲だと思っていて、この文章にもぴったりです。

新しい技術を学ぶ方法#

私の学習方法探求の旅#

初探#

以前は、様々な学習方法論を崇拝するタイプではなく、「どうやって」という体に対しても無関心でした。高校時代に『如何阅读一本书』を読んでも、最後まで読み切れませんでした(?)。これは人それぞれのことだと思っていました。多くの投稿を見ても、自分のある時期の少し神秘的な「ひらめき」には及ばないと思います。もちろん、ここでの「ひらめき」はほとんど才能とは関係なく、自分の道を模索する中で見つけたものです。

転機が訪れたのは、高校のある書店で、浙江大学の学生たちが自分たちのまとめた受験資料や経験を販売しているのを見かけたときです。好奇心から歴史の本を一冊買い、暇なときにめくってみました。中にはタイムラインの整理や記憶の小技があり、実際にその知識を学んだときには、よりスムーズに活用できることが多かったです。その後、歴史は私が常に学年上位に入る科目となり、徐々に歴史学習への興味も積み重なりました(歴史学科を受験しようと思ったこともありました)。

今思うと、その本の内容自体には特別な部分はなかったかもしれません。知識は知識であり、ただ一人の受験を経験し、良い成果を上げた大学生の視点から方法をまとめたもので、「次元を下げる」効果がありました。これが、他の科目の学習においても自分の方法を模索し始めるきっかけとなったのです。

学習心態#

本記事では、様々な理論に基づく学習法を紹介するつもりはありません(主に説明できないので)。「XX 学習法」のような動画や記事はたくさんありますが、まとめや内面化を経た後では、原文を読むのに勝るものはありません。ここでは、私が最初にブロックチェーンを学び始めたときに多くの恩恵を受けた『是落拓呀』先輩の『私は新しい技術や知識をどう学んでいるのか?WW 学習法?ブロックチェーンを例に。』をお勧めします。

今回は、私が重要だと思うがしばしば見落とされがちな点について、私の考えや経験をお話ししたいと思います —— 学習心態です。

大学では英語専攻に調整され、約半学期の時間を費やした後、これは私が情熱を注ぎ続けられる専門ではないことを非常に明確に認識しました。しかし、その時の私はまだ明確な目標を持っていなかったため、迷いと不安を和らげるために様々なスキルを学び続けました。

サークルでは主に「技術」に関連する仕事を担当していましたが、ここでの技術とは主にグラフィックデザイン、写真撮影、動画編集などのスキルを指します。最初に重点的に担当したイベントプロジェクトでは、急いで作成するプロモーションビデオ / MV の仕事がありました。印象としては複雑ではなく、特に特殊効果もなく、いくつかの動画素材の基本処理、編集、エクスポートを行うものでした。せいぜい異なるサイズの画面に合わせて良い表示効果を得ることが求められました。

ある週末に Adobe Premiere Pro(通称 PR、私を 5、6 年も苦しめた悪名高いソフトウェアです。後に自分の多くのことが動画編集に関連することになるとは思いもしませんでした)をダウンロードし、いくつかの入門チュートリアルを見て、2 日で仕上げました。タスクを提出する際、メンバーや部長は驚いていて、「以前に学んだことがあるのか、どうしてそんなに早いのか」と尋ねられました。

実際、私が動画撮影や編集について知っていたのは、高三のときに友達と一緒に作った誕生日メッセージ動画だけでした(確か「描声描影」か「愛剪輯」を使ったような気がしますが、今となっては懐かしい名前です。この友人は今、監督や編集に関連する仕事をしています。奇妙な巡り合わせです)。PR を使っているときも、特に難しいソフトウェアだとは感じず、編集が難しいことだとも思わず、自然に学ぶことができました。わからない問題があればその場で調べればよく、特に技術的な要素はなく、ただ私が学んだだけです。

多くの友人は、初めて知らないものを学ぶときに本能的な恐怖感を抱くことが多く、それが非常に複雑だと感じ、自分で心理的な障害を設定してしまい、最終的には学ぶ決心がつかないことがよくあります。後に、私が部門やサークルで教える際には、基本的な実践プロジェクトを通じて皆に「これはそんなに高嶺の花ではない」と理解してもらうことが多く、この心理的要因を打破し、学習心態を調整した後、学習操作自体が非常に容易になり、効果も良好でした。

もちろん、これらは一般的なスキルに過ぎず、実際のプログラミングに関連する技術は大きく異なりますが、この点に関する心態の変化の過程は長く語ることができるかもしれません。よく質問されることでもあるので、文系からエンジニアへの道についても触れておきます。

私の文系からエンジニアへの道#

VB 入門#

理工系の大学に属する文科学院として、私たちが非常に理工的な特徴を持っているのは、コンピュータを学ぶ必要があることですが、基礎的な VB(Visual Basic)言語だけです。浙江の学業レベル試験の情報技術科目で VB の実技試験が必要なため、高校である程度の基礎を学んでいたおかげで、再学習も比較的楽でした。文法は再学習が必要でしたが、心構えとしてはそれほど難しいことではないと感じました。

当時、周りの多くの友人がプログラミング言語に初めて触れるため、文法や様々な記号に対して非常に強い恐怖感を抱いていたので、私は自分の考えや説明を整理して数十ページのノートを作成しました。一冊の本が薄い数十ページの紙に変わり、友人たちの学習心態に大きな変化をもたらし、効果的でした(後に「継承」されて次の世代に伝わり、伝説の先輩の宝典になった経験もとても嬉しいことでした)。

方向転換#

VB を再学習した後、突然、コードを通じてアイデアを創造し、実現することができる感覚がとても好きだと感じ、ある程度「得意」だとも思いました。それで、当時は少し大胆な考えが芽生えました —— 「もしかしたら、コンピュータを自分の将来の方向にすることができるのではないか」。

もちろん、学校の「文系の学生は理工系に転向できない」という謎の規定のため、転専攻の道は完全に閉ざされていました。武大のコンピュータ副専攻の申請も、成績が少し足りずに失敗しました。

まあ、自分で学ぶことにしましょう。

そこで、華中科技大学でコンピュータを副専攻している友人にカリキュラムと教材をもらい、当時の心構えは非常にシンプルでした。専門の多くの授業を自学で補うための時間とエネルギーは確かに足りないかもしれませんが、副専攻の授業の負担は受け入れられるものでした。そこで、オペレーティングシステムやコンピュータネットワークなどの基礎コースを補いながら、Python(そう、私は廖雪峰先生の Python コースから始めました)を学び始めました。「本業をおろそかにする」旅が始まりました。

難航#

その間に無数の葛藤や、自分が無能だと思って放棄したくなる深夜の瞬間がありました。また、葛藤の中で迷いを感じて、様々な職種のインターンシップやアルバイトを行ったり、後に会社を設立して動画編集を行ったりする経験もありました。これについては、別の記事『週報 #19 - 起業経験を振り返る』で触れています。

その数年間、私はこの道を困難に歩んできました。盲目的に様々な言語を学び(自分がいくつかのマイナーな言語を知っていると聞こえるのがかっこいいと思っていました)、退屈な基礎知識の学習を放棄して Web や小プログラムを書くことに(外収入を得られるから)、様々な底層原理やデータ構造を理解する必要がないと思い込んでコードを書いていたこともありました。長い間学んでいたのに、進展があまり見られない瓶頸期もありましたが、もちろん、嬉しい収穫もたくさんありました。しかし、これは日常のことなので、詳細には触れません。

その後、職業計画(正直に言うと、ほとんどの英語専攻の学士が現在の環境で技術職を見つけるのは、履歴書を提出することすら難しいという現実に直面しています)と、特定の分野での専門性を高めたいという考えから、卒業後に香港のコンピュータ学科の大学院に応募するためにギャップイヤーを取りました。この部分については『23 歳の告白:意味を追い求める』で触れています。以前、台大のコンピュータのブロックチェーン方向の教授の研究室から招待を受けたことがありましたが、最終的にはキャンセルされたことが私に大きな打撃を与えました。それもまた、自分の夢を叶えることになりました(あなたが私を必要としないなら、私はあなたよりも価値がある)。

心態を正す#

実際、後の学習において、私が最も恩恵を受けたのは、「私は英語専攻の学生だから学べない」という理由を一度も持たなかったことです。今では、知識を得るための高い壁はほとんどありません。他の人が学べる知識を、私は多くの公開講座やチュートリアルで学ぶことができ、さらには自分が選んだ最適なコースを見つける権利も得ました。その結果、MIT の公開講座や Coursera のコースをたくさん受講しました。

香港大学のコンピュータ学院の面接に参加した際も、元の専攻を弱点として避けるのではなく、異なる専攻から来た学生として、愛する専門に対してどれだけ努力し、成果を得たかを述べました。専門や業界に対する探求や考えも含めて、最終的なオファーにも一定の助けになったと思います。

文系生の転職ガイド#

余談ですが、文系からエンジニアへの転職について、以前からガイドを書こうと思っていました。おそらく『文系生プログラミング入門 / 転職ガイド』のようなタイトルで(聞こえはマーケティングの Python 広告のようですが)、ただのチュートリアルの推薦や応募経験の共有に過ぎないと思っていました。最終的な結果には運も大きく影響しており、共有してもあまり実用的な内容はないと思っていました。むしろ、サバイバーズバイアスの「自慢」のようになってしまうので、ずっと手を付けていませんでした。

しかし、今は 1 年以上の仕事と探求学習を経て、プログラマーという職業、あるいはブロックチェーンという業界で何とか足場を固めたと感じています。新しい技術や知識を学ぶ上での小さな経験を持っていると思うので、このアイデアを再開し、小さな穴を掘って少しずつ埋めていこうと思います。

しかし、実際にこのことを行おうとしているのは、転職がどれほど素晴らしいか、またはこのことがどれほど簡単かを誇示するためではありません。業界には確かに一定の恩恵がありますが、転職や技術学習には多くの苦労や辛さもあります。多くの夜を徹して働き、自分を疑う瞬間もたくさんありますが、それは大したことではありません。そして、結局は少しずつの積み重ねによって成り立っています。素朴でありながら非常に真実な理論のように —— 「他にはない、ただ手が慣れているだけ」。

ポッドキャストや Twitter で多くの尊敬する技術者を見かけますが、転職した人も少なくありません。それに比べて、自分の能力では皆に何かを教えるにはまだ足りないと思いますが、これらのことを書き留めることで、自分の考えや心の旅を伝えたいと思っています。少なからず、この分野に興味を持っている人が心態の問題で怯えて前に進めないことがないように。

関連する経験や知見がある方も、ぜひ参加して貢献してください。

私はどのように学んでいるか#

本題に戻り、新しい技術や新しい分野に接する際の基本的なパターンについてお話しします。純粋に個人的な経験の共有です。

情報源の収集#

以前の学習スタイルや個人的な情報収集の特性から、私は新しい技術や知識を学ぶ際に多くの情報源を集めることに非常に傾いています。検索エンジンやアルゴリズムの推薦結果よりも、好きな Youtuber や個人ブログの著者の過去の動画や記事を探すことに慣れています。時には意外な発見があることもあります(主に、あの大物たちは本当に強力で、広範囲にわたっているので、以前 Python や Go のブログを見た人たちがブロックチェーンに関する非常に質の高いコンテンツを更新していることが多いです)。彼らの動画や記事から、学習中の落とし穴やこの技術の実際の応用を見ることができます。

例えば、Twitter の友人『STRRL』のブログ『strrl.dev』では、彼が試行錯誤している多くの小さなプロジェクトを見ることができ、私も同じニーズを持っているのに、こういう方法で実現できるとは思ってもみませんでした(またはできなかった)。多くのインスピレーションを得ることができます。また、別の Twitter の友人『Nova Kwok』のブログ『Nova Kwok's Awesome Blog』を見ていると、「この人はどうして何でもできるのか」と思うことがよくあります。

具体的な知識やチュートリアルだけでなく、彼らからは自分がなりたい姿を見つけることができ、より多くの好奇心や探求心を持ち、未来に対する期待を高めることができます。

初歩的な理解#

チュートリアルを選ぶ際、私は以前も述べたように、Crash Course の形式で始めるのが好きです。「XX 時間で XXX を学ぶ」という直訳は少しマーケティング的な響きがありますが、YouTube には本当に多くのこのようなシリーズがあります。例えば『Next.js Crash Course 2022』を検索すると、非常に面白い結果がたくさん出てきます。

nextjs_crash_course

最近、ÐApp デモを作成する際に Next.js を使って基本的なフロントエンド表示を行ったので、検索結果の中でTraversy MediaNext.js Crash Courseを見ました。彼の解説スタイルがとても好きで、1 時間でこのフレームワークやフロントエンド開発言語の基本的な理解を得ることができました。体系的な学習を経ていないため、プロジェクトを手掛けるのは難しいですが、後のプロジェクトでフロントエンドコードに出てくる文法が何をしているのかを理解できるようになり、他のフレームワークの基礎の上で自分のカスタマイズを行うのも比較的容易になりました。

例えば、これは私が Next.js Crash Course を見た後、別の好きな Youtuber devaslifeがオープンソースで提供している『GitHub - craftzdog/craftzdog-homepage』プロジェクトを修正した個人のホームページで、『Yu - Homepage』です。短時間で非常に美しい小プロジェクトを作成でき、これは新しい技術を学ぶ際の良いモチベーションとなりました。

yu_homepage_profile

深い学習#

しかし、企業レベルのプロジェクトを書くためや、自分で複雑なプロジェクトを一から作成するには、Crash Course だけでは全く不十分で、より体系的な学習と多くのプロジェクトの実践が必要です。この時点で、より実践的なコースが必要になりますが、これは個人の好みによります。多くの Crash Course の作者は、自分のトレーニングキャンプや有料チュートリアルを持っていますので、好きなスタイルのブロガーを見つけたら、そのまま学び続けることができます。

私個人はUdemyプラットフォームを好みます。これは比較的古いオンラインコースのサイトで、価格は一見高額に見えますが、基本的にセールを行っており、常に様々な理由でクーポンを発行しています。いつ倒産するか心配です。平均して、一つのコースは約 9.99〜12.99 ドルで、人民元に換算すると 100 元未満で、非常にお得です。

例えば、前述のBrad Traversyは Udemy で React、Next.js、Tailwind CSS などのコースを開設しています。私は彼のプロジェクト指向のスタイルと教育スタイルが本当に好きです。Udemy には彼よりも評価が高いコースがたくさんありますが、それでも私は彼のコースを選びました。これらは私が Web 関連で購入したコースの一部です(多くは数日前のセール価格で購入したもので、まだ見始めていません)。

udemy_web_course

成果の出力 / プロジェクトの実践#

以前、私のリーダーと学習方法について話したことがあります。彼は新しい言語やフレームワークを学ぶ際、まず自分でプロジェクトを動かし、少しずつ変更を加え、問題が発生したら一つずつ解決していくという方法を取っています。これは非常に効率的な習得方法であり、プロジェクトの応用においてもより普遍的かもしれませんが、私はまだアカデミックなアプローチを好み、最初は相対的に効率が低いものの、最初からいくつかのベストプラクティスを習得し、後で問題に直面したときに心構えがより安定する方法を選びます。

内心の OS:もし私がリーダーのように前の晩に新しいフレームワークを発見し、翌日にはプロジェクトの構造を再構築する能力があったら、何の授業を受ける必要があるのでしょうか。

授業を受けることには、宿題やプロジェクトの実践、最終的なコース修了の達成感が伴います。学習の各段階で自分にモチベーションを与えることができます。例えば、1 週間以上で React コースを修了し、証明書を取得し、実際のサイドプロジェクトに成功裏に活用できたことは、自分を続けるための大きな励みになりました。

udemy_react_cert

もちろん、この方法にも一つのハードルがあります。多くの質の高いコースは YouTube や海外のプラットフォームにあり、基本的に英語で提供されているため、克服する必要があります。しかし、ほとんどの場合、字幕が提供されますが、私は個人的に英語で見る方が好みです。なぜなら、多くの専門用語が含まれており、機械翻訳はあまり良くないからです。

また、授業は一般的に期間が長いため、途中で放棄したり、前の内容を忘れてしまうことが容易です。実践や記録を行わないと忘れてしまうため、これを克服するために、私は二つの非常にシンプルで効果的な方法を採用しました —— 出力指向と結果指向の学習です。

出力指向は非常に理解しやすいです。私は自分の個人ブログを更新しています。かつては技術的な内容が多かったですが、今は日常のブロガーとツール効率のブロガーの間を行き来しています。私は新しい技術や知識を学ぶ際に、Logseq で重要なノートを記録するために画面を分割します。注意すべきは、これはコース資料を直接貼り付けるのではなく、むしろ自分のエディタで一度打ち込み、注釈を付けることです。さらに、重要なコマンドやコードスニペットを直接スクリーンショットで保存し、完了後にしばらく時間を置いてノートを消化します。

1〜2 週間後に再度ノートを見直し、ノートを整理して文章にします。ここで非常に重要な点が二つあります。一つは、1〜2 週間後、私たちは学び終えたときに比較的深い印象を持っており、「私はもうできる」と錯覚することがよくありますが、実際にはしっかりと習得できているとは限りません。これは一時的な記憶に過ぎないかもしれません。1〜2 週間は消化の良い周期です。そして、文章に整理することはもう一つの重要なポイントです。私たちはしばしば散発的なノートやマインドマップを書きますが、実際に一つの知識点を整理して自然言語で説明し、読者がスムーズに理解できるようにすることは非常に挑戦的なことです。

この時、前述の注釈やスクリーンショットが役立ちます。私は記事を書く際に自分自身と対話し、何度も見返す習慣があります。例えば、あるモジュールを書き終えた後、よく自問します。「もし私が読者だったら、ここでどんな質問をするだろうか?私はどう答えるべきか?」そうすると、しばしば説明が不十分な点に気づくことができます。さらに、何度も見返した後に補足説明を加えることで、完成した文章は通常、非常に整った流れで自分の思考ロジックに合った技術的なブログ記事になります。今後の復習や参考文献としても、他の資料を読むよりもはるかに効果的です。

実際には、より良い方法は動画で説明することです。一つの事を動画で説明することは、文章で明確にするよりも難易度が一段階上がりますが、私はまだ動画を録画する際の心理的障害を克服しようとしています。

来年の小さな目標は、技術系の Youtuber / アップ主になることです。最終的には萌えキャラのブロガーになるかもしれませんが、結局誰が私を見てくれるのでしょうか。週報を開くのは、捏ね捏ねするための人たちばかりですから、今日は投稿しません。年末のまとめにためておいて、一気に出そうと思います。

出力以外にも、もう一つあまりお勧めしない方法があります —— 結果指向の極限操作です。これは、自分の現在の能力範囲を超えた(でもあまりにも多くはない)タスクを先に引き受け、結果や締切に追われて迅速に習得し、問題に直面したときにより一生懸命に解決策を考えるというものです。

これは個人の心態、信頼感、マルチタスク能力に関係しているかもしれません。私は物事に冷静に対処する方で、しばしばいくつかのタスクを並行して行いますが、圧倒されることはありません。そして、何年も経験を積んできたことで、素朴な真実を理解しました —— どんなに複雑なタスクでも、締切が迫る数分前に奇跡的に終わることができるのです。これが第一の生産力かもしれません。

しかし、今はプロジェクトがますます複雑になっているので、あまりこういうことはしない方がいいですね。万が一失敗したらどうしますか。

まとめ#

残りの部分には特に多くの方法はありません。上記は新しい技術や知識を学ぶ際のいくつかの経験談に過ぎません。学び終えた後は、ただの入門に過ぎないかもしれません。エンジニアリング能力の育成には近道はなく、実践を重ねるしかありません。

技術は非常に面白く、異なる段階で理解し学ぶことでまったく異なる感覚を持つものです。私のリーダーは 20 年以上の経験を持つ強者ですが、しばしば夜中に突然メッセージを送ってきて、「XXX フレームワーク / ツールは面白いので、試してみてください」と言います。

私は彼のこの言い方がとても好きです。「遊ぶ」こと、私たちはもはや趣味を職業にすることがどのような体験かを悩んだり議論したりする必要はありません。なぜなら、私たちは本来楽しんでいるからです。仕事はただの生活の副産物に過ぎません。皆さんも自分の心の向かうところを見つけられることを願っています。

私は特別な存在ではありません。現在の段階では、具体的な技術や分野について深い記事を書くことは非常に難しいですが(でも努力しています)、自分の様々な経験を共有したいと思います。今後、より詳細な技術に関する動画チュートリアルやテキストチュートリアルを出す予定です。

さて、今日掘ったいくつの穴を埋めるか数えてみましょう。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。