Recently I was speaking with one of my friends from school for Self learning softwares. He kept telling me that it is possible to do a program like that in C# and/or Java. I was refusing because did not have much information about this.

If it is true, how can something like that be archived? how does it work? whats the algorithm it uses to detect and learn. Please write all the suggestions you have.

PS: I saw that here are 2 other topics like this, but they did not help me much to understand this.

There are all kinds of algorithms that come under the heading "self learning software". You can write any or all of them in C# or Java
Your question is far too vague and large to expect anyone to try to answer it in its current form.
I suggest you spend some time with Google, Wikipedia etc to learn some basics, then decide what kind of problem you want to solve (play Go, recognise photos etc etc) so you can chose a suitable approach.
Once you have soe concrete ideas, people here can help you with them

Hi JamesCherril.
What kind of algorithms are they? in google, Im not being able to find a static answer which proves what I need.

And thank you Ddanbe, I will take a look at the book after buying it?

If you google Self learning software the second link takes you to the Wikipedia article on Machine Learning. Section 4 of that article lists the most common/interesting approaches and algorithms and links to more details. Why are you finding this difficult?