Computer Science vs Computer Programming: Fərq nədir?

Şəkil krediti

Başlıqdakı terminlərin hər ikisinin son bir neçə ildə bir qədər atıldığı hiss olunur. Özüm Proqramlaşdırma işinə başlamış biri kimi, son zamanlarda demək olar ki, bir-birini əvəz edən "Kompüter Elmləri" və "Kompüter Proqramlaşdırma" ifadələrini eşitdim. Hər birinin əslində nə demək olduğunu biraz daha öyrənməməyim üçün üzr istəyərdim və aşağıdakı sualların bir neçəsinə cavab verim: Bunlar eyni şeydirmi? Onlar əlaqəlidir? Biri digərini ehtiva edirmi?

Niyə hər halda vacibdir?

Proqramlaşdırmağı yeni öyrənməyə başlayan bir insan kimi (və 4 illik bakalavr dərəcəsi olan, lakin Kompüter Elmində olmayan), deyə bilərəm ki, karyeramın perspektivləri baxımından mühüm əhəmiyyət kəsb etdiyini hiss edirəm. Çox vaxt proqramla əlaqəli iş elanlarına baxarkən görürəm ki, 4 illik Kompüter Elmləri dərəcəsi tələb olunur və ya əsas bir artı olaraq görülür. Bu, tez-tez vəziyyətimdəki birini özlərinə aşağıdakı sualları verməyə vadar edir: Mən gəmini qaçırdım? 'Kompüter proqramlaşdırması' düşündüyüm daha az sənətdir? Kompüter Elmləri dərəcəsi həqiqi proqram mühəndislərinin kəmərləri altında nə dərəcədədir?

Axtarışımın bir yerində olmağa başlamış olduğumu müəyyənləşdirərək, hər terminin Wikipedia tərifini yoxlayıram

Kompüter proqramlaşdırması, müəyyən bir hesablama tapşırığını yerinə yetirmək üçün icra edilə bilən bir kompüter proqramını tərtib və qurma prosesidir ... Proqramlaşdırmanın məqsədi, kompüterdə bir tapşırığın yerinə yetirilməsini avtomatlaşdıracaq təlimatlar ardıcıllığını tapmaq, tez-tez bir problemi həll etmək üçün.

Bunu Kompüter Elmləri tərifi ilə müqayisə edirəm:

Kompüterşünaslıq, məlumatlarla qarşılıqlı əlaqəli və proqramlar şəklində məlumat kimi təqdim edilə bilən proseslərin öyrənilməsidir. Rəqəmsal məlumatları idarə etmək, saxlamaq və əlaqə yaratmaq üçün alqoritmlərdən istifadə etməyə imkan verir. Kompüter alimi hesablama nəzəriyyəsini və proqram sistemlərinin dizayn təcrübəsini öyrənir.

Get-go dən, burada göstərilən əsas fərqin olduğunu görə bilərəm. Kompüter Proqramlaşdırma, müəyyən bir işi yerinə yetirən proqramların tərtib edilməsi və qurulması prosesi kimi görünür. Digər tərəfdən Kompüter Elmləri bu proseslərin əsas tədqiqidir. Mənə görə, bu müqayisəni deməyə çalışan şey, Kompüter Proqramlaşdırma tətbiq olunan texnologiya sahəsindədir, Kompüter Elmləri isə daha nəzəri.

