Okulda programlama vs endüstride programlama arasındaki farklar? [kapalı]


50

Mezun olduklarında ve ilk işlerini aldıklarında birçok öğrenci, kolejde iyi programcılar olmuş olsalar bile, nasıl program yazacaklarını bilmediklerini düşünmektedirler.

Akademik bir ortamda programlama ile 'gerçek dünyada' programlama arasındaki farklar nelerdir?



4
Akademide derinlemesine öğrendiğinizi söylerim: kavramları öğrenir, kendinize sorular sorar, soyut düşünmeyi geliştirirsiniz. Endüstride geniş kapsamlı öğrenirsiniz: çok fazla soru sormadan birçok farklı teknolojiyi kullanmayı öğrenirsiniz, işleri halletmek zorundasınız. Sektördeki deneyim sayesinde, büyük ve karmaşık projeleri yönetmeyi de öğreniyorsunuz: bu zaman zaman üniversitede öğrenemeyeceğiniz çok pratik bir konudur.
Giorgio

9
Bu soru doktora düzeyinde veya mezun olduktan sonra akademik mı yoksa sadece genel bir “sınıf vs gerçek dünya” ortamından mı bahsediyor?
Bob

@Bob. Bu genel akademi hakkında daha fazla oldu. Endüstride sınıf / araştırma / yönlendirilmiş okumalar / ödevler vs.
rdasxy

Tamam. Bu çok açık değildi, çünkü biyologların hücre simülasyonlarını bulmalarına yardımcı olmak isteyen insanlar tarafından yapılan "akademik programlama" diye bir şey var.
Bob

Yanıtlar:


72

Geleneksel bir lisans bilgisayar bilimi programında sadece programlama öğrenirsiniz . Fakat gerçek dünya sadece programcı olan insanları istemiyor . Gerçek dünya gerçek yazılım mühendisleri istiyor. Birçok iş tanımının bu konuyu açıkladığını sanmıyorum, sadece konuyu karıştırır. Gerçek dünyada yapabilecekleriniz:

  • Doğrudan size verilmediğinde gereksinimleri toplayın ve analiz edin
  • Sınırsız olanaklarla mimariyi tasarlayın ve analiz edin
  • Bir sistemin kalitesini değerlendirmek ve iyileştirmek için test planları oluşturun ve bunlara göre hareket edin
  • Farklı geçmişlere ve tecrübe seviyelerine sahip bir ekipte işbirliği içinde çalışın
  • Ne inşa edeceğinizi tam olarak bilmiyorsanız bile çalışmayı tahmin edin ve planlayın
  • Zorunlu olarak uyum sağlamayan farklı ihtiyaçları olan paydaşlarla etkili iletişim kurun
  • Paydaşları hayal kırıklığına uğratmadan program, bütçe, kalite ve özellikleri müzakere

Evet, ayrıca bir de kod yazabiliyor olmalısınız, ancak bu ortalama olarak bir yazılım mühendisinin zamanının sadece% 40 - 60'ını alıyor.

Bu nedenle, yeni basılmış bilgisayar bilimi öğrencileri, nasıl programlanacağını bilmezler (aslında, çok iyi programcılar). Birçoğu başka bir şey yapmayı bilmediği için.


18
Oh yeah, and you also have to be able to write code too, but that's, on average, only 40 - 60% of a software engineer's time.- Ya da gerçekten kötü ve gerçekten büyük şirket mağazalarında% 0-20.
Ritch Melton 13:11

1
Çok iyi bir cevap için +1 ve Ritch için +1 (daha fazla olmalıdır). Mühendis olarak proje yaşam döngüsünün% 20'sinden daha fazlasını kodlama için harcıyorsa, bir şey çok, çok yanlış olur. % 50 tasarım,% 30 test, geri kalanlar için% 20 .... kodlama dahil her şey doğru görünüyor. Uygun tasarımla kodlama önemsiz olmalıdır. Onsuz insanlar "kodlama" dediğimiz onlar </ rant> ilerledikçe birlikte çeşit bir tasarım saldırmayı deneyerek aslında sonsuz yeniden yazar olduğunu
Mawg

