Labs

Geliştiriciler için Yol Haritası

İçindekiler? Önsöz Geliştirici Nedir? Software Developer Web Developer Mobile Developer IT Uzmanı nedir ve ne iş yapar? Firmaların Aradıkları Özellikler Nelerdir? 2021’de En Çok Kazanan Meslekleri Teknolojinin Gittiği Yer: Ayna…

Me
Hakkı Cengiz ☙ 1 dk okuma süresi
☙ 27 May 2021 ☙ 54

İçindekiler?

  1. Önsöz
  2. Geliştirici Nedir?
  3. Software Developer
  4. Web Developer
  5. Mobile Developer
  6. IT Uzmanı nedir ve ne iş yapar?
  7. Firmaların Aradıkları Özellikler Nelerdir?
  8. 2021’de En Çok Kazanan Meslekleri
  9. Teknolojinin Gittiği Yer: Ayna Dünyalar
  10. Yol Haritaları
  11. Kavramlar
  12. Yazar Hakkında
Üretken, Geliştirici Gençlere Yol Göstermesi Temennisiyle

1. Önsöz

Bu kitapta yazılım alanında ortaya çıkan yeni mesleklerin, yaptıkları işin, firmaların aradığı yeterliliklerin, hiyerarşik olarak alt ve üst dallarının neler olduğuna dikkat çekmek istenmektedir. Bu bağlamda gençlerimizin kendilerine çizecekleri yolda daha net adımlar atabilmesi hedeflenmektedir.

Günümüzün yazılım dünyasında yaşanan gelişmeler ışığında ortaya çıkan bu meslekleri irdelerken amaç her ne kadar tam kapsamlı bir çözüm getirmek, yol haritası çıkarmak olsa da eksiklerimiz mutlaka olacaktır.

Bu konuda Türkiye’de tam bir karmaşa mevcut. Bilgisayar ile uğraşan birinin ne iş yaptığını bilmiyoruz ve “bilgisayarcı”, “coder”, “webmaster”, “hacker” gibi etiketler takarak uzak kaldığımız bu teknolojik alana uzak kalmaya devam ediyoruz. Geldiğimiz noktada karmaşa öyle ki çoğu yeni başlayan geliştiriciler hayal ettiği alandan sapmalar yaşıyor. Ne kadar çok programlama dili öğrenirsem o kadar iyi felsefesi ile tabiri caizse daldan dala atlıyor. Kimi zaman bir programlama dilinde gereğinden fazla uzun süre harcıyor. Tabiki bunların hepsi onun için tecrübedir ama zamanın önemi ve doğru kullanımı burada devreye giriyor. Ve kaybedilen zaman geri gelmiyor. Demem o ki bilişim dünyasında üretilecek yol haritaları ile bu bahsettiğim sorunun çözümüne bakmalıyız.

Türkiye’de bilgisayar ve teknolojileri alanında artık 7’den 77’ye hemen herkeste ufak tefek bir bilinç uyanmış olsa da halen yeteri kadar önem verilmemekte. “Kalk artık oğlum o bilgisayarın başından”, “oğlum niye anakartı yaktın”, “yeter oğlum gözlerin kör olacak”, “bilgisayar zararlı” telkinleri yerine PC’yi daha verimli kullanması adına “oğlum/kızım sende kendi oyununu geliştir bak işte yolu buradan geçiyormuş”, “paint’te çizim yapacağına Photoshop, Illustrator kullan kızım”, “deden de o ide’yi kullanırdı”..

Kitabın Başlığı Hakkında

Kitabı yazarken üzerinde çokça kafa yorduğum bir konu da kitabın başlığına karar vermekti. Çağımızın teknoloji dünyasında kullanılan global dil, İngilizcedir. Tüm uygulamalardan tutun onları ekrana yansıtan işletim sistemlerinin tabanı kısaca her geliştirmenin temeline/arkaplanına indiğimizde İngilizce olarak kodlanmış bir yazılım diline rastlarız.

Alis Harikalar Diyarında

Geleceğin teknolojileri Yapay Zekâ ve Ayna Dünyalar çevresinde süratle gelişirken bu alanda Türkiye olarak bizlerinde geliştiriciler yetiştirmemiz oldukça önemlidir.
Bilgisayarın sanal dünyasındaki herşeye yazılım diyoruz. Yazılım dünyasına bi ışık tutalım birlikte.
İşte tüm bu nedenlerle herkes için açıklayıcı ve rehber niteliğinde olacak bir kitap yazma ihtiyacı ortaya çıktı. “Geliştirici Yol Haritası” sizlere geleceğin dünyasında geliştirici rolünü isteyenler için, sizi Alis’in harikalar diyarı yolculuğunda size rehber niteliği sağlaması dileğiyle.

2. Geliştirici Nedir?

Geliştirici (Developer), bilgisayar veya bilgisayar türevi dijital aygıtlar için uygulama ve yazılımlar geliştiren, bu yazılımların çalışmasını sağlayan ve kaynak kodunu oluşturan kişidir. Developer, yani geliştiriciler farklı alanlar üzerine uzmanlaşıp çalışmalarını gerçekleştirebilirler. Bu durumda kişiler kendilerini Yazılım Geliştiricisi (Software Developer), Web Uygulamaları Geliştiricisi (Web Developer), Mobil Uygulama Geliştiricisi (Mobile Developer) gibi unvanlarla tanıtabilirler.

Developer kişileri nitelendirmek için Developer ile aynı anlama gelen yazılım geliştiricisi, bilgisayar yazılımcısı, bilgisayar programcısı, coder veya yazılım mühendisi gibi sıfatlar da kullanılabilmektedir. Temelde tüm bu sıfatlar yine Developer’ı nitelendirmekte olup hepsi aynıdır.

Developer’lar bugün bu yazıyı okumanızı sağlayan onlarca ve hatta yüzlerce yazılımın geliştirilmesine katkıda bulunan kilit kişilerdir. Genel olarak geliştiriciler farklı programlama dilleri öğrenir ve akabinde öğrendikleri programlama dilleri üzerinde yazılımlar geliştirirler. Meydana getirilen yazılımlar bazen tek bir Developer’ın ürünüyken bazen de yüzlerce Developer’ın ortak geliştirdiği bir ürün olabilir.  Örneğin bugün kullandığımız işletim sistemleri çok detaylı yapılara sahip olduğu için yüzler hatta binlerce Developer’ın geliştirmesiyle meydana gelen yazılımlardır.

Developer olmak tek başına bir yazılımı baştan sona meydana getirmek için çoğu zaman yeterli değildir. Nitekim her yazılım kod alt yapısının yanı sıra onu kullanıcılara daha güzel gösterecek tasarıma, yazılım mimarisine, yazılım dokümanlarına ihtiyaç duyar. Bu açıdan bakacak olursak developer’ların tek başına bir yazılımı geliştirmesinin ne kadar zorlu bir süreç olduğunu betimleyebiliriz.

# Developer Nasıl Olunur?