Daha aydınlıq üçün təcrübəli proqram mühəndislərinin bu iki arasındakı fərqlərlə bağlı fikirlərinə baxıram. Davam etməzdən əvvəl qeyd etməliyəm ki, hər hansı bir şəxsin rəyindən asılı olmayaraq, bu müzakirələrin çoxuna ali təhsilin obyektivləri ilə baxıldığı və müvafiq olaraq təsir göstərdiyi görünür. "Kompüter Elmləri ilə Kompüter Proqramlaşdırmaları arasındakı fərq nədir?" Kimi suallara birbaşa cavab axtaran mənbələr olsa da, tez-tez söhbət "Hansı ixtisada kollecdə oxumalıyam: Kompüter Elmləri və ya Proqram Mühəndisliyi?" Kimi suallarla qurulur. Mənə əvvəlcədən tanımadığı bir çox məktəb bu məqalənin məqsədləri üçün Kompüter Proqramlaşdırmasına daha çox bənzədilə bilən "Proqram Mühəndisliyi" dərəcəsini təklif edir. Gözlənildiyi kimi, Kompüter Elmləri dərəcələri tələbələrə kompüterlərin əsas proseslərinin nəzəri öyrənilməsi istiqamətində daha çox yol açır, Proqram Mühəndisliyi bu prinsiplərin tətbiqi ilə bağlı təhsili təklif edir. Fərqlərindən asılı olmayaraq, bu fənlərin təəccüblü oxşarlıqları var.

Orta məktəb məqaləsində "Kompüter Elmləri VS Proqram Mühəndisliyi - Hansı əsas sizin üçün ən yaxşısıdır?" Şimali Amerikada ən yaxşı kompüter elmləri proqramlarından birinə sahib olduğuna baxın. O, magistrlərin təəccüblü bir üst-üstə düşməsinin, riyaziyyat və statistikaya olan tələblərinə görə "demək olar ki, eyni" olduğunu, eyni zamanda hər bir ixtisasın özünəməxsus keyfiyyətləri ilə öyündüyünü tapdı:

Düşünürəm ki, (hansı əsas seçilməyinizə gəlincə), bu, əsasən seçimlərinizdən asılıdır. Qısa:
Riyaziyyat, məntiq sevirsinizsə və ya CS-də süni intellekt, maşın öyrənmə, təhlükəsizlik və ya qrafika kimi ixtisaslaşmış bir sahəyə daxil olmaq istəyirsinizsə Kompüter Elmini seçməlisiniz.
Tətbiq olunan yanaşma ilə daha çox maraqlanırsınızsa və proqramın necə qurulduğunu və saxlanılacağını öyrənmək istəyirsinizsə Proqram Mühəndisliyini seçməlisiniz.

Bir proqram mühəndisi olmaq marağı ilə hansı hansının aparılacağına dair suala cavab verərkən, Sugi təəccüblü bir Computer Science ixtisasının daha yaxşı olduğu hökmü ilə cavab verir. Açıq səbəblərə görə bu, mənim üçün sürpriz oldu. Bir Proqram Mühəndisliyi dərəcəsi, Proqram Mühəndisliyi işini təmin etmək üçün ən yaxşı vasitə ola bilməz?

Bir çox məktəb proqram təminatı mühəndisliyi ixtisaslarını belə təklif etmir. Sugi, Vancouverdəki İngilis Kolumbiya Universitetinin nəzəri və proqram təminatı ilə əlaqəli bir araşdırma üçün kompüter elmlərini və kompüter texnikasına yönəlmiş Kompüter mühəndisliyini təklif etdiyinə diqqət çəkdi. Hər biri Proqram Mühəndisliyi ixtisası üzrə dərslər təklif etdi, lakin xüsusi bir ixtisas yox idi. Necə ola bilər ki, Waterloo Universiteti kimi bir proqram Proqram Engeering ixtisası təklif edə bilər, lakin bu, gələcək Proqram Mühəndisləri üçün ən yaxşı seçim deyil? Sugi daha inkişaf etdirməyi təklif edir:

Tipik olaraq, bir proqram mühəndisi namizədində axtardıqları şey, möhkəm kod yazmaq və maraqlı layihələr qurmaq, habelə məlumat strukturları və alqoritmlər daxil olmaqla kompüter elmləri əsaslarıdır.
Düşünürəm ki, bu bacarıq dəstini yetişdirməyin ən yaxşı yolu tez bir zamanda kompüter elmləri əsaslarını öyrənmək və vaxtınızı problemlərin həllinə və kod yazmağa sərf etməkdir.
Proqram Mühəndisliyi üzrə tədris planına və mühəndis mühəndisliyi tələbələrinin ümumiyyətlə nə qədər meyl etmələrinə əsaslanaraq, bunu Kompüter Elmləri ilə müqayisədə Proqram Mühəndisliyi ilə etmək daha çətin olacaq.

Sugi'nin göründüyü məqam, Kompüter Elminin əsaslarının ən yaxşı bir sinifdə öyrənildiyi bir zamanda, Proqram Mühəndisliyi sahəsindəki anlayışın tətbiq xarakteri çox təcrübə tələb edir. Bu universitet araşdırması bu sahəyə girmək istəyən tələbələr üçün əslində mane ola biləcək bir şeydir.

Sugi və başqalarının bu mövzuda baş verən hadisələrdən asılı olmayaraq, universitetlərdə bu magistratura və şöbələrin mövcudluğunun Kompüter Elmləri ilə müqayisəsi ilə yanaşı Kompüter Elminə necə baxdığımıza böyük təsir göstərdiyini inkar etmək çox çətin olaraq qalır.

Bu suala akademik bir kontekstdə necə baxacağımız barədə bir az daha yaxşı bir düşüncəmiz olsa da, sual hələ də Kompüter Elmləri və Kompüter Proqramlaşdırma arasındakı kateqoriyalı əlaqələr arasında qalır. Proqramlaşdırma Kompüter Elminin alt kateqoriyası kimi gözəl bir şəkildə yuva qurur, yoxsa iki fənn hələ də fərqlidir?

Tədqiqatın bizə dediklərindən görünür ki, Kompüter Proqramlaşdırma Kompüter Elminə aiddir, lakin kifayət qədər vacib fərqlərlə onun öz sahəsindədir.

Tech YouTuber Sylvester Morgan, 2017 videosunda “Proqram İnkişafı nədir? Proqram İnkişafı VS Kompüter Elmləri "(aşağıda göstərilən), iki arasındakı fərqləri ətraflı izah edir:

Proqram inkişafı, bir problemi həll etmək üçün bir şey qurmaq və ya bir şeyi avtomatlaşdırmaq üçün kompüterin başa düşdüyü təlimatları yazmaq üçün proqramlaşdırma dillərinin və vasitələrin istifadəsidir. Proqram inkişafı kompüter elminin tətbiqidir.
Kompüterşünaslıq bunun kökündə dayanan kök və təməl və proqram təminatıdır, lakin bunlar eyni deyil. Bu təməl bilik olmadan məhsuldar və bacarıqlı bir proqram tərtibatçısı ola bilərsiniz, amma əsl peşəkar olaraq həmişə maraqlanmağınız və ehtiyac duyduğunuz qədər və maraqlandığınız qədər bu şeylərə daha yaxşı qazmağınız yaxşıdır.

Morgan Proqramlaşdırmanı Kompüter Elminin alt kateqoriyası və tətbiqi hesab etsə də, onları ayrıca düşüncə ilə yaxınlaşmaq üçün kifayət qədər fərqli hesab edir.

2015-ci ildə EdSurge məqaləsində "Kompüter Elmləri kodlaşdırma xaricində gedir" (köşedeki) köşə yazarı Sheena Vaidyanathan, Proqramlaşdırmanın Kompüter Elminin bir neçə əsas komponentlərindən biri olduğunu vurğuladı:

Kompüterşünaslıq kompüterlərdən istifadə edərək problemlərin həlli və kodlaşdırma (və ya proqramlaşdırma) bu həllərin həyata keçirilməsidir. Kompüter alimləri evi dizayn edən memarlara bənzəyə bilər - ancaq onu tikməyə ehtiyac yoxdur.
Yeni liseydə AP Kompüter Elmləri prinsipləri kursu, yeddi böyük ideyaya: Yaradıcılıq, Abstraksiya, Məlumat, Alqoritmlər, Proqramlaşdırma, İnternet, Qlobal Təsirə diqqət yetirərək bu vacib fərqliliyi daha dəqiq əks etdirir. Kodlaşdırma (Proqramlaşdırma) bu yeddi sahədən yalnız biridir.

