Computerwetenschappen versus computerprogrammering: wat is het verschil?

Afbeelding tegoed

Het lijkt erop dat beide termen de afgelopen jaren enigszins zijn veranderd. Als een persoon die zelf begon te leren programmeren, heb ik de laatste tijd veel van de termen "informatica" en "computerprogrammering" door elkaar gebruikt. Ik moest een beetje weten wat elk van hen eigenlijk betekende en een paar vragen beantwoorden: zijn ze hetzelfde? Zijn ze met elkaar verbonden? Omvat de een de ander?

Waarom is het eigenlijk belangrijk?

Als beginner om te leren programmeren (en heeft 4 jaar een bachelordiploma maar niet opgeleid in informatica), kan ik zeggen dat ik het belangrijk vind voor mijn carrièremogelijkheden. Vaak zie ik bij het kijken naar softwaregerelateerde vacatures dat een 4-jarige opleiding informatica vereist is of wordt gezien als een belangrijke aanvulling. Dit zorgt er vaak voor dat de persoon in mijn positie zich afvraagt: mis ik een schip? Is "computerprogrammeren" minder kunst dan ik dacht dat het zou zijn? Is er een graad in computerwetenschappen die de pols heeft van echte software-ingenieurs?

De Wikipedia-definitie van elke term controleren, wetende waar ik aan begon waar ik naar op zoek was:

Computerprogrammering is het proces van het ontwerpen en bouwen van een computerprogramma dat een specifieke computertaak uitvoert ... Het doel van programmeren is om een ​​reeks instructies te vinden die de taak op de computer automatiseren.

Ik vergelijk dit met de definitie van informatica:

Informatica is de studie van processen die met data zijn verbonden en als informatie worden gepresenteerd in de vorm van applicaties. Maakt het gebruik van algoritmen mogelijk voor het beheren, opslaan en verzenden van digitale gegevens. De informaticus zal computationele theorie en praktijk van het ontwerpen van softwaresystemen bestuderen.

Vanaf het begin kan ik zien dat hier een groot verschil wordt weergegeven. Het proces van het ontwerpen en bouwen van programma's die dezelfde functies uitvoeren, lijkt op computerprogrammering. Informatica is op haar beurt de studie van de basis van deze processen. Ik denk dat ik over deze vergelijking wil zeggen dat computerprogrammering zich op het gebied van toegepaste technologie bevindt en informatica meer theoretisch is.

Om meer specifiek te zijn, verwijs ik naar de opmerkingen van ervaren software-ingenieurs over de verschillen tussen de twee. Voordat ik verder ga, moet ik erop wijzen dat, ongeacht wat iemand denkt, het grootste deel van deze discussie is bekeken en beïnvloed door lenzen van het hoger onderwijs. 'Wat is het verschil tussen informatica en computerprogrammering?' Hoewel er bronnen zijn die vragen rechtstreeks willen beantwoorden, zoals interviews, wordt het gesprek vaak gevraagd: 'Welke specialiteit moet ik studeren op de universiteit: informatica of software-engineering?' Het beantwoordt vragen als. Omdat ik het in eerste instantie niet wist, bieden veel scholen voor dit programma een diploma in Software Engineering aan, dat kan worden vergeleken met een computerprogramma voor dit artikel. Zoals verwacht leiden de graden van informatica studenten naar de theoretische studie van basiscomputerprocessen, terwijl software hen leert deze principes toe te passen. Ondanks deze verschillen vertonen deze onderwerpen opvallende overeenkomsten.

Secundair onderwijs "Software Engineering VS - wat is het beste voor u?" YouTuber en voormalig Google-ontwikkelaar YK Sugi hebben de verschillen onderzocht tussen informatica en software-engineering aan de Universiteit van Waterloo (hieronder). Zorg ervoor dat je een van de beste computerwetenschappelijke programma's in Noord-Amerika hebt. Hij ontdekte dat, ondanks de eisen die de specialiteiten stellen aan wiskunde en statistiek, "bijna elke magistratuur zijn eigen unieke eigenschappen heeft:

Naar mijn mening (welke te kiezen) hangt het grotendeels af van wat je wilt. In een notendop:
Als je van wiskunde, logica houdt of als je een gespecialiseerd vakgebied wilt betreden, zoals kunstmatige intelligentie, machine learning, beveiliging of grafische afbeeldingen, moet je kiezen voor informatica.
Als u meer geïnteresseerd bent in handmatig werk en wilt weten hoe de levenscyclus van de software is ontworpen en onderhouden, moet u kiezen voor software-engineering.

Sugi beantwoordt de vraag welke specialiteit moet worden gekozen op basis van zijn interesse om software-engineer te worden en antwoordt met een verrassend goede zin: "De specialiteit van de informatica is beter." Om voor de hand liggende redenen kwam dit als een verrassing voor mij. Hoe kan een diploma in software engineering niet de beste manier zijn om banen in software engineering te vinden?

Veel scholen bieden zelfs geen diploma in software-engineering. Volgens Sugi biedt de University of British Columbia in Vancouver alleen theoretisch computer- en softwareonderzoek en computertechnologie aan. Elk van hen bood een cursus software engineering aan, maar geen specialisatie. Hoe kan een school als Waterloo University een diploma in softwarebeheer aanbieden, maar is het misschien niet de beste keuze voor toekomstige software-ingenieurs? Sugi biedt meer ontwikkeling:

Wat zij (werkgevers) doorgaans zoeken in een kandidaat voor softwareontwikkelaars, is de basis van de informatica, inclusief het schrijven van harde code en interessante projecten, evenals datastructuren en algoritmen.
Ik denk dat de beste manier om deze vaardigheden te ontwikkelen is om snel de basis van informatica te leren en tijd te besteden aan het oplossen van problemen en het schrijven van code.
Gebaseerd op een software engineering curriculum en ingenieursstudenten in het algemeen, denk ik dat het moeilijker zal zijn om software engineering te doen in vergelijking met informatica.

Sugini moet benadrukken dat hoewel de basis van informatica het best in de klas kan worden bestudeerd, de praktische aard van het concept van software-engineering veel ervaring vereist. Dit kan voorkomen dat studenten de universiteit binnenkomen.

Ondanks de prestaties van Sugi en anderen op dit gebied, is het moeilijk te ontkennen dat de aanwezigheid van deze meesters en leerstoelen aan universiteiten onze benadering van informatica en de vergelijking met computerprogrammering enorm heeft beïnvloed. .

Hoewel we een veel beter idee hebben hoe we deze vraag in een academische context kunnen zien, ligt de vraag nog steeds in de categorische relatie tussen informatica en computerprogrammering. Programmeert programmeren prachtig als een subcategorie van informatica, of verschillen beide disciplines nog van elkaar?

Wat de studie ons vertelt, is dat computerprogrammering informatica is, maar met aanzienlijke verschillen het hun vakgebied is.

Tech YouTuber Silvester Morgan in zijn 2017 "Software Development? Software Development VS Computer Science" (hieronder) beschrijft de verschillen tussen de twee:

Softwareontwikkeling is het gebruik van programmeertalen en tools om iets te doen om iets te bereiken, om iets te bouwen of om door de computer gegenereerde instructies te schrijven om iets te automatiseren. Softwareontwikkeling is een computerwetenschappelijk programma.
Informatica is de basis en het fundament van software en softwareontwikkeling, maar ze zijn niet hetzelfde. U kunt een effectieve en bekwame softwareontwikkelaar worden zonder een degelijke achtergrond, maar als een echte professional is het altijd het beste om ijverig te zijn en te leren wanneer dat nodig en diepgaand is.

Hoewel Morgan programmeren ziet als een subcategorie en toepassing van informatica, beschouwt hij ze als uniek genoeg en kan hij met speciale overwegingen worden benaderd.

In 2015 merkte EdSurge in zijn artikel "Informatica gaat verder dan coderen" (hieronder) op dat Sheena Vaidyanathan stelt dat programmeren een belangrijk onderdeel is van informatica.

Problemen oplossen en coderen (of programmeren) met computerondersteunde computers gaat over het implementeren van deze oplossingen. Computerwetenschappers lijken misschien architecten om een ​​huis te ontwerpen, maar hoeven het niet te bouwen.
Het nieuwe School Science Principle van de AP School of Information weerspiegelt dit belangrijke onderscheid met zeven hoofdideeën: creativiteit, abstractie, gegevens, algoritmen, programmeren, internet, wereldwijde invloed. Codering is een van deze zeven gebieden.

