“Tekerleği asla yeniden icat etmeyin” ibaresi öğrenciler için uygun mu?


115

SO hakkında bazı sorular sorduğumda kendimi sürekli olarak "tekerleği yeniden icat etme" ya da "tekerleği yeniden icat etme" ifadesiyle sürekli karşılaşıyorum. Size bazı çerçeveleri veya mevcut paketleri kullanmanızı söylüyorlar. Bu tutumun nereden geldiğini biliyorum, çünkü başkalarının çözmüş olduğu şeylerle zaman kaybetmek pek de mümkün değil. Yoksa öyle mi?

Bir öğrenci olarak başkalarının problemimi çözmek için yazdıkları bazı kodları kullanarak buldum istediğim kadar öğrenemiyorum ve daha az içgörü kazanıyorum. Bazen de bu cümlenin, benim gibi öğrenciler için değil, son başvuru tarihleriyle yüzleşen çalışan programcılar için olduğunu düşünüyorum.

"Tekerleği yeniden icat etmek" o kadar kötü mü? Belki yanlış düşünüyorum? Belki tekerleği yeniden icat etmekten kaçınmanın bir yolu var ve aynı zamanda çok şey öğreniyorsunuz?


51
Sizin için ağırlıkları kaldıracak başka insanlarla karşılaşırsanız bir spor salonuna katılmaktan çok fazla yararlanamayacaksınız (bir yemlik olmayı öğrenmiyorsanız).
Charles E. Grant,

82
Tekerlek üretecekseniz, tekerleği yeniden icat etmek sorun değil. Evler inşa ederken, tekerlek üreticilerinin sizden daha iyi yaptıklarını bildiklerini varsaymak iyi bir fikirdir.
zzzzBov

22
En azından bir tekerlek yapmayı denemelisin! Aksi takdirde, neden önceden hazırlanmış bir tane kullanmanız gerektiğini bilmiyorsunuz.

59
Öyle asla mutlak devlet uygun. :)
Nisanda bir CVn

2
Son derece optimize edilmiş kod oluştururken tekerlekleri yeniden icat etmek uygun olabilir. Standart kütüphaneler çok faydalıdır, ancak daha az genel ancak daha hızlı olan bir şey oluşturmak çoğu zaman mümkündür.
Leo,

Yanıtlar:


126

Bence iyi bir noktaya değindin. Bu sitedeki programcıların çoğu, hedefi olabildiğince hızlı bir şekilde kaliteli yazılımlar üretmeyi hedefleyen çalışan profesyonellerdir. Tekerleği yeniden icat etmek bu hedefi iki sayıyla başarısızlıkla sonuçlandı.

  1. Mevcut kodun yeniden yazılması, sisteminizin benzersiz bölümlerinde kullanılabilecek boşa harcanır ve projenin gerekenden daha uzun sürmesini sağlar.
  2. Herhangi bir kodun ilk sürümünde böcek / görünmeyen sorunlar olması daha olasıdır. Çoğu kitaplık ve yeniden kullanılabilir bileşen, savaş testinden geçirilmiş ve birçok kez eklenmiştir. Bir karma algoritmayı yeniden icat ederseniz veya kendi RDBMS'nizi oluşturmaya çalışırsanız (projenin bu olmadığı sürece) daha düşük sonuçlarla sonuçlanmayacaksınız.

Bununla birlikte, akademik bir ortamda amaç bir bütçeyle yazılım dağıtmamaktır , öğrenmektir . Makaraların veya dingilin nasıl çalıştığını anlamak için bir tekerleği yeniden icat etmek, bu hedefe ulaşmak için harika bir yoldur. Bu nedenle birçok programlama müfredatı, çok az sayıda çalışan programcının bunu yapmak zorunda kalmasına neden olan derleyiciler üzerine bir sınıf içerir.


37
İşlerin nasıl yürüdüğünü anlama fikrine katılıyorum, ancak programlama okullarının üçüncü taraf kütüphanelerini nasıl kullanacaklarını ve neden kullanmaları gerektiğini öğrenmek için müfredatlarında biraz zaman almalarını diliyorum. Bunu yapamayan ve tekerleği yeniden icat eden programcıları ve profesyonel kapasite geliştiricileri sürekli buluyorum.
Spoike

3
derleyiciler hakkında harika bir nokta
Chani

