Blockchain Geliştirmeye Başlamak İsteyenler İçin Detaylı Kılavuz

Ecehan Yıldırım
8 min readAug 20, 2023

--

Blockchain üzerine uzun süredir çalışmalar yapan biri olarak bana sürekli sorulan iki soru vardı,
Blockchain nedir? Blockchain Teknolojileri Geliştiricisi nasıl olurum? Birçok konuda yazı paylaşmama rağmen bu konuda bir içeriği henüz kaleme almamıştım.

Bu yazıya üniversite hayatımda paylaştığım Yapay Zeka’ya başlama noktası konulu yazı gibi bir yazı ile başlamak istedim.

Yazı İçeriği ;

Temel Bilgiler
Blockchain’e dair bilgiler
Kriptonomi
Dapp
Frontend / Backend Programlama Dilleri
WEB 3 ve ETH
Akıllı Sözleşmeler
Hap Bilgiler ve Programlar
Özet

şeklinde ilerleyecektir.

PEKİ KİMDİR BU GELİŞTİRİCİLER?

Blok Zinciri Geliştiricileri, Blok Zinciri için uygulamalar yaratan Programcılardır .
Bir blockchain uygulamasının tüm yaşam döngüsünü yönetirler, bu da uygulamanın yürütülmesinin yanı sıra araştırmadan da sorumlu olacakları anlamına gelir. Blockchain sisteminin tüm mimarisini oluştururlar, akıllı sözleşmeler yaparlar ve protokolleri optimize ederler.

Blok Zinciri Geliştiricileri ikiye ayrılır.

  1. Blok Zinciri Çekirdek Geliştiricisi : Mutabakat -Consensus protokolleri vb. gibi tüm sistemin ağ mimarisini tasarlamak için çalışan geliştiricilerdir.
  2. Blockchain Yazılım Geliştiricisi : Bir blockchain ağ sistemi yardımıyla merkezi olmayan uygulamalar — dApp oluşturan geliştiricilerdir.

Detaylara inmeden ve geliştirici olmaya başlamadan önce (bu paragraftaki öneriler yazılım-bilgisayar mühendisliği gibi ilgili bölümleri okumayan arkadaşlar için önerimdir.) Temel Bilgileri biliyor olmamız gerektiğine inanıyorum. Web3, NFT’lerden önce temel bilgisayar bilimlerini öğrenmek Computer Science — Bilgisayar Bilimi adına bir bakış açısı kazandıracaktır.

1. TEMEL BİLGİSAYAR BİLİMLERİ

Harvard’ın ünlü CS50 — Bilgisayar Bilimi için temel bilgiler — ücretsiz kursu, bilgisayarların ve veri işlemenin temellerini anlamak için bilmeniz gereken her şeyi öğretecek bir kurstur. ÜCRETSİZ :)

Yazının devamında detaylı bilgilendireceğim gerekli teknik becerileri de kısaca şimdi özetleyecek olursak;

  • Programlama Dilleri
  • Veri Yapıları
  • Veritabanları ve Ağ Oluşturma
  • Kriptografi

Blockchain nasıl çalışır, neden yararlıdır, neden sıkça konuşuruz?

2.Blockchain — Blok Zincirinin Temelleri

Gelelim anlamaya bu blokzincir teknolojisini.

Blockchain nedir? Blockchain bilgi depolamanın dijital veritabanlı bir halidir. Bilgi “blok” denilen gruplarda depolanır. Blockchain teknolojisi bir Excel sayfası gibidir. Yalnız blockchain kendisini farklı yapan özelliklere sahiptir.

Blockchain’in birçok türü bulunmaktadır fakat biz merkeziyetsiz ortak blokzincir ağları için bir özetleme yapacak olursak;

  • Merkezi değildir- tek bir yerde depolanmaz -(blockchain verisi üzerinde tek bir kişinin kontrolü olamaz. Kullanıcılar direkt olarak birbirleriyle iletişim kurarlar ve üçüncü partiyi aradan çıkartırlar)
  • Kamuya açıktır — (Blockchain üzerinde olan her bilgi ağdaki herkese açıktır)
  • Oy birliğiyle çalışır -( her yeni bilgi blockchain’e eklendiğinde, nodların yarısından fazlasının bunu kabul etmesi gerektiği anlamına gelir)
  • Değiştirilemez — (bilginin bir kez girildikten sonra değiştirilemeyeceği anlamına gelir)

Blockchain teknolojisi hakkında işleyişi, uygulamaları vb. hakkında ayrıntılı bilgi sahibi olmamız
Blockchain mimarisi hakkında sağlam bir bilgiye sahip olmak
Consensus

