Tölvunarfræði og tölvuforritun: Hver er munurinn?

Image Credit

Það líður eins og báðum hugtökunum í titlinum hafi verið kastað töluvert um síðustu ár. Sem einhver sem fór sjálfur í námið við Forritun hef ég heyrt hugtökin „Tölvunarfræði“ og „Tölvuforritun“ notað mikið undanfarið, næstum til skiptis. Það virðist sem ég væri þess álitin að læra ekki meira um hvað hver og einn þýðir í raun og svara nokkrum af eftirfarandi spurningum: Eru það sama? Eru þær skyldar? Er einn með hinn?

Af hverju skiptir það máli?

Sem einhver nýbúinn að læra að forrita (og er með 4 ára BA-gráðu en ekki í tölvunarfræði), get ég sagt að ég hafi á tilfinningunni að það skipti verulegu máli varðandi starfshorfur mínar. Mjög oft þegar ég skoða hugbúnaðartengd starfspóst er ég að sjá að 4 ára tölvunarfræðinám er annað hvort krafist eða er litið á það sem meiriháttar plús. Þetta leiðir oft til þess að einhver í minni stöðu spyr sig eftirfarandi spurninga: Saknaði ég bátsins? Er ‘tölvuforritun’ minni list sem ég hélt að væri? Er tölvunarfræðipróf það sem raunverulegir hugbúnaðarverkfræðingar hafa undir belti?

Reyndar að ég sé farinn að leita einhvers staðar í leitinni, athuga ég skilgreininguna á Wikipedia fyrir hvert hugtak:

Tölvuforritun er ferillinn við að hanna og smíða keyrslu tölvuforrit til að framkvæma tiltekið tölvuverkefni ... Tilgangurinn með forrituninni er að finna röð leiðbeininga sem gera sjálfvirkan árangur verkefnis í tölvu, oft til að leysa tiltekið vandamál.

Ég ber þetta saman við skilgreininguna fyrir tölvunarfræði:

Tölvunarfræði er rannsókn á ferlum sem hafa samskipti við gögn og hægt er að tákna þau sem gögn í formi forrita. Það gerir kleift að nota reiknirit til að vinna með, geyma og miðla stafrænum upplýsingum. Tölvunarfræðingur rannsakar kenningar um útreikninga og framkvæmd við hönnun hugbúnaðarkerfa.

Frá upphafi get ég séð að það er mikill munur sem hér er gefinn upp. Tölvuforritun virðist vera ferillinn við að hanna og smíða forrit sem ná tilteknu verkefni. Tölvunarfræði er aftur á móti undirliggjandi rannsókn á þessum ferlum. Það sem mér virðist vera að reyna að segja að þessi samanburður er að tölvuforritun liggur á sviði notuðrar tækni en tölvunarfræði hallar meira fræðilega.

Til frekari skýringar lít ég til skoðana reyndra hugbúnaðarverkfræðinga varðandi muninn á þessu tvennu. Áður en lengra er haldið verð ég að benda á að óháð skoðun hvers og eins, þá virðist sem mikill hluti þessarar umræðu hafi verið skoðaður í gegnum linsu æðri menntunar og haft áhrif á það. Þó að það séu til úrræði sem leitast við að svara beint spurningum eins og „Hver ​​er munurinn á milli tölvunarfræði og tölvuforritunar?“, Er samtalið oft rammað inn með spurningum eins og „Hvaða aðalgrein ætti ég að læra í háskóla: tölvunarfræði eða hugbúnaðarverkfræði?“ Eins og það reynist mér ókunnugt, margir skólar bjóða upp á „hugbúnaðarverkfræði“ prófgráðu, sem að því er varðar þessa grein er líkara við tölvuforritun. Eins og búast mátti við, eru tölvunarfræðipróf til að leiða nemendur meira í átt að fræðilegri rannsókn á undirliggjandi ferlum tölvna en hugbúnaðarverkfræði býður upp á menntun í samræmi við þessar meginreglur. Burtséð frá ágreiningi þeirra, þó virðast þessar greinar hafa svipað líkt.

