Her sektörün efsaneleri vardır. Bunlar genellikle yabancıların onu tam olarak anlayamamaları nedeniyle yaratılır. Bazıları eğlenceli olsa da bazıları düpedüz tehlikelidir. Pek çok insan, yazılım geliştirmenin neye benzediğine dair abartılı beklentilere sahiptir ve yazılım geliştiricileri hakkında basmakalıp bir görüşe sahiptir.
Bu, endüstrinin içinde de olur. Örneğin, "Scala Java'dan daha üretkendir ." Çözmeye çalıştığınız soruna bağlı. Scala, Java'ya kıyasla doğası gereği daha üretken ve esnek kılan hem işlevsel hem de nesne yönelimli bir programlama dilidir. Ancak Scala'da öğrenmesi zor olan bazı karmaşık özellikler vardır. Java'nın öğrenilmesi kolaydır ve çevresinde zengin bir çerçeve ve kitaplık ekosistemine sahiptir.
Yazılım geliştirmeyle ilgili bazı efsanelere bakalım.
Bu benim en çok nefret ettiğim efsane. Pek çok insan, programlamanın sadece problem alanını bilgisayar tarafından anlaşılabilir bir dile çevirmek olduğunu düşünüyor. Ve hepsi yanlış.
Evet, teknik ve mantıklı ama aynı zamanda bir sanat formu. Programcı olmayanların çoğu, zarif bir şekilde yazılmış kodun güzelliğini görmezden gelir. Herkes kod yazabilse de, zarif kod yazmak zarafet gerektirir.
Karmaşık, gerçek dünya senaryosunu modellemek için bir veritabanının nasıl yapılandırılacağını anlamak da çok fazla yaratıcılık gerektirir. Ve farklı teknolojileri bir araya getirmek ve büyük, karmaşık bir sistem geliştirmek için birbirleriyle konuşmalarını sağlamak inovasyon gerektirir.
Yaratıcılığın ikinci yönü, kodun optimizasyonuyla birlikte gelir. Kodlamayı ilk öğrendiğinizde, ana odak noktanız kodun çalışmasını sağlamaktır. Ancak biraz deneyim ve bol pratik yaptıktan sonra, kodunuzun daha hızlı çalışmasını ve daha az kaynak tüketmesini sağlamak için hileler ve teknikler bulmaya başlıyorsunuz.
Örneğin, Fibonacci serisinin saf bir uygulamasını düşünün:
Şimdi şuna bakın - bir sanat eseri:
Anlaması daha zor olsa da, bu noktayı kanıtlıyor. Yaratıcılık olmadan böyle bir çözüm yaratılamaz.
Tipik bir geliştiricinin görüntüsü, bilgisayarın önünde tek başına oturmayı ve her zaman kod yazmayı seven yalnız bir kişidir. Bu gerçeklerden uzak olsa da, birçok geliştiricinin proje yöneticileri, tasarımcılar ve kullanıcılarla işbirliği yaparak bunun için kod yazıp bunu belgeleyebilmek için bir sorunu anlaması gerekir. Bu, iyi iletişim becerileri ve yazma becerileri gerektirir. Geliştiriciler, kodlarında sürekli olarak kararlar alırlar ve her şekil ve boyutta gelirler.
Pek çok blog platformunun ortaya çıkmasıyla, gittikçe daha fazla geliştirici deneyimleri, bazı programlama dilleri kullanarak çözdükleri sorunlar, kariyer tavsiyeleri ve çok daha fazlası hakkında bloglar yazıyor. Bazıları YouTube kanallarını çalıştırır ve çok sayıda iyi içerik oluşturur.
Bu hatalı görüntüyü silme zamanı!
Bir kişi iyi bir programcı ise, bu otomatik olarak iyi bir yönetici olacağı anlamına gelmez. Geliştirme ve yönetim, her biri belirli beceriler ve zihniyet gerektiren iki farklı iş türüdür. Futbolculara ve futbol antrenörlerine benzer. İyi bir futbolcuysa, bu onların antrenörlük yetenekleri hakkında hiçbir şey söylemez.
Yönetim, insanlarla çalışmak ve onları başarıya hazırlamakla ilgilidir. İnsanların işlerini yapmalarını sağlayarak sonuç alırsınız - işi onlar için yaparak değil. Öte yandan, bir geliştirici daha çok bireysel bir katılımcıdır.
Bu hızla değişiyor ve birçok şirket artık her iki tür kariyer için de farklı yollara sahip. Bireysel bir katılımcı olarak kalmak ve aynı yönde ilerlemek istiyorsanız, teknik bir lider, baş mühendis vb. Olabilirsiniz. Yönetici bölümü için, bir mühendislik yöneticisi, mühendislik başkanı vb. Olabilirsiniz.
4-8 kişilik geliştirme ekiplerinin en iyi performansı göstermesinin bir nedeni var . Buna birkaç geliştirici, bir ürün yöneticisi, bir mühendislik yöneticisi ve belki bir tasarımcı dahildir. Giderek daha fazla şirket bu modeli takip ediyor. Bu, basit bir sonuca götürür: Daha fazla insan eklemek, illa ki daha iyi ve daha hızlı yazılım geliştirmeye yol açmayacaktır.
Mantığa aykırı görünebilir, ancak yazılım geliştirme mekanik bir süreç değildir (örneğin veri girişi). Veri girişi durumunda, daha fazla kişi ekleyebilir ve daha fazla çıktı üretebilirsiniz çünkü yeni bir üye almanın maliyeti çok düşüktür ve bireysel çalışma genellikle diğer ekip üyeleri tarafından engellenmez.
Bir takıma yeni insanlar eklediğinizde, onları projeye dahil etmeniz gerekir. Bu, ekibin ürün geliştirmeye harcamadığı zamandır.
Yazılım, yaşayan bir organizma gibidir. Kendi yaşam döngüsüne sahiptir ve sürekli büyüyor, hızla adapte oluyor ve değişiyor. Üstelik, piyasa ve iş trendlerinden yeni teknolojilere kadar gerçeklik de sürekli olarak gelişiyor. Kullanıcılar yeni işlevler ve iyileştirmeler de talep edebilir. Sürekli bir mücadele. Apple, varlığının 45 yılını yeni bitirdi.
Onu bu kadar ilginç yapan da budur. Ürünü piyasaya sürdükten hemen sonra başlayan başka bir yolculuk var. Ürünün hala bakımı ve son kullanıcılar tarafından bildirilen hataların giderilmesi gerekiyor. Arka planda her zaman bazı optimizasyonlar, güvenlik güncellemeleri, UX değişiklikleri, yamalar ve diğer şeyler olur.
AI üst kümedir, ML ise alt kümesidir. İkincisi, büyük verinin “3 Vs” sini kapsayan devasa veri kümelerine sahip alanlarda daha baskın olarak kullanılır: Hacim, Hız ve Çeşitlilik. Öte yandan AI, yalnızca ML'yi değil, aynı zamanda doğal dil işleme, derin öğrenme, bilgisayarla görme ve konuşma tanıma gibi diğer dalları da kapsar.
Bununla birlikte, hem yapay zekanın hem de makine öğreniminin ortak bir hedefi vardır: doğal insan zekasını yenen bir ölçekte zeka elde etmek.
Tüm bu efsaneler doğru olsaydı, yazılım endüstrisi bu kadar gelişmiş ve olgun olmazdı. Umarım bu, bazı mitleri aydınlatmaya yardımcı olur. Okuduğunuz için teşekkürler!
Bilinç nedir? Yüzyıllardır filozofların ve bilim adamlarının kafasını karıştıran bir sorudur. Bazıları bunun bedenlerimizden bağımsız olarak gerçekten anlayamadığımız geçici bir şey olduğunu söylüyor.
Yıllık ortalama 154 bin dolar maaş ve istikrarlı iş büyümesi ile şimdi blok zinciri geliştirmeyi öğrenmek için ideal zaman. Blok zinciri teknolojilerini oluşturmak ve geliştirmek için blok zinciri geliştiricileri, bilgisayar ağı, kriptografi, algoritmalar ve veri yapıları dahil olmak üzere çeşitli beceriler kullanır.
İster NFT'lerde yeni olun, ister sahnenin emektarı olun, burada anlattıklarımın faydalı olabileceğini umuyorum. Bu seri, "projelerin" herkesi kendilerine bir miktar para kazandırmak için manipüle etmek için kullandıkları özenle tasarlanmış yöntemleri ortaya çıkarmayı amaçlıyor.
Bu gönderi, DFINITY ekibinin merkezi olmayan bulut vizyonunu ve bunun geleneksel blok zinciri ve Amazon Web Servisleri gibi mevcut bulut sağlayıcılarıyla ilişkisini araştırıyor. Büyük ölçekli bir ağ tarafından uygulanan DFINITY teknolojisinin gösterimleri 2017 sonbaharında yapılacak ve bunu, 2018 yazının başlarında piyasaya sürülmesi beklenen “açık bulut” ağıyla kâr amacı gütmeyen vakıf için bir Ana bağış toplama izleyecektir. .
"Bozulma" terimi, nedensel mekanizma bilinmediğinde kullanılır ve bireyin altta yatan bilişinde ve nörobiyolojisinde bir işlev bozukluğunu ima eder. 1952'de, DSM 1, klinik kullanım için zihinsel bozuklukları kategorize eden APA Adlandırma ve İstatistik Komitesi tarafından yayınlandı.
Benim için her şey o ilk satırla ve sizi nereye götürdüğüyle ilgili. Bazı yazarlar olay örgüsü, satranç taşlarının hassas düzenlemesi tarafından yönlendirilirken, diğerleri bir karakter ve yeni bir kurgusal arkadaşla yolculuğa çıkma yeteneği tarafından çekilir.