Shkenca Kompjuterike vs Programimi i Kompjuterave: Cili është ndryshimi?

Kredia e figurës

Ndihet sikur të dy termat në titull janë hedhur pak a shumë gjatë viteve të fundit. Si dikush që sapo filloi studimin e Programimit vetë, unë kam dëgjuar termat "Shkenca kompjuterike" dhe "Programim kompjuterik" i përdorur shumë kohët e fundit, pothuajse në mënyrë të ndërsjellë. Duket se do të pendoja që të mos mësoja pak më shumë për atë që secila nënkupton në të vërtetë dhe t'i përgjigjem disa prej pyetjeve të mëposhtme: A janë ato të njëjtën gjë? A janë të lidhur? A përfshin një tjetër?

Pse ka rëndësi gjithsesi?

Si dikush që sapo filloi të mësojë si të programojë (dhe që ka një diplomë Bachelor 4-vjeçare, por jo në Shkencë Kompjuterike), mund të them që kam ndjenjën se kam një rëndësi të konsiderueshme në lidhje me perspektivat e mia të karrierës. Shumë shpesh kur shikojmë postimet e punës të lidhura me softuer, shoh se një shkallë 4-vjeçare e Shkencave Kompjuterike ose kërkohet ose shihet si një plus i madh. Kjo shpesh bën që dikush të jetë në pozicionin tim që t'i bëjë vetes pyetjet e mëposhtme: A e humba varkën? A është 'programimi kompjuterik' një art më i vogël që mendova se ishte? A është një diplomë Shkencash Kompjuterike ajo që kanë inxhinierët e vërtetë të softuerit nën rripin e tyre?

Duke kuptuar se kam filluar diku në kërkimin tim, kontrolloj përkufizimin e Wikipedia për secilin term:

Programimi kompjuterik është procesi i hartimit dhe ndërtimit të një programi kompjuterik të ekzekutueshëm për përmbushjen e një detyre specifike informatike ... Qëllimi i programimit është të gjesh një sekuencë udhëzimesh që do të automatizojnë kryerjen e një detyre në kompjuter, shpesh për zgjidhjen e një problemi të caktuar.

Unë e krahasoj këtë me përkufizimin për Shkencë Kompjuterike:

Shkenca kompjuterike është studimi i proceseve që bashkëveprojnë me të dhënat dhe që mund të përfaqësohen si të dhëna në formën e programeve. Mundëson përdorimin e algoritmeve për të manipuluar, ruajtur dhe komunikuar informacionin dixhital. Një shkencëtar i kompjuterave studion teorinë e llogaritjes dhe praktikën e hartimit të sistemeve softuerike.

Nga shkëputja, unë mund të shoh se ekziston një ndryshim i madh që tregohet këtu. Programimi kompjuterik duket se është procesi i hartimit dhe ndërtimit të programeve që kryejnë një detyrë të caktuar. Shkenca e kompjuterave, nga ana tjetër, është studimi themelor i këtyre proceseve. Për mua, ajo që kjo krahasim duket se po përpiqet të thotë është se Programimi i kompjuterave qëndron në fushën e teknologjisë së aplikuar, ndërsa Shkenca Kompjuterike leans më shumë teorike.

Për qartësi të mëtejshme, unë shikoj në mendime të inxhinierëve me përvojë të programeve kompjuterike lidhur me ndryshimet midis të dyve. Para se të vazhdoj, duhet të theksoj se pavarësisht nga mendimi i ndonjë individi, duket se shumë nga ky diskutim është parë përmes lenteve të arsimit të lartë dhe ka qenë i ndikuar në përputhje me rrethanat. Ndërsa ekzistojnë burime që kërkojnë të përgjigjen drejtpërdrejt në pyetje si "Cili është ndryshimi midis Shkencës së Computer dhe Programimit të Kompjuterave?", Shpesh biseda është përshtatur përmes pyetjeve të tilla si "Cila kryesore duhet të studioj në kolegj: Shkencë Kompjuterike ose Inxhinieri Softuerësh?" rezulton, fillimisht për mua shumë të pavëmendshme, shumë shkolla ofrojnë një diplomë “Inxhinieri Softuerësh”, e cila për qëllimet e këtij neni mund të krahasohet më shumë me Programimin e Kompjuterave. Siç mund të presim, gradat e Shkencave Kompjuterike priren t'i udhëheqin studentët më shumë në drejtim të një studimi teorik të proceseve themelore të kompjuterëve, ndërsa Inxhinieria e Softuerëve ofron arsim në zbatim të këtyre parimeve. Pavarësisht nga dallimet e tyre, megjithatë, këto disiplina duket se kanë ngjashmëri të habitshme.

