Yazılımcı olmak için nereden başlanmalı?

anladım , JavaScript başlangıç için zor gelir mi?
JavaScript eğlenceli bir dil. Zor geleceğini sanmam. Ama şöyle bir şey var tabii ki ilk dilin olduğu için lay lay lom geçmez yani.
HTML cidden önemli onu tamamen öğrenmeye çalışıcağım.
HTML olmadan olmuyor hocam. HTML'i zaten 2 günde kavrarsın HTML basit. Önemli olan CSS ve JS.
 
Evet önce HTML CSS ile başla snippet kullan hatta.
tamam teşekkür ederim

O zaman HTML&CSS kursu alman gerekiyor. Proje yaparak kendine güvenin gelsin sonrasında ise JavaScript öğrenmen gerekiyor. Bir sonraki aşaman ise JavaScript kütüphanesi öğrenmek. React veya Vue gibi. Discord sunucumuz var 10-15 kişiden oluşan full yazılımcı eğer ki imzamda ki yerden bana ulaşırsan davet linki gönderirim çok yardımcı oluruz.
tamam bakacağım

JavaScript eğlenceli bir dil. Zor geleceğini sanmam. Ama şöyle bir şey var tabii ki ilk dilin olduğu için lay lay lom geçmez yani.

HTML olmadan olmuyor hocam. HTML'i zaten 2 günde kavrarsın HTML basit. Önemli olan CSS ve JS.
anladım html css js JavaScript giderim ben eyw
 
Önceden biraz Python ve HTML öğrenmiştim ve çok temel olarak öğrendim hiç iş görmez. Şu an sizce ne yapmalıyım nereden başlamalıyım?

