Frontend Developerlar için İş başvurusu ve Kariyer tavsiyeleri
Tags: frontend, kariyer, javascript
Published: 2021-03-21 22:10:43

Herkese merhaba!

Yazılım dünyasına adım atmaya hazırlanan arkadaşlar ile, bu zamana kadar edindiğim tecrübeleri derleyip paylaşmak istedim. Bu yazıyı, ağırlıklı olarak Frontend developerlar için hazırlamış olsam da, değineceğim bir çok nokta yazılım dünyasındaki herhangi bir iş başvurusu için de kullanılabilir. Yazıya iş başvurusu yapmadan önce nelere dikkat edilmeli, iş başvurusu yaparken şansınızı artıracak, önemli olabilecek, aklıma gelen şeyleri dahil etmeye çalıştım. **Bahsettiğim her madde, şirketten şirkete farklılık gösterebilir.** Bunların dışında bir kaç kişisel tavsiyemi de ekledim. 

Çayınızı kahvenizi aldıysanız başlayalım :)

## Başvurmadan önce nelere dikkat etmeliyim?
- Başvurmadan önce dikkat etmeniz gerekenlerden birincisi, eğer ilan ingilizce verilmiş ise ve ingilizce bir gereklilik olarak belirtilmiş ise, ve yeterli ingilizce derecesine sahip değilseniz başvurmayı tekrar gözden geçirin derim :) Global düzeyde iş yapan şirketler, adayları pre-screening'den geçirirler. İngilizce yeterliliğiniz yok ise, ya pre-screening'den önce elenirsiniz, ya da pre-screening'de İK ile karşılaştığınızda hızlı bir şekilde elenirsiniz.

<br />

- İngilizceye önem verin, yeterli olmaya değil, çok iyi bir noktaya getirmeye çalışın. Globalde faaliyet gösteren şirketlerde iş yapmak istiyorsanız, kendinizi alanınızda daha iyi bir noktaya taşımak istiyorsanız, ingilizce çok çok çok önemli. Dokümantasyonları okuyabilip daha iyi anlamak, yeni çıkan herşeyi hızlıca öğrenebilmek, iletişim kurabilmek adına ingilizce yazılım dünyasının olmazsa olmazı.

<br />

- Bunun dışında, yeterlilik kısmında "mutlaka gerekli" olan teknolojilere dikkat edin. 1-2 tanesi eksik ise sorun olmayabilir, nitekim tamamı eksik ise muhtemelen dönüş alamayabilirsiniz. Biraz da şans işi bu kısım, çünkü bazı şirketler spesifik bi alanda uzmanlaşmış birini ararken, diğerleri verdikleri ilan üzerinden hem uzman, hem de yetiştirmek için başlangıç seviyesinde birini arıyor olabilirler.

<br />

- Linkedin profilinizi mutlaka tamamlayın, güncel tutun. Unutmayın, Linkedin Facebook veyahut Instagram değil, profesyonel sayılabilecek bir resminizi koyun. Teknik bilginizi, iş/staj deneyimlerinizi ekleyin. Linkedin üzerinde aktif olmaya çalışın, okuduklarınızı paylaşın, ilgi duyduğunuz alanlarda bulunan gruplara katılın. Head hunter'lar buradan size kolaylıkla erişebilsin.  


## CV'de nelere dikkat etmeliyim?

- En önemli etkenlerden birisi, CV'nizin göze hitap etmesi. Özellikle Frontend geliştiriciler için, bunun kritik önem taşıdığını düşünüyorum. Beyaz sayfanın üzerine gelişi güzel, rapor gibi yazılmış bir CV, akşama kadar 147 adet başvurunun üzerinden geçmiş olan, IK'da çalışan Sevda hanımın gözüne hitap etmediği (edemediği) için arada kaynayabilir (bkz. burası çokomelli). Sabır gösterip CV'ye baktığında ise, neyin nerede yazdığını kolay bir şekilde takip edemeyeceği için sizi pas geçebilir (bkz. UX). Becerilerinizi henüz CV yazma aşamasında göstermeye başlayın. Bildiğiniz teknolojileri, okuduğunuz okulu, iş deneyiminizi, diğer olması gereken herşeyi, bir web uygulaması yapar gibi ciddiye alarak güzel bir layout ile yapın. Sıfırdan uğraşmak istemezseniz, ufak bir arama ile bir sürü template bulabilirsiniz.

