Slide 1

Slide 1 text

HAKKINDA BAHSEDİLMEYENLER OKULDA YAZILIM GELİŞTİRME LEMi kurucu ortak, craftgate ORHAN ERGiN

Slide 2

Slide 2 text

2022 2023 2024 LEMi ORHAN ERGiN linkedin.com/in/lemiorhan speakerdeck.com/lemiorhan @lemiorhan kurucu ortak, Craftgate kurucu, SCTurkey çalıştı, Sony, eBay/GittiGidiyor, ACM, iyzico programladı, 2001’den bu yana aşk ile Ödeme Orkestrasyon Platformu Yazılımda Ustalaşma Topluluğu basic programlama dilinde kod yazmıs kim kaldı? koca bir nesil bu balonu uçurdu

Slide 3

Slide 3 text

İyi profesyoneller ve mentorlarla çalışmak ve ilham verici bir amaçla en son teknolojileri kullanırken becerilerinizi geliştirmek istiyorsunuz

Slide 4

Slide 4 text

İyi profesyoneller ve mentorlarla çalışmak ve ilham verici bir amaçla en son teknolojileri kullanırken becerilerinizi geliştirmek istiyorsunuz Çoğunlukla okulda bize öğretilmeyenlere takılıp kalıyoruz gerçek hayat bazen tam tersi olabilir

Slide 5

Slide 5 text

Yazılım geliştirme bir beceridir Çoğu meslek gibi uzmanlık bilgisi, eleştirel düşünme, etik, işbirliği ve sürekli iyileştirme gerektirir meslektir

Slide 6

Slide 6 text

https://speakerdeck.com/lemiorhan/ai-ethics-problems-questions-hopes-regrets https://www.youtube.com/watch?v=D3vVJWyBqn8 Yazılım geliştirme, önce sorumluluk, güvenlik ve etik sorunlarını çözmeden asla yapay zeka tarafından ele geçirilemez. Yazılım geliştirme bir beceridir meslektir kim nasıl yazıldıgı ve çalıstıgı belli olmayan yazılıma sahip bir uçaga binmek ister? - - - , Çoğu meslek gibi uzmanlık bilgisi, eleştirel düşünme, etik, işbirliği ve sürekli iyileştirme gerektirir

Slide 7

Slide 7 text

Yazılım geliştirme hiç bitmeyen bir zanaatkarlık yolculuğudur ustalardan öğrendiğiniz, becerilerinizi geliştirmek için pratik yaptığınız ve öğrettiğiniz bir yolculuk

Slide 8

Slide 8 text

Şirketlerin çoğu yazılım geliştirirken berbat pratikler kullanır ve çöp üretir evet, en meshurları bile , Hiç ummadığınız şirketlerin ne kadar kötü yönetildiğine, ne kadar eski, hantal ve sorunlu sistemlere sahip olduğuna tanık olacaksınız

Slide 9

Slide 9 text

https://medium.com/ctonun-el-defteri/startup-dinamikleri-ve-cto-rolleri-18af101649cc Hakan Erdoğan, Startup Dinamikleri ve CTO Rolleri ürünler, yenilikçilik ve uyarlanabilirlik yetenegini kaybettiginde ölmeye baslar Ürün Özellikleri Zaman ERKEN AŞAMA ÖLÇEKLENME GEÇ AŞAMA Ana Endişe: Hız Kalite İş Devamlılığı Odak: Doğrulama Büyüme Müşteri Memnuniyeti Müşteri Geliştirme Devamlılık Müşteri Bağlılığı Geliştirilen: Ürün Proje MVP İŞ DÜNYASININ SIGMOID EĞRİSİ AŞAMASI

Slide 10

Slide 10 text

Zaman İŞ DÜNYASININ SIGMOID EĞRİSİNDE İKİNCİ EĞRİ TEORİSİ YENİDEN ÖLÇEKLENME AŞAMASI Ana Endişe: Kalite Odak: Büyüme Müşteri Memnuniyeti Geliştirilen: Ürün Ürün Özellikleri İlk egri - İkinci egri -

Slide 11

Slide 11 text

Gerçek bir ürün ekibinde çalışmadan bir yazılım ürünü oluşturmanın ne anlama geldiğini asla anlayamazsınız. Proje geliştirmek ve ürün geliştirmek tamamen farklı şeylerdir ve çok az insan aradaki farkı bilir.

Slide 12

Slide 12 text

bir proje geliştirmek başkasının çocuğuna bakmak gibidir gerçekten önemsediğiniz şey, verilen görevleri yerine getirmek ve bunun için para almaktır

Slide 13

Slide 13 text

uzun vadeli bir vizyon ve amaç peşindesiniz her başarısızlıktan ders alırsınız amaç sürdürülebilir memnuniyettir büyüme ve gelişmenin sonu yoktur sürekli iyileştirmek istersiniz iyi insanlar ve süreçler arasınız bir ürün geliştirmek kendi çocuğunuzu yetiştirmek gibidir

Slide 14

Slide 14 text

