Program
Bu makale, otomasyon için Python kullanmaya yönelik kapsamlı bir rehber sunar. Okuyucuların etkili otomasyon çözümleri tasarlayıp inşa etmesine yardımcı olmak için temel kavramlar, başlıca kütüphaneler, gerçek dünya kullanım örnekleri ve en iyi uygulamaları ele alıyoruz. Python öğrenme yolculuğunuzdaysanız, çalışmalarınızı hızlandırmak için Python Programlama Temelleri beceri yolumuzu mutlaka inceleyin.
Python Otomasyonu Nedir?
Python popüler bir bilgisayar dilidir ve bunun iyi nedenleri vardır. Sözdizimi temiz, öğrenmesi kolay ve anlaşılması rahattır. Çok çeşitli uygulamalar için kapsamlı kütüphane desteği sunar.
Dosya sistemleri için os, shutil ve pathlib gibi araçlar vardır. Veri işleme için pandas ve openpyxl bulunur. Görev zamanlama için schedule, time ve threading yardımcı olabilir.
Sıkıcı manuel görevleri otomatikleştirmek, Python için kullanışlı bir kullanım alanıdır. O raporu neden her ay elle hazırlayıp e-postayla gönderesiniz? Bunu sizin yerinize yapacak bir Python betiği yazın.
Python Otomasyonunun Temelleri
Python otomasyon için cazip bir seçenektir. Sadelik ve kapsamlı kütüphane desteği, geliştirici olmayanlar için bile erişilebilir kılar.
Python temellerini tazelemek için şu DataCamp kaynaklarına göz atın.
Faydalar
Otomasyon için birkaç önemli fayda sunar. Düşük giriş engeli, kullanıcıların yalnızca birkaç satır kodla karmaşık görevleri tamamlamasını sağlar. Hızlı geliştirme, basitleştirilmiş hata ayıklama ve ölçeklenebilirlik; bulut entegrasyonları, API'ler ve mikro hizmetler dâhil gelişmiş otomasyon iş akışları için uygundur.
Yaygın kullanım alanları
Sık otomatikleştirilen görevlerden biri dosya manipülasyonudur. Betikler, adlandırma kurallarına, dosya türlerine veya zaman damgalarına göre dosyaları yeniden adlandırır, taşır veya düzenler. Otomasyon sıklıkla web verilerini indirmek, temizlemek, işlemek ve daha sonra kullanmak üzere kaydetmek için kullanılır.
Bir diğer rutin uygulama, özet raporlar oluşturup bunları e-postayla dağıtmaktır. Betikler, yeni veri ekleyerek, formüller hesaplayarak, biçimlendirme uygulayarak veya grafik ve görselleştirmeler üreterek elektronik tabloları günceller. Bir başka yaygın kullanım alanı da web uygulamalarıyla etkileşime geçmektir. Buna veri alma, formları gönderme ve hizmetleri entegre etme dahildir.
Bir örneğe bakalım. Aşağıdaki betik, os ve shutil kullanarak PDF dosyalarının düzenlenmesini otomatikleştirir; bu da net ve yaygın bir dosya yönetimi senaryosunu gösterir.
import os
import shutil
source_folder = 'Downloads'
destination_folder = 'Documents/PDFs'
# Move all PDF files from Downloads to PDFs folder
for filename in os.listdir(source_folder):
if filename.endswith('.pdf'):
shutil.move(
os.path.join(source_folder, filename),
os.path.join(destination_folder, filename)
)
Python Otomasyonunun Çekirdek Kavramları
Python otomasyonunda bilmeniz gereken birkaç temel vardır:
Yorumlanan dil
Python betikleri nasıl çalıştırır? Python yorumlanan bir dildir. Bu, kodu çalışma zamanında satır satır yürüttüğü anlamına gelir. Programın tamamını önceden makine koduna derlemez.
Bu özellik, derleme gereksinimini ortadan kaldırarak hızlı test ve geliştirme olanağı sağlar. Bunun karşılığında, çalıştırma derlenen dillere göre daha yavaş olabilir.
Betikler genellikle .py uzantısına sahiptir ve python my_script.py gibi bir komutla komut satırından çalıştırılır. Python betiklerini çalıştırma hakkında daha fazla bilgi için Python Betikleri Nasıl Çalıştırılır eğitimimize bakın.
Betikler, Windows'taki Task Scheduler veya Linux ve macOS'ta cron gibi sistem zamanlayıcıları kullanılarak otomatik çalışacak şekilde zamanlanabilir. schedule veya APScheduler gibi Python kütüphaneleri programatik kontrol sağlar.
Girdi-işleme-çıktı modeli
Otomasyon betikleri basit bir girdi-işleme-çıktı modelini kullanır. Bu kalıp programlama iş akışlarında yaygındır. Girdi aşamasında betik, yerel dosyalar, veritabanları, web API'leri ve kullanıcı girdisi gibi çeşitli kaynaklardan veri toplar.
İşleme aşamasında betik veriyi dönüştürür, filtreler ve analiz eder. Çıktı aşamasında betik sonuçları çeşitli yöntemlerle sunar. Bir dosyaya yazabilir, e-posta gönderebilir, sonuçları bir API'ye iletebilir veya bir veritabanına kaydedebilir. Bu akış, otomasyon betiklerini öngörülebilir ve yeniden kullanılabilir kılar. Ayrıca onları daha büyük sistemlere entegre etmek de kolaydır.
Python ile zamanlama
Python, görev zamanlamasını otomatikleştirmek için schedule ve APScheduler gibi kütüphaneler sağlar:
|
Özellik |
schedule |
APScheduler |
|
Karmaşıklık |
Hafif, süreç içi |
Gelişmiş, kalıcılık destekli |
|
Zamanlama Yetenekleri |
Sabit aralıklar |
Cron ifadeleri, aralıklar, kesin zamanlama |
|
Kalıcılık |
Kalıcı değil (yalnızca bellek) |
Veritabanları aracılığıyla kalıcı depolama |
|
Zamanlayıcı türleri |
Tek zamanlayıcı |
Birden çok arka uç ( |
Basit, yinelenen görevler için schedule; gelişmiş, üretim düzeyinde zamanlama ihtiyaçları için APScheduler tercih edin.
Düzenli aralıklarla tekrarlanan bir raporlama görevinin nasıl yürütüldüğünü göstermek için schedule ile görev zamanlamaya bir örnek bakalım.
import schedule
import time
def job():
print("Generating monthly report...")
# Schedule the job every month
schedule.every(30).days.at("08:00").do(job)
while True:
schedule.run_pending()
time.sleep(60)
Hata yönetimi
Python, try/except bloklarıyla yerleşik hata yönetimi desteği sunar. Bu mekanizma, betiklerin çökmeden hataları öngörüp yönetmesine olanak tanır. Betik, belirli özel durumları yakalayarak sorunları daha sonra gözden geçirmek üzere kaydeder. Ayrıca hata mesajları sağlar ve çalışmayı sürdürmek için zarif biçimde toparlanır.
Otomasyon için Çekirdek Python Kütüphaneleri
GUI otomasyonu, web otomasyonu ve veri işleme için çekirdek Python kütüphaneleri mevcuttur.
pyautogui ile GUI otomasyonu
pyautogui kütüphanesi GUI görevlerini otomatikleştirmeye yardımcı olur. Bunu, fareyi hareket ettirme, tıklama, yazma ve ekran öğelerini tanıma gibi insan eylemlerini taklit ederek yapar. Arayüzün tutarlı kaldığı hafif, görsel otomasyon görevleri için en uygunudur. Yalnızca piksellere dayanıp bağlamsal farkındalığı olmadığından dinamik veya karmaşık arayüzler için uygun değildir.
PyAutoGUI, geniş bir masaüstü otomasyon senaryosunu destekler. Bilgisayarınızda tekrarlayan görevleri yerine getirebilir. Excel gibi uygulamalarda tıklamalar, tuş vuruşları ve gezinmeyi simüle eder. Geliştiriciler, kullanıcı davranışını taklit ederek masaüstü arayüz işlevselliğini doğrulamak için sıklıkla kullanır. Oyunlarda, makrolar aracılığıyla basit oyun içi eylemleri otomatikleştirebilir. Ancak oyuncular dikkatli olmalıdır. Birçok oyun otomasyona izin vermez ve kullanan hesapları cezalandırabilir.
Web otomasyonu: Selenium ve Playwright
Selenium, olgunluğu, geniş topluluk desteği ve tarayıcılar ile diller arası uyumluluğuyla bilinen, web tarayıcılarını otomatikleştirmek için yaygın olarak kullanılan bir araçtır. JUnit, TestNG ve NUnit gibi yerleşik test çerçeveleriyle iyi entegre olur; bu da onu eski sistemler ve karmaşık kurumsal ortamlar için ideal kılar. Ancak, Selenium betikleri genellikle açık beklemeler ve ek yapılandırmalar gerektirir; özellikle dinamik, JavaScript ağırlıklı uygulamalarda bakım maliyeti daha yüksektir.
Öte yandan Playwright, otomatik bekleme, yerel çok sekme yönetimi ve büyük tarayıcılar (WebKit dâhil) arasında birleşik API'ler sunan modern bir otomasyon kütüphanesidir. React, Vue ve Angular gibi dinamik ön uç çerçevelerini test etmede öne çıkar ve CI/CD boru hatlarında hızlı, güvenilir uçtan uca testler için çok uygundur.
Python'da test hakkında daha fazla bilgi için lütfen şu kursa bakın: Python'da Teste Giriş. Birim testi ayrıntıları için Python'da Birim Testi eğitimine başvurun.
pandas ve openpyxl ile veri işleme
pandas ve openpyxl Python kütüphaneleri, elektronik tablo otomasyonu için güçlü araçlardır.
pandas, yapılandırılmış veri manipülasyonunda üstünlük sağlar. CSV, Excel veya SQL verilerini okuyup yazabilir; veri kümelerini temizleyip dönüştürebilir; istatistikleri toplayabilir ve veri kümelerini birleştirebilir. Yaygın otomasyon kullanım örnekleri arasında otomatik Excel veya CSV raporları oluşturma, büyük veri setlerini temizleme ve panolar ya da arşivleme için verileri hazırlama yer alır.
openpyxl özel olarak Excel dosyalarını (.xlsx) ele alır. Elektronik tabloları okuyabilir, yazabilir ve biçimlendirebilir; koşullu biçimlendirme yapabilir, formüller ekleyebilir ve grafikler oluşturabilir. Tipik kullanım alanları arasında rapor üretimini otomatikleştirme ve elektronik tablo şablonlarını güncelleme bulunur.
Yaygın bir iş akışı, analiz için pandas'ı, sunum için openpyxl'i birleştirir. Büyük veri setlerinde genellikle pandas daha hızlıdır. Ayrıca, openpyxl'in yalnızca Excel 2007+ (.xlsx) biçimini desteklediğini ve formülleri değerlendirmediğini—bunu Excel'in dosya açıldığında yaptığını—unutmayın.
Aşağıdaki örnek, pandas kullanarak rutin bir raporlama görevini otomatikleştirmeyi gösterir. Bir CSV dosyasından satış verilerini okur, mükerrer kayıtları kaldırır, eksik değerleri doldurur ve ardından temizlenmiş veriyi, dağıtıma veya ileri analizlere hazır şekilde doğrudan bir Excel elektronik tablosuna aktarır.
import pandas as pd
# Load data from a CSV file
df = pd.read_csv('monthly_sales.csv')
# Data cleaning: remove duplicates and handle missing values
df_cleaned = df.drop_duplicates().fillna(0)
# Save the cleaned dataset as an Excel report
df_cleaned.to_excel('cleaned_sales_report.xlsx', index=False)
Bu iş akışı kolayca zamanlanabilir (ör. cron kullanarak) ve daha da genişletilebilir. Örneğin, aylık raporları otomatik olarak göndermek için e-posta otomasyonuyla entegre edilebilir.
Pratik Python Otomasyon Uygulamaları
Python, web kazımadan e-posta otomasyonuna ve ötesine kadar gerçek dünya görevlerini otomatikleştirmek için yaygın olarak kullanılır.
Web kazıma
Popüler bir uygulama web kazımadır. Resmî ve yapılandırılmış erişim mevcutsa, API'ler muhtemelen en iyi seçenektir. Değilse, Beautiful Soup veya Scrapy gibi bir kütüphane kullanılarak veriler doğrudan HTML'den çıkarılabilir.
Beautiful Soup, basit ve stabil HTML'ye sahip sitelerden veri kazımak için idealdir. Öğrenmesi ve kullanması nispeten kolaydır. Ancak sayfa yapısının ayrıntılı biçimde anlaşılmasını gerektirir. Site düzeni değişirse, kazıyıcı kodu kolayca bozulabilir.
Scrapy daha karmaşık kullanım senaryoları için uygundur. Eşzamansız yürütme desteği, birden çok sayfası olan büyük web sitelerini taramak için yeterince hızlı ve verimli olmasını sağlar. Çıktı JSON, CSV veya veritabanlarına aktarılabilir.
İşte Beautiful Soup ve requests kullanarak basit bir web sayfasından yapılandırılmış içerik çıkarmayı gösteren basit bir örnek:
import requests
from bs4 import BeautifulSoup
# Fetch the webpage
response = requests.get('https://example.com')
soup = BeautifulSoup(response.text, 'html.parser')
# Extract all headlines
headlines = soup.find_all('h2')
for headline in headlines:
print(headline.text.strip())
Python ve web kazıma hakkında daha fazla bilgi için şu kaynaklara göz atın.
- Python ile Web Kazıma kursu
- Python (ve Beautiful Soup) ile Web Kazıma eğitimi
- Python'da Web Kazıma ve NLP eğitimi
- Python ile Amazon Nasıl Kazınır eğitimi
E-posta otomasyonu
Python'un yerleşik smtplib modülü, betiklerin SMTP kullanarak programatik olarak e-posta göndermesine olanak tanır. Genellikle daha büyük bir iş akışı içinde iletişimi otomatikleştirmek için kullanılır.
Tipik kullanım örnekleri arasında zamanlanmış raporları göndermek, otomatik işlerden hata veya sistem uyarıları iletmek, yöneticileri veya kullanıcıları olaylar ya da güncellemeler hakkında bilgilendirmek ve çıktı dosyalarını eklemek bulunur.
İşte ekli dosyayla e-posta göndermek için örnek bir betik.
import smtplib
from email.message import EmailMessage
# Connect to email provider's SMTP server
# e.g., gmail uses smtp.gmail.com on port 587
server = smtplib.SMTP("smtp.gmail.com", 587)
server.starttls()
server.login("your_email@gmail.com", "your_app_password")
# Compose email
msg = EmailMessage()
msg["Subject"] = "Automation Alert"
msg["From"] = "your_email@gmail.com"
msg["To"] = "recipient@example.com"
msg.set_content("This is an automated message.")
# Attach files
with open("report.pdf", "rb") as f:
msg.add_attachment(f.read(), maintype="application", subtype="pdf", filename="report.pdf")
# Send the email
server.send_message(msg)
server.quit()
Gelişmiş Otomasyon Mimarileri
Python, otomatikleştirilmiş görevlerin zamanlanmasını ve koordinasyonunu yönetmek için güçlü araçlar sunar. APScheduler gibi kütüphaneler ve Apache Airflow gibi platformlar esnek, sağlam ve ölçeklenebilir çözümler sağlar.
APScheduler
Advanced Python Scheduler (APScheduler), zamanlama için gelişmiş seçenekler sunan, üretime hazır bir kütüphanedir. Yinelenen iş akışlarını otomatikleştirmek için idealdir.
APScheduler, görevlerin belirli tarih-saatlerde, sabit aralıklarda veya cron tarzı ifadelerle (her Pazartesi sabah 8'de) çalışmasına olanak tanır.
Veriler yeniden başlatmalar arasında kalıcı olsun diye veritabanları aracılığıyla kalıcı iş depolamayı destekler. Farklı zamanlayıcı türleri farklı kullanım durumlarını destekler: engellemesiz görevler için BackgroundScheduler, asyncio uygulamaları için AsyncIOScheduler ve komut satırı betikleri için BlockingScheduler. İş yürütme ve hatalar daha sonra hata ayıklama veya izleme için günlüğe kaydedilebilir.
Yaygın kullanım örnekleri arasında rapor üretimi, zamanlanmış e-postaların gönderimi, sağlık kontrollerinin çalıştırılması, ETL işleri ve veritabanı bakımı yer alır.
Apache Airflow
Apache Airflow, iş akışlarını otomatikleştiren, zamanlayan, yöneten ve izleyen açık kaynaklı kurumsal bir platformdur. Kuruluşların ETL, ML ve veri mühendisliği ile rapor üretimini orkestre etmek için yaygın olarak kullandığı sağlam, şeffaf ve tekrarlanabilir bir sistemdir.
Apache Airflow kullanmak için görevleri ve çalışma sırasını tanımlayan bir iş akışını Python ile yazın ve iş akışının ne zaman başlaması gerektiğine ilişkin zamanlamayı belirleyin. Airflow her görevi doğru zamanda yürütür, iş akışını izler ve bir sorun olursa uyarı gönderir. Web panosu, iş akışlarını izlemenize ve günlükleri kontrol etmenize olanak tanır.
Python Otomasyonunda Yükselen Trendler
Python, otomasyondaki en son gelişmelerde merkezi bir rol oynar. Yapay zekâ odaklı karar verme ve sunucusuz bulut bilişim gibi trendler, otomasyonun yeteneklerini genişletir.
Makine öğrenimi (ML), otomasyon sistemlerinin akıllı, veriye dayalı kararlar almasını sağlar. Bu entegrasyon, geleneksel kural tabanlı mantığa kıyasla daha fazla esneklik ve uyarlanabilirlik sunar.
ML, geçmiş verileri analiz ederek olayları öngörür. Bu olaylar otomasyon yeteneklerini tetikler. Örneğin, bir sistem ekipman arızalarını tahmin edip sorunlar ortaya çıkmadan önce bakım planlayabilir. ML ayrıca yanıtları önerebilir. Örneğin, bir sahtekârlık tespit sistemi, yalnızca eşiklere değil veride belirlenen davranışa dayalı olarak şüpheli kredi kartı işlemlerini işaretleyebilir. LLM'ler verilerden rapor taslakları üretir. Bu, manuel çabayı azaltır ve içerik üretimini hızlandırır.
Yapay zekâ ve otomasyon hakkında daha fazla bilgi için aşağıdakilere bakın.
- Yapay Zekâ Uygulamaları Geliştirme beceri yolu
- Python'da Görevleri Otomatikleştirmek için LangChain Ajanları Oluşturma eğitimi
- DeepChecks Eğitimi: Makine Öğrenimi Testini Otomatikleştirme eğitimi
Bulut-yerel otomasyon
Sunucusuz bilişimde, bulut sağlayıcıları altyapıyı yönetir; böylece geliştiriciler mantığa ve otomasyon iş akışlarına odaklanabilir.
"Sunucusuz" terimi, geliştiricilerin sunucuları yönetmesi veya tedarik etmesi gerekmediğine işaret eder; elbette sunucu olmadığı anlamına gelmez. AWS Lambda, Google Cloud Functions ve Azure Functions gibi hizmetler, Python betiklerinin olaylara yanıt olarak çalışmasına izin verir.
Bu yaklaşım birkaç fayda sunar. Sanal makineler veya konteynerler için kullanıcı sorumluluğunu ortadan kaldırır. Sunucusuz işlevler, çevrimiçi perakende etkinlikleri gibi yoğun trafik dönemlerinde daha fazla kaynak dağıtarak talebe göre otomatik olarak ölçeklenir. Model, yalnızca kullanılan işlem süresi için ödeme yapıldığı için maliyet açısından verimlidir.
Güvenilir Otomasyon için En İyi Uygulamalar
Python ile süreçleri otomatikleştirirken işinize yarayacak bazı ipuçları:
Hata yönetimi teknikleri
Etkili hata yönetimi, otomasyon betiklerinin zarif biçimde toparlanmasını sağlar. Özel durumları yönetmek için şu en iyi uygulamaları izleyin.
- Belirli try/except blokları kullanın. Beklediğiniz özel durumları yakalayın; tüm hataları genelleyerek yakalamayın. Örneğin, genel bir hata yakalayıcı yerine sıfıra bölme hatalarını ele almak için özel bir blok yazın.
finallykullanın.finallybloğu temizlik işlemlerini garanti eder. Değişkenler sıfırlanabilir, kaynaklar serbest bırakılabilir.- Hataları günlüğe kaydedin. Hatalar yalnızca yazdırılmamalı, gelecekteki izleme için kaydedilmelidir.
- Varsayılan davranışlar. Kritik olmayan hatalar için makul varsayılanlar veya geri dönüşler bulundurun.
- Hızlı ve net başarısızlık. Hata telafi edilemezse, net bir mesajla özel durum fırlatın veya erken çıkın.
Yapılandırma yönetimi
Ortam değişkenlerini kullanmak en iyi uygulamadır; çünkü yapılandırmayı koddan ayırır. Güvenliği artırmak için parolalar, veritabanı kimlik bilgileri ve API anahtarları gibi hassas verileri, özellikle sürüm kontrolü kullanırken, kaynak kodun dışında tutun.
Ortam değişkenleri, geliştirme, hazırlık ve üretim gibi farklı ortamların aynı kod tabanını farklı ayarlarla kullanmasına olanak tanır. Bu yaklaşım, bulut ortamlarında dağıtımı basitleştirir ve bakımını kolaylaştırır; çünkü yapılandırma değişiklikleri kodun kendisinde değişiklik gerektirmez.
Performans optimizasyonu
Otomasyon betiklerini optimize etmek, programların daha hızlı çalışmasını, daha az kaynak kullanmasını ve daha verimli ölçeklenmesini sağlar. Bu, özellikle büyük veri setleri, zamana duyarlı süreçler veya sık çalıştırılan görevlerde önemlidir.
Performans optimizasyonu için bazı temel stratejiler:
- Yinelenen işi en aza indirin. Değerleri yeniden hesaplamaktan veya aynı veriyi birden çok kez sorgulamaktan kaçının. Uygun olduğunda memoization kullanın veya ara sonuçları saklayın.
- Verimli kütüphaneler kullanın. Ek yükü en aza indiren hafif, amaca yönelik kütüphaneleri seçin. Örneğin, manuel döngüler yerine
pandaskullanın. - Verimli veri yapıları kullanın. Benzer şekilde, ek yükü en aza indiren veri yapıları kullanın. Örneğin, daha hızlı aramalar için listeler yerine set veya dict kullanın.
- Sonuçları önbelleğe alın. Maliyetli veya sık yapılan işlemlerin sonuçlarını bellek içi depolar ya da harici önbelleklerle saklayın.
- Toplu işlem. Ek yükü azaltmak için dosya yazmalarını, veritabanı eklemelerini toplu işlemler hâline getirin.
- Paralel/eşzamanlı yürütme. Dosya işleme veya veri dönüşümü gibi paralelleştirilebilir görevler için threading veya multiprocessing kullanın.
- Profilleyin ve kıyaslayın. Darboğazları belirlemek ve optimize edilmesi gereken kod bölümlerini saptamak için
cProfile,line_profilerveyatimeitgibi araçları kullanın.
Sonuç
Python, otomasyon için güçlü ve çok yönlü bir dildir. İster dosya yeniden adlandırma gibi basit görevleri otomatikleştirin ister Airflow gibi araçlarla karmaşık iş akışları kurun; Python, güvenilir otomasyon için gereken araçları sunar. Bu rehberdeki ipuçlarını kullanarak tekrarlayan görevleri otomatikleştirebilirsiniz. Python öğrenme yolculuğunuz sürüyorsa, öğrenmenizi hızlandırmak için Python Programlama Temelleri beceri yolumuza mutlaka göz atın.
Python Otomasyonu SSS
Neden otomasyon için Python kullanılmalı?
Python'un basit sözdizimi, zengin kütüphane ekosistemi ve çapraz platform uyumluluğu onu geliştiriciler ve geliştirici olmayanlar için cazip bir seçim hâline getirir.
Python ile Excel görevlerini otomatikleştirebilir miyim?
Evet. Veri işleme için pandas kütüphanesini ve Excel dosyalarını programatik olarak oluşturmak, düzenlemek ve biçimlendirmek için `openpyxl` kullanın.
Web kazıma yasal mı?
Web kazıma, özellikle veriler herkese açık olduğunda çoğu durumda yasaldır; ancak her zaman sitenin kullanım koşullarını kontrol edin. Yapılandırılmış veriler için, mevcutsa bir API kullanmayı düşünün.
Yapılandırma ayarlarını güvenli şekilde nasıl saklarım?
API anahtarları ve veritabanı kimlik bilgileri gibi yapılandırmaları yönetmek için ortam değişkenlerini kullanın; bunları kaynak koddan ayrı tutun.

Mark Pedigo, PhD, sağlık verisi bilimi, programlama ve eğitim alanlarında uzmanlığa sahip seçkin bir veri bilimcisidir. Matematikte doktora, Bilgisayar Biliminde lisans ve Yapay Zekâ alanında Profesyonel Sertifika sahibi olan Mark, teknik bilgisini pratik problem çözme becerileriyle birleştirir. Kariyeri, dolandırıcılık tespiti, bebek ölümü tahmini ve finansal öngörü gibi rollerin yanı sıra NASA’nın maliyet tahmin yazılımına katkıları içerir. Bir eğitimci olarak DataCamp ve St. Louis’teki Washington University’de ders vermiş ve kıdemsiz programcılara mentorluk yapmıştır. Boş zamanlarında Mark, eşi Mandy ve köpeği Harley ile Minnesota’nın doğasında vakit geçirmeyi ve caz piyano çalmayı sever.