Bilgisayar Muhendisligi Sanati

Ben sizden biriyim.

  • Mahmut Bulut
  • ESOGU Bilgisayar Muhendisligi 2009 girisliyim
  • Data Processing Engineer
  • Rust Programlama Dili gelistiricisi

Yolculugumuz Basliyor...

2008-2009 zamanlari

Ilk Bilisim Gunlerim 2010

Bilisim Gunleri 2011 (Bu sefer biz duzenliyoruz)

Bir bilgisayar muhendisinde olmasi gereken bazi ozellikleri farkettim.

1. Gozlem yetenegi

Ortami anlamaya calisiyorum. Ve soyle bir ortam goruyorum. (2010)

  • Kendi firmasini oven ve yaptigi isler teknik bakimdan onemli olmasa da onemliymis izlenimi birakmaya calisan insanlar
  • Herkesin hocam dedigi ve kalitesiz isler yapan insan topluluklari.
  • Kisa yoldan para kazanmaya calisan teknik yetersizligi ust duzey insan topluluklari
  • Bir buyuk yazilim sirketinin olusturdugu ve tum ulkenin kullandigi bir ekosistem.
  • Ne yapmak istedigini bilmeyen universite arkadaslari
  • Surekli bilisim gunlerinde kendi reklamini yapan insanlar ve bos konusmalar
  • Kendi sirketindeki ortami gosteren halihazirdaki frameworkleri onu bunu kullanip kaliteli isler yaptigini zanneden insan topluluklari
  • Yanlis teknik bilgiler veren youtube kanallari acan Turk yazilimcilar
  • Binlerce takipcisi olan sosyal medyada kendini iyi pazarlayan ama basarisiz insan topluluklari

Ortami anlamaya calisiyorum. Ve soyle bir ortam goruyorum. (2010)

  • Calisan ve reklam yapmayan harika teknik bilgi ve donanima sahip kucuk bir kitle.
  • Calisan ve reklam yapmayan harika teknik bilgi ve donanima sahip kucuk bir kitle.

Ilk Yol Ayrimi

Tonlarca C#, LINQ, Android, Java ve bilumum hazir sistemler uzerine calisan insan topluluklari

Bambaska seyler, bambaska bir yol, kimsenin girmek istemedigi, girmekten korktugu bir yol.

Tonlarca C#, LINQ, Android, Java ve bilumum hazir sistemler uzerine calisan insan topluluklari

Bambaska seyler, bambaska bir yol, kimsenin girmek istemedigi, girmekten korktugu bir yol.

Okumaya basladim. Ama Medium blog postu, marketingi yapilan sacma teknik kitaplari veya kalitesiz bilgisayar kitaplarini degil. Yabanci dildeki kitaplari.

1. Kac tanesini duydunuz?

Python

C#

ASP.NET

Java

Android

MVC

Vue

React

Angular

Javascript

Unity

Node.js

PostgreSQL

MySQL

OOP

2. Kac tanesini duydunuz?

AVX

IRQ

Neon

Interrupt Vector Table

Intrinsics

Flynn'in taksonomisi

RAID

PCAP

Referans Sayaclari

AHCI

ECS

LSTM

HTM/STM

MVCC

Spinlock

Tamam da nasil?
Bunlari kendiliginden bulamam?!?

Dipnot: Hicbirseyi kendiliginden bulamazsin.

Nasil?

  • Derslere bakiyorum, ust donemlerin. Ne aliyor bizimkiler?
  • Sonra yolumu ciziyorum:
    • Nihat Adar: Advanced Computer Programming/Organization
      • Ne ogrendim?
      • NUMA domainleri
      • SIMD, MIMD ve bilumum low level isleme prensipleri
    • Kemal Ozkan: Image processing
      • Ne ogrendim?
      • Eigenvector, Eigenspace
      • Hilbert space
      • Vector uzaylari

Nasil?

  • Metin Ozkan: OperatingSystems
    • Unikernel, microkernel
    • OS prosedurleri
  • Serkan Ugurluoglu: Network Systems
    • Paketler
    • Fiberler
    • Routerlar
    • Topolojiler
  • Selcuk Canbek (Huzur icinde yat) (Cryptography)
    • Sifreleme metodlari
    • Steganografi
    • Obfuscation
    • Simetrik/Asimetrik Sifreleme

Karar mekanizmasi
devreye giriyor...

2. Sinirlari zorlamak

Cogu kisinin giremedigi girdiginde de kolay kolay yol kat edemeyecegi alanlar...

Abi GitHub cok onemli

Acik kaynak abi

