Günümüzün bilgisayar bilimleri öğrencilerinin çoğu, profesyonel kodlama için gereken temel becerileri yeterince öğrenmiyor. Bu önemli bir sorun. Çünkü algoritmaları, veri yapıları ve kod tasarımı üzerine çok iyi olabilirler ancak konu bir projeyi hayata geçirmek olunca daha fazla profesyonel kodlama bilgisine ihtiyaç duyarlar.
Geliştiricilerin hem tasarımı hem de uygulamayı yapması gerektiği için, yazılım geliştirme çoğu meslekten ayrışır. Üstelik üniversitelerde, nadiren tartışılan bir konu daha var: kodlayıcılar bazen bugları yani hataları düzeltmek zorunda! Daha önceden yazılmış ya da yazılmakta olan kod, her zaman denetime ve kontrole tabii olabilir. Ancak hatasız bir kod yazılacağı garantisi verilemez.
Üniversite derslerini gerçek dünyanın bir parçası haline getirmek mümkün mü? Bu soruya verilecek olan cevap çok önemli. Çünkü, endüstrideki ihtiyaçları göz önünde bulunduracak olursak, bilgisayar bilimi derslerinin gelişmesi gereken bazı alanlar var. Bakalım, bunlar neler?
Sorun çözme becerileri
Çoğu insan iş dünyasına girerken öncelikli olarak sorun çözme becerisine sahip olmalıdır ve yazılım geliştiriciler de bu ihtiyaçtan azade olamaz. Eğitim süresince, kodlama deneyimi genellikle tek bir ders ya da beceri öğretmeye odaklanan ödevler üzerine kuruluyor. Varolan bir kod grubunu seçmek, hataları önceden tanımlamak ve düzeltmek, değişiklikleri doğrulamak, entegrasyon ve dağıtım aşamalarında çalıştırmak, öğrencilerin daha sonra karşılaşacakları zorlukların neler olacağını daha iyi gösterebilir.
İşbirliği ve iletişim
Yazılım geliştirmek, bir takımın nihai bir ürün sunma becerisine ve rollere sahip birden fazla katkıda bulunan takımın parçası olmak gibidir. Yazılım geliştirme dersleri, genellikle öğrencilerin diğer öğrencilerle birlikte kodlama konusunda deneyim kazandıkları bir alan yaratır.
Sonrasında daha özel işletmelerde veya kamu sektöründe çalışan öğrenciler için bu işbirliği ve proje üzerine iletişim kurma becerileri büyük fayda sağlar. Geliştiricilerin yaptıklarını yalnızca birbirleri ile değil, diğer teknik olmayan departmanlarda meslektaşları olabilecek müşterilerle nasıl iletişim kuracaklarını öğrenmeleri gerekir. Çalışmalarını, müşteriden ne istediklerini veya üstesinden gelinmesi gereken noktaları ifade edebilmek, yazılım geliştiricilerinin rollerinin önemli bir parçasıdır.
Bu nedenle, derslerin üç ek unsur üzerinde yoğunlaşması gerekir: bir tanesi ‘takım oyuncusu’ zihniyetini teşvik etmek; ikisi, bir projeye tanımlanabilir, şeffaf bir şekilde katkıda bulunmak için her bireyi görevlendirmek; ve üç, iletişim becerileri, ki bu kesinlikle ihmal edilebilecek bir şey değildir.
Başkasının kodunu anlama
Başkasının kodunu okumayı ve deşifre etmeyi öğrenmek, kazanılması gereken önemli bir beceridir. Çünkü geliştiricilerin günlük görevlerinin birçoğu, başkası tarafından yazılmış olan mevcut kodun değiştirilmesiyle ilgilidir.
Sorun şu ki, üniversite derslerinde genellikle kişilerin kendi kodlarını oluşturması beklenir. Bu yaklaşım, diğer ekip üyeleriyle çalışmaya elverişli olmayan kodlama davranışlarının evrimini teşvik edebilir. Örneğin, gereksiz yere yaratıcı girintileme stratejileri, gelecekteki meslektaşları için rahatsız edici ve düpedüz can sıkıcı olabilir.