• 05-06-2022, 21:47:55
    #55
    Dogukan adlı üyeden alıntı: mesajı görüntüle
    Yazılım mimarisi tamamen mühendislik gerektiren bir konudur. Bahsettiğim mühendislik üniversitelerde C öğrendin, java öğrendin hadi sen artık mühendissin olayı değil. Bir çok üniversite bu hatanın farkına vardı ancak halen devam ettirenler de yok değil. Mesela benim mezun olduğum zaman aynı üniversitede durum anlattığım şekildeyken şu an kardeşim aynı üniversitede okuyor, bu hatanın farkına varmışlar ve bu yönde gençleri yetiştiriyorlar.

    Siz de biliyorsunuz yazılım geliştirilirken belli uluslararası standartlar, metodlar var ve bunun yanı sıra gelişen teknolojilerde var.

    Mühendis; sorunu belirler, uygun çözümleri üretir, yazılımın mimarisini oluşturur, algoritma ve akış diyagramını oluşturur, kodlama yapısını dizayn eder, kullanılacak güncel teknolojileri ve donanımları belirler, algoritmaların analizini gerçekleştirir ve kodlanmasında da yer alır.

    Basit bir örnekle; Wordpress, vBulletin mimarileri ile forumda satılan php'de kodlanmış bir emlak scriptinin mimarisi aynı olmuyor. Forumda satılan bir başka scripte rastladım, bir tanıdığım almış, yardıma ihtiyacı oldu. Mimarisi tamamen yanlış oluşturulmuş. Bu kadar satan bir scriptin bu kadar amatörce kodlanmasına hayret ettim. OOP kodlamaya çalışırken spagettiye dönmüş kodlar, anlamsızca dizinlere yerleştirilmiş dosyalar, hatta özelleştirilebilir olması gereken fonksiyonların ioncube ile şifrelenmiş olması, yarısı Türkçe yarısı İngilizce isimlendirmeler, dökümantasyonu zaten kim kaybetmiş... Bir yapı var ama aklı başında kimse o yapıya girip yaşamak istemez.

    Bahsettiğim mühendislik burada devreye giriyor. Eğer başarılı bir mühendislik sergilenmişse; kodların belli bir düzeni olmalı ve geliştirilebilmeye açık olmalı.

    Yazılım ile mühendislik alakalı ancak yeni mezun mühendislerin çoğu bunu kavrayabilmiş değil. Tabi bu işin donanım kısmı var ağ kısmı var. Onlara değinmiyorum.

    --

    Yazılımcıların neden ucuza çalıştığı da burada ortaya çıkıyor. Sadece yazılımcı olarak değerlendiriyorum. Senior seviyesindeki bir yazılımcı düşük fiyata çalışıyorsa salaktır. Aksi halde birkaç yıllık deneyimi olan, junior seviyesinde birisi veya d*landırıcıdır.
    Ben 1995 doğumluyum, kendimi bildim bileli evimde internet ve bilgisayar var.

    2006-2007 yıllarında kendim php ile yazdığım sistemlerle rapidshare premium hesaplar satıyordum (form mantığı ile çalışan.

    2007-2008 yılında PVP Server kurulumu yaptım, bu yıl linux tabanlı sunucularla ilk çalışmaya başladığım yıllardı.

    2008 yılından günümüze kadar; PHP ve C++ ile projeler yaptım, bu alanda en çok öne çıkan projelerim yıllar önce yapmayı bıraktığım r**tkitler ve b*tnerlerdi.

    Bugün yeni bir dil çıksa, sadece syntax bakarak bile sıfırdan orta düzey projeler geliştirebilecek bilgi ve birikime sahibim.

    Ben mühendislik okumadım hatta 2011 yılından beri bu sektörden hatırı sayılacak paralar kazandım ve farklı alanlara yatırım yaptım, bu arada okulu ihmal ettim ve hala açık öğretimde üni son sınıf öğrencisiyim.

    Matematiğim iyi değildir ancak kritik matematik hesaplamaları yaptığım projelerim oldu.

    Günümüzde kullandığımız bir çok yazılım dilinin yaratıcısı bilgisayar mühendisi ile alakasız bölümler okumuş, sizinde bildiğiniz gibi okulu yarıda bırakıp çok başarılı projelere imza atan insanlar var.

    Mühendislik ve Matematik farklı şeylerdir, yazılımın mühendislikle hiç bir alakası yoktur, algoritma ve yabancı dil öğrenmekten farksız bence yazılım.

    Bir oyun üretirken elbette gerçek dünya ile alakalıysa fizik konusunda yardıma ihtiyaç duyacağız, bu durumda fizikçi olmadan yazılımcı olmaz diye bir argüman türeyecektir.

    Veya dilleri çeviren bir uygulama yapacaksak ingilizce bilmeyen yazılmcı olamaz illa ingilizce öğretmeni/dil bilimcisi mi olmalı diyeceğiz?

    Bence bu tarz şeyleri bir kalıba sokmaya çalışmaktan vazgeçin.
  • 06-06-2022, 00:48:48
    #56
    Teom4n adlı üyeden alıntı: mesajı görüntüle
    Ben 1995 doğumluyum, kendimi bildim bileli evimde internet ve bilgisayar var.

    2006-2007 yıllarında kendim php ile yazdığım sistemlerle rapidshare premium hesaplar satıyordum (form mantığı ile çalışan.

    2007-2008 yılında PVP Server kurulumu yaptım, bu yıl linux tabanlı sunucularla ilk çalışmaya başladığım yıllardı.

    2008 yılından günümüze kadar; PHP ve C++ ile projeler yaptım, bu alanda en çok öne çıkan projelerim yıllar önce yapmayı bıraktığım r**tkitler ve b*tnerlerdi.

    Bugün yeni bir dil çıksa, sadece syntax bakarak bile sıfırdan orta düzey projeler geliştirebilecek bilgi ve birikime sahibim.

    Ben mühendislik okumadım hatta 2011 yılından beri bu sektörden hatırı sayılacak paralar kazandım ve farklı alanlara yatırım yaptım, bu arada okulu ihmal ettim ve hala açık öğretimde üni son sınıf öğrencisiyim.

    Matematiğim iyi değildir ancak kritik matematik hesaplamaları yaptığım projelerim oldu.

    Günümüzde kullandığımız bir çok yazılım dilinin yaratıcısı bilgisayar mühendisi ile alakasız bölümler okumuş, sizinde bildiğiniz gibi okulu yarıda bırakıp çok başarılı projelere imza atan insanlar var.

    Mühendislik ve Matematik farklı şeylerdir, yazılımın mühendislikle hiç bir alakası yoktur, algoritma ve yabancı dil öğrenmekten farksız bence yazılım.

    Bir oyun üretirken elbette gerçek dünya ile alakalıysa fizik konusunda yardıma ihtiyaç duyacağız, bu durumda fizikçi olmadan yazılımcı olmaz diye bir argüman türeyecektir.

    Veya dilleri çeviren bir uygulama yapacaksak ingilizce bilmeyen yazılmcı olamaz illa ingilizce öğretmeni/dil bilimcisi mi olmalı diyeceğiz?

    Bence bu tarz şeyleri bir kalıba sokmaya çalışmaktan vazgeçin.
    Bu yazım uzun olacak. Çünkü eksik bir noktayı anlatmak istemiyorum.

    Aşağı yukarı aynı sayılırız. Aralık 91 doğumluyum. 99-2000 yılında internet kafelere gitmeye başladım. Benim ilgimi çeken oyunlardan ziyade siber güvenlik, kodlama ve irc sunucularıydı. Orta birinci sınıfa giderken başlangıç seviye linux sunucu yönetebilecek durumdaydım, irc shell satmaya başladım. 15 liraya alıyor 25 liraya satıyordum. Siber güvenlik ile birlikte programlamaya da giriş yapmış oldum.

    Knightonline oynamaya başladım. Sonraları çok bilinmeyen Knightonline'ın ilk Türkiye private sunucusu açılmıştı 1 hafta kadar açık kaldı zaten ardından kapandı. O sunucuda gamemaster olmuştum. Ardından tersine mühendislik merakım başladı. Koxp.net'in ipini çeken isim oldum. Ardıdan Alper (belki forumdadır bilmiyorum) ko-cuce.com'u açmıştı, orada yöneticilik yaptım. Çinlilerin peşinden 2 yıl koştum, Türkiye'deki ilk KnightOnline 1453 sunucusunu açtım, bugları fixledim. Tabi bilgisayarla tanıştığım süreçten itibaren ASM'den Python'a, Ruby'den Perl'e bir çok programlama dilini çeşitli projelerde kullandım.

    Bunlar lise sonuna kadar olan kısım. Uzatmak gereksiz.

    --

    Ailem okumamdan tarafaydı. Onlara göre bilgisayar başında geçirdiğim vakit ölü vakitti. Lise 1'de masaüstü bilgisayarım oldu, çok bilgisayar başında olduğum için babam bilgisayarın power kablosunu aldı. Ben harçlıklarımı biriktirip bir power kablosu daha aldım. Öyle yaptığımı görünce bu defa bilgisayarın kasasını söktü götürdü. Okulda yemek yemedim o para ile okul çıkışı internet kafeye gittim orada işime devam ettim.

    Ben asla mühendis olmak istemedim. Eğitim hayatım ailemin zorlamasından ibaretti. (Şimdi sorsan kötü mü oldu? Hayır derim)

    İlk önce önlisans'ta bilgisayar programcılığı okudum. Bana herhangi bir katkısı olmadı. Bildiğim şeyleri tekrarlamak ve (bana göre) saçma ödevlerden ibaretti. Mevcut eğitim düzeninden ötürü hayatımın 2 yılını harcamak zorunda kaldım. Ben bu ödevi yıllar önce tek başıma zaten ödemiştim.

    Sonra DGS ile lisansa geçtim. Bilgisayar Mühendisliği okumaya başladım. Babam İTÜ'den mezun maden mühendisi ama hayatı boyunca hiç mesleğini yapmadı, hep esnaflık yaptı. Babama "ben boşuna gidiyorum, birşey öğrendiğim yok, hocalar bile sen zaten konuya hakimsin, sınav zamanı gelsen yeterli diyorlar" diyordum. Algoritma analizi, yazılım kalite standartları gibi dersler vardı ama bana saçma gelirdi. Waterfall modelinden banane diyordum. Babam "hocaların öyle diyorsa doğrudur ama orada başka birşeyi öğreneceksin, bir olaya mühendis nasıl yaklaşır, mühendis zekası nedir onun farkına varacaksın" derdi. O da saçma gelmişti. Ben o zamana kadar 10 yılın üzerinde bilgisayar ile uğraşmışım bana ne kazandırabilir ki? Babamdan bir söz almıştım; mezun olduktan sonra 2 yıl boyunca bana dokunmayacaktı. Bu gazla okulu bitirdim. Tek derdim kimse birşey demeden iki yılımı bilgisayar başında geçirebilmek.

    Mezun oldum, çok güzel rakamlar kazandım. Evimi, arabamı aldım evlendim sözümü, nişanımı, düğünümü herşeyi kendim yaptım.

    O zamana kadar geliştirdiğim sistemler son kullanıcıya doğrudan hitap eden projeler olmadığı için modüler yapıda hazırlıyordum, benim işimi görüyordu. Buraya kadar herşey güzel.

    --

    Şu an elimdeki projeler o kadar çoğaldı ki yetişemiyorum. İmzamdaki projem Boostapp. Şu an Boostapp'in kaynak kodunu birisinin önüne koysam yapısını benden başka kimse en az 1 ayını vermeden anlayamaz. Bir özellik eklemesini istesem bütün yapıyı değiştirmesi gerekebilir. Üzerine yama yapmaya başlasam bir süre sonra arap saçına dönecek bir süre sonra ben de anlayamayacağım. Bu yüzden 2. büyük sürüme geçemiyorum. Babamın bahsettiği görüş, zekanın tam olarak farkına burada vardım. Çünkü ben mimarisini standartlara uygun şekilde, mühendisliğini iyi şekilde yapmış olsaydım istediğim düzenlemeleri, eklemeleri çalışanıma yaptırabilecektim.

    Mühendislik ile matematik, programlama tabi ki farklı şeyler. Mühendis; matematik hakkında da bilgi sahibi olmalı, yazılımı hakkında da sosyoloji konusunda da. İhtiyacı olduğu alanda öğrenmeye de açık olmalı. Çünkü mühendisliğin amacı dizayn etmektir.
    Tabi insanlar bunu üniversitenin X bölümünden "mühendis" ünvanını almadan da gerçekleştirebilir.

    Mesela; geçtiğimiz günlerde Amerika'da liseye giden bir çocuğun github'da paylaştığı bir projeye denk geldim. Tamamen profesyonel şekilde geliştirmiş. Harika bir mimari oluşturmuş. Yani bahsettiğim mühendisliği gerçekleştirmiş. Bu çocuk lise öğrencisi ama yaptığı iş mühendislik.

    Mühendislik konusunda batırmış bir projeden bahsedeyim. Instagram. Yapılan requestlerden arkaplanda çalışan kodu tahmin etmek hiç zor değil.

    Uzun sözün kısası mühendislik ile mühendis ünvanı farklı şeyler. Günümüzdeki gerçek din hocaları, sahte din hocaları, bir de bilgi sahibi olan müminler gibi düşünebiliriz. Biri okumuştur ünvan sahibi olmuştur, dinimiz ilim Çin'de de olsa git onu al der gerçek hoca olur, diğeri bunu doğrular bilgi sahibi mümin olur, diğeri "muska yazdım kurşun geçirmez oldun" der şaklaban olur. İkisine de hoca denir birisi sahtedir, diğeri ise bilgisi gerçek hocadan belki daha iyidir ama ünvanı yoktur.

    Benim de "sahte din hocalarına" tahammülüm olmadığı için kendi işimi yapıyorum. Malesef sektörde çok fazlalar.

    Son olarak yukarıda bahsettiğim olay kesinlikle sadece kod yazmak ile ilgili değil bütün mimariyi oluşturmak ile ilgili.
  • 10-06-2022, 11:36:47
    #57
    genç yazılımcılar artınca piyasa fiyatları haliyle düştü işi bilen tecrübeliler diğerlerinin yanında fahiş fiyat ister gibi oldu