Siz de bir Developer olmak kendi yazılımlarınızı geliştirmek ve insanların hayatlarını kolaylaştırmak mı istiyorsunuz? O halde aşağıdaki maddeler yardımıyla nereden ve nasıl Developer olmaya başlayabileceğini öğrenebilirsiniz;

  • Developer olmak sadece birkaç hafta veya ayda olabilecek süreç değildir. Başarılı bir Developer olmak ve hayallerinizi gerçekleştirmek için kendinizi bu alanda yıllarca geliştirmeniz gerektiğini kabullenmelisiniz.
  • Hangi alanda bir Developer olmak istediğinize karar verin ve ihtiyacınızı karşılayacak programlama dillerine yönelin. Bir Developer’ın tüm programlama dillerini bilmesi ve bu dillere hâkim olması mümkün değildir.
  • Hangi dilleri öğrenmeniz gerektiği konusunda araştırmalar yaptıktan sonra ilk olarak en basitiyle başlayın. Örneğin Web Developer olmak istiyorsanız HTML ve CSS bilmeden PHP bilmeniz size hiçbir avantaj sağlamayacaktır.
  • Programlama dillerini öğrenirken sürekli hatalarla veya ilk görüşte çok zor görünen denklemlerle karşılaşacaksanız korkmayın, herkes ilk aşamada sizin gibi hissediyor. Bolca araştırma yapın ve sorunlarınızın çözümüne ulaşmak için adım atın.
  • Programlama toplulukları, Facebook grupları, forumları ve internet sitelerini takip edin. Takıldığınız yerlerde usta geliştiricilerden yardım talep edin fakat her şeyi hazır beklemeyin.
  • Kodlama yapmayı kolaylaştıran yazılımları keşfedin. Örneğin Notepad++ ile PHP kodlamak yerine PHP Storm’u tercih edin.
  • Bolca araştırma yapın ve ilgi alanınızla ilgili projeleri takip edip kendinizce yorumlayın. Web developer olmak istiyorsanız ilginizi çeken internet sitelerinin nasıl hazırlanmış olabileceği hakkında düşünün ve algoritmalarını anlamaya çalışın.
  • Son olarak kendinize inanın ve kariyeriniz için çalışın.

Software Developer Nedir?

Önsöz’de meslek seçiminin öneminden bahsetmiştik. Şimdi üzerinde biraz duraksayıp geçeceğimiz konu Software Developer; aslında üzerine tonlarca konu yazılsa da yetmez denecek cinsten. PC’deki tüm yazılımlar, oynadığımız oyunlar, ofis yazılımları vs. hepsi bu alana girmektedir. Software Developer ise software develop eden kişi yani yazılım geliştiricisi.

İşte ben de software developer olmak isteyenler için, software developer hakkındaki bütün bilgileri topladım. Software Developer ne iş yapar, firmaların aradıkları özellikler? Bu ve buna benzer sorularınızın cevabını bu yazımızda bulabilirsiniz.

Software Developer Ne İş Yapar

Software Developer alanında oldukça fazla alan olmasına rağmen özellikle merak edilen Game Developer yani Oyun Geliştiricisi üzerinde çokça duracağız.

  • Game Developer (Oyun Geliştiricisi)
  • Software Application Developer

Nasıl Game Developer Olunur?

Giriş

Oyun meraklılarının çoğu, herhangi bir şekilde kodlama ile ilgilenmedikleri sürece oyun programcısı olmayı hayal etmişlerdir. Bir oyun geliştiricisi olmak için aşılan süreç, düşündüğünüzden hem daha zor hem de daha basittir. Peki oyun geliştirici nasıl olunur? Hadi göz atalım!

Adım 1: Oyunun Amacı

Bir şeye hakim olmanın ilk adımı, daima o konunun usta bir öğrencisi olmaktır. Harika bir müzisyen olmak istiyorsanız, önce harika müzikleri dinleyin. Bir sonraki harika romanı yazmak istiyorsanız, daha önce yazılmış tüm harika romanları okuyun.

Bir sonraki harika video oyununu geliştirmek istiyorsanız, daha önce gelen başarılı oyunları oynayın. Ancak, düşüncesizce onları oynamak yeterli değil. Geliştiricilerin aldığı farklı kararları anlamaya çalışarak dikkatlice oynamak zorundasınız.

Oyunu oynayın ve oyunun anlatı yapısına, nasıl bir araya getirildiğine dikkat edin. Önce konunun öğrencisi olun. Sonra gerisi için endişelenin. Bu, bir oyun geliştiricisi olmak için attığımız ilk adım.

Adım 2: Kendinizi Topluluğa Katın

21. yüzyılda yaşamanın en büyük avantajlarından biri hepimizin birbirine bağlı olmasıdır. Video oyunları tutkusunu paylaşan, ancak dünyanın diğer tarafında yaşayan insanlarla bağlantı kurma gücünüz var. Bu 100 yıl önce düşünülemezdi. Bundan yararlanın.

Video oyunu topluluğunun aktif bir üyesi olarak, oyuncuların, gelecekteki hedef kitlenizin neyi sevip neyi sevmediği hakkında daha derin bir anlayış kazanacaksınız. Onları eğlendiren ve dayanamadıkları şeyi keşfedin.

Aynı zamanda oyun programcısı olmak isteyenlerle de tanışacaksınız. Kim bilir, belki bir gün takım kuracak ve bir sonraki Ubisoft'u kuracaksın! Tıpkı film yapımı gibi, video oyunu geliştirme de bir takım girişimidir.

Topluluk içinde aktif olmak, ilk oyun endüstrisi işinizi bulmanıza da yardımcı olacaktır. Zaten sektörde çalışan insanları tanıyorsanız, iş ilanlarını duyabilirsiniz. Kim bilir, bu arkadaşlar sizi pozisyon için tavsiye edebilir!

World of Warcraft Oyun Direktörü Ion Hazzikostas, Blizzard Entertainment'da çalışmaya ve bir avukat olarak işinden ayrılmaya davet edilmeden önce, Internet'teki en büyük WoW forumları olan Guild Elitist Jerks Guild Ustasıydı.

Doğrudan sevdikleri oyun üzerinde çalışmak için halka açık bir şekilde vurularak iyi puanlar veren açık sözlü hayranların çok sayıda örneği vardır. Doğrudan oyun geliştirme işinde bulunmayabilirsiniz ama ayağınızı kapıya sokabilirsiniz.

Nasıl bir oyun geliştiricisi olunacağına dair kendi görüşünüz varsa ve topluluktaki insanlar arasında arkadaş edinmeyi gerektirmiyorsa, yine de başarılı olabilirsiniz. Ama çok daha zor olacak.

Adım 3: Bir Plan Yapın

Oyun geliştirme oldukça karmaşık bir konudur. Bir plan olmadan yaklaşmak felaket için kesin bir reçetedir. İlk önce, son hedefinizin ne olduğuna karar verin. Bir sonraki Assassin'in Creed'ini yapmak ister misiniz? Bir sonraki Pokémon GO’yu serbest bırakmak istiyor musunuz? Hedefinize ulaşmak için öğrenmeniz gerekenler her iki durumda da oldukça farklıdır.

Planınız aşağıdakiler dahil birçok farklı parçayı kapsamalıdır:

Çalıştırmak istediğiniz motor

Aralarından seçim yapabileceğiniz birçok farklı oyun motoru var. Daha önce bu ifadeyi duymadıysanız, oyun motoru oyunun üzerine kurulu bir çerçevedir. Oyunun fiziğini, girişlerini, yapay zekayı, oyun içi olayların senaryolarını ve daha birçok şeyi yönetir, böylece hepsini sıfırdan kodlamanıza gerek kalmaz.

