my colleagues suggest me to learn and create a fully functional -
generic framework which any team can use?
I suggest you don't. Your coworkers suggest you to start over-engineering. It is fine to experiment.
Automate a test, automate another one. Maybe a reusable abstraction emerges. Maybe this becomes a reusable framework. Practise the YAGNI (You aren'...
I think you are missing out the definition of "Framework"
A framework is comprised of a combination of practices and tools that are designed to help QA professionals test more efficiently.
These guidelines could include coding standards, test-data handling
Since you are just getting started with your test automation journey, imagine you are given an application and some test scenarios to automate. You use your knowledge of Selenium and TestNG and you start creating few Classes and Methods to perform operations on the UI controls as per your test cases.
Using TestNG you manage to execute those tests and you ...
As a shorter way, Its a base structer or the foundation to write automation test scripts for different componets (web, mobile ... etc).
A good framework will provide solutions for some of below limitations or the issues.
Handling scripts and data separately.
Creation of libraries.
Are there any courses/books online to learn automation framework design in Java?
In my case, I started learning with online videos about Java (focus in selenium). In my case, it was more helpful (and to be honest more convenient to learn via online video tool) I started with the link from Angie Jones Courses. There you will find good online videos. Also ...
I think the first sentence on Wikipedia says it clearly enough:
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software.
[ https://en.wikipedia.org/wiki/Software_framework ]
To say it in ...