Örnek: 

![cv_sample](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kkcmni766zk2lzep6haz.png)

- **Eğer başvuracağınız iş ilanı ingilizce ise, CV'nizi ingilizce olarak hazırlayıp gönderin.** Başvurduğunuz şirket Global bir şirket ise, İK bölümü Türkiye'de olmayabilir. Bu durumda CV'nizden birşey anlaşılmayacağı için büyük ihtimalle pas geçerler.

<br />

- Bir diğer önemli nokta ise yazım hataları. CV'nizi yazdıktan sonra mutlaka ama mutlaka herşeyi dikkatlice kontrol edin. CV'nize bakan İK olabilir, başka bir yazılımcı da olabilir (muhtemelen işiniz daha zor olur bu durumda). _"CV'de bir sürü yazım hatası var, acaba nasıl kod yazıyo?"_ gibi bir soru oluşturacak hatalar olmasın. Netice olarak yaptığımız iş dikkat gerektiren bir iş ve dikkatsiz olduğunuz izlenimini bırakmak istemezsiniz.

<br />

- **Mutlaka ama mutlaka github profil linkiniz, var ise bitirdiğiniz projelerin linki CV'de bulunsun.** Neyi nasıl yaptığınızı, yazdığınız kodu, ne seviyede olduğunuzu gösterebilmek adına çok önemli. (Github ile ilgili daha derin bilgi yazının ilerleyen kısımlarında).

<br />

- İş/staj deneyiminizin altında, kısada olsa bu süreçte neler yaptığınızı, hangi teknolojileri kullandığınızı açıklayın.

<br />

- İlgi çekebilecek kısa bir giriş kısmı yazın. Bu kısımda hangi teknolojilere hakimsiniz, hangi alanda kendinizi geliştirmek istiyorsunuz, hangi konularda kendinize güveniyorsunuz bunları kısa ve net bir şekilde yazın.

Örnek:

>_Hi! My name is X and I have been passionate about development of robust system infrastructure, with consideration of customer needs, functionality, latest technology and programming standards. My main domain is X, however, I am interested in Y and Z also._

<br />

- Mezuniyet belgesi, transkript vs. gibi ekstra dökümanları **göndermeyin, CV'nize eklemeyin.** İşin açıkçası Türkiye'de bunları CV'de görmeyi bekleyen şirketler varmı bilmiyorum, fakat globalde bu tarz belgelerin hiç bir önemi yok.

<br />

- Doğruluğu olmayan, emin olmadığınız ve arkasında duramayacağınız hiç bir şeyi eklemeyin. Bilmediğiniz veyahut çok üstünkörü bildiğiniz bir teknolojiye aşırı hakimmiş gibi göstermeyin. Unutmayın, CV'nize eklediğiniz her şey karşı taraftan size yol, su, soru, assignment olarak dönebilir.

## Github ve hobi projelerimde nelere dikkat etmeliyim?

Bu bölümdeki bilgilerin çoğunu özellikle Frontend developerlar için yazıyorum. Diğer alanlar için de prensip olarak uygulanabilecek bir kaç şey olabilir.

- Bu noktada en önemli tavsiyem, bolca hobi projesi yapıp Github'a ekleyin. Yazdığınız her satır kod Github'da bulunsun. Hobi projesi için, _"ama benim aklıma bir şey gelmiyor"_ dediğinizi duyar gibiyim :) Bu projelerin çok ileri seviyede olması gerekmiyor. Kendi portfolyönüzü oluşturduğunuz kişisel bir web sayfası, basit bir to do list uygulaması, basit bir oyun (quiz, adam asmaca), film kütüphanesi gibi şeyler yapılabilir. **Burada önemli olan şey yaptığınız projenin ne kadar karmaşık olması değil, sizin, yazılım dünyasına olan ilginizi ve öğrenme hevesinizi gösterebilmeniz.**

<br />