Motorlar olmadan geliştiriciler, yapmaya çalıştıkları her yeni oyun için kendi oyun motorlarını yazmak zorunda kalacaklardı; bu, yapım süresini uzatacak ve şimdiden olduğundan daha karmaşık hale getirecekti.

Aralarından seçim yapabileceğiniz ve oynanabilir bir şey üretebileceğiniz bazı oyun motorları var, bunlar:

·         Unity

Bu başka bir harika motor. Basic Sürümü ücretsiz olarak geliyor ve daha iddialı projeler üzerinde çalışmaya hazır olana kadar nasıl çalıştığını anlamanıza yardımcı olması adına size yetecektir. Pillars of Eternity, Lara Croft GO ve Kerbal Space Program gibi oyunlar Unity kullanılarak yapıldı.

·         The Unreal Engine

The Unreal Engine, dünyanın en iyilerinden biridir. Muhtemelen, Fortnite Battle Royale kullanarak yapılan bir şeyi oynamışsındır? Ücretsiz kullanabilirsiniz, ancak yayınlandıktan sonra küçük bir gelir yüzdesi ödemek zorunda kalacaksınız.

·         CryEngine

Far Cry serisini seviyorsanız, bu motoru denediğinizden emin olun. Sonuçta, Far Cry serisini yapmak için kullanıldı. Tamamen ücretsiz. Üstüne üstelik hiçbir telif ücreti ödemek zorunda kalmadan tüm özelliklere erişebiliyorsunuz!

Bizim özel olduğumuzu düşünmüyorum. Başka Türk şirketleri de bu başarıyı elde edebilir. Ama Türkiye’de daha çok cep telefonu için oyunlar yapılıyor. Bunun en kısa zamanda değişmesi için dua ediyoruz. Çünkü Türkiye’de gizli bir potansiyel olduğunun farkındayız."

Avni Yerli, CryTek Kurucu Kardeşlerden.

Öğrenmeniz gereken programlama dili

Öğrenmeniz gereken programlama dili, büyük ölçüde seçtiğiniz oyun motoruna bağlı olacaktır. The Unreal Engine ve CryEngine için C ++ 'a ihtiyacınız olacak. Unity, C # bilmenizi gerektirir.

C ++ ile ilgili problem noktamız, C # ile karşılaştırıldığında öğrenmenin daha zor olmasıdır. C # ile başlamak ve Unity'de oynamak için temelleri ele almak iyi bir fikir olabilir. Oyun geliştirmenin daha kolay bir ortamda nasıl çalıştığını hesaplayabilirsiniz.

Bununla birlikte nasıl oyun geliştirici olunacağını öğrendikten sonra, C ++ 'ı öğrenmek zorunda kalacaksınız. Sonuçta oyun geliştirmede endüstri standardı programlama dilidir.

Küçük hedefler belirleyin

İnsanlar genellikle ulaşmak istedikleri hedefleri belirlerken yeteneklerini ve motivasyonlarını abartıyorlar. Bir oyun programcısı olmak için kendi yolculuğunuzda aynı hatayı yapmayın.

Sizi bir oyun yapmak için genel hayallerinize yönlendiren ulaşılabilir ancak iddialı kısa vadeli hedefler belirlemek, motive olmanın anahtarıdır.

İki yıl içinde bir oyun yapmak için kendinize söz vererek başlamayın, başarısız olacaksınız. Bunun yerine, seçtiğiniz oyun motorunun küçük bir kısmına ve öğrendiğiniz kodlama dilinin belirli bir kısmına nasıl hakim olacağınızı bulmak için kendinize bir ay verin.

Sürekli olarak doğru yöne hareket ettiğinizi hissettiğiniz sürece, motive kalabilirsiniz.

Oyunlaştır

Bir oyun geliştiricisi olmayı öğrenmenin, bunu yapma sürecini oyuna dönüştürmekten daha iyi bir yolu var mı? Yok!

Oyunların, onlara ulaşmak için kuralları, amaçları ve ödülleri vardır. Kurallara uyduğunuz ve önünüzdeki hedefleri gerçekleştirdiğiniz sürece, dopamin reseptörleriniz bir ödül ile çivilenir. Temelde oyunlaştırma budur.

Kendine bir hedef belirle, kuralları belirle ve kuralları uygularken hedefe ulaşmayı başarırsan bir ödül ver.

Adım 4: ŞİMDİ Öğrenmeye Başlayın

İnsanlar koşulların doğru olmasını beklediklerinde, neredeyse her zaman bunu yapmazlar. Nasıl oyun geliştiricisi olunur? Şimdi öğrenmeye başla. Harika oyunları oynayın ve onları analiz edin, oyun topluluğunda aktif olun, tıpkı sizin gibi bir oyun programcısı olmayı öğrenen kişileri bulun.

Ayrıca, Unity oyun motorunda öğrenmeye karar verirseniz, C ++ 'dan daha az karmaşık olan programlama dili olan C # ile öğrenmeye karar verirseniz, Unity kurslarından birine kaydolmayı düşünebilirsiniz. Unity ve oyun geliştirmedeki önemli kavramların çoğunu genel olarak tanıtan iddialı bir kurslar mevcut, genellikle kurs dilleri İngilizce’dir.

Unity kurslarını tamamladığınızda, oyun geliştiricisi olarak çalışmaya başlamaya hazır olmayacaksınız. Yine de başlamak için bir yeriniz olmalı. Ayrıca henüz bilmediğiniz şeyler hakkında da bir fikriniz olacak.

Bu bilgiyle, anlamadığınız her şeyi öğrenmek için hareket edebilirsiniz. Oyun geliştiricisi olma arayışında bir başlangıç ​​noktasına ihtiyacın var. Kurslarda sadece bu ihtiyacı giderebilir.

Adım 5: Uzmanlaş

Nasıl oyun geliştirici olunacağını öğrenirken, tamamen işe yaramaz gibi görünen kavramlarla karşılaşabilirsiniz. Azmet, onları görmezden gelme. Unity ve diğer oyun motorlarındaki her fonksiyonun bir amacı vardır.

Kolayca anlaşılmayabilir, ancak bazı oyun programcıları uzun saatler, hatta günler harcadı, onu kullanabilmeniz için motora kodladılar. En azından gerektiğinde, bunu yapmayı ve kullanmayı öğrenmeyi onlara borçlusunuz.

Hızla bir oyun programcısı olmayı, öğrenmeyi beklemeyin. Yıllarca süren sıkı çalışmayı gerektirecek. Ve “sıkı çalışma” ifadesini hafifçe kullandığımızı sanmıyorum. Değildi. Bir oyun yapmak kolay olsaydı, herkes yapardı. Sonuçta, dünyanın en büyük işlerinden biri.

Adım 6: Bir Takım Bul

Oyun geliştirme takım sporudur. Kendiniz bir oyun yapmak istiyorsanız, oyun motorlarını nasıl kodlayacağınızı ve kullanacağınızı öğrenmek, yeterli olmayacaktır. Bir çizer, animatör, besteci, VFX ustası, yazar, pazarlamacı, 21. yüzyılın teknoloji dünyasının gerçek bir rönesans adamı olmalısınız. (illustrator, animator, composer, VFX master, writer, marketer)

Kısacası, 10 yıl içinde yapmak imkansız.