Yazılımcı veya herhangi başka bir meslek ben olmak istiyorum diyerek olunmaz maalesef ki bu cepte bunu bir kenara koyalım ikincisi bu işlere her yaşta başlanmaz bu soruyu soruyosan muhtemelen orta okul veya lisede olmalısın önerim bu yazılım işlerine üniversiteye kadar bulaşma derslerin düşmesin üniversitede hala yazılım için bir şeyler duyuyosan düzgün bir yazılım bölümü olan üniversiteye girersin bu Karadeniz veya yıldız teknik olabilir araştır detaylı sana en uygununu bul üniversite okurken bir de İngilizce için çalışırsın hatta maddi durumun el veriyorsa B1 B2 seviyelerine kadar öğreten bir kursa yazılmanı veya öğretmen tutmanı tavsiye ederim İngilizce cepte üniversite tamam sırada iş lazım bunu da üniversitede halletmen lazım aslında bir yandan yüksek almaya çalış notları yüksek tut bir yandan da gelişmek istediğin konu üzerinde yapılan seminerlere katıl bu sayede hem mezun olmadan işinin inceliklerini öğrenir hem de alanında aynı işi yapan insanlarla sosyal çevreni genişletirsin unutma yazılımda sosyal çevre önemli yapamadığın veya yardıma ihtiyaç duyguduğun bir yer büyük ihtimal olacaktır ondan dolayı çevreni geniş tut iş bulurkende bunlar işine yarar üniversite bitmeden yapman gereken 3-5 bir şey daha var temeli salam tutmak için bunlardan bir sertifika almak bir diyeri ise GitHub profilini doldurmak sertifikaları almak kolay alanında işyerlerinin istiyiceği sertifikalar neler diye küçük bir araştırma yap bulurusun sonra nasıl alındığını öğrebip almak kalıyor. Sırada GitHub profili, profilini en hızlı doldurma yöntemlerinden birisi bitmemiş projelere yardım etmek veya İngilizce kaynakları türkçeleştirip yayınlamaktır. İstersen karmaşık projeleri basitleştirerek veya basit projeleri geliştirerek de bunu yapabilirsin. Bunlarda tamam diplomayı da aldın üniversite bitti şimdi ne yapacaksın işte geldik o büyük ana sırada iş bulma var şimdi yapıcağın ise yurt içi ve yurt dışı iş ilanlarına bakmak sana en uygununu bulmak ve görüşmeye gitmek giderken düzün giyin CV hazırla demiyorum zaten görüşmeye giderken yapılması gereken şeyler bunlar gittikten sonra önemli olan 3-5 püf nokta var bunlar, senden ne istedikleri, senin onlardan ne istediğin, çalışma arkadaşların, çalışma ortamın, başın sıkışınca gidebiliceğin birisi var mı ve en önemlisi maaş bunları hele maaşını içeri girdiğin gibi garantilemeye bak ileride yükseltiriz vs. numara ne ile başlarsan onunla devam edersin bunu da hallettik diyelim o iş seni kabul etmedi ne olacak başka bulursun yenisine geç üniversitede seminerlerde edindiğin arkadaşlarına sor bulabilğin tüm işler için görüşmeye git önemli olan sosyallik işi almasan bile tanıdık 1-2 kişi elde edersin bu da ileride işine yarar yazılımı geçtim pazarlıkta bile işine yarar örnek "aa ben seni şurada X yerde X insanla görmüştüm siz ne iyi insansınız ya bende şunu alacaktım bana da bir şeyler yapar mısınız veya X konuda yardım eder misiniz" gibi gibi mantığı az çok anlamışsındır. Yazılımcı olma macerası buraya kadar artık işi olan bir yazılımcısın bundan sonra yapacakların işinde kendini geliştirmek ve diğer yazılımcıları geçmek için boş zamanlarını kendini geliştirerek değerlendirmek. Tabii literatürde bu kadar kolay bunu bir de uygulamaya geçirmesi var burası ise çabaya bakar. Forumda diğer arkadaşların dediklerine bakarak diyorum video izleyerek, Python, Java, HTML, veya CSS öğrenmekle olmaz bu işler maalesef ona yazılımcı denmez yazılım ve kodlar 3-5 video ile bitecek şeyler değil çok farklı değişkenler var o videolarda öğrettikleri saçma sapan temel bile sayılmayan veya forumlarda şu kitabı al şu eğitim setini al diyenler affedersin ama boş konuşuyolar. Aynı kendi bilgisayarında cypto mining yapıp "benim kartımda mining yapıldı" diyenlere benziyor bunu şöyle izah ediyim üniversite veya meslek lisesi okumayan birisi net 12 yıl edebiyat görüyor bu 12 yıl içerisinde edebiyat öğretmeni olabiliyor mu maalesef ki hayır yazılım-yazılımcı olmakta böyle bilgisayara Visual Studio yükledim eğitim setini izleyerek kendime hesap makinesi yaptım demekle yazılımcı olunmuyor internet yaygınlaşalı bu yazılımcı olacağım ben hacker olacağım ben oyun yapacağım tarzı fikirlerde yaygınlaştı biliyorum uzun uzun anlattım ama eğer sende böyle bir hevesle olmak istiyorsan zaman kaybetme ileride hevesin kırılıp istemediğin bir yerde çalısmak zorunda kalabilirsin gerçekten istiyosundur orasını ben bilemem orası bana karalık genel gençler böyle. İstiyosanda zaten dediklerimi dikkate alırsın forumlarda, YouTube'da ve Udemy de bunları video izleyerek öğrenmeye çalışmazsın.
 
Son düzenleme:
Yaklaşık 7 senedir profesyonel anlamda şirketlerde çalışan bir yazılımcıyım.

Öncelikle şunu belirtiyim; yazılım gerçekten sevmeden yapılacak iş değil. Sevmiyorsan ne güzel bir noktaya gelebilirsin ne de güzel paralar kazanırsın. Yani sadece “önü açık, iyi para kazanıyorlar” diye düşünüp bu alana yönelmen hata olur benden uyarması. Etrafımda çok fazla bunalımlara girip mesleği bırakan oldu, tahmin değil gözlem üzerine söylüyorum yani.

