Asla inşa ettiğinizden ziyade bir şeyin nasıl inşa edildiğiyle ilgili endişeleriniz var mı?


11

Bir programcı olarak aletlerimde, diğer insanların kodlarında, kodumda ve genel olarak dünyada doğal bir rahatsızlık duyuyorum. Her zaman geliştirmek istiyorum. Bu yüzden refactor, en son tekniklerin üstünde kalıyorum. Desenler öğrenmeye çalışıyorum, tekerleği yeniden icat etmemek için çerçeveler kullanmaya çalışıyorum. Sıkıştırabileceğim desen miktarı ile çoraplarınızı patlatacak bir teknik özellik yazabilirim.

Ancak son zamanlarda kullandığım araçlar hakkında gerçekten başarılı yazılımların nasıl uygulanacağından daha fazlasını bildiğimi hissediyorum.

İnsan faktörleri beceri setinde eksik olduğumu hissediyorum ve başarılı bir yazılım mühendisi olmanın en havalı çerçeveyi bilmekten daha fazlasını gerektirdiğine inanıyorum. Aşağıdaki becerilere de ihtiyaç duyduğunu düşünüyorum.

  • Etkileşim dizaynı
  • Kullanıcı deneyimi
  • Pazarlama

Çalıştığım insanlardan öğrendiğim biraz şey ve üzerinde çalıştığım harika projeler var ama bu becerilere "sahip olduğum" gibi hissetmiyorum.

Haklı mıyım? Bu becerileri daha da geliştirmeye çalışmalı mıyım yoksa bunları kariyer için yapan insanlara bırakılmalı mı?

Bir şeyi nasıl yaptığınız konusunda fazla bağlanmadığınızdan ve "kullanıcılarınızı harika kıldığınızdan" nasıl emin olabilirsiniz?

Bu becerileri programlama açısından öğrenmek için iyi kaynakları bilen var mı?


2
Evet, bunlar çok önemli. Eğer tek kişilik bir şirket olsaydın, hemen tutam hissederdin. Bir başlangıç ​​sizi işe almayabilir, çünkü hayatta kalmak için savaştığını anlamıyorsunuz ve gelecek ay beta kalitesinde şeyleri itmek ya da ölmek zorunda kalıyorlar ya da müşterilerle konuşurken gerçeği biraz geremediğiniz için. Bununla birlikte, yanlış yönetilen büyük bir şirkette, bencil kişisel çıkarları sürdürmek belki de daha iyidir. Yönetim zaten her zaman böyle yapar.
İş

"Vay canına, sorunsuz çalışıyor" diye düşündüğüm harika ürünler kullanmaktan zevk alıyorum. Böylece böyle "vay" ürünleri yaratmaya katılmaya çalışmak benim için doğal bir şey. Bu sizin için doğal değilse, belki de bundan hoşlanan ve iyi para ödemeye istekli olanları aklınızda bulundurun (Apple ürünlerini düşünün).
LennyProgrammers

2
Bana öyle geliyor ki, sonuç odaklı bir işçi yerine süreç odaklı bir işçi olma yolundasınız. Sürece odaklanıyorsunuz çünkü aşina olduğunuz şey bu. Süreci bırakmayı ve sonuçlara odaklanmayı öğrenin. Dediğiniz gibi, tasarım desenleri ve şeyler sadece araçlardır: ana endişeniz yaptığınız ürünün hangi sorunu çözeceği konusunda olmalıdır.
whatsisname

1
@whatisname, bu kadar basit değil, "sonuçların" böyle görünebileceğinden emin olabilir ve böyle bir uygulama, birlikte hacklenen bazı geçici kodlarla ver 1.0 için harika çalışır, ancak ver 2.0 için büyük bir değişiklik gerekir, iyi yeniden çalışılması gerekecek önceki çabanın bir "sonucu" ile sıkışmış olacak .. Bence bu gerçekten bir uygulamanın bir kullanıcının işlevselliği sadece buzdağının ucu olduğu ve ' t "sonucu" sadece bununla sınırla
programmx10

@whatisname Bu bir cevap olsaydı ben de kabul ederdim ama Rick'e de katılıyorum. Ne almak için çalışıyorum bir nokta 2 beceri kümesinin dengede olduğu bir nokta, bu yüzden en iyi araçları ve teknikleri kullanırken harika bir kullanıcı deneyimi tasarlamak mümkün. Şu anda biri ya da diğeri acı çekiyor gibi görünüyor. Her iki beceri setini de ikinci doğa yapmam gerekiyor.
Rob Stevenson-Leggett

Yanıtlar:


5

Benim tavsiyem: Kullanıcılarınızla mümkün olduğunca konuşun. Büyük bir şirkette olup olmadığınızı ve kullanıcılarınızdan farklı bir kıtada olup olmadığınızı bilmiyorum veya serbest çalışan tipi bir konumdaysanız, ancak mümkünse kullanıcılarınızla konuşun.

Çoğu zaman, bir çeşit arkanıza yaslanıp dünyanın şimdiye kadar gördüğü en büyük kod parçasını oluşturmak veya en az sayıda döngü ve alan kullanan bir işlev oluşturmak benim işim olmadığını hatırlamak zorunda olduğumu biliyorum teknolojik olarak mümkün olan en kısa süre, ancak kullanıcıların işlerini yapmak için ihtiyaç duydukları her şeyi yapmak. Ve bu amaçla, teknik yeteneklerin ötesinde, (yine de kendim için) sahip olmak için en iyi 2 özelliğin, kullanıcıların işiyle ilgili iyi bir çalışma bilgisi ve onlarla iyi bir çalışma ilişkisi olduğunu düşünüyorum.

