C ve C++ Yazılım Geliştiriciler için Yurtdışı Kariyer Olanakları ve Görüşme Teknikleri Altan Alpay 4/6/2017 CSD C/C++ Altan Alpay
Özet C ve C++ açısından Yurtdişi İş Piyasalarına Genel Bakış Amerika İngiltere ve İrlanda Almanya İşe Alınma Süreçleri Özgeçmiş Hazirlanmasi Kariyer Siteleri ve Başvuru Telefon Görüşmesi (Phone Screning) Yüzyüze Görüşmeler (On-Site Interview) Teklif Aşaması ve Ücretlendirme Referans Kontrolu ve Geçmiş Araştırması Göçmenlik, Çalışma İzni ve Vize Alınması 4/6/2017 CSD C/C++ Altan Alpay
Özet İş görüşmelerinde sık sorulan sorular: C ve C++ Soruları Veri Yapilari (Data Structures) STL (Standart kütüphane) Algoritmalar ve Karmaşıklık (Complexity) Analizi Nesneye Dayalı Tasarım ve Tasarım Desenleri (Design Patterns) TCP/IP ve Ağ Programlama Çoklu İş Parçacıkları (multi-threading) ve senkronizasyonu Unix/Linux Programlama İşlemler Arası Haberleşme Mekanızmaları (Interprocess Communication) Gömülü Sistemler 4/6/2017 CSD C/C++ Altan Alpay
UYGULAMA Programcılığı Dünyada C/C++ Nerelerde Kullanılıyor? Sistem Programlama ve Gömülü Sistemler Bilişim Altyapısı (İşletim Sistemiler, Veritabanlari) Telekom Altyapısı (Router, Baz İstasyonu, Santral) Mobil Cihazlar (Cep telefonu, USB Modem, iPad) Havacılık Otomotiv Finans (Borsa İşlemleri) İnternet (Google, Yahoo, MSN) Savunma Sağlık Ölçeklenme (Scalability) UYGULAMA Programcılığı 4/6/2017 CSD C/C++ Altan Alpay
Ölçeklenebilirlik (Scalability) Donanıma Yakınlık (Hardware) Esneklik Neden C/C++? Performans Kontrol Ölçeklenebilirlik (Scalability) Donanıma Yakınlık (Hardware) Esneklik 4/6/2017 CSD C/C++ Altan Alpay
Neden gitmeli? Dünya Standartlarında Tecrube edinmek Kalibrasyon Komplex ve Heyecanli Projelerde Çalışmak Yabancı kültürleri tanımak Yabancı Dilini Geliştirmek Dövizli Askerlikten faydalanmak (3 yıl gerekli) 4/6/2017 CSD C/C++ Altan Alpay
Neden dönmeli? Türkiye’deki Yazılım Sektorunun Geliştirmek Dünya Standartlarına Yaklaştırmak Komplex Projelerin Türkiye’de yapılması için gereken İnsan kaynaklarını sağlamak 4/6/2017 CSD C/C++ Altan Alpay
C/C++ Piyasalara Genel Bakış Ülke Büyüklük Derinlik Ücret Vize Uzaklık Türk Görüşme ABD Orta Zor Uzak Az Çok Zor Almanya Yakın Çok Kolay İngiltere İrlanda Fransa Çok Yakın 4/6/2017 CSD C/C++ Altan Alpay
Amerika Başlıca Yazılım Merkezleri Silikon Vadisi ve Çevresi (San Francsico) Boston ve Çevresi (Route 128) New York ve New Jersey (Finans ve Telekom) Dallas (Telekom ve Gömülü Sistemler) Seattle (Microsoft, Amazon, Boeing) Raliegh, NC (Research Triangle Park) San Diego (Wireless, Qualcomm) Washington, DC (Devlet, Güvenlik ve Savunma) 4/6/2017 CSD C/C++ Altan Alpay
Amerika Kariyer Siteleri İş Arama Motorları Monster Dice Hot Jobs (Yahoo) JobServe İş Arama Motorları Simply Hired Indeed 4/6/2017 CSD C/C++ Altan Alpay
Amerika Artılar Büyük ve Geniş Yelpazeli Yazılım Piyasası Yenilikçi ve Girişimci Eğitim olanakları ve Üniversiteler (MIT, Harvard, Stanford, Berkeley) Eksiler Ücretlerdeki ve Refah Seviyesinde Gerileme Hintli ve Çinli Baskısı Çalışma İzni Yıllık Kotalara Tabi (65,000 adet) Türkiye’den Uzaklık (12 saat – 18 saat uçuş) Türk nufusun az olması 4/6/2017 CSD C/C++ Altan Alpay
Almanya Başlıca Yazılım Geliştirme Merkezleri Munich (Telekom, Otomotiv, Gömülü) Düsseldorf/Köln (Telekom) Frankfurt (Finans) Stutgart (Otomotiv) Nürnberg (Telekom ve Gömülü) Berlin, Hamburg ve Aachen diğer merkezler Başlıca Sektorler ve Oyuncular Gömülü Sistemler (Bosch, Siemens) Telekom (Nokia Siemens, Ericsson, Rohde&Swartz, Infinion, Comneon) Otomotiv (BMW, VW, Mercedes, Porsche) Sağlık (Siemens) 4/6/2017 CSD C/C++ Altan Alpay
Almanya Avantajlar Büyük ve Kurumsal Şirketler Genelde Hard-Products (Araba, Tren, Cep telefonu) Projelerde başka mühendislik dallarıyla etkileşim (multi-disciplinary) Uzun Soluklu Projeler İş Güvenliği ve Sendikal Haklar Danışman ve Sözleşmeliler için Yüksek Ücretler Yukarıdan Aşağı Yönetim Yaklaşımı (Bottom-Up) Uzun Tatiller (Yaklasık 8 hafta) Türkiye’ye yakınlık Türklerin çok olması (Market, TV, Sinema, Gazete, Uçuş, Dernek) Eksiler Kadrolu Çalışanlar için Düşük Ücret Türklerin çok olması Girişimcilik ve Serbest Çalışma Kültürel olarak sevilmez Kötü Hava Şartları Dil Problemi 4/6/2017 CSD C/C++ Altan Alpay
İngiltere / İrlanda İngiltere İrlanda JobServe.co.uk Monster.co.uk Londra => Finans ve Bankacılık Cambridge / M11 M4 Corridor Silicon Glen (İskoçya) HSMP (Kalifiye Göçmen Programı) İrlanda Dublin Cork Yeşil Kart Programı (IT çalısanları için 2 sene kısıtlamasız çalışma vizesi) JobServe.co.uk Monster.co.uk 4/6/2017 CSD C/C++ Altan Alpay
Özgeçmiş Hazırlanması Amerika Resume Avrupa Curriculum Vitae Üst Düzey Executive Summary Danışman Bio 4/6/2017 CSD C/C++ Altan Alpay
Amerikan Tipi Özgeçmiş (Resume) Resume’ye konulmayacaklar (Önemli!!) Fotoğraf Cinsiyet Doğum Tarihi Doğum Yeri Medeni Durum Çocuk Sayısı Vatandaşlık Askerlik Göçmenlik Sürücü Ehliyeti Üniversite Giriş Sınavı Sonuçları Hobi olarak ‘reading’ 4/6/2017 CSD C/C++ Altan Alpay
Avrupa Tipi Özgeçmiş (CV) CV’ye konulacaklar Fotoğraf (Özellikle Almanya’da) Cinsiyet Doğum Tarihi Doğum Yeri Medeni Durum Vatandaşlık Çalışma İzni Sürücü Ehliyeti 4/6/2017 CSD C/C++ Altan Alpay
Özgeçmiş Hazırlama Her Ülke için Ayrı Özgeçmiş Amerika için Resume Avrupa için CV Her Pozisyona Göre Ayrı Özgezmiş Yazılım Geliştirici (Software Engineer / Developer) Test / Yazılım Kalite Mühendisi (Test / QA Engineer) Yazılım Mimarı (Software Architect) Sistem Mühendisliği (System Engineering) Project Manager Product Manager Program Manager JAVA / C++ açısından farklı CV’ler 4/6/2017 CSD C/C++ Altan Alpay
Özgeçmiş Yapısı İletişim Bilgileri Hedef (Objective) (önemli!) Skills and Qualifications Tablosu (En Önemli Kısım!!) Skill İsmi (C/C++, Java, Network Programming etc) Detayları (C/C++ => STL, Templates, Boost, ACE) Bilgi Derecesi (Expert, Beginner, Medium) Çalışma yılı (3 yıl, 5 yıl) İş Tecrubeleri (Sondan başa doğru) Pozisyon (Title/Role) Projeler ve görev tanımı Kullanilan Teknoloji (Environment/Technologies) Eğitim (En sondan başlayarak) Lisans ve Yüksek Lisans (Lise ve İlkokul yazmayın) Yazılımla alakalı aldığınız kurslar 4/6/2017 CSD C/C++ Altan Alpay
Örnek Özgeçmişler 4/6/2017 CSD C/C++ Altan Alpay
Örnek Özgeçmiş Software Engineering (C/C++, Unix and Networking) Objective: To design and develop distributed systems in the problem domains of Finance. Programming Languages/Development Technologies/Platforms OOA/D: C/C++, UML, STL, ACE / TAO, Boost, Design Patterns Unix Programming: Linux, IPC, sockets, pthreads, Solaris, HPUX Network Programming: TCP/IP, UDP, SCTP, Sockets, ACE/TAO, CORBA Relational Databases: SQL, MySQL,Informix, TimesTen, Oracle OCCI Configuration Tools: Clearcase, SourceSafe, P4, SCCS, CVS, SVN 4/6/2017 CSD C/C++ Altan Alpay
Örnek Özgeçmiş Nokia Networks, Irving, TX April 2000 - April 2001 Sr. Consultant Short Message Service Center (SMSC) for TDMA Participated in the feasibility studies, system and subsystem specification design and implementation of an SMPP enabled SMSC prototype for TDMA (ANSI-136). I focused to the implementation of store-forward subsystem by utilizing C++/STL development tools on HP UNIX (HP-UX) environment. I used HP OpenCall SS7 Stack to handle IS-41D MAP over TCAP. Used OSS ASN.1 Compiler. Informix and its C/C++ SDK used as Relational Database. mPosition Gateway Mobile Location Center (GMLC) Ported and modified Alarm, Logging and Billing Daemons from Nokia SMSC to Nokia mPosition’s GMLC for GSM. Used Rational Rose and Visio for UML Modeling and ClearCase for source control. Technologies: SMSC, HP-UX, GMLC, C++, STL, Informix, TCAP, IS-47 MAP, HP OpenCall, SMPP 4/6/2017 CSD C/C++ Altan Alpay
Örnek Özgeçmiş Nokia Networks Sr. Consultant 4/6/2017 From 2000 April To 2001 April (1 Year) Technologies SMSC, HP-UX, GMLC, C++, STL, Informix, TCAP, IS-47 MAP, HP OpenCall, SMPP Nokia Networks Dallas, TX Sr. Consultant Contracted through Tangent International (SMSC) for TDMA Participated in the feasibility studies, system and subsystem specification design and implementation of an SMPP enabled SMSC prototype for TDMA (ANSI-136). I focused to the implementation of store-forward subsystem by utilizing C++/STL development tools on HP UNIX (HP-UX) environment. I used HP OpenCall SS7 Stack to handle IS-41D MAP over TCAP. Used ASN.1 Compiler. Informix and its C/C++ SDK used as Relational Database. mPosition (GMLC) Ported and modified Alarm, Logging and Billing Daemons from Nokia SMSC to Nokia mPosition’s GMLC for GSM. Used Rational Rose and Visio for UML Modeling and ClearCase for source control. 4/6/2017 CSD C/C++ Altan Alpay
Davranışsal Özellikler Leadership (Liderlik) Tutarlılı (Integrity) Analytical Thinking Problem Çözme (Problem Solver) İş Bitirici (Getting Things Done) Detaycı (Details Oriented) Çabuk Öğrenen (Quick Learner) Work without supervision (Bağımsız çalısabilen) 4/6/2017 CSD C/C++ Altan Alpay
Telefon Görüşmesi (Phone Screning) Görüşme Süreci Telefon Görüşmesi (Phone Screning) 30 dk 1-2 mühendis Yüzyüze Görüşme 1 Gün 6-7 Kişi İnsan Kaynakları Teklif Paketi 4/6/2017 CSD C/C++ Altan Alpay
Telefon Görüşmesi 30 dakika İletişim ve Yabancı Dil Temel C ve C++ Soruları Hedef ve Beklentiler Pozisyonun ve Şirketin tanıtımı 4/6/2017 CSD C/C++ Altan Alpay
Yüzyüze Görüşme Toplamda 1 Gün 5-6 saat 5-6 kişi + üst düzey yönetici + İK 30-45 dakika / görüşme 10 dk geçmiş projeler hakkında konuşma 10 dk bilgi veya tasarım soruları 15-20 dk kodlama Son derece Teknik Son derece Detay Tüm Görüşmelerde Kod yazmayı bekleyin (gün sonunda 5-6 algoritma yazacaksınız) Beğenilirseniz gün sonunda Yönetimle görüşme ihtimali 4/6/2017 CSD C/C++ Altan Alpay
Teklif ve Ücretlendirme Senelik Brüt Ücret Amerika => $80k - $120k (%90 dağılım) İngiltere => 30k – 60k pound İrlanda => 60k - 90k EUR (%90 dağılım) Almanya => 50 - 80k EUR (%90 dağılım) Bonus (ikramiye) Yılda 1 veya 2 kere olmak üzere Toplamda Senelik Ücretin %5 - %40 arası %10’u gectiği çok nadirdır 4/6/2017 CSD C/C++ Altan Alpay
Teklif ve Ücretlendirme Hisse Senedi İkramiyesi (Stock Awards) Genelde 1 sene bekleme süresi Hisse Senedi Opsiyonları (Stock Options) İşe başladığınız günün hisse senedi fiyat (strike) baz alınarak hisse senedi satın alma hakkı Genelde 4 yıl bekleme süresi (her yıl %25 alabiliyorsunuz) Örnek: 1/1/2010 tarihinde YHOO => $16.00, 10,000 opsiyon verildi, 1/1/2011 tarihinde YHOO $26 olursa, aradaki fark $10 X %25 (2500 adet) = $25,000 Hisse Senedi Satin Alma (Stock Purchase Plan) Piyasa değerinin %15 altına yıllık maaşınızın %25 kadar. Diğer (Benefits) Sağlık Sigortası Tatil (2 – 4 hafta Amerika, Almanya: 8 hafta, UK: 6 hafta) Okul ve Eğitim parasi (Yıllık $5,000 civari) Emeklilik fonlarına katkı %1 - %5 arası 4/6/2017 CSD C/C++ Altan Alpay
Teklif ve Ücretlendirme AYLIK BRÜT ÜCRET HESAPLAMASI Faktorler (Bekar/Evli, Çocuk, Eyalet ve Şehir Vergisi, Vergi Dilimi) Manhattan’da Bekar => $100k $5,140.28 aylık http://www.paycheckcity.com/ YAŞAM PAHALILIĞI INDEKSİ Manhattan Dallas $100k $42k http://cgi.money.cnn.com/tools/costofliving/costofliving.html http://www.bankrate.com/calculators/savings/moving-cost-of-living-calculator.aspx 4/6/2017 CSD C/C++ Altan Alpay
Referans ve Geçmiş Araştırması Profesyonel Referansların Kontrol Edilmesi Mutlaka 2-3 referans aranır Sadece Profesyonel İlişkiniz olan kişiler referans olur (eski çalışma arkadası veya yönetici) Alakasız kişiler referans olamaz (hoca, emmi, buddy, babamin arkadası zırt holding CEOsu) Referanslar Özgeçmiş’e yazılmaz, istenildiğinde verilir Özgeçmiş araştırması Sabıka Kaydı Çalıştığınız tüm şirketlerin aranıp çalışma tarihleriniz ve pozisyonlarınız kontrol edilir Diploma ve Transkriptleriniz Okulunuzdan kontrol edilir Yani PhotoShoplamayın!!! 4/6/2017 CSD C/C++ Altan Alpay
Göçmenlik ve Çalışma İzni Prensip olarak Şirketin Sponsorluğu esastır Amerika => H1b Gecici Kalifiye İşçi Vizesi 6 seneye kadar Her Yıl 65,000 Kota 1 Nisan’da Başvurular Başlar 1 Ekim’de Çalışmaya Başlanır Ağustos – Ekim arası optimum İş arama zamanı İşlemler 1-2 ay surebilr Sürebilir 4/6/2017 CSD C/C++ Altan Alpay
Göçmenlik ve Çalışma İzni İngiltere => HSMP High Skilled Migration Programme Puan Tabanlı (70/100 barajı var) Sponsor gerekmiyor, İşveren bagımsız Başlangıçta 2 + 2, sonra otomatik süresiz oturuma dönüşür Türk vatandaşlarından başvuru ücreti alınmıyor TOELF gerekiyor İrlanda => Green Card Programı En 60,000 EUR maaşlı teklif alan profesyonelleriçin Başlangıçta 2 sene ve sonra otomatik süresiz oturuma dönüşen Almanya => Yüksek Kalifiye Sınırsız Oturum Programı En 65,000 EUR maaşlı teklif alan profesyonelleriçin Direk baştan süresiz oturum 4/6/2017 CSD C/C++ Altan Alpay
Soru Tipleri Bilgi Soruları Tecrübe Soruları Kodlama Soruları Tasarım Soruları Hata (bug) Soruları 4/6/2017 CSD C/C++ Altan Alpay
C Soruları (bellek) C bellek türleri char* getString( ) { Global / Statik Değişkenler Yığıt (Stack) / Otomatik Değişkenler Heap / Dinamik Değişkenler char* getString( ) { char* str = “test”; return str; } char* getString( ) { char str[100] = “test”; return str; } 4/6/2017 CSD C/C++ Altan Alpay
C Soruları volatile keyword nedir? Niçin kullanılır? struct a {} seklinde tanimlanmis yapinin boyutu nedir? static kelimesi hangi anlamlarda kullanilir? Alloca static & global variables const char* ve const char const* farki 4/6/2017 CSD C/C++ Altan Alpay
C Soruları C içinden C++ functionlarini nasil cağırabiliriz? Bir tam sayinin bitlerini nasil sayariz? *magic() = 5; #define kullanirken dikkat edilmesi gerekenler? Sonsuz döngü tanımlayınız? const int *a; int * const a; int const * a const; 4/6/2017 CSD C/C++ Altan Alpay
C Soruları (Kodlama) ReverseString strcpy (string kopyalama) strlen (sayma) strcmp (karşılaştırma) strstr (alt string bulma) atoi itoa Bit sayma ve diğer bit işlemleri 4/6/2017 CSD C/C++ Altan Alpay
C Soruları (Bit İşlemleri) Bir tamsayının bitlerini sayın Bit kaydırıp & operatorunu kullanarak Tablo kullanarak İki tam sayıyı geçiçi bellek kullanmadan oldukları yerde (swap) yer değiştirin (XOR) Aynı bit sayılı tam sayıların bulunması 4/6/2017 CSD C/C++ Altan Alpay
C++ Soruları (Constructors) Constructor’dan exception atılırsa? Initialization List Kopyalama constructor Explicit kelimesi Assignment Operator RAII Kavrami 4/6/2017 CSD C/C++ Altan Alpay
C++ Soruları (Destructors) Sanal Yıkıcı nedir? Niçin kullanılır? Yıkıcı içerisinden exception fırlatılırsa nesne’nın durumu ne olur? Türetilmiş nesnelerde Yıkıcıların çağırılma sırası nasıldır? Bir dizi silinirken elemanlar hangi sıra ile silinirler? class A {}; A* a = new A[10]; delete a; Exception & destructor ilişkisi 4/6/2017 CSD C/C++ Altan Alpay
C++ Soruları (Inheritance) struct class farkı? Yapıcı ve Yıkıcıların çağırılma sıralaması Nesne’nin içerdiği değişkenlerin oluşturulma sırası Çoklu türetme (multiple inheritance) Çoklu türetmelerde türeme sirası İnitialization list 4/6/2017 CSD C/C++ Altan Alpay
C++ Soruları (Inheritance) Private Inheritance ne anlama gelir? Friend kelimesi ve kullanimi (sinifsal ve fonksyon bazinda) Mutable kelimesi JAVA’daki Interface kavramını C++’da nasil uygulayabiliriz? 4/6/2017 CSD C/C++ Altan Alpay
C++ Soruları (Operator Overloading) Function overloading ve overriding farki? Hangi operatorler overload edilemez? Pre/Post increment farki Pre/Post increment performans karsilastirmasi Overload edilemeyen operatorler: . ?: Sizeof :: ** 4/6/2017 CSD C/C++ Altan Alpay
C++ Soruları (casting) dynamic_cast<> (en önemlisi) Hangi hallerde NULL döner? Hangi hallerde exception atar? static_cast<> const_cast<> reinterpret_cast<> 4/6/2017 CSD C/C++ Altan Alpay
C++ Soruları (const) const kelimesi kaç değişik anlamda kullanilabilir? const-overloading mutable kelimesi 4/6/2017 CSD C/C++ Altan Alpay
C++ Soruları (Polymorphism) Sanal Fonksyon nedir? Polymorphism örneği verin? Pür Sanal Fonksyon (pure virtual func) nedir? Soyut Nesneler nedir? Niçin kullanılır? Sanal Fonksyonlar nasıl çalısır? vtable nedir? Sanal Fonksyonları C’de nasıl taklit ederiniz? vtable boyutu ve sizeof ile ilişkisi 4/6/2017 CSD C/C++ Altan Alpay
C++ Soruları (Exceptions) Exception’larin faydalari / zararlari? Setjmp / longjmp arasindaki fark? Ne gibi durumlarda geri dönüş değerleri exceptionlara tercih edilmeli? Tipine bakmazsızın tüm exceptionları nasıl yakalarız? Java finally özelliğini C++’da nasıl taklit edebiliriz? Exceptionlar yakalanmazsa ne olur? 4/6/2017 CSD C/C++ Altan Alpay
C++ Soruları (Templates) Generic Programming! (Genel Programlama) Fonksyon Şablonları (Function Templates) Sınıf Şablonları (Class Templates) CPP ve H dosyaları açısından ne fark var? C++ Şablonları ne tür bir binding örneğidir? Statik binding & Dinamik binding nedir? Şablonlar ve Derleyici ilişkişi Template specialization veya template<>? 4/6/2017 CSD C/C++ Altan Alpay
C++ Kitapları 4/6/2017 CSD C/C++ Altan Alpay
Nesneye Yönelik Tasarım Sınıflar arası kaç çesit ilişki vardır? Kalıtım (Inheritance) / IS-A ilişkisi Composition (Aggregation ) / Has-A ilişkisi Liskov substitution principle 4/6/2017 CSD C/C++ Altan Alpay
Tasarım Desenleri (Design Patterns) Niçin tasarım desenleri kullanmalıyız? Yaratici Desenler (Creational Patterns) Factory (Fabrika) Singleton Protype (Prototip) Yapısal Desenler (Structural Patterns) Adapter (Adaptor) Composite Davranışsal Desenler (Behaviour Patterns) Chain of Responsibility (Emir Komuta Zinciri) State Memento Observer 4/6/2017 CSD C/C++ Altan Alpay
Tasarım Desenleri (Design Patterns) 4/6/2017 CSD C/C++ Altan Alpay
Algorithmalar ve Karmaşıklık O(1) => sabit karmaşıklık O(log n) => logaritmik karmaşıklık O(n) => doğrusal karmaşıklık O(n log n) => Doğrusal logaritmik karmaşıklık O(n^2) => Karesel karmaşıklık O(n^2) => Küpsel karmaşıklık Sistem Programlama ve İleri C Uygulamaları Kurs Notları - Uyarlama 1 http://www.csystem.org/sites/default/files/documan-arsivi/aslank/system-programming-version1.pdf 4/6/2017 CSD C/C++ Altan Alpay
Algorithmalar ve Karmaşıklık 4/6/2017 CSD C/C++ Altan Alpay
Veri Yapıları (Data Structures) İkili Ağaçlar (Binary Trees) Bağlı Listeler (Linked Lists) Yığıt (Stacks) Kuyruklar (Que/Deque/Priority) Hash Tabloları (Hash Tables) 4/6/2017 CSD C/C++ Altan Alpay
Bağlı Listeler (Linked Lists) Tekli Bağlı Listelerde rastgele bir düğümü nasıl silebiliriz? Bağlı listelerde sonsuz döngüleri nasıl tespit edebiliriz? Tekli bağlı listelerde sondan n’inci elemanı nasıl bulabılırız? 4/6/2017 CSD C/C++ Altan Alpay
Bağlı Listeler (Linked Lists) Sıralanmamış bağlı bir listede ayrı değeri taşıyan düğümleri nasıl silebiliriz? Tekli Bağlı Listeyi tersine nasıl çevirebiliriz? 4/6/2017 CSD C/C++ Altan Alpay
İkili Ağaçlar (Binary Trees) Karmaşıklık O(n log n) Ağaçları nasıl dengeleyebiliriz? Dengesiz ağaçlar hangi durumlarda iyi sonuç vermez? Verilen iki ağaç elemanının (Common-Ancestor) ortak atasını bulun. 4/6/2017 CSD C/C++ Altan Alpay
Hash Tabloları Karmaşıklığı her zaman O(1) midir? Anahtar çarpışması (Hash collision) nasil önlenir? Anahtar çarpışması 4/6/2017 CSD C/C++ Altan Alpay
Standart Kütüphane (STL) Taşıyıcılar (Containers) Vector Map Set hash_map List Iteratorler Algorithmalar (sıralayan,silen,değiştiren,bulan gibi) Allocatorler String Otomatik İşaretçiler (auto_ptr) C++ Uygulamaları Kurs Notları - Uyarlama 1 http://www.kaanaslan.com/resource/course_note/download_file.php?file_id=13 4/6/2017 CSD C/C++ Altan Alpay
STL Kitapları 4/6/2017 CSD C/C++ Altan Alpay
TCP/IP ve Ağ Programlama OSI Katmanları TCP ve UDP farkı? Hangi durumlarda UDP tercih edilir? Hangi durumlarda TCP tercih edilir? TCP’de el sıkışma (3-way handshake) TCP’de Akış kontrolu (Flow Control) TCP’de Çarpışma kontrolu(Congestion Avoidance / Slow Start ) 4/6/2017 CSD C/C++ Altan Alpay
TCP/IP ve Ağ Programlama UDP socketlerinin kullanimi TCP soketlerinin kullanimi Client Tarafi (connect, read, write, close) Sunucu Tarafi (bind, listen, accept, read,write, close) RAW Socketler ve kullanim alanlari (ICMP: ping, trace) Synronious and Asyncronious Sockets Socket programlama teknikleri Fork() ile coklu process multi-threading Async i/o (like libevent) select 4/6/2017 CSD C/C++ Altan Alpay
Çoklu İş Parçaları (Multi-Threding) Çoklu threading & Çoklu process farkları Thread Local Storage Context Switcing kavramı Tek işlemcili bir bilgisayarda bir iş-parcacı ile 1 saat süren işlem, aynı bilgisayarda 100 iş-parcacığı ile ne kadar sürer? 4/6/2017 CSD C/C++ Altan Alpay
Çoklu İş Parçaları (Multi-Threding) Dead-Lock nedir? Nasil Olusur? Dead-Lock nasil onlenir? Race Condition nedir? Priority Inversion nedir? 4/6/2017 CSD C/C++ Altan Alpay
Çoklu İş Parçaları (Multi-Threding) Senkronizasyon neden gereklidir? Nasil sağlanır? Muxed Semaphore Barriers Condition Variables 4/6/2017 CSD C/C++ Altan Alpay
Unix/Linux Programlama Zombi process nedir? Deamon process nedir? Bir processi nasil hızlandırabiliriz? (nice) Sunucu üzerindeki tcp/ip bağlantılarını nasıl tespit edebiliriz? (netstat) Sunucu üzerindeki tcp socketlerini nasil dinleyebiliriz? (tcpdump) Sinyallerler Process Yönetimi => fork(), wait() UNIX/Linux Sistem Programlama Kurs Notları - Uyarlama 1 http://www.csystem.org/sites/default/files/documan-arsivi/aslank/unix-linux-sysprog-version1.pdf 4/6/2017 CSD C/C++ Altan Alpay
Processler arasi Haberleşme Sinyaller Ortak Bellek (Shared Memory) Unix Sockets Pipes (mknod, pipes) Semaphores Mesaj Kuyrukları (Message Ques) UNIX/Linux Sistem Programlama Kurs Notları - Uyarlama 1 http://www.csystem.org/sites/default/files/documan-arsivi/aslank/unix-linux-sysprog-version1.pdf 4/6/2017 CSD C/C++ Altan Alpay
Gömülü Programlama volatile kelimesi Pre-emptive non-preemptive sistemler interrupt kelimesi Bit işlemleri Herhangi bir adrese erişim ptr = (int *)0x67a9; *ptr = 0xaa55; *(int * const)(0x67a9) = 0xaa55; 4/6/2017 CSD C/C++ Altan Alpay
İnternet Kaynakları Glassdoor.com Careercup.com Sulekha.com C++ FAQ http://parashift.com/c++-faq-lite/ comp.lang.c++ 4/6/2017 CSD C/C++ Altan Alpay