36

Üniversitede...

Öğretmenin sana veriyor:

  • Çözümü kısa ve iyi tanımlanmış bir zaman diliminde sağlanabilecek iyi tanımlanmış, izole edilmiş bir problem (ve daha sonra atılacaktır)
  • Görevlendirmeden önce tanıtıldığınız iyi tanımlanmış bir araç seti
  • Çözümünüzün yeterince iyi olup olmadığını kolayca belirleyebileceğiniz çözümünüzün kalitesi için iyi tanımlanmış bir önlem

Gerçek dünyada"...

  • Sorun bulanık, karmaşık ve bağlamda gömülüdür. Zamanla değişen bir çelişkili gereksinimler kümesidir ve çözümünüz bu değişikliklere kabul edilebilir bir zamanda tepki vermeniz için esnek ve sağlam olmalıdır.
  • Aletler sizin tarafınızdan toplanmalıdır. Belki de ekibinizin 10 yıllık kod temeli üzerinde zaten kullanılabilecek bir şey var, belki bazı açık kaynaklı projeler ya da ticari bir kütüphane ya da belki de kendi başınıza yazmak zorunda kalacaksınız.
  • (Aslında neredeyse hiç çünkü yazılımın en son yineleme bir gelişme olup olmadığını belirlemek için yapılan bir yazılım projesi ile) kullanarak, regresyon test ve kullanılabilirlik testi, olan ikinci yapmanız gereken genellikle demektir bulanık, karmaşık, çelişkili olduğunu bağlamda gömülü gereksinimler bir kez daha değişir.

Sonuç

Okulda programlama ve gerçek dünyada programlama, aslında çok az örtüşmenin olduğu noktadan çok farklı. CS sizi atletizm eğitimi gibi "gerçek dünya" yazılım geliştirmeye hazırlar, savaş için bir ordu hazırlar.


11
Bu temelde cevaplayacağım şeydi. Okulda sorunu biliyorsunuz ve çözümü biliyorsunuz. “Gerçek dünyada” çözümü nadiren biliyorsunuz ve çoğu zaman asıl sorunu bile bilmiyorsunuz.
Bob

20

Sorunun farklı bir yönüyle karşılaşıyorlar:

Academia, temel olarak "programlama bilimi" üzerine odaklanır, bu nedenle, belirli paradigmaları daha anlamlı hale getirmek için özel diller geliştirmek için etkili özel algoritmalar ya da diller geliştirmeye çalışır. Endüstri ağırlıklı olarak satılması gereken şeyleri üretmeye odaklanmıştır. Yalnızca diller ve algoritmalar değil aynı zamanda kütüphaneler, çerçeveler vb. Olan “araçlara” dayanması gerekir.

