Sona Avetyan JavaScript ve En Çok Kullanılan Çerçeveleri Hakkında

Yayınlanan: 2022-10-06

Teknoloji dünyasında hepimiz tek tıkla sorularımıza cevap bulabiliyoruz. Ancak, kaynağın formatına hiç dikkat ettiniz mi? Video izlemeyi, makale okumayı, sesli aramayı veya birinci kişiden kontrol etmeyi sever misiniz? Örneğin, yazılım geliştirme ve ITO endüstrisinde, yazılım geliştiriciler, mühendisler ve CTO'lar gibi profesyonellerden doğrudan röportajları ve kişisel hikayeleri kontrol etmek, kendinizi eğitmenin en etkileşimli ve güvenilir yollarından biridir. Kişisel hikayeler ve gerçek deneyimler eğitimi daha uygulanabilir ve akılda kalıcı kılar.

CodeRiders'da yazılım geliştiricilerimizle bir dizi röportajımız var.

Teknoloji dünyasında hepimiz tek tıkla sorularımıza cevap bulabiliyoruz. Ancak, kaynağın formatına hiç dikkat ettiniz mi? Video izlemeyi, makale okumayı, sesli aramayı veya birinci kişiden kontrol etmeyi sever misiniz? Örneğin, yazılım geliştirme ve ITO endüstrisinde, yazılım geliştiriciler, mühendisler ve CTO'lar gibi profesyonellerden doğrudan röportajları ve kişisel hikayeleri kontrol etmek, kendinizi eğitmenin en etkileşimli ve güvenilir yollarından biridir. Kişisel hikayeler ve gerçek deneyimler eğitimi daha uygulanabilir ve akılda kalıcı kılar.

CodeRiders'da yazılım geliştiricilerimizle bir dizi röportajımız var.

JavaScript ayrıca, dünya çapında işe alım uzmanları tarafından en çok talep edilen programlama dili olarak başka bir Statista raporuna öncülük ediyor.

Elbette bu rakamlardan sonra JavaScript çerçevelerinin de dünyanın en çok kullanılan web çerçeveleri listesinin başına geçeceği aşikar.

Statista'ya göre, 2022 itibariyle Node.js, React.js ve Vue.js, dünya çapında yazılım geliştiriciler arasında en popüler 10 çerçeve arasındadır.

Bunu akılda tutarak, CodeRiders'ın full-stack yazılım geliştiricisi Sona Avetyan ile sohbetimize başlayalım.

Merhaba Sona. Bir yazılım geliştiricisi olarak bilgi ve deneyiminizi paylaşmak üzere zaman ayırdığınız için teşekkür ederiz. Başlamak için lütfen kendinizi tanıtın.

Merhaba. Röportaj daveti için teşekkür ederiz. Ben, yenilikçi teknolojileri kullanarak web ve masaüstü uygulamaları geliştirmede 3 yılı aşkın profesyonel deneyime sahip tam donanımlı bir yazılım geliştiricisiyim. CodeRiders yazılım geliştirme şirketine kabul edildiğimden beri, şirketimizin projelerinde yer aldım ve PHP, JavaScript ve ana çerçeveleri Vue.js, Node.js, React.js ve MySQL kullanan uygulamaları başarıyla teslim ettim.

CodeRiders'a nasıl geldiniz?