Í miðlungs grein sinni „Tölvunarfræði VS hugbúnaðarverkfræði - Hvaða meirihluti er best fyrir þig?“ (Tengd hér að neðan) rannsakar tækni YouTuber og fyrrum þróunaraðili Google, YK Sugi, muninn á aðalhlutverki tölvunarfræði og hugbúnaðarverkfræði við Háskólann í Waterloo, vegna hans skoðun að það sé eitt besta tölvunarfræðiforrit Norður-Ameríku. Hann fann að aðalhlutverkin höfðu óvænt skörun og voru „næstum eins“ hvað varðar kröfur þeirra um stærðfræði og tölfræði, en komst einnig að því að hver aðalmaður státaði af sínum einstaka eiginleikum:

Ég held að (að því er varðar aðalhlutverk að velja) veltur það mest á óskum þínum. Í stuttu máli:
Þú ættir að velja tölvunarfræði ef þér líkar vel við stærðfræði, rökfræði eða ef þú vilt komast inn á sérhæft svið í CS eins og gervigreind, vélanám, öryggi eða grafík.
Þú ættir að velja hugbúnaðarverkfræði ef þú hefur meiri áhuga á tæknilegri nálgun og ef þú vilt læra heildar lífsferilinn í því hvernig hugbúnaður er smíðaður og viðhaldinn.

Sem sagt, þegar svarað er spurningunni um hvaða risamóta eigi að stunda með það fyrir augum að verða hugbúnaðarverkfræðingur, svarar Sugi furðu með þeim dómi að meirihluti tölvunarfræði sé betri. Af augljósum ástæðum kom þetta mér á óvart. Hvernig gat hugbúnaðarverkfræðinám ekki verið besta leiðin til að tryggja sér starf í hugbúnaðarverkfræði?

Margir skólar bjóða ekki einu sinni upp á aðalhlutverk í hugbúnaðarverkfræði. Sugi bendir á að Háskólinn í Breska Kólumbíu í Vancouver bjóði aðeins til tölvunarfræði, fyrir fræðilegt og hugbúnaðartengt nám, og tölvuverkfræði, með áherslu á tölvuvélbúnað. Hver og einn bauð upp á námskeið í hugbúnaðarverkfræði en þar var ekki um að ræða sérstaka aðalmenn. Hvernig gæti það verið að skóli eins og University of Waterloo gæti boðið upp á aðalhlutverk í hugbúnaðarþróun en hefur það ekki verið besti kosturinn fyrir tilvonandi hugbúnaðarverkfræðinga? Sugi býður upp á meiri útfærslu:

Venjulega er það sem þeir (vinnuveitendur) leita að hjá frambjóðanda hugbúnaðarverkfræðings, hæfileikinn til að skrifa traustan kóða og smíða áhugaverð verkefni, svo og grundvallaratriði í tölvunarfræði þar með talið gagnagerð og reiknirit.
Ég held að besta leiðin til að rækta þetta hæfileikasvið sé að læra fljótt grundvallaratriði í tölvunarfræði og eyða eigin tíma í að æfa vandamál og skrifa kóða.
Miðað við námskrá fyrir hugbúnaðarverkfræði og út frá því hversu uppteknir verkfræðinemar hafa tilhneigingu til að vera almennt, held ég að það væri erfiðara að gera þetta með hugbúnaðarverkfræði en tölvunarfræði.

Aðalatriðið sem Sugi virðist vera að gera er að þó grundvallaratriði í tölvunarfræði séu eitthvað sem best er rannsökuð í kennslustofunni, þá þarf gagnrýninn eðli skilnings í hugbúnaðarverkfræði mikla reynslu af tæknibúnaði. Þetta er eitthvað sem háskólanám getur í raun hindrað fyrir nemendur sem eru að leita að þessu sviði.

Burtséð frá því að taka við Sugi og öðrum um þetta efni, þá er það mjög erfitt að neita því að tilvist þessara aðalhlutverka og deilda háskóla hefur haft mikil áhrif á það hvernig við lítum á tölvunarfræði ásamt samanburði þess við tölvuforritun.