- İkinci önemli olan şey ise bir önceki maddede bahsettiğim hobi projelerinizin düzgün bir şekilde çalışması. Örneğin kişisel web sayfası yaptıysanız, deploy ettiğiniz yerde çalışıyor olsun. Evet, yaptığınız şey basit olabilir, ama özenle yapılmış olsun, hataya yer bırakmayın. Unutmayın, profesyonelliğe adım atmak istiyorsunuz, yaptığınız işler de olabildiğince profesyonel bir şekilde yapılmış olsun, gelişigüzel yapılmış görünmesin. Portfolyönüzü teknik anlamda kontrol eden kişiye temiz ve dikkatli çalıştığınızı, size güvenebileceğini gösterin.

<br />

- Yine hobi projelerinizle alakalı olarak; **kodunuzu mutlaka ama mutlaka ingilizce yazın.** Yazılım dünyasının dili ingilizcedir. Türkiye içerisinde ufak/orta çaplı bir şirkete başvurduğunuzda bu sorun olmayabilir, nitekim globalde iş yapan bir şirkete başvuracaksanız, bu çok önemli. İngilizce kod yazmayı prensip haline getirin. Global standartları takip edin ve uygulamaya çalışın.

<br />

- `create-react-app` veyahut `vue/cli` ile oluşturduğunuz projelerde, `README.md` dosyasını olduğu gibi bırakmayın. Projenizle ilgili ufakta olsa bir açıklama yazın, bir yere deploy ettiyseniz linkini koyun.

<br />

- `.gitignore` dosyasını oluşturup, repository'de **bulunmaması** gerekenleri (.DS_Store, thumbs.db vs.) mutlaka ekleyin. JavaScript projeleri için, `node_modules` klasörü örneğin. Bu klasörün repository'de bulunması amatörce bir hata olarak algılanabilir.
 
ayrica bkz.
![node_modules](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zr5cnp9uq8yyxg2fb265.png)