Bunun yerine, size yardımcı olacak kişileri bulmak için topluluktaki bağlantılarınızı kullanabilirsiniz. Hepiniz bir araya gelmeli, bir oyun için bir fikir bulmalı, nasıl yapacağınız ve işe yarayacağınız konusunda bir plan yapmalısınız.

Bununla birlikte, bir sonraki AAA vuruşunu yapmaya çalışmayın. Takımın bunun için çok küçük olacak. Bunun yerine, rakiplerinizin sunduğundan biraz farklı olan küçük bir Indie oyunu oynamaya çalışın. Hatalarından ders alın, kendi ürününüzü geliştirin.

Adım 7:  Gereken İlgiyi Gösterin

Bir oyun geliştiricisi olarak kariyerinizin başlangıcı zor olacak. Yaptığın her şey yeni olacak, ilk önce onu çözmen gerekecek. Çok çalışacak, boş zamanlarınızda ücretsiz olarak oyun oynayacak, yayınlayacaksınız… ve muhtemelen suya düşecek.

Binlerce oyun mevcut, pek çok insanın seninkini seçmesi muhtemel değil. Yine de seni motive etmesine izin verme. Sadece bir sonraki projeye başlayın ve daha önce yaptığınız hatalardan ders alarak daha iyi hale getirin. Bir kez daha, oyun geliştirme kolay olsaydı, herkes yapardı.

Adım 8: Kariyer Pistinize Karar Verin

Diyelim ki şimdi kemerinizin altında birkaç tamamlanmış proje bulunan bir oyun programcısısınız. Bu noktada, oyun endüstrisindeki kariyerinizin nasıl devam etmesini istediğinize karar vermeniz gerekir.

Temel olarak iki parça arasından seçim yapıyorsunuz: çalışan veya işveren.

İşçi

Bir oyun yapmayı öğrendikten ve bunu kanıtlayabildikten sonra kariyerinizde ilerlemenin kolay yolu, çoğu geliştiricinin web sitesinin iş bölümlerine göz atmak ve Junior oyun programcıları arayıp aramayacaklarını görmek ve bu pozisyona başvurup başvurmadıklarını sormaktır. .

Game Developer Conferences, internette bağlantı kurmamışsanız, sektörün içerdekileri bulmak için iyi bir yerdir. Ancak bir iş bulma niyeti ile oraya gitmeden önce, göstermeye değecek bir şeyin olduğundan emin olun. Buradaki endüstri uzmanları sizi hatırlayacaktır, bu yüzden aklının arkasında iyi şeylerin yerleştiğinden emin olun.

“Ama bekle, iki oyun yaptım, ben Junior değilim” diyebilirsiniz. Yanılıyorsun. Overwatch, Assassin’in Creed serisi veya Call of Duty oyunları gibi oyunlarda çalışan gerçek Büyükler’e kıyasla… Fikir anladın mı?

Gerçekten de bir Junior oyun programcısının seviyesinin üstünde olsa bile, terfi etmeniz uzun sürmez. Bunu aidatlarını ödemenin bir parçası olarak düşün.

İşveren

Bir başkası için çalışmayı sevmiyorsanız, daha zorlu yollardan aşağıya inip kendi gelişen oyun geliştirme stüdyosunu yetiştirmeyi deneyebilirsiniz. Yaptığın arkadaşlarla oyun oynamaya devam et ve bazı insanları işe almak ve bitmiş oyunları daha önce yaptığın her şeyden daha büyük hale getirmek için kalabalık fon kaynaklarından fazladan para toplamaya çalış. Onlarca yıl sürebilir, ancak sonunda kendinizi yılın en heyecanlı AAA oyunu üzerinde çalışırken bulabilirsiniz.

9. Adım: Ego'nuzu Kapıda Bırakın

Nasıl bir oyun geliştiricisi olunacağını gerçekten öğrenmek için yolculuğunuzdaki herhangi bir noktada, oyun endüstrisini süslemek için en iyi şey olduğunuzu düşünme dürtüsüne sahip olabilirsiniz.

Dünya tarihinin en yetenekli oyun geliştiricisi bile olabilirsiniz veya hiç kimsenin sahip olmadığı en büyük fikirlere sahip olsanız bile, farketmez. Fikirlerin hiçbir şeye değmeyeceği prensibiyle sevmeyi ve yaşamayı kabul edin ve öğrenin; Her şey onları nasıl yürüttüğünüzle ilgili.

Sizin gibi binlerce tutkulu insan her yıl oyun endüstrisine girmeye çalışıyor. En çok çalışanlar genellikle bunu yapanlardır. 70 saatlik çalışma haftası olması alışılmadık bir durum değil. Oyun geliştirme için gecelerinizi ve hafta sonlarınızı feda etmeye istekli değilseniz, birçok kişi yeni sıcak oyun programcısı olarak yerini alacak.

Egonuzu unutun, çalışmanızın kendisi için konuşmasına izin verin.

10. Adım: Asla Pes Etmeyin

Oyun endüstrisinin tepesinde baş döndürücü bir artış, hayalini kurmak için güzel bir şey ama orada kalmasına izin vermek. Çok yetenekli olsanız ve yeteneğinizi dışlayan tek şey iş etiğiniz olsa bile, bunu yapabilmeniz yıllar alacaktır.

Sizi motive etmeyi kastetmiyoruz, sadece önünüzdeki yola hazırlanın. Elbette, nasıl bir oyun geliştiricisi olacağınızı ve başarılı olacağınızı anlamaya karar vermişseniz, ne kadar uğraştığımızdan bağımsız olarak sizi motive edemeyiz.

Meselenin gerçeği, yaptığınız ilk oyunun nesnel olarak emeceği; Önceden gerçekten iyi bir şekilde hazırlıklı olmadıkça, sizin için başvurduğunuz ilk iş muhtemelen başaramaz.

Yolda sayısız reddetme yaşayacaksın ama seni yüzüstü bırakmalarına izin veremezsin. Ne de olsa, tam bir çabayla oynamaya ve odaklanmayacaksanız bu oyunu kazanamazsınız. En zor zorluklarla ilgili bazı oyunların zor olduğunu düşünüyorsanız, bunları yapma ayrıcalığını kazanana kadar bekleyin.

Nasıl oyun geliştiricisi olunur? Analiz et, ağ kur, öğren ve ASLA vazgeçme! Basit değil mi?

Mobile Developer Nedir?

Web Developer Nedir?

Web geliştirici olmak istiyor ama nereden başlayacağınızı bilmiyor iseniz bu yazı size umarım yardımcı olacaktır. Öncelikle web developer nedir, neler yapar gibi temel konulardan bahsedeceğim. Hemen ardından web geliştirici olmak için öğrenim aşamasında yardımcı olacak servisler ve içerikler paylaşacağım son olarak da nasıl pratik yapacağınızdan bahsedeceğim. Öyleyse başlayalım.

Web Developer: Web geliştirici, HTML-CSS-Javascript ve/veya server-side programlama dilleri kullanarak web uygulamaları ve web siteleri geliştiren yazılımcılardır. Web geliştiriciliğinin 3 farklı versiyonu vardır. Bunlar front-end, back-end ve full-stack web geliştiriciliğidir.