Þó við höfum nú nokkuð betri hugmynd um hvernig eigi að skoða þessa spurningu í fræðilegu samhengi, er spurningin ennþá á milli flokkalegra tengsla tölvunarfræði og tölvuforritunar. Kemur forritun sér vel fyrir sem undirflokkur tölvunarfræði, eða eru fræðigreinarnar tvær ennþá aðgreindar?

Út frá því sem rannsóknirnar segja okkur, þá lítur út fyrir að tölvuforritun tilheyri tölvunarfræði, en með nægilega mikilvægum aðgreiningum að það sé svið í sjálfu sér.

Tækni YouTuber Sylvester Morgan, í myndbandi sínu frá 2017 „Hvað er hugbúnaðarþróun? Hugbúnaðarþróun VS tölvunarfræði “(tengd hér að neðan), greinir frá mismun á þessu tvennu:

Hugbúnaðarþróun er notkun forritunarmála og tækja til að skrifa leiðbeiningar sem tölvan skilur til að ná fram einhverju, til að leysa vandamál… til að smíða eitthvað eða gera sjálfvirkan eitthvað. Hugbúnaðarþróun er forrit tölvunarfræði.
Tölvunarfræði er rótin og grunnurinn og hugbúnaðarþróunin sem liggur ofan á það, en þau eru ekki sami hluturinn. Þú getur orðið afkastamikill og þjálfaður hugbúnaðarframleiðandi án þeirrar grunnþekkingar, en sem sannur fagmaður er gott að vera alltaf forvitinn og grafa dýpra í þá hluti eftir þörfum og eins og þú hefur áhuga.

Þó Morgan lítur svo á að forritun sé undirflokkur og beitingu tölvunarfræði, þá lítur hann á þau eins nógu greinilega til að hægt sé að nálgast þau með aðskildum hugarfari.

Í EdSurge grein sinni 2015 „tölvunarfræði gengur lengra en erfðaskrá“ (tengd hér að neðan) bendir dálkahöfundurinn Sheena Vaidyanathan á að forritun er einn af nokkrum meginþáttum tölvunarfræði:

Tölvunarfræði snýst um að leysa vandamál með því að nota tölvur og kóðun (eða forritun) snýst um að útfæra þessar lausnir. Tölvunarfræðingar geta verið eins og arkitektar sem hanna húsið - en þurfa ekki að byggja það.
Nýja AP tölvunarfræði meginreglurnar auðvitað endurspegla nákvæmari þennan mikilvæga greinarmun með því að einbeita sér að sjö stóru hugmyndum: Sköpunargáfu, abstrakti, gögnum, reikniritum, forritun, internetinu, alþjóðlegum áhrifum. Kóðun (forritun) er aðeins eitt af þessum sjö sviðum.

Í grein sinni varðandi fræðslu um þessi efni fullyrðir Vaidyanathan að það séu margar sterkar ástæður til að kenna tölvunarfræði í heild sinni og að andúð á forritun ein og sér sé ekki ástæða til að forðast önnur svið tölvunarfræði.

Tækni YouTuber, þróa og rithöfundur Aaron í Beta bækist einnig yfir efnið í myndbandinu sínu „Hver ​​er munurinn á milli tölvunarfræði og tölvuforritunar“ (tengdur hér að neðan):

... eru þeir sami hluturinn (tölvunarfræði og tölvuforritun) og hver er munurinn? Svo ég held að auðveldasta spurningin til að svara sé líka erfiðast að svara. Eru þessi tvö hugtök það sama? Og svarið er í raun, „Nei, það eru þeir ekki. En þau eru mjög náin bundin “…
... það er sams konar hugtak og ef þú hefðir efnafræðingur og efnaverkfræðing. Tölvuforritun er efnaverkfræðingur hlið þessa. Þeir eru fólkið sem tekur rannsóknina og beitir þeim við hversdagslegar aðstæður en tölvunarfræðihliðin í henni er meira efnafræðingurinn. Þeir eru að vinna vísindastörfin, fræðilega verkin til að láta einhvern hrinda því í framkvæmd í hinum raunverulega heimi.