Vaidyanathan, bu mövzularda təhsilə dair məqaləsində bütövlükdə Kompüter Elmini öyrətmək üçün bir çox güclü səbəbin olduğunu və yalnız Proqramlaşdırmaya laqeydlik Kompüter Elmlərindəki digər sahələrin qarşısını almaq üçün bir səbəb olmadığını təsbit etdi.

Tech YouTuber, inkişaf etdirən və yazıçı Aaron Beta'nın 2017-ci ildə yaydığı "Kompüter Elmləri və Kompüter Proqramlaşdırmaları arasında Fərq Fərqi nədir" (aşağıda göstərilən) videoçarxında mövzunu müzakirə edir:

... bunlar eyni şeydir (Kompüter Elmləri və Kompüter Proqramlaşdırma) və nə fərqi var? Buna görə cavab vermək üçün ən asan sualın da cavab verə biləcəyini düşünürəm. Bu iki termin eyni şeydir? Cavab həqiqətən, "Xeyr, onlar deyil. Ancaq çox yaxından bağlandılar ”…
... sanki kimyaçı və kimya mühəndisi olduğunuz kimidir. Kompüter proqramlaşdırması bunun kimyəvi mühəndis tərəfidir. Tədqiqat aparan və gündəlik vəziyyətlərə tətbiq edən insanlardır, halbuki Kompüter Elminin tərəfi daha çox kimyaçıdır. Elmi işlər, nəzəri işlər görürlər ki, daha sonra kiməsə real dünyaya tətbiq etsinlər.

Betada olan Harun, iki sahənin ayrı olmasına baxmayaraq, birinin dərk edilməsi digərinin də dərk olunmasına xidmət etdiyini söyləyir. Kompüterlərin necə işləməsinin arxasında dayanan nəzəriyyələri yaxşı anlamaq, daha effektiv kod yazmağa kömək edə bilər, kompüterlərin izləyə biləcəyi təlimatları ən yaxşı şəkildə necə təmin edəcəyinizi bilmək, bütövlükdə kompüterləri daha dərindən başa düşməyə kömək edə bilər.

Bootcamp Grads Bütün bunlara harada uyğun gəlir?

Yuxarıda göründüyü kimi, kompüter və proqram təminatı ilə bağlı müzakirələrin xeyli hissəsi universitetdə baş verir, oyuna girənləri bir az sonra özlərini arxada qoyaraq buraxırlar. Bu mövzuda geniş müzakirə olmasına baxmayaraq, köhnə, cari və ya perspektivli kodlayan bootcamp tələbələrinin bu qədər ruhdan düşməmələrini söyləmək doğrudur.

Vaşinqton Universitetinin doktorantı Kyle Thayer, 2018-ci ildə yazdığı "Bootcamps-a qarşı kodlaşdırma və kompüter elmləri dərəcələri: İşəgötürənlər istədikləri və digər perspektivlər" adlı məqaləsində (aşağıda göstərilmişdir). Həm bootcamp, həm də 4 illik Kompüter Elmləri dərəcələrinin öz məqsəd və güclü cəhətlərini həyata keçirdiyini bildirir:

