編集の要約なし
 
(同じ利用者による、間の112版が非表示)
1行目: 1行目:
Java とはスマホアプリから大企業インフラまでをも幅広くカバーする万能な言語。[https://ja.wikipedia.org/wiki/%E3%83%93%E3%83%AB%E3%83%BB%E3%82%B8%E3%83%A7%E3%82%A4 ビル・ジョイ] を筆頭に1967年からの'''ズバ抜けた天才たちの叡智と人生が凝縮'''されている(彼らのエッセンスを学ぶ)。その性能や安定性が極めて高いため経済市場でも非常に価値がある。
[[ファイル:java_logo.png|thumb|Java|300px]]


* [[Javaメモ]]
'''Java''' とはマシンを知り尽くした [[Bill Joy|ビル・ジョイ]] の主導によって設計開発されたプログラミング言語の最高傑作。様々な特技をもつ大勢のクラスたちと協力しながら1つのアプリを作っていく。<strong>純粋なオブジェクト指向</strong>なのでコードの重複排除/再利用を徹底したり、階層を使って役割を整理整合したりできる。<br>
Oracle所有になったけど、JavaコミュニティやJava制作物群が巨大すぎるのでOracleも変に現状から動かせないレベル。故に、最初に学ぶプログラミング言語としては間違いなく正解だと言える。


==基本パッケージ==
ただ、もはや古い。
Javaの世界には非常に沢山(3,500以上)の標準クラスたちが生息しており、約200以上のパッケージ/種族に分けられている。彼らはあなたの仕事を助けるために常に待機している新しい友達。


* [[java.lang パッケージ]] - Javaプログラミングを支える基本的なクラスたち。インポート不要
* [[Java基本文法]]
* [[java.util パッケージ]] - 一般的な仕事をしてくれるユーティリティクラスたち
* [[Javaメモ]]
* [[java.text パッケージ]] - テキスト処理を担当してくれるクラスたち
* [[標準ライブラリ]]
* [[java.math パッケージ]] - 計算など数学を担当するクラスたち
* [[他ライブラリ]]
* [[java.net パッケージ]] - ネットワーク通信を担当するクラスたち
* [[Favorite]]
* [[java.io パッケージ]] - データ入出力を担当するクラスたち
 
まぁ英語の2,3万に比べたら少ないか・・。


==効率的な学び方==
==効率的な学び方==
効率的なプログラミング言語の習得は、英語の習得と基本的に全く同じプロセスをたどる。'''できるだけ早く以下のプロセスを進む'''
効率的なプログラミング言語の習得は、英語の習得と基本的に全く同じプロセスをたどる。<strong>できるだけ早く以下のプロセスを進む</strong>
# <u>ブラックボックスの解体</u>:<br>その言語の全体像が分かるまで、コンピュータやインターネットの歴史などを書籍複数やネット記事を使って調査する。業界が大きければそれだけ時間かかる。
# <u>ブラックボックスの解体</u>:<br>その言語の全体像が分かるまで、コンピュータやインターネットの歴史などを書籍複数やネット記事を使って調査する。業界が大きければそれだけ時間かかる。
# <u>砂場の準備</u>:<br>遊びに没頭できるように生活環境とマシン環境を整える。
# <u>砂場の準備</u>:<br>遊びに没頭できるように生活環境とマシン環境を整える。
# <u>言語の基礎固め</u>:('''←今ココ''') <br>言語の基本機能や言語要素を学び、それらを使った基本的なコードを書きまくって言語の基礎に十分に慣れ親しむ。本屋で立ち読み等も。
# <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>:<br>この段階では言語をほとんど自在に使えるようになっている。さらに高みへと進むために、難しいアルゴリズム問題を解きまくる。次第に、その言語の上級者であると実感できるようになる。他の候補者が汗だくになるようなコーディング面接も涼しい顔で受けられるようになる。
# <u>上級者レベルに踏み込む</u>:<br>この段階では言語をほとんど自在に使えるようになっている。さらに高みへと進むために、難しいアルゴリズム問題を解きまくる。次第に、その言語の上級者であると実感できるようになる。他の候補者が汗だくになるようなコーディング面接も涼しい顔で受けられるようになる。


==基本言語要素==
==メモ==
以下の基本言語要素とその使い方に精通すれば、その言語でプログラミングするための基礎が身についたということになる。
Java は僕の大好きな整理整合やシンプル化を楽しみつつ、天才/マシンレバレッジもフル活用しながら、自分のレベル上げや人生改善に役立つスマホアプリを創作できる。
* [[画面への出入力]]
1つのシステムはソースコード2万行以内で表現されなければいけない。
* [[基本的な計算]]
* [[変数への格納]]
* 機能、メソッド、モジュールなどを使ったコードの組織化
* 機能やメソッドの呼び出し
* [[ブール論理の評価]]
* [[条件分岐]](if/else)
* [[ループ]]

2025年4月10日 (木) 22:21時点における最新版

Java

Java とはマシンを知り尽くした ビル・ジョイ の主導によって設計開発されたプログラミング言語の最高傑作。様々な特技をもつ大勢のクラスたちと協力しながら1つのアプリを作っていく。純粋なオブジェクト指向なのでコードの重複排除/再利用を徹底したり、階層を使って役割を整理整合したりできる。
Oracle所有になったけど、JavaコミュニティやJava制作物群が巨大すぎるのでOracleも変に現状から動かせないレベル。故に、最初に学ぶプログラミング言語としては間違いなく正解だと言える。

ただ、もはや古い。

効率的な学び方

効率的なプログラミング言語の習得は、英語の習得と基本的に全く同じプロセスをたどる。できるだけ早く以下のプロセスを進む

  1. ブラックボックスの解体
    その言語の全体像が分かるまで、コンピュータやインターネットの歴史などを書籍複数やネット記事を使って調査する。業界が大きければそれだけ時間かかる。
  2. 砂場の準備
    遊びに没頭できるように生活環境とマシン環境を整える。
  3. 言語の基礎固め:(←今ココ
    言語の基本機能や基本文法を学び、それらを使った基本的なコードやコマンドラインアプリを書きまくって言語の基礎に十分に慣れ親しむ。本屋で立ち読み等も。
  4. よく利用される単語/イディオムの把握
    標準ライブラリは全て半暗記し(知らないなら使えない)、コード内に混在する言語機能と区別できるようになる。OOPを使いこなせるかどうかは、クラスライブラリを使いこなせるかどうか。
  5. 英文を読みまくるのと同じフェーズ
    良いコードを読みまくり写経しまくる。Git等でよく利用されるコード表現の30%に精通しWikiにも整理する。どんなコードでも全て理解できるようになる。
  6. 言語を本格的に使い始める
    metasploitみたいなCLIアプリを言語機能と標準ライブラリだけで作りまくる。アプリやゲームをたくさん作る。言語機能と標準ライブラリにとことん慣れ親しむ
  7. 応用分野に足を踏み込む
    Androidアプリの作り方を学び、他ライブラリやフレームワーク、IDEも使い始める。それらを使ってさらにスマホアプリを作りまくる。
  8. 実務経験で成長を加速させる
    Webサイトと抱き合わせでスマホアプリを作る自営業を始める。最も価値のある経験が得られるのは仕事の現場。プロトタイプ作ってブログ営業も始める(他者アイディアは無尽蔵なので)。
  9. 上級者レベルに踏み込む
    この段階では言語をほとんど自在に使えるようになっている。さらに高みへと進むために、難しいアルゴリズム問題を解きまくる。次第に、その言語の上級者であると実感できるようになる。他の候補者が汗だくになるようなコーディング面接も涼しい顔で受けられるようになる。

メモ

Java は僕の大好きな整理整合やシンプル化を楽しみつつ、天才/マシンレバレッジもフル活用しながら、自分のレベル上げや人生改善に役立つスマホアプリを創作できる。 1つのシステムはソースコード2万行以内で表現されなければいけない。