Birincisi; bu mesleğe ilgin varsa üniversiteyi falan beklemene gerek yok, yukarıdaki yoruma o konuda katılmıyorum. Hatta ne kadar erken başlarsan o kadar iyi olur senin için. Üniversitede de yüksek notlar falan almana da gerek yok. Birkaç temel ders hariç tüm dersler eski teknolojileri yarım yamalak öğreten saçmalıklardan ibaret maalesef. Mezun olup başvuru yapan ve değerlendirmeye aldığım birçok bilgisayar mühendisinin bir gram bir şey bilmediğini gördü bu gözler. Diğer meslekler evet yüksek notlar ve başarılı bir okul hayatı ister. Ancak yazılım özelinde bu böyle değil. Kişinin işi ne kadar bildiği ve yaptığı en önemli şey. Birçok zaman mezun olduğu okula/bölüme bakmıyoruz bile işe alım sırasında. Buna bakan dinazor şirketlerin sayısı da gün geçtikçe azalıyor. Ek olarak, eğer ilgin olur da bireysel basit projeler hazırlar ve github profilini doldurursan emin ol daha üniversite bitmeden 2-3 yere başvursan birinden teklif alırsın. Bu aşamaları bizzat yaşayan bir kişi olarak söylüyorum bunları, emin ol. İlgisi olup kendini geliştiren benim dediğim şekilde olduğunu görecek ve yaşayacaktır. Katıldığım tek konu ingilizce. İngilizceni araştırma yapacak, dokümantasyonları rahatça okuyup anlayacak kadar geliştirmelisin. Kursların öğrettiğine asla inanmıyorum. Temel atmak için belki olabilir ama ilerletmek için önerim altyazılı/altyazısız dizi izlemek ve podcast dinlemek olacaktır. Ancak ingilizce öğrenme deneyimi herkesin çok farklı olduğu için kesin bir şey diyemiyorum. Sen kendin sana en uygun olan öğrenme deneyimini bulmalısın.

İkincisi; akademisyen gibidir yazılımcı. Sürekli yeni bir şeyler öğrenmek için araştırma yaparsın, yeni teknolojiler, mimariler vs derken iş hayatının her döneminde kendine “kişisel teknik gelişim” için zaman ayırman gerekeceğini unutma.

Gelelim bunların hepsinin okey olduğu, yazılım alanında uzmanlaşmaya karar verdiğin noktaya. Yazılım aslında pratik zeka ile matematik ve logic bilgilerinin birleştirildiği bilimsel bir alan. Bu frontend için de böyle, backend için de böyle, db admin için de yine böyle. Bir seviyeye kadar evet bir alana yönelmen gerekiyor, ancak o uzmanlık seviyesini geçtiğinde ne dilin önemi kalıyor ne de hangi alanda kod yazdığının. Bu seviye için de gereken tek şey deneyim, başka şekilde ulaşamazsın.
Buna ek olarak; hangi alanda başlayacağına karar vermen için acele etme. Çok basit şekilde mobile de bak, frontend e de, backend kısmına da, db kısmına da bak. Hangisinde ilerlersen ilerle diğerleri hakkında temel bilgin olması seni her zaman bir adım öne çıkarır. O yüzden temel seviyede en azından udemyden türkçe dersler bularak izlesen bile bak ve mutlaka kendin oturup izlediklerinin aynısını uygula. Temel seviyede her birine baktığında zaten biri diğerlerine göre daha ağır basacak ve ona devam etmek isteyeceksin.
Kısacası, deneyimlemeden seçim yapmam sallamak olur.

Yine de dil + framework önermek gerekirse:
  • Frontend(web) için günümüzde react, svelte, vue üçlüsünden birini seçmeni öneririm. Hepsi javascript diline ait framework lerdir. O yüzden önce pure javascript ile işe başlaman ve uzmanlaşman gerekecektir.
  • Frontend(mobil) için react native ve flutter önerebilirim. İkisi de doğru kullanıldığında çok efektif sonuçlar çıkaran native dillerdir. Ancak çok kompleks uygulamalarda mutlaka native dilin yetmeyip objC, swift gibi dillerde uygulamaya müdahale etmen gereken yerler olacaktır. Temel olarak bilirsen bu tarz durumlarda seni rahat ettirir.
  • Backend için seçenek daha fazla. Dil olarak c#, java, javascript, golang dörtlüsü sektörün dominant dilleri diyebilirim. Bana sorarsan Java bataklıktır, önermem. C# için .net core gerçekten güzel bir geliştirme ortamı sağlıyor, önerebilirim. Javascript frameworkleri daha hızlı geliştirme ortamı sağlar ama security vb konularda daha fazla bireysel önlem alman gerekir. Nest vb frameworklere bakabilir ya da doğrudan nodejs üzerinde kendi yapını oluşturabilirsin. Golang güzel bir dil ama yorum yapacak yetkinliğim henüz yok.
  • Db için mysql ile basit bir db yapısı nasıl kurulur sorgular nasıl hazırlanır (CRUD) ve eeeeen en önemlisi nasıl optimize edilir konularına bakabilirsin.
  • Tüm bunların yanında hiç yazmadığım oyun geliştirme alanı var ki orası apayrı bir dünya. Maalesef o konuda yetkinliğim olmadığı için yanlış yönlendirmemek adına yorum yapmayacağım.