Bir CS dərəcəsinin məqsədi tələbələrə hesablama elmi sahəsi haqqında ümumi məlumat verməkdir. Kodlaşdırma bootcampları, digər tərəfdən, insanları müəyyən bir proqramlaşdırma işi (normal olaraq tam yığılmış veb proqramlaşdırma) üçün təlimə yönəldir.
... Kodlaşdırma bootcamplarının əməliyyat sistemlərinin əsaslarını əhatə etməsi çətin, CS proqramlarının isə son veb texnologiyalarını əhatə etməsi və ya çox komanda işləməsi çətin olacaq. Universitet proqramları yavaş-yavaş dəyişir, lakin kompüter elminin əsasları da dəyişir, kodlama kodları sürətlə dəyişir və texnologiya dəyişikliyinin sürətli tempi ilə ayaqlaşa bilirlər. Kodlaşdırma bootcamplarının və CS dərəcələrinin gələcəkdə ayrı-ayrı izlər şəklində müstəqil və ya ortaq olaraq davam etdirilməsini gözləyirəm.

Thayer özü bu 2017 tədqiqatını Həqiqi Blogdan (aşağıda bağlanmış) araşdırır. "İşəgötürənlər, həqiqətən, Bootcampların kodlaşdırılması haqqında nə düşünürlər?" Başlıqlı araşdırma, 1000-dən çox texniki işəgötürən və insan resursları meneceri nümunələri. Məqalədə qeyd olunduğu kimi, şokedici 72% -i bootcamp graduslarını "kompüter hazırlığı dərəcəsi almış namizədlər kimi hazırlıqlı və yüksək ifaçı olduqlarına" baxdıqlarını, əlavə 12% isə "düşünürəm ki, bootcamp məzunları daha hazırlıqlı və daha çox ehtimal olunur" cavabını verdilər. Sorğuda iştirak edənlərin təxminən 17% -i "düşünürəm ki, bootcamp məzunları kompüter elmləri namizədi kimi yüksək səviyyədə ifaçı olmağa hazır deyillər.

Sorğuda iştirak edən menecerlərin 80% -i bir anda bootcamp məzunu işə götürdüklərini və heyrətamiz bir miqdar (99,8%), bir daha işə götürəcəklərini söylədi.

Hər kəsin fikri fərqli olsa da, bu nəticələrin bootcamp proqramçıları üçün kədərlənməli olduğu qənaətinə gəlmək çətindir, əslində deyərdim ki, gözləntilərimdən artıqdır. Bu araşdırma əsaslandırıcı məlumatlarla birlikdə gəlir: bootcamp grads-lərin ümumi müsbət rəyinə baxmayaraq, araşdırmada iştirak edən respondentlərin 41% -i kompüter elmləri dərəcəsi olan birini işə götürməkdə daha rahat olacağını söylədi. Bu, əsasən universitetlərin yaxşı tənzimlənən əsas standartları və mövcud kodlaşdırma bootcamplarının tənzimləmə quruluşunun olmaması ilə əlaqədardır. Bənzər mövzuları izləmək üçün respondentlər kompüterlərin nəzəri bilikləri ilə bağlı daha çox mücərrəd layihələr üçün Kompüter Elmləri dərəcələrinin daha yüksək qiymətləndirildiyini, məsələlərin daha praktik anlaşılmasını tələb edən tapşırıqların olduğu kimi, bootcamps sertifikatlarının da dəyərli olduğunu söylədi.

Bəs görmə yolları nədir?

Yaxşı, yazının əvvəlində verilən bəzi suallara cavab verək:

Kompüter Elmləri və Kompüter Proqramlaşdırma Eynidir?

Xeyr. Ortaq bir çox şey olsa da, Kompüter Proqramlaşdırma və Kompüter Elminin tamamilə ayrı olduğunu söyləmək doğru olar.

Kompüter Elmləri və Kompüter Proqramlaşdırmaları əlaqəlidirmi?

Bəli - fərqli kateqoriyalı olsalar da, ikisinin də çox böyük üst-üstə düşməsi var və birinin bilməsi demək olar ki, digərini başa düşməyə kömək edəcəkdir.

Kompüter Elmləri Kompüter Proqramlaşdırmasına "Daxildir", yoxsa Vitsa?

