Kariyer ve Kişisel Projeler

Herkese merhabalar, 18 yaşındayım ve aklımda olan bir projeyi hayata geçirmek istiyorum. Bunun içinde hem en iyi çözümü seçmek hem de gelecekte iş bulma konusunda bana sıkıntı yaratmayacak bir programlama dili/framework olması gerekiyor.
Şuanda çözüm için aklımda olan frameworkler : django,flask,node.js
Bu konuda bana ne önerirsiniz ?

Öncelikle programlama dilini, daha sonra da framework’ü seçmenizi öneririm. Piyasada çokça kullanılan her çözüm aslında iyi bir çözümdür. İş bulma konusunda da sorun yaşamazsınız. Bunları sayacak olursam Java, Python, C#, PHP, JavaScript, Ruby’yi sayabilirim. Bunların arasında çok kullanılma, güçlü olma, ve temiz bir sözdizimi ve eğlenceli bir geliştirme sürecine sahip olma açılarından bakıldığında Python’ı diğerlerinden bir adım daha ileride görebiliriz. Bu durumda Python sizin için iyi bir seçenek olabilir. Framework seçerken ise projenize bakarak macro bir framework mü (her şeyi kapsayan ama daha az esnek), yoksa micro bir framework mü (sadece temel özellikleri kapsar ama oldukça esnek) kullanmanız gerektiğine karar vermelisiniz. Django’da da Flask’ta da iş bulma konusunda sorun yaşamazsınız.

Evet bende Django veya flask arasında seçim yapmak istiyorum fakat projenin birde frontend kısmı var ve o taraftada javascript ihtiyacı doğuyor onun için biraz düşünceliyim açıkçası. Ayrıca google da Django ve flask iş ilanları şeklinde arattığımda diğer teknolojilere göre çok az iş ilanı çıkıyor. Bu konuda beni aydınlatırsanız sevinirim.

Front End kısmında Bootsrap kullanabilirsiniz. Kopyala yapıştır ve basit html bilgisiyle güzel şeyler ortaya çıkabiliyor.

“Ön tarafta nasıl olsa JavaScript kullanacağım, arkada da JavaScript kullanayım bari.” düşüncesi çok da yersiz bir düşünce değil. Ancak bu durumda Node.js’in en popüler framework’ü olan Express ile örneğin Python’ın popüler framework’leri olan Django ve Flask’ı, kararlılık, gelişmişlik, topluluk desteği, vb. yönlerden karşılaştırmanızı öneririm. Bir teknoloji ne kadar eskiyse o kadar kararlıdır, gelişmiştir ve topluluk desteği de fazladır.

Hangi teknolojiler ile karşılaştırıyorsunuz? JavaScript şu sıra popüler, PHP zaten bayadır popülerdi, keza Java ve C# da öyle. Hatta belki Ruby on Rails bile iş ilanı açısından Django’dan öndedir. Ancak şunları da unutmayın: PHP, Ruby ve JavaScript’in kullanım alanı genelde web ile sınırlı. C#'ın web dışında kullanımı Windows’a özgü. Java statik bir dil; webin dinamikliğine pek uymuyor. Demek istediğim iş ilanları sadece web alanında değil, daha birçok alanda mevcut. Bu bahsettiğimiz programlama dilleri içerisinde hem webe hem de diğer alanlara yayılmış, iyi bir çözüm sunan ve iş bulma açısından sorun olmayacak Python’ı görüyorum ben.

Python da başka hangi web frameworkları var?

https://wiki.python.org/moin/WebFrameworks

Fakat amacım şuanda Backend alanında ilerlemek ve uzamanlaşmak. 4-5 sene sonra Üniversite bittiğinde işe girebilme imkanı sağlayabilecek bir çözüm arıyorum. Keşke django şuanda öyle olsa fakat maalesef iş ilanları öyle göstermiyor. Javascript tarafında ise Node.js fazlasıyla eleştiriliyor ve callback konusu büyük sıkıntıymış. Node.js son dönemde backend tarafında biraz zorlama kullanılıyormuş artık. Hangisi üzerinden devam edeyim derken zamanım gidiyor maalesef.

Karar verme sürecinizi aceleye getirmeyin. Her teknolojiyi bir süre deneyin. Hangisini sevdiğinize, artılarına, eksilerine bakın. Eğer acele ederseniz, uzun bir süre sonra teknoloji değiştirmek zorunda kalabilirsiniz. Tabii öğrendiğiniz yanınıza kalır ancak zaman kaybınız da olur.

Türkiye içindeki iş ilanlarına mı bakıyorsunuz? Eğer öyle ise .NET ya da PHP seçeceksiniz demektir. Ancak şunu da unutmayın ki az olan daha değerlidir. .NET ve PHP yazılımcısı ülkemizde çok ve maaşları da ona göre. Django geliştiricileri daha az ve bu sebepten dolayı daha değerli.

Bu söyleminiz ile ilgili okuduğunuz kaynakları paylaşabilir misiniz? Hiç karşılaşmadığım için merak ettim. Callback meselesi her programlama dilinde var. Sadece bazı dillerde fonksiyonlar nesne olarak kullanılamadığı için callback fonksiyonları bir nesne tarafından kapsanıp gönderiliyor. Tabii Node.js’te fazlaca callback kullanılmasının bir nedeni de Node.js’in ayırt edici özelliklerinden biri olan bloklamayan G/Ç (non-blocking I/O) özelliğidir. Ama bu iyi bir şey. Promise’lerden bahsedersek EcmaScript 2017’de gelen async/await özelliği ile Promise’lerde callback’lerden kurtulmak mümkün.

Bu konuda haklısınız. Az bilinen şey değerli olur. Birde bu yönünden bakmak lazım.

https://medium.com/turkce/node-js-in-back-end-geleceği-f246db981721
Bu yazıdan yola çıkarak ve altında yazılan yorumlara bakarak böyle bir şey söyledim.