Developer mülakatları yapmış biri olarak diyebilirim ki, bence gayet güzel sorular. Dediğiniz gibi insanların kendini ifade etmesine ve bildiklerinden bahsetmesine olanak sunuyor. Zaten mükemmel bir mülakat sistemi yok. Kısıtlı zaman içerisinde elimizden geldiğince adayı tanımaya ve takıma uyup uymayacağını anlamaya çalışıyoruz. Kolay iş değil. Ama özellikle mülakatı yapan kişilerin kafa yapısına göre, bir süre sonra bir ekip kültürü oluşmaya başlıyor. O kültürün oturuşunu izlemek ve meyvelerini görmek çok güzel bir duygu :) Güzel video olmuş. Berlin'den selamlar :))
Manipülasyon yapıyor. Bir konuya insanların ilgisini ve güvenini azaltıp kendisi o konuda istediği gibi özgür hareket etme hakkına sahip gibi davranıyor.
Daha bugun girdigim bir mulakatta bu sorularla karsilastim, neredeyse birebir ayni diyebilirim. Gercekten cok guzel ve onemli sorular, paylasiminiz icinn tesekkur ederim. :) Keske daha once gormus olsaydim 😢
5 butonun hepsi de 5 basar. var ile tanımlanan i değişkeni function scoped olduğu için bütün listenerlar closure özelliğinden dolayı lexical environmenttaki aynı i değişkenini referans alır. Eğer for(let İ=0... şeklinde kullanmış olsaydık, i block scoped olacaktı, loop'un her iteration'unda listenerlar farklı değişkenleri referans edecekti. Bu durumda ekrana butonlardan sırasıyla 0, 1, 2, 3, 4 basılacaktı.
Yazilimcinin kafasinda ide olmasini bekleyen kod sorularindansa bu tarz yazilim felsefesi uzerine konusmayi tercih ederim. 2 yildir kod yazan 2 junior dusunelim, birisi 2 yildir her aksam makale okusun, meselelerin derinine girsin, digeri sadece kod yazsin. Bu tarz kod sorusunda ikisinin de sansi ayni oluyor. Son derece adaletsiz ve insanin kendini ifade etmesinin, gelistirmesinin onunde engel olan bir mulakat sekli. Bana mulakatta 10 tane bu tarz yazilim temellerine ait soru sorulsa, 10 tanesini bilemesem bile, cikinca elimde bir yol haritasi olur ve bu sorularin cevaplari uzerinden kendime istikamet cizebilirim. Beyaz tahtada sudoku cozer gibi kod sorulur, bunu da mulakatta yapamazsam eve gidince kodu mu yazacagim? Bence basarisiz mulakatlar o yazilimcinin gelecegine katkida bulunabilir. Bunun icin mulakatin yapilis tarzi cok onemli. Ayni sey is ilanlari icinde gecerli. Dogru hazirlanmis is ilanlari ve dogru hazirlanmis mulakatlar kotu durumda olan yazilimcinin, iyi hale gelmesi icin cok onemli. Sonucta herkes bu iste bir zamanlar kotuydu, mesele karsindaki insani meslektasin olarak gorup, ona yardimci olabilmek.
Hocam öncelikle şöyle anlaticam. document le body button ve ve i yi aldınız.Body elementi var elinizde ama button ve i tanımsız hala.For döngüsünü i yi 0 dan başlattınız ve i 5 defa döndükden sonra console cıktısı (0,1,2,3,4) olacaktır.Çünkü index sıfırdan başlar.Ve döngü her döndiğinde bir button elementi oluşturacak ve onun text ine Button ve index numarası sırayla yazılacak.Buda button 0 button 1 button 2 button 3 button 4 yazılacak.Yanlız işte burda dananın kuyruğu kopuyor:) Click eventi başladığı an döngü sonlanıyor.i sıfırdan başladığı için döngü bittiğinde 5 e eşitleniyor Her bir buttona clıckte 5 ekrana basılıyor:) Umarım anlata bilmişimdir..
Meseleyi hoisting'e ya da arrow function'in lexical binding yapmasına bağlayanlar olmuş, ikisiyle de alakası yok, normal function da aynı sonucu verir, kafa karıştırmak için yapılmış gibime geldi. Var yerine let kullanmak da sonucu değiştirmez. Olay tamamen closure ile alakalı. Buton tıklandığında event listener callback i'nin runtime değerini kullanır, yani buton tıklanıp event listener çağrıldığında sayaç çoktan execute edilmiş oluyor, yapılacak şey event listener callback'i yaratılırken dış scope'taki veriyi capture etmek. Bunun için de IIFE kullanabiliriz. Dış scopetaki değeri parametre olarak IFFE geçeriz. Chaning yerine method chaining deseniz soru mülakata girenler için daha anlaşılır olabilir. Acemi ile pro'ları ayıran farklara design patterns'ları bilme, programming paradigm'ları (özellikle de functional programming) bilme, test yazma ve çalışırken debugging ve querying araçları kullanmayı da ekleyebiliriz. Yeni başlayanlar framework bilmeyi fazla önemserken asıl kıymetli olan şeyleri ıskalıyorlar. Framework ve library kullanabilmenin dil bilmekle neredeyse hiç alakası yok. Delilim ise yıllardır internetin içine eden, milyarlarca saat emek ve enerji israfına neden olan, dil bildiğini sanan ninjalar tarafından yazılmış jquery ve wordpress pluginleri. Wordpress'in kendisi de bu kafada adamlar tarafından yazıldığı ve kervan yolda dizilir mantığı ile ilerlediği, hem kod hem de döküman olarak çöp yığını olmaktan bir türlü kurtulamadığı ve backward compatibility adına yirmi yıllık bir eziyeti sürdürmekte inat ettikleri için çöp. CSS konusunda selector kullanımını sormak gereksiz olabilir, neden? Css selector listesi çok uzun. Bilmiyorsa bakar. Bir de ~, +, * gibi seçicilerin performansının nispeten düşük olduğunu bilen biri bunlardan bilerek kaçınıyor ve bu yüzden öğrenmemiş olabilir. Bunun yerine yeni başlayanlar için selector precedence, css variables, animation, transition, layout oluşturma ve caniuse kullanma, profesyoneller içinse performance degradation'a sebep olan manipülasyonlar , BEM, SMAC, CSS in js gibi konular, modüler css mimarileri, css frameworkları, pre ve post processorlar sorulabilir. Fontawesome vs kullanıyorsa bence mülakatı hemen bitirebilirsiniz :) Aslında başlangıçtaki niyetim kod hiçbir sonuç da vermeyebilir yazmaktı, eğer dom yüklenmeden çağırmışsanız fonksiyon hiçbir etki oluşturmaz diyecektim, uzattım.
@@fuatgenc3246 Evet performansla ilgili ama problemler bir kaç kat. Önce font yüklenecek, sonra onu kullanan css, sonra repaint yapılacak, dosyaları getirmek async olsa bile paint süreci sıralı olacağı için gecikmeden kaçış yok. Font dosyasının biri 400kb görünüyor, ama gziplenince ne olur bilmiyorum. Kaç yüz tane icon var, halbuki ihtiyacın olan belki 10 tane. Kısaca böyle ama daha detaylı baksak başka sorunlar da bulabiliriz. O yüzden svg tercih edilmeli.
bu kodda baya bişey var gibi :D fordaki 'i' değişkenini 'let i' yapalım yukardaki tanımlamayı silelim yoksa istenildiği gibi çalışmaz , 'var' ile tanımlananlar hoisting'den dolayı en üste atılır. döngü sonunda i=5 olacağından her buton 5 alert eder. 5'e kadar dönmesede i++ en son bir kere daha çalışır ve 5 olur
dogru... var ile let arasinda fark vardi. var en son olan degeri aliyordu. bu yuzdne let keywordunu getirmislerdi. o zaman 0 dan 4 e kadar olan butonlara her basildiginda 5 degerini verecektir.
Armağan bey her şey iyi güzel de, ülkede bu kadar soruyu soracağın boş vaktin olmuyor. Harala gurele acil acil proje çıkartmaya çalışıyoruz. Burada bilirsiniz ki her şey acil
*Bu kod ne yapar?* Söyleyeceğim hiç bir şeyi test etmedim, doğru olduğunundan da emin değilim ve bunu savunamam zaten bir JS geliştiricisi de değilim. Sadece benim gibi meraklı arkadaşlarla fikrimi paylamak için videoyu izlerken bir yandan düşünüyordum kendime göre bir fikrim oluştuğunda durdurdum ve direkt kafamdakini yazıya döküyorum. document.body olması için dom olması lazım. Var olduğunu kabul ediyorum. En baştan kodları okuyarak anladığımı yazarak ilerliyorum. body, button ve i isimlerinde 3 tane değişken oluşturuldu; body'e document.body atandı. Diğerlerine değer atanmadı. Aşağıda for içinde i isimli değişkene değer olarak 0 atandı. Döngü orada i değişkeninin değeri 5'den küçük olduğu sürece çalışacak şekilde yazılmış. Her çalışmada değeri bir arttılıyor. Yani sanırım hikayeleştirerek şöyle anlatabilirim; bir yılan ve bir bar olduğunu düşünelim o yılanın sırtında bir sayı yazıyor. O barın içine her girip çıktığında sırtında yazan sayı bir artıyor. Sayı sıfır iken bara girmeye çalışıyor; güvenlik görevlileri bakıyor sayısı 5'den küçük adamı içeri alıyor. Çıkarken de sayısını 1 arttırma zorunluluğu var. Dolayısıyla bu yılan ilk girişten sonra dışarı çıktığında sırtında ki sayı 1 oluyor. Ve tekrar girecekken sırtında ki güncel sayı kontrol ediliyor, Tekrar 1 ile girdi çıktığında sırtında ki sayı 2 oluyor. Tekrar 2 ile girdi çıktığında sırtında ki sayı 3 oluyor gibi..... Ama bu bar'a girerken güvenlik; sadece ve sadece sırtında ki sayı 5'den küçükse bu yılanı içeri alıyor dolayısıya bu yılanın 5. girişinden sonra sırtında ki değer 5 olur ve bir daha içeri giremez. Doğru anlatabildim mi bilmiyorum ama benim çok aşırı üstünde durmadan yapabileceğim en somut anlatım bu. Yani şu sonuca varıyoruz; günün sonunda o yılanın sırtında 5 yazana kadar o yılan bar'a girmeye devam ediyor. Dolayısıyla yılanın sırtında ki sayı en son 5 oluyor ve yılan bir daha içeri giremiyor. Yani şunu diyebiliriz. döngü bittikten sonra i'nin dom'da ki değeri 5'tir. Listenerlar dom'da tutuluyor. Butona tıklandığında tetiklenecek bir listener oluşturup ona da dom'da ki i'nin değerini ekrana yaz demişiz. Mesela i'yi döngüde oluştursak büyük ihtimal butona tıklandığında hep null yazacaktı çünkü döngü bitince o değişken de dom'da kalmayacaktı ya da belki 0 yazar emin değilim. Dediğim gibi günün sonunda i'nin dom'da ki değeri 5'tir. Yani 0.'dan 4'e kadar giden butonların tamamına tıklandığında ekranda yazan sayı 5 olur. Butonlar döngü içinde oluşturulduğu için i 5 olduktan sonra bir daha buton oluşturulamıyor dolayısıyla butonlar 0'dan 4'e kadar olacak şekilde 5 buton oluşuyor ama esasen i değişkeni o prosesin tamamında 1 kez tanımlanmış ve 6 kez değer değiştirmiş oluyor. 0,1,2,3,4,5 değerlerini alıyor en sonda ise değeri 5 olarak kalıyor. Düşüncelerimi ne kadar yazıya döküp anlatabildim bilmiyorum ama benim adım hıdır elimden gelen budur :) Armağan Bey'in düşünceme bir yorumu var ise eğer memnuniyetle dinlemek isterim.
Ah o event loopu öğrenemedim gitti. javascriptte daha çok async konularını videolar izleyerek ve deneyerek gördüm. pythonda async konusunu epey araştırdım ama insanlar hiç anlatmıyor event loop nedir, future ve tasklar nedir. direkt asyncio.ensure_future(coro) ve event loop.run_until_complete(main()) diye yazıp kodu çalıştırıyorlar ama event loop nedir, future nedir henüz öğrenemedim. ensure future'un ve run until complete'in amacı nedir, neden asyncio.run kullanmak yerine öyle yaptı gibi sorular kafamda dönüp duruyor hala. bir gün inşallah bunları detaylı açıklayan bir kaynak bulabilirim. şimdilik deneye yanıla öğrendiklerimden işimi görecek kadar kullanıyorum gidiyor maalesef. bu kod ne yapar kısmındaki kod sanki fazla kolay değil mi? benim çok fazla frontend bilgim yok ona rağmen bilebiliyorum ne yapacağını kodun. css bir programlama dili midir sorusu da kolay sanki... span elemanı sorusu iyiymiş. cookieleri biliyordum ama local session falan ilk kez duyuyorum. onları hemen araştırmalıyım... $.ready(), jQuery ne zaman ölecek? yani ölmese bile ne zaman o stackoverflowdaki en çok kullanılan web framework koltuğundan düşecek aşağılara?
@@chunfai6925 değildir.işaretleme dilidir. ama programlama dili kavramına wikipedi gözüyle bakıp bilgisayarda kullanılabilecek olan her dile(mesela json dahil) programlama dili diyorsan programlama dilidir.
@@beratgokgoz9135 Karşında, 10yıldır işe alım yapıyorum diyen adam var. Adam css bir dil midir diye soruyor ve sen buna 'kolay sanki' diyorsun. Css bir turing complate bir dil midir diye soruyor, 'kolay sanki' diyorsun. Event loopta ki öğrenme çabanı umarım bunda da kullanırsın. Lakin kulaktan dolma bilgiler her zaman doğru olmuyor
bu css sorusu aslında biraz duruma göre değişen bir şey bence. react framework müdür kütüphane midir gibi. bir arkadaş arası tartışmada react framework müdür kütüphane midir deseler framework derim ama iş görüşmesinde sorarlarsa kütüphane derim. çünkü pek çok geliştirici react framework diyor, ve belki gerçekten öylr dahi olsa facebook kütüphane olarak tanımlamış. tanıdığım birisi bana css prog. dili midir diye sorsa hayır derim ama iş görüşmesinde sorulsa evet derim. belki turing complete ama programlama dili sayılır mı, bence hayır. ama iş görüşmesinde gelse evet demem gerekir.
@@beratgokgoz9135 Bu şey gibi sanki, +grip bir hastalık mı? -Bence hayır +ama olur da fenalaşırsan hastaneye gider misin?, -evet +neden? -çünkü aslında bir hastalıktır
soru kolay degil mi? nasil bilememisler ? 5 adet buton olusturur 0`dan 4 e kadar button yazili halde, her tiklanan butona ise kacinci buton ise o sayiyi yazar. bunun bilinmemesi komedi gibi :D
@ yok. altta bir arkadas anlatmis. var ile let`in farki olayi. ben javaci degilim sadece C# uzerinden bildigim ile yola ciktim ... 0 dan 4 e 5 adet buton ve her tiklandiginda 5 yaziyormus var keywordu ile declaresinden dolayi.
@ java öğrenme isteği... ben 3 sene yazılım tarafında takılıp PM olarak devam etmek için uğraşıyorum. bana o kadar derin java bilgisi lazım değil :) B1 almancamı aldım lakin coronadan dolayı B2 ye başlayamadım 6 aydır...
Videoda ismi geçen Fatih Acet bugün kurucularından olduğu Supeerpeer girişimi 8 Milyon $ yatırım aldı. Burdan ona selamlar olsun.
Developer mülakatları yapmış biri olarak diyebilirim ki, bence gayet güzel sorular. Dediğiniz gibi insanların kendini ifade etmesine ve bildiklerinden bahsetmesine olanak sunuyor. Zaten mükemmel bir mülakat sistemi yok. Kısıtlı zaman içerisinde elimizden geldiğince adayı tanımaya ve takıma uyup uymayacağını anlamaya çalışıyoruz. Kolay iş değil. Ama özellikle mülakatı yapan kişilerin kafa yapısına göre, bir süre sonra bir ekip kültürü oluşmaya başlıyor. O kültürün oturuşunu izlemek ve meyvelerini görmek çok güzel bir duygu :) Güzel video olmuş. Berlin'den selamlar :))
Manipülasyon yapıyor. Bir konuya insanların ilgisini ve güvenini azaltıp kendisi o konuda istediği gibi özgür hareket etme hakkına sahip gibi davranıyor.
Altını çizmekte fayda var, bu sorular php mülakatlarından daha çok işe yarar. Emeğinize sağlık hocam
Daha bugun girdigim bir mulakatta bu sorularla karsilastim, neredeyse birebir ayni diyebilirim. Gercekten cok guzel ve onemli sorular, paylasiminiz icinn tesekkur ederim. :)
Keske daha once gormus olsaydim 😢
Buradan almis olmasinlar 😂
@ Yüksek ihtimalle olabilir :) Cunku verdiginiz kod ornegi birebir ayniydi :) Sadece CSS sorulari yoktu.
Armağan Bey, bu canlı yayınlarınızı podcast olarak da sunmanız çok güzel olurdu.
Kesinlikle
Kesinlikle
5 butonun hepsi de 5 basar.
var ile tanımlanan i değişkeni function scoped olduğu için bütün listenerlar closure özelliğinden dolayı lexical environmenttaki aynı i değişkenini referans alır.
Eğer for(let İ=0... şeklinde kullanmış olsaydık, i block scoped olacaktı, loop'un her iteration'unda listenerlar farklı değişkenleri referans edecekti. Bu durumda ekrana butonlardan sırasıyla 0, 1, 2, 3, 4 basılacaktı.
Daha geçen hafta const,let,var farkına bakmama rağmen bu soruyu şimdi yapamadım.
Bu sorunun cevabini 2-3 once ornekleyerek cekmistim ...
Hocam haftaya online mülakat yaptığınız bi yayın yapsanız efsane olur
Yazilimcinin kafasinda ide olmasini bekleyen kod sorularindansa bu tarz yazilim felsefesi uzerine konusmayi tercih ederim. 2 yildir kod yazan 2 junior dusunelim, birisi 2 yildir her aksam makale okusun, meselelerin derinine girsin, digeri sadece kod yazsin. Bu tarz kod sorusunda ikisinin de sansi ayni oluyor. Son derece adaletsiz ve insanin kendini ifade etmesinin, gelistirmesinin onunde engel olan bir mulakat sekli. Bana mulakatta 10 tane bu tarz yazilim temellerine ait soru sorulsa, 10 tanesini bilemesem bile, cikinca elimde bir yol haritasi olur ve bu sorularin cevaplari uzerinden kendime istikamet cizebilirim. Beyaz tahtada sudoku cozer gibi kod sorulur, bunu da mulakatta yapamazsam eve gidince kodu mu yazacagim? Bence basarisiz mulakatlar o yazilimcinin gelecegine katkida bulunabilir. Bunun icin mulakatin yapilis tarzi cok onemli. Ayni sey is ilanlari icinde gecerli. Dogru hazirlanmis is ilanlari ve dogru hazirlanmis mulakatlar kotu durumda olan yazilimcinin, iyi hale gelmesi icin cok onemli. Sonucta herkes bu iste bir zamanlar kotuydu, mesele karsindaki insani meslektasin olarak gorup, ona yardimci olabilmek.
4:16 tanıştığımıza memnun oldum, bana müsade ozaman :D
eveeet mülakat bitti başarılısınız alacağınız maaş 2023 mart ayı itibariyle net 8550 lira. + yol + yemek daha ne istiyorsunuz.
06:06 hocam ilk bakışta çözdüm. Başlayalı 1 yıl olmadı ve full stack olmaya doğru ilerliyorum.
Hocam öncelikle şöyle anlaticam. document le body button ve ve i yi aldınız.Body elementi var elinizde ama button ve i tanımsız hala.For döngüsünü i yi 0 dan başlattınız ve i 5 defa döndükden sonra console cıktısı (0,1,2,3,4) olacaktır.Çünkü index sıfırdan başlar.Ve döngü her döndiğinde bir button elementi oluşturacak ve onun text ine Button ve index numarası sırayla yazılacak.Buda button 0 button 1 button 2 button 3 button 4 yazılacak.Yanlız işte burda dananın kuyruğu kopuyor:) Click eventi başladığı an döngü sonlanıyor.i sıfırdan başladığı için döngü bittiğinde 5 e eşitleniyor Her bir buttona clıckte 5 ekrana basılıyor:) Umarım anlata bilmişimdir..
Meseleyi hoisting'e ya da arrow function'in lexical binding yapmasına bağlayanlar olmuş, ikisiyle de alakası yok, normal function da aynı sonucu verir, kafa karıştırmak için yapılmış gibime geldi. Var yerine let kullanmak da sonucu değiştirmez. Olay tamamen closure ile alakalı. Buton tıklandığında event listener callback i'nin runtime değerini kullanır, yani buton tıklanıp event listener çağrıldığında sayaç çoktan execute edilmiş oluyor, yapılacak şey event listener callback'i yaratılırken dış scope'taki veriyi capture etmek. Bunun için de IIFE kullanabiliriz. Dış scopetaki değeri parametre olarak IFFE geçeriz.
Chaning yerine method chaining deseniz soru mülakata girenler için daha anlaşılır olabilir.
Acemi ile pro'ları ayıran farklara design patterns'ları bilme, programming paradigm'ları (özellikle de functional programming) bilme, test yazma ve çalışırken debugging ve querying araçları kullanmayı da ekleyebiliriz.
Yeni başlayanlar framework bilmeyi fazla önemserken asıl kıymetli olan şeyleri ıskalıyorlar. Framework ve library kullanabilmenin dil bilmekle neredeyse hiç alakası yok. Delilim ise yıllardır internetin içine eden, milyarlarca saat emek ve enerji israfına neden olan, dil bildiğini sanan ninjalar tarafından yazılmış jquery ve wordpress pluginleri. Wordpress'in kendisi de bu kafada adamlar tarafından yazıldığı ve kervan yolda dizilir mantığı ile ilerlediği, hem kod hem de döküman olarak çöp yığını olmaktan bir türlü kurtulamadığı ve backward compatibility adına yirmi yıllık bir eziyeti sürdürmekte inat ettikleri için çöp.
CSS konusunda selector kullanımını sormak gereksiz olabilir, neden? Css selector listesi çok uzun. Bilmiyorsa bakar. Bir de ~, +, * gibi seçicilerin performansının nispeten düşük olduğunu bilen biri bunlardan bilerek kaçınıyor ve bu yüzden öğrenmemiş olabilir. Bunun yerine yeni başlayanlar için selector precedence, css variables, animation, transition, layout oluşturma ve caniuse kullanma, profesyoneller içinse performance degradation'a sebep olan manipülasyonlar , BEM, SMAC, CSS in js gibi konular, modüler css mimarileri, css frameworkları, pre ve post processorlar sorulabilir. Fontawesome vs kullanıyorsa bence mülakatı hemen bitirebilirsiniz :)
Aslında başlangıçtaki niyetim kod hiçbir sonuç da vermeyebilir yazmaktı, eğer dom yüklenmeden çağırmışsanız fonksiyon hiçbir etki oluşturmaz diyecektim, uzattım.
Fontawesome kullanılmasının sakıncası nedir ki? Performans sorunları yüzünden mi? Açıklarsanız sevinirim
@@fuatgenc3246 Evet performansla ilgili ama problemler bir kaç kat. Önce font yüklenecek, sonra onu kullanan css, sonra repaint yapılacak, dosyaları getirmek async olsa bile paint süreci sıralı olacağı için gecikmeden kaçış yok. Font dosyasının biri 400kb görünüyor, ama gziplenince ne olur bilmiyorum. Kaç yüz tane icon var, halbuki ihtiyacın olan belki 10 tane. Kısaca böyle ama daha detaylı baksak başka sorunlar da bulabiliriz. O yüzden svg tercih edilmeli.
bu kodda baya bişey var gibi :D
fordaki 'i' değişkenini 'let i' yapalım yukardaki tanımlamayı silelim yoksa istenildiği gibi çalışmaz , 'var' ile tanımlananlar hoisting'den dolayı en üste atılır. döngü sonunda i=5 olacağından her buton 5 alert eder. 5'e kadar dönmesede i++ en son bir kere daha çalışır ve 5 olur
dogru... var ile let arasinda fark vardi. var en son olan degeri aliyordu. bu yuzdne let keywordunu getirmislerdi. o zaman 0 dan 4 e kadar olan butonlara her basildiginda 5 degerini verecektir.
Bu sorulari rahatca cözmeme ragmen praktikum veya ausbildung bulamamam cidden cok ilginc
abi bir video da stajyerler için çeker misin ?
Hocam girdigim mulakatlarda hepsi demeyeceğim ancak buyuk kismi yardimsever degil sizi sizinle bas basa birakiyor soru sorup susuyor ve yol acmiyor
Pure science.
Her seferinde hipnoz olup sonuna kadar dinliyorum...
İyi günler.Size birkaç sorum olacak.Fastify daha hızlı iken neden express kullanılıyor.Ve hiç ArangoDb'yi denediniz mi?
Armağan bey her şey iyi güzel de, ülkede bu kadar soruyu soracağın boş vaktin olmuyor. Harala gurele acil acil proje çıkartmaya çalışıyoruz. Burada bilirsiniz ki her şey acil
Js bilenler cogu frontend konusuluyor . Peki nodejs teknolijisi pek iyi degil mi onu acik degil mi ?
Harika video
Hocam güzel sorular sormuşsunuz ama türkçe de öyle bir "r" harfi yok maalesef. Bir sinior olarak bunu bilmelisiniz.
biz sizi ararız
👍👍👍
*Bu kod ne yapar?*
Söyleyeceğim hiç bir şeyi test etmedim, doğru olduğunundan da emin değilim ve bunu savunamam zaten bir JS geliştiricisi de değilim. Sadece benim gibi meraklı arkadaşlarla fikrimi paylamak için videoyu izlerken bir yandan düşünüyordum kendime göre bir fikrim oluştuğunda durdurdum ve direkt kafamdakini yazıya döküyorum.
document.body olması için dom olması lazım. Var olduğunu kabul ediyorum. En baştan kodları okuyarak anladığımı yazarak ilerliyorum.
body, button ve i isimlerinde 3 tane değişken oluşturuldu; body'e document.body atandı. Diğerlerine değer atanmadı.
Aşağıda for içinde i isimli değişkene değer olarak 0 atandı. Döngü orada i değişkeninin değeri 5'den küçük olduğu sürece çalışacak şekilde yazılmış. Her çalışmada değeri bir arttılıyor. Yani sanırım hikayeleştirerek şöyle anlatabilirim; bir yılan ve bir bar olduğunu düşünelim o yılanın sırtında bir sayı yazıyor. O barın içine her girip çıktığında sırtında yazan sayı bir artıyor. Sayı sıfır iken bara girmeye çalışıyor; güvenlik görevlileri bakıyor sayısı 5'den küçük adamı içeri alıyor. Çıkarken de sayısını 1 arttırma zorunluluğu var. Dolayısıyla bu yılan ilk girişten sonra dışarı çıktığında sırtında ki sayı 1 oluyor. Ve tekrar girecekken sırtında ki güncel sayı kontrol ediliyor, Tekrar 1 ile girdi çıktığında sırtında ki sayı 2 oluyor. Tekrar 2 ile girdi çıktığında sırtında ki sayı 3 oluyor gibi..... Ama bu bar'a girerken güvenlik; sadece ve sadece sırtında ki sayı 5'den küçükse bu yılanı içeri alıyor dolayısıya bu yılanın 5. girişinden sonra sırtında ki değer 5 olur ve bir daha içeri giremez. Doğru anlatabildim mi bilmiyorum ama benim çok aşırı üstünde durmadan yapabileceğim en somut anlatım bu. Yani şu sonuca varıyoruz; günün sonunda o yılanın sırtında 5 yazana kadar o yılan bar'a girmeye devam ediyor. Dolayısıyla yılanın sırtında ki sayı en son 5 oluyor ve yılan bir daha içeri giremiyor. Yani şunu diyebiliriz. döngü bittikten sonra i'nin dom'da ki değeri 5'tir. Listenerlar dom'da tutuluyor. Butona tıklandığında tetiklenecek bir listener oluşturup ona da dom'da ki i'nin değerini ekrana yaz demişiz. Mesela i'yi döngüde oluştursak büyük ihtimal butona tıklandığında hep null yazacaktı çünkü döngü bitince o değişken de dom'da kalmayacaktı ya da belki 0 yazar emin değilim. Dediğim gibi günün sonunda i'nin dom'da ki değeri 5'tir. Yani 0.'dan 4'e kadar giden butonların tamamına tıklandığında ekranda yazan sayı 5 olur. Butonlar döngü içinde oluşturulduğu için i 5 olduktan sonra bir daha buton oluşturulamıyor dolayısıyla butonlar 0'dan 4'e kadar olacak şekilde 5 buton oluşuyor ama esasen i değişkeni o prosesin tamamında 1 kez tanımlanmış ve 6 kez değer değiştirmiş oluyor. 0,1,2,3,4,5 değerlerini alıyor en sonda ise değeri 5 olarak kalıyor. Düşüncelerimi ne kadar yazıya döküp anlatabildim bilmiyorum ama benim adım hıdır elimden gelen budur :)
Armağan Bey'in düşünceme bir yorumu var ise eğer memnuniyetle dinlemek isterim.
Ah o event loopu öğrenemedim gitti. javascriptte daha çok async konularını videolar izleyerek ve deneyerek gördüm. pythonda async konusunu epey araştırdım ama insanlar hiç anlatmıyor event loop nedir, future ve tasklar nedir. direkt asyncio.ensure_future(coro) ve event loop.run_until_complete(main()) diye yazıp kodu çalıştırıyorlar ama event loop nedir, future nedir henüz öğrenemedim. ensure future'un ve run until complete'in amacı nedir, neden asyncio.run kullanmak yerine öyle yaptı gibi sorular kafamda dönüp duruyor hala. bir gün inşallah bunları detaylı açıklayan bir kaynak bulabilirim. şimdilik deneye yanıla öğrendiklerimden işimi görecek kadar kullanıyorum gidiyor maalesef.
bu kod ne yapar kısmındaki kod sanki fazla kolay değil mi? benim çok fazla frontend bilgim yok ona rağmen bilebiliyorum ne yapacağını kodun.
css bir programlama dili midir sorusu da kolay sanki...
span elemanı sorusu iyiymiş.
cookieleri biliyordum ama local session falan ilk kez duyuyorum. onları hemen araştırmalıyım...
$.ready(), jQuery ne zaman ölecek? yani ölmese bile ne zaman o stackoverflowdaki en çok kullanılan web framework koltuğundan düşecek aşağılara?
Css bir programlama dili midir sorusunun cevabı nedir?
@@chunfai6925 değildir.işaretleme dilidir. ama programlama dili kavramına wikipedi gözüyle bakıp bilgisayarda kullanılabilecek olan her dile(mesela json dahil) programlama dili diyorsan programlama dilidir.
@@beratgokgoz9135 Karşında, 10yıldır işe alım yapıyorum diyen adam var. Adam css bir dil midir diye soruyor ve sen buna 'kolay sanki' diyorsun. Css bir turing complate bir dil midir diye soruyor, 'kolay sanki' diyorsun. Event loopta ki öğrenme çabanı umarım bunda da kullanırsın. Lakin kulaktan dolma bilgiler her zaman doğru olmuyor
bu css sorusu aslında biraz duruma göre değişen bir şey bence. react framework müdür kütüphane midir gibi.
bir arkadaş arası tartışmada react framework müdür kütüphane midir deseler framework derim ama iş görüşmesinde sorarlarsa kütüphane derim. çünkü pek çok geliştirici react framework diyor, ve belki gerçekten öylr dahi olsa facebook kütüphane olarak tanımlamış.
tanıdığım birisi bana css prog. dili midir diye sorsa hayır derim ama iş görüşmesinde sorulsa evet derim.
belki turing complete ama programlama dili sayılır mı, bence hayır. ama iş görüşmesinde gelse evet demem gerekir.
@@beratgokgoz9135 Bu şey gibi sanki, +grip bir hastalık mı? -Bence hayır +ama olur da fenalaşırsan hastaneye gider misin?, -evet +neden? -çünkü aslında bir hastalıktır
hocam ben size para vereyim, az mir miktar, aylik belli bir ücret , benide ise alin. ben size ödeme yapicam siz bana yapmicaksiniz. olurmu ?
Olmaz. Hak gecer.
@ bedavaya ögretmiyorsunuz ya hocam is icabi sonucda ve ayrica ögrenme azmimi göstermis olurdum. yinede tesekkürler
soru kolay degil mi? nasil bilememisler ? 5 adet buton olusturur 0`dan 4 e kadar button yazili halde, her tiklanan butona ise kacinci buton ise o sayiyi yazar. bunun bilinmemesi komedi gibi :D
Uzgunum ama yanlis cevap.
Hangisi komedi bilemedim.
@ yok. altta bir arkadas anlatmis. var ile let`in farki olayi. ben javaci degilim sadece C# uzerinden bildigim ile yola ciktim ... 0 dan 4 e 5 adet buton ve her tiklandiginda 5 yaziyormus var keywordu ile declaresinden dolayi.
Ne yok?
@ java öğrenme isteği... ben 3 sene yazılım tarafında takılıp PM olarak devam etmek için uğraşıyorum. bana o kadar derin java bilgisi lazım değil :) B1 almancamı aldım lakin coronadan dolayı B2 ye başlayamadım 6 aydır...
Jr developer olmak zormu?
zor
Sektörün durum vahim bunlar zor sorularsa. :P