Në artikullin e tij të mesëm "Shkenca Kompjuterike VS Inxhinieri Softuerësh - Cila është më e mira për ju?" (E lidhur më poshtë), tekniku YouTuber dhe ish-zhvilluesi i Google YK Sugi hulumton ndryshimet midis shkencave kompjuterike dhe diploma të Inxhinierisë së Programeve kompjuterike në Universitetin e Waterloo, për shkak të tij shikoni që ajo ka një nga programet më të mira të shkencës kompjuterike në Amerikën e Veriut. Ai zbuloi se diploma kishte një shumë të befasishme të mbivendosjes, duke qenë "pothuajse identike" në lidhje me kërkesat e tyre për matematikë dhe statistikë, por gjithashtu zbuloi se secili nga madhorët mburrej me cilësitë e tij unike:

Unë mendoj (për sa i përket zgjedhjes së madhe), kjo kryesisht varet nga preferencat tuaja. Shkurtimisht:
Ju duhet të zgjidhni Shkencë Kompjuterike nëse ju pëlqen matematika, logjika, ose nëse doni të futeni në një fushë të specializuar në CS, siç është inteligjenca artificiale, mësimi i makinerisë, siguria ose grafika.
Ju duhet të zgjidhni Inxhinierinë e Programeve kompjuterike nëse jeni më të interesuar në qasjen praktike dhe nëse doni të mësoni ciklin e përgjithshëm të jetës sesi ndërtohet dhe mirëmbahet programi.

E thënë kjo, kur i përgjigjet pyetjes se cila kryesore duhet të ndiqet me interesin për tu bërë një inxhinier softuerësh, Sugi çuditërisht përgjigjet me aktgjykimin se një Shkencë Kompjuterike kryesore është më e mirë. Për arsye të dukshme, kjo erdhi si befasi për mua. Si mund që një shkallë e Inxhinierisë Softuerike të mos jetë rruga më e mirë për të siguruar një vend pune në Inxhinieri Softuerësh?

Shumë shkolla nuk ofrojnë madje as diploma të Inxhinierisë Softuerike. Sugi thekson se Universiteti i Kolumbisë Britanike në Vancouver ofron vetëm Shkencë Kompjuterike, për studim teorik dhe softuer të lidhur, dhe Inxhinieri Kompjuterike, i përqendruar në pajisjet kompjuterike. Secila ofroi klasa në Inxhinierinë e Programeve, por nuk kishte një major të dedikuar. Si mund të jetë që një shkollë si Universiteti i Waterloo mund të ofrojë një kryesore në Engeering të Softuerëve, por të mos ketë mundësi të jetë opsioni më i mirë për Inxhinierët e ardhshëm të Softuerëve? Sugi ofron më shumë hollësi:

Në mënyrë tipike, ajo që ata (punëdhënësit) kërkojnë në një kandidat për inxhinierë softuerësh është aftësia për të shkruar kod të fortë dhe për të ndërtuar projekte interesante, si dhe bazat e shkencës kompjuterike duke përfshirë strukturat e të dhënave dhe algoritme.
Unë mendoj se mënyra më e mirë për të kultivuar këtë grup aftësish është duke mësuar shpejt bazat e shkencës kompjuterike, dhe duke kaluar kohën tuaj duke praktikuar zgjidhjen e problemeve dhe shkrimin e kodit.
Bazuar në kurrikulën për Inxhinieri Softuerësh dhe bazuar në atë se si studentët e zënë me prirje priren të jenë në përgjithësi, unë mendoj se do të ishte më e vështirë ta bësh këtë me Inxhinierinë e Programeve kompjuterike sesa me Shkencat e Kompjuterave.

