Patika.dev Yazılım Kariyerine Başlangıç Rehberi
Teknoloji alanında iş bulmak istiyorum, nereden ve nasıl başlamalıyım?
Teknoloji alanında iş bulmak istiyorum, nereden ve nasıl başlamalıyım?
2014 yılından itibaren yazılımcı yetiştirme üzerine çalışıyorum. Bu süreçte, Amerika’da LaunchCode’u, Türkiye’de Kodluyoruz’u ve Patika’yı tasarlarken kendisine teknoloji alanında bir kariyer yolu çizmeye çalışan pek çok kişinin yolculuğunu izleme fırsatım oldu. Bu süre içinde yüzlerce soruyla karşılaştım. Karşılaştığım bu soruları ve yıllar için öğrendiklerimi insanların işine yaraması umuduyla bir yazı dizisi olarak paylaşmaya karar verdim.
Bu yazı dizisinde
ve daha birçok önemli konuya bu zamana kadar edindiğim deneyimlerin ışığında değinmeyi planlıyorum.
Dizinin ilk postu olan bu yazıya en sık karşılaştığım ve en temel soruyla başlamanın uygun olacağını düşünüyorum: Teknoloji alanında iş bulmak istiyorum, nereden ve nasıl başlamalıyım?
Bugün gelinen noktada hem dünyada hem de Türkiye’de yazılım geliştiricilere yüksek bir talep var. Dolayısıyla bu alanda eğitiminiz olmasa bile biraz emek harcayarak ve kendinizi geliştirerek istediğinize yakın bir iş bulmanız mümkün. Yazılım sektörü aynı zamanda yüksek ücretler içeren oldukça cezbedici kariyer imkanları sunuyor.
Bu yolculuk uzun ve emek isteyen bir yolculuk. Bu yolculuğa nasıl başlayabileceğinize dair tavsiyelerimi ve kullanabileceğiniz ücretsiz kaynakları aşağıda adım adım paylaşıyorum.
Yazılım geliştiricisi olmayı düşünen hemen hemen herkesin içinde şöyle bir kaygı olduğunu görüyorum: “Acaba yazılım alanına girmek için geç mi kaldım?”
Hayır, geç kalmadınız!
Piyasada hala yazılımcı ihtiyacı olup olmadığını sorguluyor olabilirsiniz. Ancak şunu rahatlıkla söyleyebilirim ki bugün piyasada yazılım geliştiricisine ihtiyaç her zamankinden daha yüksek ve yazılım geliştirme araçlarını öğrenmek her zamankinden daha kolay. Şu an bu alana girmek için çok iyi bir zaman.
Belki de yeni bir şeyler öğrenmek için yeterince genç olmadığınızı ya da çevrenizde çok erken yaşlarda yazılıma girenlere bakarak geç kaldığınızı düşünüyorsunuz. İçiniz rahat olsun çünkü bu çok sık karşılaşılan bir problem. Kod yazmayı 30 yaşında öğrenenler 20 yaşındakilere bakıp aynı şeyi düşünürken 20 yaşındakiler de ortaokuldan beri yazılımla uğraşanlara bakıp "geç mi kaldım acaba" diyor.
Eğer bu alana girmeyi çok istiyorsanız hazırlıklara başlamak için geç değil. Hazırlıklar belki altı ayınızı ya da bir yılınızı alacak. Ancak şu an verdiğiniz bu karar önünüzdeki 30 yıllık hatta belki de 50 yıllık kariyerinizi etkileyecek.
Belki geçmişte farklı bir mühendislik alanında okudunuz. Belki bir sosyal bilimler ya da sanat geçmişiniz var. Belki de üniversitenizin yeteri kadar prestijli olmadığı ya da üniversite mezunu olmadığınız için sizi tercih etmeyeceklerini düşünüyorsunuz. Belki de hala lise çağındasınız. İçinizde bu alana dair bir tutku olduğunu ve gerekli yoğun çalışmayı yapabileceğinizi düşünüyorsanız teknoloji alanında bir kariyer inşa etmeye başlayabilirsiniz.
2014 yılından itibaren önce Amerika’da, daha sonra Kodluyoruz ile birlikte Türkiye’de pek çok insanın yazılım kariyerine girmesine yardımcı oldum. Bu esnada, kurucu ekibinde yer aldığım LaunchCode’da otobüs şoförü olarak çalışan lise mezunu birisinin, kendini geliştirerek Mastercard’da sistem mühendisi olarak işe girdiğini gördüm. Kodluyoruz bootcamp’leri ile Cansu, Yonca, ve Ümit gibi insanların yazılım alanına geçişine vesile olduk. Tüm bunları etkileyici başarı hikayeleri olduğu için anlatmıyorum. Sadece istemek ve çalışmanın yazılım kariyerine geçişi yaratabileceğini göstermek istiyorum. Hatta daha iyi bir örnek vereyim.
Stackoverflow’un 2015 anketlerine baktığınızda da benzer bir tablo göreceksiniz. Ankete katılan yazılımcıların %48’i bilgisayar mühendisliği alanında okumamış. Çoğunluğu kod yazmayı kendi kendine, online olarak ya da çalışırken öğrenmiş.
Bu nedenle yaşınızı, okulunuzu, arka planınızı çok kafanıza takmayın derim. Eğer bu alan, alana yönelik heyecan ve azim duyuyorsanız sizin için de yazılım ve teknoloji alanına girmek geç değil.
Eğer teknoloji sektörü ilginizi çekiyorsa, ancak nereden başlamanız gerektiğini kestiremiyorsanız yapmanız gereken ilk şey basit bir şeyler kodlamayı denemek.
Yazılım geçmişiniz olmaması artık bir sorun değil, çünkü sıfırdan başlayanlara bile kod yazmayı öğreten Codecademy gibi pek çok web sitesi ve uygulama var. Basit bir şeyler kodlamayı deneyerek ve 10-20 saat kadar bir kodlama süresi ile kod yazmaktan zevk alıp almadığınızı anlamanız mümkün.
Özellikle kodlama gibi pratik yaparak gelişen bir konuda yalnızca dersleri dinlemek yetmeyeceğinden.Pratik yapmak çok önemli. Eliniz klavyeye alışmalı. Zaman ayırıp online derslerde verilen ödevleri yapmak çok önemli. Her iş gibi bu işin de zorlukları var. Unutmayın, emek olmadan yemek olmaz.
Kod yazmak, yazılım geliştirme kariyerinde ilerlemiş iyi bir yazılımcı olsanız bile çok yorucu bir süreç olabiliyor. Bu alanda birisine bir program verin ve onu bir günlüğüne uğraştırın, ona programlamayı öğretin ve hayatı boyunca uğraştırın diye bir tabir bile var.
Özellikle kafanızın karıştığı zamanlarda kodlama yapmak size nasıl hissettiriyor? Bu durum bazı insanların merakını canlandırıyor, bazılarını ise canından bezdiriyor. Kendinizi, böyle durumlardaki tepkilerinizi gözlemleyerek bu sürecin sizin için olumlu olup olmayacağına karar verebilirsiniz.
Kod yazmayı bir süre için denediyseniz ve bundan keyif aldığınıza karar verdiyseniz tebrikler, uzun bir öğrenme süreci sizi bekliyor.
Eğer yaptığınız şey hoşunuza gitmediyse korkmayın, bu teknoloji alanındaki kariyerinizin başlamadan bittiği anlamına gelmiyor. Teknoloji sektörü ve teknoloji ile ilgili alanlar çok geniş. Dolayısıyla kendinizi geliştirip yeteneklerinizi değerlendirebileceğiniz pek çok farklı alt dal bulunuyor. Bu alanların tamamında fazlasıyla yetenek ihtiyacı var ve her birinde keyifli ve heyecanlı kariyer imkanları mevcut. Bizim gördüğümüz kadarıyla ön plana çıkanlar şunlar:
Bu kariyer imkanlarının hepsi için kodlamayı öğrenmenin çok büyük faydası var. Fakat bu alanlara yönelik genel stratejiler çok farklılaşabilir. Dolayısıyla bu konu, gelecek yazılarımızın konusu olsun.
Şimdilik kodlama alanında kendimizi nasıl geliştirebileceğimiz konusundan devam edelim.
Yazılım geliştirme, hızla büyüyen teknoloji dünyasının en önemli parçası. Yazılım geliştirme çatısı altında ilgi alanlarınız doğrultusunda seçebileceğiniz pek çok farklı alan var. Bunları şu şekilde gruplayabiliriz:
Güzel haber, bu alanlarında hepsinde çok ciddi yazılımcı açığı var. Daha az güzel haber ise bu alanların herhangi birinde ilerleyebilmek için birini seçip o alanda çok çalışmak gerekiyor.
Peki hangisini seçeceğimize nasıl karar vereceğiz?
Bu tamamen size kalmış. Bunlardan herhangi birisini daha önce denemiş ve çok sevmiş ya da daha önce bu konulardan birinde eğitim almış olabilirsiniz. Böyle bir durum seçim yapmanızı kolaylaştırır. Ancak bir tecrübeniz yoksa ve nereden başlayacağınıza karar veremiyorsanız, size bazı tavsiyelerim olacak:
Patikalar arasında kısa bir gezintiden sonra hala hangi yolu seçmek istediğinizden emin değilseniz, tavsiyem frontend web developer olarak başlamanız. (Hatta benden tavsiye isteyen tanıdıklarıma da bu patikayı seçmelerini öneriyorum.)
Patika.dev içindeki frontend web developer patikası Javascript ve React diline odaklanıyor. Bu da üç temel avantaj sunuyor:
Buradaki amaç teknoloji sektörüne girişteki ilk rolü seçmek. İşe başladıktan sonra pek çok proje sizden yeni beceriler kazanmanızı bekleyecek ve uzmanlaştığınız kısımlara ilave pek çok şey öğrenmeniz gerekecek. Kariyerinize başladığınız alandan farklı yönlere gidebilirsiniz. Burada odaklandığımız kısım ilk profesyonel işinize girebilmeniz.
Seçtiğiniz alanda bir işe girebilmek için bu alana biraz hakim olmak gerekiyor. Karşılaştığım pek çok insan bu öğrenme sürecini hafife alıyor. Haftada 4-5 saat harcayarak birkaç ayda yazılımcı olmayı bekliyor.
Seçtiğiniz patikada teknik becerilerinizi geliştirmek için en az 1000 saatlik bir çalışmaya hazır olmak gerekli. Bu yoğun bir çalışma ile aylarca çalışma demek. Basit bir hesap yaptığınızda göreceksiniz ki haftada 50 saatlik bir çalışmayla, 20 haftada ya da 70 saatlik bir çalışma ile 15 haftada ulaşabileceğiniz bir seviye.
Diğer taraftan bu 1000 saati farklı alanlarda harcamak da doğru bir yaklaşımdeğil. Daha önce biraz Python öğrenmiş, biraz HTML CSS yapmış olabilirsiniz. Ancak eğer mobil developer olmak istiyorsanız, 1000 saatin tamamını olmasa da büyük bir kısmını mobil developer olma yolunda harcamanız gerekiyor.
Öğrenme süreci içinde zorlanacağınız ya da sıkılacağınız noktalar olabilir. Başka bir alan bir anda size daha heyecanlı gelebilir. Daha fazla şey öğreneyim derken bir anda kendinizi alakasız bir eğitime başlamış bulabilirsiniz. Devamlı üzerinde çalıştığınız alanı değiştirmek, bu süreçte yapabileceğiniz en büyük hatalardan biri. Bu noktada ilk planınıza sadık kalmanız ve kendi alanınızda ilerlemeniz şart.
Günümüzde, internette pek çok kaliteli eğitim videosu var. Oturup onları izlemek hem çok eğitici, hem de çok keyifli olabiliyor. Ancak kodlamayı sadece video izleyerek öğrenmek mümkün değil. Nasıl yüzmeyi öğrenmek için suya girmek gerekiyorsa, kodlama öğrenmek için de zamanınızın çoğunu aktif olarak kodlayarak geçirmeniz gerekiyor. Benim tavsiyem öğrenmeye harcadığınız zamanın en az %80’inini aktif olarak kodlayarak geçirmeniz.
Kulağa çok geldiğinin farkındayım ama bu alanda başarılı olmak, özellikle de yolun başındayken ciddi bir çalışma temposu gerektiriyor. Bu yolculuk uzun saatler, bazen günler boyu kendi başınıza bir proje üzerine çalışmayı gerektirebiliyor.
“Kim 20 hafta boyunca haftada 50 saat çalışabilir ki” diye düşündüğünüzü tahmin ediyorum. Evet, bu durum büyük bir irade ve odaklanma gerektiriyor. Hatta tavsiyeyi veren kişi olarak ben bile böyle bir şeyi kendi başıma yaparken zorlanacağımdan kesinlikle eminim. İşte tam da bu yüzden bu süreci çok kolaylaştıracağını düşündüğüm birkaç tavsiye daha vereceğim.
Kendimizi motive etmemize yardımcı olacak ve birlikte öğrenebileceğimiz bir topluluğun parçası olmak hem öğrenme hem de danışacak birilerinin varlığını hissetmek açısından çok faydalı. Yazılım alanında size destek olacak kişilerden oluşan, toleransı yüksek ve dostane bir ortam bulabilirsiniz. Teknoloji sektörünün bir avantajı ise bu alanda çalışan insanların diğer pek çok sektöre göre daha açık fikirli, meraklı, umut dolu ve heyecanlı olması. Global bir topluluğun parçası olmalarının da bunda etkisi büyük.
Biz de Patika’yı kurarken, bu öğrenme sürecini yeni başlayanlar için daha kolay hale getirebilmek ve motivasyonlarını kaybetmemelerini sağlamak için bir destek mekanizması kurmaya çalıştık.
Haziran ayında başlattığımızLaunchPad programında yazılım kariyerine giriş yapmaya çalışanlar için sıcak bir topluluk oluşturduk. Pek çok kişi burada takıldığı sorulara cevap buluyor ve düzenlediğimiz sosyal etkinliklerde yeni insanlarla tanışıyor. LaunchPad herkes için ücretsiz ve katılım için bir önkoşul bulunmuyor. Programın en güzel tarafı sizin gibi bu yolculuğa kendi başına çıkmış ve sizi desteklemeye hazır pek çok kişinin olması.
Yazılım geliştirebilmek için öğrenmeniz ve çözmeniz gereken pek çok şey var. Bunların sadece bir kısmını dersler ile öğrenmek mümkün. Diğer her şeyi kendiniz deneyimlemeniz ve bu deneyimler yoluyla içselleştirerek öğrenmeniz gerekiyor. Bunu yapmanın en iyi yolu ise ödevler ve projeler
Seçtiğiniz Patika hangisi olursa olsun, içinde pek çok ödev ve proje bulacaksınız. Benim tavsiyem ödevleri geçiştirmemeniz çünkü tamamı öğrenme sürecinizi desteklemek için stratejik olarak düşünüldü ve eklendi.
Proje yaparken eğitmenin hiç bahsetmediği hatalarla karşılaşmanız mümkün. Mesela, bir tasarımı çok az değiştirmek isteyecek ve sonra saatlerce işin içinden çıkamayacaksınız. Eğitmen anlattığında çok mantıklı ve doğal gelen bazı şeyler yazarken anlamsız ya da çok karmaşık gelecek. Dürüst olmak gerekirse saçınızı başınızı yolacaksınız, bilgisayarın başından kalkıp mola vermek zorunda kalacaksınız. Ancak tam da bu nokta öğrendiklerinizin yerleştiği, bilmediğiniz yerlerin netleştiği ve problem çözme yeteneğinizin geliştiği nokta. Yani, pes etmemeniz gereken nokta!
Kendi başınıza çalışırken projelerinizin karmaşık derecesini aşama aşama artırmanız çok daha faydalı bir yaklaşım. Çünkü pek çok kişi çok büyük projelere girişip, kısa sürede heveslerini kaybedebiliyor. Örneğin, ilk önce sadece 2-3 saatte bitirebileceğiniz projelerle başlamak ve onları başarıyla ile tamamlayabildiğinizi gördükten sonra bir gün sürecek daha uzun projelere girişmek yararınıza olur. Sonrasında ise 3-4 günlük, bir haftalık ve zamanla bir aylık projelere başlayabilecek ve kolaylıkla bitirebilecek noktaya geleceksiniz.
Mümkünse projelerinizi tamamladıktan sonra kullanıma açın. Eğer frontend web development projesi yapıyorsanız, herkesin erişebileceği şekilde bulut ortamına yükleyin. Eğer mobil development projesi yapıyorsanız, Play Store ya da Appstore’da uygulamanızı yayınlayın. Bu süreç size gerçek bir dijital ürünün hangi süreçleri kapsadığının gösterecek ve sizi profesyonel ortama hazırlayacak. Projelerinizin kodunu Github’a yükleyin ve güzel, açıklayıcı bir Readme dökümanı yazın.
Ayrıca unutmayın ki yaptığınız projeler sadece öğrenmeniz için değil, aynı zamanda işlere başvurduğunuzda becerilerinizi göstermek için de birer kanıt olacak.
Bu 1000 saatlik yolculuğun, ilk 100 saatini geçtikten sonra sonra (yoğun çalışırsanız 3-4 hafta içinde bu noktaya gelebilirsiniz) artık “coding challenge” yapma vaktiniz geldi. Çoğunlukla kısıtlı zamanda istenen problemi kodlayarak çözmenizi gerektiren bu egzersizler aynı zamanda hem başvuracağınız işlerin, hem de Patika ve Kodluyoruz bootcamp’lerinin kabul sürecinde kullanılan bir eleme yöntemi.
Bunlara hazırlanmanın en iyi yolu, HackerRank üzerinden problem-solving (problem çözme) egzersizleri yapmak. HackerRank’e ücretsiz kaydolup, alıştığınız kodlama dilinde farklı farklı problemler çözerek puan toplayabilir ve yıldız sayınızı artırabilirsiniz.
Bu egzersizlerin tarzına ve ortamına alıştıktan sonra bunlardan keyif almaya başlayabilirsiniz. Bunlar bir nevi beyin jimnastiği diyebiliriz.
HackerRank problem-solving’de hedefiniz üç yıldıza ulaşmak olmalı. Bu noktaya geldiğinizde Patika ve Kodluyoruz’un bootcamp’lerinin kodlama testlerini geçmeye hazır olacaksınız.
100 saatlik çalışma maratonunu tamamladıktana ve HackerRank’de kodlama egzersizleri yapmaya başladıktan sonra bootcamp’lere başvurmaya hazırsınız.
Başvuru, test, ve mülakat süreçleri ortalama bir aydan fazla süreceği için, çalışmaya devam etmeniz durumunda bootcamp başlamadan önce daha da ilerleyeceğinizi düşünüyorum.
Bir bootcamp ödevleri, dersleri, ve bitirme projesi ile size yoğun bir 7-8 haftalık bir öğrenme sürecini kapsıyor. Ayrıca kaliteli bir eğitmen ile yakından çalışma fırsatı ve birlikte çalışabileceğiniz bir topluluk gibi öğrenme sürecini destekleyici önemli özellikleri de sunuyor.da Bootcamp’lerin yoğun çalışma temposu sayesinde hem ulaşmak istediğiniz seviyeye çok daha hızlı yaklaşacaksınız hem de sponsor şirketlerde işe girme fırsatı yakalayacaksınız.
LaunchPad programına katıldıysanız işiniz daha da kolay. LaunchPad sayesinde bootcamp’lerimize kısa başvuru formu ile başvurma imkanınız olacak ve böylelikle 5-10 dakikada başvurunuzu tamamlayabileceksiniz. Ayrıca LaunchPad Discord ortamında açılacak bootcamp’lere dair haberleri herkesten daha önce alma fırsatına sahip olacaksınız.
zerinde çalıştığınız her konuya dair olan bootcamp’e başvurarak şansınızı denemenizi tavsiye ederim. Bootcamp’e seçilmezseniz moralinizi bozmayın ve çalışmaya devam edin. Her bootcamp başvurusunu bir iş başvurusu gibi düşünün. Patika ve Kodluyoruz her ay 5-10 bootcamp açıyor. Dolayısıyla şansınızı deneyebileceğiniz pek çok bootcamp olacak.
Çoğu bootcamp’imiz doğrudan sponsor şirket tarafından işe alım hedefli olarak fonlandığı için, bu bootcamp’lerimiz tam zamanlı işe girmeye hazır katılımcılara yönelik yapılıyor. Üniversiteden mezun olmanıza bir seneden az bir süre kaldıysa ya da zaten mezunsanız, bootcamp’lerimize kesinlikle başvurmalısınız.
1000 saatlik öğrenme sürecinde çoğu zaman yetersiz olduğunuz hissine kapılacaksınızz.. Bu hisse kendinizi kaptırmanız size zaman kaybettirir, bunun yerine önünüzdeki problemi çözmeye odaklanmanız başarısızlık hissinin üstesinden daha kolay gelmenizi sağlar.
Bir duvara tosladığınızı hissettiğiniz ya da kendinizden şüphe etmeye başladığınız zamanlarda bir mola verin. Bir süre bilgisayar başından kalkın ve başka işlerinize odaklanın ya da daha iyisi bir yürüyüşe çıkın. Daha iyi hissettiğinizde ise kendinize bir çay koyun ve bilgisayarın başına oturun. Çözüme daha kolay ulaştığınızı göreceksiniz.
Önemli olan sürece doğru bir perspektifle yaklaşmak, hatalardan ders çıkarmak, keyif almayı öğrenmek ve devam etmek. Hata yapmak ve hata yaptığımız için motivasyonumuzu kaybetmemek, kendimiz için yapabileceğimiz en iyi şey. Her 50 saatlik çalışma sonucunda ne kadar geliştiğinize kendiniz bile inanamayacaksınız. Dahası, önceleri size anlaşılmaz gelen pek çok aracı ya da konsepti çözdüğünüzü ve hatta kullanabilmeye başladığınızı göreceksiniz.
Bazen zor bir dersi tamamladığınızda, bazen de üzerine günler harcadığınız bir projeniz çalıştığında kendinizle gurur duyacaksınız. Bu durumlarda başarınızı kutlamayı unutmayın. Bir sonraki konuya ya da projeye geçmeden önce, ne kadar ilerlediğinizin farkına varın ve kendinizi tebrik edin. Buraya kadar kendi çabalarınızla geldiniz!
Yazılım öğrenme sürecinizde kafanızda sürece ya da kendi kişisel durumunuza dair pek çok soru işareti olabilir.
Tüm bu soruları cevaplamak ve sizlerle tanışmak için LaunchPad’de pek çok etkinlik düzenliyoruz. Siz de ilginiz çeken etkinliklere katılabiliriz ve kafanızdaki sorulara kolayca cevap bulabilirsiniz.
---
Bu uzun ama aynı zamanda entelektüel birikiminiz sosyal çevreniz ve en önemlisi de kariyeriniz açısından çok heyecan verici bir yolculuk. Patika’da ekip olarak sizin bu yolculukta başarılı olmanız ve teknoloji sektöründe işe girmeniz için gece gündüz çalışıyoruz. Sizin de gerekli çabayı gösterdiğinizde hedefinize ulaşacağınızdan hiç kuşkum yok.
Sizlerle paylaşmak istediğim ancak bu yazıya sığdıramadığım pek çok farklı konu var. “Soft skill” nedir ve “networking” nasıl yapılırdan, topluluğa katkı vermenin önemine kadar iş hayatında karşınıza çıkabilecek pek çok farklı mesele var.
Ayrıca, yazının başında bahsettiğim gibi, bu yazıları bir seri haline getirmek de hedeflerim arasında. Kendinizi geliştirdikten sonra ilk işinizi nasıl bulabileceğiniz, teknoloji sektöründe yazılım geliştiriciliği dışında neler yapabileceğiniz, ilk işinizde nasıl başarılı olabileceğiniz, İngilizce bilmenin önemi ve yurtdışında iş bulmak için yapabilecekleriniz gibi çeşitli konulara da değinmek istiyorum. Umuyorum ki ilerleyen zamanlarda onları da ekleyerek bu yazıyı tam bir rehber haline getirebilirim. Ancak şimdilik bunlarla yetineceğim.
Sormak istediğiniz şeyler varsa ya da geri bildirimde bulunmak isterseniz bana email@example.com adresinden ulaşabilir, beni LinkedIn üzerinden takip edebilir, ya da beni LaunchPad Discord’unda bulabilirsiniz. Bu başlangıç rehberinde katılmadığınız yerler olursa veya belirli bir kısmına geri bildirim yapmak isterseniz şu döküman üzerine doğrudan yorumlarınızı bırakabilirsiniz.