プログラミングができるようになりたいけど,上達しない...おすすめの上達方法を教えて!
こういった悩みにお答えします.
本記事の信頼性
- リアルタイムシステムの研究歴12年.
- 東大教員の時に,英語でOS(Linuxカーネル)の授業.
- 2012年9月~2013年8月にアメリカのノースカロライナ大学チャペルヒル校(UNC)コンピュータサイエンス学部で客員研究員として勤務.C言語でリアルタイムLinuxの研究開発.
- プログラミング歴15年以上,習得している言語: C/C++,Python,Solidity/Vyper,Java,Ruby,Go,Rust,D,HTML/CSS/JS/PHP,MATLAB,Verse(UEFN), Assembler (x64,ARM).
- 東大教員の時に,C++言語で開発した「LLVMコンパイラの拡張」,C言語で開発した独自のリアルタイムOS「Mcube Kernel」をGitHubにオープンソースとして公開.
- 2020年1月~現在はアメリカのノースカロライナ州チャペルヒルにあるGuarantee Happiness LLCのCTOとしてECサイト開発やWeb/SNSマーケティングの業務.2022年6月~現在はアメリカのノースカロライナ州チャペルヒルにあるJapanese Tar Heel, Inc.のCEO兼CTO.
- 最近は自然言語処理AIとイーサリアムに関する有益な情報発信に従事.
- (AI全般を含む)自然言語処理AIの論文の日本語訳や,AIチャットボット(ChatGPT,Auto-GPT,Gemini(旧Bard)など)の記事を50本以上執筆.アメリカのサンフランシスコ(広義のシリコンバレー)の会社でプロンプトエンジニア・マネージャー・Quality Assurance(QA)の業務委託の経験あり.
- (スマートコントラクトのプログラミングを含む)イーサリアムや仮想通貨全般の記事を200本以上執筆.イギリスのロンドンの会社で仮想通貨の英語の記事を日本語に翻訳する業務委託の経験あり.
こういった私から学べます.
目次
元東大教員がプログラミングが思うように上達しない3つの理由
元東大教員がプログラミングが思うように上達しない3つの理由を語ります.
プログラミングが思うように上達しない3つの理由は以下になりますので,それぞれ解説していきます.
- プログラミングは,数学,物理,化学のように体系的に学べる学問ではないため
- プログラミングは,新しい言語を習得することであるため
- プログラミングの問題解決には,論理的思考力が要求されるため
プログラミングは,数学,物理,化学のように体系的に学べる学問ではないため
プログラミングは,数学,物理,化学のように体系的に学べる学問ではないです.
数学,物理,化学は学問としての歴史が数百年以上と古く教育方法は体系化されているため,この順番で学べば自然に習得できることがわかっています.
これに対して,プログラミングはコンピュータの技術で,ここ数十年に発展してきた学問です.
また,コンピュータは日々進歩しているため,仮想通貨の技術のようにこれまでの常識が変わることも多くあります.
なので,コンピュータを体系化して教えるのが非常に難しいです.
仮想通貨のビットコインやイーサリアムを知りたいあなたはこちらからどうぞ.
さらに,プログラミング(特にC言語)を理解するためには,ハードウェア(コンピュータアーキテクチャ),コンパイラ,OSの知識が必要ですが,これらを理解するためにはプログラミングが必要という相互に依存関係があります.
例えば,プログラミングを初めて学んだ時は理解度30%くらいで,その後にハードウェア(コンピュータアーキテクチャ),コンパイラ,OSを学んだ後にもう一度プログラミングを学ぶと理解度が40%~50%になるという感じです.
私を含めて最初はみんなわからないところからスタートなので,プログラミングを初めて学んで全然わからなくても実は問題ではありません.
プログラミングは,新しい言語を習得することであるため
プログラミングは言語なので,英語を習得することに近いイメージです.
プログラミングは読み書きが主ですが,英語は会話が主という違いはあります.
※正直,英会話ができれば英語のリーディングやライティングもある程度はできるようになります.
プログラミングの単語や文法を英語の単語や文法のようにいくら暗記してもできないのと同様です.
プログラミングの問題解決には,論理的思考力が要求されるため
プログラミングの問題解決には論理的思考力が要求されます.
なぜ動かないのかを論理的に考えていくと自然と解決方法がみつかります.
論理的思考力は,基本的には以下のスキルになります.
- 論文を書くスキル
- 自分の考えを論理的に説明する(議論する)スキル
これらのスキルが低いとプログラミングの問題解決がうまくできない場合が多いです.
プログラミングが上達するおすすめの方法
プログラミングが上達するおすすめの方法は,「習うより慣れろ」です!
つまり,良質なプログラミングのコードをひたすら読んで書くことですね.
英会話ではシャドーイングという英語のネイティブの発音や発声を真似して,ひたすら聞いたり話したりしますよね.
英会話と同様にプログラミングもインプットとアウトプットの反復が上達するコツです!
自然に英語が話せるようになることと同様に,自然にプログラミングを書けるようになることです!
そうすれば気がついたらあなたは自然にプログラミングができるようになります!
プログラミングは「好きこそものの上手なれ」ということも重要です!
スラムダンクの桜木花道の名言「オレはバスケットをやる」「バスケットマンだからだ」が刺さりますね.
※プログラミングだと「オレはプログラミングをやる」「プログラマーだからだ」ですね.
バスケのようにプログラミングを続けることが上達への近道です!
スラムダンクを知りたいあなたはこちらからどうぞ.
まとめ
元東大教員がプログラミングが思うように上達しない3つの理由とおすすめの上達方法を語りました.
本記事を読んでプログラミングができるようになるイメージをつかんで下さい.
元東大教員が語るC言語が挫折するほど難しい5つの理由とできるようになる3つの方法もあわせて読むことをおすすめします!
C言語を独学で習得することは難しいです.
私にC言語の無料相談をしたいあなたは,公式LINE「ChishiroのC言語」の友だち追加をお願い致します.
私のキャパシティもあり,一定数に達したら終了しますので,今すぐ追加しましょう!
独学が難しいあなたは,元東大教員がおすすめするC言語を学べるオンラインプログラミングスクール5社で自分に合うスクールを見つけましょう.後悔はさせません!