Skip to content

ozturkomerfaruk/Patika-Vakifbank-iOS-Bootcamp

Repository files navigation

Patika Vakıfbank Swift iOS Bootcamp

Merhabalar. 7 haftalık geçirmiş olduğum bootcamp eğitimimi tamamladım ve sertifikamı almaya hak kazandım. Bu süreçte yaşamış olduğum tüm tecrübeyi sizlerle paylaşmak istiyorum. Ben elimden geldiğince notlar almaya çalıştım çünkü ilk defa Swift dünyasıyla tanıştığım için notlar alarak ilerlemenin doğru olduğunu düşündüm.

Bir de belirtmek istediğim bir şey var. Ödevler bize verilirken keskin kurallarla, şunlar şunlar yapılacak diye verilmedi hiç. Ödevin ana hatları belirtildi ve devamında yorum yapmak bizlere bırakıldı. Ödevlerimi inceleyecek olursanız, tasarımdan ziyade kodları yazış bakımında eksikliklerimi issue bırakarak söylerseniz, çok sevinirim.

Doğrulamak için tıklayabilirsiniz

Kitaplar

The Pragmatic Programmer

Andrew Hunt ve David Thomas tarafından yazılan bir yazılım geliştirme rehberi tadında bir kitaptır. Okumanızı şiddetle tavsiye ediyorum. Bootcamp boyunca bizden okunması istenen kitaplardan birisi oldu ve bu süreçte çok fazla şey öğrendiğimi inanıyorum. Kitap, yazılım geliştirme sürecine dair çeşitli konuları ele alır ve yazılım geliştiricilerin günlük çalışmalarını nasıl optimize edebileceklerine dair öneriler sunar. Örneğin, kitap, yazılım geliştiricilerin işlerini düzenlemelerine yardımcı olan teknikleri, test-driven development (yazılımı testlerle geliştirme) yöntemini ve yazılımın kalitesini nasıl arttırabilecekleri konularını ele alır.

Okurken kitabı kendi çaptımda notlar alarak özet çıkarmıştım. Bakmak için tıklayabilirsiniz.

Clean Code

Clean Code kitabı da bir yazılım geliştirme rehberi olan bir kitaptır. Bu kitap da aynı şekilde bootcamp sürecinde bizlere söylenmişti ve yine sizlerin okumanızı şiddetle tavsiye ediyorum. Robert C. Martin tarafından yazılmış olan bu kitap yazılım geliştiricilerin daha iyi yazılımlar yazmalarını sağlamayı amaçlıyor. Kitap, "Clean Code" prensiplerine odaklanıyor ve bu prensiplerin nasıl uygulanabileceğine dair örnekler sunuyor. Örneğin, kitap, kodun okunabilirliğini arttırmak için nasıl düzenlenebileceğini, kodun yapısını nasıl tasarlamaya yönelik pratikleri, kodun nasıl test edilebileceğini ve nasıl yeniden kullanılabilir hale getirilebileceğini ele alıyor.

Kitap özetine gitmek için tıklayabilirsiniz

Cracking the Coding Interview

Bu kitabı maalesef Bootcamp süresinde tam manasıyla okuyup, notlar alarak okuyamadım. Ancak Gayle Laakmann McDowell tarafından yazılmış yine bir yazılım geliştirme rehberidir ve yazılım geliştiriclerin iş görüşmelerinde sıklıklıkla sorulan sorulara yönelik problemler sorarak yazılımcıların. ufkunu artırmayı planlamaktadır. Kitap, ayrıca iş görüşmelerinde sıklıkla sorulan teknik soruların yanı sıra yazılım geliştirme sürecine dair genel bilgi ve iş görüşmelerine dair tavsiyeler de sunar. Örneğin, kitap, iş görüşmelerinde nasıl daha iyi bir izlenim bırakılabileceğine dair öneriler verir ve yazılım geliştiricilerin iş görüşmelerine nasıl hazırlanabileceklerine dair bilgiler de sunar. Tam manasıyla okumadım ama okuduğum kadarıyla sizlere kesinlikle tavsiye ederim.

Style Guidlines

Bir yazılım projesi için kullanılacak kodun biçimini, yapısını belirleyen kurallara bu ifade kullanılmaktadır. Bu kurallar, kodun okunabilirliğini arttırmak ve proje ekibinde çalışanlar arasında kodun yazımı konusunda anlaşma sağlamak amacıyla kullanılır. Style guidelines, genellikle bir projenin belgelerinde ya da bir projenin özel bir web sitesinde yer alır ve proje ekibine uyulması gereken kuralları içerir. Genel olarak, style guidelines, bir yazılım projesi için kullanılacak kodun biçimini ve yapısını belirleyen kurallardır ve kodun okunabilirliğini arttırmak ve proje ekibinde çalışanlar arasında kodun yazımı konusunda anlaşma sağlamak amacıyla kullanılır.

Bunun için bazı notlar aldım ve Style Guidlines Swift dili kendisi için neler söylemiş, elimden geldiğince onlara baktım. Linkedin, Airbnb ve Google için neler konuşulmuş, onları irdeledim. Bakmanızı şiddetle tavsiye ediyorum.

Hafta 1

Swift diline daha çok giriş yapılmıştır. Tuple, Optional, Substring gibi temel noktalarda notlar aldım.

Hafta 1 - Ödev

Swift dilinin temeline yönelik algoritma soruları soruldu.

