Wszyscy to słyszeliśmy; za każdym razem, gdy pojawia się dyskusja na temat słabych umiejętności rozwoju CS, ktoś w końcu mówi:
Informatyka to nie inżynieria oprogramowania.
Problem, który widzę, polega na tym, że programowanie i tworzenie oprogramowania są prowadzone na kursach CS. Są po prostu źle nauczani. Jeśli jest nauczany, to dlaczego nie uczyć go poprawnie za pierwszym razem? *
Chciałbym więc zobaczyć, jakie są opinie na 2 pytania:
Czy argument CS! = SE jest rozwinięciem lub usprawiedliwieniem niewłaściwego uczenia umiejętności programistycznych.
Niezależnie od twojej odpowiedzi na pytanie 1; gdybyś miał wszechmocną pozycję do podjęcia takiej decyzji: czy nałożyłbyś nacisk na prawidłowe nauczanie programowania na kursach CS?
*. Podejrzewam, w oparciu o niepotwierdzone dowody uzyskane w trakcie mojej edukacji, że większość naukowców w tej dziedzinie nie musiała pisać kodu, aby go utrzymywać, i nie utrzymywała kodu, w wyniku czego nie ma wiedzy / umiejętności uczyć tego skutecznie.
źródło
Odpowiedzi:
Nie wydaje mi się, żeby to był wyrzut, ale raczej twierdzenie, że informatyka nie jest inżynierią oprogramowania, to nie jest programowanie - jest to nauka sformalizowanych obliczeń. Zasadniczo jest to matematyka (w rzeczywistości wiele programów CS zaczęło jako programy matematyki stosowanej).
Myślę, że problem dotyczy bardziej przemysłu niż środowiska akademickiego. Przemysł widzi tytuł CS wymieniony w życiorysie i myśli: „Świetnie, ten facet jest dobry z komputerami” i wynajmuje go do robienia czegokolwiek związanego z komputerem: IT, programowanie, tworzenie oprogramowania, cokolwiek. Te rzeczy niekoniecznie leżą w sferze wiedzy absolwenta CS. Z kolei wiele osób, które lubią budować komputery lub grać w gry wideo, przystępuje do programu CS, oczekując tego typu rzeczy, i otrzymuje niemiłą niespodziankę; tzn. wielu studentów studiujących CS tak naprawdę nie należy do nich i lepiej byłoby w bardziej ukierunkowanym programie studiów.
Po drugie, jest bardzo ograniczony czas na nauczanie CS - bardzo szerokiego przedmiotu - w typowym programie studiów licencjackich. Mój program licencjacki miał 8 kursów CS (dla licencjata) lub 12 kursów CS (dla licencjata) oraz wszystkie wymagane kursy matematyki. To nie jest dużo czasu, aby nauczyć CS i matematyki i programowania i inżynierii oprogramowania, więc w pewnym momencie trzeba zdecydować, co jest ważne, a co student może wybrać się na własną rękę.
Ta ostatnia kwestia jest kluczowa: myślę, że dobry uczeń - w dowolnej dziedzinie - sam zbada pomysły. Mam stopień CS, ale myślę, że wyszedł z college'u jako godnej deweloper, bo studiował i napisał oprogramowanie na własną rękę . Studia to nie tylko zajęcia; chodzi również o zapewnienie studentom czasu na półautomatyczne rozwijanie umiejętności, przy jednoczesnym zapewnieniu cennych wskazówek.
I twierdzą, że teoria nauczania - CS, matematyki, etc. - jest tak samo ważne, jeśli nie bardziej istotne, niż nauczanie konkretnych umiejętności zawodowych związanych. Jeśli nauczysz ucznia, dlaczego kryje się za metodami i technikami, a nie tylko co , skończysz z kimś, kto jest znacznie bardziej elastyczny, jeśli zastosuje swoją wiedzę. Na przykład poszedłem do źle urażonej „szkoły Java” i dlatego uczyłem się w Javie, ale miałem także kursy teorii programowania, które wyjaśniały, dlaczego kryje się za nimi wiele języków; dzięki temu nauczyłem się pisać znacznie lepsze oprogramowanie niż gdybym nie miał takiego doświadczenia. Jasne, nie piszę oprogramowania w Haskell w mojej codziennej pracy, ale znajomość teorii języków programowania pozwoliła mi uzyskać wgląd w to, żema być stosowane do mojej pracy jako programista.
Myślę też, że przemysł zbyt wiele oczekuje od studentów. Przemysł chce obniżyć własne koszty, dlatego zamiast szkolić nowych rekrutów do pracy, oczekują, że uczelnie staną się szkołami handlowymi / technicznymi; w efekcie chcą, aby uczelnie przeprowadziły dla nich szkolenie. Nie można oczekiwać, że absolwenci szkół wyższych będą wiedzieć wszystko po studiach. Bycie dobrym programistą polega zarówno na doświadczeniu, jak i na wiedzy (szczególnie w stosunkowo młodej dziedzinie, takiej jak tworzenie oprogramowania).
źródło
Częściowym problemem jest to, że 4 lata to za mało czasu, aby zostać dopracowanym inżynierem oprogramowania. Biorąc pod uwagę, że chcemy, aby student miał kontakt z więcej niż tylko matematyką i kursami CS oraz fakt, że jest wiele do nauczenia się czystej mechaniki (algorytmy, struktury danych, składnia języka), nie możemy oczekiwać, że zielony kurs CS będzie inżynier oprogramowania.
Zgadzam się, że CS! = SE i nie jestem pewien, czy możesz po prostu iść do szkoły i zostać SE (nawet z magistrem)
źródło
CS w rzeczywistości nie jest SE. I ludzie zdają się łączyć te dwie rzeczy przez cały czas, nawet przyznając się do tego. Informatyka powinna zostać przemianowana na coś takiego jak informatyka lub informatyka. W rzeczywistości informatyka ma niewiele wspólnego z komputerami. To teoria grafów, analiza algorytmów, struktury danych itp.
Ludzie chcą założyć, że nowy stopień CS to tak naprawdę stopień ITT; chcą kogoś, kto został przeszkolony w powołaniu. Informatyka to nauka, programowanie to sztuka. To nie to samo.
To tak, jakby zapytać, dlaczego nowy absolwent fizyki nie jest dobrym inżynierem samochodowym. To jest głupie.
źródło
źródło
Nie. CS to nie SE. To fakt, a nie wymówka.
Nie. To byłoby jak zmuszanie astronomów do poznania szczegółów budowy teleskopów. Lub zmuszanie programistów do uczenia się szczegółów budowy komputerów. Powiązane rzeczy, ale jeden człowiek nie musi wiedzieć wszystkiego.
źródło
Tak, dla mnie to brzmi jak wyrzutek i znak niedojrzałości CS jako dyscypliny akademickiej.
Akredytowany program BS Amerykańskiego Towarzystwa Chemicznego wymaga zaliczenia określonych kursów w celu wykazania się specjalizacją zarówno w teorii (wykłady), jak i praktyce (zajęcia laboratoryjne). W chwili obecnej CS nie ma nic takiego, o ile wiem.
Jeden z moich absolwentów był teoretykiem z wieży z kości słoniowej, którego biuro nigdy nie było podkopane niczym fizyczniej chemicznym niż akwarium z Magic Rocks, ale kiedy byłem jego specjalistą od chemii na studiach pierwszego stopnia, okazał się również dość kompetentnym chemikiem stołowym .
Kiedy pracowałem jako chemik do farb przemysłowych, śmiali się z głowy na myśl, że będę miał licencjata i będę niekompetentny w laboratorium. Oczywiście szczegóły tego, co robiłem w laboratorium, były inne niż te, które miałem na zajęciach laboratoryjnych w szkole, ale zasady były takie same - po prostu użyliśmy miksera farby i puszki, a nie zlewki i mieszadła magnetycznego .
Jeśli zastosujemy to samo podejście do CS, szczegóły tego, czego można nauczyć jako praktycznych umiejętności tworzenia oprogramowania dla programu nauczania CS / SE, mogą się różnić w zależności od szkoły i czasu. Ale dla mnie to szaleństwo, że jest dopuszczalne, aby ktoś uzyskał dyplom w tej dziedzinie i nie był kompetentny w pisaniu, debugowaniu i utrzymywaniu jakiegoś kodu. (Oczywiście, tak właśnie jest w wielu programach CS, ale wciąż jest to szalone.)
źródło
Zgadzam się, że 4 lata to tylko wystarczająco dużo czasu, aby dać im dobrą podstawę do rozwoju. Myślę jednak, że jedną rzeczą, która naprawdę pomaga, jest zaangażowanie ludzi z branży w opracowywanie programu nauczania, a nawet nauczanie w klasie. W zeszłym roku byłem pracownikiem branżowym w klasie oprogramowania na lokalnej uczelni. To było dla mnie bardzo otwierające oczy doświadczenie. Profesor i ja pracowaliśmy razem nad treścią kursu i umieściliśmy o wiele więcej informacji na temat procesu rozwoju, najlepszych praktyk branżowych i sytuacji „rzeczywistych”, jakie mieli wcześniej. Odkryliśmy, że ponieważ większość instruktorów nie opracowuje powszechnie używanego i utrzymywanego kodu, sprowadzenie kogoś z branży pomogło zidentyfikować i uczyć umiejętności potrzebnych do tego.
źródło
Tak, to jest 100% harcer, powinni uczyć długoterminowych umiejętności, które będą przydatne w całej naszej karierze. Niezależnie od tego, czy zamierzasz studiować w środowisku akademickim, czy w branży, musisz mieć możliwość programowania w sposób, który można utrzymać, nawet jeśli jest to tylko sam.
Tak, chociaż byłoby to podkreślone tylko we właściwych kursach. Osobiście, jeśli będę musiał z tobą porozmawiać, aby lepiej zrozumieć, jak próbowałeś wdrożyć algorytm, oceniłbym twoją ocenę.
Nawet jeśli zajmujesz się wyłącznie badaniami CS, prawdopodobnie będziesz musiał stworzyć kod, aby zademonstrować swoje pomysły. W pewnym momencie przydatne będą odpowiednie umiejętności programowania, więc dlaczego nie zacząć na studiach.
źródło
Myślę, że naszym problemem jest to, że jesteśmy bardziej podobni do lekarzy, niż jesteśmy gotowi przyznać ... Mamy pomysł, że czteroletni dyplom powinien przygotować studentów do pisania oprogramowania. Nie jest nawet blisko.
Nasz zawód jest w dużej mierze w powijakach w porównaniu do innych dyscyplin. Być może pytanie powinno brzmieć: w jaki sposób możemy poprawić CS, aby studenci, którzy ukończyli ten stopień, byli lepiej przygotowani do zostania produktywnymi członkami rzeczywistego zespołu programistycznego w znacznie krótszym czasie?
Może powinniśmy być bardziej jak medycyna. Cztery lata podstawowej pracy (stopień CS), a następnie rezydencji - praktyka jednostki pod nadzorem bardziej doświadczonego inżyniera oprogramowania. Może to już mamy, ale jest to mniej formalne ... To znaczy, jak mieszkaniec, uczymy się naszych najcenniejszych umiejętności w miejscu pracy podczas pierwszych prac.
Może jako dyscyplina musimy po prostu lepiej to sformalizować.
źródło
Mam dyplom CS i przez cały rok mojego programu nie było programowania, tylko teoria. Powiedziano nam, że nie uzyskujemy dyplomu z programowania, ale z informatyki. Jeśli chcesz zostać programistą, idź na Community College.
Dowiedzieliśmy się o algorytmach, wzorcach projektowych i wielu teoriach dotyczących rozwiązywania problemów bez języka przestrzennego. Języki programowania przychodzą i odchodzą, ale teoria podkreślania pozostaje taka sama.
Tak więc, na twoje pierwsze pytanie, nie, nie czuję, że CS! = SE to copout. To jest fakt.
Na twoje drugie pytanie nie, nie sądzę, żebym to zrobił. Jak właściwie uczysz programowania? Poza pętlami, ifami, metodami, klasami i OOP, co byłoby „właściwym programowaniem” i jak sprawiłoby, że byłby odpowiedni dla jakiegokolwiek języka programowania? Potrzebujesz doświadczenia w pisaniu kodu, czegoś, na co 4 lata nie może cię przygotować.
Jedną rzeczą, którą bym zrobił, to zapewnienie klasy na temat rozwoju w realnym świecie. Kontrola źródła, śledzenie biletów / błędów, śledzenie kodu i cały ten jazz byłby dobrym początkiem, aby przygotować się wkrótce do oceny na to, co czeka ich w nowej pracy.
Myślę, że to od nas zależy, kiedy zatrudniamy nowego absolwenta, aby zrozumieć, że prawdopodobnie nie będą pisać nagradzanego kodu. Potrzebują wskazówek i wskazówek.
źródło
Ważne jest, aby uniwersytet zachował równowagę między wiedzą teoretyczną a umiejętnościami praktycznymi. Podczas różnych kursów nauczyłem się obu. W pierwszych latach było wiele matematyki i algorytmów / struktur danych. To, co nastąpiło, było wyborem: albo możesz kontynuować naukę informatyki (rodzaj artystycznej ścieżki, na której możesz na przykład uczestniczyć w kursach z wyrafinowanymi algorytmami dopasowywania łańcuchów) lub skoncentrować się na inżynierii oprogramowania. W tym czasie trzeba było zdobyć solidne podstawy programistyczne.
Wybrałem inżynierię oprogramowania, ponieważ nigdy nie interesowałem się abstrakcyjnymi problemami. Ale nawet ci, którzy lubili czystą informatykę, musieli:
linux
moduł jądra i zmodyfikuj samo jądro, napisz grę zorientowaną na obiektSmallTalk
,Java
czteroosobowym zespole,C
do programowania równoległego (pomysły były abstrakcyjne, ale recenzje były dość surowe, jak utrata punktów za niedostarczenie odpowiedniego wyjścia, gdy program zawiódł, tak jakprogram
powinien zrobić dobry unix ),django
, co sprawiło, że pokochałem ten frameworek)LAMP
(ciągle mam koszmaryphp
, ale używanapostgresql
zamiastMySQL
i jestem bardzo zadowolony wiedząc o tymDBMS
teraz),python
programu komputerowegoPyQt
.Może były inne projekty, ale teraz po prostu o nich zapomniałem.
Chodzi mi o to: wszystko zależy od szkoły. Bardzo nie lubię czystego podejścia do inżynierii oprogramowania, gdzie
Java
jest główny język. Musiałem kiedyś pomóc przyjacielowi, który uczęszcza do takiej szkoły i musiałem napisać program do programowania równoległego. Musiałem napisać do niego w zasadzie, bo mimo, żesizeof(some_string)
wC
daje długość łańcucha.Będę szczery: nienawidziłem matematyki, odczuwałem ból, gdy musiałem przygotować się do zadań abstrakcyjnych, które miałyby być podawane na egzaminach z algorytmów / struktur danych. Ale daje mi to pewną przewagę: mogę myśleć w bardzo abstrakcyjny sposób. To tak, jakbyś uczył się sztuk walki i nie pilnował się (przynajmniej w tych, w których powinieneś). Trener po prostu przychodzi i uderza cię w głowę, gdy opuszczasz ręce, ponieważ zapomniałeś lub ponieważ jesteś zbyt zmęczony, aby je utrzymać. Ale po pewnym czasie po prostu je utrzymujesz. I naprawdę ciężko jest trafić cię w twarz. To samo dotyczy abstrakcyjnych problemów algorytmicznych. Zapoznaj się z treścią Wstępu do algorytmów, a naprawdę niewiele rzeczy zaskoczy Cię w pracy.
źródło
Myślę, że odpowiedź brzmi tak (w pewnym sensie).
Chodzi o to, że nie można uczyć dzieci w krótkim czasie programowania. Powinny być rozważane przez programistów logiczne myślenie, jak rozwiązać (w mniejszej skali) problemy programisty.
Jestem pewien, że programy szkolne powinny zostać zmienione, jestem moim bardzo małym krajem „trzeciego świata”, na szczęście podejmowane są wysiłki, aby tak się stało. Jesteśmy pierwszym krajem, który wdrożył program OLPC; http://laptop.org/en/
źródło
Z własnego doświadczenia (w tej chwili jestem studentem) muszę powiedzieć tak, to wymówka. Wszyscy nazywają CS jako naukę, która uczy nas wszystkich podstaw komputerów, a SE jako specjalną gałąź w CS, która wyraźnie uczy programowania. Imo, każdy, kto ma BS w CS, musi wiedzieć, jak pisać dobry i zoptymalizowany kod (nawet jeśli programowanie nie jest jego specjalizacją). Więc tak, gdybym miał wszechmocną pozycję do podjęcia takiej decyzji, zmusiłbym studentów do zdobycia dobrych umiejętności programistycznych.
źródło
Zakładając, że celem jest kształcenie dobrych inżynierów oprogramowania (programistów), ponieważ świat ich potrzebuje, czy można odpowiedzieć, mówiąc, co moim zdaniem powinno się uczyć?
Po pierwsze, jest to ważne, ponieważ obecnie transfer wiedzy jest bardzo nieefektywny. Gdy potencjalni programiści są na zajęciach, ich umysły są otwarte i chłoną to, czego się uczą. Jednocześnie profesorowie (ja byłem jednym z nich) zbyt często są zainteresowani wypełnianiem oferty absolwentów szkół uczniami, którzy potrafią pracować nad przedmiotami ezoterycznymi. Kiedy pojawia się zastrzeżenie, że studenci nie są przygotowani na rzeczywiste problemy, widziałem, jak profesorowie twierdzą, że to nie ich praca . To prawdziwa praca na świecie.
Czy kiedy studenci stają się programistami w prawdziwym świecie, chętnie uczą się od swoich nowych kolegów? Nie z mojego doświadczenia. Raczej chętnie głoszą ewangelię, którą nabyli w szkole. Pamiętam, jak jako student i młody praktykujący zastanawiałem się, jak ciężko będzie wspierać nowe pomysły wśród starych, zboczonych facetów. Teraz, gdy jestem starym, dziwnym facetem, widzę, jak trudno jest otworzyć oczy nowych programistów na różnicę między teorią a praktyką.
Byłem studentem inżynierii, mechaniki, a później elektrotechniki. Zasadniczą częścią tego było a) podstawy matematyczne oraz b) praktyczne rozwiązywanie problemów. Inżynieria oprogramowania powinna być taka, a nie tylko programowanie.
Myślę, że inżynierii oprogramowania (programowania) należy uczyć z wystarczającą ilością informatyki, aby być praktyczną wiedzą - podstawową teorią automatów i teorią informacji. Nie trzeba ich robić dogłębnie. Po nauczeniu podstawowych umiejętności programistycznych powinny powstać projekty współpracy o charakterze nietrywialnym. Istotną ich częścią powinna być propozycja i rozważenie alternatywnych rozwiązań konkretnych problemów, wraz z analizą zalet i wad, a nie tylko najnowszą religią, „następną wielką rzeczą” lub uniwersalnym rozwiązaniem. Wreszcie, powinna istnieć współpraca i partnerstwo między przemysłem a środowiskiem akademickim, aby pomysły i ulepszenia mogły być przekazywane w obie strony, znacznie poprawiając kontrolę jakości.
źródło
Ci, którzy potrafią; tych, którzy nie mogą uczyć.
Na moim uniwersytecie baza wiedzy nauczycieli jest bardzo niedobra. Widziałem, jak nauczyciele mają problemy ze zrozumieniem, jak reprezentować tabele półstrukturalne w XML, jednocześnie mając doktorat z projektowania baz danych. Widziałem mojego nauczyciela asemblera, który pyta mnie, co robi mój kod, kiedy to jego fragment kodu skopiowałem i wkleiłem. Widziałem, jak mój nauczyciel projektowania oprogramowania powiedział nam, że metoda Agile jest taka sama jak metoda kaskadowa, tylko szybciej, że model iteracyjnego procesu programowania ma i może mieć tylko 3 iteracje, ponieważ to właśnie obraz przedstawia tę książkę jako przykład. Jeden z moich nauczycieli nawet nie wiedział, co to jest oświadczenie elseif.
Nie wierzę, że „zarabiają” lub robią wymówki, naprawdę wierzę, że robią wszystko, co w ich mocy, dzięki swoim doświadczeniom, których mają niewielu.
Zgadzam się z innymi ludźmi, którzy piszą tutaj, że 4 lata to za mało, aby zostać doświadczonym programistą, ale doświadczenie moich nauczycieli nie wystarcza, by sprawić, że będą doświadczeni. Jest to bardzo podobne do Ender's Shadow, w którym Fasola zauważa, że mierniki używane przez nauczycieli w szkole walki są nieskuteczne, ponieważ ostatnia wojna, która jest zasadą przewodnią, była zbyt krótka, aby naprawdę pokazać, co jest rzeczywiście potrzebne. Innymi słowy, nauczyciele robili, co mogli, ale nie mieli doświadczenia, aby wiedzieć, co jest naprawdę potrzebne, aby zostać dobrym dowódcą (lub dobrym programistą w tym przypadku).
źródło
Those that can, do; those that cannot, teach.
W ogóle się z tym nie zgadzam: kariery akademickie i przemysłowe prowadzą do zupełnie innych stylów życia. Wiele światowych badań pochodzi od naukowców. I nie widzę sposobu, w jaki odpowiedziałeś na pierwotne pytanie.Informatycy i inżynierowie oprogramowania są różni. Naukowcy to ludzie, którzy wykonują szalone eksperymenty i opracowują algorytmy, które my inżynierowie oprogramowania wykorzystujemy, aby być lepszymi.
Pomyśl o chemikach przeprowadzających eksperymenty dla firmy farmaceutycznej. Nie dbają o to, jak masowo wytwarzać chemikalia. Nie dbają też o marketing, pakowanie, dystrybucję lub cokolwiek, co stanie się z lekiem po jego odkryciu. Do diabła, nawet nie dbają o proces certyfikacji. Jedyne, na czym im zależy, to znalezienie substancji chemicznej, która ma działanie, gdy podaje się ją badanym. Firma jest odpowiedzialna za przeniesienie go poza to.
Informatycy są jak chemicy. Wszystko, co robią, to testowanie teorii za pomocą kodu. Nie dbają o to, jak łatwy do utrzymania jest kod. Udowadniają teorię i przechodzą do następnej. Ktoś inny pakuje ten algorytm i czyni go użytecznym dla mas, a my mamy wizję MP3 lub komputer z Kinect lub streaming wideo na twoim iPhonie. Zatem CS! = SE jest poprawnym argumentem.
WRT druga część twojego pytania. Gdybym zaoferował dyplom z teorii muzyki, może istnieć wymagany kurs pisania piosenek lub coś takiego, ale nie wymagałoby to od nikogo studiowania instrumentu. Od ucznia zależy poszukiwanie potrzebnej mu wiedzy. Informatyka to nie inżynieria oprogramowania ... jeśli chcesz nauczyć się SE, podejmij podwójną specjalizację.
źródło
Edsger Wybe Dijkstra był holenderskim informatykiem.
Otrzymał nagrodę Turinga z 1972 r. Za podstawowy wkład w rozwój języków programowania , powiedział kiedyś:
„NAUKA KOMPUTEROWA NIE JEST WIĘCEJ O KOMPUTERACH NIŻ ASTROM JEST O TELESKOPACH”.
CS jest NAPRAWDĘ RÓŻNY OD SE. (CS! = SE).
CS to naukowiec, który nabył wiedzę na temat NAUKI KOMPUTERA.
NAUKA KOMPUTEROWA lub informatyka (czasami w skrócie CS) to nauka o teoretycznych podstawach informacji i obliczeń oraz praktycznych technik ich wdrażania i stosowania w systemach komputerowych. Często opisywana jest jako systematyczne badanie procesów algorytmicznych, które tworzą, opisują, i przekształcać informacje.
Informatyka ma wiele sub-dziedzin, na przykład:
Wielu z nas nie potrzebuje żadnej z tych umiejętności w codziennej pracy, a przynajmniej jej trochę.
SOFTWARE ENGINEER (SE) to zawód poświęcony projektowaniu, wdrażaniu i modyfikowaniu oprogramowania, dzięki czemu jest ono wyższej jakości, tańsze, łatwiejsze w utrzymaniu i szybsze w budowie. Jest to „systematyczne podejście do analizy, projektowania, oceny, wdrażania, testowania, konserwacji i ponownej inżynierii oprogramowania poprzez zastosowanie inżynierii oprogramowania”
Jako specjalista od CS powinien mieć wiedzę pozwalającą na zarządzanie naprawdę złożonym problemem bez znajomości naprawdę dobrego języka programowania. IMHO tutaj możemy otworzyć kolejny wątek, w którym STOPIEŃ jest dla mnie TYLKO PUNKTEM STARTOWYM, a nie CELEM KOŃCOWYM.
Jako wiedza SE ma on mieć wiedzę, aby zarządzać produkcją tego naprawdę złożonego problemu i zarządzać rozwojem zespołu lub projektu na ten temat.
Razem dokonaj badań naukowych przeprowadzonych przez CS w dziedzinie nauk stosowanych przy pomocy SE.
Nie mam na myśli, że CS jest lepszy niż SE, mam na myśli CS! = SE.
Tego rodzaju pytanie jest tym samym pytaniem, które ludzie niebędący komputerami zadają sobie, gdy pytają cię, dlaczego, jako programiści, nie jesteś w stanie naprawić telefonicznie problemu programu X, Y, Z w systemie operacyjnym J, M, N. ;)
Właściwie nudzę się kodowaniem po 10 latach rozwoju systemu uniksowego w dziedzinie bezpieczeństwa i po przeczytaniu tego pytania rozumiem o co chodzi, muszę studiować więcej informatyki i mniej języka komputerowego i systemu komputerowego lub protokołu!
Nikt w mojej pracy nie poradzi sobie z różnicą w SE i CS! to naprawdę złe rzeczy.
Jeśli uważasz, że CS może być usprawiedliwieniem złej umiejętności programowania, naprawdę nie rozumiesz, czym jest CS, a co SE.
Przypuszczam, że jesteś SE, czy wiesz na przykład, że cały język, cały paradygmat i wszystkie związane z nim elementy komputerowe mogą być wyrażone matematycznie w zestawie częściowej funkcji rekurencyjnej i niezależnie od tego, czego nauczysz się nowego języka, KAŻDEGO NOWEGO JĘZYKA, jesteś tylko uczysz się nowej abstrakcji w stosunku do SAME częściowej funkcji rekurencyjnej?
baw się dobrze :)
źródło