Aron í Beta segir ennfremur að þó að sviðin tvö séu aðskilin þjóni skilningur á einum innilega skilningi á hinum. Að hafa traustan skilning á kenningum á bakvið það hvernig tölvur virka getur hjálpað þér að skrifa skilvirkari kóða en vitandi hvernig best er að veita leiðbeiningar sem tölvur geta fylgt, getur hjálpað til við að dýpka skilning á tölvum í heild sinni.

Svo hvar passar Bootcamp bekk í þessu öllu saman?

Eins og sjá má hér að ofan fer talsverður hluti umfjöllunar um tölvu- og hugbúnaðarferil fram í háskólanum og skilur þá sem lentu í leiknum aðeins seinna tilfinningar eftir (ég sjálfur innifalinn). Sem sagt, þó mikið hafi verið rætt um þetta efni, þá er það í raun sanngjarnt að segja að fyrrum, núverandi eða tilvonandi námskeið í búðarforriti í erfðaskrá ættu ekki að finnast svo hugfallast.

Í miðlungs grein sinni „Coding Bootcamps vs. tölvunarfræði gráður: Hvað atvinnurekendur vilja og önnur sjónarmið“ (tengd hér að neðan) lítur Kyle Thayer, doktorsnemi við University of Washington, til að taka á þessu sérstaka máli. Hann staðhæfir að bæði bootcamp og 4 ára tölvunarfræðipróf hafi eigin tilgang og styrkleika:

Tilgangurinn með CS gráðu er að gefa nemendum yfirsýn yfir vísindasvið tölvunarfræði…. Kóðun bootcampar einbeitir sér hins vegar að því að þjálfa fólk í tiltekinni tegund forritunarstarfs (venjulega fullur staflaforritun).
… Ólíklegt er að kóðun á bootcampum nái til grundvallar stýrikerfum og ólíklegt er að CS-forrit nái til nýjustu veftækninnar eða hafi mikla teymisvinnu. Háskólanám breytist hægt, en það gera einnig grundvallaratriði í tölvunarfræði, meðan erfðaskrár eru að breytast hratt og geta fylgst með hraðri tæknibreytingu. Ég reikna með að erfðaskrár og CS-gráður haldi áfram sem aðskildum lögum í framtíðinni, hvort sem það er keyrt sjálfstætt eða í sameiningu.

Thayer sjálfur staðsetur þessa rannsókn frá 2017 úr örugglega blogginu (tengd hér að neðan). Rannsóknin, sem ber heitið „Hvað hugsa atvinnurekendur í raun um erfðaskrá fyrir bootcamps?“, Sýni yfir 1000 tæknilega ráðningaaðila og mannauðsstjóra. Eins og greinin bendir á svöruðu 72% átakanlegum svörum því að þeir líta á bootcamp-einkunnir „alveg eins tilbúnar og líklegar til að vera afreksmenn eins og frambjóðendur með tölvunarfræðipróf“ en 12% til viðbótar telja að útskriftarnemar í bootcamp séu tilbúnari og líklegri til að vera afreksmenn. “Af þeim sem voru könnuðir telja um 17%„ útskriftarnemar í bootcamp ekki vera eins tilbúnir eða líklegir til að vera hærri flytjendur og frambjóðendur með tölvunarfræðipróf. “

80% stjórnenda, sem könnuð voru, sögðu frá því að þeir hefðu á einhverjum tímapunkti ráðið bootcamp-framhaldsnám og yfirþyrmandi upphæð (99,8%) sögðust myndu ráða einn aftur.

Þó skoðun allra verði mismunandi, þá á ég erfitt með að álykta að þessar niðurstöður ættu að vera vonbrigði fyrir forritara bootcamp, í raun myndi ég segja að þær væru umfram væntingar mínar. Þessi rannsókn er með grunnupplýsingar, þó: þrátt fyrir jákvæða skoðun heildarskoðunar á matseðli, sögðu 41% svarenda í rannsókninni að þeir myndu vera öruggari í að ráða einhvern með tölvunarfræðipróf. Þetta er að mestu leyti vegna vel skipulegra grunnstaðla háskóla og skorts á stjórnskipulagi núverandi erfðaskrár. Til að fylgja eftir svipuðum þemum sögðu svarendur að fyrir meira óhlutbundin verkefni varðandi fræðilega þekkingu á tölvum væri tölvunarfræðipróf meira virði, en með verkefnum sem krefjast meiri hagnýtar skilnings á málum, voru bootcamps skírteini jafn verðmæt.