Gitmek için tıklayabilirsiniz.

Hafta 2

Swift dilinde OOP mantığına giriş yapmaya başladık. Class ve Struct kullanımı. Properties ve Inheritence gibi konulara girilmiştir. İncelemek için tıklayabilirsiniz.

Hafta 2 - Ödev

Bu haftaya özel 2 ödev verildi ve bu ödevler nesne tabana yönelik ödevler oldu. Kendi çapımda ödevleri yapmaya çalıştım ama tabi bazı şeyler çok bodoslama oldu. Bakmak için tıklayabilirsiniz.

Hafta 3

iOS dünyasına giriş yaptık ve temel noktalarda öğrenmeye başladık. Basic Components, Table, Custom cell, Collection View, Nav Controller ve burada Search Bar, StackView, Sayfa geçişleri olarak Navigation Controller ve Segue kullanımı. User Default ile Keychain arasındaki farklar ve API dan veri çekme. İncelemek için tıklayabilirsiniz.

Hafta 3 - Ödev

İkinci hafta yapılan ödevin artık görsel bir geçerlilik kazandırılması gerekmektedir. Bu hafta bizden istenen ödev bu oldu. Ödeve gitmek için tıklayabilirsiniz.

Hafta 4

Bu hafta biraz daha derine iniyoruz. Generic Where & HighOrder Fonksiyonlar. ARC'e (Automatic Reference Counting) giriş yapılmıştır. XibFile oluşturma. Notification Center ile Delegate Pattern arasındaki farklar. WebView kullanımı. Tabbar ve PageView kullanımı. Birde örnek bir proje geliştirilerek Clint Service iyice pekiştirildi. Bu mimaride MVC kullanıldı ve SPM gösterildi. İncelemek için tıklayabilirsiniz.

Hafta 4 - Ödev

The Breaking Bad uygulaması hazırlandı. 3 tablı bu uygulamada ilk sayfada karakterlerin isimleri sergilendi. Ve ordan detay ekranına gitti. Bölümlerin listelendiği bir tab hazırlandı ve her bölümde hangi oyuncular listeleniyor onlar gösterildi. Sob tab sayfasında da web view ile imdb sayfasına gidildi. Ödevin detayına gitmek için tıklayabilirsiniz.

Hafta 5

Dördüncü hafta derste işlenen örnek uygulamaya ekleme yapılarak Core Data kavramına giriş yapıldı. Xibfile oluşturularak delegate pattern'e vurgu yapıldı. Bir de Agile - Scrum kavramı vurgulandı. Nedir ne değildir tek tek notlarını aldım readme dosyasında. Notlara gitmek için tıklayabilirsiniz.

Hafta 5 - Ödev

  1. Hafta ödevine ek olarak yeni bir tab sayfası istendi ve orada Core Data kullanılması söylenmişti. Ben buna ek olarak animasyon kullanımını denedim ve CoreData'ya resimlerin nasıl yüklenebileceğini araştırdım. Gitmek için tıklayabilirsiniz.

Hafta 6

İlk konu yazılımcı egosu nedir? Bunun üzerine bir muhabbet geçti ve üzerine biraz da ben bir şeyler katarak bazı notlar aldım. Bir şirkette gerçekten yazılımcı egosuna maruz kalmak diye bir olay var ve bu çok kötü bir şey.

Detaylamasına SAC (Swift Access Control) incelenmesi. Cocoapods kullanılması. Alamofire paketinin incelenmesi. Sırasıyla MVC, MVVM ve VIPER mimarilerinin incelenmesi. MVVM ve VIPER da Unit Testlere değinilmesi. İncelemek için tıklayabilirsiniz.

Hafta 7

Local Notificationdan bahsedildi biraz. Ancak bu hafta daha çok geçmiş ödevlerde ki eksikliklerden bahsedildi ve mülakatlarda bazı *trick ifadelerden bahsedildi. Bu hafta daha çok sohbet havasındaydı. SwiftLint, Mocker, Snapkit ve MVVM-C den bahsedildi. Swift kendi dökümantasyonunda CollectionView adlı yazısında örnek verdiği bir çok güzel ifade bulunmakta. Onlardan bahsedildi. Yine de bu haftaya gitmek için tıklayabilirsiniz.

Bitirme Projesi

Bitirme projesi olarak bize 2 hafta süre verildi ve 2 hafta süre boyunca RawG sitesini kullanarak oyunseverlere yönelik bir proje yapılması istendi. Tüm detayları readMe dosyasında anlattım. Bakmak için tıklayabilirsiniz.

Son Olarak

Ben bu bootcamp sürecinde çok keyif alarak ilerledim. İmkanı olan herkesin bu bootcamplere başvurmasını istiyorum. Bu bootcamplere evet seçilmek çok zor oluyor. Çok başvuru geliyor ve belki de hiçbir açıklama yapılmadan direk eleniyor olabilirsiniz. Ancak benim bootcamp sürecimde öğrendiğim çok fazla şey var ve iyi ki girebilmişim bir şekilde diyebiliyorum. Hocamızın kalitesi son derece iyiydi ve bizlere her zaman destek oldu. Bootcamp de tanıştığım arkadaşlıklar son derece iyiydi. Kendileriyle hala iletişimim olması güzel bir şey.

Bootcamp boyunca açılan ortak Github Classroom'a bakmak isterseniz eğer, tıklayabilirsiniz.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published