Bol bol kod yazin

OOP bilmeniz lazim.

X toolunu kullanin cok yardimci olur.

RESTful servis yazin.

Ingilizce cok onemli

Herkes GitHub'a bakiyor.

LinkedIn profiliniz cok onemli.

Blog postu yazin.

CV!

Abi GitHub cok onemli

Acik kaynak abi

Bol bol kod yazin

OOP bilmeniz lazim.

X toolunu kullanin cok yardimci olur.

RESTful servis yazin.

Ingilizce cok onemli

Herkes GitHub'a bakiyor.

LinkedIn profiliniz cok onemli.

Blog postu yazin.

CV!

Blogumu kac kere yeniden kurdugumu hatirlamiyorum.

Blogumda 2 tane yazi var

LinkedIn'imde hic bir sey yok. Son 2 ayda yazdigim su son iki yaziyi postladim.

Sinir zorla

Sinir zorla

  • Rust programlama dili (2011-2012)
    • O aralar Rust denilen bir programlama dilinin yazilmaya baslanacagi aciklandi.
    • Programlama dillerine meragimdan degil de, hatalarin minimuma indirilecegi ve bunun programlama dilinin guvenlik semalari uzerinden giderilecegi ve eszamanli kod yazmayi duzgun hale getirilecegi amaciyla yola cikilacagi soylendi.
    • Derleyiciler hakkinda ne biliyorsun abi?
      • Null, zero, sifir, NADA!

Sinir zorla

Sinir zorla

Yil 2012 bir avuc Rust programlama dili uzerinde calisan insaniz.

Issue trackera bir problem gonderilir.

Sinir zorla

Sinir zorla

Ozellik gelen nesneyi secmeye yaran gunumuzde Rust'in pattern matching sisteminin temelini olusturmaktir. 

Sinir zorla

Sinir zorla

Problem uzerinde iki hafta dusunurum.

Problemi iki hafta sonunda cozer ve kodu gonderirim.

Sinir zorla

Sinir zorla

Ana takim test ister. Test yazarim.

Ilk katkimi yaparim. Artik Rust'in pattern matching'inde desugaring sistemi gelmistir.

 

O yilda hem universitede okuyor hem de Rust'a commit atiyorum. Hem Mozilla'nin Gaia sistemi uzerinde calisiyorum.

 

YIL 2012

Sinir zorla

YIL 2020

Steve, (meshur Ruby ve Rust gelistiricisi) tweet atar.

Diger projeden  arkadaslarimdan birisi Steve'in attigi linkte benim adimi gorur ve bu tweeti atar.

 

Farkinda misiniz, kendi reklamimi kendim yapmiyorum. Sunu yaptim bunu yaptim da demiyorum. OOP calisin TDD yazin da demedim.

Youtube kanalim yok. Hicbir seyim yok. Twitter'da yazarim. Herkes de yazdigimi anlamaz. Bundan memnuniyet duyarim.

Siz calisin, reklaminizi baskalari sizin icin yapar zaten.

Sinir zorla

O yillardaki committer listesinin uzunlugu bu kadar.

 

Kimse Rust'i bilmiyor.

 

Inaniyoruz.

 

Cesitli seyler ogreniyoruz.

 

Hala bu listedeki 4 5 kisi commit atmaya devam ediyor.

Simdi mi? 20+ dan 6K+ a...

Bir bilgisayar muhendisinin ucuncu ve en onemli ozelligi ilke ve prensip sahibi olmasidir.

* Kendi reklamini yapma!

* Sirketlere girmeye cabalama! Kendi yoluna bak!

* Para kazanmak icin bu meslege girdiysen, bir daha dusun. Cunku ezilerek parcalanacaksin.

Jack of all trades, master of none.

Kendimi gelistirdigim cok spesifik alanlar da oldu.

 

Herkes bu atasozunun tam burada bittigini zanneder, ama bitmez.

Jack of all trades, master of none, but oftentimes better than a master of one.

Tamam ama bir ozelligim olmaliydi. Bir specialty, bir yetenek, yine herkesin yapamayacagi bir secenek.

Suanda veritabani sisteminin tasarimini yapiyorum. Hayir Postgres'te tablo veya Mysql sema tasarlamiyorum.

Bildiginiz veri tabani yaziyoruz. MySQL'in PostgreSQL'in kendisini yaziyoruz gibi dusunun.

Prensipler

Gozlemlerim is hayatima atildigimda da devam etti.

Tek amac prensibi

