But even when I send them some references they reply saying even they read it they could not understand what it meant.
Which lead me back to explaining them from the beginning
And "I don't understand" should not be acceptable. Let them write out what they did and what exactly they don't understand.
For example:
To find out more about main, I searched for "Java main", and got the following: "All Java programs must have an entry point, which is always the main() method. Whenever the program is called, it automatically executes the main() method first. " Yet when I look at this code here, line ref/ code snippet, I don't understand why it doesn't have a main....
I don't have any natural talent for programming nor math, and cried for 2 weeks straight when I was going through my first programming book, my brain literally hurt. I just ground that book.
Taking a book and typing out all the exercises, muscle memory. You work your ass off for 10 years, and suddenly you get lucky.
But for basic programming, the students will have to commit, just like children do. Their questions that you quote :
* What is a function/method? * What is meant by return? * What is an array? What is an index? * Why looping is so hard to understand? * What is the meaning of public static void main()
I suggest teaching them the basics of the scientific method. They should do their own research, even through a basic web-search, and ask a specific follow-up question. Every one of these questions shows that they did not do a basic web-search. It's ok if they want to learn like children. Children ask lots of questions. But it will take more time, just like it does for children. Time I do not give for free in my teaching scenarios, except kids under 10 y.o. Meaning, I expect the older individuals to show they did their homework first.
A question I would spend time answering, for contrast: "I have read the chapter on arrays and have done exercises from the following www resource. What I don't understand in a specific case is this..."