Svo hvað eru takeaways?

Jæja, við skulum fara í gegnum nokkrar af þeim spurningum sem voru spurðar í upphafi færslunnar:

Eru tölvunarfræði og tölvuforritun sama hlutar?

Nei. Þó að margt eigi það sameiginlegt væri rétt að segja að tölvuforritun og tölvunarfræði eru ágreiningsleg.

Er tölvunarfræði og tölvuforritun skyld?

Já - þó að þeir séu ólíkir flokkar, þá hafa þeir tveir gríðarlega mikla skörun og þekking á einum mun nær örugglega hjálpa til við að skilja hinn.

Er tölvunarfræði „innifalið“ tölvuforritun, eða öfugt?

Já, tölvuforritun er notuð útibú tölvunarfræði. Öll tölvuforritun getur talist vera hlutmagn tölvunarfræði, en nóg er af tölvunarfræði sem hefur ekkert með tölvuforritun að gera.

Sem nýr tölvunarforritunarnemi sem stundaði ekki 4 ára tölvunarfræðipróf, saknaði ég orðtakbátsins?

Það fer eftir því hver markmið þín eru. Ef þú ert að reyna að öðlast forritunarhæfileika til að vinna í atvinnuskyni eða eitthvað svipað, þá er svarið líklega nei (þó leiðin verði samt ekki auðveld). Ef þú ert að reyna að birta fræðilegar rannsóknir á tölvufræði, þá munt þú líklega vilja læra efnið frekar í háskóla.

Er tölvuforritun minni list en ég hélt að það væri?

Það fer eftir því hvað þér datt í hug. Ef þú hélst að „tölvuforritun“ væri rannsóknasvið sem náði til flestra fræðasviða sem hafa með tölvur að gera, þá væri þér skakkur. Það er tölvunarfræði. Ef þú hélst að þetta væri rannsókn á leiðum til að miðla og veita tölvur leiðbeiningar, til loka smíði forrita, þá hefðirðu rétt fyrir þér. Sem athugasemd er það yfirleitt óþarft að hugsa um annað hvort „minna“ en hitt og skortir sjónarhorn á hið einstaka samhengi sem hver og einn fyllir.

Er tölvunarfræðinámið það sem „raunverulegir“ hugbúnaðarverkfræðingar hafa undir sér?

Ekki endilega. Fjögurra ára tölvunarfræðipróf mun aldrei meiða ferilmarkmið hugsanlegs hugbúnaðarverkfræðings né skilning hennar á þessu sviði, en það eru varla tengsl milli einstaklinga og gráðu í verkfræði. Það eru fullt af farsælum verkfræðingum sem byggðu starfsferil sinn eftir að hafa stundað annan aðalskóla (eða aldrei farið í háskóla í fyrsta lagi). Það eru líka fullt af nemendum sem hafa farið í tölvunarfræðipróf með það að markmiði að vera verkfræðingur og endar fyrir vonbrigðum þegar rannsóknin hefur reynst þyngri í kenningum.

Til að endurskoða er tölvuforritun notuð útibú tölvunarfræði. Það er hægt að rannsaka það að mestu leyti óháð tölvunarfræði, þó skilningur á einum muni þjóna hinu mjög. Að merkja eitt sem „betra“ en hitt er venjulega afvegaleiddur, og nánar tiltekið ætti að líta á verkefnið sem er fyrir hendi áður en ákvörðun er tekin um hvaða aga eða hæfileikakeppni nýtist betur. Útskriftarnemar í tölvunarfræði og tölvuforritun útskriftarnema frá búðcamp eiga hver sinn réttlætanlegan stað í samfélaginu og það er ólíklegt að annað hvort hverfi út af mikilvægi hvenær sem er.

Ritun þessarar greinar treysti mjög á rannsóknir annarra. Ef þú vilt skoða nánar eitthvað af þessum úrræðum, vinsamlegast vísaðu í hlekkina hér að neðan:

(Ljósmyndalán) 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/