編集の要約なし |
|||
(同じ利用者による、間の112版が非表示) | |||
1行目: | 1行目: | ||
[[ファイル:java_logo.png|thumb|Java|300px]] | |||
'''Java''' とはマシンを知り尽くした [[Bill Joy|ビル・ジョイ]] の主導によって設計開発されたプログラミング言語の最高傑作。様々な特技をもつ大勢のクラスたちと協力しながら1つのアプリを作っていく。<strong>純粋なオブジェクト指向</strong>なのでコードの重複排除/再利用を徹底したり、階層を使って役割を整理整合したりできる。<br> | |||
Oracle所有になったけど、JavaコミュニティやJava制作物群が巨大すぎるのでOracleも変に現状から動かせないレベル。故に、最初に学ぶプログラミング言語としては間違いなく正解だと言える。 | |||
ただ、もはや古い。 | |||
* [[ | * [[Java基本文法]] | ||
* [[ | * [[Javaメモ]] | ||
* [[ | * [[標準ライブラリ]] | ||
* [[ | * [[他ライブラリ]] | ||
* [[ | * [[Favorite]] | ||
==効率的な学び方== | ==効率的な学び方== | ||
効率的なプログラミング言語の習得は、英語の習得と基本的に全く同じプロセスをたどる。 | 効率的なプログラミング言語の習得は、英語の習得と基本的に全く同じプロセスをたどる。<strong>できるだけ早く以下のプロセスを進む</strong>。 | ||
# <u>ブラックボックスの解体</u>:<br>その言語の全体像が分かるまで、コンピュータやインターネットの歴史などを書籍複数やネット記事を使って調査する。業界が大きければそれだけ時間かかる。 | # <u>ブラックボックスの解体</u>:<br>その言語の全体像が分かるまで、コンピュータやインターネットの歴史などを書籍複数やネット記事を使って調査する。業界が大きければそれだけ時間かかる。 | ||
# <u>砂場の準備</u>:<br>遊びに没頭できるように生活環境とマシン環境を整える。 | # <u>砂場の準備</u>:<br>遊びに没頭できるように生活環境とマシン環境を整える。 | ||
# <u>言語の基礎固め</u>:( | # <u>言語の基礎固め</u>:(<strong>←今ココ</strong>) <br>言語の基本機能や基本文法を学び、それらを使った基本的なコードやコマンドラインアプリを書きまくって言語の基礎に十分に慣れ親しむ。本屋で立ち読み等も。 | ||
# <u>よく利用される単語/イディオムの把握</u>:<br>標準ライブラリは全て半暗記し(知らないなら使えない)、コード内に混在する言語機能と区別できるようになる。OOPを使いこなせるかどうかは、クラスライブラリを使いこなせるかどうか。 | # <u>よく利用される単語/イディオムの把握</u>:<br>標準ライブラリは全て半暗記し(知らないなら使えない)、コード内に混在する言語機能と区別できるようになる。OOPを使いこなせるかどうかは、クラスライブラリを使いこなせるかどうか。 | ||
# <u>英文を読みまくるのと同じフェーズ</u>:<br>良いコードを読みまくり写経しまくる。Git等でよく利用されるコード表現の30%に精通しWikiにも整理する。どんなコードでも全て理解できるようになる。 | # <u>英文を読みまくるのと同じフェーズ</u>:<br>良いコードを読みまくり写経しまくる。Git等でよく利用されるコード表現の30%に精通しWikiにも整理する。どんなコードでも全て理解できるようになる。 | ||
# <u>言語を本格的に使い始める</u>:<br> | # <u>言語を本格的に使い始める</u>:<br>metasploitみたいなCLIアプリを言語機能と標準ライブラリだけで作りまくる。アプリやゲームをたくさん作る。言語機能と標準ライブラリにとことん慣れ親しむ | ||
# <u>応用分野に足を踏み込む</u>:<br>Androidアプリの作り方を学び、他ライブラリやフレームワーク、IDEも使い始める。それらを使ってさらにスマホアプリを作りまくる。 | # <u>応用分野に足を踏み込む</u>:<br>Androidアプリの作り方を学び、他ライブラリやフレームワーク、IDEも使い始める。それらを使ってさらにスマホアプリを作りまくる。 | ||
# <u>実務経験で成長を加速させる</u>:<br>Webサイトと抱き合わせでスマホアプリを作る自営業を始める。最も価値のある経験が得られるのは仕事の現場。プロトタイプ作ってブログ営業も始める(他者アイディアは無尽蔵なので)。 | # <u>実務経験で成長を加速させる</u>:<br>Webサイトと抱き合わせでスマホアプリを作る自営業を始める。最も価値のある経験が得られるのは仕事の現場。プロトタイプ作ってブログ営業も始める(他者アイディアは無尽蔵なので)。 | ||
# <u> | # <u>上級者レベルに踏み込む</u>:<br>この段階では言語をほとんど自在に使えるようになっている。さらに高みへと進むために、難しいアルゴリズム問題を解きまくる。次第に、その言語の上級者であると実感できるようになる。他の候補者が汗だくになるようなコーディング面接も涼しい顔で受けられるようになる。 | ||
== | ==メモ== | ||
Java は僕の大好きな整理整合やシンプル化を楽しみつつ、天才/マシンレバレッジもフル活用しながら、自分のレベル上げや人生改善に役立つスマホアプリを創作できる。 | |||
1つのシステムはソースコード2万行以内で表現されなければいけない。 | |||
2025年4月10日 (木) 22:21時点における最新版

Java とはマシンを知り尽くした ビル・ジョイ の主導によって設計開発されたプログラミング言語の最高傑作。様々な特技をもつ大勢のクラスたちと協力しながら1つのアプリを作っていく。純粋なオブジェクト指向なのでコードの重複排除/再利用を徹底したり、階層を使って役割を整理整合したりできる。
Oracle所有になったけど、JavaコミュニティやJava制作物群が巨大すぎるのでOracleも変に現状から動かせないレベル。故に、最初に学ぶプログラミング言語としては間違いなく正解だと言える。
ただ、もはや古い。
効率的な学び方
効率的なプログラミング言語の習得は、英語の習得と基本的に全く同じプロセスをたどる。できるだけ早く以下のプロセスを進む。
- ブラックボックスの解体:
その言語の全体像が分かるまで、コンピュータやインターネットの歴史などを書籍複数やネット記事を使って調査する。業界が大きければそれだけ時間かかる。 - 砂場の準備:
遊びに没頭できるように生活環境とマシン環境を整える。 - 言語の基礎固め:(←今ココ)
言語の基本機能や基本文法を学び、それらを使った基本的なコードやコマンドラインアプリを書きまくって言語の基礎に十分に慣れ親しむ。本屋で立ち読み等も。 - よく利用される単語/イディオムの把握:
標準ライブラリは全て半暗記し(知らないなら使えない)、コード内に混在する言語機能と区別できるようになる。OOPを使いこなせるかどうかは、クラスライブラリを使いこなせるかどうか。 - 英文を読みまくるのと同じフェーズ:
良いコードを読みまくり写経しまくる。Git等でよく利用されるコード表現の30%に精通しWikiにも整理する。どんなコードでも全て理解できるようになる。 - 言語を本格的に使い始める:
metasploitみたいなCLIアプリを言語機能と標準ライブラリだけで作りまくる。アプリやゲームをたくさん作る。言語機能と標準ライブラリにとことん慣れ親しむ - 応用分野に足を踏み込む:
Androidアプリの作り方を学び、他ライブラリやフレームワーク、IDEも使い始める。それらを使ってさらにスマホアプリを作りまくる。 - 実務経験で成長を加速させる:
Webサイトと抱き合わせでスマホアプリを作る自営業を始める。最も価値のある経験が得られるのは仕事の現場。プロトタイプ作ってブログ営業も始める(他者アイディアは無尽蔵なので)。 - 上級者レベルに踏み込む:
この段階では言語をほとんど自在に使えるようになっている。さらに高みへと進むために、難しいアルゴリズム問題を解きまくる。次第に、その言語の上級者であると実感できるようになる。他の候補者が汗だくになるようなコーディング面接も涼しい顔で受けられるようになる。
メモ
Java は僕の大好きな整理整合やシンプル化を楽しみつつ、天才/マシンレバレッジもフル活用しながら、自分のレベル上げや人生改善に役立つスマホアプリを創作できる。 1つのシステムはソースコード2万行以内で表現されなければいけない。