Tüm bunlar sadece başlangıç için yeterli. İleride profesyonelleşmek için mimarilere yönelmek gerekecek. Mesela nodejs ile bir api yazacağın zaman hangi mimariyi hangi araçlar ile kullandığın apinin kalitesi, kaldıracağı yük ve güvenliği için hayati önem taşıyacak.

Kısacası zamanla üzerine koya koya seneler içinde uzmanlaşabileceksin. Kazandığın para da bu oranla artacak. Zevk alırsan müthiş ve çalışma şartları rahat olan bir meslek dalıdır.

Not: Benim uzmanlık alanım backend + veriti tabanı. Çalıştığım şirkette .net core, bireysel projelerimde js framework leri kullanıyorum. Golang i ise öğrenme sürecindeyim. Her haftasonu iki günde de 2-3 er saat ayırıp projelerime mutlaka çalışırım. Ama bu benim için bilgisayar oyunu oynamak gibi zevk aldığım bir şeydir. Kodsuz bir hayat düşünemiyorum :) Meslek ile ilgili sormak istediğin sorular olursa buradan ya da özelden sorabilirsin. Müsait oldukça seve seve fikir belirterek yardımcı olmaya çalışırım.

Editler: imla.
 
Son düzenleme:
Yaklaşık 7 senedir profesyonel anlamda şirketlerde çalışan bir yazılımcıyım.

Öncelikle şunu belirtiyim; yazılım gerçekten sevmeden yapılacak iş değil. Sevmiyorsan ne güzel bir noktaya gelebilirsin ne de güzel paralar kazanırsın. Yani sadece “önü açık, iyi para kazanıyorlar” diye düşünüp bu alana yönelmen hata olur benden uyarması. Etrafımda çok fazla bunalımlara girip mesleği bırakan oldu, tahmin değil gözlem üzerine söylüyorum yani.

İkincisi; akademisyen gibidir yazılımcı. Sürekli yeni bir şeyler öğrenmek için araştırma yaparsın, yeni teknolojiler, mimariler vs derken iş hayatının her döneminde kendine “kişisel teknik gelişim” için zaman ayırman gerekeceğini unutma.

Gelelim bunların hepsinin okey olduğu, yazılım alanında uzmanlaşmaya karar verdiğin noktaya. Yazılım aslında pratik zeka ile matematik ve Logic bilgilerinin birleştirildiği bilimsel bir alan. Bu frontend için de böyle, backend için de böyle, dB admin için de yine böyle. Bir seviyeye kadar evet bir alana yönelmen gerekiyor, ancak o uzmanlık seviyesini geçtiğinde ne dilin önemi kalıyor ne de hangi alanda kod yazdığının. Bu seviye için de gereken tek şey deneyim, başka şekilde ulaşamazsın.
Buna ek olarak; hangi alanda başlayacağına karar vermen için acele etme. Çok basit şekilde Mobile de bak, frontend e de, backend kısmına da, dB kısmına da bak. Hangisinde ilerlersen ilerle diğerleri hakkında temel bilgin olması seni her zaman bir adım öne çıkarır. O yüzden temel seviyede en azından Udemy'den Türkçe dersler bularak izlesen bile bak ve mutlaka kendin oturup izlediklerinin aynısını uygula. Temel seviyede her birine baktığında zaten biri diğerlerine göre daha ağır basıcak ve ona devam etmek isteyeceksin.
Kısacası, deneyimlemeden seçim yapmam sallamak olur.

