@Womenes Hocam backend için pekhala her hangi başka bir dil kullanabilirsiniz. Başlangıç olarak birden fazla dil öğrenmek zorlayıcı olabilir, önerim nodejs ten yana. Zaten bir dil ile programlamanın mantığını kavradığında diğer dilleri öğrenmek çok daha kolay oluyor.
Eger Isin muhendislik tarafina inmek istiyorsanız derlediğinizde çıktı alacağınız asseblyi az cok tahmin edebildiğiniz C gibi daha düşük seviyeli bir dilden başlamalısınız. Hatta imkânınız varsa işletim sistemleri dersini almanızı öneririm.
NodeJs aslında javascript runtimei (çalışma zamanı ), javan'in jvm, Matlab'in MCR si gibi düşünebilirsiniz. Browserların içinde gelen v8 javascript motorunu browserdan çıkarıp doğrudan sunucuya kursak ne olur demişler Nodejs olmuş.
daha önce ecmascript ile front end yazıp, nodejs geçtiğinde birden commonjs ile tanısınca kafa karışıklığı oluyor ona değineyım. javascrıpt dediğimiz şey aslında dilden ziyade standardizasyon ailesinin tanımı. Browserlarda yazdığımız aslında ecmascript oluyor. Nodejs te yazdıgımız javascript ise emacascriptten devşirilerek oluşturulmuş olan başka bir standart commonjs olarak adlandırılıyor. AMD UMD gibi başka standardizasyonları var ama bunlar pek yaygın değil. Javascripti daha iyi kavramak için Netscape navigator ile başlayan ecmascript tarihçesine bakmak lazım. https://tr.wikipedia.org/wiki/ECMAScript
CommonJs dedin Ecmascript dedin kafam karisti deme, bunlar arasinda cok ufak farklar var, ornegin commonjs nodejs ile calismasi için tasarlandigindan dolayı içinde html objelerini manupule edecek herhangi dom kutuphanesi yok mesela. Onun yerine isletim sistemiyle etkilesime girmeni sağlayacak farklı kütüphaneler var örneğin dosya dizin işlemleri için fs (fileSystem) kütüphanesi.
Her güzel şeyin kusuru da olur Nodejs in artıları kadar eksileri de var bunların bilincinde olmakta fayda var;
nodejs single process üstünde non-blocking yapiya sahip; Bir satir alttaki kodun bir satir usttekinin isini yapmasini beklemez. yani isini yapabilen kisim isini yapar ve main thread blocklanmaz. Bu yüzden hızlıdır. İsteklere çok hızlı cevap verebilir. Ancak bazen bu durum uygulamanızın türüne göre dezavantaj olabilir çünkü uygulamanız işlemcinizin gücünün sadece bir kısmini kullanacak demek oluyor. tabi bu concurrency (paralel programla) diye başka bir terimin konusu ve nodejs te bile çözülebilir bir sorun.
https://medium.com/ing-blog/how-does-non-blocking-io-work-under-the-hood-6299d2953c74
community kısmında es geçmemek lazım. nodejs hayvani bir topluluğa sahip, buda bilgiye daha kolay ulaşabilmek, daha çok hazır paket vs demek.
nodejs backend icin kullanabilirsiniz bircok buyuk sirkette kullaniyor (netflix, facebook, uber, ...vs) tamamı olmasa da servislerinin bir kısmi nodejs.
cross-platform, buna çok girmiyorum. artık modern dillerin hemen hemen hepsi cross-platform derleme yapabiliyor. .net core ile c# bile artık Windows'a ihtiyaç duymuyor.
son zamanlarda nodejs in kullanım alanı su tarafa kaydı, frontend frameworklerini compaile(derlemek) ve transpaile(cevirmek) etmek. React, meteor, angular, vue, solid, svelte, astro vs bir suru framework var bunlardan bir kaçını öğrenebilirsiniz
yol haritası javascriptin temellerini öğrenip, ardından express ile ufak tefek uygulamalar geliştirdikten sonra, loopback, nest, feathers gibi daha karmasik backend frameworklerine yönelebilirsiniz. yada svelte-kit gibi fullstack bi framework öğrenmek elinizi çok güçlendirir.
https://roadmap.sh/nodejs surdaki adımları takip ederseniz alet çantanıza ihtiyacınız olan her turlu aleti eklersiniz
not: Türkçe klavyem yok. Yazım hatalarını mazur görün.