Genellikle bir takim icinde calisiriz. Temiz kod, kirli kod, spagetti vs gibi yazilimsal problemlerden ziyade sosyolojik yaklasimlarimiz aslinda isimizi tanimliyor.

  • Kumulatif ogrenme (Takim ile ogrenme ve ilerleme)
    • Birbirinizden ogrenin ve birbirinize ogretin. Bilgi saklayan veya sizin bilginizle caka satan insanlarla karsilastiginizda uzak durmak en iyisi. O insan tek amac ugruna calismiyor.
  • Suclamama ve hatalari yamamak
    • Is yerinde hata yapan insanlar olur, bu siz de olabilirsiniz. Takim ruhunun da gerektirdigi gibi hatayi yamayin ve devam edin.

Tek amac prensibi

  • Ikna etmeye kalkismayin
    • Eger bir takim sizin deneyiminize saygi duymuyor veya ongorunuzu anlamiyorsa anlatmaya cabalamayin. Verilen veya yaptiginiz ise devam edin. Hakliysaniz eninde sonunda o takim o problem ile yeniden karsilacak. Ve sizin konusma siraniz gelecek.

Kisisel Prensipler

  • Ise odakli olun
    • Ise odakli olun, sosyal mecralar ve bilumum diger seyler sizi is odaginizdan uzaklastirir. Is zamaninda telefonunuza bile bakmayin.
  • Yardim istemekten cekinmeyin.
    • Yardim istemek sizi daha kotu bir muhendis yapmaz. Aksine daha iyi yapar.
  • "Nasil is bulurum?" gibi sorulari sormayin.
    • Bulacaksiniz ve baslayacaksiniz.
  • Bizans oyunlarinin ve politikanin kurbani olmayin.
    • Kendi isinize bakip devam ederseniz, muhtemelen bu tur bir olayin icinde kendinizi bulmayacaksiniz.

Kisisel Prensipler

  • Kalitesiz ortamlarda bulunmayin
    • Kalitesiz ortamlarda konusmayi yavasca bitirip baska bir ortama yonelin.
  • Ogrenmek icin kucuk problemlerle baslamayin.
    • Kendinizi zorun kollarina birakin. Buyuk adimlar uzun ve daha fazla deger getirenlerdir.
  • Bulundugunuz ulkenin sosyolojik yapisini dikkate alin.
    • Her ulke ayni imkanlari sunmaz, her ulkedeki calisma stili farklidir ve her sosyolojik yapi dogal olarak is yapisini da etkiler. Simdi bu konu hakkinda konusacagiz.

Habitat

Turkiye'nin Habitati

* Is yasaminda onunuze set koymaya calisan insanlar olabilir.

* Kendinizi guvene almak icin pasif bir calisma hayatini secebilirsiniz.

* Genellikle ayni seviyede takilacaksiniz.

* Sivrildiginizde yukselmenizi istemeyen insan sayisi epey fazla olabilir.

* Sosyal konusmalariniz kaliteli olmayabilir. (Bu sizin kalite anlayisiniza da bagli)

Turkiye'nin Habitati

* Burada kimse farkinda olunmuyor ama her is olmasi gerekenden neredeyse 10 kat daha yavas yuruyor.

* Ortama adapte olursaniz siz de yavaslayacaksiniz.

* Takim arkadaslariniz moralinizi bozabilir, ozel hayatiniza etkide bulunabilir ve samimiyet seviyeleri ve sinirlar asilabilir.

* Kendi duzeyinizi ve ortaminizi kendiniz regule edin.

Yurtdisi Habitati

  • Hersey cok ama cok hizli. Ayak uydurmaniz gerekiyor.
  • Dusundugunuz gibi hersey cok kolay degil. Is yasami ve hayat disaridan soylenen veya gorundugu gibi asla degil.
  • Takim arkadaslariniz cogunlukla sizin kotulugunuze calismaz veya engellemeye calismazlar.
  • Cok bilmeniz herkesin lehinedir cunku cogu seyi dogal olarak siz kontrol etmeye baslarsiniz.
  • Hiyerarsi olarak gercek hiyerarsi yoktur. Herkes bir amac ugruna calisan kocaman bir ari kolonisinin parcasidir.

 

Yurtdisi Habitati

  • Zor teknik problemlerle karsilasirsiniz. Kesinlikle Turkiye'de cozdugunuz problemlerle uzaktan yakindan alakasi yoktur.
  • Kendinizi gelistirmeniz icin zamaniniz vardir. Ya da rahatlamak icin.
  • Herkes is zamaninda isini yapar. Dakikasinda isini bitirir ve bir daha asla ertesi gun mesai baslangicina kadar bakmaz.
  • Gun icinde yapilan is inanilmaz yogun ve konsantredir. Mesai bittiginde tamamen yorgunsunuzdur. Fiziksel olarak degil, zihinsel olarak.