Hash fonksiyonları
Distributed ledger teknolojisi vb. kavramları anlamamız gerekir.

3.Cryptonomics — Kriptonomi

Blockchain Geliştirmeye başlamadan önce Bitcoin’e veya kriptoparalara değinmeme şansımız var mı?

Crytponomics ‘Kriptonomi’ kelimesi, iki terimin — Kriptografi ve Ekonomi kelimelerinin birleştirilmesiyle oluşturulmuştur.
Kripto para birimlerinin arkasındaki ekonomik kavramları ve metodolojileri anlama sürecini ifade eden Cryptonomics bize işlem ücretleri , madencilik -mining , Bitcoin kullanan işlem yaşam döngüsü ve daha pek çok önemli kavram hakkında bilgi sahibi olmamızı sağlar.

Cryptocurrency (kripto paralar), tüm blockchain teknolojisinin sadece küçük bir parçasıdır, ancak blockchain’in temellerini anlamak ve bu alanda yetkin olmak isteyenler için mekanizmasını ayrıntılı olarak anlamak gerekecektir.

4.Dapp- MERKEZİ OLMAYAN UYGULAMALAR

Blok zincirinin temellerini, düğümleri-nodes, consensus- mutabakatı, cryptonomics ve bu teknolojinin tüm ana bileşenlerini öğrendikten sonra, uygulamaların bunun üzerine nasıl inşa edildiğini öğrenmeye geçebiliriz.

Blockchain üzerine inşa edilen uygulamalar,
Merkezi Olmayan uygulamalar veya DApp’ler olarak adlandırılır
ve

  • Standart Frontend kullanılarak oluşturulmuş JavaScript veya React, Vue, Svelte vb. çerçeveler/kütüphaneler
  • Bir Solidity/Solana/Rust ile inşa edilmiş blockchain Backend uygulaması

içerir.

Gerçek dünyadan deFi (Merkezi Olmayan Finans) örnekleri ve daha fazlası için DApp Radar’a bakabilirsiniz.

Bir dApp projesinde frontend ve backend’in birlikte nasıl çalıştığını anlamak için: Frontend ve Backend geliştirme, API’lar ve kalıpların-patterns temel ilkelerini öğrenmeniz gerekir.

5.Programlama Dilleri -Frontend / Backend Geliştirme Kaynakları

Merkezi Olmayan Uygulamalarda standart bir JavaScript veya JavaScript Frontend Framework bulunur , bu nedenle ilk DApp’inizi geliştirmeden önce Front-end geliştirmenin temellerini ve web’in nasıl çalıştığını öğrenmeliyiz.

HTML, CSS, HTTP, JavaScript öğrenip, bir framework seçerek statik web siteleri oluşturmaya başlayabiliriz.

Merkezi Olmayan Uygulamalarda Backend (Veri yapıları — veri tabanı sistemleri dahil) projeler, Blockchain teknolojisinin merkezi olmayan veri depolamasının ana kaynağı olarak kullanılmasına karşın standart backendler genellikle Veritabanlarını veya Nesne Depolarını kullandığını düşünürsek “standart” backend uygulama projelerinden büyük ölçüde farklıdır.

Yine de teknik ilkelerin çoğu aynı kalır. Standart web geliştirme ana ilkesinin güçlü bir temeli olmadan doğrudan blokchain ve web 3.0 geliştirmeye başlamamız önerilmez.

Bu çok yararlı bir süreç: DB’i bağlamak, kendi REST API’nizi oluşturmak ve araçlarınızı güçlendirecek iş mantığını oluşturmak, alanda deneyim kazanabilmek için atılması gereken harika bir adım.

6.Web3.0 & Solidity Geliştirme Yol Haritası (ETH dosttur)

Bir web3.0 geliştiricisi olarak, Ethereum’un nasıl çalıştığını anlamamız gerekmektedir.

Ethereum, aksama süresi, hile, üçüncü taraf müdahalesi vb. komplikasyonlar olmadan akıllı protokollerin ve Akıllı Sözleşmelerin yanı sıra dağıtılmış uygulamaların (DApp’ler) geliştirilmesine olanak tanıyan bilgisayar ağı üzerinde çalışan bir yazılımdır.

Ethereum Blok Zinciri üzerinde çalışan Merkezi Olmayan Uygulamaların (DApps) çoğu, akıllı sözleşmelerde çalışır.
Bu kavram, Ethereum Konsorsiyumu tarafından hayata geçirilmiş ve daha sonra diğer blok zincirlerince benimsenmiştir.