"Odak" daki bu fark, C'deki bir akademik ustayı pratikte bir windows uygulaması yazamamaya zorlayan şeydir (çünkü biz Windows API'si C99 standardında değiliz!), Bu nedenle "programlayamıyor" gibi hissediyorum. Ancak, aslında, ne kaçırdığını öğrenmek için tüm yetenekleri vardır. Uygun akademik çalışmalar olmadan (mutlaka Academia'da yapılmaması gereken) bir şey bulmak oldukça zordur.


10

İyi cevaplar. Şunu ekleyeyim, akademik programlama neredeyse oyuncak benzeri bir eğilimde. Bu öğretmek için iyidir. Bir öğretmen olarak fikirleri en verimli şekilde aktarmaya çalışıyorsunuz. Dezavantajı ise gerçekçi programlamanın niteliksel olarak farklı olması, boşluğu kapatması zor.

Bir fark alanı performans analizinde. Bunu belirtmeye çalışan birçok mesaj yazdım. Performans analizi sadece yüzeysel olarak algoritmalar ve ölçme ile ilgilidir. Gerçekten etkili bir şekilde yapmak için, hata ayıklama işlemi olarak yaklaşmanız gerekir.

Bir başka fark alanı da sürdürülebilirliktir. Bu, stilden etki alanına özgü dil tasarımına kadar her şeyi kapsar. Asgariye indirmeye çalıştığınız şeyi gerçekten bilmiyorsanız, etkili bir şekilde yapamazsınız.

Bunlar öğretilmez ve üretkenlikte çok büyük bir fark yaratırlar.


1
Bu şeylerin nasıl öğretilebileceğini merak ediyorum, çünkü sahada çok fazla zamana ve deneyime ihtiyaç duyuyorlar. 10 öğrenciden oluşan ekibin birkaç ay içinde küçük bir yazılım ürünü geliştirmesi gereken bir yazılım mühendisliği kursuna yardım ediyordum (iki dönem, ekim-nisan arası). Bu, programlama, planlama, gereksinimlere ve görevlere öncelik verme, iletişim vb. Hakkında bir fikir edinmelerini sağladı. Ancak, elbette, bu gerçek dünyada karşılaşacakları ile karşılaştırıldığında çok az. Ancak 4 yıl boyunca bu konuda çalışamazsınız.
Giorgio

@Giorgio: Performans için, bir dizi yinelemeyle nasıl optimize edileceğini ve büyük hızlanma faktörleri elde edileceğini gösterdiğim önceden var olan bir kod tabanına sahibim (çok büyük değil). Öğretmesi kolay bir beceri. DSL'ler ve bakım için de öğretimde kullanılabilecek bazı favori örneklere sahibim. Bunların her ikisi de kolayca boşaltılabilecekleri bir sömestr kursuna sığabilir. Bu yüzden yapılabileceğini düşünüyorum.
Mike Dunlavey,

1
Tamam, anlıyorum: büyük, gerçek dünyadan örnekler kullan ve öğrencilerin üzerinde çalışmasına izin ver. Çok iyi fikir.
Giorgio

@ Giorgio: 30 yıl önce profesördüm, bu yüzden nasıl yapılacağını hala hatırlıyorum. Ayrıca, bu fikirleri kötü satılan bir kitaba koydum , bu da sadece hepsinin nasıl bir araya geldiğini düşünmek ve açıklamak için zamanım olduğu anlamına geliyor.
Mike Dunlavey

Çok fazla tecrübem yok, doktora süresince birkaç yıl öğretmenlik asistanı oldum. Şimdi bir şirkette çalışıyorum. Üniversitede programlama ile ilgili olarak, IMHO gerçeği ortada bir yerdedir: Üniversitede çok faydalı bir öğretim vardır, ancak bir yazılım mühendisinin kariyeri boyunca karşılaşacağı tüm önemli konuları ele almak zordur . Bazı çabalarla, belirttiğiniz gibi, gerçek dünyadaki bazı şeyleri gerçekten öğretebilirsiniz. Elbette bütün üniversite profesörleri yapmak istemiyor.
Giorgio

8

Akademik dünyada, çoğu insan bilgisayar bilimleri veya ilgili dersleri okur. Dijkstra bir keresinde “Bilgisayar bilimi astronomiden ziyade bilgisayarlar hakkında değil, teleskoplardan ibaret” dedi. Bilgisayar bilimi okuyan bir kişi, her şeyden önce bir programcı değil bilim adamı olmayı öğrenir. Bir programcı olarak amatör kalacaktır ve profesyonel bir programcıya geçiş buna göre zordur.


8

Güncelleme: Sanki biri aklımı okuyormuş gibi: Beklentilere karşı gerçekleri bekleyin ...

Benim almam, iki faktör daha var:

Sorun büyüklüğü : Akademi'de çoğunlukla “sıfırdan” bir yazılım geliştirmek zorunda kaldım, bu çoğu zaman karşılaştığım en büyük programın yazdığım en büyük program olduğu anlamına geliyordu. Bu, birlikte çalışan farklı yazılım parçalarından ortaya çıkan karmaşıklıkla başa çıkabilmek ve başa çıkmak için gerekli olan yeteneği vurgulamaktadır. Karmaşıklığı anlamak için gereken çabanın farkında olsaydım, sektörde olmamayı seçebilirdim.

Okuma VS Yazma : Sorun büyüklüğünün bir başka yan etkisi de, "gerçek dünyada", başkaları tarafından yazılmış, bakım amaçlı (herhangi bir yerde akademide bakım yapmadım), uzatma veya basitçe yapılan çalışmalara maruz kalmamızdır. işbölümü. Dolayısıyla kod okumak, yazmaktan çok daha önemli hale gelir.

Gelişmiş programlama eğitimi için bir öneri : Academia, mesleki eğitime gerilemeden bizi gerçek dünyadaki durumlara daha fazla maruz bırakmalıdır. Doktorlar bir noktada bir "ceset" yapıp yapmadıklarını görmek için bir cesetle yüzleşmek zorundalar (bu deneyimin ardından kursu bırakan insanların hikayelerini duydum). Yirmili yaşlarımın başında, bir günde anlamak zorunda olduğum ve üçte bir hatayı değiştirmek zorunda olduğum farklı programlama stillerinden oluşan 20K'lık bir LOC projesi görseydim, muhtemelen olmasa da, diğer kariyer seçeneklerini düşünebilirdim.


Metaforunuzu ve tıptaki kendi tecrübelerimi genişletmek için: doktorlar tıp fakültesindeki genel kavramları öğreniyor, ancak hepimiz somun ve cıvataları öğreniyoruz ve stajyerler ve asistanlar olarak iş dünyasında gerçek dünyadaki kısa yolları öğreniyoruz.
Hovercraft Eels Dolu

2
Bu! 1 milyonluk LOC kod tabanına ilk daldığınızda, bunun üniversitede yaptığınız her şey gibi bir şey olmayacağının farkındasınız. Bu kod tabanının bütünlüğünü hiçbir zaman asla kavrayamayacağınız çok açıktır ve ne yaparsanız yapın, kendi kodunuzu tasarlamak ve yazmak yerine, başkalarının kodunu okumaktan ve anlamaktan gelmelidir.
Roman Starkov

4

Akademik veya endüstriyel programlama arasındaki en büyük fark sağlamlık ile ilgili. Çoğu kimse, kariyerlerinde "benim için işe yarar" paradoksunu tecrübe etti ve bu durumun bir uzantısı. Akademi'de odak noktası algoritmalar ve işlevler üzerinedir ve günlük koşullar altında yazılımın kullanılabilirliği ve kararlılığına çok az önem verilir.

Örneğin, ofisimde yazılımı alacak bir mühendisimiz var ve köşe koşullarından kaynaklanan çökmelere sebep olan bir usta. Bir şey çökene kadar olabildiğince hızlı bir düğmeye tıklayacak ... eğer bir işlem çok uzun sürerse, ekran etrafında rastgele tıklamaya başlayacak (hayal kırıklığı dışında mı? IDK ....)

Programlama felsefelerimizi “Steve kanıtı” gibi şeyler yapmak için değiştirmemiz genel olarak uygulamamızın dengesini geliştirmiştir.


3

Okuldaki programlama eğitimi ile ilgili kişisel deneyimim sıfır - İngilizcüydüm. Bana Keats ve Byron hakkında soru sor! Böylece bu açıdan konuşabilirim.

Tecrübelerime göre, okullaşmalarından edindikleri ALL'nin programlamaya ilgi duyması. Becerileri sıfırdan ihmal edilebilir seviyeye kadar değişmekteydi. Kendilerini yönetme yetenekleri, en yetenekli kişilerinde bile yoktu. Düşünceleri sadece küçük ölçekli değildi; Onlar aslında minyatür düşündüm. Birkaç düzineden fazla kod satırından oluşan bir sistem onları tamamen parçalara ayırdı.

Ama ne biliyorsun? Bir ilgi edindiler ve bu çok önemli. Bir ilgi bol . Ben yapabilirsiniz çalışmak ilgilenen biri ile. Ben yapabilirsiniz bunları açmak bir geliştirici, bunlar biri olma ilgilenen bana gel sağladı. Cehennem, hepsi bu ben ile başladı. Bu ve post-modern Amerikan romancılar için bir takdir.


2

Akademi’de

KUSURLARI

  • Genelde puan kazanmak için son tarihlerimiz var.
  • Projelerin çoğu gerçek dünya uygulamalarında asla kullanılmadığından, böcekler gerçekten sorun çıkarmaz.

artılar

  • Araştırma için yeterli zaman alıyoruz.
  • İlk hedeflerden kaçmak fazla sorun yaratmaz.

Endüstride,

  • Gerçekten şirketler tarafından kullanılacak projeler üzerinde çalışıyoruz.
  • Sürekli değişen müşteri gereksinimlerinin baskısı altında çalışıyoruz.
  • Son teslim tarihleri nadiren esnektir, çünkü hem Yazılım firması hem de müşteriler için büyük finansal kayıplara neden olabilir.

Şuna bir bak:

http://www.dodgycoder.net/2011/10/how-to-become-better-programmer.html


"Aslında kullanılmış" kısmı konusunda hemfikir olmam gerekecek. 90'lı yılların ortalarında, 5, büyük, küçük ve orta büyüklükteki 3 şirkette gittim ve yazdığım hiçbir şey üretime girmedi. Bunun bir tecrübenin nadir olduğunu düşünmüyorum.
Bruce Ediger

2

Akademik programlama kendiniz kodlamanız hakkında daha fazla. Nasıl çalıştığını öğrenmek için bu önemlidir. Kod kalitesi ve revizyon kontrolü çok fazla sayılmaz. Dikkate değer istisnalar dışında, kodun atamanın ötesinde bir ömrü yoktur. Projelerin kapsamı oldukça kısıtlı olma ve sünme olasılığı düşük olma eğilimindedir.

Gerçek dünyada mümkün olduğunca az orijinal kodunuz olmalıdır. Ekipler tarafından birçok kod geliştirildi. Kütüphane yordamlarını kullanmak kodlamaktan daha iyidir. Kod kalitesi ve revizyon kontrolü daha önemli hale geldi. Kod, başlangıçta beklenenin ötesinde bir ömre sahip olma eğilimindedir. Proje kapsamı genellikle oldukça geniştir ve yönetilmezse önemli ölçüde sürünme eğilimindedir.


1

Aslında,

Akademik düzeyde programlama ile gerçek dünya programcılığını tamamen ayırt etmek mümkün değildir.

En büyük farkın şu olabileceğini söyleyebilirim: gerçek dünya programlamasında - programlamadan daha fazlasını bilmek zorundasınız ve hızlı bir şekilde uyum sağlayabilmelisiniz.

Hangi sektörde çalıştığınıza bağlı olarak, yasalarına uygun olmanız gerekir.

Michael, buzdağının ucuna yalnızca kolay şeyler olarak sınıflandırdığım programlama ile ilgili görevleri belirterek dokundum.

Genel olarak, bir sektördeki konu başına en az birkaç zorluk ile karşılaşırsınız:

  • Geçerli yasalar (ör. Tıp için müşteri gizliliği)
  • Konu bilgisi (örneğin faturalandırma-vergi sistemi, envanter, kaynak yönetimi, tıbbi planlar, endüstri standartları)
  • Eksik veya olmayan veya endüstri standartlarından / geçerli yasalardan farklı müşteri gereksinimleri

Bir araştırma doktora düzeyinde bir programlama projesini gerçek dünya ile karşılaştırırsanız, zorluk, zorluk seviyesi, giriş seviyesi bilgisi ve benzerleriyle benzerlik gösterir.

Tek gerçek fark o zaman gerçek dünya projesi

  • müşterisi var
  • bütçeleri var (zaman, para, insan kaynakları)

Bir başkası kuralları koyduğunda farklı top oyunudur :)