Pika që Sugi duket se po bën është se ndërsa bazat e Shkencave Kompjuterike janë diçka që studiohet më së miri në një klasë, natyra aplikative e të kuptuarit në Inxhinierinë e Programeve kompjuterike kërkon shumë përvojë praktike. Ky është diçka që studimi universitar në të vërtetë mund të pengojë studentët që kërkojnë të hyjnë në këtë fushë.

Pavarësisht nga marrjet e sugjes dhe të tjerëve për këtë temë, mbetet shumë e vështirë të mohosh që ekzistenca e këtyre diplomave dhe departamenteve në universitete ka ndikuar shumë në mënyrën se si ne e shohim Shkencën e Kompjuterave, së bashku me krahasimin e tij me Programimin e Kompjuterave.

Ndërsa tani kemi një ide disi më të mirë se si ta shohim këtë pyetje në një kontekst akademik, pyetja mbetet akoma midis marrëdhënies kategorike midis Shkencave Kompjuterike dhe Programimit të Kompjuterave. A e bën programimin nyjën bukur si nën-kategori e Shkencave Kompjuterike, apo janë dy disiplinat akoma të dallueshme?

Nga ato që na tregojnë hulumtimi, duket se Programimi i Kompjuterave nuk i përket Shkencave Kompjuterike, por me dallime të mjaftueshme të rëndësishme që është një fushë në vete.

Tech YouTuber Sylvester Morgan, në videon e tij për vitin 2017 "Isfarë është zhvillimi i softuerit? Zhvillimi i softuerit VS Computer Science ”(lidhur më poshtë), detajon ndryshimet midis këtyre dy:

Zhvillimi i softuerit është përdorimi i gjuhëve programuese dhe mjeteve për të shkruar udhëzime që kompjuteri kupton për të arritur diçka, me qëllim që të zgjidhë një problem ... të ndërtojë diçka ose të automatizojë diçka. Zhvillimi i softverit është një aplikim i shkencës kompjuterike.
Shkenca e kompjuterave është rrënja dhe themeli dhe zhvillimi i softverit që qëndron në krye të kësaj, por ato nuk janë e njëjta gjë. Ju mund të bëheni një zhvillues produktiv dhe të aftë të programeve kompjuterike pa atë njohuri themelore, por si një profesionist i vërtetë, është mirë që gjithmonë të jeni kurioz dhe të gërmoni më thellë në ato gjëra aq të nevojshme dhe siç ju interesojnë.

Ndërsa Morgan e konsideron Programimin si një nën-kategori dhe aplikim të Shkencave Kompjuterike, ai i sheh ato si mjaft të dallueshme sa mund t'i qasen me mendje të veçantë.

Në artikullin e saj për EdSurge për vitin 2015 "Shkenca e kompjuterave shkon përtej kodifikimit" (lidhur më poshtë), kolumnistja Sheena Vaidyanathan thekson se Programimi është një nga disa komponentët kryesorë të Shkencave Kompjuterike:

Shkenca e kompjuterave ka të bëjë me zgjidhjen e problemeve duke përdorur kompjuterë dhe kodimi (ose programimi) ka të bëjë me zbatimin e këtyre zgjidhjeve. Shkencëtarët e kompjuterave mund të jenë si arkitektët që dizajnojnë shtëpinë - por nuk kanë pse ta ndërtojnë atë.
Lënda e re e shkollës së mesme të parimeve të Shkencave Kompjuterike pasqyron më saktë këtë dallim të rëndësishëm duke u përqëndruar në shtatë ide të mëdha: Kreativiteti, Abstraksioni, Të Dhënat, Algoritmet, Programimi, Interneti, Ndikimi Global. Kodimi (Programimi) është vetëm një nga këto shtatë fusha.

Në artikullin e saj në lidhje me arsimimin në këto tema, Vaidyanathan përcakton se ka shumë arsye të forta për të mësuar Shkencat Kompjuterike në tërësi, dhe se një shmangie ndaj Programimit vetëm nuk është një arsye për të shmangur fushat e tjera në Shkencat e Kompjuterave.