Yazılım geliştirme karmaşıktır, pahalıdır, bilinmeyen bilinmeyenler içerir İhtiyaçların gerçekten ne olduğunu anlamalı ve bunları sonsuza kadar sürdürebilmek için uygulama yollarını keşfetmelisiniz neyi bilmediginizi bilmeden nasıl yolculuga çıkarsınız? - -

Slide 15

Slide 15 text

Herkes hata yapar ve düzeltme kaçınılmazdır. Bu nedenle, ucuza düzeltebilmek için sürekli çıktılarımızı gözden geçiririz The important thing is to detect and fix bugs quickly, at an early stage. Almost all software development practices are built on this principle.

Slide 16

Slide 16 text

Kodlama, geliştirme faaliyetinin %5'idir. Geliştiriciler geri kalan zamanda düşünürler. Bu nedenle yazılım geliştirme esas olarak bir düşünme işidir.

Slide 17

Slide 17 text

Temelleri derinlemesine anlamadan yazılım geliştirmek, yıkılmaya hazır bir ev inşa etmeye benzer. Programming languages Data structures Algorithms OOP and FP Design & integration patterns Databases Automated Testing Version control systems Web development basics CI/CD Pipeline

Slide 18

Slide 18 text

İş alanını derinlemesine anlamadan yazılım geliştirmek, kenarları birbirine bağlamak için bir nehrin üzerine ev inşa etmeye benzer. Sadece alanı iyi bilenler bir sorunu gerçekten çözen uygun çözümler yaratabilir. Aksi takdirde sadece aklınıza gelen ilk çözümü yaparsınız.

Slide 19

Slide 19 text

Geliştiriciler yeni fikirleri sever ama orijinal fikirler hala en iyisini gösterir 70'li veya 80'li yılların fikirleri hala geçerlidir the most important fundeman in softw Minimum Cost Systems Black Boxes Modular Design Modularity Software Engineering Complexity Coupling Cohesion Morphology of Simple Systems Design Heuristics Refactoring Transaction Analysis Communication in Modular Systems Packaging Optimization of Modular Systems Typology of System Components Recursive Structures Incremental Structures Program Quality Top-down Implementation Bottom-up Development Management Benefits

Slide 20

Slide 20 text

Kod bir test ile kanıtlanmalıdır Yazılı bir testi olmayan kod tamamlanmamıştır

Slide 21

Slide 21 text

Yazılım geliştirici olmak için araçlarda uzmanlaşmak şarttır. Her profesyonel, kendi mesleğinin araçlarını kullanmakta iyi olmalıdır. Gerçek profesyonelleri amatörlerden ayıran da budur.

Slide 22

Slide 22 text

Reference: https://www.reddit.com/r/notinteresting/comments/8l4pct/man_decides_to_keep_box_of_cables Yazılım geliştirme, bir kablo kutusuna sahip olmak gibidir

Slide 23

Slide 23 text

her sey bilinmeyen bir aygıtın kullanılmayan bir kablosunu saklamakla baslar BAŞLANGIÇ

Slide 24

Slide 24 text

baslangıçta düzen ve entropi kontrol altındadır BALAYI

Slide 25

Slide 25 text

sonra her yeni adaptör ve kablo ile entropi artar ve kaos baslar KAÇINILMAZ DAĞINIKLIK

Slide 26

Slide 26 text

Refactoring, bağlantıyı azaltarak ve uyumu geliştirerek yazılımı daha uzun ve sağlıklı tutmak için düzenlemektir. Karmaşıklık ve maliyet zamanla artar. Yazılım yeni bağımlılıklar eklenerek büyütülür ve bağımlılıklarla başa çıkamadığınızda çürür.

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

Modüler yazılım tasarımının şekli

Slide 29

Slide 29 text

Asla bir ... dahi bir pislik ya da herkesi sevgilisi bir aptal teknoloji̇ fanatiği sosyal medya fenomeni aşırı özgüvenli bro-gramming üyesi yalnız kovboy egoist, narsist hep olumsuz düşünen … olmayın Yazılım geliştirme teknolojiden çok iletişimdir

Slide 30

Slide 30 text

Plajda kod yazmak çok seksidir, ama berbat bir deneyimdir. Esnek bir çalışma ortamı vaadiyle sizi yazılımcı yapmalarına izin vermeyin. Yazılım geliştirme için en iyi kurulum, egonomik sandalyeniz, büyük monitörünüz ve favori klavye ve farenizdir. bu arada, uzaktan çalısma hala harikadır

Slide 31

Slide 31 text

Yazılım geliştirmede en büyük tuzak, yanlış şeyi ya da yanlış zamanda geliştirmektir

Slide 32

Slide 32 text

Yazılımda mutlak iyi veya kötü, en iyi veya en kötü, herkese uyan tek bir beden yoktur, her şey verilen ödünlerle ilgilidir. Tüm soruların cevabı tektir: Duruma göre değişir

Slide 33

Slide 33 text

speakerdeck.com/lemiorhan lemi orhan ergin kurucu ortak, craftgate Evolution of Code to Modularity twitter.com/lemiorhan