0

Akademi'de BT'de öğrenilen konulara bakarsanız, matematik, fen, seçmeli dersler vb. Zamanın yarısını bulacaksınız. Derleyici tasarımı, algoritma teorisi, bilgisayar mimarisi, Optimizasyon, İşletim Sistemleri, Dijital Elektronik ve C programlama ve Web Programlama gibi endüstri ile ilgili diğer birkaç ders.

Yukarıda belirtilen konuların çoğu bilmek güzeldir, ancak günlük BT’de gerekenler konusunda doğrudan güçlü bir arka plan sağlamayacaktır.

Microsoft Web Programlama gereksinimlerini (yani, bir kuruluşta verimli bir ekip üyesi olması için birinin gerektirdiği alanlar) kabul edin:

1- C # .NET veya VB.NET

2- ASP.NET

3- HTML ve CSS

4- SQL Server (veya başka bir veritabanı)

5- OO uygulama programlaması ve tasarımı

6- Java Komut Dosyası

7- MVC çerçevesi

8- Kaynak kontrol araçlarına biraz maruz kalma

9- Bazı otomatik test araçlarına maruz kalma

10-Bug izleme aracı

11-E-Ticaret Kavramları (isteğe bağlı)

12-orm

13-Bazı iş analizi becerileri

14-Bazı iletişim becerileri