Yine de dil + Framework önermek gerekirse:
  • Frontend(web) için günümüzde React, svelte, vue üçlüsünden birini seçmeni öneririm. Hepsi JavaScript diline ait Framework lerdir. O yüzden önce Pure JavaScript ile işe başlaman ve uzmanlaşman gerekecektir.
  • Frontend(mobil) için React Native ve fluttet önerebilirim. İkisi de doğru kullanıldığında çok efektif sonuçlar çıkaran native dillerdir. Ancak çok kompleks uygulamalarda mutlaka native dilin yetmeyip objc, Swift gibi dillerde uygulamaya müdahale etmen gereken yerler olacaktır. Temel olarak bilirsen bu tarz durumlarda seni rahat ettirir.
  • Backend için seçenek daha fazla. Dil olarak C#, Java, JavaScript, golang dörtlüsü sektörün dominant dilleri diyebilirim. Bana sorarsan Java bataklıktır, önermem. C# için .net Core gerçekten güzel bir geliştirme ortamı sağlıyor, önerebilirim. JavaScript Framework'leri daha hızlı geliştirme ortamı sağlar ama Security vb konularda daha fazla bireysel önlem alman gerekir. Nest vb Framework'lere bakabilir ya da doğrudan Node.js üzerinde kendi yapını oluşturabilirsin. Golang güzel bir dil ama yorum yapacak yetkinliğim henüz yok.
  • dB için MySQL ile basit bir dB yapısı nasıl kurulur sorgular nasıl hazırlanır (crud) ve eeeeen en önemlisi nasıl optimize edilir konularına bakabilirsin.
  • Tüm bunların yanında hiç yazmadığım oyun geliştirme alanı var ki orası apayrı bir dünya. Maalesef o konuda yetkinliğim olmadığı için yanlış yönlendirmemek adına yorum yapmayacağım.

Tüm bunlar sadece başlangıç için yeterli. İleride profesyonelleşmek için mimarilere yönelmek gerekecek. Mesela Node.js ile bir API yazacağın zaman hangi mimariyi hangi araçlar ile kullandığın apinin kalitesi, kaldıracağı yük ve güvenliği için hayati önem taşıyacak.

Kısacası zamanla üzerine koya koya seneler içinde uzmanlaşabileceksin. Kazandığın para da bu oranla artacak. Zevk alırsan müthiş ve çalışma şartları rahat olan bir meslek dalıdır.

not: benim uzmanlık alanım backend + veriti tabanı. Aktif olarak çalıştığım ofiste .net Core, bireysel projelerimde JS Framework'leri kullanıyorum. Golang i ise öğrenme sürecindeyim. Her hafta sonu iki günde de 2-3'er saat ayırıp projelerime mutlaka çalışırım. Ama bu benim için bilgisayar oyunu oynamak gibi zevk aldığım bir şeydir. Kodsuz bir hayat düşünemiyorum :) meslek ile ilgili sormak istediğin sorular olursa buradan ya da özelden sorabilirsin. Müsait oldukça seve seve fikir belirterek yardımcı olmaya çalışırım.

Katılıyorum. Elinize emeğinize sağlık detaylı ve sade anlatmışsınız. Arkadaş içinden alacağını alır kalanıda bonus.
 