Ufacık (~ 50 kişilik) bir şirkette çalışıyorum ve kimsenin küpüne çıkıp onlar için yaptığım / düzelttiğim en son şey hakkında sohbet etmeyi seviyorum. İşimden aldığım en iyi duygu, onların işleri hakkında konuştuklarını duyabildiğim ve teknik bir çözümün var olabileceğini bile fark etmedikleri bir sorunu çözecek bir şey önerebildiğim zamandır. Eğer işlerini anlamadıysam ve onlarla rahatça konuşamazsam bu mümkün olmazdı.


Kullanıcılarla konuşmak için +1 - yararlı bir ürün oluşturmak için kritik
Gary Rowe

5

Bunun nerede çalıştığınıza ve gelecekte hangi tür şirketlere geçtiğinizi gördüğünüze bağlı olduğunu söyleyebilirim - bu gerçekten açık uçlu bir tartışmadır.

Daha küçük şirketlerle, birçok şapka giyebilirsiniz (ancak kendi ürününüzü satmak istemiyorsanız pazarlamanın neden bu listede olduğunu bilmiyorum).

Daha büyük şirketlerde, özellikle bu konulara odaklanan insanlara sahip olma eğiliminde olabilirler.

Yani, gerçekten, nereye gittiğinizi ve potansiyel olarak kendinize daha fazla kapı açmayı gördüğünüzle ilgili.


2
Teşekkürler - ilginç noktalar. Pazarlamayı satıştan daha fazlası olarak görüyorum, geliştirme blogları, SEO, İştirakler, nasıl entegre edilmeleri gerektiğini düşünüyorum.
Rob Stevenson-Leggett

2

Yazdığınız her kod satırı için hata olasılığını tanıtın.

Bu nedenle, en iyi tasarımlar getirilen kod miktarını en aza indirir - belki de KURU (Kendinizi Tekrarlama) prensibi ile. Ancak, yeni başlayanlar MVP'ye (Minimum Canlı Ürün) çok daha hızlı yol açan YAGNI (İhtiyacınız olmayacak) yaklaşımını destekliyor .

Amacınız kullanıcılarınızın tam olarak istediklerini yapan temiz, kullanımı kolay bir ürün oluşturmaksa, YAGNI nihai tasarım modelinizdir. Çalışma koduna doğrudan katkıda bulunmayan her şeyi atın. Bu, saf inşa süreçlerini ve kalıpların takıntılı kullanımını içerir.

Bazı okuma materyalleri

Kullanıcı arayüzü tasarımı ile ilgili mükemmel bir kitap olan " Beni düşündürme " yi okumak isteyebilirsiniz . Ayrıca, Gitomer serisi kitaplardan herhangi biri (özellikle Küçük Yeşil Kitap ) satış, ağ oluşturma ve pazarlama becerilerinizde size yardımcı olacaktır.


1

Belirli bir etkileşim tasarımı ve kullanıcı deneyimi bilgisinin büyük bir şirkette bile bir nedenden dolayı çok yararlı olduğunu düşünüyorum: geliştirici olarak, arayüzü kullanılabilir bir durumda olmadan haftalar hatta aylar önce kullanan ilk kişisiniz test etmek için bir test cihazı.

Erken aşamalarda, planlandığı kadar kullanımı kolay olmayan bir arayüze veya gözden kaçmış olabilecek bir tasarım prensibine dikkat çekmek çok yararlı olabilir. Bu şeyleri çalışmak için somut bir şey yapmadan önce görmek zor olabilir ve her zaman üzerinde çalışacak somut bir şeye sahip olan ilk kişisiniz.


Büyük bir şirkette değilim ve geçmişte bir etkileşim tasarım şirketinde çalıştım. Bunu öğrendim çünkü bilgim bazen eksikti, erteledim. Kaynaklarınız veya kitap önerileriniz var mı?
Rob Stevenson-Leggett

1

Sıkıştırabileceğim desen miktarı ile çoraplarınızı patlatacak bir teknik özellik yazabilirim.

Yalnızca bu ifade beni yazılım geliştirmenin diğer yönleri üzerinde çalışmanız gerektiğine inandırıyor.


Bu konuda ironi bir miktar vardı :) Muhtemelen soruda çok iyi rastlamadı.
Rob Stevenson-Leggett

@Rob, söylediğine sevindim, büyük kırmızı yanıp sönen desen kötüye ışıkları her yerde sönüyordu.
ocodo

1

Şirketinizin yazılımının her yönünden asla sorumlu olmasanız da, birçok konuda geniş bir bilgi yelpazesine sahip olmak son derece değerli olabilir. Başka bir şey değilse, bir röportajda bırakabileceğiniz daha fazla şeydir, böylece kariyerinizi ilerletebilirsiniz.

İşinizin bazı alanlarında yeterince zorlanmıyorsanız, ilginç bulduğunuz bir şey yapmak için evde kendi projenizi başlatın. Veya açık kaynaklı bir projeye katılın.


1

Hayır yapmam, ne yaptığım konusunda endişelenmek benim işim değil, müşterim / işverenim tarafından belirlenen teknik özelliklere göre inşa etmek. Zaten ne istediklerini biliyorlar ve bunu düzgün bir şekilde uygulamak benim elimde. Yazılıma bir özellik koymanın en iyi yolundan tam olarak emin olmadıklarını söyleyebilirsem şans ortaya çıktığında tavsiyede bulunacağım.

Muhtemelen bir noktada kendi projemi yapmak ve ne yaptığım konusunda endişelenmek isteyeceğim, ancak bir süre için bir yazılım geliştirme kariyerine başlarken, bir şeyler yapmanın doğru yolunu öğrenmek için sürekli çabalamak önemlidir.


İlginç, azınlıktasınız. Bazen diğer insanların yanlış olabileceğini düşünmüyor musunuz?
Rob Stevenson-Leggett
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.