Przez dziesięciolecia akceptowany stopień zostania programistą to „Compter Science”.
Mieliśmy już kilka pytań, czy ten stopień naprawdę przygotowuje studentów do opracowania oprogramowania.
Niektóre szkoły w ciągu ostatnich 8 lat zaczęły oferować wiele różnych specjalizacji programistycznych. Korzystając z programu nauczania z mojej szkoły:
- Informatyka , która rozpoczyna się od kursów wstępnych w pierwszym roku, a następnie koncentruje się na informatyce teoretycznej, algorytmach i trochę rzeczy związanych z systemem operacyjnym. Większość zajęć obejmuje kilka mniejszych projektów i zadań domowych, wykonywanych solo lub w parach.
- Inżynieria oprogramowania , która rozpoczyna się od tych samych kursów programowania wstępnego, wykonuje kilka klas teorii, a następnie przechodzi do praktyk tworzenia oprogramowania (testowanie, metodologie procesów, metryki oprogramowania, zbieranie wymagań) i projektowania oprogramowania (projektowanie systemu rozproszonego, projektowanie systemu informacyjnego , projektowanie w czasie rzeczywistym / projektowanie wbudowane, projektowanie podsystemów itp.)
Różne szkoły robią to inaczej, więc powyższe to tylko przykład z prawdziwego świata, który znam. Pytam: czy potrzebne są odrębne kierunki w programowaniu?
computer-science
engineering
Fishtoaster
źródło
źródło
Odpowiedzi:
Tak powinny być.
Związek między informatyką a inżynierią oprogramowania jest taki sam, jak związek między fizyką a inżynierią mechaniczną. Jedna zapewnia podstawy teoretyczne, a druga bierze te teorie, wraz z dobrymi zasadami inżynierii, i stosuje je do projektowania i wdrażania oprogramowania.
Potrzebujesz obu, aby stworzyć nowe i lepsze oprogramowanie. Dobra edukacja informatyczna szkoli ludzi do tworzenia nowych i lepszych algorytmów, struktur danych, języków programowania i paradygmatów, kompilatorów oraz wielu innych rzeczy, które można wykorzystać do ulepszenia systemów oprogramowania. Z drugiej strony, dobre wykształcenie inżynierskie, szkoli cię do korzystania z tych narzędzi i wiedzy uzyskanej dzięki naukowemu studium obliczeń, wraz ze znajomością cyklu życia oprogramowania i modeli procesów, aby faktycznie zbudować system, którego klient chce i potrzebuje .
źródło
Powszechnie wiadomo, że typowy program CS nie przygotowuje takiego programu dla branży, nie tak bardzo, jak chce, żebyś był przygotowany. Więc tak, istnieje potrzeba specjalizacji z inżynierii oprogramowania i te dwie powinny być odrębne, choć zdecydowanie na tym samym wydziale.
źródło
Powinny być różnymi dyscyplinami, ale nie na poziomie licencjackim. Po prostu nie rozumiem, jak mogą zminimalizować wszystko, co jest potrzebne do inżynierii oprogramowania na poziomie licencjackim. Tak samo jak nie widzimy stopni licencjackich w inżynierii systemów (gdzie ludzie dostają MS po uzyskaniu dyplomu z EE, CE, Mechanical Eng lub CS), podobnie jest w przypadku inżynierii oprogramowania.
Jest to podejście multidyscyplinarne oparte w dużej mierze na informatyce i / lub MIS. Ludzie naprawdę stają się inżynierami oprogramowania w praktyce (i nie tylko w tytule) po odbyciu zaawansowanego kursu i / lub doświadczenia zawodowego w terenie, pod warunkiem, że później zostanie to zrobione w środowiskach sprzyjających inżynierii oprogramowania.
Większość ludzi ma tytuły inżynierii oprogramowania, ale tak naprawdę nie zrobiły nic poza kodowaniem. Nie jest to dla nich wada, ale spostrzeżenie - nie byli wystarczająco narażeni na rodzaj pracy, który pomógłby im w zdobyciu doświadczenia zawodowego poza kodowaniem. Co gorsza, większość miejsc pracy i organizacji działa okropnie i nie prowadzi właściwej inżynierii oprogramowania.
Co więcej, bez jakiejś pracy lub dojrzałości scholastycznej materiały inżynierii oprogramowania po prostu przelecą nad głowami większości studentów studiów licencjackich.
źródło