Yazılımcı veya herhangi başka bir meslek ben olmak istiyorum diyerek olunmaz maalesef ki bu cepte bunu bir kenara koyalım ikincisi bu işlere her yaşta başlanmaz bu soruyu soruyosan muhtemelen orta okul veya lisede olmalısın önerim bu yazılım işlerine üniversiteye kadar bulaşma derslerin düşmesin üniversitede hala yazılım için bir şeyler duyuyosan düzgün bir yazılım bölümü olan üniversiteye girersin bu Karadeniz veya yıldız teknik olabilir araştır detaylı sana en uygununu bul üniversite okurken bir de İngilizce için çalışırsın hatta maddi durumun el veriyorsa B1 B2 seviyelerine kadar öğreten bir kursa yazılmanı veya öğretmen tutmanı tavsiye ederim İngilizce cepte üniversite tamam sırada iş lazım bunu da üniversitede halletmen lazım aslında bir yandan yüksek almaya çalış notları yüksek tut bir yandan da gelişmek istediğin konu üzerinde yapılan seminerlere katıl bu sayede hem mezun olmadan işinin inceliklerini öğrenir hem de alanında aynı işi yapan insanlarla sosyal çevreni genişletirsin unutma yazılımda sosyal çevre önemli yapamadığın veya yardıma ihtiyaç duyguduğun bir yer büyük ihtimal olacaktır ondan dolayı çevreni geniş tut iş bulurkende bunlar işine yarar üniversite bitmeden yapman gereken 3-5 bir şey daha var temeli salam tutmak için bunlardan bir sertifika almak bir diyeri ise GitHub profilini doldurmak sertifikaları almak kolay alanında işyerlerinin istiyiceği sertifikalar neler diye küçük bir araştırma yap bulurusun sonra nasıl alındığını öğrebip almak kalıyor. Sırada GitHub profili, profilini en hızlı doldurma yöntemlerinden birisi bitmemiş projelere yardım etmek veya İngilizce kaynakları türkçeleştirip yayınlamaktır. İstersen karmaşık projeleri basitleştirerek veya basit projeleri geliştirerek de bunu yapabilirsin. Bunlarda tamam diplomayı da aldın üniversite bitti şimdi ne yapacaksın işte geldik o büyük ana sırada iş bulma var şimdi yapıcağın ise yurt içi ve yurt dışı iş ilanlarına bakmak sana en uygununu bulmak ve görüşmeye gitmek giderken düzün giyin CV hazırla demiyorum zaten görüşmeye giderken yapılması gereken şeyler bunlar gittikten sonra önemli olan 3-5 püf nokta var bunlar, senden ne istedikleri, senin onlardan ne istediğin, çalışma arkadaşların, çalışma ortamın, başın sıkışınca gidebiliceğin birisi var mı ve en önemlisi maaş bunları hele maaşını içeri girdiğin gibi garantilemeye bak ileride yükseltiriz vs. numara ne ile başlarsan onunla devam edersin bunu da hallettik diyelim o iş seni kabul etmedi ne olacak başka bulursun yenisine geç üniversitede seminerlerde edindiğin arkadaşlarına sor bulabilğin tüm işler için görüşmeye git önemli olan sosyallik işi almasan bile tanıdık 1-2 kişi elde edersin bu da ileride işine yarar yazılımı geçtim pazarlıkta bile işine yarar örnek "aa ben seni şurada X yerde X insanla görmüştüm siz ne iyi insansınız ya bende şunu alacaktım bana da bir şeyler yapar mısınız veya X konuda yardım eder misiniz" gibi gibi mantığı az çok anlamışsındır. Yazılımcı olma macerası buraya kadar artık işi olan bir yazılımcısın bundan sonra yapacakların işinde kendini geliştirmek ve diğer yazılımcıları geçmek için boş zamanlarını kendini geliştirerek değerlendirmek. Tabii literatürde bu kadar kolay bunu bir de uygulamaya geçirmesi var burası ise çabaya bakar. Forumda diğer arkadaşların dediklerine bakarak diyorum video izleyerek, Python, Java, HTML, veya CSS öğrenmekle olmaz bu işler maalesef ona yazılımcı denmez yazılım ve kodlar 3-5 video ile bitecek şeyler değil çok farklı değişkenler var o videolarda öğrettikleri saçma sapan temel bile sayılmayan veya forumlarda şu kitabı al şu eğitim setini al diyenler affedersin ama boş konuşuyolar. Aynı kendi bilgisayarında cypto mining yapıp "benim kartımda mining yapıldı" diyenlere benziyor bunu şöyle izah ediyim üniversite veya meslek lisesi okumayan birisi net 12 yıl edebiyat görüyor bu 12 yıl içerisinde edebiyat öğretmeni olabiliyor mu maalesef ki hayır yazılım-yazılımcı olmakta böyle bilgisayara Visual Studio yükledim eğitim setini izleyerek kendime hesap makinesi yaptım demekle yazılımcı olunmuyor internet yaygınlaşalı bu yazılımcı olacağım ben hacker olacağım ben oyun yapacağım tarzı fikirlerde yaygınlaştı biliyorum uzun uzun anlattım ama eğer sende böyle bir hevesle olmak istiyorsan zaman kaybetme ileride hevesin kırılıp istemediğin bir yerde çalısmak zorunda kalabilirsin gerçekten istiyosundur orasını ben bilemem orası bana karalık genel gençler böyle. İstiyosanda zaten dediklerimi dikkate alırsın forumlarda, YouTube'da ve Udemy de bunları video izleyerek öğrenmeye çalışmazsın.