- Github kullanmak sizin için standart olsun. Her proje, her satır, her karakter için Github kullanın ve Github'i en efektif şekilde kullanmaya çalışın. Bütün değişikliklerinizi tek commit içerisine koyup çarşamba pazarının dijital hali gibi göndermeyin. Her yaptığınız değişikliği ayrı ayrı commitler ile gönderin.
Bunun sebeplerinden birisi, projenizin repository'de geçmişini çok net bir şekilde gösterebilmek. İkinci sebebi de kendiniz için, yaptığınız bir değişiklikte projeniz çalışmamaya başlar ise, o noktaya rahatlıkla dönebilmeniz ve hataya neyin sebep olduğunu bulabilmek (Git'in binbir faydasından sadece birisi). Command Line üzerinden `git` kullanmak hoşunuza gitmiyor ise, ücretsiz olarak [Source Tree](https://www.sourcetreeapp.com/) kullanıp işleri kolaylaştırabilirsiniz. Git kullanımının bir çok farklı metodolojisi var, bu konuyu da derinlemesine araştırmanızı tavsiye ederim.

<br />

- Bunların dışında kodunuza özen gösterin, yazım hataları, indentation, code-style'a dikkat edin, tutarlılık olsun.

Örnek vermek gerekirse, bir yerde

```js
if (case) {
  console.log()
}
```

yazdıysanız, başka bir yerde

```js
if(case) {
    console.log()
  }
```

gibi bir tutarsızlık olmasın (bununla ilgili ek bilgi Bonus kısmında, bkz. ESLint).

## Bonus
Yukarıda bahsettiğim şeyler dışında iletmek istediğim bir kaç kişisel tavsiyem ve  bir kaç ek bilgi daha var. Uygulayıp uygulamamak sizlere kalmış. Nitekim global anlamda iş yapabilmek ve kendinizi/yaptığınız işi bir üst seviyeye taşıyabilmek adına uygulamanızı tavsiye ederim.

- Yukarda en son _"kodunuzda tutarsızlık olmasın"_ demiştim. Bu tarz hataları gidermek için ve JavaScript'te best-practice olan şeyleri hızlıca uygulayabilmek için **ESLint** ve **Prettier** gibi araçları **mutlaka kullanın.** [(bkz. ESLint nedir?)](https://www.google.com/search?q=eslint+nedir+nasil+kullanilir&oq=eslint+nedir+nasil+kullanilir&aqs=chrome..69i57.2904j0j7&sourceid=chrome&ie=UTF-8) Her IDE'de (VS Code, IntelliJ vs.) kodunuzu otomatik olarak düzeltmek için bir fonksiyon vardır (Format Document), en kısa zamanda bunu uygulamaya başlayın ve alışkanlık haline getirin.

<br/ >

- Temiz kod yazmaya özen gösterin. Yazılım dünyasında her şey teknik anlamda guru olmaktan ibaret değil. Bir noktadan sonra kaç dil bildiğinizin veyahut ne kadar hızlı iş çıkardığınızın pek bir önemi kalmıyor. Yazdığınız kodun temiz olması, kolaylıkla maintain edilebilmesi, sizden sonra projeye göz atan kişinin yazdığınız kodu kolaylıkla anlayabilmesi de çok önemli. Her şey kod yazıp çalıştırmaktan ibaret değil. Tavsiyem, **kod yazarken kitap yazdığınızı ve sizden sonra başka birisinin bunu okuyacağını/anlamaya çalışacağını aklınızda bulundurarak kod yazın.**

Temiz kod demiş iken Uncle Bob'u es geçmeyelim:

{% youtube 7EmboKQH8lM %}

- Teknik yanınızın dışında, teknik olmayan yanınızı da geliştirmeye çalışın. Daha önce de dediğim gibi, her şey teknolojiden ibaret değil. Karakter olarak şirket kültürüne ve katılacağınız ekibe uygun olup olmadığınız da önemli.

<br />

- Kendinizi ilerletmek adına, veyahut bir yol çizebilmek adına aşağıda vereceğim yol haritasına mutlaka göz atın. 

[Frontend Developer Roadmap](https://roadmap.sh/frontend)

Baktınız mı? Gözünüz korktumu? Korkmasın :) Yol haritasındaki her şeyi bilmenize gerek yok, bilmeye de imkan yok zaten. Fakat uzmanlaşmak istediğiniz alanda neleri bilmeniz gerektiğine en azından bir göz atın. Vakit buldukça bu haritadan seçip öğrenmeye çalışın, en azından neyin ne olduğu konusunda fikir edinin.

<br />

- Yeterli seviyeye geldiğinizde açık kaynak kodlu projelerde yer almaya çalışın. Bu sizin ne kadar ilgili olduğunuzu, öğrenme hevesinizi, becerilerinizi gösterebilmek için en iyi fırsatlardan birisi. _"Nereden başlayacağım?"_ derseniz, Github üzerinde yüz binlerce proje mevcut. Herhangi birini gözünüze kestirip, forklayıp, değişiklikleri yapıp pull request göndererek başlayabilirsiniz.

<br />

- Bütün bunların dışında eklemek istediğim bir şey var. Yazılım dünyasında iş başvurusu yaptığınızda, **hangi üniversiteden mezun olduğunuzun çok büyük bir önemi yok.**
Bu madde belki her şirket/rol için geçerli olmayabilir, netekim yazılım dünyasında hangi okuldan mezun olduğunuzun dışında, bir çok önemli faktör var.

<br />

- Kod yazmayı üniversitede öğrenmiş de olabilirsiniz, veyahut YouTube/Udemy üzerinden dersler ile de öğrenmiş olabilirsiniz. Ama diplomadan önce yazılım dünyası ile ne kadar ilgili olduğunuz, neler bildiğiniz/yapabildiğiniz, yeni teknolojileri öğrenme arzunuz, problem çözmeyi sevmeniz, temiz kod yazabilmeniz, daha önce yaptığınız işler gibi bir sürü önemli faktör var. Bu saydıklarım olmadan, Stanford'dan bile mezun olsanız farketmiyor. Bu "üniversite eğitimine gerek yok" demek değil tabiiki. Anlatmak istediğim şey, iş başvurusu yaptığınızda tek önemli faktörün üniversite ismi veyahut diploma notu olmadığı.
 
<hr />
 
Son söz olarak, bu tavsiyelerin her birini yapmak zorunda değilsiniz. Yazdıklarım, _"yazılım dünyasında iş nasıl bulunur"_'un kuralları veyahut formülü değil, nacizane tavsiyelerimdir.

Bol şans diliyorum :)