Front-end web yazılımcının yol haritası!
Kendi kendinize web yazılım öğreniyorsanız aşağıdaki sorulara yoğunlaşarak karşınıza çıkabilecek konseptleri ve teknolojileri araştırıp öğrenebilirsiniz.
1. İnternet nedir?
2. Hosting ve domain nedir?
3. Tarayıcı (browser) nedir?
Shazam 2002’de İngiltere’de faaliyete başlamış. 2580’i arıyormuşsun, 30 saniye şarkıyı dinletiyormuşsun, sonucu sana mesaj olarak atıyormuş. Wikiden de teyit ettim şoku üzerimden atamıyorum 🤯
Shazam first launched in 2002 (UK only) and was known as "2580", as the number was the short code that customers dialed from their mobile phone to get music recognized.
After 30sec, the call auto hanged-up and a result was sent via SMS, including the song title and artist.
Yine LinkedIn'de haddinden fazla iyi niyetli bir arkadaşın yazdıklarına sinirlendim. Neymiş, junior yazılımcılar vefasızlık yapmamalıymış, kendilerini yetiştiren firmalara sadakat gösterip fazla maaş için başka yere gitmemeliymiş. İstediğiniz yere gidin, sebebini de anlatayım 👇
2021 güzel yıl oldu.
- Oğlum oldu 👶
- Şubat'ta ilk yazılım işime
- Eylül'de Facebook'a
- Kasım'da AT&T'ye geçtim
- %108 maaş artışı
- Kanalda 33 video
- YouTube'dan gelen ilk gelirle 2 arkadaşa ödül
- Hayalimdeki arabayı aldım 🚗
Darısı herkesin başına.
Eğer bir yazılımcı takımdan ayrıldığında proje yan yatmaya başlıyorsa, orada bir yönetim problemi var demektir. O yüzden “bizi yarı yolda bırakmayacak” diyen bir iş ilanı görürseniz oradan koşarak uzaklaşın, zira sırtınıza haddinden fazla yük yüklenecektir. Tecrübeyle sabittir.
Yazılım kariyerinizin başında teknik konularda gelişiminiz için yapabileceğiniz en faydalı şey soru sormak. Ama soru sormanın da bir usulü var.
1. 20 dakika kuralını uygulayın. Eğer bir problem üzerinde 20 dakikadan fazla uğraşıyorsanız soru sorma zamanı gelmiş demektir.
JavaScript ile 'geçen yıl, dün, 5 ay önce' gibi göreceli tarih belirten ifadeleri kolayca oluşturmak için RelativeTimeFormat metodundan faydalanabilirsiniz.
💡 numeric: 'auto' sayesinde '1 gün önce' yerine 'dün' ifadesi yazdırılıyor.
Yabancı dil en güzel yaşayarak öğrenilir.
“Ya bu dil işini nasıl halledicez” diyerek bir yere varamazsınız. “How the fuck am I going to learn this damn English language” demeniz lazım.
Web yazılıma nereden başlayacağınızı bilmiyorsanız; HTML, CSS ve biraz da temel JavaScript öğrendikten sonra React'a göz atmanızı tavsiye ederim.
Topluluk geniştir, kolay yardım bulabilirsiniz.
Bir çok şirket kullanır, kolay iş bulabilirsiniz.
Resume yazarken dikkat etmeniz gerekenler!
Birçok kariyer koçundan ve paralı servislerden edindiğim resumede dikkat edilmesi gereken, bildiğim noktaları sizinle paylaşmak istiyorum.
Tam 1 yıl önce bugün sektördeki ilk iş günümdü. Bu vesileyle yazılımcı olarak çalışırken edindiğim, sektöre girmeye çalışan veya halihazırda sektörde çalışan arkadaşlara faydalı olması temennisiyle tecrübelerimden bahsetmek istiyorum. 🧵
Kaydırılabilir bir eleman içindeki her bir elemanın otomatik sağa/sola/yukarı/aşağı yapışmasını sağlamak için CSS'in scroll-snap-type ve scroll-snap-align özelliğini kullanın. Mobil için web yaparken mutlaka kullanmanız gereken bir özellik.
İlgili yazı:
Instagram'ın sistemini ölçeklendirirken yaptıkları değişiklikleri ve başlarına gelen Justin Bieber problemini biliyor musunuz? Gelin anlatayım.
(Instagram engineering sayfasından tarafımca yapılmış resmi olmayan bir çeviridir, makalenin linkini sonda bulabilirsiniz.)
Yeni başlayan arkadaşlar için React öğrenmeye başladığımda yaptığım küçük projeleri paylaşıyorum. Hani öğrenmeye başlar başlamaz kanalda bir an önce full-fledged devasa projeler yapmamı istiyorsunuz ya, neden ısrarla yapmadığımı anlarsınız belki 😅
Front-end yazılımcının mühendislik diplomasına ihtiyacı yoktur.
Front-end yazılımcının mühendislik diplomasına ihtiyacı yoktur.
Front-end yazılımcının mühendislik diplomasına ihtiyacı yoktur.
Front-end yazılımcının mühendislik diplomasına ihtiyacı yoktur.
Front-end yazılımcının m
Google'da 6. haftam, hibrit çalışıyorum (3 ofis, 2 ev)
- Ofiste daha verimli çalışıyorum (evinizdeki ortama bağlı)
- Daha düzenli bir uyku ve yemek takvimim var
- Angular meh, Dart ise JS+TS'in steroid almış hali
- Takıldığım yerlerde yüz yüze yardım almak daha kolay ve hızlı
Yazılım tasarım belgesi (software design doc) nedir, ne işe yarar, neden yazılır?
Son iki haftadır UX takımından gelen köklü bir UI değişikliğinin tasarım belgesini yazıyorum. Neredeyse hiçbir kod yazmadan, yeni dizaynı nasıl uygulayacağımızı yazıya döküyorum.
HTTP, HTML, ve CSS ile ilgili güzel bir kaynak: Harvard CS50 8. hafta videosunu izleyebilirsiniz. İngilizce hiç anlamıyorum diyorsanız YouTube üzerinden otomatik altyazı çevirisini kullanabilirsiniz.
Bir buçuk yıllık yazılım sektöründeki çalışma hayatımda dün ilk kez ofise gittim. Eğer şirketin ofis ortamı güzelse, seçme imkanınız varsa, yolda çok vakit kaybetmeyecekseniz, en azından hibrit olarak ofisten çalışmayı denemenizi tavsiye ederim.
En yeni teknolojileri öğrenip işe giriyorsunuz, bir de görüyorsunuz ki projedeki paket versiyonları 3 yıl geriden geliyor. React var ama class component, Redux var ama mapStateToProps, connect, vs. kullanılmış, React Native var ama react-navigation 2. versiyonda. 🤯
Google’da zamanımın yüzde 20’sinde istediğim bir proje/konu üzerinde çalışmama müsade ediliyor. Ben de başlangıç olarak projenin responsiveness eksiği olan yerlerini geliştirmeyi istedim. Şimdi UX takımıyla görüşüp, responsive olmayan yerler için görüş alıp o alandaki eksikleri
Web yazılım (front-end veya back-end farketmeksizin) öğrenmeye yeni başlayan arkadaşlar: HTML, CSS, JavaScript, React vs. başlamadan önce internet nasıl çalışır ve HTTP nedir konularını öğrenin.
LinkedIn’de Furkan Türkyılmaz paylaşmış. JavaScript’te Array.join() metoduna alternatif olarak farklı dillerin gramer kurallarını da dikkate alarak listeleri birleştirebilirsiniz.
HTML Input etiketini kullanırken farklı 'type' değerleri girerek mobil cihazlarda verilen 'type' değeriyle uyumlu klavye çıkmasını sağlayabilirsiniz.
Detaylı okuma için:
Yeni senior kişi bu firmanın kara kaşına kara gözüne gelmedi, parası için geldi. Bir yıldır emek verdiğiniz şirket sizden esirgediği maaşı daha önce hiç birlikte çalışmadığı birine veriyor. Bunu gördükten sonra ayrıldığınıza, yüz üstü bıraktığınıza üzülür müsünüz?
React seviyenizi test etmenin eğlenceli bir yolu:
StackOverflow'a girin, React kategorisine gidin ve sorulan sorulara cevap vermeye çalışın. Hem diğer insanların en çok nerede takıldığını görebilirsiniz, hem de bilginizi test etmiş olursunuz.
Şirketler nasıl ürünlerini ve servislerini satarken kar maksimizasyonunu güdüyorsa, sizin de bir çalışan olarak emeğinizi satarken karınızı maksimize etmek istemeniz en doğal hakkınız.
Yeni iş teklifini kabul ettiniz ve ayrıldınız. Eski firmanız buna çok içerledi ve bir daha junior almamaya karar verdi. Senior bir pozisyon ilanı açtı ve işi bilen birini aldı. Şimdi yeni senior kişiye 8k veya üzeri bir rakam ödeniyor. Aynı işi bilen sana niye aynı para ödenmedi?
Allah Türkiye’de TL bazında para kazanıp şahsi bütçesinden Apple bilgisayar almak isteyenlere merhamet etsin.
Muş’ta üniversitede çalışırken 32bin TL’ye 2013 model sıfır Volkswagen Polo almıştım. 🥲
Sonuç olarak söylemek istediğim şu: Birisi size aynı işi yapmak için daha fazla para veriyorsa oraya gitmenizde etik olarak hiçbir problem olduğunu düşünmüyorum. Gidin, sizin olanı, hak ettiğinizi alın.
LinkedIn tweet serisinden sonra takibe alan arkadaşlara kendimi tanıtmak isterim.
🙋♂️ Adım Samet.
🌴 Kaliforniya'da yaşıyorum.
👨💻 Alaylı yazılımcıyım.
💻 Ağırlıklı front-end olmak üzere full-stack web çalışıyorum.
⚛ YouTube'da React anlatıyorum.
Öğrenci e-mail adresiniz ile GitHub Student Pack içindeki ücretsiz servislere bakmanızı tavsiye ederim. Yanlış hatırlamıyorsam 2-3 firma 1 yıllık ücretsiz domain kaydı sağlıyor. Yine çok güzel eğitimleri ücretsiz veren servisler var.
CSS konusundaki uzmanlardan Türkçe içerik sunan Fatih Hayrioğlu'nu
@fatihhayri
takip etmenizi şiddetle tavsiye ederim. 2000'li yılların sonlarında web öğrenirken onun bloğundan çok şey öğrenmiştim. Örnek bir yazısı:
Şubat ayından beri full-time iş başvurusu yapıp mülakatlara giriyorum. Bugün bir tanesi telefonda rakam belirleyip sözlü teklif iletti. Yarın da G’dan cevap bekliyorum. Sonuçlandığında detayları paylaşacağım. Güzel şeyler oluyor :)
Selam arkadaşlar.
Uzun zamandır paylaşım yapamıyorum.
Depremde yaşamını yitirenlere Allah'tan rahmet, kalanlara baş sağlığı ve acil şifalar dilerim.
Depremin olduğu 6 Şubat'ı ve takip eden iki günü hastanede geçirdik, depremle aynı günde ikinci oğlumuz dünyaya geldi.
Türkiye’deki yazılım piyasası için gibi bir kaynağa ihtiyaç var. Kişiler anonim olarak şirketlerini, kaç yıllık tecrübelerinin olduğunu, ve net maaşlarını paylaşabilmeli.
Sizi yetiştiren firma sizi junior olarak alıyor ve 5k maaş veriyor diyelim. Siz bir sene içinde işin her şeyini öğreniyorsunuz ve projenin bel kemiği haline geliyorsunuz. Karşılığı? Yüzde 10-20 zam. Maaşınız oldu 5.5-6k. Güzel geliyor mu kulağa? Bir de şunu dinleyin.
Şirket sizi çok sevdiğinden yetiştirmiyor, o alanda o fiyata yetişmiş eleman bulamadığı için yetiştiriyor. Bu süreçte de zaten az maaş alıyorsunuz. Ve bu yetişme süreci de öyle 1 sene flan sürmüyor, genelde 1-2 ayda kendi başınıza çalışabilecek kıvama geliyorsunuz.
Kim size işverene vefadan bahsediyorsa, sizi kapitalist bir sistemin kurtlarının önüne kuzu olarak atmaya çalışıyordur. Bunu ister bilinçli yapıyor olsunlar, isterse iyi niyetlerinden dolayı.
2. Soru sorarken “bu nasıl oluyor” şeklinde kapsamlı sorular değil, “şunu yapmaya çalışıyorum, şu yöntemleri denedim, şu hatayı alıyorum” şeklinde sorduğunuz kişiye bilgi verirseniz çok daha verimli cevaplar alabilirsiniz. StackOverflow’da bu format özellikle takdir edilecektir.
HTML'deki <a> ve <form> elemanlarının perde arkasında aynı işlemi yaptığını söylesem, HTTP bilen kişi ne dediğimi anlayacaktır. Direk HTML öğrenen kişinin muhtemelen kafası karışacaktır.
HTML ve CSS neden yazılımcının işidir? Fikrimi beyan etmek isterim.
Diyelim ki projenizin kullanıcıları genellikle ekran okuyucu (screen reader) kullanan veya klavye üzerinden TAB ile sayfa içinde hareket eden insanlar. Yani sitenin "erişilebilir (accessible)" olması gerek.
Türkiye'de yaşarken ABD'de bir firma için çalışan bir yazılımcı, ABD piyasasının çok altında bir maliyetle Türkiye piyasasının çok üzerinde paralar kazanabilir. Tek problem iletişim kurabilecek seviyede İngilizce bilen bir toplum olmayışımız.
Hemen hemen hiçbir teknoloji veya yazılım şirketinin kullandığı sistemler, frameworkler, vs. okullarda öğretilmiyor. Herkes bu tecrübeyi bir yerlerde kazanmak zorunda. Dolayısıyla böyle bir piyasada eleman yetiştirmek şirketlerin kollektif sorumluluğunda.
Herkes birilerini yetiştirecek. Yetiştiği yerde kalıp kalmamak kişiye kalmış. Eğer yetiştirdiğiniz kişinin sizinle kalmasını istiyorsanız, piyasada hak ettiği değer neyse onu verirsiniz. Bu kadar basit. Sonuçta alacağınız senior kişiyi de birileri yetiştirdi.
Bir sene çalıştıktan sonra işi bilen birisi olarak başka bir firmadan teklif alıyorsunuz ve size önerilen ücret 8k üzerinde. Bunu mevcut firmanıza bildirdiniz ve o fiyata çıkamayacağını söylediler. Hala sadık olup kalmak isteyebilirsiniz. Devamını dinleyin.
Merhaba arkadaşlar. Amazon mülakat tecrübemi çok soran oldu (2 kişi). O yüzden flood yapayım dedim. Baştan söylemek istiyorum. Yazdıklarım benim tecrübelerime dayalı olacak. Yani nasıl hazırlanılır fikrinden ziyade ben ne yaşadım? Buna göre yazacağım.
Yaptığınız iş bir yerde 5k ediyor, başka bir yerde 8k ediyor ise, neden 8k olana gitmeyesiniz? Bu işin paraya ve size bakan yönü. İşin bir de şirketler tarafından "emek verdik, bizi terketti" noktasına gelen ağlama yönü var.
Katılıyorum. Hatta 4 yıl da yetmez, 10 yıl parasız köle gibi akşam, haftasonu demeden çalışın. Aileniz, arkadaşınız olmasın, 4 saat uykuyla durun her gün. Sonunda hazret sizi bu pozisyona layık görürse 5 bin TL maaşla bilgisayarınızı cebinizden ödeyerek alıp başlarsınız.
Kabataslak bir hesapla işverene 10 ay bir zaman dilimi süresince indirimli hizmet sunmuş oluyorsunuz zaten. İşveren bunu devam ettirmek istiyor çünkü kim ihtiyacı olduğu dışarda 8k olan bir servisi 5-6k ya almak istemez?
Son olarak bahsetmek istediğim bir şey var. Eğer bir şirketin işleri bir yazılımcının ayrılmasıyla çökecek noktaya geliyorsa, o şirkette problem vardır. Sistem doğru kurulmamış, işler baştan yanlış tasarlanmış demektir.
Üzücü bir durum.
Geçen sene
@CommandBar
isimli start-up şirketin front-end mülakatına girmiştim. İstedikleri (production'da kullanmalarına imkan olmayan) test projesini bitirip teslim ettiğim için $50 Amazon kredisi göndermişlerdi.
Sonra yazılımcılar neden yurt dışına gidiyor..
Amerika'da ilk işimde çalışırken şirketin kültüründe öğrendiğim bir deyim var: "Yarın X kişisine otobüs çarparsa ne olacak?" Bu deyim, birisinin işten çıkma ihtimaline karşı alınacak tedbirleri konuşurken kullanılıyordu.
O yüzden dokümantasyon, yedekleme, günlük işerin otomasyonu gibi konularda periyodik olarak tedbirler aldık. Yaptığımız iş çalışanlardan bağımsız, yeni gelen kişinin devralabileceği bir sisteme oturtuldu.
YouTube reklamlarından 111 dolar gelmiş 😄
Öğrenci arkadaşların katılacağı bir proje yarışması düzenleyip bu parayı en çok beğeni alan projeyi yapan iki öğrenci arkadaşımıza vermek istiyorum. Bir planım var ama sizin de görüşlerinizi duymak isterim.
CSS'in prefers-color-scheme özelliğini kullanarak, ziyaretçilerinizin işletim sistemlerindeki karanlık mod tercihlerine göre sitenizin karanlık modunu aktif hale getirebilirsiniz.
MDN:
Onu yetiştiren firmanın duygularını düşünmüyorsunuz değil mi? "Bu adama o kadar emek verdiler, almayalım, işverenine yazıktır" diyor mu firmalar? Peki neden benzer bir merhamet çalışanlardan bekleniyor?
Yazılımla yeni ilgilenmeye başlayanlara tavsiye 📢
React vs. Angular
CSS vs. Tailwind
frontend vs. backend
muhabbetlerine girdiğiniz her an ayrıntılara takılıp büyük resmi kaçırıyorsunuz.
Esas olan;
💵 Maliyet düşürmek
⚙️ Takım çalışması
🔋 Yüksek uptime
3. Soru sorduğunuz kişi takım lideriniz veya müdürünüz ise, “vaktinizi alıyorum ama” gibi özür dileyici bir tavır takınmanıza gerek yok. Onların görev tanımından birisi de size yardımcı olmak.
Ayrıca zorunlu bir iş değiştirme olmasına rağmen Facebook'tan daha yüksek bir maaş da bu işin bonusu oldu, dolayısıyla kariyerim bir kaç aylık bir sekteye uğrasa da en azından maddi anlamda daha da rahatlamış olacağım.
Birisi yazılım sektörüne girmedeki başarı hikayesini paylaştığında hemen yorumlara gidip 'ya o iş öyle değil' diyenlerin yorumlarını okuyup kahkaha atıyorum 😂😂😂 la adam yaptım, başardım diyor işte daha ne konuşuyorsunuz ya 😅
Türk yazılımcı taymından önüme düşenler öyle trajikomik ki... MacBook'la mouse kullanılmaz diyenler, gatekeeping uğruna 'sen yazılımcı mısın, sen sittir git' diye sağa sola salya saçanlar.. bunlarla aynı ortamda çalışanlar çelik gibi sabrınız olmalı, nasıl dayanıyorsunuz 🥲
parseInt ile Number farkını biliyor musunuz?
Resimdeki örneklere bir bakın. Number her zaman için string bir ifadeyi integer'a dönüştürmede tercihiniz olsun.
sitesini kullanarak Readme dosyalarınıza repolarınızla ilgili teknik detayları gösteren ve diğer birçok amaç için kullanabileceğiniz rozetler (badges) ekleyebilirsiniz.
Uzun branch isimleriyle çalışırken, en son üzerinde çalıştığım branch isimlerini unutuyordum. Şöyle bir git komutu buldum:
git branch --sort=-committerdate
Branch listesini, o branch içinde en son yapılan commit tarihine göre sıralıyor.
2012 yılında R10'da link satıyordum. Alıcılardan birisi Bitcoin ile ödemeyi teklif etmişti. İçimden "sen kimi kekliyon olm" diyip, kibarca reddetmiştim. Yüzyılın dangalağı kim diye sorarlarsa buraya yönlendirebilirsiniz.