it-swarm-tr.com

Kodlama sıkıcı hissetmeye başladığında, hepsi aynı şey gibi, ne yapmalı?

6 yaşında bir Commodore 64'te programlamaya başladım. Şimdi 28 yaşındayım ve Bilgisayar Bilimleri alanında birinci dereceden 4 ders tamamlamak zorundayım.

Bunca yıl sonra kod yazmaktan sıkılmaya başladım. Bilgisayar bilimlerinde teorik bilgisayar dillerinde ders aldım ve ağ güvenliği alanında 10 yıllık C sistem kodlaması yaptım ve kod yazmayla ilgili hiçbir uyarı almıyorum.

C, C++, Python veya istediğiniz herhangi bir dilde kod yazabilirim, ancak ne yaptığım konusunda heyecanlanamıyorum. yazılı çok iş parçacıklı kod, HTTPS MITM proxy ve herhangi bir özel algoritma beceri gerek kalmadan bir WSGI uygulaması.

Daha basit (veya daha fazla) soyutlamalar veya otomasyon ile tüm bu yeni şeylerin hepsinin aynı olduğunu hissediyorum, ancak hepsi bana benziyor. Tekrar tekrar. Hesaplanabilir dil, Turing hesaplanabiliridir, bu nedenle kodlama, kısmi bir fonksiyonun bu alt kümesinde benzer bir desenin sadece bir kopyasıdır.

Günlük işlerimde, hata arama, kod üzerinde kriterler yapma veya X, Y, Z kütüphanesi ile sorunu çözmekten bile sıkıldım.

Ben çok meraklı biriyim. Her zaman bir şey tarafından uyarılırım. Ama büyük koda baktığımda bile yapamam. İşlerin işleyişinde kendimi daha rahat hissediyorum.

Kariyerimde ilerleme kaydetmenin zamanı geldi mi? Ya da Bilgisayar Bilimlerinde daha zorlayıcı şeyler mi almak istiyorsunuz? Belki CS'de büyük bir derece olsun?

Proje yönetimi "Peopleware" ile ilgili ilk kitabımı okumaya başladım ve yazılım geliştirme yaşam döngüsüne daha fazla ilgi duyuyorum. Ne yapmayı öneriyorsun?

Belki Google ya da Microsoft ya da Apple gibi bazı arkadaşlarımın yaptığı gibi. Belki de daha yönetsel bir kariyer yolu.) İletişim kuralları ve "insanlar hakkında iyi bir kitap bulmaya çalıştım. beni yönetime dahil olma ihtimaline hazırlamak için.

Herhangi bir öneri?

Not: Çok ilgim var, Depresyonda değilim :) Dağ, trekking, fotoğraf çekimi yapıyorum ve spor tırmanıcıyım , Yüzmeyi ve genel olarak spor yapmayı seviyorum, bazen koşuyorum, aslında ülkemden (İtalya) AC'den bugüne hikaye hakkında kitap okuyorum ve gezileri seviyorum (bu yaz İspanya'da çok yer görmek için 4000Km yaptım ve içine tırmanmak, sadece 3 hafta içinde bir tatil değil, bir maraton, 24 km'lik trekking fıtık yaralanmamı sağladı), tiyatro ve genel olarak hayatı seviyorum.


Herkes sayesinde, tüm cevapları düşünmek bana yolumu daha net hale getirme fırsatı veriyor.

Özet olarak, en çok oylanan cevap hakkında genelleme yapabiliriz.

Her şeyden önce insanlar, işimizi hayatta kalmanın tek nedeni değil, hayatınızı destekleme ( gerekliliğine oy veriyorlar (bu benim durumum değil), yani, eğer sadece yaşam nedeniniz varsa, gerçekten depresif bir duruma hızlı gelirsiniz. İnsanların dediği gibi, Viyana sizi beklemiyor :)

Bu hatırlatmadan sonra insanlar şunları önerir:

  • teknik karmaşıklığı artırmak Ben aslında meydan okuma artırmak ve bu konuda daha az sıkılmak için üzerinde çalışıyorum.
  • uzmanlık alanını yönetici olmaya çalışan teknik olmayan bir alanla değiştirin ya da işinizle ilgili teknik olmayan alanlarda biraz daha bakıcı olun.
  • uzmanlık alanını başka bir teknik zorlukta değiştirirseniz, bir sistem programcısı mısınız? yararlı yazılımınızı kullanarak insanları daha rahat görebilmeniz için insan için uygulama hakkında daha az sıkılmaya çalışın
  • akademik yolunuzda bilgisayar bilimleri derecenizde biraz ilerleyin