Anladım şu an lise 3deyim zaten notlarım iyi sayılır diyelim ki yazılım kazandım pat diye hiçbir şey bilmeden gitmek istemiyorum hedefimde yazılım var okulda sosyal çevrem çok iyi okulda herkes beni tanır. Dediklerinizi dikkate alırım teşekkür ederim ❤️

Yaklaşık 7 senedir profesyonel anlamda şirketlerde çalışan bir yazılımcıyım.

Öncelikle şunu belirtiyim; yazılım gerçekten sevmeden yapılacak iş değil. Sevmiyorsan ne güzel bir noktaya gelebilirsin ne de güzel paralar kazanırsın. Yani sadece “önü açık, iyi para kazanıyorlar” diye düşünüp bu alana yönelmen hata olur benden uyarması. Etrafımda çok fazla bunalımlara girip mesleği bırakan oldu, tahmin değil gözlem üzerine söylüyorum yani.

Birincisi; bu mesleğe ilgin varsa üniversiteyi falan beklemene gerek yok, yukarıdaki yoruma o konuda katılmıyorum. Hatta ne kadar erken başlarsan o kadar iyi olur senin için. Üniversitede de yüksek notlar falan almana da gerek yok. Birkaç temel ders hariç tüm dersler eski teknolojileri yarım yamalak öğreten saçmalıklardan ibaret maalesef. Mezun olup başvuru yapan ve değerlendirmeye aldığım birçok bilgisayar mühendisinin bir gram bir şey bilmediğini gördü bu gözler. Diğer meslekler evet yüksek notlar ve başarılı bir okul hayatı ister. Ancak yazılım özelinde bu böyle değil. Kişinin işi ne kadar bildiği ve yaptığı en önemli şey. Birçok zaman mezun olduğu okula/bölüme bakmıyoruz bile işe alım sırasında. Buna bakan dinazor şirketlerin sayısı da gün geçtikçe azalıyor. Ek olarak, eğer ilgin olur da bireysel basit projeler hazırlar ve github profilini doldurursan emin ol daha üniversite bitmeden 2-3 yere başvursan birinden teklif alırsın. Bu aşamaları bizzat yaşayan bir kişi olarak söylüyorum bunları, emin ol. İlgisi olup kendini geliştiren benim dediğim şekilde olduğunu görecek ve yaşayacaktır. Katıldığım tek konu ingilizce. İngilizceni araştırma yapacak, dokümantasyonları rahatça okuyup anlayacak kadar geliştirmelisin. Kursların öğrettiğine asla inanmıyorum. Temel atmak için belki olabilir ama ilerletmek için önerim altyazılı/altyazısız dizi izlemek ve podcast dinlemek olacaktır. Ancak ingilizce öğrenme deneyimi herkesin çok farklı olduğu için kesin bir şey diyemiyorum. Sen kendin sana en uygun olan öğrenme deneyimini bulmalısın.

İkincisi; akademisyen gibidir yazılımcı. Sürekli yeni bir şeyler öğrenmek için araştırma yaparsın, yeni teknolojiler, mimariler vs derken iş hayatının her döneminde kendine “kişisel teknik gelişim” için zaman ayırman gerekeceğini unutma.