Ethereum’un kurucusu Vitalik Buterin’den Ethereum hakkında daha fazla bilgi edinebilirsiniz.(Merkezi adfes :))
Daha derin teknik bilgi almak için Ethereum’un resmi web sitesini ve belgelerini inceleyebilirsiniz.

7. Akıllı Sözleşmeler (Smart Contracts)

Ethereum ve akıllı sözleşmeler birbirleriyle yakından ilgilidir, her iki kavramı da anlamanız gerekir.

Bir akıllı sözleşme, bir sözleşmenin otomatik olarak yerine getirilmesini sağlayan, blockchain tabanlı bir platformda saklanan bir yazılımdır.

Solidity, Rust veya Vyper (Solidity’nin Python benzeri bir versiyonu) gibi programlama dilleriyle yazılabilir.

Akıllı sözleşmeler, herhangi bir Merkezi Olmayan Uygulamanın (DApp) temel bileşenlerindendir, iş mantığını destekler ve veritabanlarında yaptığınız gibi blok zincirinde bilgi depolamanıza izin verir.

Eğlenerek öğrenmenin ömrü uzattığına dair bi fikrim var :)

Kriptozombiler- Cryptozombies
Oyunlaştırılmış bir programlama kursu olan Kriptozombiler ile Solidity hakkında bilgi edinip zombi fabrikası oluşturarak akıllı sözleşmeleri nasıl geliştireceğinizi öğrenebiliriz.

Oyun, tamamen başlangıç seviyesinden ileri seviyeye kadar bölümlere ayrılmıştır. Pratik yapmanıza yardımcı olması için bu oyunu oynamanızı oynarken de yukarıdaki kurslardan veya benzerlerinden birini teorik donanım için takip etmenizi öneririm.

Bonus: Decentralize APP’i Frontend’e Bağlayalım.

Şimdi Akıllı Sözleşmeler oluşturmayı bildiğimize göre, HTTP’den WebSocket’a kadar her tür protokolü kullanarak frontendimizi local veya remote Solidity (veya benzeri) backend’lerine bağlamak için bir yolumuz olmalı.

Bu bağlantı için iki JavaScript kütüphanesi seçebiliriz:

  • Web3.js
  • Ethers.js

Web3.js

HTTP, WebSocket ve diğer iletişim protokollerini kullanarak doğrudan JavaScript tabanlı kullanıcı arayüzünüzden local veya remote bir Ethereum node’una bağlanmanızı sağlayan bir kütüphanedir.

DApp University tarafından sunulan tam web3.js hızlandırılmış kursu

Ether.js

Ether.js JavaScript frontend’unuzu Akıllı Sözleşmelerle bağlamak için Web3.js’ye alternatif olarak kullanılan light bir JavaScript kütüphanesidir.

Nader Dabit tarafından yazılan Ethers.js ile Frontend DApp geliştirmeyi öğren yazısı.

ÖNEMLİ PROGRAMLAR SERİSİ

Tek bir yolumuz yok öğrenmek için, yukarıda ilettiğim kurslar ilgimizi çekmezse aşağıdaki bir kursla yolumuza devam edelim, denemekten vazgeçmeyelim!

  • Openzeplin | Resmi olmayan standart Solidity kitaplığı
  • Chainlink | Hibrit akıllı sözleşmeler için Oracle bağlantısı

Önemli Dağıtım — Deployment Frameworkleri

Temel bilgiler

Gelişmiş Kavramlar

  • NFT’ler | Zincir üzerinde sanat ve benzersiz jetonlar
  • Metaverse 101 | Bu konuyla ilgimiz yok sanmadınız umarım
  • WEB3.0 | Nedir internetin geleceği :)
  • DAO’lar | Merkezi olmayan özerk kuruluşlar
  • DeFi | Merkezi Olmayan Finans
  • Yükseltilebilirlik | Akıllı sözleşmelerinizi nasıl “değiştirirsiniz”?

Tools — Araçlar

  • Test ağları — Testnets | Blok zincirinde entegrasyon testi
  • Etherscan ve Blok kaşifleri | Zincirde neler olduğunu yapılan işlemleri “nasıl” görebilirim?
  • Alchemy & Node-As-A-Service | Ağa bağlanma
  • Moralis | Full stack Uygulama Paketi

ARAMIZA NEREDEYSE HOŞGELDİN :)

Bir kursa katıldın ya da yukarıdaki adımları tamamladın diyelim.

Harika!

Şimdi, bu aşamada yapmamız gereken en önemli şey, becerilerimizi gerçek dünya durumlarında test etmek ve diğer geliştiricilerle bağlantı kurmaktır.

Bir projeyle başlamalısın.