15-Muhtemelen, bazı bulut bilişim temelleri

Gördüğünüz gibi yukarıdaki gereksinimlerin çoğu nadiren odaklanır (kolej / üniversite sırasında en fazla 1 ders alabilirsiniz).

Kişi bu kadar çok teknoloji yığını olduğu için kurumları tam olarak suçlayamaz ve değişmeye devam eder.

Yukarıdakilerin çoğu Microsoft’tan, Java’da uygulama geliştirmek isteyen birisine yardımcı olmaz.

Asıl sorun, bugünün işletmesi tarafından ihtiyaç duyulan teknoloji yığınlarından birinin hiç dolu olmadığıdır.

Yukarıdakiler, mezunların iş ortamında programlama gibi iş işlerine uygunluğu sorununu kapsar. Laboratuvarları vb. Araştırmak için gerekenler bu cevap kapsamında değildir. Ayrıca, Diğer Alanlar, Oyun Geliştirme, Gömülü Geliştirme, Gerçek Zamanlı Sistem Geliştirme, vb. Gibi, yukarıdakilerden daha fazla beceri gerektirir.


12
Listenizde 15 öğeniz var. Sanırım 30 tane daha ekleyebilirim. Akademi'nin sana bütün bunları öğretmesi değil, bütün bunlara nasıl gideceğini bulmayı öğretmek görevi değil. Ve ayrıca, mevcut tüm teknolojiler kullanılmayacaksa hala kullanılabilecek bilgiye sahip olmak (bundan 10 yıl sonra?) Bütün teorinin faydası var , zaman kaybı değil !
Giorgio