Benim amacım için doğru cevap bilgisayar biliminde ilerlemektir, bence programlama almak için tek bilgisayar bilimi yolu değildir ve bence bilgisayar mühendisliğindeki diğer yolların yazılım mühendisliği bakıcısından farklı olduğunu daha iyi hissediyorum.

33
boos

Bunun olması gerekiyordu.

Birincil ilginiz kodla ilgili ise, sizi bir gün, bir gün kalıcı olarak çılgın, sinirli ve depresyona sürükleyecektir.

Ürünler geliştirmekle ilgilenin ve insanların bunları kullandığını görün. Kodu yazmanın nihai hedefi bu, değil mi? Kod sadece daha büyük bir şey yapmak için bir araçtır.

49
user8685

Sorunuzu bir soru ile cevaplayacağım ...

Bir programcının işi kodlamak mı yoksa problem çözmek mi?

Sıkıldığınızı söylüyorsunuz çünkü kod yazmak daha önce yaptığınız bir şeye benziyor, her kod parçası daha önce yapılmış gibi.

Ancak, bu kod kodunun yazılması gereken sonucuna nasıl vardınız? Çoğu sorunun bunu çözmek için yüzlerce yolu vardır, ancak sadece bir tane vardır en iyi yol.

Gerçekten bir zorluk, merak ya da çözüm bulma ya da problem çözme ile ilgilenmiyorsanız, o zaman gerçekten bir değişiklik yapmalısınız. Buna rağmen yazılım geliştirme yönetimi olacağından emin değilim. Sorun çözme konusunda bu kadar kayıtsızlık hisseden bir yazılım yöneticisi için çalışmak istemem. Muhtemelen sadece farklı bir sektör, farklı bir dizi problemle olmalı.

Sorun çözmeyi seviyor ancak kodlamayı sevmiyorsanız, belki de çözmek için yeterli sorun bulamıyorsunuzdur. İşim her zaman sıkıcı hissetmeye başladığında, çözülmesi gereken bir sorun olduğuna inanıyorum. Neden meşgul iş yapıyorum? Meşgul işi işimden kaldıracak hangi çözümü bulabilirim? Programlamanın güzelliği budur.

21
Nicole

Prosedürel programlama [~ # ~] çok [~ # ~] yaptığınız gibi yoruldum ve bıktınız - ki tamamen anlama. Adım adım belirtmek her yordamsal dilde aynıdır.

Çok sayıda iş dışı faaliyetiniz var gibi göründüğünden, şu anda bildiğiniz şeylere benzemeyen bazı kavramları öğrenmenizi öneririm ve - evet - çok var, ama başlamak için Haskell'i tavsiye ederim çünkü

  • fonksiyonel - sonunda bir programla sonuçlanan daha büyük işlevler yapmak için bir araya getirdiğiniz işlevleri yazarsınız.
  • tembel değerlendirme - adım adım belirtmek yerine, çalışma zamanı gereken değerleri alır . Bu, programlarınızdaki sonsuz listelerle ilgilenmenin çok yaygın olduğu anlamına gelir.
  • kalıp eşleme - büyük if yapılarına sahip olmak yerine, parametrelerin nasıl göründüğüne ilişkin kalıpları listelersiniz ve çalışma zamanı uygun kalıbı seçer ve karşılık gelen kodu çalıştırır.

İşte tam bir sıralama fonksiyonu:

qsort []     = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)

