Üniversite Yıllarında Yazılım Alanında Yapılabilecek Mesleki Gelişim Aktiviteleri

Yusuf Yılmaz
Bilişim Hareketi
Published in
7 min readDec 7, 2020

--

Photo by Mimi Thian on Unsplash

Üniversite yıllarında öğrenim görürken hemen hemen hepimiz; mezuniyet sonrasını, sonrasında neler yapacağımızı, hangi firmada o firmada hangi takımda ve kimler ile çalışacağımızı düşünüyoruz. Tabii bunları gerçekleştirmek için bazı mesleki tecrübelerin de beraberinde gelmesi gerekiyor. Bu yazı, son bir yılda, 4. sınıfa geçerken edindiğim tecrübeleri ve bazı arkadaşça önerileri içeriyor.

Yazılım mühendisliği bölümü için üniversiteye başlarken ilk defa duyacağınız, göreceğiniz konular ve alanlar olduğundan dolayı ilk zamanların yorucu ve düşündürücü geçmesi gayet normal. Hele ki benim gibi bilgisayarını ilk defa üniversitede almış ve mesleki alanda hiçbir bilginiz yoksa inanın daha da zor oluyor.

Üniversite yıllarında mesleki gelişim adına yapılabilecekler listesine başlayabiliriz.

Yazılım Kulüpleri ve Gerçekleştirdikleri Etkinliklere Katılım Sağlamak

İnanın üniversite başlangıcında atacağınız en faydalı adım okuldaki bilgisayar bilimlerine ait; yazılım, bilgisayar kulüplerine ve bu kulüplerin etkinliklerine kayıt olmaktır.

Üniversite kulüpleri genellikle mesleki alanda kültür haline gelmiş haftalık etkinlikler, sohbetler düzenlemekte bunların yanı sıra bir dönem içerisinde birkaç büyük etkinlik de gerçekleştirmekteler. En azından K.T.Ü Yazılım Kulübü olarak bizler öyle yapıyoruz.

Üniversiteye ilk başladığınız zaman inanıyorum çoğunuz bu sorulardan bazılarını sormuş olabilirsiniz; “Nereden başlamalıyım?”, “Hangi dili yazmalıyım?” gibi gibi birçok sorular. Bu soruları soracağınız ve cevapları alacağınız kimselere ihtiyacınız vardır mutlaka.

Kulüplerin sürekli etkinlikler düzenlediğinden bahsettik. Genellikle her hafta farklı konular, farklı konuşmacılar oluyor. Oraya gelen konuşmacının anlatacağı şeyler aslında aklınızdaki o dile ya da o konuya ait soruların cevaplarını içeriyor olacak. Merak ettiğiniz soruları belki de canlı olarak göremeyeceğiniz birisine direkt olarak yüz yüze sorma fırsatınız olacak. Sorularınızı, bilen birilerine soruyor olmak inanın yan sıranıza duran hiçbir şeyden haberi olmayan bir arkadaşınıza sormaktan daha mantıklı ve sizleri daha çabuk daha doğru yola yönlendirir.

Kulüp etkinliklerine katılmanın yanı sıra kulüp yönetimine de katılmanın çok önemli olduğuna değinmeden geçemeyeceğim sanırım. Mutlaka her kulüpten birileri mezun olur ve yerine birileri alınır. Bu hep böyle devam eder. Burada yapılacak en doğru hareket kulüp yönetimine katılmak, etkinliklerde ve organizasyonlarda görev, sorumluluk almak olacaktır. Bu sayede hem etkinliğe dahil olacak hem de aldığınız sorumluluğu, görevi yerine getirerek etkinliklere dışarıdan dahil olan birisine göre daha avantajlı olacaksınız. Örnek vermek gerekirse etkinlik düzenlediğimizde etkinliğin bittiği vakit etkinliğe gelenler yavaştan dağılırken yönetim ekibi olarak konuşmacılar ile birlikte genelde sahil kenarında yemek yemeğe gideriz. Sorularınızı, yemek yerken, bilen birisine daha samimi bir havada sorabilir, tanış olabilir belki de birlikte çalışma fırsatı bile bulabilirsiniz.