Bəli, Kompüter Proqramlaşdırması Kompüter Elminin tətbiq olunan bir sahəsidir. Kompüter Proqramlaşdırması ilə heç bir əlaqəsi olmayan çoxlu sayda Kompüter Elmləri olduğu halda, Bütün Kompüter Proqramlaşdırmaları Kompüter Elmlərinin alt hissəsi hesab edilə bilər.

4 illik Kompüter Elmini almamış yeni bir Kompüter Proqramlaşdırma tələbəsi olaraq atalar sözünü qaçırdım?

Hədəflərinizin nə olduğundan asılıdır. Bir kommersiya şəraitində və ya buna bənzər bir işə düzəltmək üçün proqramlaşdırma bacarıqlarını əldə etməyə çalışırsınızsa, cavab yəqin ki, yoxdur (baxmayaraq ki, yol hələ asan olmayacaq). Kompüter nəzəriyyəsi ilə bağlı akademik tədqiqatlarınızı yayımlamağa çalışırsınızsa, çox güman ki, bir universitetdə bu mövzunu daha da öyrənmək istəyərsiniz.

Kompüter Proqramlaşdırması Düşündüyümdən Daha İncəsənətdirmi?

Bu düşündüyünüzdən asılıdır. "Kompüter Proqramlaşdırma" nın kompüterlərlə əlaqəli bir çox təhsil sahəsini əhatə edən bir araşdırma sahəsi olduğunu düşünürsünüzsə, yanılırsınız. Bu Kompüter Elmidir. Proqram qurmağın sonuna qədər ünsiyyət qurmağın və kompüterlərə təlimatların verilməsinin öyrənilməsi olduğunu düşünürsünüzsə, doğru olarsınız. Bir şərh olaraq, digərindən daha “kiçik” düşünmək ümumiyyətlə lazımsızdır və hər birini doldurduğu bənzərsiz kontekst baxımından ehtiyac yoxdur.

Kompüter Elmləri dərəcəsi "Real" Proqram Mühəndisləri Kəmərləri altındadır?

Mütləq deyil. 4 illik Kompüter Elmləri dərəcəsi, perspektivli bir proqram mühəndisinin karyera məqsədlərinə və onun sahə anlayışına heç vaxt zərər verməz, ancaq dərəcəni tutanlar və mühəndislər arasında tək-tək bir əlaqə yoxdur. Müxtəlif bir ixtisasa yiyələnəndən sonra karyeralarını quran (və ya əvvəlcə universitetə ​​daxil olmamış) çoxlu uğurlu mühəndis var. Mühəndis olmaq məqsədi ilə Kompüter Elmləri dərəcəsinə girən və işin daha çox nəzəriyyə baxımından ağır olduğu ortaya çıxanda xəyal qırıqlığına uğrayan bir çox tələbə var.

Xatırlamaq üçün, Kompüter Proqramlaşdırma Kompüter Elminin tətbiq olunan bir sahəsidir. Onu əsasən Kompüter Elmindən asılı olmayaraq öyrənmək olar, halbuki birini başa düşmək digərinə çox kömək edəcəkdir. Birini digərindən "daha yaxşı" kimi qeyd etmək ümumiyyətlə səhv bir təcrübədir və daha konkret olaraq hansı nizam-intizamın və ya bacarıq dəstinin daha çox istifadə olunacağına qərar verməzdən əvvəl vəzifəni nəzərdən keçirmək lazımdır. Kompüter elmləri məzunları və Kompüter Proqramlaşdırma bootcamp məzunlarının hər biri cəmiyyətdə öz haqlı yerlərinə sahibdirlər və ya da yaxın zamanlarda aktuallığının azalması ehtimalı azdır.

Bu yazını yazmaq başqalarının apardığı araşdırmaya çox güvənirdi. Bu mənbələrdən hər hansı birinə nəzər salmaq istəyirsinizsə, aşağıdakı linklərə müraciət edin.

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