Front-End Web Developer: Web arayüz geliştiricileri bu unvan ile adlandırılır. Front-end geliştirici olmak temelde HTML, CSS ve Javascript programlama dillerine hâkim olmayı gerektirir. Front-end geliştiriciler web uygulamaların ön yüzü ile ilgilenir. Linkler, tablolar, menüler, formlar, animasyonlar, imajlar yani kullanıcıların gördüğü kısımlar front-end geliştiriciler tarafından oluşturulur.

Tabi ki bu ön kısım genelde sıfırdan kod ile oluşturulmaz. Web tasarımcılar bu arayüzleri tasarım araçları kullanarak çizer ve web geliştiriciler bu tasarımları web ortamına aktarır.

Peki kimdir bu web tasarımcılar?

Photoshop, İllustrator gibi benzer tasarım araçları kullanarak web sayfaları ve web uygulamaları oluşturan, grafikler, tipografi gibi konulara hâkim olan kişilerdir. Bu yüzden web tasarımcılık web geliştirici unvanından tamamen ayrı bir unvan ve meslektir.

Peki web arayüz tasarımları olmadan web sitesi geliştiremez miyiz diye bir soru aklınıza takılabilir. Evet kesinlikle geliştirebilirsiniz lakin görsel olarak iyi sonuçlar almak istiyor iseniz bu yöntem tamamen verimsiz ve uygun olmayan bir yöntemdir. Hiçbir profesyonel web geliştirici bu yöntemi kullanmaz. (Çok basit form sayfaları gibi sayfalar oluşturmak haricinde. Ayrıca programlama dillerini ilk öğrenmeye başladığınızda sıkça bu yöntemi kullanacaksınız.)

Back-End Web Developer: Web arayüz geliştiriciler tarafından oluşturulan web uygulamalarının ön kısmı genelde dinamik olmayan statik web uygulamalarıdır. Bu statik web uygulamaları, geliştirilen proje için yeterli olmadığında back-end geliştiriciler devreye girer. Server-side programlama dilleri kullanarak statik web uygulamalarını işlevli dinamik web uygulamalarına dönüştürürler. PHP, ASP.NET, C#, Python gibi dillerden en az birini bilmek zorundadırlar. Ayrıca veritabanı ve web sunucuları ile çalışabilmelidirler. SQL, MYSQL gibi veritabanı dillerine de hâkim olmaları gerekmektedir.

Full-Stack Web Developer: Hem front-end hem de back-end kısmına hâkim olan kişilerdir.

Kısaca bir örnek ile özetlemek gerekir ise;

Bir blog sitesi oluşturmak istiyoruz ve web tasarımımız mevcut. Front-end web geliştirici bu tasarımı HTML, CSS ve Javascript programlama dilleri ile statik web uygulamasına dönüştürür. Blog sitemiz temelde hazırdır ve yayına alınabilir lakin yeni içerik eklemek, blog yazılarına yorum almak, kullanıcı yönetimi gibi dinamik işlemlerinde blog sitemizde olmasını istiyor isek burada devreye back-end web geliştiricimiz giriyor. PHP gibi bir server-side programlama dili ve veritabanı kullanarak bizim blog sitemizi dinamik hale getirmiş oluyor.

Ayrıca aşağıda web geliştirme haritasını paylaşıyorum.

Resim kaynağı: https://www.youtube.com/watch?v=EKjSziW1L8s


Nereden başlanmalı?

İlk olarak HTML ve CSS programlama dillerini öğrenmeniz iyi bir başlangıç olacaktır. Birkaç adet basit HTML sayfaları oluşturup bu sayfaların içini formlar, tablolar, linkler ve yazılar ile doldurup HTML kodlarını anlamaya ve kullanmaya başlayın. Daha sonra bu formları, tabloları, linkleri ve yazıları CSS ile güzelleştirin. Bir süre pratik yaptıktan sonra HTML ve CSS kodları sizin için anlam kazanmaya başlayacaktır.

HTML ve CSS kodlarını öğrenmek için w3schools, khanacademy gibi web sitelerini kullanabilirsiniz lakin bu web sitelerindeki yazı ve video içeren eğitimler İngilizcedir. Eğer Türkçe kaynak arıyor iseniz youtube videoları sizin için çok daha iyi bir seçenek olacaktır. Ayrıca Microsoft Açık Akademi Türkçe eğitimleri de mevcut.

Kullanabileceğiniz Türkçe kaynaklar

HTML ve CSS:

Javascript:

PHP:

  • Temel PHP Dersleri
  • Orta Düzey PHP Dersleri

Pratik:

  • PSD to HTML (Var olan bir tasarımı web sitesine dönüştürme videolu dersleri. HTML ve CSS programlama dilleri ile pratik yapmak için ideal.)
  • Php ile Blog Scripti Yazmak (Sıfırdan blog sitesi oluşturmak için videolu dersler. HTML, CSS, PHP ve veritabanı ile pratik yapmak için ideal.)

# Front-end Web Developer hakkında ve alt dalları

Ülkemizde ayrımı hala net yapılamayan, sürekli olarak back-end teknolojileri ile harmanlanmaya çalışılan bir alandır front-end. Özellikle iş verenler ve proje yönetimindeki insanların çok fazla karıştırdıkları, ama çok iyi bildiklerini sandıklarını bir alandır front-end development. Son zamanlarda iş görüşmelerinde çok enteresan diyaloglar yaşayınca bu konu ile alakalı toparlayıcı ve bilgi verici bir yazı yazma ihtiyacı hissettim. Amacım ahkam kesmek değil, tecrübe ve araştırma sonucu oluşan bilgilerimi paylaşmak. Umarım yararlı bir çalışma olur.

Front-end nedir? Back-end nedir?

Front-end developer denen kişinin, tam tanımını yapacak olursak, kullanıcının etkileşime girdiği önyüzün (client-side), HTML, CSS ve JS teknolojilerini kullanarak geliştiren kişiye front-end developer (önyüz geliştirici) denir. Back-end developer ise kullanıcının görmediği arka kısmı (server-side), geliştiren kişidir. Back-end teknolojilerinide Python, PHP, Ruby, Java, C#, ASP.NET, MySQL, MS Sql, MongoDB diye özetleyebiliriz. Aslına bakarsanız adları üstündedir, front-end yani önyüz, back-end yani arkayüz. Teknolojiler geliştikçe bu iki kavram ortaya çıktı ve zamanla kendi aralarında bile dallanmaya başladılar. Örneğin front-end kısmında CSS Developer, (yada UI/UX Developer) ve JavaScript Developer gibi alt dallar çıkmaya başladı. Back-end kısmında ise Database Developer, Java Developer yada Software/Application Developer gibi alt kırılımlar oluşmaya başladı. Her iki alanda bulunan alt kırılımlar aslında uzmanlaşmayı beraberinde getiriyor. Böylece daha profesyonel projeler geliştirilebiliyor. Çünkü siz on işi bir kişiye yaptırmak yerine uzmanlığına göre bir yazılımcıya veriyorsunuz böylece hem zamandan kazanıyorsunuz hemde çok daha iyi bir iş çıkarmış oluyorsunuz.

Front-end alt kırılımları nelerdir?

