Q1: should I create an extra partition for Linux and what type of partition) before I do anything ? like installing programs + AV ... etc
Personally, I prefer a clean install over any OEM recovery software.
Most OEM recovery software make certain assumptions (e.g. Windows is the only OS installed) and create partitions that are sub-optimal (e.g. equal size C: and D: partitions).
In other words, they're too inflexible, and do not take into account other OS/partition configurations.
But if you want to use the OEM recovery software, remove all partitions from the hard drive first.
After the OEM software finishes, grab a bootable Linux disc/USB image that has Gparted, which will allow you to create, delete, or resize partitions as needed.
For example, you can shrink the Windows partition to perhaps 80-100GB, then keep the rest of the disk unpartitioned in preparation for the Linux install. Linux is more flexible with partitions.
After you've set up both OSes (including Windows updates, antivirus, and perhaps a cleanup and defragment operation), create an image of the HDD. This will be the "base" image which lets you to have an up-and-running system in a single restore operation.
Q2: would you recommend a separate partition for data ?
Yes, definitely. Having a separate data partition will make maintenance operations like disk cleanup (via ccleaner) and defragmentation much faster.
Also, this allows you to format the windows partition without worrying too much about data loss (except maybe browser bookmarks).