BT endüstrisinde (özellikle CodeRiders'da) son bulma hikayemin ilginç ve belki de bazıları için motive edici olduğunu düşünüyorum. Bu yüzden sizlerle daha detaylı paylaşmak istiyorum.

Aktüerya bilimi ve matematik alanında yüksek lisans derecem var ve kariyerimin başlangıcında kendimi bu alanda başarılı bir profesyonel olarak hayal ettim. Ancak zaman geçtikçe, özellikle bilgisayar bilimi ve bilgi teknolojisi endüstrisinin Ermeni ekonomisine yaptığı büyük “patlamadan” sonra ilgimin değiştiğini fark ettim. Üniversite yıllarımda, IT alanı Ermenistan'da çiçek açıyordu. Gittikçe daha fazla genç yetişkin BT'ye takıntılıydı ve bunda büyüme ve mükemmel kariyer için pek çok fırsat vardı. Alanımda oldukça başarılı olmama rağmen bilişim sektöründe yepyeni bir sektöre başlamaya karar verdim. Arkadaşlarım, istikrarlı bir başlangıç ​​için CodeRiders web geliştirme okuluna güvenmemi tavsiye etti ve ben de onların tavsiyelerine uydum.

CodeRiders yazılım geliştirme okulundan başarıyla mezun olduktan sonra Ermenistan'ın en büyük sigorta şirketlerinden birinde teknik destek uzmanı olarak çalışmaya başladım. Sonunda, takımın lideri olmak için büyüdüm. İşimi sevmeme rağmen, diğer yazılım geliştiriciler ve mühendisler tarafından yazılan kodu desteklemekten ve sürdürmekten çok daha fazlasını istediğimi her zaman biliyordum. Sigorta şirketi benim için daha büyük ve daha parlak bir kariyer yolu için sadece bir “hazırlık”tı.

6 yıl sigorta şirketinde çalıştım ve bu arada CodeRiders'ı aklımda tuttum. Yazılım geliştirme okulunun CodeRiders yazılım dış kaynak şirketine dönüştürüldüğünü ve Ermenistan'daki en başarılı yerel teknoloji şirketlerinden biri haline geldiğini biliyordum. CodeRiders'ı sosyal medyada takip ettim ve kendimi her zaman onların arkadaş canlısı ekibinin bir parçası olarak hayal ettim. Şirketi ve çalışma tarzını sevdim. 2019'da CodeRiders'ın kurucusundan bir telefon aldım ve beni sevimli ekibine katılmaya davet etti. En sevdiğim telefon görüşmelerinden biriydi. Heyecanlandım ve tabii ki teklifi kabul ettim ve her şey böyle başladı. Şirkete aşina olduğum için atmosfere hızla adapte oldum ve herkes çok destekleyici, arkadaş canlısı ve her zaman yardıma hazırdı.

Ana teknoloji yığınınız ve bu teknolojileri seçerken neleri göz önünde bulundurduğunuz hakkında daha fazla konuşabilir misiniz?

Bu, şu an itibariyle teknik becerilerimin “tam paketi”.

  • Web: HTML, CSS3, DAHA AZ, SASS, Önyükleme, JavaScript, PHP
  • Sunucular: Apache, WAMP
  • Veritabanları: MySQL, MSSQL
  • Diller: PHP (sürüm 5.6-8.x), JavaScript, SQL
  • Teknolojiler/Kütüphaneler: Vue.js, React.js, Node.js, Laravel, JQuery, Electron.js, Sosyal API'ler (Google)
  • Kavramlar: OOP, MVC
  • Ortamlar: Linux (Ubuntu, CentOS 6/7), MS Windows 10, Git, SVN

Programlama kariyerimin başında PHP yazılım geliştirme dili ile çalıştım. Sonra JavaScript'e geçtim. İkisini de seviyorum ama kesinlikle favorim JS.

JS ile ilk “mini projem” şirketimiz için çevrimiçi bir kartvizit sistemi oluşturmaktı. Tüm çalışanlarımız kimlik bilgilerini girebilir ve özel kartvizitlerini yapabilirler. Daha sonra bu kartvizitleri tarayıp yazdırabilir, cep telefonlarına veya bilgisayarlarına aktarabilir ve çeşitli durumlarda kullanabilirler. Ön uç geliştirme için Vue.js'yi ve arka uç geliştirme için Node.js ve MongoDB'yi kullandım. Bu, tamamen JS teknolojilerine dayanan ilk projemdi. O zamanlar arka uç için PHP kullanma seçeneğim vardı, ancak JavaScript ve çerçeveleri ile çok ilgileniyordum. Ayrıca bu bizim kendi projemizdi, ben de denedim ve çok işe yaradı.

JavaScript ile TypeScript kullanmazsanız çok dinamiktir, bu tam olarak JS hakkında sevdiğim şeydir. Kodla oynamaktan zevk alıyorum. Alçıyla oynamak gibidir ve birçok durumda belirli sabit adımları izlemeniz gerekmez. Java gibi statik dillerin aksine, JavaScript'te yorumlayıcı, değişkenlerin o andaki değerine dayalı olarak değişkenlere çalışma zamanında bir tür atar. Dinamik JavaScript, tüm sayfayı tarayıcıya yüklemek zorunda kalmadan bir web sayfasında eylemler oluşturma yöntemidir. Bu da web sitesinin hızını artırır ve kullanıcıya daha duyarlı hale getirir. Öte yandan, web geliştirmeyi JS olmadan hayal edemezsiniz çünkü ön uç geliştirmenin tüm kontrolü JS teknolojilerinin elindedir.

Dolayısıyla JavaScript'te çok daha esnek olabilirsiniz ve birçok durumda size yardımcı olabilir. Ancak bu dinamizm, özellikle Java veya C# gibi yazılı dillerin yazılım geliştiricileriyse, bazen birçok yazılım geliştiriciyi rahatsız eder. JavaScript'te sabit hiçbir şeyimiz yok, ancak diğer yandan, kodla biraz "yaratıcı" olmak istiyorsanız, size bir şans verir. Bu arada, JavaScript'in daktilo dillerine alışkın olan yazılım geliştiriciler için bir çözümü vardır. Esnekliği sayesinde TypeScript'i onunla kolayca kullanabilirler.

Yazılı ve dinamik yazılım geliştirme dilleri arasındaki fark aşağıdadır. Belirli bir değişkene bir tür verirseniz, sabitlenir ve onu asla değiştiremezsiniz. Örneğin, belirli bir değişkeni dize, sayı veya başka bir şey olarak tanımlarsanız, asla geri dönüp türünü değiştiremezsiniz. Öte yandan, JS gibi dinamik dillerde, tamam, şu anda değişkenim bir sayıdır, ancak daha sonra onu bir dize yapacağım diyebilirsiniz. Bazı durumlarda, yazılan dillerin "katılığı" harikadır çünkü birçok hatadan kaçınırsınız, ancak diğer yandan "esnekliğin" dinamizmi başka birçok durumda da yardımcı olur. Bu yüzden hangisinin daha iyi olduğunu söylemek zor. Esas olarak belirli bir yazılım geliştiricisine ve belirli bir projenin karakteristik özelliklerine bağlıdır.

Özetle, belirli bir projenin teknoloji yığınını seçme şansım varsa, projenin “özüne” çok dikkat ederim. Projeniz için belirli bir teknoloji yığını seçmeden önce göz önünde bulundurulması gereken ana faktörler bunlar olduğundan, projenizin özünü, yapısını ve uygun olma olasılığını anlamak çok önemlidir. Mesela, veritabanı için SQL mi yoksa MongoDB mi kullanmalısınız? Ön uç geliştirme için Vue.js kullanmak neden daha iyidir? Arka uç geliştirme vb. için Node.js veya PHP'ye ne dersiniz?

Lütfen JavaScript ve çerçeveleri (Node.js, Vue.js ve React.js) hakkında en sevdiğiniz şeylerden bahsedin.

  • JavaScript'in dinamizmi
  • JS ve çerçeveleri ile çalışmak bir ev inşa etmek gibidir

Daha önce de belirttiğim gibi, dinamizm benim bir numaralı favorim. En çok JS ön uç çerçevelerini seviyorum. JavaScript ön uç çerçeveleri ile hayal gücünüzle oynamakta özgürsünüz.

JS ve çerçeveleriyle çalışmayı sık sık bir ev inşa etmeye benzetiyorum. Önce binanızın “iskeletini” inşa edersiniz ve her katta, örneğin ön kapı, odalar, pencereler vb. belirli öğelerin yerlerini zaten belirlersiniz. Hepsini her katta yeniden inşa etmek yerine, her katta yeniden şekillendiriyorsunuz. Evinizdeki her taş bir bileşendir ve her merdiven veya asansör bir yönlendirmedir. Bu binada, örneğin, her kat web sitenizin sayfalarıdır, merdivenler ve asansörler yönlendirmelerdir (bir sayfadan diğerine geçtiğinizde) ve duvarlar, sandalyeler ve pencereler gibi diğer tüm öğeler değiştirilebilir bileşenlerdir.

Evin konukları kullanıcılar, konut sakinleri ise sizinle çalışan diğer yazılım geliştiriciler ve mühendislerdir. Sakinlerin misafirleri evinizi ziyaret ederken kendilerini rahat hissetmelidir.

En iyi JavaScript çerçevesi hangisidir?

Bu çok merak uyandıran bir soru ve elbette belirli bir cevabı yok. Sadece belirli bir JavaScript çerçevesinden bahsetmek yerine, en popüler JS çerçevelerini karşılaştıracağım ve kararı size bırakacağım.

Vue.js ve React.js ön uç geliştirmede kullanılırken, Node.js arka uç yazılım geliştirme için kullanılır.

Vue.js ve React.js çok benzer ve aynı zamanda çok farklı. React.js'yi biliyorsanız, Vue.js'yi ve bunun tersini öğrenmek çok kolaydır. Bu iki çerçeve birbirini yeniliyor. Örneğin, girdiler ve değişikliklerle ilgilendiğimde, Vue.js ile çalışmak React.js ile çalışmaktan çok daha kolay.

React.js'de Vue.js'den daha fazla kod yazmalısınız. Kod yapısı da Vue.js'de daha iyi organize edilmiştir, ancak yine, kodunuzu nasıl yazdığınıza da bağlıdır.

Genel olarak, JS çerçeveleri en iyisidir çünkü bileşenlerden oluşurlar ve onlarla oynamak çok kolaydır. “Kendini tekrar etme” kalıbını dikkate alırsın. Zaten bir bileşen yazdıysanız, onu yeniden yazmak yerine birden çok yerde kullanabilirsiniz.

Örneğin, bir “düğme” için bir kod yazmanız gerekiyor ve bu düğmenin yapısı, düğmenin rengi veya vurgulu rengi gibi küçük değişiklikler dışında her yerde aynıdır. Yazılım geliştirici, bu küçük değişiklikleri yapmak isterse kodu sıfırdan yeniden yazmaz. Renkten sorumlu belirli bileşeni alırlar ve müşterinin gereksinimlerine göre çeşitli sayfalarda değiştirirler. Yani her sayfada buna “renk bileşeni” diyorsunuz.

Node.js'yi arka uç geliştirmemde, ön uç geliştirme için React.js ve Vue.js ile birlikte kullanıyorum ve bu üç teknolojinin birleşimi tam anlamıyla ideal. Hem içi hem dışı muhteşem olan ideal bir insanla karşılaştırarak bu kombinasyon hakkında şaka yapıyorum.

Node.js çerçevesinde Express.js veya Nest.js ile çalışmaktan keyif alıyorum. Yakında yayınlanacak olan yeni web sitemizin geliştirilmesi sırasında Nest.js ile çalışmaya başladım.

JavaScript'in günümüzün BT endüstrisindeki önemini nasıl değerlendirirsiniz?

JavaScript olmadan web geliştirmeyi hayal etmiyorum. Tabii ki, günümüzde BT endüstrisi kitlesel ve hızlı bir şekilde büyüyor, ancak JS aynı büyüme hızına sahip. Çözümlerini en son BT gelişmelerine göre ayarlar. Bu nedenle, JS'nin onlarca yıl BT endüstrisinde kalacağından eminim.

Lütfen CodeRiders'daki en “unutulmaz” yazılım geliştirme projelerinizden bahsedin.

Kendi deyimimle ilk “devasa, karmaşık ve muazzam” projemden bahsedeceğim. Bu proje beni deneyimli bir yazılımcı olarak şekillendirdi.

Bu özel yazılım geliştirme projesini kısaca anlatmak zor. Müşteri birden fazla sektörde faaliyet göstermektedir: medya ve eğlence yazılımı çözümleri ile pazarlama ve analitik yazılım çözümleri. Müşteri, kullanıcılarına şirketlerinin reklamlarının etkinliğini kaydetmeleri, yayınlamaları ve izlemeleri, çalışanları için çalışma limitleri tanımlamaları ve sonuçları kontrol etmeleri için devasa bir platform sunar.

Bu projede CodeRiders'dan meslektaşlarımla ve diğer ülkelerden bazı uzak yazılım mühendisleriyle birlikte çalıştım. Bu proje üzerinde herkesin evden çalıştığı COVID karantinası sırasında çalıştık. CodeRiders ekibine kabul edişimin üzerinden sadece birkaç ay geçti. Bu benim ilk büyük projem olduğu için, geliştirme süreçlerine sorunsuz bir şekilde dahil olabilmem için bana yardım etmeye istekli CodeRiders'tan yazılım geliştirici arkadaşlarımla gece saat 2'ye kadar geç kalıyordum. Bu benim için CodeRiders'ın takım ruhunun “giriş”iydi.

Amacımız hatasız ve yüksek kaliteli kod geliştirmekti ve kimin görevi üzerinde çalıştığımız önemli değildi. Tüm meslektaşlarım, kodu incelemek ve tavsiye vermek için görüntülü aramalar başlatırdı. CodeRiders'ta mottomuz “Arzu ediyoruz, birlikte başarıyoruz” ve evet gerçek bu ve bu yaklaşım sayesinde ekibimize entegre oldum ve yazılım geliştirme alanında deneyim kazandım.

Bu yaklaşım, diğer uzak yazılım geliştiricileri ile de çalıştı. Ne zaman bir sorunumuz olsa, hataya kimin neden olduğunun bir önemi olmadığını hatırlıyorum. İlk önceliğimiz sorunu bir an önce çözmekti. Yani, birimiz bunu en kısa zamanda yapacaktı. Daha sonra bir acil durum çağrısı yapacak ve gelecekte böyle bir sorun yaşamayacağımızdan emin olmak için sorunu ve sorunun nedenlerini tartışacaktık.

Lütfen JavaScript'in bazı avantajlarını ve dezavantajlarını sıralayın.

Avantajlar

  • JavaScript'i anlamak ve öğrenmek kolaydır.
  • JavaScript, eşdeğer bir sonuç üretmeye yardımcı olan tüm modern tarayıcıları destekler.
  • Yazılım geliştiriciler zengin arayüzler yapma şansına sahiptir.
  • Diğer programlama dilleriyle mükemmel çalıştığı için her projede kolayca uygulayabilirsiniz.
  • Küresel şirketler toplum gelişimine öncelik verir ve önemli projelere yatırım yapar. Angular çerçevesi tarafından oluşturulan Google ve React.js tarafından oluşturulan Facebook buna iyi örneklerdir.
  • JS, diğer teknik dillerle çok iyi oynuyor.
  • Node.js sunucuları aracılığıyla JS'yi kullanmanın çeşitli yollarına sahip olduğumuz için, yalnızca JavaScript kullanarak önden arkaya eksiksiz bir uygulama geliştirmek mümkündür.
  • Ve son olarak, çok popüler ve büyük bir topluluğa sahip. Mevcut birçok kurs olduğu için JS bilginizi kolayca genişletebilirsiniz.

Dezavantajları

  • JavaScript kodu herkes tarafından görülebilir. Kodu herkes inceleyebilir.
  • Çeşitli tarayıcılar JavaScript kodunu farklı şekilde yorumlar, bu da tarayıcılar arası kodu okuma ve yazmada zorluklara neden olabilir.
  • JS'de hata ayıklama, C/C+ gibi diğer düzenleyiciler kadar verimli olmayan HTML düzenleyicileri tarafından desteklenir. Bu, geliştiricinin konuyu tespit etme işini karmaşıklaştırabilir (kritik bir dezavantaj değil).

CodeRiders'da tipik bir iş gününü anlatabilir misiniz?

CodeRiders'daki tipik günüm, iyi bir fincan kahve ve meslektaşlarımla sıcak bir sabah sohbeti ile başlar. Sonra herkes işine gider. Gün içinde birkaç görüşmemiz olabilir. Pazartesi ise, günün sonunda tüm ekip büyük bir toplantı için toplanır. Herkes ne yaptığını, şu anda ne üzerinde çalıştığını ve ne yapılması gerektiğini temsil eder. Birinin sorunları varsa, ekiple paylaşır ve tavsiyelerde bulunuruz.

CodeRiders ile ilgili sevdiğim şey, işte olmama ve işimin kalitesinden sorumlu olmama rağmen, bunun baskısı altında hissetmiyorum. Üstelik atmosfer o kadar rahatlatıcı ki daha iyi ve daha verimli çalışıyorum.

CodeRiders'ın evden veya ofisten çalışma arasında seçim yapma esnekliği sağladığını biliyoruz. Hangisini tercih edersiniz ve neden?

Evet, evden çalışma ile ofis arasında seçim yapma imkanımız var ama ben ofisten çalışmayı seviyorum. Her iki şekilde de benim için verimli ama takım arkadaşlarımı ve genel olarak ofisi özlüyorum. Ofisten çalışırken çok fazla olumlu duygu hissediyorum.

Bir müşteriyle röportaj yaptığınızı düşünelim. Müşteriniz sizi projesiyle tanıştırıyor ve bu noktada belirli teknik gereksinimleri yok. Önerilere açıktırlar. Lütfen konuşmayı nasıl sürdüreceğinizi anlatabilir misiniz?

Resmi olarak işe başlamadan önce müşterilerle birçok görüşme yaptım. Bu doğaldır çünkü müşteri, işe almak üzere olduğu uzmanın iyi bir eşleşme olduğundan emin olmak ister.

Bu görüşmelerde müşterilerin çoğu yazılım geliştiricinin kararlılığını, işe yaklaşımını ve kişisel değerlerini anlamak ister. Bazı küçük test görevleri de aldım, ancak bu çok sık olmaz, yalnızca müşteri şirketimizde yeniyse.

Müşterinin bana teknik bir soru sorduğu zamanlar oldu ve o zaman bir cevabım yoktu. Bununla birlikte, çoğu müşteri buna konsantre olmaz, zorluklara tepkinizi anlamaları onlar için daha önemlidir. Müşterinin ihtiyaç duyduğu belirli bir teknolojiyi bilmediğim zamanlar oldu ama yine de görüşme aşamasını geçtim. Bu gibi durumlarda, müşteriler muhtemelen gerekli teknolojiyi hızlı bir şekilde öğrenme hevesimi görüyorlar.

Tüm zamanların en sevdiğin proje nedir ve neden?

Tüm zamanların en sevdiğim projesi, yukarıda anlattığım ilk büyük projedir. Neden? Niye? Çünkü şimdi sahip olduğum tüm deneyim ve profesyonelliği o zaman kazandım. Çeşitli işlevler üzerinde çalıştım, birçok şey hakkındaki bilgimi test ettim ve çeşitli teknolojiler üzerinde çalıştım. Sonunda bu projelerde çok acı çektim: uykusuz geceler ve uzun aramalar. Sonunda hayatımın bir parçası oldular.

Sizce BT'nin geleceği hangi teknoloji dili?

Bu kesin bir cevabı olmayacak bir sorudur. Her teknoloji kendi yolunda önemlidir ve doğru çalışması için yerinde kullanılmalıdır. Örneğin, veri bilimi ve yapay zeka için Python kullanıyoruz ve işe yarıyor. Ancak Python, arka uç web geliştirme için en iyi çözüm değildir. Bazı projeler o kadar büyük ve karmaşık değildir, ancak yanlış dillerde yazılmıştır, bu da işi gereksiz yere karmaşıklaştırır.

Bilgi teknolojisi sektöründe kariyerlerine yeni başlayan yazılımcılara ne önerirsiniz?

Sadece bir kez öğreneceğinizi ve bilginizi tüm kariyeriniz boyunca kullanacağınızı düşünüyorsanız, yazılım geliştirmede durum böyle değildir. Tüm kariyer döngünüz boyunca yeni şeyler öğrenmeye ve bilgilerinizi güncellemeye ve yükseltmeye hazır olmalısınız. Yani bilişim sektöründe aynı anda hem çalışıp hem de öğrenmelisiniz yoksa geride kalırsınız.

Sona, bizimle konuşmak ve zengin uzmanlığınızı paylaşmak için zaman ayırdığınız için teşekkür ederiz.

Ayrıca popüler frameworkleri (React.js, Vue.js ve Node.js) ile JavaScript yazılım geliştiricilerinin bu aralar oldukça popüler olduğunu belirtelim. Günümüzün küresel BT yetenek eksikliğinde, özellikle yazılım dış kaynak kullanımıyla ilgileniyorsanız ve saygın teknoloji merkezlerinde uzak yazılım geliştiricileri arıyorsanız, JavaScript, Vue.js, React.js ve Node.js yazılım geliştiricilerini uygun fiyatlarla bulmak çok daha kolaydır. .

JavaScript geliştiricilerini işe almak için CodeRiders ekibiyle ücretsiz danışmanlık hizmeti sunuyoruz. Yazılım ihtiyaçlarınızı görüşmek ve yazılım geliştirici fiyatlarımıza göz atmak için bizimle iletişime geçin.