Aslında ülkemizde böyle bir kavram henüz yok. Tam tersine front-end developer denen kişiden bunların toplamından daha fazlası hatta çoğu zaman kendi işinden çok daha fazlası isteniyor. Örneğin bir göüşmede C# yada C++ sorulabiliyor yada Adobe InDesign, CorelDraw gibi tasarım uygulamaları soruluyor. Bunlara verdiğiniz cevaplar bilgilendirme amaçlı olsa bile ukala olarak nitelendirilebilirsiniz. Bilmiyorum diyip geçtiğinizde ise yetersiz sayılabilirsiniz. Değneğin her iki ucununda pis koktuğu bu durumdan sıyrılmak için kısa ve yüzeysel cevaplar vererek oradan uzaklaşabilirsiniz.

Front-end alt kırılımlarına gelecek olursak;
Front-end Web Developer – Client-side Developer yani kullanıcı tarafının geliştiricisi.
CSS Developer – CSS/HTML Developer olarakda görülebilir.
Front-end JavaScript Developer – Server-side harici tüm JSlerin yazılması işlerine bakan geliştirici
Front-end Software Developer – Software Developmentta front-end kısmı ile ilgilenen geliştirici.
Front-end JavaScript Application Developer – JS uygulamaları geliştiren geliştirici
Web/Front-end user Interface Developer – UI/UX Developer olarak da karşılaşılabilir.
Mobile/Tablet Front-end Developer – Bizde ayrımı olmaya başlayan alan. Mobil alandaki geliştirmeleri yapan geliştirici.
Front-end SEO Expert – SEO alanında uzmanlaşmış geliştirici.
Front-end Accessibility Expert – Ulaşılabilirlik, kullanılabilirlik ve kolay/hızlı kullanım alanlarında uzmanlaşmış kişi.
Front-end Testing/QA – Front-end testleri, browser kullanılabilirlikleri gibi konularda uzmanlaşmış geliştirici.

Ülkemizde Durum

Tabi bu alt kırılımları ülkemizde henüz göremiyoruz ve ne yazık ki uzun zamanda görebileceğimizi sanmıyorum. Çünkü bizdeki mantık uzmanlaşma değil, bir kişiden olabildiğince çok iş yapabilmesini beklemek üzerine kuruludur. Yapılamadığında yada projede aksama olduğunda ise sorulan sorular geliştiriciye yöneltilir; “engelimiz neydi?”, “neden yapamadık?” Aslında sorunun çözümü çok basit olmasına rağmen ya görülmez yada görülmesi istenmez. Standart sorunları anlatmakla bitiremeyiz bunu çok iyi biliyorum. Ne kadar yazarsak yazalım bunu değiştirmek kolay değildir. Belki bizden sonraki nesiller çok daha farklı bir çalışma ortamına kavuşurlar belki bu eleştirdiğimiz düzende değil daha doğru şartlarda daha doğru işleri olması gerektiği şekli ile çıkartırlar. Kimbilir göreceğiz belkide göremeyeceğiz bilemiyorum.

Peki istenen teknolojiler ve yeterlilikler nelerdir?

Bu kısımda da yine olması gereken ve ülkemizde olan şeklinde iki kırılım yapmak istiyorum. Çünkü front-end alt kırılımlarının olmayışından ötürü, istenen yeterliliklerde farklı bir hal alıyor ve çoğu zaman amacı dışına çıkıyor. Varsayılan arayışımızın normal bir front-end developer olduğunu yani midline denilen yani junior kısmını geçmiş ama henüz senior olmamış, daha tecrübeye ihtiyacı olan bir developer üzerinden gidelim.

Ülkemizde bir front-end developerdan aranan nitelikler aslında olması gereken alt kırılımların hepsi diyebiliriz. Birçok İK ve şirket sanırım bunları yurtdışı kaynaklı sitelerden ya da bloglardan kopyalayıp ilanlarına yapıştırıyor. Bazı görüşmelerde sordukları teknolojiyi sadece orda yazıyor diye sorduklarına ve bu teknoloji ile ilgili en ufak bir fikirlerinin olmadığını gördüm. Ukalalık olarak algılanmaması için genellikle anlatmaya çalıştım. Çünkü yanlışlıkların ya da hataların, konuşarak, karşılıklı bilgi vererek çözüleceğini düşünüyorum. Çoğu sefer yararlı olduğuma inanarak görüşmeyi tamamladığımı düşünüyorum, yanılıyor da olabilirim tabi ki.

Front-end Developer Yeterlilikleri


Yazılım Dilleri

HTML (XHTML, HTML4, HTML5)
CSS (2.1, CSS3)
CSS Pre-Processors (LESS-SASS-Stylus)
JavaScript
Ajax
Haml
CoffeeScript

Frameworks

Boilerplate
Twitter Bootstrap
PrimeFaces
Foundation
960 Grid
Modernizr
AngularJS
ReactJS
Vue.Js
Ember JS
Knockout.js
Meteor
Ext.Js
jQuery
Laravel
Node.js
Django

Kütüphaneler

YUI Library
Dojo / MooTools / Prototype
Backbone JS

Task Runner tools

Grunt
Gulp.js
Yeoman
Bower

Version Control

Git / GitHub
CVS
Subversion
SVN
BitBucket
TFS

Proje görev kontrol uygulamaları

Jira
Trello vb.

Data

JSON
XML
MySQL
MS SQL

Editör ve IDE

Sublime Text
Notepad++
Brackets
Eclipse
Komoda
TextMate
Atom
WebStorm
PHPStorm
Visual Studio
Netbeans
Dreamweaver
XCode

Tasarım Araçları

Adobe Photoshop, Adobe Fireworks, Adobe Illustrator, Sketch
Web Font Embedding / Licensing
Typography / Font-Services
Icon Font / Sprite Icon
SVG

Server Araçları

FileZilla
FTP
DNS/MX/NS
TCP/IP

Metodlar

OOCSS / BEM / SMACSS (Modüler kodlama)
CSS Grids
CSS Resets
Progressive Enhancement / Graceful Degradation
W3C / WHATWG uyumlu kod yazmak
UX ve UI gereksinimlerinde uzmanlık
Website hızı ve performansına uygun kod yazmak
Responsive Web Design
Mobile Web Development
Mobile Web Performance
HTML5 APIs (Canvas, Geolocation, Video, etc.)
Object-oriented Programming (OOP)
Accessibility / WAI-ARIA
Microdata / Microformats
HTML5/CSS3 Polyfills
Scaffolding Programlama
Internationalization / Localization
Content Strategy
Offline Web Apps
Regular Expressions
Fonksiyonel programlama
Regular Expressions
Semantic HTML
Unobtrusive JavaScript
Understanding of Mark-up and CSS validation errors

Debug ve Test

Developer/Debugging Tools (Chrome Dev Tools, Firebug)
Cross-Browser Bugs and Inconsistencies (primarily IE6-8)
Cross-Browser / Cross-Platform Development
Document Object Model (DOM)
Unit testing
YSlow or PageSpeed

CMS (İçerik Yönetim Sistemleri)

WordPress
Drupal
Joomla

Back-end Teknolojilerine aşina olmak, projede front-end olarak görev almış olmak

PHP
Python
Ruby
Ruby on Rails
Java
Laravel
ASP.NET
C#

Sosyal Araçlar

Sosyal Medya
RSS Reader (Feedly, Reeder)

SEO ve Google Araçları

SEO
On Page SEO
SEO Dostu Yazılım
Google Analytics
Google Webmaster Tools
Google Places
Google Adwords
Google Adsense
Google Apps