Tech YouTuber, zhvilluesi dhe shkrimtari Aaron në Beta gjithashtu trajton temën në videon e tij për vitin 2017 "Cili është ndryshimi midis shkencës kompjuterike dhe programimit kompjuterik" (lidhur më poshtë):

... a janë e njëjta gjë (Shkenca kompjuterike dhe programimi kompjuterik), dhe cili është ndryshimi? Kështu që unë mendoj se pyetja më e lehtë për t'u përgjigjur është gjithashtu gjëja më e vështirë për t'u përgjigjur. A janë e njëjta gjë këto dy terma? Dhe përgjigjja është me të vërtetë, "Jo, ata nuk janë. Por ato janë shumë të lidhura ngushtë ”…
… Është i njëjti lloj koncepti sikur të kishit një kimist dhe një inxhinier kimik. Programimi kompjuterik është ana inxhinier kimik i kësaj. Ata janë njerëzit që janë duke hulumtuar dhe duke e aplikuar atë në situata të përditshme, ndërsa ana e Shkencave Kompjuterike është më shumë nga kimistë. Ata po bëjnë punën shkencore, punën teorike për ta detyruar atë që dikush ta zbatojë atë në botën reale.

Aaroni në Beta vazhdon gjithashtu të thotë se ndërsa të dy fushat janë të ndara, të kuptuarit e njërës i shërben thellësisht të kuptuarit të tjetrës. Të kesh një kuptim të ngurtë të teorive prapa si funksionojnë kompjuterët mund të ju ndihmojnë të shkruani kod më të efektshëm, ndërsa të dini se si të ofroni më mirë udhëzimet që kompjuterët mund të ndjekin, mund të ndihmojnë në drejtimin e një kuptimi më të thellë të kompjuterave si një i tërë.

Atëherë, Ku përshtaten shkallët e fillimit në të gjitha këto?

Siç mund të shihet edhe më lart, një pjesë e konsiderueshme e diskutimit për karrierën e kompjuterave dhe programeve zhvillohen në universitet, duke lënë ata që u futën në lojë pak më vonë duke u ndier pas vetes (përfshirë veten time). Thënë kjo, ndërsa ka pasur një diskutim të gjerë në lidhje me këtë temë, është me të vërtetë e drejtë të thuhet se studentët e mëparshëm, aktualë ose të ardhshëm të bootcamp bootcamp nuk duhet të ndjehen kaq të dekurajuar.

Në artikullin e tij të mesëm për vitin 2018 “Kodimi i Bootcamps kundër gradave të Shkencave Kompjuterike: Whatfarë dëshirojnë punëdhënësit dhe perspektivat e tjera” (lidhur më poshtë), studenti i doktoratës së Universitetit të Uashingtonit Kyle Thayer duket se do të trajtojë këtë çështje specifike. Ai shprehet se të dy diplomat e bootcamp dhe 4-vjeçare Shkenca Kompjuterike mbajnë qëllimet dhe pikat e tyre të forta:

Qëllimi i një shkalle CS është t'u japë studentëve një përmbledhje të fushës shkencore të informatikës…. Kodi i bootcamps, nga ana tjetër, përqëndrohet në trajnimin e njerëzve për një lloj specifik të punës programuese (normalisht programim në internet të plotë).
… Bootcamps-et e kodimit nuk kanë gjasa të mbulojnë bazat e sistemeve operative, dhe programet CS nuk kanë gjasa të mbulojnë teknologjitë e fundit të internetit ose të kenë shumë punë në ekip. Programet universitare ndryshojnë ngadalë, por edhe ato bazat e shkencës kompjuterike, ndërsa bootcamps për kodim ndryshojnë me shpejtësi, dhe janë në gjendje të vazhdojnë me ritmin e shpejtë të ndryshimit të teknologjisë. Unë pres që bootcamps kodimi dhe shkallët CS të vazhdojnë ekzistencën si këngë të ndara në të ardhmen, pavarësisht nëse bashkohen.