1
Ben tekerleği yeniden icat etmemeyi öğrenmenin daha önemli olduğunu düşünüyorum . Daha önce yaratılmış bir şeyi yaratmayı gerektirmeyen birçok şey yapabilirsiniz.
Thomas Bonini

@Krelp Bir öğrenci iken, kavramlar en önemli kısımdır. Birçok profesör, köprü teorisi ve uygulamasına izin vermek için kod örnekleri kullanır. Bunlar kütüphaneyi yeniden icat edecek program türleridir ancak öğrencilerin materyali anlamalarını sağlamaktır.
Jetti

2
Bir öğrenci olarak, neden olabildiğince hızlı gittiğini görmek için tekerleği yeniden icat etmeniz gerekir, ancak bir profesyonel olarak ticari tekerlekleri kullanmanız gerekir, böylece olabildiğince hızlı gidebilirsiniz. Maalesef, ortaya çıktığı gibi, SO öğrenciler için değil, temel olarak profesyoneller için bir sitedir (bir süre [ev ödevlerini yasaklamadılar mı?)
Tacroy

19

Cevap, içeriğe çok bağlıdır. Bir karma tabloyu uygularken elinizi deneyerek veri yapılarının daha derinlemesine anlaşılmasını istiyorsanız, "tekerleği yeniden icat etmek" yapabileceğiniz en iyi şeydir. Derleyicileri nasıl yazacağınızı ve bir sembol tablosuna ihtiyacınız olduğunu öğreniyorsanız, standart kütüphaneden bir tanesini kullanmak yerine kendi karma haritanızı uygulamak zamanınızı tamamen boşa harcar.


17

Bir öğrenci olarak, ben öncelikle bir kopyalayarak programlama eğitimi başlamak için beklediğiniz tekerleği sonra değiştirmek için öğrenme başlamak veya iki tekerleği nasıl çalıştıklarını görmek ve herhangi bir sınırlama anlamak için. Daha sonra , tasarımı geliştirip geliştiremeyeceğinizi görmek veya kurs amirinize ilgili kavramları anladığınızı göstermek için kendinize ait bir çark bile oluşturabilirsiniz .

Bununla birlikte, çalışan bir profesyonel olarak, herhangi bir sorunu çözmek için hangi tekerleği kullanacağınızı ve sorununuzu yalnızca kısmen çözerse mevcut bir tekerleği değiştirmenin ne zaman uygun olacağını öğrenmenizi beklerdim . Herhangi bir yerde bir tekerlek bulamıyorsanız, belki de pazarın nişini tanımladınız veya yeterince araştırma yapmadınız ve yeni bir tekerlek oluşturmak için ne zaman uygun olacağını bilmek için yeterince deneyimli olmanız gerekir . kendi.

Bir çözümü tekrar icat etmenin ne zaman uygun olacağı konusu karmaşıktır ve daha önce yapılmış bir şeyin yepyeni bir versiyonunu yaratmanın ne zaman daha iyi olabileceğini öğrenmek için zaman ve deneyim gerektirir. Sadece kısa bir süredir gelişiyorsanız, varolan bir çözümü kullanmak ve danışmanlarınızdan seçenekler önermesini istemek daha iyidir. Bir projede sıkı son tarihleriniz ve çok fazla belirsizlik varsa, mevcut bir şeyi kullanmak çok büyük bir zaman tasarrufu olabilir ve her zaman ilk tercihinizdir. Daha sonra uygun olması durumunda, bu durumda tekerleğinizi yeniden icat etmek için geri gelse bile, diğer çözümleri kullanmak için her zaman yeniden yönlendirici kullanabilirsiniz .


12

Bir öğretmen veya programlama olarak, problemin karşı tarafı ile sürekli savaşırım: öğrencilerden ne zaman çarkı yeniden icat etmelerini isterim?

Şu basit durumları ele alın: sıralama algoritması çalışıyoruz ve bazı verileri sıralayan bir program yazmak için görevler belirledim; veya tarih işlevselliği üzerinde çalışmak ve bir takvim istiyorum.

Bunların her ikisi için de sayısız hazır kütüphaneler ve işlevsellik vardır; ancak öğrencilerin onlardan uzak durmasını ve bir sıralama algoritması veya bir takvim kendi versiyonunu geliştirmelerini istiyorum.

Şimdi bir başkasını alın: Randevu almak için basit bir uygulama yazmak için bir görev belirledim. Bu sıralama ve takvim ve daha fazlası gerekir. Bu sefer "tekerleği yeniden icat etmeyin" geçerlidir: Öğrencilerin çözülmüş problemlerle mücadele etmesini istemiyorum, bunun yerine bir sonuç elde etmek için mevcut işlevleri bir araya getiriyorum.

Benim zorluğum, sizden var olanı yeniden yaratmanızı istemek, sizi öğrenmelerini sağlamak ve sizi zanaat yapmam için kullanabileceğim zorlukları ve iyi bir sorun yaratan avantaja sahip olmasından ve ne kadarını yerleştirmem gerektiğinden tekerleklerin yeniden icat edilmediği gerçek dünya ortamında siz misiniz?

Sorunuzu daha doğrudan yanıtlamak için iki öneri:

  • Eğer bir öğretmen size "tekerleği yeniden icat etmemenizi" söylerse, muhtemelen bunu söyler çünkü problemlerini bu şekilde tasarlamışlardır. Belki bir kütüphane denemenizi, kendi başınıza yazmak yerine, bir başkasının algoritmasını uygulamasıyla mücadele etmenizi istiyorlar - bunun içinde de öğrenme var ve yeniden yaratma ilginç, ancak konuyu özlüyor.
  • algoritmalar geliştirmek yerine kütüphane çağrıları yapmak için çok fazla alıştırmanız varsa, öğretmenlerinizle bu aktiviteler arasındaki denge sorununu gündeme getirebilirsiniz - kendi algoritmalarınızı yazmamın istenmediğini vurgulayın, örneğin sıralama ve birleştirme. İletişim asla yanlış gitmeyecek.

6

Alıştırma Herkesin yazdığı ilk 1000 kod satırı şüphesiz benzersizdir.

Araç setinizi genişletin Bir çerçevenin ne yaptığını anladığınızda daha fazla yararı olur (kendiniz yapabileceğiniz noktanın ötesinde), böylece nasıl uygulanacağını bilirsiniz.

"Tekerlekler" i Anlamak Kötü yapılı ve yıpranmış bir tekerlek veya uymayan bir tekerlek kullanmak, bu genel kurallara körel bir şekilde bağlı kalmak için mazeret değildir. Zamanında, fonlamada, uzmanlıkta kısa olabilirsiniz, bu yüzden yamayı tamamlayın ve yolculuğu bitirin.

Birkaç mutlak var .


1
+ Özellikle son nokta için.
Mike Dunlavey

Birinin yazdığı ilk 1000 kod satırı , yaratıcı hatalar açısından çok benzersiz olma eğilimindedir .
leftaroundabout

@leftaroundabout - Bu ifadeyi derleyebilecek kod satırlarıyla sınırlamalıyım.
JeffO,

3

Öğrencilerin ödevleri tamamlamak için para bütçesi yoktur, ancak dikkate alınması gereken tarihler vardır.

Yakın zamana kadar öğrenci olan biri olarak bence uygun olan tekerleği yeniden icat miktarının ödevi hangi sınıfa yaptığınıza bağlı olduğunu düşünüyorum. Bir web geliştirme ve tasarım dersi için kendi soket kütüphanenizi yazmak istemezsiniz (bunu yapabiliyor ve ödevi zamanında yapabilirseniz, bu kadar kolay bir ders alarak ne yapıyorsunuz?) Bir ağ sınıfı için bir ödev olsaydı çok şey. Tabii ki, profesörler genellikle ödevleri oluştururken bunları göz önünde bulundururlar, bu yüzden çoğunlukla dersle ilgili olan işleri yapacaksınız, ancak bazen kendiniz yazmamanız gerektiğini bilmek de önemlidir.

Bu, bir kez okulu terk ettiğinizde, zaten var olan şeyleri inşa etmek için zaman bulmak zor dedi. Hala okuldayken, fırsatta olduğunuz her fırsatı değerlendirin.

SO üzerinde "Kitaplık X / framework Y'yi Kullan" komutunu alırsanız, "X hakkında kendim hakkında daha fazla bilgi edinmek için kendim yazıyorum" ile sorunuzu yayınlayın.


sorunuzu "bu konuda daha fazla bilgi edinmek için kendim X yazıyorum" ile yapın. Bu. +1.
Aralık’ta

2

Projeniz için belirli bir son tarihiniz yoksa IMO, tekerleği yeniden icat etmek daha iyidir. Eğer bir işiniz yoksa, ya da sadece programlamayı öğrenmek istiyor, para programlama yapmak istemiyorsanız, sizi daha iyi bir programcı yapmayacak kısayolları kullanmanın, projenizi daha hızlı tamamlayacak olanların amacı nedir? Bu doğru olsa da, kütüphaneleri, çerçeveleri ve diğer insanların kodlarını nasıl kullanacağınızı bilmek kesinlikle iyi bir beceridir.


Code Katas kavramının ardında yatan fikir budur, geliştirmek ve öğrenmek için tekrar tekrar tekrar kod yazıyor. İşyerinde bile kodunuzu tekrar tekrar yazmanın iyi olduğunu ve daha da iyisi olması durumunda birçok kalıp uygulayabildiğini söyleyebilirim.
Bill K

2

Gerçek hayatta, tekerlek tekrar tekrar keşfedilir. Sebepleri ararsak, tekerleği programlamada yeniden icat etmemiz gerektiğine dair bir içgörü bulabiliriz.

Sümer zamanlarından beri, birçok şey değişti:

  • Tekerlek yapımında kullanılan malzeme: taş, ahşap, metal, karbon, ...
  • Tekerleğe ihtiyaç duyan cisimlerin büyüklüğü - tıbbi aletler için nanometre büyüklüğünde ve kahverengi kömür elde etmek için tekerlekler boyutunda, 100 metre
  • üretim ortamı - el yapımı veya endüstri üretimi
  • ihtiyaç duyulan tekerleklerin hassasiyeti
  • Tekerleğin etrafındaki doğru durum. İşiniz için mükemmel bir tekerlek olabilir, ancak patentli olabilir.
  • Tekerleğin için parlayan ve cila. Bir Cadillac, VW Golf'ten başka bir tekerleği hakediyor olabilir.
  • Bebek arabası için en uygun tekerlek birçok parametreye bağlıdır: Bebek arabasının büyüklüğü ve ağırlığı (artı bebekler), iklim koşulları, petrol veya doğal kauçuk için kaynak fiyatları, üretime hazır jantlar ve zanaatkarlar için makineler. Kısaca konuşulur: Dünya ekonomisi.

Bu yazılım dünyasına nasıl çevrilir? İyi,

  • Bir web sunucusu olabilir, ancak ne yazık ki PHP ile yazılmıştır. Akıcı olduğunuz bir dilde olmasını tercih ederdiniz
  • Bir sıralama algoritması 10 element için büyük olabilir, ancak 1T elemente kadar ölçeklendirilemez
  • İkinci program tarafından oluşturulan bir çözüme ihtiyacınız olabilir.
  • Hassasiyet, çoğunlukla bir yazılım bir sıralamada sıralanırsa - çoğunlukla sıralanmıyorsa - yazılım alanında dijital bir sorudur. Ancak performansın yanı sıra, kod boyutu, bellek kullanımı veya diğer kısıtlamalar olabilir
  • Sanırım patentlerin daha fazla açıklamaya ihtiyacı yok.
  • Görünüm ve his, bir şeyi yeniden icat etmek için sabit bir nedendir - dropDownList'i düşünün (ComboBox).
  • Küresel ekonomik durum, yazılım tekerleğinizi etkileyebilir: bir bulut tekerleği mi, Açık Kaynak tekerleği mi, Tarayıcı tekerleği mi yoksa Uygulama tekerleği mi olacak?
  • Ve elbette kendi çarkınızı inşa etmenin en meşhur nedeni: Bunu öğrenmek istersiniz.

2

Ben yeni eğitimli bir öğrenciyim. Okulda asp.net ve C # 'öğreniyorduk', bu 2 yıl eğitim aldı, asla kendi e-posta sistemimizi, giriş sistemimizi veya CMS'imizi yapmaya çalışmadık. .

102 öğrenciye başladık, 23'ü tamamladı. 4 kişinin bir işi var. Sebep ?: Bu 4 kişi (ben de dahil) eğitime başlamadan önce nasıl programlanacağını biliyorlardı.

İnsanların geri kalanı kayboldu. Çünkü biz asla 'tekerleği yeniden icat etmedik'. Kodun gerçekte nasıl çalıştığını asla bilemedik. Kullanıcı yönetimi ile tam bir giriş sistemi oluşturmak oldukça basittir - Fakat eğitimimden öğrenciler, nasıl yapılacağını bilmiyor. Çünkü bir giriş sisteminin gerçekte nasıl çalıştığını bilmiyorlar.

Bir noktada, aslında 2 yılını boşa harcayan ve hiçbir şey öğrenmeyen üzücü hissediyorum. - Keşke, dünyanın dört bir yanındaki öğretmenler, der ki: Evet, kodların mevcut olduğu çerçeveler olduğunu biliyoruz, onları gerçek hayatta kullanabilirsin. Ama bu eğitimde programlama yapmayı öğreneceksin ..

Pek çok programlama eğitimi çok kısadır, bu yüzden eğitimin bu süre içinde bir çok şeyi kapsaması gerekir. İşlerin listesinin yarıya indirilmesi ve programlama için daha fazla zaman harcanması daha iyi olacağını düşünüyorum. Normal bir "tekerlek" in nasıl yapılacağını bilen insanlar, 'yeni bir tekerlek' icat edebilirler. İnsanlar çok az bilgiye sahiplerse aptal değillerdir, ancak araba hakkında hiçbir şey bilmeyen bir adama, araba yapmayı isteyemezsiniz. Ama nasıl bisiklet yapılacağını bilen bir adama sormak çok daha kolay olurdu. aslında araba ile.


1

Bu gerçekten ne yaptığınıza bağlı. Tekerlekleri anlamaya çalışıyorsanız, onları kendiniz yeniden icat etmek iyi bir fikirdir. Ancak arabaları anlamaya çalışıyorsanız, tekerleği veya içten yanmalı motorları yeniden icat etmek genellikle israf ve rahatsız edicidir.

Örneğin, bir tam metin arama dizininin nasıl işe yarayabileceğini anlamak istediğinizde, kendiniz yayınlamaya çalışmak iyi bir fikirdir. Belge yönetimi için bir uygulama oluşturmaya çalışıyorsanız, mevcut bir kitaplığı yeniden kullanmak daha iyidir, çünkü çalışmanızın çoğu uygulama mimarisini ve kullanıcı deneyimini aynı anda almaktır.


1

Evet, öğrencilere tekerleği yeniden icat etmemelerini söylemek uygun olur. Fakat bir öğrencinin ne anlama geldiğinin açık bir şekilde anlaşılması gerekir: ödev için almanyanın ne olduğunu yazın. Bu, bir atamanın bir bubblesort yazmak olup olmadığı, Wikipedia'dan kopyaladığınız anlamına gelmez, ne de çerçeveniz veya diliniz sağlıyorsa array.sort veya eşdeğerlerini kullanmak anlamına gelmez. Ancak, çeşitli sıralama algoritmalarını ele aldıktan sonra, kendi bubblesort ve quicksort'unuzu yazdıktan sonra, her yeni ödev için yeniden yazmaktan çekinmeyin, yerleşik sıralama veya yazdıklarınızı kullanın, aynı eski şeyi bir daha yapma .

Tekerleği yeniden icat etmek zaman harcamak değil, tıpkı öğrencilere olduğu kadar profesyonellere de uygulanabilir - fark, hedeflerin ne olduğudır. Öğrenciler, öğrenmeleri gerekir, bu yüzden anlayışlarını ilerletmeyen bir şey, zaman kaybıdır - bir baloncuk yazdıktan sonra ne yaptığını bilirsiniz, neden geniş bir sette kullanmak istemediğinizi bilirsiniz, ve tekrar tekrar yazmak, zaman kaybı. 25. yazıda yeni bir şey öğrenmeyeceksin.

Öğrenciler için bu, başkalarının yazdıklarını yazmadığı anlamına gelmez, bu, daha önce ustalaştığınızı yinelemeyin demek değildir - o zaman, ustalaşmadığınız şeye harcayabileceğiniz daha iyi olabilir.


25. yazının, yeni öğrendiğiniz bir programlama dili için bir pratik olması dışında.
leftaroundabout

1

Çok fazla düşünce ve çaba bir tekerlek yaratmaya başladı. Tavsiye, "tekerleği yeniden icat etmemek" tir ancak ileri geri gidebilir ve tekerleği tersine çevirebilir ve bazı işlemlerin neden yapıldığı şekilde yapıldığını anlayabilirsiniz. Bundan sonra, tekerleği kendi yönteminizle kullanmayı deneyebilirsiniz; bu üç mantıksal uçtan herhangi biriyle sonuçlanabilir.

  1. Ya işlerin neden böyle olduklarını anlarsınız.
  2. En iyi duruma getirebilir ve daha iyi hale getirebilirsiniz
  3. Onu mahvedebilir ve o şeyi nasıl yapmayacağını öğrenebilirsin.

Bana göre öğrenci tekerleği yeniden icat etmemeli, tersine mühendislik yapmalı ve sonuçları anlamaya çalışmalı.


1

Tekerleğin nasıl çalıştığını görmek için yeniden icat edip etmediğinizi veya başka bir görevi yerine getirme sürecinde tekerleği yeniden icat edip etmediğinize bağlı olduğunu söyleyebilirim. Elbette her öğrencinin en az bir kere kendi başlarına uygulaması gereken tekerlekler var. Bazı temel veri yapılarının ve algoritmaların, kodunuzun performansını nasıl etkileyeceğini anlamak veya çeşitli durumlarda hangilerinin kullanılacağını seçmek için nasıl çalıştığını bilmek zorundasınız.

Yığınlar, yığınlar, bağlantılı listeler, ağaçlar vb. Bir zamanlar uygulanacak zamana kesinlikle yatırım yapmaya değer; daha sonra kullandıktan sonra çerçeve tarafından sağlananları kullanın. Bir jQuery eklentisi kullanan herkes en az bir tane yazmalı, ancak kullanacağınız her türden birini yazmanıza gerek yoktur. Bir bilgisayardaki kaputun altında neler olup bittiğini anlayabilmeniz için küçük bir işlem zamanlayıcısı veya mini işletim sistemi yazmanın faydalı, ancak gerekli olmadığını söyleyebilirim. Yine de süreçlerin, iş parçacıklarının vs. nasıl çalıştığını anlamanız gerekiyor.

İyi bir çalışma bilgisine sahip olduğunuzda, geri dönüp onlar için bir fikir edinmek için yeni yapılar / algoritmalar uygulamak önemli olabilir (ve eğlenceli). Bu senin işin ya da bu konuda gerçekten iyi olmadığın sürece, kodlarında var olanları kullanmaya devam edeceğim.


1

Cevap, öğrenmek ya da yaratmak isteyip istemediğinize bağlıdır .

Eğer öğrenme amacı ise, "tekerleği yeniden icat etmek", mevcut tekerlekleri kullanmaktan (kütüphane fonksiyonları) daha fazla bilgi ve daha iyi anlamanızı sağlayabilir.

Ancak, eğer karmaşık bir ürün yaratmak amaç ise, "tekerleği yeniden icat etmek" zaman alıcı bir uygulama olabilir ve ürünün oluşturulmasında çok az yardımcı olacaktır.

Bununla birlikte, eğer ruh hedefi yeterli zaman ve dayanıklılıkla sağlanan bir öğrenme ise, "tekerleği yeniden icat etmek", her bir özelliği kişiselleştirmeye yardımcı olduğu için en iyi seçenektir.


1

Bunun iki yönü var.

Öncelikle, öğrenmeye çalışıyorsanız , sıfırdan bazı şeyler yapmak veya gerekenden daha düşük seviyeli arayüzleri kullanmak yararlı olabilir . Bununla birlikte, ne öğrendiğinizi tanımlamanız gerekir: HTTP protokolü hakkında bilgi edinmek istiyorsanız soket programlamasını kendiniz yapmanız gerekmez. Sadece öğrendiğiniz şeyleri yeniden icat edin ve sadece onları gerçekten keşfetmek ve anlamak için yapın.

Ancak - profesyonel bir programcının en önemli becerilerinden biri önceden var olan yazılımı seçmek, öğrenmek ve kullanmaktır. Bu da öğrenmen gereken bir şey. SO ile ilgili soruların büyük bir kısmı dokümantasyonu okuyamayan insanlardan geliyor.

Son olarak, programlama önemli bir teorik temele dayanır. Teoriyi öğrenmek için her iki pratik alıştırmayı da okuma ile birlikte kullanmanız gerekecektir.


Katılıyorum. Bu yüzden, her zaman önceden oluşturulmuş çok sayıda yeni yazılım çerçevesi ve kütüphanesi var :)
gbjbaanb