Gelelim bunların hepsinin okey olduğu, yazılım alanında uzmanlaşmaya karar verdiğin noktaya. Yazılım aslında pratik zeka ile matematik ve logic bilgilerinin birleştirildiği bilimsel bir alan. Bu frontend için de böyle, backend için de böyle, db admin için de yine böyle. Bir seviyeye kadar evet bir alana yönelmen gerekiyor, ancak o uzmanlık seviyesini geçtiğinde ne dilin önemi kalıyor ne de hangi alanda kod yazdığının. Bu seviye için de gereken tek şey deneyim, başka şekilde ulaşamazsın.
Buna ek olarak; hangi alanda başlayacağına karar vermen için acele etme. Çok basit şekilde mobile de bak, frontend e de, backend kısmına da, db kısmına da bak. Hangisinde ilerlersen ilerle diğerleri hakkında temel bilgin olması seni her zaman bir adım öne çıkarır. O yüzden temel seviyede en azından udemyden türkçe dersler bularak izlesen bile bak ve mutlaka kendin oturup izlediklerinin aynısını uygula. Temel seviyede her birine baktığında zaten biri diğerlerine göre daha ağır basacak ve ona devam etmek isteyeceksin.
Kısacası, deneyimlemeden seçim yapmam sallamak olur.

Yine de dil + framework önermek gerekirse:
  • Frontend(web) için günümüzde react, svelte, vue üçlüsünden birini seçmeni öneririm. Hepsi javascript diline ait framework lerdir. O yüzden önce pure javascript ile işe başlaman ve uzmanlaşman gerekecektir.
  • Frontend(mobil) için react native ve flutter önerebilirim. İkisi de doğru kullanıldığında çok efektif sonuçlar çıkaran native dillerdir. Ancak çok kompleks uygulamalarda mutlaka native dilin yetmeyip objC, swift gibi dillerde uygulamaya müdahale etmen gereken yerler olacaktır. Temel olarak bilirsen bu tarz durumlarda seni rahat ettirir.
  • Backend için seçenek daha fazla. Dil olarak c#, java, javascript, golang dörtlüsü sektörün dominant dilleri diyebilirim. Bana sorarsan Java bataklıktır, önermem. C# için .net core gerçekten güzel bir geliştirme ortamı sağlıyor, önerebilirim. Javascript frameworkleri daha hızlı geliştirme ortamı sağlar ama security vb konularda daha fazla bireysel önlem alman gerekir. Nest vb frameworklere bakabilir ya da doğrudan nodejs üzerinde kendi yapını oluşturabilirsin. Golang güzel bir dil ama yorum yapacak yetkinliğim henüz yok.
  • Db için mysql ile basit bir db yapısı nasıl kurulur sorgular nasıl hazırlanır (CRUD) ve eeeeen en önemlisi nasıl optimize edilir konularına bakabilirsin.
  • Tüm bunların yanında hiç yazmadığım oyun geliştirme alanı var ki orası apayrı bir dünya. Maalesef o konuda yetkinliğim olmadığı için yanlış yönlendirmemek adına yorum yapmayacağım.

Tüm bunlar sadece başlangıç için yeterli. İleride profesyonelleşmek için mimarilere yönelmek gerekecek. Mesela nodejs ile bir api yazacağın zaman hangi mimariyi hangi araçlar ile kullandığın apinin kalitesi, kaldıracağı yük ve güvenliği için hayati önem taşıyacak.

Kısacası zamanla üzerine koya koya seneler içinde uzmanlaşabileceksin. Kazandığın para da bu oranla artacak. Zevk alırsan müthiş ve çalışma şartları rahat olan bir meslek dalıdır.

Not: Benim uzmanlık alanım backend + veriti tabanı. Çalıştığım şirkette .net core, bireysel projelerimde js framework leri kullanıyorum. Golang i ise öğrenme sürecindeyim. Her haftasonu iki günde de 2-3 er saat ayırıp projelerime mutlaka çalışırım. Ama bu benim için bilgisayar oyunu oynamak gibi zevk aldığım bir şeydir. Kodsuz bir hayat düşünemiyorum :) Meslek ile ilgili sormak istediğin sorular olursa buradan ya da özelden sorabilirsin. Müsait oldukça seve seve fikir belirterek yardımcı olmaya çalışırım.

Editler: imla.
Cidden ilgilendiğiniz için ve verdiğiniz o değerli bilgiler için çok teşekkür ederim hepsini dikkate alacağım.
 

Technopat Haberler

Yeni konular

Geri
Yukarı