目次
- 記事の目的
- 自己紹介
- オブジェクト指向と学習方法について
- 理解してなくても何故か開発はできる
記事の目的
目的は以下の通りになります。
- 学習したことの理解を深める為
- 現状の整理
- これからSEを目指したいと思っている方に向けてのメッセージ発信
- 間違っていたら誰かが教えてくれるかなと考えた為
もし記事の内容に間違いがあった場合は遠慮なくご指摘してください。
私の為になります。そして貴方の教える能力の向上にもつながります。
是非お願いします。
自己紹介
記憶が正しければ22歳から独立系Sier(笑)で働いているシステムエンジニアです。
休職中ですが、4年ちょっと働いていました。まだ休職中です。
経験としましては、javascript(jquery)やHTML、CSS、PHP、C++、Cという色々な言語を齧ってきました。
また開発工程は要件定義から基本設計~デプロイまで経験しています。
得意なことはフロントエンドの開発、次にバックエンドの開発です。
プログラム能力としては下の下です。多分スクールでちゃんと学んできた方の方ができるのではレベルです。
オブジェクト指向と学習方法について
まずオブジェクト指向とはなんぞや?について超簡単に説明します。
オブジェクト指向とは設計図を元に、そこから具体性を持たせて機能化していくものだと私は理解しました。
よくある例えとして車の設計図がよく例に出されると思います。
車には部品が必要です。例えばフレーム、外装、タイヤ、エンジンなど
そして車には機能が必要です。走る。止まる。曲がるなど
これらの機能を1つの単位としてオブジェクトというもので管理、機能させていくのがオブジェクト指向だと考えております。
また車というオブジェクトを継承して更に抽象度を上げていくことを継承という考えです。
正直こんなこと言われても理解できないと思います。私も長年この説明で理解できませんでした。
オブジェクト指向の学習方法について
まずは用語を覚えながら実装してみましょう。
よくあるプログラミング学習サイトなどを使うと良いと思います。
私はprogateを使いました。
ただインプットするのと実際にプログラムを作るという形でアウトプットしながら作業するのでは効率が段違いです。
私もこうして記事を書いているぐらいですので、是非アプトプット作業をしながら覚えましょう。
知らないとそもそもオブジェクトの話ができない用語
- クラス
- プロパティ
- メソッド
- インスタンス
- 継承
- 親子関係
知らなくてもオブジェクトの理解はできるが必須用語
- コンストラクタ
- アクセス修飾子
- スタティック修飾子
- カプセル化
知らなくてもなんとかなる用語
すいません。まだ勉強中です。(2024/11/13)
説明できる範囲で説明します。
- クラス
- いわゆる設計図そのもの。この中にプロパティやメソッドやコンストラクタを書き込む。
- プロパティ
- クラスが持っている概念の値。車で言うタイヤとかフレームとか。
- メソッド
- クラスが持っている機能。走る、止まるなど。
- インスタンス
- クラスを使って機能を具体化すること。
- タイヤには何を使う、エンジンは何を乗せるなど。
- 継承
- とあるクラスを引き継ぎ(プロパティやらメソッド)新しいクラスを作ること。
- 車というクラスを引き継ぎ、スポーツカーというクラスを作るイメージ。
- 親子関係
- 継承された側が親、継承した側が子になります。
- 継承し続けるとネストが深くなって分かりにくいな~~って感じました。
- コンストラクタ
- インスタンス化した際に必ず行う作業のこと。
- アクセス修飾子
- クラスへのアクセス範囲。public、protected、privateの順番で厳しくなっていきます。
- スタティック修飾子
- いわゆる静的プロパティやら静的メソッドを宣言するのに使用する
- 静的はグローバルなものだと思ってもらえれば良いと思う。説明が難しい
理解してなくても何故か開発はできる
マジです。
オブジェクト指向なんて分からなくてもエンジニアの仕事はできますし、なんだったら上流工程も経験できます。
ただ知っていて開発するのと知らないで開発するのでは今後身に付くスキル量に雲泥の差が生まれます。
こうして学び直し、発信しているのも後悔があった為です。
この記事を見てくださった方は少しでも知識を吸収しようと頑張っている方です。
是非学習を行い、知らないを分かるに変えていってください。
私も頑張っていきます。