Vetë Thayer e vendos këtë studim të vitit 2017 nga Në të vërtetë Blog (i lidhur më poshtë). Studimi, i titulluar "Dofarë mendojnë vërtet punëdhënësit për kodet e botimit?", Mostra mbi 1000 rekrutues teknikë dhe menaxherë të burimeve njerëzore. Siç thekson artikulli, një 72% shokues u përgjigj se ata i shohin gradat e bootcamp "ashtu si të përgatitur dhe të ngjarë të jenë interpretues të lartë si kandidatët me gradë shkencore kompjuterike", ndërsa një shtesë prej 12% "mendojnë se të diplomuarit e bootcamp janë më të përgatitur dhe kanë më shumë të ngjarë të të jenë interpretues të lartë. "Nga ata që janë anketuar, rreth 17%" mendojnë se të diplomuarit e bootcamp nuk janë aq të përgatitur ose ka të ngjarë të jenë performues më të lartë sesa kandidatët me gradë shkencore kompjuterike. "

80% e menaxherëve të anketuar raportuan se ata kishin punësuar në një moment të diplomuar për bootcamp dhe një shumë mahnitëse (99.8%) thanë që ata do të punësonin përsëri.

Ndërsa mendimi i të gjithëve do të ndryshojë, unë e kam të vështirë të konkludoj se këto rezultate duhet të jenë dekurajuese për programuesit e bootcamp, në fakt unë do të thoja që ato tejkalojnë pritjet e mia. Ky studim vjen me informacione argumentuese, megjithëse: përkundër pikëpamjes së përgjithshme pozitive të gradave bootcamp, 41% e të anketuarve në studim thanë që, ata do të ishin më të rehatshëm në punësimin e dikujt me gradë shkencore kompjuterike. Kjo është kryesisht për shkak të standardeve themelore të rregulluara mirë të universiteteve dhe mungesës së strukturës rregullatore të bootcamps aktuale të kodimit. Për të ndjekur së bashku me tema të ngjashme, të anketuarit thanë që për projektet më abstrakte në lidhje me njohuritë teorike të kompjuterëve, gradat e Shkencave Kompjuterike ishin më të çmuara, ndërsa me detyrat që kërkojnë të kuptojnë më shumë praktikat e çështjeve, çertifikatat e bootcamps ishin po aq të vlefshme.

Atëherë, cilat janë Takeaways?

Epo, le të kalojmë disa nga pyetjet që u bënë në fillim të postimit:

A janë shkenca kompjuterike dhe programimi kompjuterik në të njëjtën gjë?

Jo. Ndërsa ka shumë gjëra të përbashkëta, do të ishte e saktë të thuash që Programimi i Kompjuterit dhe Shkenca Kompjuterike janë kategorikisht të dallueshme.

A janë të lidhura shkencat kompjuterike dhe programimi kompjuterik?

Po - ndërsa ato janë kategori të ndryshme, të dy kanë gjithashtu një mbivendosje të jashtëzakonshme, dhe njohja e njërës do të ndihmojë pothuajse me siguri për të kuptuar tjetrin.

A "Përfshinë" Shkenca Kompjuterike Programim në kompjuter, apo anasjelltas?

Po, Programimi i Kompjuterave është një degë e aplikuar e Shkencave Kompjuterike. E gjithë Programimi i kompjuterit mund të konsiderohet të jetë një nëngrup i Shkencave Kompjuterike, ndërsa ka shumë Shkenca Kompjuterike që nuk kanë asnjë lidhje me Programimin e Kompjuterave.

Si një student i ri i Programimit të Kompjuterave i cili nuk ndoqi një gradë 4-vjeçare të Shkencave Kompjuterike, më ka marrë malli për varkën e proverbisë?

Kjo varet nga qëllimet tuaja. Nëse po përpiqeni të merrni aftësi programuese për të punuar në një mjedis komercial ose diçka të ngjashme, atëherë përgjigjia ka të ngjarë jo (megjithëse rruga akoma nuk do të jetë e lehtë). Nëse po përpiqeni të publikoni kërkime akademike mbi teorinë e kompjuterit, me siguri do të dëshironi të studioni temën më tej në një universitet.