2
@Giorgio, yorumunuz için teşekkürler, puanınız geçerlidir. Açıkça "Birisi kurumları tamamen suçlayamaz" demiştim. Asıl soru akademik eğitimin doğası ile ilgili olmasa da benim kişisel görüşüm, akademisyenlerin öğrettiği ile işin beklediği arasında çok büyük bir boşluk olduğu yönünde. Boşluğu kapatmak için kullanılan fatura, iş başında yapılan pahalı eğitimlerde işletme tarafından ödenirdi. Büyük rekabet ve tüm ekonomilerin zor zamanlarında, bu boşluğu kapatmanın bedelini kim ödeyecek merak ediyorum?
NoChance,

@Emmad Kareem: Evet büyük bir boşluk var, katılıyorum. Çoğu zaman üniversite profesörlerinin "gerçek dünyada" neler olduğuna dair bir ipucu yoktur, çünkü soyut araştırmaya odaklanırlar. Yine de, haftalar içinde yeni bir dil öğrenmeme izin veren bu soyut düşünme becerileridir (şu anda Scala'yı öğrenmek). Ayrıca sizin için belki de para meselesinin daha güçlü hissedildiğini anlıyorum. İtalya'da büyüdüm ve yılda yaklaşık 200 ABD doları olan üniversite ücretlerini okuduğumda (ayrıca kitapları kendimiz almak zorunda kaldık). Sanırım bu, ABD'de ödediğinize kıyasla çok az.
Giorgio

3
Aynı şekilde, eğer mühendisliği ve bir araba yapmayı öğreniyor olsaydınız, hiç kimse size belirli bir aracı nasıl süreceğinizi öğretemezdi: bu sadece kendiniz bilmenizi veya öğrenmenizi bekledikleri bir şeydir.
Giorgio

1
Boşa? Sahip olduğunuzu iddia ettiğiniz derecelere sahipseniz, daha iyisini bilmelisiniz. Orada oturmamış olsanız bile, gelişmiş matematik programlaması, ders çalışmasında öğrenilen dersler doğrudan temiz ve zarif bir çözümü "görmek" anlamına gelir.
Rig

0

Ölçek ve Odaklama
Deneyimlerime göre, akademik bir ortamda, genellikle üzerinde çalışmakta olduğunuz uygulamanın ölçeği çok daha küçüktür, bir veya iki hafta boyunca veya bir veya iki progammers tarafından sömürüldüğü sürece, bir günde veya haftada tamamlanabilecek bir şeydir. - yazdığınız her şey, terimden sonra atılan atılan kod olacaktır. Gerçek dünyada, kendinizi daha büyük bir ekibin yıllarca sürmese de tam olarak geliştirmek için harcadığı bir uygulama üzerinde çalışırken bulabilirsiniz. Daha fazla zaman harcıyorsunuz ve başkalarının kodlarında hata ayıklıyorsunuz ve bir kod üssünün altyapısını anlamaya çalışıyorsunuz, bazı parçaları yeni veya değiştirilmiş bir gereksinim eklemek için mevcut parçaları kırmamaya çalışıyorsunuz.

Gereksinimler, Entegrasyon, Müşteriler
Ayrıca, akademik projelerde daha az temsil edilme eğiliminde olan gereksinim analizi, entegrasyon testi vb. Gibi kod geliştirme yönleri vardır. Adil derecelendirme uğruna, genellikle gereksinimler eğitmen tarafından sizin için zaten belirlenmiştir ve toplantılarda işbirliği içinde kararlaştırılmamıştır. İstedikleri gibi olmayan belirli bir yaklaşımla “müşteriyi satma” eğiliminde değilsiniz, ancak arzularının aksine aslında teknik açıdan uygulanabilir. Akademik bir ortamda müşteriniz (sınıf öğrencisi veya eğitmen) ne istediklerine dair oldukça somut bir fikre sahip olma eğilimindedir, gerçek dünyada, ne istediklerini gerçekten bilmeyen ve neyin ne olduğunu anlamak için beynini seçmek zorunda olan müşterilerle karşılaşabilirsiniz. inşa edilmeli.


0

Bakım ve Bakım

Akademi'de (en azından lisans düzeyinde), yazılım, genellikle bazı ev ödevlerini veya dönem projelerini tamamlamak için kısa vadeli hedefler göz önünde bulundurularak oluşturulur. Atama tamamlandığında, kod atılır ve bir daha asla görülmez.

Profesyonel bir ortamda, çoğu yazılım uzun süreli kullanım düşünülerek yazılmıştır; Yazılımın en az birkaç yıl kullanılması amaçlanmıştır ve zaman içinde kolayca bakımı ve güncellenmesi için oluşturulmaları gerekir.

Bununla ilgili bakım işidir. Profesyonel programlama çalışmalarının çoğu, mevcut yazılımın güncellenmesini veya sürdürülmesini içerir. Sözde "yeşil alan" projeleri normdan ziyade istisnadır.

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.