Yurtdisi Habitati

  • Yeni yollar ve yeni arastirma gelistirme yapilir. Her hafta bunun icin junior, senior, lead, manager farketmeksizin zaman ayirilir.
  • Bir is arkadasinizla bir problem uzerinde 1 saat boyunca konusabilir ve en sonunda "set in stone" tam anlamiyla karar verirsiniz.
  • Kimse ozel hayatiniza karismaz ve en ilginci ise kimse sizi arayip rahatsiz etmez.

Yurtdisi Habitati

  • Is arkadaslariniz ile bulusabilir cesitli etkinliklere katilabilirsiniz.
  • Cesitli toplantilarda bir araya gelirsiniz ve genellikle is partileri duzgun bir sekilde gecer.
  • Isyerinde insan iliskileri kurallara baglanmistir.

 

Ve tum bunlar olurken kendinizi teknik bakimdan gelistirmeye devam edersiniz.

Yillar gectikce kendi yolunuzda giderseniz soyle hissedeceksiniz:

  1. Problem geldiginde icgudusel olarak o problemi cozmeyi ogreneceksiniz.
  2. Bilgisayar muhendisliginin bilgisayardan cok insanlarla ilgili oldugunu kavrayacaksiniz.
  3. Incompetency(yetersizligin) ne kadar da bos oldugunu ve cok konusan insanlarin ne kadar da az sey bildigini goreceksiniz.

Bilgisayar Muhendisligi "Yazilimci" demek degildir.

Neden flip flop'un ne oldugunu biliyorsunuz o zaman?

Ne isimize yarayacak? (Fix soru)

Sistemin uzerindeki her instruction'in calisirken yaptigi stresi anlamana yarar.

Hangi instruction'in nasil tasarlandigini bilirsen. Kodunu ona gore yazabilirsin.

Bunlar merak noktalarim degil

  • Merak ettigin seylere bak
    • FrontEnd?
      • Front end framework ogrenmek yerine AMP nedir ona bak.
      • Is front end ve back end olarak ayrilacak kadar kolay degil. Bu tastamam bir global sacmalik.
    • Backend?
      • Veri sistemi?
      • Programlar (gunumuzun deyisiyle application, servis vs.)
      • Network?
      • Gomulu sistemler, ML, derleyiciler, guvenlik sistemleri, sifrelemeler vs.

Bunlar merak noktalarim degil

  • Farkedeceksin ki aslinda hicbir sey frontend, backend, ML, kripto para vs gibi spesifik yollardan ilerlemiyor.
  • Zorlanacaksin, zorlanmak istemiyorsan buyuk dislilerin arasinda kaybolursun.

Ne yapmamaliyim?

  • Size gelip motivasyonel sozler soyleyenleri dinlemeyin.
  • Dalay Lama bunu demis: ...
    • Ben Dalay Lama degilim. Dalay Lama null pointer ile ugrasmiyordu. Birak Dalay Lamayi.
  • Is yerinizde sacma olaylara alkis tutmayin. Gereksiz yere yanlisa goz yummayin. Teknik yanlislar yapiliyorsa soylemekten cekinmeyin.
  • Hidden from sight, hidden from mind.
    • Goz onunde olmayin. Beni taniyanlar bilir, her is yerine basladigimin ikinci haftasinda su yaziyi bastirir ve tum takimin gorecegi yere asarim.

Kapatirken

  • Dunya degisebilir
  • Ulkeler degisebilir
  • Insanlar degisebilir.
  • Onemli olan su listede kendi insanlariniza, ulkenize ve sonunda dunyaya en iyi katkiyi verebilmekten gecer.
  • Dusunce sisteminizi degistirin. Kabul etmeyin, kime saygi duydugunuzu yeniden degerlendirin. Bilgi sahibi insana saygi duyun. Palyacoya degil. Bu hayatin her yerinde boyledir.
  • Kaliteli eglenin. Hobinizle eglenin.
  • Kaliteli ve kulturlu arkadaslar biriktirin. RPG oyunu oynadiysaniz bilirsiniz. Tum partinin tamamini secmeden bir lokasyondan diger lokasyona gecemezsiniz...

Twitter/GitHub/Gmail: vertexclique

Site: vertexclique.com | Instagram: kveday

Bilgisayar Muhendisligi Sanati

By vertexclique

Bilgisayar Muhendisligi Sanati

  • 145