A është programimi kompjuterik një art më i vogël se sa mendova?

Kjo varet nga ajo që keni menduar se ishte. Nëse mendoni se "Programimi i kompjuterave" ishte një zonë e hulumtimit që përfshinte shumicën e fushave të studimit që kishin të bënin me kompjuterët, atëherë do të gabonit. Kjo është Shkenca Kompjuterike. Nëse mendonit se ishte studimi i mënyrave për të komunikuar dhe dhënë udhëzime për kompjuterët, deri në fund të programeve të ndërtimit, atëherë do të ishit të saktë. Si koment, të mendosh për një "më të vogël" se tjetri është përgjithësisht i panevojshëm, dhe të mos kesh perspektivën e kontekstit unik që secili plotëson.

A është një Shkencë e Shkencave Kompjuterike ajo që Inxhinierët "Realë" të softuerëve kanë nën rripin e tyre?

Jo domosdoshmërisht. Një diplomë 4-vjeçare e Shkencave Kompjuterike nuk do të dëmtojë kurrë qëllimet e karrierës së një inxhinieri të ardhshëm të programeve dhe as të kuptuarit e saj të fushës, por vështirë se ka një marrëdhënie një-për-një midis mbajtësve të gradave dhe inxhinierëve. Ka shumë inxhinierë të suksesshëm që ndërtuan karrierën e tyre pasi ndoqën një madhor tjetër (ose kurrë nuk morën pjesë në një universitet në radhë të parë). Ka edhe shumë studentë që kanë hyrë në një diplomë Shkencash Kompjuterike me qëllimin për të qenë inxhinier, dhe përfundojnë të zhgënjyer kur studimi ka rezultuar më i rëndë nga teoria.

Për të rikujtuar, Programimi i kompjuterave është një degë e aplikuar e Shkencave Kompjuterike. Mund të studiohet kryesisht në mënyrë të pavarur nga Shkenca Kompjuterike, megjithëse të kuptuarit e njërës do t’i shërbejë shumë tjetrit. Branding një si "më i mirë" se tjetri është përgjithësisht një praktikë e gabuar, dhe më konkretisht duhet të merret parasysh detyra në fjalë para se të vendosë se cila disiplinë apo aftësi do të jetë më e dobishme. Të diplomuarit e Shkencave Kompjuterike dhe të diplomuarit e programimit kompjuterik, secili prej tyre ka vendin e vet të arsyeshëm në shoqëri, dhe nuk ka gjasa që ose të zhduket nga rëndësia në çdo kohë së shpejti.

Shkrimi i këtij artikulli u mbështet thellë në hulumtimin e bërë nga të tjerët. Nëse dëshironi të shikoni më tej cilindo nga këto burime, ju lutemi referojuni lidhjeve më poshtë:

(Kredia e Fotos) https://theydiffer.com/difference-between-computer-science-and-computer-programming/

https://www.youtube.com/watch?v=R997_0r8sEI

https://www.youtube.com/watch?v=xa4oOv2JUA8

https://www.youtube.com/watch?v=cSVDk-ugAQ

http://blog.indeed.com/2017/05/02/what-employers-think-about-coding-bootcamp/

https://apstudent.collegeboard.org/apcourse/ap-computer-science-principles

https://www.robotlab.com/blog/coding-programming-and-computer-science-are-not-the-same

https://www.petersons.com/blog/whats-the-difference-between-computer-science-and-computer-engineering/

https://en.wikipedia.org/wiki/Computer_programming

https://en.wikipedia.org/wiki/Computer_sciencehttps://www.edsurge.com/news/2015-12-02-computer-science-goes-beyond-coding

https://medium.com/bits-and-behavior/coding-bootcamps-vs-computer-science-degrees-what-employers-want-and-other-perspectives-4058a67e4f15

https://medium.freecodecamp.org/computer-science-vs-software-engineering-which-one-is-a-better-major-88482c38446b

http://blog.indeed.com/2017/05/02/what-employers-think-about-coding-bootcamp/