Mobil Development

Sencha Touch
Ionic + Angular JS
jQuery Mobile + Backbone
Kendo UI
React
Zepto.js
Objective-C
Swift
(Her ne kadar front-end alanına girmesede, ülkemizde bir front-end developerdan beklenen kriterler arasına girmeye başladı.)

Ek Özellikler

Bu listeyi dahada uzatmak mümkün. Hemen hemen her ay yeni bir teknoloji yeni bir kütüphane yada yeni bir framework gelebiliyor. Eğer sizinde eklemek istedikleriniz olursa lütfen yazın, güzel bir liste hazırlamış oluruz birlikte.
Tabi sadece bu teknolojileri bilmek yeterli olmuyor aynı zamanda bazı özelliklerinizin daha olması gerekiyor. Son zamanlarda sıklıkla duyduğunuz prezantablmısınız da buna dahil. Buradaki isteklerin birçoğu bencede gerekli, olmalı fakat alanın dışında istekler biraz enteresan hal alıyor. En bariz olanlarına parantez açtım.

HTML5, CSS3 bilgisi olan,

Native JavaScript yazabilen,

jQuery konusunda uzman,

Çok iyi derecede kodlama bilgisi,

Çok iyi derecede web tasarım bilgisi,
front-end developerın tasarım konusunda mükemmel olması mümkün değildir, o bir yazılımcı tasarımcı değil)

Yeni teknolojileri takip etmesi,

Versiyon kontrol sistemlerinden en az birini bilmesi,

Responsive tasarım konusunda deneyimli,

En fazla duyulan kelimedir responsive peki nalamını tam bilen varmıdır? Genellikle mobil işte denir yada “sayfayı çeviriyon değişiyo, ipadden bakınca da farklı görünüyo ya” denir.

AngularJS, Knockout.js Bootstrap gibi frameworklerde uzmanlaşmış olması,

Birkaç open source projesinin olması,
O kadar geniş vaktimiz varki tabiki geliştiririz. Geçim sıkıntısı yada gelecek kaygısı veya hayat kurma vs. gibi dertlerden zaten arındık, sürekli olarak boş zamanlarda open source ne geliştirsek de yararlı olsak modundayız.

Git hesabının olması ve projelerini yayınlamış olması,
Her proje Gitte yayınlanamaz ne yazık ki bu istek bana göre doğru değil. Kişisel geliştirdikleri olabilir ancak

Güçlü iletişim yeteneği ve sunum yeteneği olması,
iletişim tabi ki önemli fakat sunum yeteneği?

Bildiklerini karşı tarafa aktarma yeteneğine sahip olması,
eğitmen olarak mı kullanacaksınız?

Ekip çalışmasına yatkın olması,

Esnek mesai şartlarına uyum sağlayabilmesi
Bunun anlamı asla 17:00 ya da 18:00 da çıkamayacaksınız! Özel hayatta neymiş? Şirkette yatın kalkın. Mesai olur tamam ama kronik hale gelmiş mesai çok tehlikeli ve berbattır. Hergün mesaiye kalınmaz, kalınmamalıdır bu insanın kendisine olan saygısını ve hayatını kaybetmesine yol açar. Ülkemizde ki belkide en büyük sorun budur.

Agile deneyimi olması
Bu konunun ucu çok açık beklenen nedir tam olarak bilmiyorum ve sormaya korkuyorum işin açıkcası.

Test süreçlerini bilmesi ve testleri yapabiliyor olması
test uzmanı yok sen yapacaksın demektir…

Debug konusunda uzman olması,

Sayfa performansı optimizasyonunu çok iyi bilmesi

SEO konusunda uzman olması
Ülkemizde çok istenir ama tam uzmanlık aslında mümkün değildir. En azından kod düzenini ona göre yazabilir dense daha doğru.

Ek özellikler daha bitmedi…

OOP nedir bilmesi ve uygulaması

WordPress, Drupal, Joomla! gibi CMS sistemlerini bilmesi
WordPress hadi neyse ama diğerleri back-end kısmına daha yakındır tamamıyla bilmekte mümkün değildir.

Çok iyi derecede İngilizcesinin olması,
İngilizce şart evet ama araştırma için mi? toplantılarda şirketi temsil etmesi için mi? İşin daha tuhafı front-end developer başvurularında İngilizce mülakatlara girebiliyorsunuz. On seneden fazladır çalışıyorum bu alanda ve yurtdışına kişisel olarak yaptığım işler, birkaç eğitimimde ve yurtdışı seyahatlerim dışında İngilizce konuşmadım ya da yazışmadım. Tabiki çok önemli ona bir şey demiyorum ama x bir şirkette front-end olarak çalışırken araştırma dışında gerekli olacağını ya da bir kriter, olmazsa olmaz bir gereklilik olarak sunulmasını yanlış buluyorum.

Araştırma yapan bir karaktere sahip olması,
Her insandan işini sevmesini bekleyemezsiniz eğer insan işini severek yapıyorsa zaten araştırır. Ama sen o kişiye sürekli mesai yaptırırsan o kişi hem işten hem şirketten hem de hayattan çok hızlı bir şekilde soğumaya başlar…

Çok iyi derecede Photoshop bilgisi
Çok iyi Photoshop bilen kaç kişi tanıyorlar merak ediyorum. Ya da Photoshop nasıl bir programdır? kimlerin işine yarar? neler yapar? Front-end bir kimse tasarımcıdan gelen PSD yi parçalayıp istediği alanları kullanabiliyorsa yeterlidir, çok iyi derecede olması gerekmiyor. Ayrıca bu Photoshop bilgisi bir süre sonra, “Sende Photoshop kuruluydu değil mi? Şu arayüze şunu şunu eklememiz gerekiyor, birde şu tasarımıda yaparmısın? Şuraya bi buton koymamız lazım” vs. devam eden istekleride beraberinde getiriyor.

Web arayüz geliştirmesinde etkin rol almış

Bu ne demek tam çözebilmiş değilim inanın

Crossbrowser çalışmalarında problem yaşamayan
Problem mutlaka olur, sonuçta geliştirme yapıyoruz. Tarayıcı sorunlarını çözebilen desek daha doğru sanki. Tabi burda birde tarayıcı sapıkları var yok “chrome kullanıyormusun? chrome kraldır, çok iyidir en büyük chromedur” yada “ie kullanmalısın heres onu kullanıyor, tüm testleri ie de yapacaksın” gibi enteresan diyaloglarda çıkıyor. Testler her tarayıcıda yapılmalı tamam hatta ie8 e kadarda inilebilir o nda tamam ama gerçek bir tarayıcı kullanacaksam o Firefox olur, diğerleri sadece teferruat olarak kalır… Alın bir tarayıcı sapığı daha

Yaratıcı, hızlı iş üreten, tasarım gözü olan
Hem yaratıcı hem hızlı iş üreten olması o kişinin mükemmel olduğu anlamına gelmez, yaratıcılık ile hızlı iş üretme zamana bağlı olup, ters grafiğe sahiptir. Ayrıca neden yaratıcı? Art director mü alıyoruz? Front-end tabiki kendinden birşeyler ekler ona birşey demiyoruz ama yaratıcı ve hızlı iş üretmesi ne demektir? Tasarım gözü konusuna hiç girmiyorum… Sauronun gözü gibi birşey herhalde.