0

Ben de aynı durumla karşılaştım. Endüstri ve akademisyenlerdeki algıdaki farklılık nedeniyle.

Eğer "tekerleği yeniden icat" etmiyorsanız, okulda hiçbir şey çalışamaz veya bir şeyin nasıl çalıştığını anlayamazsınız.

Oysa bir endüstride amaç, bir ürünü en az zamanda ve çabayla ortaya çıkarmaktır.

Şahsen, tavşan deliğinden aşağıya inmeyi seviyorum ve endüstri felsefesini göz ardı ediyorum, ancak işletmeler böyle yapılır ve şikayet edemezsiniz.


0

Hacker Jargon Lexikon üzerinde çok iyi bir yorumu var tekerleği yeniden icat :

Var olanın bir kısmına veya bir kısmına eşdeğer bir alet tasarlamak veya uygulamak, bunun aptalca veya zaman kaybı olduğu anlamına gelir. Bu genellikle geçerli bir eleştiridir. Öte yandan, otomobiller ahşap makaralar kullanmazlar ve doğru bir şekilde kullanmadan önce bazı tekerleklerin yeniden icat edilmesi gerekir. Üçüncü taraftan, tekerleği yeniden icat eden insanlar, ofset akslı bir yamuğun ahlaki eşdeğeri ile ortaya çıkma eğilimindedir.

