<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Gokhan Topcu on Medium]]></title>
        <description><![CDATA[Stories by Gokhan Topcu on Medium]]></description>
        <link>https://medium.com/@ifndefgt?source=rss-43f72d70fd49------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Stories by Gokhan Topcu on Medium</title>
            <link>https://medium.com/@ifndefgt?source=rss-43f72d70fd49------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Tue, 28 Apr 2026 03:33:21 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@ifndefgt/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Yazılım iş görüşmesinde işverene neler sorulur?]]></title>
            <link>https://medium.com/bili%C5%9Fim-hareketi/isverene-ne-sorulur-e870cbf27fab?source=rss-43f72d70fd49------2</link>
            <guid isPermaLink="false">https://medium.com/p/e870cbf27fab</guid>
            <category><![CDATA[yazılım]]></category>
            <category><![CDATA[iletisim]]></category>
            <category><![CDATA[is-gorusmesi]]></category>
            <category><![CDATA[mulakatlar]]></category>
            <dc:creator><![CDATA[Gokhan Topcu]]></dc:creator>
            <pubDate>Wed, 30 Jan 2019 07:43:46 GMT</pubDate>
            <atom:updated>2020-02-11T15:31:08.287Z</atom:updated>
            <content:encoded><![CDATA[<p>İş görüşmelerine giderken hep bize sorulacak soruları düşünüp onlar için hazırlıklar yapıyoruz. Peki ya bizim soracaklarımız?</p><p><em>Sorry for non-Turkish followers. This post targets Turkish speaking software developers. Maybe later I can translate it to English, for now you can just ignore it.</em></p><p>İş görüşmeleri veya iletişim konusunda uzman, yetenekli veya çok tecrübeli sayılmam. Aktaracağım şeyler sadece kendi dünyamdan görebildiğim kadarıyla oluşan görüş ve düşüncelerim olacak. Bazılarını fuzûlî veya mübalağalı bulabilirsiniz. Bazıları da aşikâr olanı ifade ediyor olabilir. Bilmeyen bir kişi bile varsa bile diyerek ve affınıza sığınarak paylaşacağım.</p><p>Normalde bu yazıya; kolektif üretimin ve serbest ticaretin tarihinden girip, köleliğe, ve köleliğin son birkaç yüzyılda nasıl kabuk değiştirdiğinin iktisadi ve sosyolojik temellerine değinerek başlamam gerekiyor ama hedef okuyucu kitlesinin -yeterince uzun olan bu yazı özelinde- post-modern üretim ilişkilerinin tarihsel altyapısıyla ilgilenmediğini varsayarak, konunun felsefi boyutuna girmeden oldukça sade ve herkese hitap edebilecek yalınlıkta anlatmaya çalışacağım.</p><p>Basit bir tweetteki soru listesi paylaşma fikrimi konunun önemine dikkat çekerek duyurup, beni derli toplu bir şeyler paylaşmaya iten 🙃 sonrasında da bu yazının içeriğine çok vurucu noktalara dikkat çekerek ve sayfalarca yorum yaparak katkıda bulunan, <a href="https://medium.com/u/7fae98adf1fe">Bilgem Cakir</a> a teşekkür ederek başlayacağım. Bilgem Abi hazır gündem oluşmuşken, kariyer yönetimi hakkında harika içerikler ürettiği <a href="https://www.youtube.com/channel/UCiziEYDqww4rn3wn7otqHQQ">Yalın Kod</a> kanalında bu konuyla ilgili bir video paylaşsa ne güzel olur değil mi 😃</p><h3>Sektörün Mevcut Durumu</h3><p>Yazılım sektöründe belirli bir tecrübenin (yılla değil kişisel gelişimle oluşmuş tecrübe) üzerindeki insanlar için çok çok fazla seçenek var. Ortalama bir yazılımcıya Linkedin üzerinden veya telefon-mail yoluyla ayda en az 5 recruiter ulaşıyor. Ülkemizde yetenek havuzunun beyin göçü nedeniyle giderek daraldığını da düşünürsek; artık kibirli, çalışana yukarıdan davranan işveren profilinin de tarihe karışma vakti geliyor. Bireyler gibi şirketlerin de buna adapte olması gerekiyor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/1*z4mTky4wGYYRBmsjbUOAMg.gif" /><figcaption>Sen Gelme</figcaption></figure><p>Pazarın tabiatı gereği (işçi sayısı işveren sayısından daha fazla) bu ilişkide işverenin eli zam, terfi, prim gibi ödül mekanizmalarını elinde tuttuğu için daha güçlü gibi görünse dahi; pratikte nitelik nicelikten daha değerli olduğu için kendine yatırım yapmış, “aranan adam” olmayı başarmış bir çalışanın eli de oldukça güçlü.</p><p>Özellikle işe girdikten sonra işveren-işçi (para veren, emir alan) rollerinden dolayı üstünlük işverene geçiyor gibi görünse de bu bir psikolojik yanılgı. Çünkü siz işe girdikten sonra şirkete adapte olmaya, projeyi, süreçleri kavramaya başlıyorsunuz ki bu aslında şirketin size yaptığı yatırım oluyor. Yaptığınız işlerle beraber sizde bir know-how birikiyor. Yazılım şirketlerinin sermayeleri ve birikimleri sadece git reposundaki objeler değil bunlara hâkim olan insanlarda biriken know-howlar. Çalıştığınız süre uzadıkça şirketin size yaptığı yatırım artıyor, ayrılmanız durumunda siz daha iyi koşullarda bir iş buluyorken şirketin kaybı astronomik seviyelerde olabiliyor.</p><p>“Best employee”sini kaybettikten sonra batan startuplar, bocalayan, işlerin aksamasından dolayı ciddi maddi zararlara uğrayan kurumsal şirketler biliyorum.</p><p>Şunu da eklemeliyim ki bu değeri etkileyecek olan iki parametre var. Birincisi işin “learning curve”ünün büyüklüğü, diğeri sizin o işte ne kadar fark yarattığınız.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rvCXltfo303ejZUemaczPw.jpeg" /><figcaption>Photo by <a href="https://unsplash.com/photos/YXemfQiPR_E?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Nik MacMillan</a> on <a href="https://unsplash.com/search/photos/interview?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption></figure><p>Şirketler C-Level (CEO-CTO) bir işe alım yapacakları zaman, otellerde yemekli toplantılarla her şeyin açıkça konuşulduğu gayet insani şartlar altında görüşmeler yapılıyor. Yazılımın “nitelikli iş”, yazılımcının da “nitelikli çalışan” olduğunu kabul edersek, iş görüşmelerinin hayvan pazarından hayvan seçer gibi olmaması gerektiğinin altını çizmemiz ve sektörün profesyonelleşmesi açısından bunun standart haline gelmesi için çabalamamız gerekiyor. Şirketlerin insan kaynakları için oldukça kapsamlı süreçleri var, bu yazının amacı çalışanlar tarafında da asgari bir strateji, süreç ve kriter kümesi oluşturulmasına katkı sağlamak, umarım faydalı olur.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tNJaXvtUuziJ6I3Jq2fHzg.png" /><figcaption>100 Numaralı Adam sözleşme imzalarken</figcaption></figure><h3>İş Görüşmesinde Taraflar</h3><p>Önce buradan başlamak istiyorum, unutmayın ki iş görüşmesi dediğimiz şey her görüşme gibi çift taraflı bir faaliyet. İşveren kişi/kurum sizi değerlendirdiği gibi siz de onları değerlendireceksiniz.</p><blockquote>İş görüşmesindeki rolleri kabaca talepkâr (talep eden) ve matlup (talep edilen) olarak ayırırsak görüşmede bu iki rol arasında hem sizin hem şirketin bulunacağı bir konum olacaktır.</blockquote><p>O masada oturduğunuza göre aslında iki taraf da bir miktar talepkâr ve aynı şekilde <strong>cazibeleri seviyesinde matlup </strong>rolünde olacaktır. Bu cazibeyi bir şirkete başarılı işler, çalışanlarına sunduğu imkânlar (maddi veya gelişim) ve sektördeki itibarı gibi parametreler sağlarken; bir çalışana ise içi gerçekten dolu bir CV, zorluk seviyesi yüksek projelerde başarılar, kendine yaptığı yatırımlar sağlar. Unutmayın ki görüşmeye bir değerlendirme ve pazarlık için katılıyorsunuz. İşi alıp alamayacağınıza, kaba tabirle ederinize (satacağınız emeğinizin nakdî karşılığı) ve değerinize (katma değer üretme potansiyeliniz) geçmişinizle beraber o görüşme esnasında yaşananlar değerlendirilerek karar verilecek. Bu yüzden görüşme boyunca çizdiğiniz profil çok önemli.</p><h3>Görüşme Öncesi</h3><ul><li>Kendi beklentinizi yani odağınızı belirleyin. Bu işten ne bekliyorsunuz. Maksimum finansal getiri mi? Kendinizi herhangi bir alanda geliştirmek mi? CV’nizde güzel görünecek bir başlık mı? Yoksa piyasaya damga vuracak insanların hayatını kolaylaştıracak bir ürünü ortaya çıkartmak mı? Yoksa hepsi mi? Bu karar tüm stratejinizin odağını oluşturacak, o yüzden bu noktada kendinize karşı net olmanız gerekiyor. Tabii ki görüşme sonrası edindiğiniz izlenime göre bu beklentiyi de tekrar güncelleyebilirsiniz. <strong>Odak konusunu kariyerinizin bütünü için düşünmeniz de yararlı olacaktır. Sizi geliştirmeyecek bir işte yüksek maaşla emekliliği beklemek mi? Yoksa daha düşük maaşla çok şey öğreneceğiniz ve sizi hedefinize (Google’da çalışmak olabilir) bir adım daha yaklaştıracak bir iş mi?</strong></li><li>Bu işi ne kadar istediğinizi ve bu iş için ne kadar uygun olduğunuzu değerlendirip önce kendinizi talepkâr-matlup olma ekseninde bir pozisyona konumlandırmanız gerekiyor. Daha sonra kendinizi işveren gözünden tekrar değerlendirip “Beni niye işe alsınlar?” sorusunu kendinize sorarak bu değerlendirmeyi tekrarlamalı ve bu doğrultuda kendinize görüşme öncesi bir talepkârlık-matlupluk çizgisi belirlemeniz gerekiyor. Tüm görüşme süreci boyunca, özellikle yüz yüze görüşme esnasında bu değerlendirmedeki ağırlıkları tekrar gözden geçirmeli ve nihai kararı bu doğrultuda almalısınız.</li><li>Görüşeceğiniz şirketin ve yaptıkları işlerin hakkında mümkün olduğunca fazla bilgi edinmeye çalışın. Bunun için her ne kadar ülkemizde çok yaygın olmasa da <a href="https://www.glassdoor.com/">Glassdoor</a> veya ekşisözlük gibi platformlardan yararlanabilirsiniz.</li><li>Günümüzde şirketlerin bir başka beklentisi de o şirkette çalışmak için sahip olduğunuz heyecanı göstermeniz. Bunu da görüşme öncesinde o şirkete özel yaptığınız araştırmalarla, mülakat süreçlerinde o şirkete özel olan kısımlara hazırlanışınızla, hatta pek çoğumuzun angarya bir iş olarak gördüğü başvurudaki ön yazı (cover letter) ile göstermenizi bekliyorlar. Bunun için görüşme öncesinde şirketin ürününü veya iş modelini inceleyip bunlarla ilgili bir iyileştirme noktası bulup bunu mülakatta dile getirmeniz artı puan toplamanıza yardımcı olacaktır.</li><li>Görüşme organizasyonu sırasında sürecin baştan sona hangi adımlardan oluştuğunu ve mümkünse kimlerle görüşeceğinizi öğrenmeye çalışın. Bu kişilerin hakkında sosyal medya veya linkedin/github gibi platformlar üzerinden bilgi edinmeye çalışın. Sosyal medya kullanım biçimi ve paylaşılan içerikler size kişilerin karakterleri, kültürel seviyeleri, ilgi alanları ve iletişim yetenekleriyle ilgili fikir verebilir. Linkedin/github ise iş geçmişleri, teknik uzmanlıkları gibi konularda karşınızdakileri tanımanıza yardımcı olacaktır. Bu bilgiler görüşme öncesi kişilerle ortak noktalarınızı farketmenize ve bunlara yoğunlaşarak görüşme esnasında güçlü bir iletişim, frekans/doku uyumu sağlayıp, sempati kanalını daha verimli kullanmanıza olanak sunar.</li><li>Edineceğiniz ön bilgileri işi ne kadar istediğiniz konusunda kendi motivasyonunuzu değerlendirmek için de kullanmalısınız. Öğrendiğiniz şeyler işe dair iştahınızı artırıyor ise görüşmede talepkâr yönünüzü biraz daha ön plana alabilirsiniz.</li><li>Kendi CV’nizi hatırlayın, CV’nizde yazanları bilmiyor/hatırlamıyor oluşunuz bırakabileceğiniz en kötü intibalardan birisi olur. Söylediğiniz her şeye şüpheyle yaklaşılmasına neden olabilir.</li></ul><h3>Görüşmede Nasıl Davranmalı</h3><p>Buraya kibar olun, dürüst olun gibi basmakalıp tavsiyeleri eklemeyeceğim. Ancak görüşmedeki duruş, ses tonu, vücut dili gibi etkenleri de talepkâr/matlup’luk seviyenize göre ayarlamanız yani bunların kendi içinde bir bütünlük göstermesi gerekiyor. Yine talepkârlık durumunuzla doğru orantılı olarak heyecanlı görünmeniz de bu imajı güçlendirecektir.</p><p>Kız istemeye gitmiş Çiçek Abbas oturuşu, öne eğik bir vücut, aşırı ve kontrolsüz bir heyecan, stresi yansıtan vücuda yapıştırılmış eller, saç sakal çekiştirme sizi daha zayıf ve talepkâr gösterecektir. Bu konuda zorluk çekiyorsanız elinizde kalem gibi bir aksesuar bulundurmanız yararlı olur.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*kdEhlDAicPhc4_KgnoRnPA.gif" /><figcaption>Çiçek Abbas</figcaption></figure><p>Arkaya yaslanmış dik bir duruş, öz güvenli ve sakin bir görünüm matlup pozisyonunuzu pekiştireceği gibi daha rahat davranmanızı da sağlayacaktır. Tabii ölçüyü kaçırıp kendisine kaset çıkarma teklifiyle gelen yapımcıların karşısında ağzında kürdanla yediği lahmacun yüzünden dişlerinin arasına kaçan maydanoz parçasını çıkartmaya çalışan Abuzer Kadayıf gibi de olmamanız gerekiyor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*mCON7O-E0t2n-O68wt4gsQ.gif" /><figcaption>Abuzer Kadayıf</figcaption></figure><p><strong>UYARI:</strong> Talepkâr/matlup olma durumunun yanlış anlaşılmaması için bu uyarıyı eklemek istiyorum. <strong>Görüşmede matlup rolünde davranmak amacınız olmamalı, çünkü talepkâr olmak kötü bir şey değil.</strong> Aksine karşı tarafa anlaşmaya daha meyilli olduğunuzu gösteren bir sinyal. Matlup olmanız ise iknası zor itici bir aday imajı oluşturmanıza neden olabilir.</p><blockquote><strong>Bu nedenle görüşmelerde talepkâr veya matlup rolünde olma amacıyla değil, X şirketi Y pozisyonu için görüşmede hangi rolü tercih etmeliyim düşüncesiyle davranmalısınız!</strong></blockquote><p>Bir işi çok istiyorsanız talepkârlık seviyeniz %100 olabilir. Ancak bu öz güveninizi düşürmeniz, matlupluk yönünüzü törpülemek zorunda olduğunuz anlamına gelmez. Aynı görüşme için kendinizi %100 matlup olarak da konumlandırabilir ve bunu görüşmede göstereceğiniz performansla karşı tarafa da kabul ettirebilirseniz her şirketin çalışmak isteyeceği bir “mükemmel aday” olabilirsiniz.</p><h3>Sorular</h3><p>Görüşme esnasında karşınızdakiler sorularla sizin bilginizi, becerilerinizi, tecrübelerinizi ve hatta kişiliğinizi ölçmeye çalışacak, siz de bu sorulara tatmin edici yanıtlar vererek onların onayını almaya çalışacaksınız.</p><p>Şimdi madalyonu terse çevirelim. <strong>Ne demiştik görüşmede siz de karşı tarafı değerlendiriyorsunuz.</strong> Bu nedenle soracağınız her soru alacağınız her yanıt çok değerli. Siz de aynı onların sizi ölçtüğü gibi onları ölçebilirsiniz. Bu teknik sohbette karşınızdaki kişinin derinliğini ölçmek de olabilir, yapılan esprilerin, sohbetin kalitesinden kültür seviyesi ölçmek de. Görüşme esnasında yapacağınız her şey bu amaca hizmet etmeli, ortamı samimi bulsanız bile seviyeyi korumanız ve amacınızı unutmamanız gerekiyor.</p><p>Ek olarak şirketin nasıl mülakat yaptığını da değerlendirmeniz lazım, çünkü çalışma arkadaşlarınız bu süreçle değerlendirilmiş kişilerden oluşacak. Görüşme “Merhaba, yarın gel başla” şeklindeyse çalışacağınız insanlar bu değerlendirmeden(!) geçebilecek kapasitede kişiler olacak. Tam tersi; ciddi ve ve sıkı bir eleme sürecinden geçiyorsanız buna göre insanlarla çalışacaksınız.</p><p>Öte yandan görüşmede size gösterilen hürmet, sorularınıza alacağınız yanıtlar, size karşı yaklaşım şirket içinde göreceğiniz değerin minik bir demosu olacak. Size görüşmede kendinizi değersiz hissettiren bir şirkette çalışma hayatınız da farklı olmayacaktır.</p><p>Şunu da unutmamalıyız ki bazı sorular, sorduğu şeyi öğrenmeyi amaçlamaz. Hep duyduğumuz “Bir başarısızlığınızdan bahseder misiniz?” sorusu gibi. Bu sorunun amacı sizin başarısızlık hikâyenizi dinlemek değil. Kendinizi eleştirebiliyor musunuz, sorumluluk alabiliyor musunuz yoksa suçu başkalarına atmayı mı seviyorsunuz, bu soruların üstü kapalı yanıtlarını almak.</p><blockquote>Hedefiniz, “X şirketiyle görüştüm” demek değil, “X şirketine mülakat yaptım” demek olmalı. Çünkü görüşmeden sonra şirketin sizinle ilgili çalışıp çalışmama kararı vereceği gibi sizin de onlarla çalışıp-çalışmama kararı vermeniz gerekiyor.</blockquote><p>Görüşmede sorulan sorulara yanıt veremediğinizde nasıl mahçup oluyorsanız, siz sorularınızı sorduğunuzda karşınızdakiler de kendi eksikleriyle yüzleşecek. Bunun olumlu ve olumsuz yanları var. Bunları da bizzat değerlendirmeniz gerekiyor. Olumlu yanları;</p><ul><li>Eğer siz iş için fazlasıyla yeterli iseniz, karşınızdakiler kendi eksikliklerini görünce sizi ikna etmek için maddi-manevi daha fazla çaba sarfedecek.</li><li>Detayları düşünüyor oluşunuz, sistematik bir hazırlıkla oraya gitmiş olmanız karşı tarafa sizin iş yapış disiplini sahibi olduğunuz imajını verecek bu şansınızı artıracağı gibi görüşme esnasında daha fazla saygı görmenizi sağlayacaktır.</li></ul><p>Olumsuz yanları;</p><ul><li><strong>Soracağınız tüm sorular aslında sizin onlardan beklentilerinizi temsil ediyor. Bu beklentilerin fazla ve yüksek olması karşı tarafta yetersizlik hissiyatı yaratabilir.</strong> Bu durumda şirket sizin beklentilerinizi karşılayamayacağı veya çalışsanız bile uzun ömürlü olmayacağını düşüneceği için süreci olumsuz sonlandırabilir.</li><li>Eksiklerini dile getirdiğinizde veya farketmelerini sağladığınızda olgun olmayan insanlar negatif bir tepki verebilir. Görüşmede negatif bir hava oluşabilir. Burada karşınızdaki insanlar neyi neden yapamadıklarını anlatırken iyi bir dinleyici olmanız ve mazeretlerini katılmasanız dahi onaylamanız gerekiyor. Zira bu noktadaki bir münâkaşa kimseye yarar sağlamayacaktır.</li><li>Böyle bir listeniz olması bile karşı tarafta “Sen de mi soru soracaksın, hem de listeyle..” gibi aslında küstahça kabul diyebileceğimiz bir tepki oluşturabilir, bunu yönetmeye hazır olmanız gerekiyor. Ayrıca bu şekilde soru sormanız aşırı öz güven veya ukalalık göstergesi olarak kabul edilebilir. Bunu göze almanız veya iletişimi doğru kurarak böyle algılanmaması için çaba göstermeniz lazım. Görüşmenin diğer kısımlarının başarılı geçip geçmemesi bu bakış açısında önemli bir kriter olacaktır. Sorulan hiçbir teknik soruya doğru yanıt veremediğiniz görüşmenin sonunda karşı tarafı neden unit test yazmadıklarıyla ilgili yargılamaya kalkarsanız bu da hoş karşılanmayacaktır.</li></ul><h4>Soruları Filtreleme</h4><p>Görüşmede kesinlikle yanınızda bulunması gereken defter/ajandaya aşağıdaki soruları <strong>o şirkete özel olarak</strong> filtreleyerek yazın (çıktı da alabilirsiniz ama çıktı bir form imajı vereceği için biraz olumsuz algılanabilir) ve görüşme esnasında maddelerin karşılarına notlar alın. Türkiye’de görüşmelerde not almayı seven IK personelimiz ilginç şekilde sizin notlar almanıza şaşırıp göz ucuyla yazdıklarınızı okumaya çalışıyor, benim gibi çivi yazısı yazarak bu sorunu aşabilirsiniz 🙃</p><p><strong>Soruları şirketlere göre filtrelemeniz ve öncelik sıralamasına koymanız çok önemli.</strong> Çünkü görüşmelerin kısa sayılabilecek sabit süreleri var. Tüm sorulara ve detaylara zaman yetmeyebilir veya soruların bazıları o şirket için yersiz olabilir. 5 kişilik bir startupta kariyer basamaklarını veya yazılım süreç detaylarını sormanız yersiz olabileceği gibi, Koç Holding’de şirket hissesi üzerine konuşmak da yersiz olacaktır.</p><p>Ayrıca bazı soruların yanıtlarını görüşmeye gitmeden önce internet üzerinden araştırarak veya geçmişte o şirkette çalışan/çalışmış insanlardan edinerek listeyi sadeleştirebilirsiniz.</p><p>Listeyi sadeleştirmenin bir yolu da -görüşmelerde genellikle böyle olur- doğru kişilere sorduğunuz bazı soruların yanıtları üzerinden başka soruların cevaplarına ulaşmak ve daha önemlisi bu diyalogda ortaya çıkacak ipuçları üzerinden içeride gerçekte neyin olup olmadığını analiz etmek.</p><p>Bunun için görüşmenin ilk anında ayaküstü tanıştığınız insanların rollerini iyi kavramanız, değilse çekinmeden tekrar sormanız gerekiyor. Çünkü verilecek yanıtlar arasındaki tutarsızlıklar ya da kimin neyi nasıl anladığı veya anlattığı size kurumun iç iletişimini tanımanız için altın anahtarlar sunacaktır. Örneğin projenin durumuyla ilgili yöneticinin ve projede çalışan yazılımcının söyledikleri arasında çelişki varsa bu sizin için bir uyarı sinyali olabilir.</p><p>Soruları operasyonel, finansal-lojistik ve teknik olarak 3 ana kategoriye ayırdım.</p><h3>Operasyonel</h3><h4>Şirket</h4><p>Bu konuyu görüşmeye gitmeden önce sizin de araştırmanız gerekiyor.</p><ul><li>Servis şirketi mi, ürün şirketi mi?</li><li>Hangi sektörde faaliyet gösteriyor?</li><li>Çalışanların ortalama çalışma süresi (turnover rate) nedir?</li><li>Geçen yılın rakamlarına göre kârlılık durumu ve büyüme hızı nasıl?</li><li>Şirket kendini 5 yıl sonra nerede görüyor?</li><li>Rakipleri kim, rakiplerine karşı nasıl fark yaratmayı düşünüyorlar?</li></ul><p>Bu sorular sayesinde şirketin vizyonunu ve rakiplerini analiz edip etmediğini değerlendirebilirsiniz.</p><h4>Şirket kültürü</h4><p>Nasıl bir şirket kültürünüz var, kendinizi nasıl tanımlarsınız?</p><h4>Şirketin aktif projeleri</h4><p>Bilgi sahibi olmanız faydalı olur, şirketi ve ürünlerini daha iyi tanıma fırsatı elde edersiniz. Görüşmede bunlara referans vererek konuşmanız, araştırdığınızı karşı tarafa hissettirir bu da hanenize olumlu puan olarak geri döner.</p><h4>Hangi birim/takımda hangi proje</h4><p>Burası kararınızda en etkin rol oynayacak kısımlardan biri, o nedenle mümkün olduğunca fazla detay edinmeniz gerekiyor. Bu ekipteki görev dağılımlarını da öğrenmeniz yararlı olacaktır.</p><p>Ekip kaç kişi, ekip içi süreçler ve iletişim nasıl? Haftalık-aylık toplantılar yapılıyor mu, bilgi-tecrübe aktarımı ne seviyede gerçekleşiyor.</p><p>Bu kısımda şirketin/ürünün yol haritasını, büyüme hedeflerini ve bu hedefe giden yolda milestone’larının (kilometre taşı) neler olduğunu sorabilirsiniz. Bu soru sayesinde uzun vade planları olup olmadıklarını, planlama konusunda ne durumda olduklarını ölçebilirsiniz.</p><h4>Diğer birim/takımlarla teknik veya teknik olmayan iletişim</h4><p>Şirket içi iletişim nasıl? Geçmişte aynı şirkette farklı projelerde birbirinden habersiz TLS implementasyonları gerçekleştirildiğini duymuştum. Organizasyon yapısı böyle hatalara müsait mi?</p><h4>İş tanımı</h4><p>Bu pozisyon için görev tanımı nedir? İşteki bir günüm tam olarak ne ile geçecek? Çalışacağınız pozisyon ile ilgili şirketin sizden beklentilerini de bu noktada öğrenmeniz gerekiyor. Yöneticinize çay taşımak veya sabahları paspas atmak görev tanımınızın içinde var mı?</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/1*lrKUdSmAfKAaRWHhzCcySA.gif" /><figcaption>Seyit kapıcı mı hamal mı?</figcaption></figure><h4>Şirketin büyüklüğü, organizasyon yapısı</h4><p>Örneğin 400 kişilik bir şirket, mühendislik ekibi 150 kişi, bunun 80 kişisi software developer, 30 kişi sistem mühendisliği (ister analizi ve sistem tasarımı) tarafında 30 kişi kalite ve test ekibi, 10 kişi project manager vs gibi. Ekipler departman bazlı mı proje bazlı mı organize oluyor, organizasyon şeması nasıl? Çalışacağım pozisyon bu şema içinde hangi ağacın altında kalıyor?</p><h4>İlk amir — Yönetici</h4><p>İlk amir; performans, maaş artışı, prim, terfi durumunuzu doğrudan değerlendiren ve iş yerinde en yakın çalışacağınız yöneticiniz olacaktır. Yani o iş yerinde mutlu olup olmamanız konusunda etkisi en yüksek olacak kişi. Bu kişi hire &amp; fire (işe alım ve kovma) konusunda da yetkili kişi olacağı için görüşmede karşınızda sizi değerlendiren ve karar konusunda da büyük olasılıkla en yetkili kişi olacaktır. Görüşme esnasında bu kişiyi dikkatle gözlemlemeniz gerekiyor. İletişim yeteneğini, size karşı yaklaşımını, görüşme esnasında farklı konularda verdiği tepkileri dikkatle takip edip, karar aşamasında kendinize <strong>“Ben bu kişiyle çalışmak ister miyim?” </strong>sorusunu sormanız gerekiyor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/1*KaVj4qfQfn0Tr0_MkvNfwg.gif" /><figcaption>Attırırım seni belediyeden!</figcaption></figure><h4>Mesai saatleri</h4><p>Şirketin mesai saatleri nasıl, fazla mesai yapılıyor mu, fazla mesai kültürü var mı? Son 3 ayda kaç defa fazla mesai yapıldı? Hafta sonu çalışma veya akşamları/geceleri acil müdahale edilmesi gereken durumlar oluyor mu?</p><p>Acil çağrı durumunda veya normal günlerde fazla mesai ücreti ödeyip ödemedikleri de sormanız gereken önemli sorulardan.</p><h4>Proje/süreç yönetimi metodolojileri</h4><p>Waterfall, MIL-STD-498, IEEE 12207, XP, Scrum gibi. Özellikle Scrum yanıtı verenlere metodolojiyi nasıl uyguladıklarıyla ilgili sorular sorabilirsiniz. Zira Türkiye’de “scrum yapıyoruz” diyenlerin pek çoğu “kervan yolda düzülür” veya “saldım çayıra mevlam kayıra” metodolojilerini(!) kullanıyor. Böyle bir yerde çalışmanız daha erken kanser olmanıza ve yaşam sürenizin doğrudan kısalmasına neden olabilir.</p><p>Projede hangi riskleri gördüklerini sormanız da yerinde olacaktır. Zira bu soru sayesinde projede risk analizi yapıp yapmadıklarını, önlerindeki challengeların ve onların zorluk seviyelerinin farkında olup olmadıklarını veya zorlukları ötelemeyi seçip seçmediklerini ölçebilirsiniz.</p><p>Yine bu başlık altında alacağınız yanıtlardan küçük sayılabilecek bir şirkette aşırı süreçselleşme hissetmeniz önemli bir uyarı olacaktır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/1*hFTbjlXzBX-etxd2bNZRqQ.gif" /><figcaption>Hücuma kalkış süreci</figcaption></figure><h4>Onboarding süreci ve mentörlük sistemi</h4><p>Onboarding süreci nasıl ilerliyor, bu süre zarfında ve sonrasında mentörlük desteği alabilecek miyim? Şirketin bu konuda resmî bir politikası var mı? Yönetici haricinde iş tanımı bunu da kapsayan kişiler olacak mı?</p><h4>Kariyer basamakları</h4><p>Şirketinizde başarılı bir çalışan olursam 5 yıl sonra kendimi nerede bulacağım? Önümde hangi fırsatlar var ve bunların ön koşulları neler? Bu hedeflere ulaşmak için ne yapmam gerekiyor. Bu soruyu “Kendinizi nerede görüyorsunuz?” sorusuna yanıt olarak verebilirsiniz.</p><h4>Performans değerlendirme</h4><p>Çalışanların performansları nasıl ölçülüyor. Terfi, zam ve prim bu performansla ne kadar ilişkili? Metrikler üzerinden takip yapılıyor mu, yoksa yöneticiyle arasını iyi tutan, iş yapıyormuş gibi görünenler mi başarılı kabul ediliyor?</p><h3>Lojistik ve Finansal</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/480/1*Knu_72y6F-nuvnJ9sWxfDQ.gif" /><figcaption>Maaşım var, ikramiyem var, sigortam var, senede 2 takım elbise</figcaption></figure><h4>Maaş</h4><p>Listenin bir numarası tabii ki maaş. Türkiye genelde maaş konusu görüşme sürecinin en başında işveren tarafından beklenti olarak sorulur. Bu karşılıklı zaman kaybetmemek adına iyi bir pratik. Güven vermeyen bir şirketle görüşürken siz de en başta bunu talep edebilirsiniz, sadece burada üslubunuza dikkat etmeniz gerekiyor. Çalan telefona direk maaş sorusuyla yanıt verirseniz, iş ile değil sadece para ile ilgilenen bir aday imajı çizebilirsiniz.</p><p>Eğer maaş konusu görüşmede konuşulacaksa, görüşmeye giderken kafanızda bir beklenti kesinlikle olsun. Bu beklentiyi görüşmenin gidişatına, işi ne kadar istediğinize göre görüşme esnasında gözden geçirin. İstediğiniz bir iş için düşürebilir veya daha az isteyeceğiniz bir iş için yükseltebilirsiniz. Bu nedenle maaş beklentinizi görüşmenin başında değil sonunda paylaşmaya çalışın.</p><p>Size güven veren bir kurumla görüşüyorsanız ve böyle bir seçeneğiniz varsa maaş diyaloğuna hiç girmeyin. Maaş sormanıza veya söylemenize gerek yok. Bu durumda şirket minimum rakamı bile çok dikkatli seçmek zorunda kalacak, bu da sizin lehinize.</p><p>Eğer rakam konusunda hazır değilseniz, tavsiyem mecbur kalmadıkça görüşme esnasında bir maaş beklentisi dile getirmeyin. Değerlendirme için 1–2 gün süre isteyin, bu anlayışla karşılanacaktır. Baskı ve stres altında olduğunuz, görüşmedeki verileri dikkatli değerlendiremediğiniz bu zaman dilimi içinde sağlıklı bir karar verme olasılığınız düşük.</p><p>Mevcut maaşınızı asla söylemeyin, ısrar edilmesi durumunda şirketinizle olan gizlilik sözleşmesini gerekçe gösterebilirsiniz. <strong>Ve kesinlikle aralık belirtmeyin, aralık belirtmeniz o aralığın alt sınırını söylemenizle eş değer.</strong></p><p>Firma size maaşla ilgili bir aralık söylediğinde o aralığın üst sınırını baz alın ve pazarlığa buna göre girin.</p><h4><strong>Net-brüt maaş</strong></h4><p>Konuştuğunuz rakamların net mi, brüt mü olduğundan emin olun.</p><h4>Prim, ikramiye, şirket hissesi</h4><p>Maaşa ek olarak neler sunuluyor? Düzenli ödenen (örneğin yıl sonu veya proje bitiminde) bir ikramiye var mı? Ödül sistemine göre dağıtılan primler oluyor mu? Herhangi bir kritere göre şirket hissesi sahibi olabiliyor musunuz? Eğer olabiliyorsanız bu hisseleri ne zaman satma hakkına sahip olacaksınız?</p><h4>Yol</h4><p>Ulaşım konusunda şirket size nasıl bir imkân sunacak, servis, yol yardımı, şirket aracı vs.</p><h4>Yemek</h4><p>Ücretsiz/ücretli yemekhane, nakit, sodexo/multinet yemek fişi vs.</p><h4>Ofis</h4><p>Çalışacağınız ofis nasıl bir yer, gürültü, uğultu, kendinize özel alanınız (kübik, oda vs) var mı? Havadar mı, merdiven altı mı? Bilgisayarlar internet cafe düzeninde bitişik mi?</p><h4>Uzaktan çalışma</h4><p>Şirket uzaktan çalışmaya izin veriyor mu? Bununla ilgili -haftada 1 gün gibi- bir prosedür var mı? Ya da özel bir durumunuz olduğunda evden çalışmanıza müsaade edecek kadar esnekler mi?</p><h4>SGK prim bedeli</h4><p>Maalesef kurumsal olmayan bazı firmalarda, hatta sektörde çok bilinen bazı kurumsal(!) firmalarda vergi kaçırmak için sigortanın asgari ücret üzerinden yatırılması ve maaşların elden verilmesi gibi bir pratik var. Eğer görüştüğünüz firma çok kurumsal değilse bu soruyu da sormak gerekiyor.</p><h4>Özel sağlık sigortası</h4><p>Ayakta tedavi limiti, yatarak ve ayakta tedavilerde karşılama oranı nedir? Sigorta göz, diş gibi ek kalemleri kapsıyor mu?</p><h4>Yan haklar</h4><p>Burada ucu açık bir liste giriyor işin içine. Grup şirketlerinde indirim, BES (bireysel emeklilik sistemi) katkısı, senede iki takım elbise herhangi bir şey olabilir.</p><h4>Kıyafet</h4><p>Kıyafet konusunda herhangi bir kural veya üniforma var mı?</p><h4>Organizasyonlar, sosyal ilişkiler</h4><p>Şirket yemeği, iftarı, yılbaşı partisi, pikniği gibi organizasyonlar yapılıyor mu? Ekip yemeğe birlikte mi çıkıyor, akşamları birlikte zaman geçirme kültürü var mı?</p><h3>Teknik</h3><h4>Geliştirme ortamı</h4><p>Linux üzerinde X dili ile Y, Z frameworkleri kullanılarak geliştirme yapılıyor.</p><h4>Teknolojiler</h4><p>Yukarıdaki ve aşağıdaki herhangi bir maddeye karşılık gelmeyen her türlü alet, edevat, database, IDE bu kategoriye giriyor. Pozisyona ve iş tanımına göre içini doldurabilirsiniz.</p><p>Burada yine tuzak bir sorunuz var. <strong>Hangi teknolojiyi neden kullanıyorlar, nasıl seçmişler? </strong>Kısa veya uzun vadede değiştirmeyi düşündükleri şeyler var mı? Bu soru üzerinden hype driven olup olmadıklarını, kullanacakları teknolojileri bilinçli seçip seçmediklerini ve konuyla ilgili yeterliliklerini değerlendirebilirsiniz.</p><h4>Sağlanan ekipman</h4><p>Macbook Pro 2018 16GB Ram 15.4 + desktop pc, iPhone X vs.</p><h4>Source control</h4><p>Kaynak kod yönetimi nasıl yapılıyor. Git, svn, mercurial, TFS gibi araçlardan hangileri kullanılıyor? Dropbox, Google Drive benzeri bir yanıt alırsanız kaçarak uzaklaşın. Gitflow benzeri bir yöntem kullanıp kullanmadıklarını sorun, bu sorulara alacağınız yanıtlar üzerinden süreçlere ne kadar hâkim olduklarını değerlendirebilirsiniz.</p><p>Yıllar içinde Türkiye’de özellikle bankalarda “kod ayrıştırma” diye bir kavram duydum. Şöyle ki tüm geliştirmeler ortak olarak master branch üzerinde yapılıyor. Releaseden önce de o versiyonda çıkmayacak, henüz hazır olmayan özelliklere ait geliştirmeler &quot;ayrıştırma&quot;ya tabi tutularak çıkartılıyor. Teori bu iken pratik her release sonrası 2. hatta 3. releasein yapılması ve sebebinin &quot;kod ayrıştırma&quot; hatası olması şeklinde.</p><h4>Standartlar</h4><p>Takip edilen herhangi bir endüstriyel (CMMI, MISRA vb) standart var mı? Kodlama ve diğer işlemler için hangi standartları uyguluyorsunuz? Bunlar nasıl kararlaştırılıyor ve nasıl dokümante ediliyor?</p><h4>Code review &amp; Pair programming</h4><p>Ülkemizde çok yaygın olmasa da bu ikisi hem yapılan işin kalitesi hem de sizin kişisel gelişiminiz için çok elzem. Bu soruya yapıyoruz yanıtı verenlere kesinlikle hangi yöntem ve araçları (Gerrit, Crucible, Github vs) kullandıklarını sorun. Net bir yanıt alamıyorsanız, code review yapmadıklarını varsayabilirsiniz. Çünkü pek çok firmada code review iki developer haftada bir defa yan yana oturup yarım saat ekrana baksın şeklinde yapılıyor.</p><h4>Continuous integration &amp; Continuous delivery</h4><p>CI-CD için hangi araçlar ve yöntemler kullanılıyor? Herhangi birisinin repoya derlenmeyen kod gönderme şansı var mı? Ne sıklıkla releaseler yapıyor, yapabiliyorsunuz?Burada alacağınız yanıt ciddi bir sürecin olup olmadığını ve kurumun hantal olup olmadığını değerlendirmenizi sağlayacaktır.</p><h4>Projenin odağı</h4><p>Çalışacağım projenin mevcut hedefi nedir? Yüksek bir tempoyla ilk release mi? Bugfix ve iyileştirme mi? Yeni özelliklerin geliştirilmesi mi? En çok uğraştıkları sorun ne, benim bunun çözümüne nasıl bir katkım olabilir?</p><h4>Test</h4><p>Çıktılar nasıl test ediliyor? Unit test, varsa ui test yazılıyor mu? Test ve kalite için görevli ayrı bir ekip var mı? Uçtan uca test süreçleri nasıl işliyor?</p><h4>Bug takibi</h4><p>JIRA benzeri bir hata raporlama ve takip aracı kullanılıyor mu? Excel gibi verimsiz çözümler kullananlar var mı? Burada excel ile birlikte mail üzerinden iş takibi yapılması sizin için kırmızı bayrak olabilir.</p><h4>Teknik borçlar (technical debt) ve bekleyen buglar</h4><p>Projelerde teknik borçlar birikiyor mu, yoksa bunların ve bekleyen bugların çözümüne dair sistematik bir süreç var mı? Örneğin; bekleyen bugları her sprint sonunda, teknik borçları da ayda bir defa temizliyoruz gibi.</p><h4>İster Analizi</h4><p>Tasarlanacak sistemin ihtiyaçları nasıl belirleniyor? Belirlenen ihtiyaçlar hangi seviyede dokümante ediliyor. Dokümantasyonun ne kadar gerekli olduğu tartışmalı bir konu olsa da, Türkiye’de pratikte karşılacağınız durum agile yöntemler seçildiği için(!) dokümantasyon yapılmaması ve sistem mühendisliği rolünün boş kalması şeklinde oluyor.</p><p>Bu noktada değerlendirmeniz gereken şey, şirketin sağladığı süreç; isterleri size net bir biçimde sağlayabiliyor mu? Entegrasyon, test gibi diğer paydaşlar için isterler aynı şekilde net mi, arada gerekli ve yeterli koordinasyon sağlanabiliyor mu? Dokümantasyon bunu başarmanın yollarından sadece bir tanesi. Bunun aksi durum, size kaotik bir çalışma ortamı, yüksek stres ve 3 ay sonra kimsenin neyi nasıl ve neden yaptığını hatırlamayacağı başarısız bir ürün sunacaktır.</p><h4>Planlama</h4><p>Proje yönetim metodolojisinden bağımsız olarak, teknik işler nasıl planlanıyor. Yöneticiler projenin ne durumda olduğunu net bir biçimde ölçebiliyor mu? Gecikmeleri ve riskleri önceden fark edip müdahale edebilecekleri bir yöntem uygulanıyor mu?</p><h4>Eğitimler, etkinlikler</h4><p>Şirket sizi yurt içi veya yurt dışı etkinliklere gönderiyor mu? Kişisel gelişiminiz için eğitim veya e-learning platformu üyeliği gibi şeyler sağlıyor mu? Yerli yabancı kitap veya herhangi başka bir materyal satın alım bütçesi var mı?</p><h4>Pozisyona özel teknik detaylar</h4><p>Üzerinde çalışacağınız teknoloji ve araçlarla alakalı her türlü teknik soruyu sormalısınız. Buraya platform, sektör, iş tanımı özelinde kalacağı için örnek soru kalıpları eklemedim.</p><p>Teknik soruları karşı tarafa iletirken kullanacağınız yöntem doğrudan “bu nasıl yapılır” şeklinde değil, “siz bunu nasıl yapıyorsunuz” şeklinde olmalı ve sorgulama değil öğrenme amaçlı bir soru olduğu izlenimi yaratmalı. Bu sohbet hem sizin bilgi ve tecrübe seviyenizi daha iyi yansıtmanıza olanak tanıyacak, hem de yer yer tecâhül-i ârif sanatından da yararlanarak bildiğiniz şeyleri bilmiyor gibi davranıp karşı tarafın teknik bilgi seviyesini ölçmenize fırsat tanıyacaktır.</p><h3>Son soru</h3><h4>Beni işe kabul edecek veya etmeyecek olursanız bunun nedeni ne olur?</h4><p>Bu soru için görüşmenin özeti diyebiliriz. Karşınızdakiler bu soruya yanıt vermek istemeyebilirler, buna anlayış göstermelisiniz. Ancak sizin de aynı soruya “Ne olursa burada çalışırsın veya çalışmazsın?” şeklinde yanıt vermeye hazır olmanız gerekiyor. Burası sizin kendi adınıza en büyük dersleri alacağınız nokta olacağı için söylenenleri dikkatle dinlemeniz gerekiyor.</p><p>Bu soruyu daha da geliştirerek görüşmedeki en üst düzey yöneticiye <strong>“Ben bu işte tam olarak neyi başarırsam, sizin gözünüzde en iyi çalışanınız olurum”</strong> şeklinde de sorabilirsiniz. Tabii ki bu aynı zamanda bir meydan okuma da olduğu için bunun altını doldurmanız gerekiyor. Bu soru karşısında iyi bir yöneticinin yüzünde heyecanı yansıtan gülümsemeyi görebilirsiniz, ancak bu soru yazı boyunca hiç bahsetmediğimiz ama görüşme esnasında orada olan ve sizi muhtemel rakibi olarak görecek olan kişinin hiç hoşuna gitmeyecektir, buna da hazırlıklı olun.</p><p>Görüşmede sözlü bir teklif alırsanız kabul etmeyi düşünseniz bile, değerlendirme için 1–2 gün süre isteyin. Kararınızı yakın çevrenizde sağduyusuna güvendiğiniz insanlarla istişare ederek gözden geçirin.</p><h3>Bitirirken</h3><p>Yaklaşık 15 dk’nızı bu yazıya harcadınız ve önünüzde bir sürü prosedür var. İtiraf etmeliyim ki yazının içeriği fazlaca profesyonel oldu, haklı olarak şu eleştiriyi yapabilirsiniz. Türkiye’de süreçler bu kadar profesyonel değil. Haklısınız ancak; bu durum sizin profesyonel olmanıza engel olmamalı, siz profesyonelleştikçe, karşınızdakiler de profesyonelleşmek zorunda kalacak. El birliğiyle Türkiye’de sektörü ileri taşıyacağız!</p><p>Şimdi kendinize şunu da soruyorsunuz: <strong>Bu kadar kasmaya gerek var mı?</strong></p><p>Evet var. Çünkü gününüzün yaklaşık 9 saati iş yerinde geçiyor, bu süre zarfında yaşayacaklarınız doğrudan mutlu/mutsuz bir hayat sürmenizi etkileyebilecek seviyede. Yanlış bir iş tercihini fark edip, akabinde vazgeçmeniz 4–12 ay arası bir sürenizi alacağı gibi CV’nizde de kötü bir leke olarak ömür boyu kalacak, kendim yaptım oradan biliyorum 🙃 . Basit bir elektronik eşya veya hemen tekrar satabileceğimiz bir arabayı alırken bile günlerce, haftalarca araştırıp emek sarfediyoruz, peki aynı şeyi mutluluğumuzu, gelişimimizi, geleceğimizi doğrudan etkileyecek bir iş değişikliği için neden yapmayalım?</p><p>Peki bu yazıdaki listeyi ve tavsiyeleri uygulayarak başarılı olma garantiniz var mı? Tabii ki hayır. İkili veya çoklu ilişkiler deterministik sistemler olmadığı için sabit bir algoritmayı çalıştırmanız size herhangi bir sonuç garantisi sunamaz. Gün sonunda işe alınıp alınmayacağınız, hangi koşullarda alınacağınız tamamen görüşmenin özü olan beklentiler, teknik olan/olmayan yeterlilik ve uyum ile belirlenecektir. Bu liste sadece görüşme denen olguyu süreçleştirmenize ve daha profesyonelce yönetmenize destek olacak.</p><p>Listenin sadece sorulardan oluşan bir kopyasını katkılar veya başka meslek grupları için forklanabilmesi adına github’a koyuyorum.</p><p><a href="https://github.com/ifndefgt/yazilim-mulakatinda-isverene-sorular">https://github.com/ifndefgt/yazilim-mulakatinda-isverene-sorular</a></p><p>Şimdiden başarılar!</p><p><strong><em>PS:</em></strong><em> Masanın diğer tarafında oturan sevgili işe alımcılar, teknik yöneticiler. Buraya kadar okumuş iseniz sizin de acil olarak bu sorulara ne yanıt vereceğinizi belirlemeniz gerekiyor. Gak-guk, kem-küm edeceğiniz noktada adayın aklında bu yazıda vurguladığım soru işaretleri oluşacaktır.</em></p><p>Zaman ayırıp okuduğunuz için teşekkürler ❤️ Varsa yorumlarınızı 💬 veya beğendiyseniz 👍 yazının kendisini paylaşabilirsiniz. İletişimde kalmak veya fikir alış-verişi için Medium veya Twitter üzerinden takip 🏃 🏃 edebilirsiniz.</p><p><a href="https://twitter.com/ifndefgt">Gökhan Topçu (@ifndefgt) | Twitter</a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e870cbf27fab" width="1" height="1" alt=""><hr><p><a href="https://medium.com/bili%C5%9Fim-hareketi/isverene-ne-sorulur-e870cbf27fab">Yazılım iş görüşmesinde işverene neler sorulur?</a> was originally published in <a href="https://medium.com/bili%C5%9Fim-hareketi">Bilişim Hareketi</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Neden kalemtıraş bile üretemiyoruz? — Aykırı Fikirler Kuşağı]]></title>
            <link>https://medium.com/t%C3%BCrkiye/yerli-uretim-82de42090c2f?source=rss-43f72d70fd49------2</link>
            <guid isPermaLink="false">https://medium.com/p/82de42090c2f</guid>
            <category><![CDATA[liberalizm]]></category>
            <category><![CDATA[ekonomi]]></category>
            <category><![CDATA[yapısal-reformlar]]></category>
            <category><![CDATA[türkçe]]></category>
            <category><![CDATA[üretim]]></category>
            <dc:creator><![CDATA[Gokhan Topcu]]></dc:creator>
            <pubDate>Mon, 08 Oct 2018 12:35:09 GMT</pubDate>
            <atom:updated>2021-01-26T20:26:18.103Z</atom:updated>
            <content:encoded><![CDATA[<h3>Neden Kalemtıraş Bile Üret(e)miyoruz? — Aykırı Fikirler Kuşağı</h3><p>Okul yıllarından hatırlıyorum tüm kalemtıraşlarımız Alman malıydı. O yıllardan beri çevremde hep sorgulanıyor, neden kalemtıraş bile üret(e)miyoruz?</p><p><em>Sorry for non-Turkish followers. This post targets current situation of Turkish economy and politics. So you can just ignore it.</em></p><p>İngiliz edebiyatçı Doris Lessing “İsterseniz yanlış düşünün, ama her durumda kendi kafanızla düşünün.” der. İktisatçılık iddiası olmayan sade bir vatandaş olarak ben de medyanın ürettiği ana akım düşüncenin dışında kalarak, kendi kafamla(özgür düşünce değil) düşünerek kendi doğru ve yanlışlarımı paylaşmak istiyorum. O yüzden bir seri haline getirirsem lazım olur diyerek, yazının başlık kısmında “<strong>Aykırı Fikirler Kuşağı”</strong> ifadesini ekledim. Yanlışlarım için şimdiden özür dileyerek başlıyorum.</p><p>Geçtiğimiz aylarda gün yüzüne çıkan ekonomik sarsıntılar sonrası hep beraber aynı şeyleri hissettik. Döviz nereye kadar yükselecek, bu yükselişi nasıl durdurabiliriz. Döviz kurunun bu mevcut durumuyla ithal ürünleri nasıl satın alacağız? Sonra hep birlikte aklımıza ilk gelen fikrin peşine düştük.</p><blockquote><strong>İthal edeceğimiz şeyleri niye biz üretmiyoruz?</strong></blockquote><p>Bu düşünsel metodun eleştirilmeye müsait çok yönü var, ancak bu mesele bu yazının konusu değil. <strong>İlk olarak ekonomi tarihimizden konuya girip, bir tez olarak mevcut durumu ve önerileri sorgulayıp, daha sonra anti-tez kısmında farklı görüşlerden bahsederek sentez işini okuyucuya bırakacağım.</strong></p><h4>Tarih</h4><p>Türkiye Cumhuriyeti’nin ekonomi politikasının başlangıç noktası için İzmir İktisat Kongresi diyebiliriz. Henüz Lozan bile imzalanmamış ve Türkiye SSCB ile yakın ilişkiler içerisinde iken bu kongreden <strong>karma (ancak nispeten serbest piyasacı/liberal) bir ekonomi modeli </strong>çıkmıştı. Bir parantez açıp sermaye birikimi olmayan ve “ekonomik bağımsızlığı siyasal bağımsızlığın ön koşulu olarak gören” modelin o dönemki sömürgeci veya bugünün yağmacı liberal modellerle karıştırılmaması gerektiğini belirtmek istiyorum. Kimi tarihçiler Lozan öncesi yapılan kongrenin de bir pazarlık konusu olduğunu söyler, bunu bir not olarak bırakıp üzerine yorum yapmayacağım. 1929 Buhranı’ndan sonra, ham madde ihracı dibe vurup, ithalatı karşılamamaya başlayınca daha içe dönük devlet destekli korumacı bir ekonomi politikasına dönülmüş ve yerli üretim teşvik edilmişti. 1929–1938 arasında istikrarlı bir biçimde sonrasında ise çeşitli kesintilerle 1960&#39;lara kadar bu model devam etti diyebiliriz.</p><h4>İthal İkamecilik</h4><p>Aradaki yılları es geçip bizim için kritik olan 1960&#39;lara geçmeye başlıyorum. 1960–1980 arası ithal ikameci modelin dönemi. İthal ikameci model, ithal ettiğin ne varsa ithal etme üret diyor. Tam da sosyal medyaya her girdiğimizde okuduğumuz gibi…</p><p>Başarılı bir ithal ikameci model uygulaması için, rekabetçi olabilmek, hammadde bağımlılığını minimize etmek, iç pazarın ihtiyacını karşılamak ve nihai hedef olarak üretileni ihraç etmek gerekiyor. İthal ikameci modelde yerli üreticiye avantaj sağlamak adına, ithalata kısıtlama ve yüksek vergi yükü getirilmesi de gerekli. Neticede yerli üretici bu işte yeni olduğu için kalite, üretim maliyeti, süreç otomasyonu açısından ithal ürünlerle rekabet etmesi zor ve desteğe ihtiyacı var. Yine 1960 yılında üretimde ithal ürünlerle -nispeten de olsa- kalite açısından rekabet edilebilmesi ve iç pazardaki tüketicinin korunması için Türk Standartları Enstitüsü(TSE) kuruluyor. Bu dönem devlet destekli kalkınma yine öncelikli, ancak yeterli sermaye birikimine ulaşan tüccar ve bayi/distribütör grupları da üretime dâhil oluyor. Ve küçük burjuva(!) tüccarlarımızın yavaş yavaş büyük burjuvalığa yani sanayiciliğe terfi etmesiyle, gerçek manada burjuva ve işçi sınıflarımız da oluşmaya başlıyor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/549/1*3d7YhSOWObLlsIMbaPbecg.jpeg" /></figure><p>Her şeyi kendimizin üretmesi fikri her ne kadar teoride çok harika görünse de işin pratiğinde pek çok sorun var. İthalat kısıtlaması ve vergiler nedeniyle eli güçlenen yerli üretici kalite kaygısı gütmeden yüksek fiyatlarla satış yapabiliyor. Mercedes fiyatına TOFAŞ’a binmek söylemi de bize o günlerden miras kalıyor. Yüksek teknoloji üretimi know-how birikimi, yetişmiş insan gücü ve patentler eliyle -büyük ölçüde- gelişmiş devletlerin tekelindeyken bu alanda rekabetçi olma şansı ortadan kalkıyor bu da bizi montaj sanayiine itiyor. Montaj sanayii dediğimiz şey istihdama ve ihracata katkıda bulunsa ve faydalı olsa da temel amacımız değil, ham madde bağımlılığı nedeniyle bir kambur olarak sırtımızda duruyor. Pazarı kendi tekelinde gören yerli üretici kalite amacı gütmüyor, fiyatları en yüksek seviyede tutuyor, durum böyle iken Ar-Ge yapmak da maliyetli ve pragmatik olmayan bir eylem halini alıyor. İthalat kısıtlaması ve yüksek vergiler kaçakçılığa ve karaborsaya fırsat sunabiliyor.</p><h4>Küreselleşmeye İlk Adım</h4><p>Globalizm(küreselleşme)den bahsetmeden önce kaba bir tanım yapmakta fayda var. Wikipedia tanımıyla küreselleşme, ürünlerin, fikirlerin, kültürlerin ve dünya görüşlerinin alış verişinden doğan bir uluslararası bütünleşme sürecidir. Bizim için ise, iletişim teknolojisindeki gelişmeler, hava taşımacılığının yaygınlaşması, döviz spekülasyonları, sınır ötesi sermaye hareketlerinin artması, kitle tüketimi, global ısınma, çokuluslu şirketlerin güçlenmesi, yeni uluslararası iş bölümü, emeğin uluslararası hareketi, ulus-devletin gücünün azalması, post-modernizm gibi pek çok kavramın dâhil olduğu bir kavram kümesi.</p><p>Sürece dönersek, 24 Ocak 1980 tarihinde Başbakanlık Müsteşarı(darbe sonrası Ekonomi Bakanı) Turgut Özal’ın mimarı olduğu 24 Ocak Kararları ile ithal ikameci model yerine serbest piyasa ekonomisine geçiliyor. 24 Ocak Kararları’nın gerçek uygulama sürecinin 12 Eylül darbesi olduğu, hatta darbe nedenlerinden biri olduğu, merhum Bülent Ecevit’in bu kararlar için “Demokratik bir rejimde uygulanamaz” dediği söylenir. Geldiğimiz noktayı görmek açısından; 23 Ocak 1980 günü dolar kuru 35 TL, bu yazının yazıldığı gün ise dolar kuru 6.130.000 TL (6 sıfır atılmamış hali) arada 175.000 kat gibi bir fark var. Cumhuriyet tarihi boyunca 28 milyar dolar borçlanmış ülke, 80–89 arası 34 milyar dolar borçlanmış. O tarihten beri serbestliği giderek artan bir liberal ekonomimiz var. Mevcut meselelerle ilgili değerlendirmelerimizi de bu gerçekle yüzleşerek yapmamız gerekiyor. <strong>Türkiye’de her ne kadar doğrudan hissetmesek de; dershanelerin özel okullaşması, kamu-özel sektör ortaklığındaki şehir hastaneleri ve patlayan özel güvenlik sektörü, bazı liberal kuramcıların bile dışarıda bıraktığı eğitim, sağlık ve güvenlik sektörlerini de serbest pazara dâhil etmiş durumda.</strong></p><p>Özellikle 20. yy’da uluslarası ticaretin yaygınlaşması ve ortaya çıkan dünya savaşları nedeniyle çatı küresel örgütler ve kurumlar oluşmaya/güçlenmeye başladı. BM, NATO, IMF, Dünya Bankası bu çatı kurumlardan bazıları. 20.yy boyunca benzer şekilde şirketler de çok ulusluluk furyasına katıldı. Örneğin, değeri Türkiye ekonomisini geçen Apple ABD merkezli, Çin’de üretim yapan çok uluslu bir şirket. Kısaca şirketlerin devletlerden daha güçlü olduğu, hatta pek çok çok uluslu şirketin yatırım yaptığı gelişmemiş ülkelerin ekonomik ve sosyal politikalarına doğrudan nüfuz edebildiği bir dünyada yaşıyoruz. Belki de içinde olduğumuz için farkedemiyoruz ama globalizasyon insanlık tarihinin belki de Fransız İhtilali’nden sonra en büyük dönüm noktalarından biri. <strong>Artık dünya çok küçük, her şey çok hızlı, sınırlar yok denecek kadar şeffaf, hepimiz Lacoste giyen, Starbucks kahvesi olmadan güne başlayamayan, Marlboro içen, iPhone kullanan, Hollywood filmleri izlemeden uyuyamayan, Rihanna dinleyen dünya vatandaşlarıyız.</strong> Batı’nın tekniğini ve teknolojisini alırız, kültürünü almayız diyenleri tarih haksız çıkardı. iPhone’da ön kamera varsa selfie çekelim diye var. Teknoloji kültürden soyutlanamadı. Globalizm bu yöneliyle yerel kültürleri de evrensel değerler(!) eliyle tarihten silerek ilerliyor.</p><p>Doğrudan yapılan ham madde, pazar paylaşımı mücadelesi her ne kadar bugün de farklı usüllerle(asimetrik savaş) devam etse de. I. Dünya Savaşı’nın konusuydu ve içe kapanık yerli üretim/tüketim modelleri tarih oldu. Pek çok ülkenin arasında Gümrük Birliği gibi serbest ticaret anlaşmaları var. 24 Ocak Kararları ile birlikte Türkiye de bu sürece dâhil oldu, Türkiye’nin globalizasyonu o günden beri sürekli vites yükselterek ivmelenmeye devam etti.</p><h4>Globalizm Çağında İthal İkamecilik</h4><p>Bol bol hikaye ve teori konuştuk. Yazının başlığındaki soruya dönersek “Neden kalemtıraş bile üret(e)miyoruz?” Yanıtımız basit, belki de bugünün dünyasında kalemtıraş üretmek iyi bir fikir değildir. Yerli üretime yönelmekteki en temel amacımız cari açığı hatta mümkünse dış ticaret açığını sıfırlamak hatta ‘fazla’ya çevirmek, böylece ekstra döviz ihtiyacını minimize edip kurun yükselişini engellemek ve istihdamı artırmak. Bunun için her gün sosyal medyada bunu niye üretmiyoruz, bunu da mı üretemiyoruz, saman bile ithal diye sitemler okuyoruz. Yani ithal ikameci modeli talep ediyoruz ancak bugün globalizm gibi ‘game changer’ bir faktör var. <strong>Eskiden Arçelik’e Bosch parası ödeyebiliyorduk çünkü Bosch’un gerçek fiyatını veya kalitesini bilmiyorduk.</strong> Artık Amazon, Alibaba bir tık kadar uzağımızda, sınırlar yok denecek kadar zayıf. Artık her şey bilinir ve ulaşılır durumda. Amazon’daki ürüne Moğolistan’dan yapılan yorumları görebiliyor buna göre satın alma kararı verebiliyoruz. Mesafeler kısa, Ankara’dan otomobille Istanbul’a gitmekle Istanbul’dan Londra’ya uçmak aynı sürede gerçekleşiyor. Türkiye’de pahalı bulduğumuz bir şeyi, yurtdışına gidip rahatça getirebiliyoruz. Gümrükler bunu engellemekte yetersiz. Ülkeler arası serbest ticaret anlaşmaları var. Alman arabalarına aşırı vergi veya ithalat limiti getirdiğiniz durumda Almanya da sizden aldığı ürünlere aynısını uygulayabilir. Bakınız: Trump ve Ticaret Savaşları. Bu durumda kendinizi Dimyat pirinci, evdeki bulgur analojisinin ortasında bulabilirsiniz. Hatta rivayet o’dur ki; cumhuriyetin ilk yıllarında kurulan uçak fabrikasının kapatılma gerekçesi, biz uçak pazarında rekabete girişirsek Batı’lılar bizden tarım ürünü almayı bırakır düşüncesidir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/620/1*O5nY_oecJSDQar92T6LhSA.png" /></figure><p>Evet globalizm çağındayız, oyunun kuralları değişti. Ya bıçkın Anadolu delikanlısı Tatar Ramazan misali bu oyunu bozacağız ya da oyunu kurallarına göre oynayıp kendimize bir yer edineceğiz. Tatar Ramazan yöntemi bu yazının konusu olmadığı için diğer seçeneğe geçiyorum. Reel sektör denen şeyin parametreleri ortada ham madde, pazar, arz, talep vs. Amacımız cari açığı kapatmak ise minimum hammadde ithalatı ile üretebileceğimiz, iç pazardaki ihtiyacımızı karşılayıp ithalatı düşürecek, globaldeki rakipleriyle rekabet edebilecek fiyat/performans oranını yakalayıp kendine pazar açabilecek, talebini varsa artıracak yoksa kültürel olarak pazarlanarak talep yaratabilecek böylece globalde markalaşabilecek ürünler üretmek. Örnek vermek gerekirse İskoçya’nın viskisi ve yünleri, Küba’nın purosu, Almanya’nın otomobilleri, Fransa’nın kozmetiği, Brezilya’nın kahvesi, Hollanda’nın tarım ürünleri, Norveç’in somonları vb.</p><p>Bunun için yapmamız gerekenler, yukarıdaki parametrelere uyan sektörleri ve ürünleri tespit edip, bunlara yönelik üretim altyapısı, reklam, markalaşma, ham madde ve insan gücü konularına sistematik olarak yatırım yapmak. Burada da devletin organizasyonuna ve koordinasyonuna büyük ihtiyaç var. <strong>Örneğin ülkemizde turizm ve sağlık için meslek yüksekokulları varken tarım-hayvancılık için -köy enstitüleri sonrası- herhangi bir okulumuz yok. Demek ki bu alana yatırım yapmayı pek de istemiyoruz. </strong>Türk dizilerini pek çok 3. Dünya ülkesine ihraç ediyoruz, bu kültür ihracatı demektir. Maddi getirisi düşük dahi olsa en değerli ihracattır. Hollywood’un inşa ettiği tüm dünyayı peşinden koşturan American Dream böyle bir ihracatın ürünüdür. Amerikan kültürünün ve markalarının tüm dünyada kabul görmesini tüketilmesini sağlamıştır. Biz de bunu bir fırsata çevirebiliriz. Üretilen ürünlerdeki kalite standardımız çok önemli, bu standardın hedef pazar(lar)ı çok iyi analiz etmiş olması ve pazardaki ihtiyaçları ve boşlukları en uygun biçimde değerlendirmesi gerekiyor. <strong>TOFAŞ’ın kuşlarının(Doğan, Şahin, Kartal) Afrika’da hâlâ satıldığını biliyor muydunuz?</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JGqdtpVc7VmPWIAV0It6dA.jpeg" /><figcaption>Made in Germany</figcaption></figure><p>Yani özetlersek kalemtıraş üretmek önemli değil, kalemtıraşta markalaşmak, o kalemtıraşı tüm dünyaya ihraç edebilmek önemli. Bunu hangi sektörde veya üründe yapabiliyorsak ona yönelmemiz lazım. Bu ürün kalemtıraş da olabilir, saman da olabilir, bilgisayar anakartı da olabilir.</p><h4>Stratejik Sektörler</h4><p>Bir de stratejik değeri olan ürünler ve sektörler var. Savunma ve gıda ilk akla gelenler. Bu gibi bazı sektörlerde kendi kendine yetme hedefleri koymak gerekiyor. Küresel ısınma gerçeği hayatımızdayken olası bir kıtlık dönemi tüm yatırımları, beklentileri tepetakla edebilir. Yani kârlılık oranı düşük olsa bile stratejik olan sektörlerde var olmak, üretimi desteklemek, korumak ve ayakta tutmak gerekiyor. İleri teknoloji üretimleri de yine aynı kapsamda değerlendirilebilir. Sadece montaj sanayinden oluşan bir ileri teknoloji üretimi hem yüksek maliyetlere neden olacak hem de rakipleriyle mücadele edemeyecektir. Ancak montaj sırasında vidanın yerli üretim olmasıyla başlayan süreç eğer ileri teknolojinin tamamının yerli olmasına dönüşebilir ve Ar-Ge ile de katma değer yaratabilirse hedefe varılmış olur. Bu süre zarfında devletin üreticiyi(vergi desteği, hibeler ve pazarı yabancı rakiplerden koruyarak) desteklemesi, üreticinin ise düşük kârlılığı kabullenmesi gerekiyor. Teori böyle iyimserken pratik hibelerin cebe indirilmesi, gümrük vergisiyle korunan pazarın suistimaliyle sonuç buluyor. <strong>Yıllar önce notebook üreten bir fabrikaya gittiğimizde “Ürünlere siz kendinizden ne katıyorsunuz?” sorusuna “Renkli notebooklar üretiyoruz” yanıtını almıştım.</strong> Bu bakış açısı ithal ikameci modelin çıkmazlarını tüm çıplaklığıyla yüzümüze vuruyor.</p><h4>Her Sektörde Var Olmak</h4><p>Türkiye ekonomisinin amiral gemisi sayılabilecek bir holdingin her sektörde olmak gibi bir yöntemi var. Gıda, perakende, sağlık, otomotiv, enerji, turizm… Strateji şu; her sektörde küçük de olsa bir yatırım bulundurarak, konjonktürel durumlar ve gelişen fırsatlar doğrultusunda o sektöre yatırım yaparak büyümenin alt yapısını her daim hazır tutmak. Yine kalemtıraş örneğinden gidersek, küresel bir kalemtıraş kıtlığı oluştuğunda bu alana yönelip en azından kendi ihtiyacımızı karşılayacak seviyede üretim yapabilmek için bu alanla ilgili bir miktar know-how sahibi olmamız gerekiyor.</p><h4>Düşük Kur Dönemi</h4><p>2000&#39;lerin başından 2010&#39;lara kadar döviz kuru enflasyon kadar bile artmamış. Çünkü ABD Merkez Bankası’nın politikası gereği döviz arzının yüksek olduğu bu dönem bizim gibi ekonomilerde finansal genleşme yarattı. Ucuz döviz yani düşük kur bizim adımıza ithalat patlamasına neden oldu, bu da içerideki üretimi olumsuz etkiledi. Global kurların arasında büyük ölçüde korunmaya çalışan bir fiyat dengesi var. <strong>Bunun anlamı şu, Audi’nin üretim maliyetleri euro ile Chrysler’in üretim maliyetleri dolar ile Range Rover’ın üretim maliyetleri sterlin ile. Eğer euro aşırı değerlenirse Audi’nin maliyetleri artacak ve global rekabette işi giderek zorlaşacak</strong>. Almanya’nın neden Yunanistan, İtalya gibi zayıf ekonomileri Euro bölgesinde tuttuğunun açıklaması da bu oluyor. Çünkü üretim ekonomisi global rekabette ayakta kalabilmek için düşük kura ihtiyaç duyuyor. Çin katlanan üretimine rağmen parasının değerini aynı seviyede tutmayı başardı. Eğer yuan güçlenen ekonomiyle beraber güçlenseydi, Çin’de üretimin maliyeti yükselecek, böylece Çin ucuz iş gücünün merkezi olarak kalamayacaktı. <strong>Duruma çok kızsak da Türkiye’de ekonominin inşaata yönelmesinin nedeni biraz da bu.</strong> Türkiye’deki yatırımcılar üretimin çok kârlı olmadığı ve genleşme etkisiyle paranın arttığı ortamda iç piyasanın artan talebi(1980&#39;de nüfus 44 milyon iken bugün 80 milyon) ile fiyatların şiştiği emlak/inşaat piyasasına yöneldi. Düşük kur döneminde ileriye dönük üretim ve Ar-Ge yatırımları yapmak yerine kısa vadede getiri sunacak inşaat gibi sektörlere yönelinmesi de bugünkü manzarayı oluşturdu.</p><p>Şimdi yine aynı ABD Merkez Bankası piyasaya verdiği ucuz dolarları geri topluyor, faizleri artırıyor. Ancak bu karar bir gece ansızın alınmadı. FED bunu çok önceden söylemeye başladı, ama biz yine de hazırlıksız yakalanmayı başardık. FED’in bu politikası Trump’ın ABD’de üretimi ülke içine çekerek istihdamı artırma politikasıyla çelişiyor, burada da ileriye dönük bir kriz riski var. Gerçekleşmesine pek ihtimal vermesem de Trump’ın ‘Ticaret Savaşları’nın tüm ülkelere yayılması durumunda global bir enflasyon da söz konusu olabilir.</p><h4>Yapısal Reformlar, Yapısal Reformlar</h4><p>Bazı ekonomistlerin diline pelesenk olmuş bir söylem var. Diyorlar ki; “Türkiye’nin yapısal reformlara ihtiyacı var, bunları gerçekleştirirsek ekonomi düzelir”. Adalet, eğitim, kuvvetler ayrılığı, demokrasi, basın özgürlüğü, fikir hürriyeti gibi konularda Türkiye’nin mevcut durumunu iyileştirmesi gerekiyor. Bu gerçekleşirse küresel sermayenin yatırımları için Türkiye’yi daha çok tercih edeceğini, yatırımların ve paralelde büyümenin artacağını söylüyorlar. Adı geçen yapısal reformların Türkiye’yi daha yaşanılır bir yer kılacağına şüphe yok. Yatırımların yönünü değerlendirmek açısından etkisi de hafife alınamaz. <strong>De jure bize bunun doğru olduğunu söylese de, de facto’ya baktığımızda önümüzde Çin gibi bir örnek var.</strong> Çin bu konuların pek çoğunda sınıfta kalıyor, bürokrasisinin yozlaşmış olduğu da bilinen bir gerçek, ancak buna rağmen küresel sermaye Çin’e milyarlarca dolarlık yatırımlar yapıyor. Görünen o ki sermaye bu evrensel değerlerden çok grev olup olmayacağıyla, iş gücünün maliyet/performans verimliliğiyle ilgileniyor. Sadece Çin değil, dünyanın pek çok yerinde çok uluslu şirketlerin totaliter rejimlerle ilişkileri, karıştıkları rüşvet skandalları, hatta bizzat bu şirketlerin dâhil olduğu çocuk işçi, hayvan/doğa katliamlarını göz önünde bulundurursak bu söylemin doğruluğunu daha rahat sorgulayabiliriz. Bu durumda piyasa tanrısına iman etmemizi söyleyen ruhban sınıfının(liberal ekonomistler) bu konuda başta kendi müritlerine ve topluma karşı samimi olmadığını söylersek hata yapmış olur muyuz? Gerçekte sermayenin bir yere yatırım yaparken kendi kâr beklentisi ve güvenliği haricinde bir kaygısı var mı?</p><p><strong>EK (13.10.2018): </strong>Çin’in demokratik bir ülke olmamasına rağmen nasıl kalkındığını açıklayan Daron Acemoğlu ve James Robinson’a ait “kapsayıcı kurumsal yapılar” tezini, basbayağı “neo-emperyalist saldırganlık” diyebileceğimiz bugünkü işgal, savaş ve çatışmaları “Medeniyetler Çatışması” olarak tanımlayan Samuel Huntington’ın tezi gibi görüyorum. Yani ortadaki ‘yalın’ gerçeği işaret etmek yerine, iyi düşünülmüş örnekler(kılıflar) üzerinden bu gerçeğin üzerine örülen bir duvar gibi. Diyeceksiniz ki Nobel adaylığı söz konusu olan MIT’de profesörlük yapan birini mi ciddiye alalım seni mi? Dünya liberalken tabii ki Daron Acemoğlu’nu alacaksınız, neticede pragmatizmin temel ideoloji olduğu bir dünyada herkes kendine yararlı gördüğü fikri yüceltecektir.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*edS6LKsqxvytAsUT_lv1hQ.jpeg" /></figure><p>Madalyonun diğer yüzünde de hali hazırda bu yapısal reformları yapmış ülkelerin durumları var. Acaba bu ülkeler krizlere bağışıklık kazanmış mı? Yoksa olası krizlerden onlar da -bizim gibi olmasa da- etkileniyor mu? Söylediklerim yanlış anlaşılsın istemem. Yapısal reformlar ile ekonominin durumu arasında korelasyon yok demiyorum. Sadece yapısal reformların her kapıyı açan altın bir anahtar olmadığını ve<strong> krizlerin liberal ekonomi modelinin doğasından gelen bir eğilim olduğunu söylüyorum </strong>ki bu da zaten benim tespitim değil. Anti-Tez bölümünde bu konuya biraz daha değinmek üzere ara veriyorum.</p><h4>Çare Yazılım ve Teknoloji mi?</h4><p>Bir de çare yazılım ve teknolojiye yatırım yapmak diyenler var. Benim bu konuda en çok canımı sıkan durum kanaat önderi konumundaki insanların olaya bu denli sığ yaklaşabiliyor olması. İç dinamiklerini ve süreçlerini bilmedikleri sektör hakkında sürekli retorik kasıp, aforizmalar savuran Endüstri 4.0, fütürizm, teknoloji, inovasyon gurmelerinin(!) dediği gibi yazılıma ve teknolojiye yönelsek nasıl olur peki? Bu sektörler katma değeri yüksek ve küçük yatırımlarla bile dev geri dönüşleri olabilen sektörler. Bu gurmelerimizin atladığı şey sektörün iç dinamikleri, iş yapış kültürü, ürün kalitesi, markalaşma süreci, teknolojinin teknik, yöntem ve patent bazlı kısıtlamaları, Türkiye’nin bu alanlardaki mevcut durumu. Ben bu şahısları kahvehanede otururken ne iş yaptığını, nasıl çalıştığını, tedarik zincirini ve zorluklarını bilmedikleri market hakkında</p><blockquote>“Günde 100 kişi gelse adam başı X lira bıraksa Y TL kalır, iyi para bu işi yapalım”</blockquote><p>diyen adamlara benzetiyorum. Hele ki ilkokullarda yazılım öğretelim bu iş olsun kafasıyla olaya bakanların ülkede pek çok noktaya sirayet etmiş olan vasatlık ve bayağılık kültürünü yazılıma da getirmekten daha fazla bir katkı sağlayamayacağı ortada. Eleştiri biraz sert mi oldu sizce? <strong>Öyleyse Anadolu’da açılan üniversitelere bakın, üniversite mezunu sayımızı katladık, istediğimiz beklediğimiz sonuçları ve etkiyi sağladı mı bize???</strong> Demek ki nicelikten önce yatırım yapmamız gereken şey nitelik. Bunun yolu da ilkokulda kodlama dersi vermek değil. Gayemiz gerçekten buysa 700 bin kişinin matematikten 0 çekmesine neden olan öğretim sistemini gözden geçirerek bu işe başlayabiliriz. Bu konu da ayrı bir yazı konusu olabilecek derinlikte olduğu için burada bırakıyorum.</p><h3>Anti-tez</h3><p>Clausewitz “Savaş Hakkında” kitabında “Stratejik olarak tıkanmış bir savaşı hiçbir taktik başarıya ulaştıramaz” der. Burada stratejiden de öte doktrinsel olarak doğru savaşı mı seçiyoruz diye kendimize sormamız gerekiyor. Yapacağımız taktik hamlelerden önce doktrinimizden ve stratejimizden emin olmamız lazım ki boşa kürek çekmeyelim. Bunu da düşüncelerimizi ve yöntemlerimizi sürekli sorgulayarak, karşıt fikirleri eşliğinde rafine ederek sağlayabiliriz.</p><p><strong>Buraya kadar söylediklerimizin hepsini yaptık, peki şimdi ekonomimiz uçacak mı?</strong> Yani adını koyamadığımız -ya da koyalım azat edilmiş köle manasında Libertus diyelim- piyasa tanrısının bizden istediği tüm ibadetleri yerine getirdik. İşte burada bir paradoks var. Piyasa tanrısının bize adil davranmasını, ibadetlerimizi ödüllendirmesini bekliyoruz. Ancak gelişmiş ülkeleri bile vuran ekonomik krizleri gözlemlediğimizde piyasa tanrısının pek de adil davranmadığını, pek çok harici faktörden de etkilenebildiğini gözlemleyebiliyoruz. Piyasa tanrısının davranışları her ne kadar kararlı(dengesiz olmayan) kaotik bir akış içerisinde görünse de siyasetle, sosyolojiyle, güç savaşlarıyla doğrudan ilintili. <strong>Pek çok insanın zannettiğinin aksine Suriye Savaşı’nın nedeni, X kişinin zalim bir yönetici olması değil, Ukrayna yüzünden artan Avrupa — Rusya geriliminde Avrupa’nın Rusya’ya olan gaz bağımlılığını ortadan kaldırmak adına yapılması planlanan Katar doğal gazının Suudi Arabistan — Ürdün — Suriye — Türkiye üzerinden Avrupa’ya taşınması projesine Suriye yönetiminin Rusya ile ilişkileri nedeniyle karşı çıkması. </strong>Konuyla ne alakası var diyorsunuz farkındayım ama şunu söylemeye çalışıyorum. Planlarınız her zaman istediğiniz gibi gitmeyebilir, sizin yaptıklarınızın yapacaklarınızın dışında gelişen olaylar da sizleri derinden etkileyebilir, çünkü bu meseleler tek boyutlu ele alınamayacak kadar derin. Bu durumda içine düşülecek olan arafta piyasa tanrısı yanınızda olmayacaktır.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/600/1*mMjlV1QpOxp6szDr24HpBQ.jpeg" /></figure><p>Cari açığımızı kapatmaya ve cari fazlaya dönüştürmeye çalışıyoruz. Cari açığın bizim için fazlaya dönüşmesi demek bir başkası için açılması demek oluyor. Yani dünyanın kuzeyi dış ticaret fazlası olan, güneyi ise dış ticaret açığı olan ülkeler desek hedefi biraz daha netleştirmiş oluruz diye düşünüyorum. Liberal ekonomistler bize bunu hedef gösterir ama kimse, herkesin söylenenleri yaptığı durumda neler olacağını da düşünmez. Örneğin makus talihini(!) mukadderat olarak gören kara kıta Afrika’nın ülkeleri sadece bu söylenenleri uygulayarak kalkınabilir mi? Liberal ekonomistlere göre bu sorunun yanıtı evet. Peki sizce de bu doğru mu? Bu söylenenlerin uygulanması noktasında herkesin fırsat eşitliği var mı, yoksa bu hedefler hiç bir zaman erişilemeyecek ancak kovalanacak havuçlar mı? <strong>Steinbeck’in ölümsüz karakterleri George ve Lennie çiftliklerde ırgatlık yaparak, bir gün çiftlik sahibi olabilecekler mi?</strong></p><p>Liberal dünyanın fırsat eşitliğinden hep bahsedilir. Peki “fakirlik kısır döngüsü” denen; parası olmadığı için birikim yapamama, birikim yapmadığı için yatırım yapamama, yatırım yapamadığı için büyüyememe olarak tanımlayabileceğimiz döngüyü nereye yerleştireceğiz? Yoksa bu eşitlik olasılığı 1/14 milyon olan Sayısal Loto’da 6 tutturma olasılığındaki eşitliğimiz mi? Sakın aldanmayın onda da eşit değiliz! Sermayesi çok olan daha çok kupon doldurup şansını artırabiliyor!</p><p>Sistemin pratiğindeki tek açık nokta bu değil. Örnekleri çoğaltabiliriz ama sadece birkaç tanesinden bahsetmek istiyoruz. Aylık maaşı olan 7.000 TL ile 2 çocuk okuturken ay sonunu zor denkleştiren bir bürokratın, milyar dolarları olan bir iş adamına karşı tutumu, tavrı, varsa denetleme görevi sizce nasıl olabilir? Bu bürokratın yozlaşmaması için ne yapacağız, kanunları mı uygulayacağız? Kanun uygulayıcıların hatta kanun koyucuların böyle bir güç karşısında yozlaşmayacağının garantisi var mı? Bu noktada ahlaki değerlere sığınabiliriz. Ama başarının “köşeyi dönmek” olarak tanımlandığı -hatta medya eliyle özendirildiği- bir dünyada saygınlık anlayışının da maddi güce endekslenmesini ve bunun klasik ahlak anlayışını çökertmesini nasıl önleyeceğiz? <strong>Bu yozlaşmayı önleyemediğimiz durumda pek cici görünen liberal demokrasi ambalajından plütokratik bir oligarşi çıkmayacak mı?</strong></p><p>Traktör mazotu ucuz değilken yat mazotunun ucuz olmasını, bireylerin sahip olduğu araçlar vergi öderken, aynı maliyetin şirketlere ait veya kiralık araçlarda ‘vergiden düşülmesi’ni nasıl yorumlamalıyız? Halkı temsilen bu işi yapan kanun yapıcıların(TBMM) halkın değil, güç sahiplerinin menfaatini korumasını neyle açıklayacağız?</p><h4>Dış Borç</h4><p>Türkiye’de mevcut durumda dış borçlarımız pek çoğu özel şirketlere ve bankalara ait. Peki özel şirketlerimiz neden borçlanıyor. Nedeni yurt içi tasarrufların(mevduat birikimi) yetersiz olması. <strong>Burada ana akımın kanaati, bizim vatandaş parayı biriktirmiyor, iPhone, lüks araç, emlak satın alıyor, o yüzden birikim olmuyor. Zaten Yunanistan’ın durumu da Yunanların tembel olmasından kaynaklanıyor(!) öyle değil mi!</strong> Pratikte işler çok farklı. Ciddi miktarlarda birikim yapabilecek konumda olan büyük sermaye sahipleri kendi paralarını ya doğrudan ya da Kıbrıs vs. üzerinden Malta veya diğer deniz aşırı vergi cennetlerine aktarıyor. Böylece Türkiye’de gelir vergisi ödememiş oluyorlar. Vurgun burada da bitmiyor aynı parayı oradan da kendi şirketlerine yüksek faizli kredi olarak kullandırıyorlar. Böylece şirketin kazandığı para borç faizi olarak geri ödeniyor ve kurumlar vergisinden de kurtulunmuş oluyor. Vurgun bitti mi? Hayır henüz değil! Bazen de şirketler bu borçları ödeyemeyeceklerini belirtip yerli bankalardan destek istiyor, bunlar da devlet güvencesindeki bankaların batık kredileri olarak hanemize yazılıyor. Hanemiz derken hane halkını kastediyorum. Hani günde 12 saat çalışmalarına rağmen her 10 yılda bir ekonomik krizle karşılaşan ve emeklilik yaşı 5 yıl ileriye giden hane halkından..</p><h4>Yerli ve Milli Olmak</h4><p>İktisat pek çok kuramcıya göre tüm siyasi ve sosyolojik olayların temelindedir. Burada kimin araç kimin amaç olduğu da çok tartışmalı. Kesin olan şu ki -medyamızın güzide kalemşorlerinin yaptığı gibi- siyasi ve sosyolojik olayları iktisattan soyutlayarak değerlendirmek oldukça yanlış bir yöntem. Olaylara günlük politika değil de daha geniş bir perspektiften(namıdiğer böyük resim) bakarsak; her ne kadar bu bizlere Kemalist — Muhafazakâr güç savaşı olarak pazarlanmış olsa da, son 20 yılda Türkiye’nin globalizasyon sürecinin bir parçası olarak Ulusal(Milli) değerlere sahip bürokrasisinin ve bunun dayandığı toplumsal temelin sistematik olarak önce kriminalize, sonra da marjinalize edilerek tasfiye edildiğini söyleyebiliriz.</p><p>Son dönemlerde siyasi popülizmin çok kullandığı bir yerlilik ve millilik vurgusu var. Hatta bu iki kavram bir slogan olma yolunda ilerliyor. Pratikteki uygulamalar her ne kadar aksini işaret etse de bu vurgunun pratiğe dönüşmesi ve yeni bir adımın başlangıcı olmasını temenni ediyorum. Sadece buradaki anlam ve kavram karmaşasını biraz ayırt etmek gerekiyor. Geçenlerde siyasetçiler tarafından Türkiye’de üretim yapan yabancı şirketlerin de yerli olduğu söylendi ve hepimizin kafası karıştı. Bazı şirketler “Yerli ve Milli” olma girişimleri başlattılar. Ancak yine aynı şirketlerin yurt dışı yatırımlarıyla globalleştiğini de görüyoruz. O zaman soralım sermaye gerçekten yerli veya milli olabilecek bir kimliğe sahip mi?</p><h4>Sermaye’nin Kimliği</h4><p>Bugün çok uluslu şirketlere baktığınızda çalışan profili, üretimin ve organizasyonun dağıtımında dil, din, ırk gibi ayrımların olmadığını aksine verimlilik, kârlılık yani artı değerin hedeflendiğini görüyoruz. Sermaye sınırlarla, ırklarla, inançlarla ilgilenmiyor. Neredeyse tüm dünyada sermaye hareketleri de liberal. Yani Türkiye’de milyarlarca dolar kazanan birisinin bu parayı Türkiye’de tutması için herhangi bir zorlayıcı unsur yok. Paranın nereye gideceği tamamen kendi inisiyatifinde.</p><p>Bir Türk markasından aldığımız ürün aslında Afrika ham maddesiyle Vietnam’da üretiliyor olabilir. Ya da tam tersi Amerikan kültürüyle özdeşleşmiş bir marka Türkiye’de yerli ham maddeyle üretim yapıp, yurt dışına ihracat yapıyor olabilir. Yerli üretimin farkı yarattığı istihdam, vergi ve dış ticaret açığına olan etkisi.</p><p>Türkiye’deki bir şirketin İngiliz bir şirkete satıldığını öğreniyoruz. Satın alan İngiliz şirketin ortaklık yapısını incelediğimizde Malta’daki bir şirketin ana hissedar olduğunu görüyoruz. Malta’daki tabela şirketin ortaklık yapısına ulaşabilirsek de orada bir vakfın etkili olduğunu görüyor ve bu vakfın yine bir Türk’e ait olduğunu buluyoruz. Neredeyse tüm dünyadaki şirketlerin sermaye yapısı bu şekilde, ortada örümcek ağı gibi yapılanmış bir sermaye örgüsü var. Bu nedenle sermayenin kimliğiyle ilgili yaptığımız tahminlemeler doğru adresi bulamıyor. Ülkeye 10 milyar dolar yabancı sermaye gelecekmiş, şu şirketleri satın alıp buralara yatırım yapacakmış diyoruz. Ama aslında bu yatırımcılar “Bıyıklı Yabancı”lar. Balıkesir’de tavuk yumurtası üreten şirketin hisselerine yatırım yapanların sizce ne kadarlık kısmı Londra merkezli fonlar?</p><h4>Bağımlılık — Bağımsızlık</h4><p>Türkiye’de globalleşmeye karşı bürokratik ve toplumsal refleksin oluştuğu dönemde popüler bir slogan vardı “Tam bağımsızlık”! Bu teori ülkenin iç ve dış politikada tamamen kendi iç dinamikleriyle hareket etmesi gerektiğini savunuyordu. Kulağa hoş gelse de liberal ekonomi modelinde bunun nasıl uygulanacağını hep merak etmişimdir. Liberal sistemde para pragmatist bir yaklaşımla vergi cennetlerine akıyor. Orada kılık değiştirerek yabancı yatırımcı, fon vs. olarak geri dönüyor. Ancak bu geri dönüşü de yine kendi kârlılık perspektifine göre yapıyor. Ülkelerin de cazip olmak adına bu geri dönüşü sağlamak için sermayeye ‘kolaylıklar’ sağlaması gerekiyor. İşte bu kolaylıklar sosyal, ekonomik hatta askeri politikaların dayatılmasına kadar gidebiliyor. Yaygın anti-emperyalizm söylemlerini de bu bağlamda değerlendirememiz gerekiyor. Artık bir ülkenin diğerini ordularıyla, ajanlarıyla işgal etmesine gerek yok. Neoliberal serbest pazar, benzer bir durumu hem de karşı tarafın rızası ve hatta talebiyle sunuyor. IV. Murad’a isnad edilen “Borç alan emir de alır” sözünü tarihsel bir ders olarak unutmamak gerekiyor. Bu durumda eski anlamlarıyla değerlendirdiğimiz anti-emperyalizm ve tam bağımsızlık paradigmaları da içinden çıkılmaz birer paradoksa dönüşüyor.</p><h3>Sonuç</h3><p>Her telden çalan uzun bir yazı oldu, konunun farklı yönlerinden yorumlar katarak bahsedip kafası karışık bir yazar imajı yaratmaya çalıştım. Aslında kafamdakiler çok net, ancak bir fikir dikte etmemek ve okuyucuya farklı paradigmalarla düşünme imkânı yaratmak adına bu kafa karışıklığını okuyucuya aktarmaya çalıştım. Bu sayede herkesin kendi doğrusuna, konunun üzerine bizzat düşünerek varmasını amaçlıyorum. Bana bir Cumartesi gününe mal olan bu yazı birilerinde bu etkiyi yaratırsa da amacıma ulaşmış olacağım.</p><p>Talep veya imkân olursa bu konuyu biraz daha somutlaştıracak “Yerli Yazılım” ve “Lider Kültü” üzerine de bir şeyler söylemek istiyorum. Twitter bilgiseli yapma niyetiyle başlayıp düz yazıya çevirmeye çalıştığım için bazı yazınsal anormallikler olabilir. Teknik meselelerden bahsetmeyen ilk yazım olduğu için her türlü geri bildirimi bekliyorum, bu doğrultuda gelecek her clap, her share, her like farklı konularda da içerikler üretmek adına benim için motive edici olacaktır. İletişimde kalmak için:</p><p><a href="https://twitter.com/ifndefgt">Gökhan Topçu (@ifndefgt) | Twitter</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/800/1*EphTjkJm7YSDD7TZYBup6A.png" /></figure><p><a href="https://www.facebook.com/turkceyayinblog/"><strong>Facebook</strong></a><strong> | </strong><a href="https://twitter.com/turkceyayinblog"><strong>Twitter</strong></a><strong> | </strong><a href="https://www.instagram.com/turkceyayin/"><strong>Instagram</strong></a><strong> | </strong><a href="https://join.slack.com/t/turkceyayin/shared_invite/enQtMzMzMDU1MDMyMzI0LTEwYjBjNzhlNmQ5NzNiYTBjZjQyMDkzYmRmOTg0ZmM4NmI4OTcyMTY4YmMwMGVmMmRjYjgyMDExMzZhODQ2NDE"><strong>Slack</strong></a><strong> | </strong><a href="https://medium.com/kodcular"><strong>Kodcular</strong></a><strong> | </strong><a href="http://www.mustafagerdan.com/"><strong>Editör</strong></a><strong> | </strong><a href="http://www.wolony.com/"><strong>Sponsor</strong></a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*2fQUHUI0FA9h9aPtwxJ6fQ.png" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=82de42090c2f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/t%C3%BCrkiye/yerli-uretim-82de42090c2f">Neden kalemtıraş bile üretemiyoruz? — Aykırı Fikirler Kuşağı</a> was originally published in <a href="https://medium.com/t%C3%BCrkiye">Türkçe Yayın</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Stop Using Structs!]]></title>
            <link>https://medium.com/commencis/stop-using-structs-e1be9a86376f?source=rss-43f72d70fd49------2</link>
            <guid isPermaLink="false">https://medium.com/p/e1be9a86376f</guid>
            <category><![CDATA[swift]]></category>
            <category><![CDATA[build]]></category>
            <category><![CDATA[ios]]></category>
            <category><![CDATA[software-development]]></category>
            <category><![CDATA[memory-management]]></category>
            <dc:creator><![CDATA[Gokhan Topcu]]></dc:creator>
            <pubDate>Tue, 29 May 2018 10:43:56 GMT</pubDate>
            <atom:updated>2019-12-06T12:42:54.851Z</atom:updated>
            <content:encoded><![CDATA[<p>I hear all the time people say ‘prefer value types over reference types’. What if we are all getting it wrong?</p><blockquote><strong>Important:</strong> This article was published for Swift 4.0 and updated on 06.09.2018 through the language updates that show up with Swift 4.1 and 4.2. So please read carefully <strong>Update</strong> sections. Some of the statements on article directly affected by these changes and they are <strong>NOT</strong> valid for the new versions of the language.</blockquote><blockquote>I’m preparing another article for what’s changed and how it affect our case. And by that time I can update this article for newer Swift versions.</blockquote><p>Hello everyone, first of all, this is my very first post on Medium. I hope you enjoy it, here we go!</p><p>I know the title of this post reads somewhat ‘ambitious’ and I can admit that it’s intended as a bit of a click bait. But I think this topic needs huge attention, because most of the developer community is unaware of the problems with value type usages. So I would like to amend the title as below.</p><h3>Stop (Mis)using &amp; (Ab)using Value Types</h3><p>In this post, I will try to address some anti-patterns of Swift value type usages. Then I will try to explain how these can affect our expectations of reality.</p><h4>Value Types &amp; Reference Types</h4><p>As a reminder here is a list of Swift value types:</p><ul><li>Struct</li><li>Enum</li><li>Tuple</li><li>Primitives (Int, Double, Bool etc.)</li><li>Collections (Array, String, Dictionary, Set)</li></ul><p>And reference types:</p><ul><li>Class</li><li>Anything coming from NSObject</li><li>Function</li><li>Closure</li></ul><p>*But some of the value types like Strings or Arrays indirectly keep items in the heap. So they are value types that are backed by reference types.</p><blockquote>*This statement has some exceptions like small strings optimizations. With SSO small strings kept inside String struct itself, instead of a storage buffer.</blockquote><h4>Story</h4><p>In 2014 Apple introduced Swift. It’s a multi-paradigm, compiled, statically and strongly-typed language. Swift has powerful and rich value types that support methods, implementing protocols(interfaces), extensions etc. Even though Apple recommended using value types since then, the milestones in the brief history of Swift were actually the following two sessions of WWDC 2015.</p><ul><li><a href="https://developer.apple.com/videos/play/wwdc2015/408/">Protocol-Oriented Programming in Swift</a></li><li><a href="https://developer.apple.com/videos/play/wwdc2015/414/">Building Better Apps with Value Types in Swift</a></li></ul><p>In these sessions, Apple strongly advised using value types more often. Value semantics serve to eliminate mutation and remove unintended sharing of state and related side effects. By providing powerful value types, Swift aims to maximize value type usage to avoid possible errors related to sharing the state. Meantime value types provide better performance metrics than reference types.</p><p>Therewithal it was Swift taking a pass at the functional programming community since the latter aims the same goals, even in today’s increasingly concurrent world. Functional programming also depends on the paradigm “thinking in functional style”. In functional programming world, there is no country for shared state, mutating state and related side effects. That said it has its disadvantages as well, such as its inability to fit perfectly to machine model or its inefficiency in cases where the mutation is a good choice. This is a huge topic that goes beyond the scope of this article. So I will not go deeper into this heated debate and leave it here for now.</p><p>Here is a quick refresher for value semantics and the features of value types presented in aforementioned WWDC sessions.</p><h4>No Shared State (Auto Copying) &amp; Immutability</h4><p>Mutating an instance will never affect another.</p><p>Instances of value types are created in the stack and on each assignment or passing the value around (between functions or threads) there will be a unique instance(if compiler is not sure there will be no mutation, a new copy) and it will be passed. Therefore, you are guaranteed with no shared state. And it’s not possible to mutate an instance unintendedly.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/4d380a6e3ae6e709293ef622b2c3e50a/href">https://medium.com/media/4d380a6e3ae6e709293ef622b2c3e50a/href</a></iframe><p>Now create an instance of our struct</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/083f2533b5c9739374274cdccdae881f/href">https://medium.com/media/083f2533b5c9739374274cdccdae881f/href</a></iframe><p>And assign it to another variable, then modify</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/0617683c2642b3a9b04f242de624c186/href">https://medium.com/media/0617683c2642b3a9b04f242de624c186/href</a></iframe><p>As you see on assignment our struct is automatically copied and this copy is mutated. So value types don’t have shared state, and they have an auto-copying feature.</p><p>Swift’s collection types (Dictionary, Array, String, Set etc.) are value types that are backed by reference types. In these types copy-on-write performance optimization implemented by default in order to avoid mutation issues. Basically copy-on-write provides creating another instance only when the first instance is mutated. Otherwise, a single instance is shared among the variables. So collections are safe for mutability. More information and implementation details of copy-on-write explained in <a href="https://marcosantadev.com/copy-write-swift-value-types/">this great article</a> by <a href="https://medium.com/u/63455a5296e1">Marco Santarossa</a>.</p><h4>No memory leaks</h4><p>*Swift value types are kept in the stack, thus there is no dynamic memory allocation, and as a consequence no room for memory leaks.</p><blockquote>*This statement has some exceptions, in the second part of the article I’m planning to mention those.</blockquote><h4>Thread safety</h4><p>As I mentioned above, Swift value types are kept in the stack. In a process, each thread has its own stack space, so no other thread will be able to access your value type directly. Hence no race conditions, locks, deadlocks or any related thread synchronization complexity.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/63a4453a0086ecb8a3c4bc7c286f82cf/href">https://medium.com/media/63a4453a0086ecb8a3c4bc7c286f82cf/href</a></iframe><p>The code above is perfectly safe for multithreading. Each iteration modifies another copy of User.</p><h4>Memory Management</h4><p>For value types, cost of allocating and deallocating memory is just decrementing and incrementing stack pointer.</p><p>For reference types situation is quite complicated, for allocation firstly runtime/os needs to find the most suitable location to avoid memory fragmentation. This is followed by the allocation and it must be thread-safe, that means there is a necessity for an inefficient lock/unlock or a similar synchronization technique.</p><p>On the other hand, reference counting must be thread-safe too. And it occurs in each assignment, or passing instance around, even in a for loop. A for loop on a reference type is actually</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/9e746bc467bc933ca7f22bfd80cf4634/href">https://medium.com/media/9e746bc467bc933ca7f22bfd80cf4634/href</a></iframe><p>or on a function call</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/e504dbf7383edf357503158d53e78cd3/href">https://medium.com/media/e504dbf7383edf357503158d53e78cd3/href</a></iframe><p>is actually</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/87bef9fa51d4deb579e48020d7185854/href">https://medium.com/media/87bef9fa51d4deb579e48020d7185854/href</a></iframe><h4>Performance</h4><p>Value types do not need dynamic memory allocation or reference counting, both of which are expensive operations. At the same time methods on value types are dispatched statically. These create a huge advantage in favor of value types in terms of performance.</p><h3>(Mis)use &amp; (Ab)use</h3><p>Thus far everything seems great with using value types. So what is the problem?</p><p>The problem starts with thinking, choosing between value types and reference types is a matter of opinion. <strong>It’s not!</strong> This decision has a strong checklist and none of the items on the list are based upon opinions, they are based on facts. In his brilliant <a href="https://academy.realm.io/posts/andy-matuschak-controlling-complexity/">Controlling Complexity in Swift: Making Value Types Friends</a> talk, <a href="https://medium.com/u/31b05019e9fc">Andy Matuschak</a> mention something, that may be easily misconstrued and therefore misleading. He uses the analogy of live objects versus dead objects for reference and value types respectively. This approach is quite subjective and its result can vary between people and doesn’t depend on the real difference between these two.</p><figure><img alt="Pointless or Best Practice" src="https://cdn-images-1.medium.com/max/780/0*9wni6ec7kyKPtyXp.png" /></figure><p>The bigger problem is believing in the cargo cult. Believing that; just by using value types we can get the benefit of value types, without following any constraints. After these WWDC sessions, we all started using value types excessively. And also building architectures, libraries, and tools based on this cargo cult. Even though top StackOverflow answer was edited on May 2016 it did hitherto contains the following <a href="https://stackoverflow.com/revisions/24232845/6">paragraph</a></p><blockquote>My personal advice, is to always default to using a struct because they greatly reduce complexity and fallback to classes if the Struct becomes very large or requires some feature that structs and protocols cannot provide, most notably the ability to have multiple variables reference the same data.</blockquote><p>And yet this statement still contains a hope for the previous assumption being accurate, namely that the documentation is outdated.</p><blockquote>The Swift Programming Language documentation was written before the Protocol Oriented Programming talk was given.</blockquote><p>No, it’s not outdated my friend — we were all wrong.</p><blockquote>The one lesson I’ve learned from technology and food is the only time you know you’re doing the wrong thing is when you’re doing what everyone else is doing.</blockquote><blockquote>Kimbal Musk</blockquote><h4>The constraint</h4><p>Value types can take advantage of these features as long as they can remain as <em>“pure value types”</em>. In a case where a value type contains a reference type or a value type backed by a reference type (Strings, Arrays etc.), this world will collapse by leaving behind a wreckage of this cargo cult.</p><figure><img alt="Wreckage" src="https://cdn-images-1.medium.com/max/500/0*qZObNp8TiB45cRjr.gif" /></figure><p>Now I will change the type of struct Account to a class and look back at the benefits of value types in cases where the constraint is not applied.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/dad0af2ef150d618fd9bae26e5437b3a/href">https://medium.com/media/dad0af2ef150d618fd9bae26e5437b3a/href</a></iframe><h4>Immutability &amp; No Shared State</h4><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/bf3446d49e30fcab034fe1c8d287fec9/href">https://medium.com/media/bf3446d49e30fcab034fe1c8d287fec9/href</a></iframe><p>In the example above I’m creating 2 instances of my struct. Then I’m changing the alias for the second user’s account. Wait a second, first user’s account alias has changed too. But? What about immutability, and no shared state? As you see my struct is mutable. I failed the main purpose of choosing the value type.</p><figure><img alt="Failed" src="https://cdn-images-1.medium.com/max/400/0*zMFyhoqDpqPGPm-P.gif" /></figure><p>So my codebase is quite vulnerable to bugs related to state sharing. You may say it’s as vulnerable as another reference type, and that may be true. But here is a confusion of believing using a value type keeps you safe. If it was a reference type, you would already know that you have shared state and you must handle it carefully.</p><h4>No Memory Leaks</h4><p>Previously I mentioned that value types are all in the stack and no dynamic memory management is required. But when we put a reference type inside a value type things change. It will be in the heap, so memory leaks are possible as it’s the same as any other reference type. So we are losing another advantage of using value types over reference types.</p><h4>Thread safety</h4><figure><img alt="Multithreading" src="https://cdn-images-1.medium.com/max/724/0*9LJYn6Tlc8q3qA3U.png" /></figure><p>Remember me saying using value types provides thread safety, forget about that when reference types are placed inside value types. Unless you are convinced, you can try to run this code and see the results. Spoiler: It will crash 🙈</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/c116202974fe7286492fb9a35cacd9c4/href">https://medium.com/media/c116202974fe7286492fb9a35cacd9c4/href</a></iframe><p>So as you see when you use a reference type inside a value type, you are losing thread safety advantage too. As it’s with a reference type, we need an external thread synchronization mechanism.</p><h4>Memory Management &amp; Performance</h4><blockquote><strong><em>Update #1 (06.09.2018)</em></strong></blockquote><blockquote>After Swift 4.1 Swift’s calling convention has changed and this directly effects language’s performance characteristics those were mentioned in this section. I’m preparing another article about what’s changed and how those effect the performance characteristics<strong>.</strong></blockquote><blockquote><strong>So statements under this section are valid for Swift versions 1.0 – 4.0</strong></blockquote><p>Let’s modify User struct a little more and add some other fields.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/8a205e4ab051e4f864e1f75c5e27cfe7/href">https://medium.com/media/8a205e4ab051e4f864e1f75c5e27cfe7/href</a></iframe><p>and create an instance and pass it to another method</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/86383bfc7438d948ecd9f2a72a6391af/href">https://medium.com/media/86383bfc7438d948ecd9f2a72a6391af/href</a></iframe><p>I can almost hear some saying what’s wrong with this code? It’s quite a common scenario. We build our struct from a JSON model, than we applied some common validation which happens quite often in our use cases.</p><p>Since User is a struct, before passing it to a function, the instance will be copied, and that happens on the stack which seems fine. So what about the properties? As expected properties are copied too, with the one condition that &quot;if they are value types&quot;. What if one of the properties is a reference type like UIImage? Then our instance of UIImage will not be copied, just another pointer to the instance will be created. So we have 2 references to a single instance which means we need to retain the actual storage, and this operation must be thread-safe, and a little more costly.</p><p>What about String? Strings in Swift are value types backed by reference types that indirectly keep items in the heap. So the same situation is applicable for strings too. Their reference count should be increased before the assignment and decreased after they are out of scope. As I mentioned above this operation must be thread-safe too.</p><p>So for my example, I have 6 calls to retain and 6 calls to release and that means I need 12 thread synchronized operations.</p><iframe src="" width="0" height="0" frameborder="0" scrolling="no"><a href="https://medium.com/media/ffbf7ab6ee7480f7638bd45c078c801e/href">https://medium.com/media/ffbf7ab6ee7480f7638bd45c078c801e/href</a></iframe><p>And thanks to our great application architectures, before actually displaying the User on the screen, I need to pass it through several steps. JSON Parsing, Field Validation, Business Validation, Formatting, Interactor, Presenter, View Controller, View etc..</p><p>Let’s think of an example, imagine we have an architecture that contains 6 steps, managed by different classes/functions.</p><blockquote>JSON Parsing -&gt; Field Validation -&gt; Business Validation -&gt; Formatting -&gt; Interactor -&gt; View Controller</blockquote><p>If I assume that I have to pass this User struct that contains 6 properties on each of these steps for only once -and none of the calls are inlined-, I will end up with 6 retain/release for one assignment <em>(6 + 6) * 6 = 72</em> reference counting operations. That is a huge overhead.</p><p>What if I made User a reference type. I would need just 1 retain/release for each assignment/passing around. That will end up with <em>(1 + 1) * 6 = 12 </em>reference counting operations.</p><p>So for a basic User instance, we end up with 12 vs 72 operations. Is it hard to make a choice? I don&#39;t think so. A struct that contains <em>n </em>reference type or value type backed by reference type will be <em>n - 1</em> times *slower than a reference type that contains same storage.</p><blockquote>*This statement is just based on memory management perspective, software performance has other perspectives too.</blockquote><p>So finally, I lost the “being fast” advantage of using a value type too. And this time it’s even worse than reference types.</p><blockquote>Practice to the reader: Think about performance characteristics of an architecture like <a href="https://github.com/ReSwift/ReSwift">ReSwift</a>, which is actually a Redux implementation based on state structs, that may contain lots of strings and arrays.</blockquote><h3>When to use value types</h3><p>Despite documentation makes this quite clear I want to add small fundamental checks before making this decision.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*f5Psqa0-fNXLBojUrhWhjQ.png" /><figcaption>Struct vs Class Decision Flow (Please check the <strong>Update</strong>’s for the article)</figcaption></figure><p>Of course, the decision tree above is not an indisputable fact. You may have exceptions like you have a struct with many mixed fields, and you may have other reasons or a design decision to prefer value types. It’s fine, just take these considerations into account, know what you are doing well, and do it wisely.</p><blockquote><strong><em>Update #2 (06.09.2018)</em></strong></blockquote><blockquote>After this article published, Apple updated the documentation through the changes in Swift 4.2 and language internals changed a lot. As I mentioned above I’m preparing another article for that. Till then you should know that,<strong> </strong><a href="https://developer.apple.com/documentation/swift/choosing_between_structures_and_classes"><strong>after Swift 4.2 Apple offers defaulting to structs, and classes should be used only when Objective-C compatibility and identity of data required</strong></a><strong>.</strong></blockquote><blockquote>So statements below are only correct for Swift versions 1.0 — 4.1</blockquote><p>The official documentation on <em>Choosing Between Classes and Structures</em> says following:</p><blockquote>However, structure instances are always passed by value, and class instances are always passed by reference. <strong>This means that they are suited to different kinds of tasks.</strong></blockquote><blockquote>As a general guideline, consider creating a structure when one or more of these conditions apply:</blockquote><blockquote>- The structure’s primary purpose is to encapsulate a few relatively simple data values.</blockquote><blockquote>- <strong>Any properties stored by the structure are themselves value types,</strong> which would also be expected to be copied rather than referenced.</blockquote><blockquote>Examples of good candidates for structures include:</blockquote><blockquote>- The size of a geometric shape, perhaps encapsulating a width property and a height property, both of type Double.</blockquote><blockquote>- A way to refer to ranges within a series, perhaps encapsulating a start property and a length property, both of type Int.</blockquote><blockquote>- A point in a 3D coordinate system, perhaps encapsulating x, y and z properties, each of type Double.</blockquote><blockquote><strong>In all other cases, define a clas</strong>s, and create instances of that class to be managed and passed by reference.<strong> In practice, this means that most custom data constructs should be classes, not structures.</strong></blockquote><h4>POC for Performance</h4><blockquote><strong><em>Update #3 (06.09.2018)</em></strong></blockquote><blockquote>As I mentioned above, language performance is directly affected by the calling convention updates with Swift 4.1. So POC results aren’t applicable for versions above 4.0</blockquote><p><a href="https://github.com/ifndefgt/StructvsClassPerformance">Here is a POC</a> for the case when a struct and class both contains 10 other classes.</p><p><strong>Important:</strong> This POC is created and tuned for proving aforementioned statements. The results can easily vary in different situations, and they shouldn’t be generalized!</p><p>I made performance tests on my computer with specs</p><ul><li><em>MacBook Pro 15&#39; (Mid 2014)</em></li><li><em>2,2 GHz Intel Core i7</em></li><li><em>16 GB 1600 MHz DDR3</em></li></ul><p>and toolchain</p><ul><li><em>Apple Swift version 4.0.3 (swiftlang-900.0.74.1 clang-900.0.39.2)</em></li><li><em>Target: x86_64-apple-macosx10.9</em></li></ul><p>I tested each configuration with 100 iterations, results are averages in milliseconds, smaller is better 🙃</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*9Ms8WzGHICjyNnzWEYS5nA.png" /><figcaption>POC performance results</figcaption></figure><p>When I disassemble these 3 binaries, I see that the single file optimized version provides better POC for my assumption. In different configurations compiler optimizations may take the output far away from the concept expectations. Especially in whole module optimization case, compiler optimizes the code in favor of classes. On the other hand, when I profile the executions for all configurations, I can clearly see that most of the execution time is consumed by retain and release methods.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*yh_4QgLMGx6rzY4XkpTamA.jpeg" /><figcaption>`<strong>release</strong>` calls of POC’s Struct (on the left) and Class (on the right) in a function that just calls another function.</figcaption></figure><h3>TLDR &amp; Moral</h3><p>Since this is a long post I want to summarize the main point. <strong>By creating value types that contain reference types or value types that are backed by reference types, we are losing most of the advantages of value semantics</strong>. So in these cases, you should think twice or thrice by taking these constraints into account before using value types. Unless you have other benefits (if any) of using value types and it’s worth using them, you should prefer reference types. This is not about performance or optimization or another perspective. This is about doing things right, avoiding unexpected errors and using features provided by programming language wisely.</p><p>In the forthcoming second part of the article, I will get into more details and try to explain what happens when we use value types with protocols and/or generics.</p><p>Thanks for reading this long article ❤️ Please feel free to 💬 and share this article if you 👍 it. You can 🏃 🏃 me on Medium/Twitter for the second part of the article.</p><p><a href="https://twitter.com/ifndefgt">Gökhan Topçu (@ifndefgt) | Twitter</a></p><p>References:</p><ul><li><a href="https://stackoverflow.com/questions/24232799/why-choose-struct-over-class">Why Choose Struct Over Class?</a></li><li><a href="https://www.objc.io/issues/16-swift/swift-classes-vs-structs/">A Warm Welcome to Structs and Value Types</a></li><li><a href="https://developer.apple.com/videos/play/wwdc2015/409/">Optimizing Swift Performance</a></li><li><a href="https://developer.apple.com/videos/play/wwdc2016/416/">WWDC 2016 Understanding Swift Performance</a></li><li><a href="http://faq.sealedabstract.com/structs_or_classes/">Structs or classes</a></li><li><a href="https://developer.apple.com/videos/play/wwdc2015/230/">Performance on iOS and watchOS</a></li></ul><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e1be9a86376f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/commencis/stop-using-structs-e1be9a86376f">Stop Using Structs!</a> was originally published in <a href="https://medium.com/commencis">Commencis</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>