C#, C++, ASP.NET konusularında deneyimli, bilgi sahibi ve proje geliştirmiş
Fatal error dediğimiz kısım bu sanırım… Söylenecek birşey yok, bizzat yaşadım abartı falan değil isteniyor kimi zaman.

MS SQL, MySQL, Mongo DB konularında uzmanlaşmış
Bir gün gelecek Oracle da göreceğiz buna inanıyorum! Peki şaşırırmıyım? Tabiki hayır…

MVC konusunda uzmanlaşmış
Tabi ben zaten safkan bir kırmayım, bir yanım back bir yanım front sonuçta Modülüde alırım, View zaten bende, Controllerıda yazarım artık nedir ki sonuçta?

SVG konusunda uzman
Scalable Vector Graphics’in açılımı olan SVG bir dosya uzantısıdır ve JPG, PNG vb uzantılı dosyalar gibi kullanılabilir yani bir yazılım dili değildir. Ha SVG düzenlesin diyorsanız bir vektörel dosya açma yeteneğine sahip programla açılır düzenlenir.

Daha birçok istek var buraya yazmakla bitirmem mümkün değil. En göze çarpanları yazmaya çalıştım.

Yurt dışı ilanlarda arananlar

Bizden en büyük farkları uzmanlaşmaya verdikleri önem olduğundan, yurt dışında ilan veren firmalar İsveç çakısı değil, alanında uzmanlaşmış, işini seven ve severek yapan, sorumluluk nedir? iş ahlakı nedir bilen kimseler arıyorlar. Genelde karşılaştığım istekler şu şekilde;

HTML5, CSS3, Ajax, JSON/XML
Bu teknolojiler zaten front-end development için olmazsa olmaz bunları aradıkları kişideki deneyime göre çok iyi ya da iyi olarak değiştiriyorlar.

Object Oriented JavaScript

AngularJS – Backbone.js – jQuery – Knockout.js – ember.js
Hepsini değil sadece birinde uzmanlaşmış olması yeterli. Firmanın kullandığı teknolojiye göre içlerinden biri isteniyor.

WordPress sistemini kullanmış olması
Çok fazla olmasada nadiren rastlanıyor. En azından kurulumu yapıp, bir temayı uygulayıp, üzerinde değişiklik yapabilmeli deniyor.

Basic SEO bilgisi, SEO uyumlu kod yazma

Git yada farklı bir versiyon kontrolü bilmesi
Genellikle Git isteniyor, bazı ilanlarda ise BitBucket ve TFS var.

W3 standartlarında kod yazabiliyor olmak

Belki de en fazla önemsedikleri bu. İngiltere’de bir firma için yaptığım işlerde bunu baş şart olarak koymuşlardı. Online testlerini yapmamı ve linklerini paylaşmamı istemişlerdi. Tabiki sonrasında kendileride testler yapıyorlardı. Eğer bir sayfa W3 standartlarını geçememiş olursa bu sayfayı kabul etmiyorlardı ve işi geri çeviriyorlardı. Türkiye’de çok fazla site yaptım, yüz siteyi geçmişimdir kesin bir kez bile W3 ile alakalı bir konuya denk gelmedim.

Google araçlarını kullanmak
Google ürünlerini kullanmanızı istiyorlar places, analytics, adwords, webmaster tool gibi

Performanslı kod yazma
Buna çok önem veriliyor çünkü sayfaların hızlı açılması çok önemli

Minimum 2 yıl deneyim front-end alanında

Bilmeniz halinde plus olacak özellikler ise;

UI ve UX konularında tecrübe
Python, Ruby, ASP.NET vb. back-end teknolojilerinin kullanıldığı projelerde front-end developer çalışmış olmak
Front-end development testleri konusunda deneyimli olmak
Agile konusunda bilgili olmak
PSD dosyasında düzenleme yapabiliyor olmak
SEO konusunda uzmanlaşmış olmak
Mobile development alanında bilgili olmak
Hybrid teknolojileri kullanmış olmak

Önemli Farklar

Yurtdışı proje geliştirme tecrübelerimde gözüme çarpan en büyük fark düzen idi. Projenin bir düzeni ve bölümleri çok netti. Yapacağınız işi biliyorsunuz, gereken zamanlamayı konuşarak veriyorsunuz ve istekleri işe başlamadan önce konuşuyor ve netleştiriyorsunuz. İş bittikten sonra abuk ve subuk olarak adlandırılan istekler gelmiyor. Eğer bir revizyon olacaksa bu ek iş olarak hesaplanıyor ve ücretlendiriliyor. Sizin ne iş yaptığınızı hangi alanlarda uzman olduğunuzu biliyorlar ve size alanınızdan farklı bir istekle gelinmiyor. Tabi her yurtdışı firma için bu geçerli değil. Türkiye’deki firmalar gibi çalışanlarıda denk gelebiliyor. Ama genelleme yapacak olursak birkaç noktada ileride olukları kısımlar var ve bence en önemlisi uzmanlaşma ve insanların özel hayatına önem verme. Bu iki nokta hemen hemen hepsinden önemli diye düşünüyorum. Bir gün ülkemizde de görmeyi umuyorum

IT Uzmanı Nedir?

  • yapmak için ideal.)

Grafik Tasarımcı Bu İşlerin Neresinde?

Cheatsheets ve Yol Haritaları

Kavramlar

Junior ve Senior Kavramları

Geliştirici nedir ne iş yapar?

Bizim mesleği yapanların en büyük sorunlarından biride şimdi sen ne iş yapıyorsun sorusuna cevap vermek. Çevremde insanların tamamda sen şimdi sen ne iş yapıyorsun demelerinden artık gına geldi. Anlayacakları en açık dille web master’ım web sitesi yapıyorum demek özellikle de freelance olarak çalışıyorsanız karşıdaki kişiyi hiç tatmin etmiyor.

Peki ama kimiz biz ne iş yaparız ?

Grafik Tasarımcı : Yazılımların, mobil uygulamaların, web sitelerinin görsellik ile ilgili her şeyini yapar.

Front End Developer (Arayüz Geliştirici) : Web sitesinin tasarım bittikten sonra HTML – CSS ve JQuery kodlarını yazarak siteyi yayına hazırlar.

Back-End Developer  :  Web sitesinin arka planında görünmeyen kodlarıyla ve veritabanıyla ilgilenen kişi.

Junior / Senior Kavramları

Junior Developer : İşi bilen ama pratik bilgisi olmayan.

  • Junior Front End Developer, Junior Back End Developer

Senior Developer : Bir firmada ve bir proje üzerinde 3 – 5 – 10 yıl çalışmış kişi.

  • Senior Front End Developer, Senior Back End Developer
IT Uzmanı

IT Uzmanı, aldığı eğitim ve yetkin teknolojiler ile büyük bilişim projelerinin tasarlanmasında, idaresinde, bilgisayar sistemlerinin kurulması ve yönetiminde, bilgi güvenliğinin sağlanmasında ve veritabanları konusunda profesyonel olan kişidir.

Kavramları yeterince açıkladığımı sanıyorum umarım yararlı olmuştur. .)

Paylaş:
0 0 votes
Article Rating
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments
  • Panel 1
  • Panel 2
  • Panel 3
  • Panel 4
Welcome!
0
Would love your thoughts, please comment.x
()
x