Bu yüzden tekerleği yeniden icat etmek iyi olabilir, ancak bunu yapmadan önce veya sonra diğerlerinin çözümlerine baktığınızdan emin olun.


0

Cevap A: Tekerleği yeniden icat edin. Veri yapıları ve algoritmaları anlayışınızı derinleştirir ve iyi şeyler yazmanız olasılığını LOT yapar. Guido van Rossum Python’a başlarken insanların tekerleği yeniden icat etmemesini söylediklerine eminim. Zaten birçok dil vardı. Yahoo! olduğu zaman neden google yazıyorsun? Peki ya klan? Hepsini öğren. Dev ol. Küçük insanların seni sınırlamasına izin verme. Cevap B: Eğer bir öğretmen size ne yapması gerektiğini söylerse, ne isterse verin ya da aptalca görünse bile biraz daha fazla. ALSO'ya şaşırtıcı bir çözüm yapmak için delirmek istiyorsanız ve ona devam etmek için bir link verin. Öncelikle, mutlu olduğu için belirtilen şartları yerine getirin.


-1

Öğrenciyseniz ve bu nedenle projeniz için belirli bir son tarih yoksa, "tekerleği yeniden icat etmek" daha iyidir. Şimdi sadece nasıl programlanacağını ve para kazanmayacağını öğrenmek için programlama yapıyorsanız, neden öğrenmenize yardımcı olmayan kısayollar alıyorsunuz? Neden zor yoldan yapmıyorsun? Ancak, çalışan bir programcı olduğunuzda, çerçeveleri veya kütüphaneleri nasıl kullanacağınızı bilmiyorsanız, insanlar şüpheci olacaktır ...