(Açıklama için http://www.haskell.org/haskellwiki/Introduction#Ease_of_understanding adresine bakın)

Bunlardan herhangi biri sizin için yeniyse maceraya başlamanızı öneririm.

İyi şanslar, iyi eğlenceler.

9
user1249

Bilgisayarlar sıkıcı tüketicilerdir. Makine etkileşimlerini gün boyu kodlarken, makine her seferinde aynı tepkiyi verir. Projeyi halletmek güzel, ama bir süre sonra sıkıcı. Monotonluğu doğrudan makine ile ilgili olmayan bir şeyle parçalamaya gerçekten yardımcı olur.

Hem fotoğrafçılığa hem de kullanıcı deneyimini inceleyerek ilham buldum. Bir düşünün, Apple diğer satıcılar luke sıcak yanıt aldığında Santa Clara'dan çıkacak bir sonraki şey için kendilerini saldıran insanların gob'lerini nasıl alabilir? Android, Apple Verizon'da iPhone'u bu kadar uzun süre yayınlamaya direnmemiş olsaydı büyük bir yanıt alacaktı? Size büyük bir ipucu vereceğim: değil Bu ürünler teknik olarak çok gelişmiş olmalı, maninin büyük bir psikolojik bileşeni var.

Ürün tasarımını ve kullanıcı deneyimini anlamak, çoğumuzun öğrenecek çok şeyi olduğu bir şeydir. Birini işaretleyen nedir? İnsanların yerleşik çözümü terk edecek kadar havalı bir şey nasıl tasarlarsınız? Apple (bir kült lideri olmayı umduğum için değil) gibi kendi teknoloji kültünüzü nasıl yaratıyorsunuz? Bunlar çok ilginç ve teşvik edici sorular. - ama şimdi odaklanman farklı.

8
Berin Loritsch

Muhtemelen yeterli teknik zorluk yaşamıyorsunuz?

  • Yüksek düzeyde dağıtılmış sistemleri deneyin. Mikrosaniye hassasiyetiyle 1000 bilgisayardan günlük toplamak için bir sistemi kolayca kodlayabilir misiniz?
  • Gerçek zamanlı olarak deneyin. Tüm işlemlerinizi bir motorun tek dönüşünde paketleyin.
  • Bilgisayar görmeyi veya görüntü işlemeyi deneyin. Matematik becerileri, formül-kod becerileri, optimizasyon becerileri işe yarar.
  • AI'yi deneyin. IBM'in bilgisayarında nasıl Tehlike oynuyor? Muhtemelen bu alanda bazı algoritmik karmaşıklıklar söz konusudur.

Vb Elbette, sıkıcı değil, şeylerin sizin için zor olduğu bir alanda başlangıçta daha az kazanmaya hazır olun.

7
9000

Motivasyonu "doğru" çözümü olmayan bir alana geçerek buldum, editoryal araçlar yazıyorum ve işlerim kullanıcıların faydalı bulduğu kadar iyi. Birçok teknik olmayan insanla tanışıyorum ve birlikte çalışmak için ihtiyaç duydukları yazılımı geliştirmek için yollar hazırlamaya çalışıyoruz, insan etkileşimini buluyorum ve perspektifleri sürekli olarak zevkli bir şekilde değiştirme ihtiyacı var ve aniden kodlama değil artık çok sıkıcı.

Ancak bunun herkes için olmadığını biliyorum, bazıları işinizin kalitesinin nesnel bir ölçüsüne sahip olmama konusundaki güvensizliği diğerlerinden daha zor ele alıyor.

Ancak dikkate değer bir seçenek.

4
biziclop

Evet, bazen gerçekte aynı kodu tekrar tekrar yazıyormuş gibi hissediyorum. Ama hayır, henüz bundan sıkılmadım. Neden?

Çünkü temelde yeni kodlama yollarını ve koddaki bir şeyi ifade etmenin yeni, özlü, zarif yollarını keşfetmekten hoşlanıyorum. Bununla ilgili iki yol vardır: Yeni programlama dilleri öğrenmek veya yeni kütüphaneler veya çerçeveler öğrenmek.

Denediğim her dilde yeni bir programlama dili öğrenmek benim için daha kolay hale geldi. Ve bir süre sonra, çok ilginç olmayı bıraktı. Ama sonra, yaklaşık bir veya iki yıl önce, sonunda, bir programlama paradigması olarak OOP yeni bir meydan okuma olacak kadar farklı olan) işlevsel programlamaya geldim. programlama yeteneklerimi gerçekten zenginleştirdim ve bana programlama problemine bakabileceğim yeni bir bakış açısı kazandırdı.Şimdi sadece farklı programlama dilleri yerine farklı programlama paradigmalarını keşfetmeye çalışıyorum.

İkincisi, yeni bir kütüphane, çerçeve veya API öğrenmek: Doğru söylediğiniz gibi, yeni çerçeveler genellikle yeni sorunları çözmez; sadece farklı bir şekilde çözüyorlar, ör. ek bir soyutlama katmanı ekleyerek. Bu belki de mümkündür çünkü bugünün bilgisayarları önceki makinelerden daha güçlüdür; ya da belki de, çünkü bir bütün olarak yazılım yazma konusunda daha iyiyiz.

Bu son bit muhtemelen biraz açıklamaya ihtiyaç duyar. Bir örnek vereceğim: En uzun süredir, programlama becerilerimi uygularken, yazdığım kodun bakımı için gerçekten ciddi bir düşünce vermedim. Bir işte programlamaya başladığımdan beri bakış açım değişti. Korunabilir kod yazmak genellikle kurumsal bir ortamda çok önemlidir, çünkü kodlamaya harcadığınız her saat gerçek paraya mal olur, bu nedenle bir şirket mümkünse mevcut koda bağlı kalmaya çalışır ve şansınız eninde sonunda geçmeniz gerekecek halefi kodunuzu.

