Sorunuz çok genel olmuş, ben sadece mobil uygulama geliştirmeyle ilgili fikirlerimi paylaşacağım.
Amaçlanan şeyler ve geliştiricinin kişisel tercihleri sonucu mobil geliştirmede izlenecek 2 farklı yol var. 1. yol Platform ve cihaz özelliklerini sonuna kadar sorunsuz kullanmak, performanstan ödün vermemek için doğal (native) uygulama geliştirme hedeflemek. 2. yol ise öğrenme ve tamamlama süresi maliyetleri açısından tahammülünüz yoksa ve Android ile birlikte aynı anda iOS uygulama elde etmek istiyorsanız hibrit uygulama geliştirme ortamlarına yönelmektir. (Xamarin, Ionic, Sencha vb.)
Apple ekosistemi donanım zorlamaları, yapılacak seçimlerde ayrıca etkili olabilir. Windows bir geliştirme ortamında iOS mobil uygulama geliştirebilirsiniz (hibrit) ama mağazaya yükleme noktasında MacOS bir cihazda Apple kimliğine ihtiyaç var. (Lisansını satın aldığım Hackintosh'u 2. kurduğumda Apple ID'm kullanılamaz hale gelmişti) Geliştirici hesabı açıp uygulamaları mağazalara yükleme noktasında işler biraz değişebiliyor yani. Apple ürünü bir cihazla geliştirme yapanların karşılacağı hiçbir sorun yok ama Windows ve Linux üzerinde mobil uygulama geliştirmede yukarıda bahsettiğim Apple kısıtları var.
Geliştirme ortamı olarak Windows işletim sistemi kullanan, zamanı bol bir yazılım öğrencisi için kişisel olarak benim tavsiyem Android Studio ile Java kullanarak native uygulama geliştirmeyi, "Google Play Console" kullanarak uygulama yüklemeyi öğrenmektir. Bunları yaparken de hibrit ortamları kolaçan etmek için örneğin Ionic Framework gibi araçları araştırmak hatta denemek.