「既に行ったこと」っていうのは、
例えるなら道路が整備されて公共交通機関も開通している山に登山したようなもので、
山に登るということはどういうことかを脇道にそれず安全に辿っただけになります。
(ツアー旅行の登山みたいな。)
「画像投稿サイト作成」というのは、
登山家が何人か挑戦した、ヤブの深い山に登るようなものでしょうか。
(単身登頂みたいな。)
登山の装備をしっかり準備して、登り切る体力や食料を確保して、ヤブを切り開きながら進むような。
どういう装備が適しているのか、どのくらい体力があればいいのかなど、
山は見えているけどさっぱりわからないって感じなのかと。
山に登るための攻略方法、これがいわゆる「設計」「計画」になります。
(たとえ話ばかりもアレなので、プログラミングの話に戻します。)
どういう完成イメージなのか、具体的に掘り下げていくと良いです。
PHPやSQLを書く前に、とりあえず見栄えだけでもどういうふうにしたいか
HTMLとCSSで作ってみる、あるいは紙にお絵描きしてもいいです。
お絵描きしながら、扱う画像はどういう形式にするのか、ファイルサイズはいくつまでにするのか、
タグは自由につけられるのかそれとも既存のものからしか選べないのか、
フリーワード検索した時どういう結果の見せ方をするのかとか。
リアリティを上げていかないと、作っては直し、作っては直し、の手戻りが多くなります。
リアリティを上げてゴールが見えてくると、モチベーションが上がります。
あと、サイトを構成する要素を分解してシンプルなところから
サンプルコード(狙った機能が最小限動くことを確認するコード)を書いてみることです。
- 画像をアップロードできる機能が必要→アップロードのサンプルを作る
- タグ付けで管理できる機能が必要→どういうデータ構造ならタグ付け管理できるか考えて設計してサンプルを作る
- フリーワード検索できる機能が必要→全文検索するのになにかライブラリを使うのか、自前で実装するのかサンプルを作る
- 投稿した情報をサーバーで保持する機能が必要→SQLでデータを保存したり、抽出したりするサンプルを作る
サイトを構成する要素を自分の理解できるレベルまで落とし込むのを、
自分だけでできなければ身近に補助してくれる人を探したらいいと思います。
あと、プログラミングやシステム開発を生業にしていくつもりがあるなら、
アルゴリズム事典の類を書籍でもなんでも見ておくといいです。
特定のデータ構造をもたせた上でアルゴリズムを編み上げてやっと機能が実現できるって場面が出てきますので。