Günün sonunda mezun olacağız ve sektöre girdiğimiz zaman alanında iyi ne kadar çok kişiyi tanırsak, networkümüzü genişletirsek bizler için o kadar iyi olacaktır. Tanış olduğunuz kişi, siz mezun olmadan sizi aralarında görmek isteyebilir ya da başvurduğunuz firmadaki kişi sizleri, karakterinizi ya da mesleki deneyim/hevesinizi bileceği için süreç sizin için hızlı bir ilerleme gösterecektir.

Kulüpte aldığımız görevlerin mesleki faydalarının yanı sıra diğer birçok konuda da katkı sağladığını söyleyebilirim. Düzenlediğimiz algoritma yarışmasında sunumları yapma fırsatım oldu, bu sayede topluluk önünde olan konuşma yeteneğim, özgüvenim arttı. Bunu sürekli gerçekleştirdiğiniz takdirde inanın mükemmel bir ilerleme oluyor eski halinize göre.

Mülakatlardaki avantajlarından da bahsedecek olursak 2. sınıf stajı ve şu anki çalıştığım firmanın mülakatlarında karşımdaki kişi ile kulüp olarak neler yaptığımız, orada hangi görevleri aldığım gibi konular hakkında konuşma fırsatımız da olmuştu. Karşı taraf üzerinde “Etkinliklerde, organizasyonlarda aktif olarak yer alıyor; sorumluluk hissini, geri kalmamaya ve kendini güncel tutmaya çalışıyor. ” izlenimi uyandırıyor.

Yabancı Dil Öğrenmek

İnanıyorum ki yabancı dil öğrenmenin gerekliliğine benden önce birçok kişi değinmiştir. Şunu samimiyetimle söylemem gerekiyor ki yabancı dil bilmeseniz bile bir yerlere kadar gelebilirsiniz; güzel konumda, güzel tecrübeler ile yer de alabilirsiniz ama şunu da söylemem gerekiyor ki bulunduğunuz durumdan daha da ileriye gidemez, yenilikleri takip edemezsiniz.

Günün sonunda yazılım alanında çoğu teknolojik gelişmeler yabancı ülkelerden çıkıyor. Bunları takip etmek için maalesef yabancı bir dile ihtiyacınız var. Şayet yabancı diliniz yoksa ya translate ile çevirmek zorunda kalacaksınız ki bir şey anlam ifade etmeyecektir ya da sizlerden önce yabancı dil bilen birilerinin zaman harcayıp sizler için bunu Türkçe kaynak olarak yayınlamasını bekleyeceksiniz. Burada direkt olarak birilerine bağımlı kalıyorsunuz ki bu da hiç iyi bir şey değil, belki o teknoloji çıktıktan aylar sonra ilk Türkçe kaynak yayınlanacak, kim bilebilir. Belki de yeni çıkan teknolojiye ait paylaşılan Türkçe kaynakta yazar bazı kısımları tam kavrayamayıp sizler için yanlış bilgi de vermiş olabilir, bu yanlış bilgiyi o kadar doğru benimsediniz an olabilir ki projenin ilerleyen zamanlarında o çok güvendiğiniz kod blokları sizlere haftalar da kaybettirebilir.

Şöyle bir örnek vererek de yabancı dil için konuyu sonlandırabileceğimi düşünüyorum: Çalıştığım firma şu an kendi call-center/pbx ürünlerini çıkartan bir firma. Geçenlerde aldığım task’ta ise opensips sunucularına gelen çağrı istekleri için conf dosyalarını düzenlemem; istek atılan numaraların bizim servislerimizde olup olmadığını kontrol etmem, arama kayıtlarının başlangıcı için Redis’e kayıt eklemem, sunuculara gelen isteklerin yetki kontrolü, işlemler başarılı ise de uygun asterisk sunucularına yönlendirmem gibi işlemleri conf dosyalarında gerçekleştirmem gerekiyordu. Daha önce yapmadığım bir şey, opensips’e ait kod syntaxı tamamen farklı bir şeydi. Bunun için yazılan Türkçe kaynağı geçtim, döküman dışında yabancı kaynak yoktu. İnanın beklerseniz belki de yıllar boyunca hiç o kaynak olmayacak. Oturup günlerce dökümantasyonu okuyarak yazdım.

