Tools Required are:-
Back-end Development like Components/Services :- Eclipse https://eclipse.adobe.com/aem/dev-tools/
Front-end Development :- Brackets https://docs.adobe.com/docs/en/dev-tools/aem-brackets.html
Project building if not done by eclipse :- Maven
Some useful links for developing in AEM:-
Getting started content in AEM community articles
Full List:- https://helpx.adobe.com/experience-manager/topics/how-to.html
The following list of AEM community articles was created based on feedback of AEM community users whom used these helpx articles to learn AEM:
- Integrating the JQuery Framework into Adobe CQ
- Programmatically Accessing Adobe CQ Content using the JCR API
- Creating an Adobe CQ web application that uses MySQL
- Creating your first AEM Service using an Adobe Maven Archetype project
- Creating your first Adobe Experience Manager Touch UI component - learn how to create an AEM 6 Touch UI component
- Creating your first Adobe Experience Manager Sightly component
- Creating Adobe CQ bundles using Apache CXF that consume web services
- Integrating custom CQ widgets with third-party libraries
- Creating custom CQ email services
- Exploring the different ways to create an OSGi bundle for Adobe CQ
- Persisting CQ data in the Java Content Repository
- Querying Adobe Experience Manager Data using the JCR API
- Creating Adobe CQ Feed Components that display Twitter data
- Submitting Mobile Form Data to Adobe CQ
- Using Sling Post Servlets to submit mobile data to Adobe CQ
- Submitting Adobe CQ form data to custom Sling Servlets
- Creating a CQ widget that supports image drag and drop
- Invoking Adobe Experience Manager Workflows using the AEM Java API
- Using the Sling API to retrieve content from the Adobe Experience Manager Repository
- Creating custom AEM workflow steps that send email messages
- Automating the process of uploading multiple digital assets to the Adobe Experience Manager DAM
- Creating Adobe Experience Manager services that invoke third party Restful web services
- Developing AEM OSGi bundles that use Jackrabbit UserManager APIs
- Creating AEM multifield components that support drag and drop and uses custom xtypes
- Injecting a DataSourcePool into Adobe Experience Manager Sling Servlets
- Creating your first Adobe Experience Manager custom xtype
- Creating Event Handlers for Adobe Experience Manager
- Binding Adobe Experience Manager Servlets to ResourceTypes
- Creating Adobe Experience Manager Sling Servlets that invoke MBean operations
- Scheduling Adobe Experience Manager Jobs using Apache Sling
- Integrating the AngularJS framework into Adobe Experience Manager
- Creating Replication Event Handlers for Adobe Experience Manager
- Moving DAM Assets using the Adobe Experience Manager Granite AssetManager API
- Passing JCR Node Objects to Adobe Experience Manager Custom Services
- Creating an AEM Custom Worflow Step with a dialog
AEM Ask the community Expert recording:- https://helpx.adobe.com/experience-manager/topics/ate-sessions.html
I hope this would help you.
~kautuk