Bakımlı kod yazmanın aslında büyük bir zorluk olduğunu düşünüyorum. Bu genellikle süper zeki ve son derece optimize edilmiş Montaj kodu yazamayacağınız anlamına gelir (unutmayın Mel'in Hikayesi - Gerçek Bir Programcı , kimse? ;-) Bunun yerine, avantaj elde etme olasılığınız daha yüksektir soyutlama. Kodunuzu bazı iş kurallarına ve sorunlu etki alanına ne kadar yakınlaşırsanız o kadar iyidir. Tüm bu yeni kütüphaneler devreye giriyor. Temiz, net, özlü ve anlaşılması kolay bir kod yazmanıza izin veriyorlarsa, bu iyi bir şeydir.

Bu cevap biraz uzunsa özür dilerim. Programlamadaki motivasyonumun nereden geldiğini göstermeye çalıştım ... ve bir zamanlar aynı şekilde hissettiğinizi ve motivasyonunuzun nihayetinde bırakılıp bırakılmadığını (ve nedenini) bilmek isterim.

4
stakx

Kod yazmaktan yorulduysanız, sizi heyecanlandırmıyorsa, sizi sıkıyorsa, değişiklik yapma zamanı gelmiş olabilir. Bir yönetim pozisyonuna geçmeyi düşünebilir ve diğer kodlayıcıları yılların deneyimiyle yönetebilir ve yönlendirebilirsiniz. Ya da sistemleri tasarlayabileceğiniz ve planlayabileceğiniz sistem mimarisine yanlara doğru ilerlemeye çalışın ve diğer insanlar uygulamanın çoğunu yapacaklardır.

Veya kariyerleri tamamen, bilgisayarlarla hiçbir ilgisi olmayan bir şeye geçirebilirsiniz. Birisi size verebilirse, hayalinizdeki işin ne olacağını kendinize sordunuz mu?

Mikrodenetleyiciler ile oynamaya başlayın. Düşünebileceğim programlama yeteneğinin en ferahlatıcı ve heyecan verici uygulaması.

3
Rob S.

Arka planlarımızın başlangıç ​​noktaları benzer gibi görünüyor, hem benzer makinelerde 6 yaş hakkında programlamaya başladık hem de çeşitli nedenlerle hem programlamaya girip çıktık. Derecelerimin hiçbirinin programlama ile ilgisi yoktur - tüm müzik derecelerine sahibim - bazı lisansüstü bilgisayar bilimi dersleri almıştım.

Haklısın, bence, programcıların çoğu kez aynı sorunları tekrar tekrar çözdüğünü ve "yeni" nin "eski" ye dayandığını gözlemlemede haklısın. Bu gerçeğin sizin kredinize olduğunu fark ettiğiniz; çok fazla geliştirici ve iş adamı yeni teknolojileri eskilerinden tamamen kopuk olarak görüyor.

Yani, bu tür problemleri çözmek sizi ilgilendirmez. Ne ilginç olurdu? Genel olarak problem çözmeyi sever misiniz? Belki bir "iş" yazılım geliştiricisi olarak hayat sizin için değil.

Yanıtlardan daha fazla soru verdiğimi biliyorum, ama umarım bu soruları cevaplamanız sizin yönlendirmeniz gereken bir yön hakkında bilgi verecektir.

2
Andrew

Sıkışmış gibi geliyor bana. İçinde olmak istemediğiniz bir durumtasınız ve bundan nasıl çıkacağınızı bilmiyorsunuz. Tavsiyem basit: sadece farklı bir şey yapmak uğruna farklı bir şey yap. Sorununuzu çözmese bile, muhtemelen sizi sıkıştıracaktır.

C, C++, Python veya istediğiniz herhangi bir dilde kod yazabilirim, ancak ne yaptığım konusunda heyecanlanamıyorum. yazılı çok iş parçacıklı kod, HTTPS MITM proxy ve herhangi bir özel algoritma beceri gerek kalmadan bir WSGI uygulaması.

Bunu yanlış anlamayın (bunlar iyi başarılardır), ancak bu, programlamadaki tüm zorlayıcı ve heyecan verici sorunların kapsamlı bir listesidir. Hala çözmek için birçok zor sorun var. En zorlu problemler ölçekli çalışmayı içerir. Bir WSGI uygulaması yazdınız, ancak günde bir milyar sayfa görüntüleme işleyebilecek bir uygulama yazdınız mı? Çok iş parçacıklı kod yazdınız, ancak çok bilgisayarlı kod yazdınız mı (yüzlerce bilgisayarla)?

Kısacası, teknik olmayan bir şey yapmayı denemek istiyorsanız, bunun için gidin. Ama bunu yapma çünkü çözülmesi gereken tüm problemleri çözdüğünüzü hissediyorsunuz çünkü durum böyle değil.

2
Jason Baker