Git ve Github Kullanmak

Git ve Github kullanmanın sağladığı yararlardan bazıları; projeleri versiyonlayarak ilerlemek, takım halinde efektif bir şekilde çalışmak, projelerimizi başkalarının erişebileceği bir hale getirmek, open-source projelere katkı sağlamak ya da kendi projelerimize katkı almak gibi birçok yararları mevcut. Burada asıl üniversite zamanındaki olaylara değinme nedenim iş veya staj başvurularında dikkat edilen ilk şeylerin başında Github hesabının olması geliyor.

Staj ya da mezuniyet sonrası için hazırlanan CV’lerde her ne kadar; şu dilleri biliyorum, şu frameworkler ile çalıştım, şöyle projeleri gerçekleştirdim, şu projelere katkı sağladım, dense bile karşı taraf bunların somut karşılığını görmek isteyecektir. Yapılan projelerin, yazılan kod bloklarının Github ya da başka bir platforma atılması yaptığınız işlerin karşı taraf tarafından görülmesini sağlayacaktır.

Şu an çalıştığım firmanın yeni mezun iş ilanına gelen başvuruları ön elemeden geçirmesini görme fırsatım oldu. Ortalama 400–500 aday vardı ve ilk yapılan filtre CV’lerde Git, Github gibi kelimelerin geçiyor olması idi. Firma olabildiğince CV’lerde geçen programlama dili bilgilerinin sonuçlarını, ürünlerini görmek, doğru adayı tespit etmek istiyordu ki bu gayet normal bir şey ve filtre sonrası sayı 100 adayın altına düştü. Çoğunun Github hesapları sadece açılıp öyle bırakılmıştı, Github hesabı açıp düzenli olarak kullanan kişi sayısı yok denilecek kadar azdı ve sürecin ilk basamağına bu filtre sonucu çıkan adaylardan devam edildi.

Üniversite zamanınca yapılması gereken ilk şeylerin 3'ünden birisi Git ve Github kullanmak olacaktır sanırım.

Programlama Dilleri Arasında Dallanmamak

Okul zamanı hobi, kişisel gelişim ya da iş için bazı programlama dillerini kullanırız. Burada verebileceğim arkadaşça tavsiyem, sürekli diller arasında geçiş yapmaktansa bir dil belirleyip onun biraz derinine inip inceliklerini öğrenirken bir yandan da diğer dillere fırsat tanımak olacaktır diye düşünüyorum aksi takdirde 4–5 farklı programlama dilinde sadece hızlı bir CRUD yapmış olacaksınız. Bunun yerine; kodun performansını nasıl artırırım, kodun okunaklığını nasıl sağlarım, nasıl unit test yazarım, sıkça kullanılan tasarım desenlerini nasıl uygularım, Aspect Oriented Programming’den nasıl faydalanırım, distributed cachingi nasıl uygularım, uygulamalarım arası haberleşmeyi ya da asenkron işlemleri nasıl bir kuyruğa aktarıp işleri daha efektif ve güzel yaparım gibi gibi birçok soruların cevaplarını arayıp işleri daha güzel yapabilir ve diğer kişilerden sıyrılıp ön plana çıkabiliriz.

Türkçe Kaynağa Katkı Sağlamak

Etkili öğrenme için yapılabilecekler ağacı

