• herkes gıptayla bakar. çünkü kazancı güzel olan bir meslektir.
    az çok kendini geliştirmişse istediği yerde de çalışabilir.
    kafasına estiği an iş değiştirebilir.
    saygı duyulan meslektir.

    hayat ne güzel değil mi?

    herkesin gördüğü bu çünkü.
    peki ya görmedikleriniz?

    düşünün ki o gün prod. ortamında bir hata olmuş. düşünün ki hepsiburada çökmüş mesela. ne olur o an? telefonlar, mailler... herkes sorunu çözmeni bekler. bir an önce aksiyon almanı bekler. zamanın kısıtlı ve sen o hatayı çözmek durumundasın. bildiğin hataysa şanslısın. peki ya ilk defa gördüğün ve fikir yürütemediğin bir hataysa? işte o anın stresiyle geçirilen bir günü ancak bir yazılımcı anlar.

    bazen akşam eve gelip ayaklarımı uzattığımda kafamın içinin o kadar dolu olduğunu hissediyorum ki anlatamam. o televizyondaki salak salak dizileri izlediğim oluyor. üzerimdeki mallığı atamıyorum.

    peki ya sürekli gelişen teknoloji? sürekli kendini geliştirmen ve adapte olman gerek. güzel. güzel de peki ne zaman? akşam kafan bir dünya. bilgisayarı açasın gelmiyor. bırak bilgisayarı telefonu fırlatıp atıyorum. haftasonu? sevgilinle ailenle vakit geçireceksin. eee biz ne zaman geliştireceğiz kendimizi?

    bu işe atılacak ya da öğrenci olan varsa şunu iyi bilsin,
    ne öğrenirseniz işte tam o zaman diliminde öğreniyorsunuz.

    her mesleğin zorlukları ve kolaylıkları vardır. ama lütfen bizleri copy paste yapıp akşama kadar sohbet muhabbet yapan dallamalar zannetmeyin. emin olun saçlarımız sizden önce beyazlar, tabi kafada saç kalırsa.
  • bölüm 6 : zaman yönetimi : pomodoro tekniği

    kopma sorunu herkesin başına gelebilir. bir işe ayırdığınız zamanı çok daha etkili kullanabilmek için bazı zaman yönetim teknikleri kullanırız. odaklanmanın etkili yollarından birisi bu zaman yönetimi uygulamalarıdır.

    bir proje'nin ortasında facebook, twitter, ekşi'ye girdiğinizde, kopma sizin için başlar. youtube'da ilgi çekici bir video'ya denk geldiyseniz geçmiş olsun. 20 dk gitti. daha sonra bi 5 dk "ne yapıyordum lan ben ?" kafasına giriyorsunuz. 5 dk daha kaybettiniz. zamanınız boşa gitti, geçmiş olsun.

    pomodoro : 25 dk süreli çalışma, 5 dk dinlenmeyi esas alan bir çalışma modelidir. bir timer ile işinize başlıyorsunuz ve başka hiç bir şeyle uğraşmıyorsunuz. sadece planladığınız işe vakit ayırıyorsunuz. süre dolduğunda dinleniyorsunuz. 5 dk. sonra tekrar çalışmaya başlıyorsunuz. yani bir modül yazacaksanız. kaç pomodoro kullandığınızı görebileceksiniz.

    ben bunun için be focused pro diye bir uygulama kullanıyorum. bu şekilde çalışmaya alıştığınızda işlerin ne kadar hızlı bittiğini göreceksiniz.

    müzik konusunda bir kaç şey diyeyim. ben sözlü müzikler fazla dinleyemiyorum. coldplay falan odaklanmamı sağlıyor. fakat bunun kişiden kişiye değiştiğine eminim. bir arkadaşım trapstep müzik dinleyerek bile çalışabiliyor. sizi ne rahatlatıyorsa onu dinleyin.

    bir sonraki yazımda dünyadaki yazılım mühendisliği üzerine yazmaya çalışacağım. paradigmalar, üniversite odaklı bir yazı olacak.
  • bölüm 4 : ego sorunları ve freelance meselesi

    bir yazılımcı için en büyük sorunlardan birisinin ego sorunu olduğunu düşünüyorum. hatta junior seviyesinde bu hastalığa girmiş kişiler gördüm. siz siz olun. bu tarz bir kafa içerisine girmeyin.

    öncelikle yaptığınız işi sadece siz yapmıyorsunuz. bunun farkında olun. dünya da bu işi sizden daha iyi yapacak milyona yakın kişi var. bir doktor için tedavi etmek zorunluluksa sizin de işinizi yapmanız mutlak bir sorumluluk. fakat şöyle oluyor. yazılımcı iş seçmeye başlıyor. bunu yaparım. şunu yapmam gibi. profesyonel olun. siz maaşlı bir yerde çalışıyorsanız. onun karşılığını verin.

    "ee abi ben projeyi yazdım. herif milyon dolar para kazandı. ne anladım ben bu işten." diyenler çıkacaktır. boğaz köprüsünün yapımında çalışmış birisi onun sahibi olduğunu iddaa edemez. bunu bu şekilde düşünmek lazım. yine de kendinizde o potansiyeli görüyorsanız; kendi girişiminize başlayabilirsiniz. önünüzde hiç bir engel yok. biraz cesaret ve çok çalışma ile sonuçlar alabileceğinizi düşünüyorum.

    bir anımı paylaşayım. orta seviye bir yazılımcı ; her ortamda kendini övüyordu. developer olduğunu iddaa ediyordu. yalnızca başkasının kodunu editleyip bir bütün oluşturuyordu. (developer tanımınıza bu girmez sanırım.) code review günlerimiz oluyordu. o gün o çocuk öyle bir deneyim yaşadı ki. yetersiz olduğu yüzüne çarpıldı. kendinizi bilin. girişken olun ama egolu hareket etmeyin.

    yine aynı seviyede bir yazılım grubunda maaşlarla ilgili bir sorun çıkmıştı. birisi mühendisti, diğeri meslek lisesinden mezun bir çocuktu. aynı seviyede maaş alıyorlarmış. ık ve ya idareciler bunu bir pozitif ayrım olarak görebilir ama cto olarak çalıştığım hiç bir yerde bu bir seviye değildi. ben adamların yaptıkları işlere bakarım. bu firmadan firmaya değişir tabi. kurumsal firmalarda bu tarz bir durum pek görmeyiz.

    bu konu da en son şunu söyleyeyim. 2 satır kod yazıyorsanız diye dansözlüğe gerek yok. türk gibi başlayın, alman gibi bitirin.

    - freelance meselesi

    freelance'ler size nasıl gelir ?

    - tanıdıklarınız önerir.
    - sektörde bilinen birisinizdir. size oradan gelir.
    - github'da çok iyi open sourcelarınız vardır. oradan gelir.
    - siz freelancer.com tarzı sitelerden bulabilirsiniz.

    en güzeli tasarımcılar. behance'e bir tasarım at. freelance yağsın. ne güzel istanbul..

    freelance alırken dikkat edilecekler ?

    - işinizi ucuza satmayın. gerçekten işin ortalama değeri neyse onu verin.
    - kuralları ve deadline'ları başta konuşun. revize meselelerini önceden konuşun. çünkü adam aklına gelecek her şeyi sizden isteyecek. sınırlarınızı koruyun.
    - her şey yazılı bir şekilde olsun yoksa emin olun pişman olursunuz.
    - anlaştığınız rakamın yarısını iş öncesi alın. kodu teslim ederken diğer kısmını alın.
    - arkadaşlarınıza freelance yapmayın !
    - telefonla iletişim kurmayın. mail ile kurun.
    - çalışabiliyorsanız. yabancılarla çalışın. kur farkının değerini hissedersiniz.

    kendinizi geliştirmek ve bağlantı sayınızı arttırmak istiyorsanız freelance iyi bir seçenek olur. bir dönem sonra freelance kafasını bırakıp kendinize portfolio kasmanız gerekecek. unutmayın.

    bu arada ; güzel mesajlarıyla destek olanlara teşekkür ederim :)
  • millet boş mu yapıyor yoksa amele mi çözemedim bir türlü. beni sıkıyor bu yatarken sıçarken kod yazıyoruz olayı. kolpa çünkü amk. bu bütün gün yazıyoruz, 16 saat kod yazıyoruz diyenler katiyen odaklanmayı bilmiyor. yalansa yalan diyin, değilse yol yakınken öğrenin. genelde 2 monitör, biri whatsapp web ve binance, sonra adı bütün gün çalışıyoruz oluyor. kod yazma storyleri falan.

    uzaktan 2 şirkete 3 yıldır çalışıyorum. biri sam altman’dan 1.5m alan startup, biri ise tonla müşterisi olan yazılım evi. biri amerika biri ingiltere saati. son 1 yıldır da kendi projelerimi çıkarıyorum.

    kulaklığı takıp kod yazdığım süre, takibini yaptığım tek süredir aynı zamanda, maksimum 3 saat. işersem saati durdururum, müzik değiştirirken 1-2 videoya tıklarsam yine durur, slack’te birinden 2-3 dakikadan fazla cevap beklerken yine durur.

    onda da chatgpt ve github copilot dolduruyor, ben artık daha çok ne lazım olacak onu yazıyorum 1-2 cümle. kalanı yatış, yürüyüş, dans kursu, spor, manitayla yastık savaşı, biraz mesaj biraz toplantı, biraz da toplantıya 20 dakika var ekşiye bakayım vs.

    ulan hatta cumaları odaklanma günü olsun, toplantı vs yapmayalım dedim, 4 gün çalışıyorum.

    6 saat derin odaklanma(deep work) yapsam milyoner olurum diye düşünüyorum. 8-10 zaten elon musk düzeyidir.

    neyse, diyeceğim o ki, beynim kod yazıyor sıçarken, asosyalim, insanlarla konuşurken aklımda kod var diyenlerin mesleği böyle mr. robot misali göstermesine pek aldanmayın. bu zamanın mesleği budur, biraz sahiplenin biraz özgüvenli olun.

    “yazılımcı olduğumdan asosyalim, nerdüm” geyiklerini bırakın. yazılımcı olup akşamları dj’lik yapan, clublardan sabaha karşı gelip slack’ten hastayım yazan, bilgisayarı açık bırakıp sevişen, öğle yemeği diye 3 saat date’e çıkan adam dolu sektör.

    çok kod yazmayı seviyorsunuz madem, open source’a abanın, stackoverflow’da allah olun, saas çıkartıp 1m ciro yapın. allaha emanet kodlarla milleti zengin etmek veya türk patronun sikko deadlinelarıyla stres olmak, bu meslek değil.
  • mr robot izleyip de yazılımcı olmaya karar verdiyseniz, bu işe kabiliyetinizin olup olmadığının, belki de hiç ummadığınız kadar sıkıcı bir alana adım attığınızın farkına varın diye bir önerim olacak.

    c veya c++ temellerini öğrenmeyi deneyin (c++ öneririm). konuları rahatça kavrayabiliyorsanız oh ne ala. c deyip de geçmeyin. genel anlamda programlama mantığını öğrenmiş olacak, c temellerini öğrendikten sonra php, java gibi dilleri öğrenirken merdiveni üçer beşer çıkacaksınız.

    ingilizce eğitim

    türkçe eğitim

    eğer bu konuları kavramakta zorlanıyorsanız, öğrenirken sıkılıyorsanız, bence yol yakınken farklı bir branşa yönelin. çok ciddiyim. atıyorum, matematiği yalayıp yutmuş tipler, konu yabancı dil öğrenmeye gelince sıçabiliyor. adama çok basit iki üç şeyi öğretemiyorsun, aklı bir türlü almıyor. belki siz de yazılımda sıçacaksınız, fakat farkında değilsiniz. yani herkes yazılımcı olabilir diye bir olay yok. siz de sırf çok kazandırıyor diye veya ne bileyim etiket yüzünden yazılımcı olmaya çabalamayın. bi bakın bakalım bu konuda kabiliyetiniz var mı...
  • bölüm 5 : süreç planlamaları <jira, trello, slack> mvp'nin önemi

    merhabala arkadaşlar, kanalıma hoş geldiniz. <şaka, şaka> sondan başlayayım. yazılım projelerinde mvp kafasını iyi algılamak lazım. öncelikle bunu biraz tanımlayayım.

    mvp, projeninizin en yalın hali diyebiliriz. örneklerle anlatayım. bir e-ticaret paket yazılımı ürettiğimizi düşünelim. müşterinin temel istediği şey ; satış yapmak. siz bu projeye başlarken benzersiz kampanya özellikleri, banner yönetimi, tema yönetimi, crm, muhasebe entegre etmeye çalışırsanız. sizin projeniz bitmez. ve başarısız bir iş yapmış olursunuz.

    ben başladığım projeleri kurgularken aşama, aşama ilerlemeyi düşünüyorum. önce çalışan en az özellikli kullanılan bir şey ortaya koyayım. daha sonra uygulama kullanılmaya başladıktan sonra geri dönüşlerle uygulamayı geliştiririm. özellik kötüdür demiyorum. özellik maliyet ve zaman doğurur diyorum. bir projeye kendim yalnız başına bile başlasam ; trello üzerinde bir board oluşturup feature'larımı listeliyorum. tüm feature'lar çıktıktan sonra o özelliklerden en ihtiyaç olunanlarını alıp projeyi geliştirmeye başlıyorum. bu bana ne sağlıyor ?

    - kullanıcının istemeyeceği veya farklı isteyebileceği bir özelliği önceden yapmamış oluyorum.
    - sistemimi devamlı geliştirerek kullanıcıların kullanım deneyimlerini geliştiriyorum.
    - gereksiz zaman ve maliyetten kurtulmuş oluyorum.
    - projem çok daha hızlı alfa ve beta aşamalarına geçiyor.
    - projedeki kişiler projeden sıkılmamış oluyor. bu çok önemlidir. 1 sene uğraşıp yaptığınız işi göremezseniz sıkılırsınız.

    yukarıda saydığım sistemlerden bahsedeyim.

    trello : bir to-do uygulaması. basit bir proje yönetimi diyebiliriz. işlerinizi orada listeleyip zamana göre planlayabilirsiniz. 3,4 kişi çalışıyorsanız trello işinizi görür. bir arkadaş grubuyla web projesi yapıyorsanız aşağıdaki board yapısını kullanabilirsiniz.

    design, front-end, back-end, test, feature şeklinde boardlarınızı oluşturabilirsiniz.

    slack : eskiden ırc vardı hatırlar mısınız ? işte slack o konsepti web projesine getirmiş. ekip içi iletişimi sağlıyor.

    jira : büyük boyutlu projeler için proje yönetim sistemi. kişileri ve projeyi detaylı bölümlere ayırmanıza yardımcı oluyor.

    bu uygulamalar neden önemli ?

    yaptığınız işten kopmamanız gerekiyor. abi nasıl olsa işi ben yapıyorum. kafama göre yaparım derseniz, koparsınız. ne kadar çalıştığınızı görün. çalışma sürenizi nesil optimize edebileceğinizi düşünün.
  • biraz micro blog şeklinde kullanacak olsam da yazılarımın ilgili okuyucular için önemli olabileceğini düşünüyorum. başlamadan yazılım sektörüyle ilgili gözlemlerimi ve bu işin gerçekten nasıl yapılması gerektiği ile ilgili düşüncelerimi paylacağım.

    yazılım olayı nedir tam olarak ? siyah ekran ve değişik değişik terimleriniz var. onlar ne oluyor ?

    size kullandığımız herşeyin yazılımdan ibaret olduğunu anlatmayacağım. bu işlere ilk olarak heves sardığımda liseye gidiyordum. bir web sitesi yazma düşüncesi heyecanlandırıyordu. daha da önemlisi yapacağım işin insanlar tarafından görüşmesi ve çok kişiye ulaşacak olmam heyecanlandırıyordu. sanıyorum ki sosyal medya'nın çok fazla kullanılmasının sebeplerinden birisi de bu. o dönemler bizde yazılımcı kavramı oturmamıştı. dreamweaver kullanıp yazılımcı egosuna sahip insanlar vardı. karanlık bir dönemdi. ben o zamanlar başladım.

    internet üzerinden para kazanma geyiğini duymuşsunuzdur. hani bir site açıyorsun. sonra zengin oluyorsun. o dönemler ben de o furyaya kapıldım. teknik bilgim ve yetersiz ingilizcemle blogspot üzerinden otel sitesi açıp adsense reklamı almıştım. reklamlarıma kendim tıklıyordum.. sonuç olarak hesabım banlanmıştı. ben çok önemli bir şey öğrenmiştim. dünya'nın en iyi yazılımıyla, tasarımıyla bir şeyler yapmanız hiç bir anlam ifade etmiyor. seo ile o yaşlarda tanıştım. caffeine algoritması vardı yanlış hatırlamıyorsam. google patentlerini inceleyip testler yapıyordum.

    html/css ve php ile dünyam başladı. wordpress'in o güzel cms'sine geliştirmede yapıyordum. seo benim bakış açımı inanılmaz değiştirdi. digital marketing konularına yöneldim. çok iyi olduklarını düşündüklerim yazılımcıların neden bir proje üretmediklerini düşünüyordum. bu düşünceye cevap bulmam 4 senemi aldı. bu cevabı yazımın son bölümüne saklıyorum.

    benim kadar başarısızlık yaşayan birisi olmamıştır sanırım. mesela lise dönemimde çok acayip sitelerime inanılmaz girişler oldu. bunu sağlayana kadar bir dolu başarısızlık var. tam işte oldu, dedikten sonra ddos saldırlarına maruz kalıyorsunuz.

    eminim her işte böyledir. yazılım için de durmadan çalışmak gerekir. hatta bir anımı anlatayım. ıos için geliştirmeye yapacağım. xcode diye bir ide var. hello world yazdıracağım. başka bir şey değil. kodu nereye yazacağımı bulamamıştım. sonra okuya, okuya çatır çatır yazıyorsunuz. o gün böyle dil mi olur ? deseydim. bunu öğrenemeyeceğimi adım gibi biliyorum.

    şu siyah ekran meselesini bir cevaplayayım. developer'ların bir çoğu terminal kullanır. sunucuya bağlantı kurmak, dosyaları uzaktaki repoya göndermek için vs. terminal kullanıyorlar. yapılan işlemler gözünüzü korkutmasın.

    okullarda mühendislik eğitimi nasıl ?

    doğrusunu söylemek gerekirse büyük umutlarla üniversiteye gittim. stanford seviyesinde eğitimler bekliyorumdum falan. abuk subuk dersler aldım. bana pek bir şey kattığını söyleyemem. sektörde böyle sunumlar oluyor. js teknolojilerini falan anlatıyorlar. özgür yazılım günleri gibi eventlar oluyor. oradaki konuşmacılar, katılımcıların bir çoğu 2 senelik okumuş adamlar. adamlar diyorum. kadın yazılımcı ne yazık ki çok az çıktı.

    önce şunun cevabını vermek gerekir ? neden yazılım sektörüne girmek istiyorum ?

    - çalışma ortamları rahat,
    - maaşları tr ortalamasının çok üstünde, (lise mezunu bir adam doktordan fazla kazanabiliyor.)
    - geliştme isteğinden dolayı,
    - proje geliştirip zengin olma düşüncesi,

    sayamadığım bir dolu sebep olabilir ama bir kaç sebebiniz olması gerekiyor. inovatif bir kafanız yoksa sadece teknoloji öğrenirsiniz. daha yüksek maaşlı bir yerde çalışırsınız. kariyer hedefiniz sadece maaş üzerine kurulu olur. benim istediğim bir şey olmadı fakat herkesin düşüncesine saygı duyuyorum.

    nerden başlamak lazım ?

    yaşınız ne olursa olsun. bu işi yapabilirsiniz. yeter ki bilgisayar başına oturduğunuzda vazgeçmeyin. o yüzden bu yaştan sonra başlanmaz diyen kişilere kulak asmayın. başarılı bir öğrenciyseniz. tr'de 1 kaç üniversite bilgi açısından olmasa bile ık açısından fark yaratıyor. zaten bunlar belli olduğu için üniversite reklamı yapmayayım.

    ben şunu gördüm. cto yaptığım firmaya belirli dönemler lise stajyeri alıyorduk. son sene hem staj yapıp bu teknolojileri öğrenmek istiyorlar hem de sınava çalışıp iyi bir üniversiteye girmeyi düşünüyorlar. birincisi o kafadan vazgeçmek gerek. ben sınava çalışacağım diyorsanız da benim tavsiyem mesai saati kafasında konulara çalışmak.

    neyse şimdi nereden başlayacağız ?

    öncelikle paradigma konusunda kendinizi geliştirmeniz gerekiyor. odun gibi bir programlama diline girerseniz. çok sıkıntı yaşarsınız. ben front-endcilerin bir çoğunda paradigma eksikliği sorununu gözlemliyorum. bu sorunu çözmek için ;

    programming paradigms dersleri vardı stanford'un. onlara başlayabilirsiz.

    bu aşamadan sonra hangi yönde kendimizi geliştirmek istediğimizi seçmemiz gerekiyor ?

    sunucu, network, mobil, web, elektronik .. hangileri ? bu seçim o kadar önemli ki. kullanışsız bir dil öğrenirsiniz. aç kalırsınız. bununla ilgili bir analiz yapar. burada yine paylaşırım.

    mobil seçtiniz diyelim.

    android, ıos diye bir seçenek çıkıyor. mesela ıos için kullanabileceğiniz minimum 2 dil 1 framework var. objective c mi ? swift mi ? react native mi ?

    bu seçimi tamamen ihtiyaçlarınıza yönelik yapmanız gerekiyor.

    yavaş yavaş ilk bölümü bitireyim. şu cevabı vereyim. iyi olduğunu düşündüğünüz bir yazılımcı neden bir şey üretemez ?

    bu soruya verdiğim en tutarlı cevap şu ; özellikle web,mobil odaklı yani kullanıcı etkileşimli bir işten söz ediyorsak. design bilmek gerekiyor. front-end ve back-end bilmek gerekiyor. yani ben çok iyi php yazarım diyen bir adam ıos'a geliştme yapamayabilir. hatta yakın bir zamanda meteorjs yazan bir arkadaşım. ıos'a geliştirme yapmaya çalışıyordu. bir ton sıkıntısı vardı. yani tasarımcıyı buldu diyelim. çizdirdi. front-end'ini yaptıktan sonra back-endi yapmaya enerjisi olmuyor.

    diğer bir gözlemim. bu adamların maaşlarından memnun olmaları ve yalnızca teknik bilgilerini geliştirmelerinin tatmin etmesi. yani ınstagramı yapabilirim. yapabilecek olmak bana gerekli hazzı veriyor kafası.

    ilk bölümde söyleyeceklerim bunlar. bir sorun olmazsa güzel bir roadmap oluşturma niyetindeyim.
  • doğru dil seçimi ? dünya nereye gidiyor ?

    2000'li yılların ortalarında bir asp modası vardı. bugün adını duymuyoruz. c#'cı bir topluluk kaldı. yakın zamanda onlarında bitmesi dileğiyle.. şaka bir yana doğru teknoloji seçimi yapmak işlerinizde tam anlamıyla fark yaratıyor. biraz örneklerle anlatayım.

    ben c öğreneceğim. ondan sonra web sitesi yapacağım derseniz. sıçarsınız. ben bir dili öğrenmeyi seçersem aşağıdaki gibi sınıflandırma yapıyorum.

    - ne kadar hızlı geliştirme yapabilirim ?
    - taleplerimin tamamını karşılayabilir miyim ?
    - ne kadar hızlı geliştiriliyor.
    - ne kadarlık bir topluluk kullanıyor ?
    - tr'deki talepler ne doğrultuda ?

    örneklere geçelim.

    mesela python'un django framework'üyle normal bir dile göre çok daha hızlı proje çıkarırsınız. taş gibi çalışır. fakat türkiye'de ne yazık ki çok fazla kullanılmaz. en büyük sebeplerinden birisi bir işe başlayan yazılımcının o dille devam etmesi. mesela web'e geliştirme yapmak isteyen birisi hemen php'e ve ya c#'a yöneliyor. haliyle bir sektörde o işi yapan ne kadar çoksa fiyatta işletmeci için düşmüş oluyor. ucuza eleman çalıştırmak için php veya c# ile girişimlerine başlıyorlar. bu durumda bir seçim yapmak gerekiyor. bu seçimi de + ve -'lerinize göre değerlendirmek size düşüyor.

    front-end üzerinden örnek vereyim.

    html/css öğrenebilirsiniz. etliye sütlüye karışmazsınız. tasarımı giydirir. işinize bakarsınız. mesela böyle bir algı var. 4 sene önce bu söylem biraz haklı olunabilirdi. şimdi değil. js teknolojilerinde uzmanlığı olmayan kişilere front-end developer olarak bakmıyorlar bile. maaş durumu bile bu teknolojilere göre değişiyor.

    html/css + jquery => bu temeli oluşturuyor. + reactjs 'i koyduğumuz anda developerın durumu değişime uğruyor. siz siz olun for yazmayı bilmeyen front-endcilerden olmayın. fakat bu sektör öyle nankör bir sektör ki angularjs yazarsınız. sonra topluluktan bir çoğu vuejs'ı övmeye başlar. "abi vue aşmış, onda yazalım" kafasına girerler. sektör değişime uğramaya başlar. ne geliyorsa o ilk ateşi yakandan geliyor. neyse..

    bir de mobilden örnek vereyim. 3 sene önce sanırım. swift yayınlandı. insanlar hurra swift öğrenmeye başladılar. topluluğu gelişmemişti. başlangıçta bir dolu developer sıçtı. şu an en azından krallar gibi işlerini yapıyorlar. tr için konuşmuyorum. çünkü firmalar objective c ile başladıkları kodlarını swift'e taşımayı masraflı buluyor.

    ıos ve android development yapmış birisi olarak şunu söyleyebilirim. yakın gelecekte platform dışı teknolojiler her şeyi değiştirecek. react, meteor bunlardan en büyük örnekleri. teknolojiler hızlı bir şekilde javascript kanalına kaymaya başladı.

    facebook diyor ki ; "abi sen web yazıyorsun, ios için swift, andorid için javayla uğraşıyorsun. bir de yetmiyor bunların görünümleriyle uğraşıyorsun. uğraşma ben sana bir platform sağlayayım. çatır çatır geliştir."

    işlerin ne kadar kolaylaştığını düşünsenize. androidciye para verme, ioscuyu kov gitsin, front-endci zaten kim köpek. işte bu düşünce full stack developer kavramını doğurdu. ne iş olsa yaparım abi. zaten bundan önce de vardı diyeceksiniz ama en azından bu kadar popüler değildi.

    akıllı telefonlar çıktığında web'in x oranda büyüyeceğini mobilin 5x ile büyüme göstereceğini düşünüyordum. sanıyorum ki haklı çıktım. şu an js teknolojileri 6x oranda büyüyor. js yazmayan yakın gelecekte aç kalabilir :)

    girişken olmak sektörü takip etmek çok önemli. sketch diye bir tasarım programı var. bir tasarım programı front-endcinin hayatını nasıl kolaylaştırır ? adam senin bilinçsiz kod yazmanı engelliyor.

    şimdi sonuca gelelim.

    front-end aşamasında bulunacaksınız ?
    html/css + saas + jquery + reactjs

    mobil yazacaksınız ?
    react native

    back-end yazacaksınız ?
    memur olucağım diyorsanız : c#
    hızlıca güzel proje geliştireceğim ama iş bulamiyebilirim : python/django
    her durumda ekmeğime bakarım : php/laravel

    redis, memcache, elasticsearch, postgresql, nosql, mongodb, mysql, rest api

    gibi extra öğnenmeniz gereken şeylere de ihtiyacınız olacak.

    scala, go, java, ruby, c++ ve c alternatif olarak önerebileceğim platformlar. ben sadece ıos yazacağım diyorsanız. swift öğrenin. ben swift biliyorum. şimdi hayvani app'ler yaparım diyorsanız yanılıyorsunuz. xcode bambaşka bir yapı sunuyor.

    bu konuyu hızlıca bu şekilde toparlayayım. ben özellikle sektör grubu geniş bir kesimi değerlendirdim. sizin özel ilgi alanınız varsa araştırabilirsiniz.

    ingilizce konusu;

    bir kaç arkadaşım ingilizce bilmiyordu. bir sorunla karşılaştıklarında arama yapıyorlar. dil bilmedikleri için sadece girdikleri sitede kod arıyorlar. bu değişik bir kafa. bu konuyu acil bir şekilde halletmeniz gerekiyor şayet bilmiyorsanız. tr kaynak bana yeter diyorsanız. garip garip adamların tanımlamalarına maruz kalırsınız.

    geliştirici ve mühendis kafaları

    bu sektöre girdiğinizde bir yol ayrımına gireceksiniz. yanı baktığınızda her şeyin kütüphanesi var. oturup birde request için kütüphanemi yazayım. redis'i baştan mı geliştireyim diyebilirsiniz. benim bir çok arkadaşım. bas geç yapıyor. yani bir kodun çalışması ve düzgün yazılması bir developer için yeterli olabiliyor. bir mühendis içinse durum farklılaşıyor. mühendis adam o sistemin çalışma yapısını da kavrayan adamdır. nasıl olsa çalışıyor. banane demeyin. github'da okuduğunuz bir kod yazılıma bakış açınızı değiştirir.

    benim matematiğim kötü geyiği ?

    bu iş için iyi matematik bilmeye gerek var mı ? eskiden olsa evet derdim de şu an tr'de yapılan işlere baktığımda çok fazla gerek gözükmüyor. en azından matematik 1 bilmeniz hayatınızı kolaylaştırır.
  • yazilimci olmak bilgisayar oyunlarindaki rpg karakter kasmak gibidir.

    once temel tier talentleri puan vermeniz gerekir ki bir ust tier yetenekleri de ogrenebilesiniz. ondan sonra ayni rpg oyunlarindaki gibi tank, dps nasil bir sey olmak istiyorsan ona gore talent tree diziceksin.
  • kafanın boş olmamasıdır. akılda hep o gün çözülemeyen problemlerin ya da düzeltilmesi gereken bugların dönüp durmasıdır. gecenin yarısı kalkıp şunu denesem çalışır mı acaba diyip şirket bilgisayarına bağlanmaktır. bu iş mükemmeliyetçiliği kaldırmaz. yoksa kendinizi çok yıpratırsınız.
hesabın var mı? giriş yap