In zijn artikel over onderwijs over deze onderwerpen stelt Vaidyanathan dat er veel redenen zijn om informatica in het algemeen te onderwijzen, en dat het weigeren van programmeren geen reden is om andere gebieden van de informatica te voorkomen .

Tech YouTuber, producer en schrijver Aaron Beta behandelt dit onderwerp in zijn video uit 2017, "Wat is het verschil tussen informatica en computerprogrammering?"

... ze zijn hetzelfde (computer en computersoftware) en wat is het verschil? Dus ik denk dat de gemakkelijkst te beantwoorden vraag moeilijk te beantwoorden is. Zijn deze twee termen niet hetzelfde? En het antwoord is natuurlijk: "Nee, dat zijn ze niet. Maar ze zijn onderling verbonden" ...
... een concept dat lijkt op een chemicus en een chemisch ingenieur. Computerprogrammering is een chemisch ingenieur. Het zijn mensen die onderzoek doen en het toepassen in alledaagse situaties, terwijl de informaticakant meer een scheikundige is. Ze doen onderzoek, theoretisch werk, en dan moet iemand het toepassen op de echte wereld.

Aaron in Beta zegt ook dat, hoewel de twee ruimtes van elkaar zijn gescheiden, het begrijpen van de ene de andere zal verdiepen. Een dieper begrip van de theorieën over computerbediening zal u helpen om efficiëntere code te schrijven, terwijl u weet hoe computers u kunnen helpen om computers in het algemeen te begrijpen.

Dus waar passen de Bootcamp Grads in dit alles?

Zoals je aan de bovenkant kunt zien, is de meeste discussie op het gebied van computer en software op de universiteit en laat degenen die games spelen (ikzelf) achter. Onnodig te zeggen dat, ondanks uitgebreide discussies over dit onderwerp, het waar is dat voormalige, huidige of toekomstige bootcamp-coderingsstudenten niet moeten worden ontmoedigd.

Kyle Thayer, een doctoraatsstudent aan de Universiteit van Washington, probeert dit specifieke probleem aan te pakken in zijn Medium-artikel uit 2018 "Coding Embedded Bootcamps. . Hij merkte op dat zowel bootcamp als 4-jarige informatica-graden hun doelen en sterke punten hebben:

Het doel van het CS-niveau is om studenten een overzicht te geven van het vakgebied computationele wetenschap. Het coderen van bootcamps leidt op zijn beurt mensen op over een bepaald type softwarebedrijf (meestal full-stack webprogrammering).
... Het coderen van bootcamps heeft geen betrekking op de basisprincipes van besturingssystemen en CS-programma's hebben geen betrekking op de nieuwste webtechnologieën of werken in een collectief. Universitaire programma's veranderen langzaam, maar ook de basis van de informatica verandert, de codering van opstartlampen verandert te snel en kan het hoge tempo van de technologie bijhouden. Ik verwacht dat de coderende bootcamps en CS-niveaus in de toekomst onafhankelijk of samen zullen blijven werken als een apart nummer.

Thayer zelf leert deze blog eigenlijk van de blog (hieronder gelinkt). 'Wat vinden werkgevers echt van codeerlaarzen?' De studie, genaamd Onderzoek, geeft voorbeelden van meer dan 1.000 aanwervings- en HR-managers. Zoals opgemerkt in het artikel zei 72% verrast te zijn door de bootcamp-graden "alsof ze klaar waren en goed presterende artiesten die zichzelf zien als kandidaten met informatica-opleidingen", nog eens 12% 'afgestudeerden van bootcamp zijn beter voorbereid en zelfverzekerder.' Ongeveer 17% van de respondenten "vindt dat bootcamp-alumni niet goed opgeleid zijn of dat ze geen toppresteerders zijn als kandidaten in de informatica".

80% van de geïnterviewde managers zei dat ze op een bepaald moment een afgestudeerde bootcamp hadden ingehuurd en dat ze opnieuw zouden worden aangenomen (99,8%).