10
Hangi okula gittiğini bilmiyorum, ama nereye gittim, görevlendirme için son tarihler olağandı.
12'de CVn

-2

Ödev / soru / sınavın sizden ne istediğini yapın.

Yıllar önce bir C programlama dersi için TA oldum. Bir sınav sorusu 'Bir dosyayı kopyalamak için bir program yaz' idi. Birkaç öğrenci aynı tipte bir soru sordu - bir süreci ortaya koyabilir ve OS cp komutunu çalıştırabilir mi?

Onlardan istediğimiz şey 'Programınız dosyayı kopyalayacak mı?'

Sınav sorusu, bir dosyayı kopyalamak için kod yazmalarını istedi. Yanıt, dosyayı kopyalayan C koduna sahip değilse (örneğin, açık giriş, açık çıkış, bayt okuma / yazma döngüsü, girişi kapatma, çıktıyı kapatma) dosyayı kopyalamaz.

Öğretmen bir çerçeve veya kütüphane kullandığını söylerse (örneğin bir grafik sınıfı size bir 3B kütüphane kullanmanızı söyleyebilir), kullanmanız için ne söylediklerini kullanın. Kendinizinkini icat etmeyin veya farklı bir tane kullanmayın. Farklı olan her şey, öğretmenin çalışmanızı derecelendirmesini zorlaştıracaktır.

Bir iş görüşmesinde, popüler çerçevelerin bilgisi soruları cevaplamanıza yardımcı olacaktır. Öğrenmek için kendi projelerinizi oluşturun. Çalışmalarında iyi şanslar.


Evet, ancak bunlar ortaya çıkarsa cp, programları aslında dosyayı kopyalardı.
Marcin
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.