Hiç şüphesiz öğrendiklerimizi bir başkalarına anlatırken, aktarırken; konuya olan hakimiyetimiz, akılda kalıcılığı daha da artar. Üniversite zamanı birçok bilgiyi öğreniyor, notlar alıyoruz. Bu öğrendiğimiz konulara ait medium, devnot ya da başka platformlarda blog yazıları yazılabilir YouTube gibi ortamlarda videolar çekilebilir. Bu sayede daha güzel, detaylı yazmak veya anlatmak için daha çok araştırmış olacağız böylece hem biz bildiklerimizin aksine daha çok araştırma yapıp daha çok öğreneceğiz hem de Türkçe kaynağa katkı sağlayarak başka insanların da o bilgiye erişmesini sağlamış olacağız.

İnsanların, sizlerin çıkardığı Türkçe kaynağa verdiği teşekkür mesajları, olumlu geri dönüşleri de es geçmemek gerekiyor. 2. sınıf stajım sonrası ajandama yazdığım konulara ait yazıları Devnot üzerinde yayınlama fırsatını yakaladım. Devnot üzerinde yazdığım blog yazılarından ve GitHub üzerindeki tasarım desenlerine ait Türkçe kaynağından gelen olumlu geri dönüşler beni içerik üretirken gerçekten çok motive etti, süreklilik sağlamama vesile oldu. Güzel bir iş başardığınızın göstergesi olmakla birlikte, birilerine katkı sağlıyor olmanın verdiği mutluluk sizleri daha çok içerik üretmeye itiyor.

Alanında İyi Geliştiricileri Rol Model Almak

Lemi Orhan — Yazılımda Ustalık Çıraklık İlişkisi

Hackathon ve Mülakatlara Katılmak

Üniversite zamanında her sene bir şeyler öğrenir ve bir sonraki seneye geçeriz. Bildiklerimizi, bildiğimizi sandıklarımızı test etmek veya seviyemizi ölçmek için hackathon ve teknik mülakatlara katılmak oldukça önemli. Bu sayede firmaların talep ettikleri geliştirici adaylarına yaklaşım biçimlerini, sorulan soruları, beklentileri öğrenme fırsatını yakalayabiliyoruz ve ilerleyen mülakatlar ya da hackathonlar için birer tecrübe kazanıyor ve kendimizce de dersler çıkartıyoruz.

Örnek vermek gerekirse: 2. sınıf sonuna doğru girdiğim staj mülakatlarında Logo’nun teknik mülakatında, Intertech’in video mülakatında, Hipo Labs’ın ilk aday incelemesinde İngilizce kısmında ve birçok mülakatta elenmiştim. 3. sınıfın sonunda ise birçok IT firmalarının dışında Trendyol’un staj, iş ve bootcamp olmak üzere kimisi teknik, kimisi insan kaynakları olmak üzere 3 mülakatında da elenmiştim.

Yapamadığım, kazanamadığım, geçemediğim her mülakat benim için birer dönüm noktası oldu. Video mülakatlara baktığımda kendimi ifade etmekte zorlandığımı gördüm, konuşmam cümle kurmam kötü idi ve kitap okumaya, diksiyonumu düzeltmeye başladım. Yabancı dilimin kötü olmasından dolayı İngilizce kursuna yazıldım. Teknik mülakatlara hazırlık, farklı problemleri görme adına Hackerrank, Leetcode gibi platformlardan sorular çözdüm, insanların benim çözümümden ziyade nasıl bir yaklaşım sergilediklerine baktım. Bunları yaptıktan sonra katıldığım mülakatların artık daha az sancılı geçtiğini gördüm ve süreç gayet güzel ilerlemeye başlamıştı. Geçenlerde sahibinden.com’un düzenlediği devakademi programına başvurdum; teknik, insan kaynakları ve hackathon mülakatını da geçerek binlerce aday içerisinden 5. olarak okul sonrası için iş teklifi ve para ödülünü aldım. 🎉🏅

Benim, üniversite yıllarında mesleki alanda kendimizi geliştirmek için fark ettiğim, uygulamaya çalıştığım aktiviteler bunlar. Umuyorum sizler için de faydalı bir yazı olmuştur.

Beni; Github, Twitter ve diğer sosyal ağlardan takip edebilirsiniz.

--

--