New サムネイル CSSでプレースホルダー(placeholder)の色を変える:ベンダープレフィックスをカンマつ New サムネイル GolangでGoogle Cloud Storageに画像やファイルをアップロードする(os. New サムネイル GoでMySQLやMariaDBのtimestampを読みこむ:データベース接続時に?parse

プログラミング言語の最短勉強法:目的を持つ・英語で調べる・オライリーの本を読む

広告

プログラミング言語を最短でマスターする方法は 3 つある。

  1. 目的を持つ
  2. 英語で調べる
  3. オライリーの本を読む

逆に悪い勉強法は次のとおり。

  1. 目的を持たない
  2. いつも日本語で調べる
  3. 本でなくオンライン講座や動画に頼る

このページはある人に口頭で伝えたことをまとめた業務的なメモで、かなり過激な表現が入っている。感情的なプログラマーはこれ以上読まないこと。

目的を持たない学習に意味はない

成果を残さない学習に意味はない。仕事や業務の問題を解決するためにプログラミング言語を勉強すること。「趣味で Python を勉強しています」という人は永遠に Python をマスターしない。

練習やテストのプロジェクトを作って、自分や会社の問題と関係ない道具を作っている人は、今すぐその無駄なプロジェクトを削除し、現実的なプロジェクトを新規作成しよう。

広告

日本語で調べるプログラマーに未来はない

英語がわからない人はそもそもプログラミングを勉強してはいけない。別の職種についたほうがいい。最初から Stack Overflow や GitHub などのサイトで調べて、時々公式サイトのマニュアルを読むこと。

検索も次のように調べる。

php extract variables from included files

次のように調べてはいけない。

php 変数 インクルード ファイル 読み込み

自分で解決できない問題を Google で調べるとき、結局は英語のページに頼ることになる。

世界で標準化されるプログラミング言語、フレームワーク、ライブラリはいつもチェックしないといけない。標準化の運動はたいていアメリカで起きる。それらは GitHub のスター数だけでなく、掲示板の reddit や Medium などを通して理解する。もちろんすべては英語で書かれている。

オライリーの本を読む

ウェブにある情報はふるいにかけられた集合知で、根本的に即時的・具体的である。オブジェクト指向とデータベースの扱いにすれ違いが起きる理由は、ウェブに転がっている浅知恵を眺めてもわからない。

プログラミングはそれ自体にほとんど価値がない。価値はキーボードを叩くまでの意思決定にある。コストを勘定したビジネス上の判断、哲学的に妥当な設計、フレームワークやライブラリの取捨選択のうえにキーボードを叩く作業がある。

優れた意思決定をするためにオライリーの本が必要になる。データベースを使う人は当然『実践ハイパフォーマンスMySQL』を読まないといけない。

科学的・哲学的な思想のないプログラミングは腐ったバナナの皮にも劣る。無数の科学者とエンジニアが長年つみあげた人間の知識と経験をオライリーの本を通して理解しよう。「自分は他人より優れた技術者だから、本など読まなくても検索だけでだいたいコツはわかる」というプログラマーは永遠に報われない。

幼稚な絵がつまった初心者向けの本は無視すること。使い物にならないオブジェクトとクラスの例をテキストエディタに写すことに意味はない。

オンライン講座や動画を愛用する者は報われない。

MySQL で select してみよう

という動画を 20 分かけて見て select の基本がわかったとする。例えば

select * from comment

といった文を理解したとする。すばらしい! しかしこの程度は Google 検索を使えば 20 秒でわかる。オンライン講座や動画は時間対効果がつりあわない。時間の無駄はプログラミングの敵で、時間を意識しない技術者は永遠に報われない。

広告

さらなるポイント

愚鈍な技術者には共通点がある。プログラミングを勉強する人は下の条件にあてはまらないように努めないといけない。

  • 数学的教養に乏しい
  • 哲学的教養に乏しい
  • 前置きが長い
  • 精神が幼稚である
  • 利子の偉大さがわからない
  • 新しい技術、文法、標準を実験しない
  • 車輪を積極的に再発明する

「ベクトルや線形代数はわからないが Java はよく知っている」人はこの世に存在しない。基礎的な集合論や記号論理学を知らない技術者も永遠に上級者にならない。「アセンブリ言語を知らない人は Java も知らない」という話でなく、意思決定と設計に必要な知識の問題だ。包含関係、順序関係、命題と論理といった基本がわからない人はプログラミング以外の道を探そう。

前置きの長い人は転職をすすめる。きっと営業が向いている。幼稚な精神でまともなプログラムを作ることはできない。問題の解決としてプログラミングを使うことは、マラソンをしながら微分積分の計算をするようなタフさが必要になる。

プログラミングは道具を流用するときに爆発力が生まれる。ローンで買い物をする人はおそらくプログラミングの偉大さがわからない。

新しい技術のほとんどは役に立たないが、そのもがきを観察しないといけない。新しい技術は古い技術の課題を解決するために生まれる。その課題はだいたいすべてのプログラマーが抱えている。最先端の技術を実験しない人は数年後、若い人に「うぬぼれた中級者」扱いを受ける。

人がすでに発見した知識や作った道具に納得できず、自分で一から作ることを車輪の再発明という。車輪の再発明はまれにブレイクスルーになって最先端のトレンドになる。しかし積極的に再発明する者は報われない。

広告

広告

広告

コンピューター コンピューター
プログラミング プログラミング
数学 数学
英語 英語
国語 国語
理科 理科
社会 社会

Python入門

Python入門

化学入門

化学入門

漢字辞典

漢字辞典

整数辞典

漢字辞典

Lord Candy

Lord Candy