Ne tür bir proje olacağı önemli değil. Başlangıçta zor gibi görünebilir ve hazır olmadığınızı hissedebilirsiniz.
Lakin bu sorun değil, öğrendiğimiz hiçbir şeyi öğrenmeye başlayana kadar bilmiyorduk. Bu noktada başlama kararından sonra daha fazla öğrenmek, daha hızlı öğrenmek ve becerilerimizi test etmek için bir hackathon’a katılabilir ve bir topluluğa dahil olabiliriz.

Konfor alanından çıkı. Yaptığın şeyler seni korkutup heyecanlandırmıyorsa, kendine yeterince meydan okumuyorsun demektir.

HACKATHON :)

Bilgimizi test etmek veya kendimizi bir şeyler yapmaya zorlamanın en kolay yolu bir hackathon’a katılmaktır. Instadapp gibi birçok başarılı proje hackathon projelerinde yarışarak başlamıştır.
Hackathon’lar, birkaç günden birkaç haftaya kadar süren kodlama yarışmalarıdır. Para kazanabilirsiniz, ama çoğu yazılımcı bunları yeni şeyler öğrenmek için araç olarak görür.

Dünyanın en iyi blockchain hackathon’larından bazıları;

BONUS;

Geçen günlerde düzenledikleri ideathon etkinliğinin jürilerinden biri olduğum Superteam Turkey Türkiye’deki Solana geliştiricilerinin ve web3 ile ilgilenenlerin buluştuğu bir adres, yakında hackatonları var benden söylemesi :)

Hackatonlar ayrıca GitHub veya GitLab profilinizi oluşturacak içini doldurmanızı sağlayacaktır.

Bir topluluğa katılın

Blockchain alanının en değerli yönlerinden biri birçok topluluğa sahip olması diyebilirim.
Sorular sormak, fikir alışverişinde bulunmak ve yeni gelişmelerden haberdar olmak için bir topluluğa katılmanızı kesinlikle öneririm.

Benim içerisinde premium member olarak dahil olduğum ve yazıyı yazma motivasyonumu artıran ailem CRYPTO FEMALE

ve yönetim kadrosunda olduğum WEB3 TEKNOLOJİLERİ DERNEĞİ ile başlayabilirsin ve bana katılabilirsin :)

Favorilerimden bazıları:

Öğrenmek için gerçekten bilgili kişileri takip etmelisin :)

Burada Türkiye ekosistemindeki blockchain çalışmalarımda destekçilerimden biri olan Buğra Ayan’a değinmeden geçemem. Ulaşan herkese çok destek olmuştur. Ona büyük bir teşekkür borçluyum :)

İş Başvurusu :)

Bu noktaya geldiğimizde ve bir protokolle bağlantı kurmaya başlamak istediğimizde kelimenin tam anlamıyla her yerde blockchain geliştirici iş ilanları bulabiliriz.

Bazı örnekler:

Freelencer Çalışanlar için HİBE seçenekleri :)

Merkezi olmayan bir protokol fikrimiz varsa, hibe başvurusunda bulunabiliriz.
“Ekosistemde” hibe bulmak için en iyi yerlerden biri gitcoin’dir diyebiliriz.

Kendi protokolünü başlat :)

Bu sektörde hala her şey çok yeni ve inşa edilmesi gereken birçok protokol bulunuyor. Eğer bu alanda ne yapacağınıza karar veremiyorsan, 77 Hibrit Akıllı Sözleşme Kullanım Durumu listesini inceleyebilirsin.

ÖZET

Bu konuda çok fazla şey öğrendik ama son adım, öğrenmeye devam etmek.

Bu alanda herkesin yolu farklı. Belki 6 ders alır ve hemen bir işe girersin. Belki de hemen kendi protokolünü oluşturmaya başlarsın ve yol boyunca öğrenmek için kurslara katılırsın. Bunu yapmanın belirli bir “doğru” yolu yok. Aynı şekilde yanlış bir yolu da yok. Sadece başlamak ilk adım :)

Umarım kariyer yolculuğuna destek olmuş olurum.

Sonraki yazılarda görüşmek üzere!

Lütfen bana bu konuda yazmaktan çekinmeyin, her zaman bir mesaj uzağınızda olacağım.

Beni Linkedin ve Twitter hesaplarımdan da takip edebilirsiniz!🐞

Finansal Feragatname: Bu bir finansal tavsiye değildir. Ben mali müşavir değilim. Bu hesap eğlence ve düşüncelerimi ifade etmek içindir. Lütfen kendi araştırmanızı yapın ve kendi kararlarınızı kendiniz verin.

--

--

No responses yet