My question here is pretty subjective, but let me explain myself. I don't know if the title's grammar is correct (I'm not a native english speaker) so feel free to edit.
I've used Java and PHP mostly for development. But most of the things I've worked on have been based on other people's work. What I mean is, there's not much I've coded from scratch myself.
I know Java, I've read a lot ever since I started studying programming, the same for PHP. But I think my experience has been mostly on "maintaining code" and "adding new features" to other stuff.
Now I've decided I'll start my own personal "portfolio" just for myself. This way, I will face common problems on say "creating a Data Acces Layer with JPA", a "login page with PHP", "work with cookies", etc. And in case you are wondering, yes, I'm talking about reinventing the wheel. But in a good way, so that you can understand how the wheel works. I feel like I've been using wheels, having a general understanding of how they work, but never having to make my own wheel.
In your opinion, what would be the must-have skills in every language in order to being able to say "I've had experience with X", "I can apply to a job for a X developer"?