Hoewel iedereen verschillende meningen heeft, kan ik nauwelijks concluderen dat deze resultaten moeten worden afgeraden voor bootcamp-programmeurs, in feite hebben ze, zoals ik al zei, mijn verwachtingen overtroffen. Deze studie levert echter geldige gegevens op: ondanks de positieve kijk op bootcamp-grads zei 41% van de ondervraagden dat ze zich comfortabeler zouden voelen bij het inhuren van iemand met een informatica-achtergrond. Dit komt grotendeels door het ontbreken van goed gereguleerde onderliggende universitaire normen en het regelgevingskader voor de bestaande coderingsbootamp. Naast vergelijkbare onderwerpen merkten respondenten op dat informatica zeer gewaardeerd wordt voor meer abstracte projecten met betrekking tot theoretische kennis over computers, terwijl vrachtwagencertificaten belangrijk zijn voor taken die een praktisch begrip van het probleem vereisen.

Dus wat heb je nodig?

Welnu, hier zijn enkele van de vragen die aan het begin zijn gesteld:

Zijn informatica en computerprogramma's hetzelfde?

Nee. Hoewel het veel dingen gemeen heeft, is het redelijk om te zeggen dat computerprogrammering en informatica fundamenteel anders zijn.

Zijn computerwetenschappen en computersoftware gerelateerd?

Ja - hoewel het verschillende categorieën zijn, passen ze allebei heel goed bij elkaar, en als je de ene kent, begrijp je de andere bijna.

Zijn computerprogramma's of vice-programma's opgenomen in de informatica?

Ja, computersoftware is een praktisch vakgebied van de informatica. Computerprogrammering kan worden beschouwd als een subnetwerk van informatica, met veel computerwetenschappen en niets te maken met computerprogrammering.

Heb ik het artikel gemist als een nieuwe student computerprogrammering die vier jaar geen doctoraat in computerwetenschappen heeft behaald?

Het hangt af van wat je doelen zijn. Als je programmeervaardigheden probeert te verwerven om op commerciële basis te werken of zoiets, dan is het antwoord waarschijnlijk nee (hoewel de weg nog steeds niet gemakkelijk is). Als je je onderzoek naar computertheorie probeert te publiceren, wil je deze universiteit later studeren.

Computerprogrammeren, is dit een kleinere kunst dan ik dacht?

Het hangt ervan af wat je denkt. Als je dacht dat "Computerprogrammering" een onderzoeksgebied is dat veel computergerelateerde vakgebieden omvat, dan vergis je je. Dit is informatica. Als je dacht dat deze programma's het einde waren van het bouwen van software, het leren verbinden met computers en het verkrijgen van een routebeschrijving, dan heb je gelijk. Als commentaar is 'kleiner' denken dan de andere meestal niet nodig en mist een specifiek contextueel perspectief dat elkaar aanvult.

Wat betekent een informatica-opleiding onder de riem van 'echte' software-ingenieurs?

Optioneel. Vier jaar informatica zal de carrièredoelen van de toekomstige programma-ingenieur en zijn / haar kennis van het vakgebied nooit schaden, maar er is geen één-op-één-relatie tussen afgestudeerde studenten en ingenieurs. Er zijn tal van succesvolle ingenieurs die hun carrière hebben opgebouwd na verschillende specialisaties (of nooit naar de universiteit zijn gegaan). Daarnaast zijn er veel studenten die zich hebben ingeschreven voor Informatica met de bedoeling ingenieur te worden en teleurgesteld zijn als de theorieën moeilijker worden.

Merk op dat computersoftware een praktisch gebied van informatica is. Het kan onafhankelijk worden bestudeerd in de informatica, maar het begrijpen van de een zal de ander enorm ten goede komen. Het definiëren van de eerste als 'beter' dan de andere is vaak een verkeerde praktijk, om precies te zijn, alvorens te beslissen welke discipline of vaardigheden het meest ten goede zullen komen. Informatica-alumni en bootcamp-alumni hebben elk hun plaats in de samenleving en het is onwaarschijnlijk dat ze ooit verloren zullen gaan.

Het schrijven van dit artikel was sterk afhankelijk van onderzoek door anderen. Als u een van deze bronnen wilt bekijken, raadpleeg dan de volgende links:

(Foto) 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/