Proqramçı kimi nə öyrənmək lazımdır. Proqram yazmağı necə öyrənmək olar

25.03.2024

Başlamaq
Haradan başlayım?
Əvvəlcə hansı proqramlaşdırma dilini öyrənməlisiniz?
Keyfiyyətli təhsil resurslarını haradan tapa bilərsiniz?
Bacarıqlarınızı necə təkmilləşdirmək olar
Başlanğıcdan orta səviyyəyə necə keçmək olar?
Təlim tapşırıqlarını və layihə ideyalarını haradan tapa bilərəm?
Proqramlarda tapşırıqları/tapşırıqları yerinə yetirmək bacarığını necə təkmilləşdirmək olar (alqoritmik düşüncə)?
Mən bir layihə üçün gözəl bir fikir düşünə bilmirəm. Məndə sadəcə yaradıcılıq çatışmır? Digər proqramçılar ilhamı necə tapırlar?
Mən öyrətmək üçün yaxşı kod və layihələrin nümunələrini haradan tapa bilərəm?
Standart universitet kompüter elmləri proqramlarında əhatə olunan mövzuları necə öyrənmək olar?
Böyük bir layihəyə necə başlamaq və ondan imtina etməmək olar?
Ümumi qorxular və narahatlıqlar
Proqram etmək üçün çox qocalmışam?
Əvvəlcə öyrənməli olduğum başqa bir şey varmı?
Riyaziyyatda yaxşı olmalıyam?
Mən Google-da çox işləyirəm və ya yenicə başlamaq istəyəndə necə edəcəyimi bilmirəm. Bu pisdir?
Proqramlaşdırma çətindir?
Təlim haqqında suallar
“Dil bilmək” və ya “proqramlaşdırmağı bacarmaq” nə deməkdir?
X dilini yenicə öyrənməyə başladım. Y dilini öyrənməyə başlamalıyam?
Eyni anda birdən çox proqramlaşdırma dilini öyrənməyə dəyərmi?
Yeni başlayanların bəzən tapşırıqlar və məşqlərlə bağlı problemləri olması pisdirmi?
Proqramlaşdırmağı öyrənmək üçün motivasiyanı necə tapmaq/saxlamaq olar?
X haradan başlamaq lazımdır?
Video oyunları etməyə haradan başlamaq lazımdır?
Veb saytları/veb proqramlarını/veb inkişaf etdirməyə haradan başlamaq lazımdır?
Mobil proqramlar/Android proqramları/iOS proqramları/Windows Phone proqramları yaratmağa haradan başlamaq lazımdır?
Hər şeyi necə avtomatlaşdırmaq olar?
Terminologiya və lüğət
Kompüter elmi (CS), kompüter mühəndisliyi (CE), proqram mühəndisliyi (SE), proqramlaşdırma və kodlaşdırma arasındakı fərq nədir?
C, C++, Objective-C və C# arasındakı fərq nədir?
Java və JavaScript arasındakı fərq nədir?
Alətlər və Versiyaya Nəzarət
Versiya nəzarəti/versiya nəzarəti nədir? Mən istifadə etməliyəm?
Versiya nəzarətindən istifadə etməyə haradan başlamaq lazımdır?
IDE nədir? Mən istifadə etməliyəm?
Kompüterlər və əməliyyat sistemləri
Hansı əməliyyat sistemindən istifadə etməliyəm?
Hansı kompüter/noutbuk almalıyam?
Karyera və iş
Proqramlaşdırma ilə çox pul qazanmaq mümkündürmü?
Kompüter elmi dərəcəsi olmadan proqramlaşdırma üzrə iş tapmaq mümkündürmü? Yoxsa heç ali təhsili yoxdur?
Bu sənayeyə necə girmək və başlanğıc mövqeyi əldə etmək olar?
Bundan sonra nə etməli?
Artıq yeni başlayan deyil
Proqramlaşdırma sadəcə bir vasitədir
Proqramlaşdırma bacarıqlarınızı necə inkişaf etdirmək olar
Müxtəlif
Uşağa proqramlaşdırmanı necə öyrətmək olar?
Açıq mənbə layihələrinə necə töhfə vermək olar?
C/Python/başqa dil haqqında sualım var.
Sualım orda deyil. Mən nə etməliyəm?
Bəli, sualım tez-tez verilən suallarda var, amma mən real adamdan cavab almaq istəyirəm.
/r/learnprogramming viki-ni necə redaktə edə bilərəm (bu tez-tez verilən suallar daxil olmaqla)?

Haradan başlayım?

Kodlamağı öyrənmək istəyirsinizsə, əvvəlcə ona niyə ehtiyacınız olduğunu başa düşsəniz yaxşı olar. Bunda YouTube videosu Kevin Cheers öyrənmə proqramlaşdırmasına necə yanaşmağı izah edən əla iş gördü.

Bundan sonra, unutma ki, kodlamağı öyrənmək üçün hər kəsə uyğun bir yol yoxdur - hər kəs bir az fərqli öyrənir və sizin üçün ən uyğun olanı tapmaq üçün sınaqdan keçməli ola bilərsiniz. Bununla belə, insanların çoxu aşağıdakı yanaşmadan istifadə edir, biz bunu çox tövsiyə edirik:

  1. Həll etməkdə maraqlı olduğunuz kiçik tapşırıq və ya layihə tapın. Həyatınızdakı kiçik bir problemi həll etmək üçün alət yaratmağa cəhd edə bilərsiniz və ya maraqlı hesab etdiyiniz proqramı sıfırdan həyata keçirə bilərsiniz. Belə bir layihə sizi kodlamağı öyrənməyə davam etməyə həvəsləndirəcək və əldə etdiyiniz bilikləri praktikada tətbiq etmək imkanı verəcək.
  2. Layihənizə ən uyğun olanı seçmək üçün müxtəlif proqramlaşdırma dilləri haqqında oxuyun. (Aşağıdakı tövsiyələrə baxın).
  3. Dildə yeni başlayanlar üçün keyfiyyətli bir resurs tapın və ona əməl edin. (Həmçinin aşağıya baxın).
  4. Bu qaynağa əlavə olaraq Google və suallar verin.
  5. Bu dildə bir neçə orijinal layihəni tamamlayın.
  1. Seçilmiş mənbəni yalnız passiv şəkildə öyrənə bilməzsiniz: məşqlər və ev tapşırığı edin; Təcrübə proqramlaşdırmanı öyrənməyin vacib hissəsidir.
  2. Lazımsız yerə bir dildən digərinə keçməyin. Birini seçin və onunla qalın, çünki proqramlaşdırma dil öyrənmək deyil, problemləri həll etmək üçündür. Problemləri həll etməyi öyrənmək çətindir və bu, yalnız daimi təcrübə ilə mükəmməlləşdirilə bilən bir bacarıqdır. Hər dəfə başqa dilə keçəndə problem həll etmə bacarıqlarını inkişaf etdirmək üçün öyrəndiklərinizi tətbiq etmək üçün vaxt itirirsiniz.
  3. Kursu bitirdikdən sonra öyrənməyi dayandırmayın. Proqramlaşdırma elə sahələrdən biridir ki, burada hər zaman öyrənmək üçün yeni bir şey var.

Nəhayət, unutmayın ki, proqramlaşdırmağı öyrənmək uzun və çətin prosesdir. Əgər çətinlik çəkirsinizsə, narahat olmayın! Bu, tamamilə normaldır və bir çox insanlar bir işə müraciət etmək və ya ciddi bir layihəyə töhfə vermək üçün kifayət qədər bacarıqlı hiss edənə qədər illərlə oxuyur və məşq edir. Xoşbəxtlikdən, sadəcə öyrənməyə başlamaq o qədər də çətin deyil.

Əvvəlcə hansı proqramlaşdırma dilini öyrənməlisiniz?

İnsanları bu sualı verməyə vadar edən iki ümumi yanlış fikir var. Birincisi, “ən yaxşı” proqramlaşdırma dilinin olması, ikincisi isə odur ki, öyrəndiyiniz ilk dil proqramlaşdırma sahəsində karyeranızı birdəfəlik müəyyənləşdirəcək.

Əslində əvvəlcə öyrənməyə mütləq dəyər verən ən yaxşı dil yoxdur və bu, gələcək karyeranızda mühüm rol oynamayacaq. Səthdə proqramlaşdırma dilləri çox fərqli görünür, lakin əsas prinsiplərin əksəriyyəti bir dildən digərinə keçir. Bundan əlavə, yeni dilləri öyrənmək zaman keçdikcə asanlaşacaq: yeni başlayanlar üçün ilk dildə əmin olmaq aylar çəkə bilər, lakin təcrübəli proqramçı bir neçə gün ərzində yeni dillə tanış olacaq.

İdeal olaraq, bütün proqramçılar müxtəlif dillərdə bacarıqlı olmalıdırlar. Bir dili mənimsədikdən sonra, əvvəlkindən əsaslı şəkildə fərqli olan başqa bir dili qəbul edə bilərsiniz. Yeni dilləri öyrəndikcə, siz daha çox alətlər arasından müəyyən bir problemin həlli üçün ən optimalını seçə biləcəksiniz və bu, yaxşı proqramçının əlamətidir. Proqramlaşdırma prinsipləri çox vacib olduğundan, yeni başlayanlara aşağıdakı cədvəldəki məşhur dillərdən biri ilə başlamağı tövsiyə edirik. Onlardan hər hansı biri ilə yeni başlayanlar dilin çox inkişaf etmiş xüsusiyyətlərinə toxunmadan sadə proqramlar yaratmağa və kodlaşdırma ilə məşğul ola bilərlər.

Əgər layihə və ya məqsəd üçün artıq ideyanız varsa, bacarıqlarınızı tapşırığa tətbiq edə bilsəniz, daha tez öyrənəcəksiniz. Aşağıdakı cədvəl ümumi layihələr üçün tövsiyə olunan dilləri göstərir.

öyrənmək istəyirəm...

  • ...iPhone proqramlarını inkişaf etdirin - Swift (daha çox)
  • ...Android üçün proqramların hazırlanması - Java (daha çox)
  • ...veb saytları yaradın - JavaScript, CSS, HTML5 (daha çox)
  • ...Windows üçün masa üstü proqramlar yazmaq - C#
  • ...2D/3D oyunları yaradın - JavaScript, C# və ya C++ (daha çox)
  • ...proqram Arduino/mikrokontrollerlər/robotlar - C
  • ...elmi/riyazi hesablama və ya verilənlərin təhlili ilə məşğul olun - Julia, Python, R və ya Matlab
  • ... avtomatlaşdırma və skript inkişafı ilə məşğul olun - bir çox dillər (Python, Ruby, Bash, Powershell, AutoHotKey...)

Əgər sizə lazım olanlar siyahıda yoxdursa, bu resurslarda digər variantları axtarın:

Hələ də qərar verə bilmirsinizsə, Python öyrənin. Bu, nəhəng icması və bir çox kitabxanası olan yeni başlayan proqramçılar üçün yaxşı, əlçatan dildir, onunla demək olar ki, hər şeyi edə bilərsiniz: oyun yaratmaqdan tutmuş evdə və ya işdə prosesləri avtomatlaşdırmağa və veb sayt yaratmaq üçün məlumatların təhlilinə qədər. Daha mürəkkəb proqramların işlənib hazırlanmasına başlamazdan əvvəl əsas prinsipləri və əsasları əhatə edən təlim resursu tapmağa çalışın. İstənilən dili öyrənməyə necə başlamaq barədə təlimatları redditin başlanğıc səhifəsində tapa bilərsiniz.

Keyfiyyətli təhsil resurslarını haradan tapa bilərsiniz?

Bacarıqlarınızı necə təkmilləşdirmək olar

Başlanğıcdan orta səviyyəyə necə keçmək olar?

Bir çox yeni başlayanlardan aldığımız tipik sual "sonrası nə olacaq?" Xüsusilə, onlar bəzi dərslər, təlimatlar, kurslar üzərində işləməyə cəhd etdikdə, lakin sonda if ifadəsinin və ya for döngəsinin necə işlədiyini başa düşmək və kompleks yaratmaq üçün öyrəndiklərini necə dəqiq tətbiq etmək arasındakı fərqi aradan qaldıra bilmədiklərində. maraqlı proqramlar.

Dərsliklərdən mürəkkəb koda keçid çox çətin ola bilər və bu, kodu öyrənənlər üçün ümumi təcrübədir. Bu fenomen bu məqalədə çox yaxşı təsvir edilmişdir. Bir çox kurslar (xüsusilə CodeAcademy kimi kommersiya proqram təminatı saytları) sizi əsasları hərtərəfli öyrənir, lakin bununla da sona çatır və yeni başlayanları suda gəzdirir.

Ancaq təslim olmasanız və çaşqınlığa qalib gəlməsəniz, getdikcə daha yaxşılaşdığınızı hiss etməyə başlayacaqsınız, bir gün fərqinə varmadan artıq yeni bir səviyyəyə çatmağa başladığınızı anlayana qədər.

Burada təslim olmamaq və bundan sonra nə etmək barədə bəzi məsləhətlər verilmişdir.

Passiv öyrənmədən aktiv öyrənməyə keçin

Öyrənmək istədiyinizi sizə öyrədəcək kurslar və dərslər almaq əvəzinə (sizin fikrincə) özünüzü öyrətməyin yollarını axtarmağa başlayın. Məsələn, bir oyun yaratmaq haqqında heç bir fikriniz yoxdursa, Google "X-də necə oyun yazmaq olar", burada "X" istifadə etməyi planlaşdırdığınız proqramlaşdırma dilidir. Əgər sizə tanış olmayan xəta mesajı alsanız, onu Googling etməyə cəhd edin. Maşın öyrənməsini mənimsəmək istəyirsinizsə, Google-a daxil olun və yaxşı kitab, dərslik və ya onlayn kurs tapın.

Siz tez-tez nə etməli olduğunuzu dəqiq izah edən dərsliklərə və ya ən azı sizə ümumi fikir və daha dəqiq axtarış sorğularını necə yazacağınıza dair məsləhətlər verən məqalələrə rast gələcəksiniz. Üstəlik, yeni bilik mənbələri axtarmaqda utanc verici bir şey yoxdur - tam əksi. Bütün proqramçılar, həm yeni başlayanlar, həm də peşəkarlar, daim iki işi görürlər: Google və təhsil.

Daim məşq edin

Proqramlaşdırma o mənada məşqə bənzəyir ki, yalnız davamlı məşqlə daha yaxşı ola bilərsiniz. Kiçik başlayın və komanda xəttində qaya kağızı-qayçı kimi sadə bir oyun yazmağa çalışın. Bitirdikdən sonra daha cəsarətli bir layihə götürməyə və onu mənimsəməyə çalışın. İstəyirsinizsə, paralel olaraq bəzi proqramlaşdırma məşqləri edə bilərsiniz.

Proqramlaşdırmanın əsas məqsədi problemlərə tətbiqi həllər hazırlamaqdır və bunu öyrənməyin ən yaxşı yolu daima böyük və kiçik problemləri həll etməkdir.

(Həmçinin tez-tez verilən suallara baxın: Təcrübə məşğələləri və layihə ideyalarını haradan tapmaq olar və tez-tez verilən suallar: Gözəl layihə ideyası ağlıma gəlmir. Məndə sadəcə yaradıcılıq yoxdur? Digər proqramçılar ilhamı necə tapırlar?)

Problemi həll etməyi öyrənin

Böyük bir layihənin və ya tapşırığın öhdəsindən gəlməyə çalışarkən, onun nə qədər böyük və qorxuducu göründüyündən məyus ola bilərsiniz. Ruhdan düşmək əvəzinə, hər bir fərdi alt tapşırıq idarə oluna bilən və mümkün görünməyə başlayana qədər tapşırığı daha kiçik və daha kiçik alt tapşırıqlara bölün (buna parçalanma deyilir).

Tutaq ki, siz qaya-kağız-qayçı oyunu yaratmaq istəyirsiniz. Onu bir neçə alt problemə bölmək olar: istifadəçidən girişi necə əldə etmək, kompüteri təsadüfi seçim etməyə necə məcbur etmək, qalibi necə müəyyənləşdirmək və oyunu necə təkrarlamaq (ardıcıl olaraq bir neçə dəfə oynamaq istəyirsinizsə). ).

Əgər bu alt problemlərin hər birini necə həll edəcəyinizə əmin deyilsinizsə, onları daha da bölməyə davam edin. Məsələn, qalibi necə təyin edəcəyinizi bilmirsinizsə, daha çox alt problemi müəyyən edə bilərsiniz: heç-heçəni necə müəyyənləşdirmək, qalibiyyətinizi necə müəyyən etmək (daş seçsəniz), qalibiyyətinizi necə müəyyənləşdirmək (əgər kağız seçin) və qalibiyyətinizi necə müəyyənləşdirmək olar (qayçı seçsəniz).

Əgər həqiqətən bir şeyi necə edəcəyinizi bilmirsinizsə (məsələn, kompüterin təsadüfi dəyər seçməsinə necə nail olmaq olar), Google-a müraciət edin. Bu misalda, "X təsadüfi dəyəri seçin" (burada X istifadə olunan proqramlaşdırma dilidir) üçün axtarış istifadə edə biləcəyiniz bir neçə fərqli metodu göstərəcək. Bəzən bir tapşırığı axtarış sistemi olmadan bir çox hissəyə bölmək olar, bəzən isə onsuz edə bilməzsiniz.

Beləliklə, Java öyrənirsinizsə və oyun yazmağı öyrənmək istəyirsinizsə, lakin haradan başlamaq və ya tapşırığı necə parçalamaq barədə heç bir fikriniz yoxdursa, Google "java oyunları dərsləri". Axtarış sizə oyun yazmağı öyrədəcək və (adətən avtomatik olaraq) oyun yazma prosesini daha kiçik alt tapşırıqlara böləcək yaxşı mənbələr tapacaq.

Əslində, bununla siz özünüzə bir tərtibatçının düşüncə tərzini aşılamış olursunuz. Əgər tapşırıq çox çətindirsə, ruhdan düşməyin. Onu daha sadə və sadə komponentlərə bölməyə davam edin və bölünməz görünən şeyləri araşdırın. Sonra yenə bir dairədə: onu parçalayırsan, google-da, sındırırsan, google-da...

Bu, kifayət qədər effektiv öz-özünə öyrənmə strategiyasıdır. Təcrübə ilə siz problemlərin necə parçalanacağını daha yaxşı başa düşməyə başlayacaqsınız, həmçinin bilik bazanızı və onları həll etməyin mümkün yolları fondunu genişləndirəcəksiniz.

Əlavə məsləhətlər üçün tez-tez verilən suallara baxın: Proqramlarda tapşırıqları/tapşırıqları yerinə yetirmək bacarığını necə təkmilləşdirmək olar (alqoritmik düşüncə).

Sistemli olun

Kodu yazarkən və sazlayarkən, heç vaxt sadəcə nəyisə sınamaq və onun təsadüfən işləməsini gözləmək vərdişinə düşməyin. Mümkün qədər aydın və ardıcıl olun - "sınaq və səhv" üsulu burada işləməyəcək.

Kod yazarkən bir dəqiqə dayanın və kağız üzərində təxmini fəaliyyət planı tərtib edin. Bəzi diaqramlar çəkməyə və ya psevdokodu qeyd etməyə çalışın. Əgər planınızı dəyişməlisinizsə (bəlkə də bunu edəcəksiniz), niyə dəyişikliyə ehtiyacınız olduğunu və yeni fəaliyyət planınızın nə olacağını düşünün. (Bu planlaşdırma mərhələsi həm də tapşırıqların parçalanması üçün yaxşı bir fürsətdir!)

Kodu düzəldərkən aydın məqsədlər qoyun. Bir alim kimi düşünməyə çalışın: ya səhvi düzəltməyə çalışmaq, ya da onun axtarışını daraltmaq üçün təcrübələr aparın və nəticələri yazın. Əgər təxminləriniz/cəhdləriniz yanlış çıxdısa və ya əvvəlcədən görmədiyiniz bir şey baş veribsə, dayanın və səbəbin nə olduğunu anlayın. Planınıza sadiq qalmağınıza kömək edərsə, təcrübələri və sınaqları notebookda qeyd edə bilərsiniz.

Səhvlər, fərziyyələriniz reallığa uyğun gəlmədikdə baş verir. Əgər bir şey düzgün görünmürsə, ona məhəl qoymayın: bunun nə olduğunu/fərziyyələrinizdən hansının yanlış olduğunu anlayana qədər axtarmağa davam edin.

Bir şey işə yarayana qədər heç nə etməyin - ardıcıl olun.

Səhvləri və ya Google-u düzəltməlisinizsə, ruhdan düşməyin

Bütün yeni başlayanlar başa düşmürlər ki, vaxtlarının çoxunu səhvləri düzəltməyə və məlumat axtarmağa sərf etmək, hətta peşəkar proqramçılar üçün də tamamilə normaldır.

Sazlama (və çətinlik!) proqramlaşdırmanın ayrılmaz hissəsidir. Uğur qazansanız, ümidsiz olmamağa və əsəbiləşməməyə çalışın. Bunu əyləncəli bir araşdırma və ya tapmaca kimi qəbul edin.

Hətta səhv kodun özü üzərində işləməyə davam etməyinizə mane olduqda belə, ardıcıl olsanız, bir qədər fərqli şəkildə olsa da, problemin parçalanmasında yaxşı təcrübə əldə edəcəksiniz.

Nəhayət, bir səhvi düzəltmək üçün sizə çoxlu saatlar lazım olsa belə, bu, sərfəli vaxt olacaq. Sazlama problemlərin həllini öyrənmək üçün ən yaxşı yollardan biridir.

(Daha çox təcrübə qazandıqca bu daha da doğru olacaq. Həyatda səriştəniz artdıqca qarşılaşacağınız səhvlərin mürəkkəbliyi yalnız artacaq. Bəzən hətta təcrübəli proqramçılar da xüsusilə problemli bir səhv tapmaq üçün aylar sərf etməli olurlar.)

Kömək istəməkdən qorxma

Nəhayət, əgər siz tamamilə ilişibsinizsə və bundan sonra nə edəcəyinizi bilmirsinizsə, kömək istəməkdən çəkinməyin!

Proqramçılar ümumiyyətlə çox həssasdırlar. Bir çoxumuz da özümüz öyrədirik və başlamağın nə qədər çətin olduğunu və ümidsiz bir şəkildə ilişib qaldığınız zaman bunun nə olduğunu başa düşürük.

Yenə də, əvvəlcə mümkün olan hər şeyi etməyə çalışın (problemi həll edin, kodu, Google və s.) və yazınızı yaxşıca düşünün. Hər hansı digər subkultura kimi, proqramçıların da öz danışılmamış qaydaları və qaydaları var. Əsas məqamlardan biri odur ki, sual aydın şəkildə təsvir edilməlidir (hətta əsas bir şey olsa belə).

Daha intensiv giriş kursu keçin

Bu bənd yalnız CodeCademi tərəfindən təklif olunanlar kimi giriş kurslarında proqramlaşdırma ilə səthi tanışlığı olanlara aiddir. Bu kimi saytlar proqramlaşdırmanın nə olduğu barədə gözəl fikir verir və bəzi əsasları öyrədir, lakin orta səviyyəyə yüksəlmək istəyirsinizsə, demək olar ki, faydasız ola bilər.

Əsas qayda: Əgər qəbul etdiyiniz proqramlaşdırma kursları xüsusilə çətin deyilsə və ya tapşırıqlar, məşqlər və ya mini-layihələrdən ibarət deyilsə, daha tələbkar kurs axtarmalısınız. Daimi təcrübə (və çətinlik!) öyrənmə prosesinin ayrılmaz hissəsidir.

  • https://www.reddit.com/r/learnprogramming/comments/3yqhuk/why_do_i_feel_like_ive_hit_a_wall_learning/

Təlim tapşırıqlarını və layihə ideyalarını haradan tapa bilərəm?

Yaxşı bir proqramçı olmağın yeganə yolunun erkən yaşda kodlamağı öyrənməyə başlamaq olduğu barədə ümumi bir mif var. Bu doğru deyil: bəzi insanlar kodlaşdırmağı erkən öyrənməyə başlasalar da (bu onlara müəyyən üstünlüklər verə bilər), əksəriyyəti kollecdə və ya daha sonra öyrənməyə başlayır.

İstənilən yaşda öyrənə bilərsiniz və diqqətinizi başqalarına yönəltmək əvəzinə özünüzə və şəxsi tərəqqi sürətinizə diqqət yetirin. İnkişaf zehniyyətini inkişaf etdirməyə və sabit düşüncə tərzindən qurtulmağa çalışın.

Əvvəlcə öyrənməli olduğum başqa bir şey varmı?

İlkin şərtlər çox azdır və ümumiyyətlə, istənilən vaxt proqramlaşdırma öyrənməyə başlaya bilərsiniz.

Bunlar yeganə həqiqətən zəruri şərtlərdir:

  • Yazmağı bacarmalısınız (Əgər siz Scratch kimi sürüklə və burax dilindən istifadə etmirsinizsə).
  • Sizin kompüteriniz olmalıdır.
  • Siz Google-da/sualların cavablarını özünüz axtara bilməlisiniz.

Sizə həmçinin riyaziyyat (əsas səviyyədə cəbr) və ingilis dili (bir çox onlayn resurs ingilis dilində olduğu üçün) bəzi biliklərə ehtiyacınız olacaq, lakin bu iki şərt olmadan edə bilərsiniz.

Yuxarıda qeyd olunanların hamısı ali məktəbdən rəsmi diplom almaq istəyənlərə aiddir. Əksər universitetlər hesab edir ki, gələn tələbələr kompüter elmləri və proqramlaşdırma haqqında heç nə bilmirlər və onları sıfırdan öyrətməyə başlayırlar (baxmayaraq ki, bəzi hallarda siz testdən keçsəniz və ya kifayət qədər bacarıq nümayiş etdirsəniz, bir və ya iki giriş kursunu keçə bilərsiniz). Əgər siz orta məktəbdə və ya daha gəncsinizsə və kollecdə kompüter elmlərini öyrənmək istəyirsinizsə, vaxtından əvvəl təhsil almaq sizə fayda verəcək - bu, sizə başlanğıc verəcək, lakin buna ehtiyac yoxdur.

Bəzi kolleclər ümumi təhsil və riyaziyyat biliyi ilə bağlı daha sərt ola bilər (məsələn, kolleclərin əksəriyyətində hesablama bacarıqları tələb olunur), lakin bunlar kollecdən kollecə dəyişir və siz iştirak etmək istədiyiniz yerlə birbaşa əlaqə saxlamalısınız. Aşağıda daha ətraflı oxuyun.

Riyaziyyatda yaxşı olmalıyam?

İsteğe bağlı: Proqramlaşdırma və kompüter elmləri geniş bir sahədir və bu sahədə yaxşı olmağın lazım olub-olmaması hansı intizam üzrə ixtisaslaşmağa qərar verdiyinizdən asılıdır.

Məsələn, proqramlaşdırmanın bəzi sahələri həqiqətən güclü riyaziyyat bacarıqları tələb edir. 2D və 3D oyunlar tez-tez vektorlardan, matrislərdən və xətti cəbrdən istifadə edir; data mining və maşın öyrənməsində - bir çox statistika anlayışları; və cəbri və əsas hesablama bacarıqlarını yaxşı bilsəniz, alqoritmik mürəkkəbliklərin öhdəsindən gəlmək daha asandır.

Ümumiyyətlə, mövzunun səviyyəsi və mürəkkəbliyi nə qədər yüksəkdirsə, güclü riyazi biliklərə ehtiyacınız olması ehtimalı bir o qədər yüksəkdir. Məqsədiniz bu mürəkkəb problemləri necə həll etməyi öyrənməkdirsə, yaxşı bir təməl sizin üçün əvəzolunmaz olacaqdır.

Bununla belə, informatika və proqramlaşdırmanın bir çox sahələri riyaziyyatdan dərin bilik tələb etmir. Həqiqətən bilməli olduğunuz yeganə şey toplama, çıxma, vurma, bölmə və bəzən bəzi əsas cəbrdir. Bir çox proqramçının karyerası boyu riyaziyyata çox az məruz qalması və ya heç bir təsiri yoxdur.

Riyaziyyatda çox yaxşı deyilsinizsə, yenə də öyrənə və inkişaf edə bilərsiniz. Axı siz proqramlaşdırmada çox da yaxşı deyilsiniz, amma yenə də kodlamağı öyrənəcəksiniz. Khan Academy-ə gedin və əsas səviyyələrdən daha təkmil səviyyələrə qədər pulsuz dərslər axtarın.

Ancaq kompüter elmləri dərəcəsi almaq istəyirsinizsə, cavab bir az fərqlidir. Bir çox məktəblərin sizi qəbul etməzdən və ya bitirməzdən əvvəl yerinə yetirməli olduğunuz xüsusi tələbləri var (hesablama kursları və s.). Kompüter elmləri bir qədər tətbiqi riyaziyyat olduğundan, məzun olmaq üçün demək olar ki, mütləq diskret riyaziyyatı öyrənməli, sübutlar yazmalı və s. Bu mövzuları öyrənmək üçün riyaziyyatda yaxşı olmaq lazım deyil (həqiqətən də hər hansı bir riyaziyyat mövzusu), lakin bəzi riyaziyyat bilikləri əlbəttə ki, sizə zərər verməyəcək və öyrənmə prosesini asanlaşdıra bilər.

Kompüter elmləri proqramının riyaziyyatla nə dərəcədə iç-içə olacağı müəssisədən müəssisəyə dəyişir. Daha çox məlumat əldə etmək üçün daxil olmaq istədiyiniz universitetin tələblərini və proqram məzmununu öyrənməlisiniz.

Ümumiləşdirsək, inkişafda uğurlu karyeraya sahib olmaq üçün mütləq riyaziyyatda yaxşı olmaq lazım deyil. Kompüter alimi olmaq istəyirsinizsə, çoxlu riyaziyyat öyrənməyə hazır olun. Daha mürəkkəb problemlər/fənlər üzərində işləmək istəyirsinizsə, riyaziyyat vəziyyətdən asılı olaraq çox faydalı bir vasitə ola bilər.

Mən Google-da çox işləyirəm və ya yenicə başlamaq istəyəndə necə edəcəyimi bilmirəm. Bu pisdir?

Biz tez-tez düşünürük ki, “əgər kifayət qədər motivasiyam olsaydı... o zaman bacarardım...” Motivasiyanı davam etdirən hərəkətdir. Əvvəlcə hərəkət, sonra motivasiya gəlir. Yaratmaq istədiyiniz kiçik, xüsusi proqramları tapın. Sizi yayındıran hər şeydən qurtulun. Reddit, Facebook və Twitter kimi saytları bloklayan brauzer uzantılarını quraşdırın. Daha səriştəli bir proqramçı olmağın nə qədər böyük hiss olacağını təsəvvür etmək üçün bir az vaxt ayırın.

Mövzu ilə bağlı son başlıqlar bunlardır:

X haradan başlamaq lazımdır?

Video oyunları etməyə haradan başlamaq lazımdır?

Müasir video oyunlar oyun mühərriklərindən istifadə etməklə yaradılır: bunlar qrafika, səs, fizika və şəbəkələr kimi mürəkkəb şeylərlə işləməyə imkan verən proqramların kitabxanalarıdır. Çoxlu kitabxanalar mövcuddur. Bununla belə, yeni başlayanlar üçün aşağıdakı kitabxanalar çox tövsiyə olunur, çünki onlar pulsuzdur və öyrənmək üçün ən yaxşı sənədlərə malikdir:

  • Unity (C#): mobil, masaüstü, brauzer/onlayn və konsol 2D və 3D oyunları üçün uyğundur
  • Construct2 (JavaScript): mobil, masaüstü və brauzer/onlayn 2D oyunlar üçün
  • Pygame (Python): masaüstü 2D oyunları üçün mühərrik
  • LÖVE (LUA): 2D masaüstü oyunları üçün uyğundur

Həmişə unutmayın ki, məqsədiniz mühərriklər deyil, oyunlar inkişaf etdirməkdir! Beləliklə, təkəri yenidən kəşf etməyə ehtiyac yoxdur.

Mühərriklər sizə gələcək oyunlar üçün qrafika və fərdi idarəetmə ilə başlamağa kömək edəcək, lakin oyunun məntiqini yazmaq üçün hələ də proqramlaşdırma dilini hərtərəfli öyrənməlisiniz, ona görə də yaxşı kitab və ya onlayn resurs götürün.

Ən əhəmiyyətli: sadə başlayın. Siz dərhal içəri atılıb xəyallarınızın oyununu yaratmaq istəyəcəksiniz, lakin unutmayın ki, dağın zirvəsinə çatmağın yeganə yolu hər dəfə kiçik bir addım atmaqdır. Çətinliyi artırmaq üçün sadə məşq oyunlarının siyahısı budur - son hədəfinizə çatmadan əvvəl onlardan bəzilərini sınayın:

  • Blackjack və ya tic-tac-toe
  • Wampus Hunt (qaydalar)
  • öz mülahizənizlə öz macəra oyunu və ya Zork klonu seçin
  • Pong, Tetris və ya Minesweeper klonu
  • Şaquli və ya üfüqi sürüşmə ilə Space Shooter
  • DOOM, Mario və ya Legend of Zelda-nın sadə klonu

/r/gamedev Tez-tez verilən suallara baxdığınızdan əmin olun, /r/gamedev-də giriş təlimatını oxuyun və /r/gamedev və /r/learnprogramming-dəki köhnə mövzuları yoxlayın.

Veb saytları/veb proqramlarını/veb inkişaf etdirməyə haradan başlamaq lazımdır?

Veb proqramlaşdırmanı öyrənməyin bir çox müxtəlif yolları var, lakin ümumiyyətlə, sizə lazım olacaq əsas bacarıqlar front-end inkişafı (istifadəçinin veb brauzerində işləyən kod) və back-end inkişafıdır (serverinizdə işləyən kod).

Tipik olaraq, insanların çoxu HTML, CSS və Javascript-i (bu qaydada) öyrənməyə başlamağı tövsiyə edir - bunlar bütün veb-brauzerlərin dəstəklədiyi və bütün veb-saytların yazıldığı üç əsas dildir.

Ətraflı məlumatı /r/webdev FAQ-da tapa bilərsiniz. Budur, yeni başlayanlar üçün başqa bir şey.

Mobil proqramlar/Android proqramları/iOS proqramları/Windows Phone proqramları yaratmağa haradan başlamaq lazımdır?

Hər bir smartfon növü üçün müxtəlif proqramlaşdırma dillərini öyrənməli olacaqsınız.

  • Android proqramları əsasən Java-da yazılmışdır - əlavə məlumat üçün FAQ /r/androiddev bölməsini oxuyun.
  • iOS proqramları Objective-C və ya Swift-də yazılmışdır - əlavə məlumat üçün /r/iosprogramming yan panelinə və onların vikisinə (GitHub-da) baxın.
  • Windows Phone proqramları C#, Visual Basic və ya Javascript-də yazılmışdır - əlavə məlumat üçün /r/WPDev-in yan panelinə baxın.

Siz həmçinin Phonegap və Titanium texnologiyalarından istifadə edərək hər üç əsas platformada işləyən proqramlar yarada bilərsiniz - proqramlar HTML, CSS və Javascript-dən istifadə etməklə bir dəfə yazılır və istənilən platformada işləyir.

Bununla belə, unutmayın ki, bu vasitələrin hamısı olmasa da, bir çoxu proqramlaşdırma təcrübəsi olanlar üçün nəzərdə tutulub. Əgər əvvəllər heç bir inkişaf etməmisinizsə, xüsusilə yeni başlayanlar üçün daha çox resursu olan bir dil öyrənməklə başlamaq istəyə bilərsiniz. Bir az təcrübə qazandıqdan və proqramlaşdırmanın əsas prinsiplərini başa düşdükdən sonra yeni dilləri öyrənmək və mobil inkişafı öyrənməyə başlamaq sizin üçün daha asan olacaq. Bölmə "Haradan başlayım?" Tez-tez verilən suallara haradan başlamaq barədə daha çox məlumat var.

Hər şeyi necə avtomatlaşdırmaq olar?

Windows üçün Autohotkey və AutoIt kimi bir neçə xüsusi proqramlaşdırma dili var.

Digər uyğun çarpaz platforma alternativi Python-dur. Darıxdırıcı materialı Python ilə avtomatlaşdırmaq heyrətamiz təhsil mənbəyidir.

MS-Office-i avtomatlaşdırmaq istəyirsinizsə, daxili proqramlaşdırma dilindən Visual Basic for Applications (VBA) istifadə edin. /r/vba subredditi VBA proqramlaşdırmasına həsr olunub.

Hansı ən yaxşısı...

Proqramlaşdırma vs. kodlaşdırma

Və nəhayət, proqramlaşdırma və kodlaşdırma var idi. Bu anlayışlar arasındakı fərq çox kiçikdir və bir çox insanlar onları sinonim kimi istifadə edirlər. Ümumiyyətlə, “proqramlaşdırma” termini “kodlaşdırma”dan daha müsbət məna daşıyır. “Mən proqramçıyam” deyirsinizsə, bu, müəyyən bir peşəkarlıq səviyyəsini nəzərdə tutur və onu göstərir ki, siz təkcə kod yaza bilməzsiniz, həm də əsasları və nəzəriyyəni dərindən bilirsiniz, müştərilərlə necə ünsiyyət qurmağı bilirsiniz komanda və s.

Əksinə, “mən kodlayıcıyam” deyirsinizsə, o zaman siz yalnız kodun hazırlanmasında, daha az dərəcədə isə başqa işlərdə iştirak etdiyinizi vurğulamış olursunuz.

Ancaq yenə də burada bu nüanslar demək olar ki, əhəmiyyətsizdir: əksər hallarda bu iki termin bir-birini əvəz edə bilər.

C, C++, Objective-C və C# arasındakı fərq nədir?

C, C++, Objective-C və C# eyni dilin variasiyaları deyil.

C bu dillərin ən kiçiki və ən qədimidir. O, əvvəlcə Unix əməliyyat sistemi üçün sistem proqramlaşdırma dili kimi yaradılmış və hələ də tətbiqi proqramlaşdırmada geniş istifadə olunur.

C++ ilkin olaraq C-yə əsaslanan çox məşhur ümumi təyinatlı proqramlaşdırma dilidir. Bəzi düzəlişlərlə, əksər C kodu (demək olar ki, hər hansı bir kod) C++ kodu kimi tərtib edilə bilər. Bununla belə, C++ dili C ilə müqayisədə dilin istifadəsini əhəmiyyətli dərəcədə dəyişən çoxlu xüsusiyyətlərə malikdir. C++ dilində C tipli kodun yazılması ümumiyyətlə təşviq edilmir.

Objective-C C dilinin ciddi supersetidir, ona görə də istənilən işləyən C kodu Objective-C kodu ilə də işləyir. Bu dil demək olar ki, C və ya C++ qədər geniş yayılmayıb və bu gün əsasən Apple-dan OS X və iOS platformalarının hazırlanmasında istifadə olunur.

C# heç bir texniki mənada C-yə əsaslanmır. C# Microsoft tərəfindən yaradılmış və Java-ya bənzər ümumi təyinatlı proqramlaşdırma dilidir. Doğma maşın kodunu tərtib edən əvvəlki üç dildən fərqli olaraq, virtual maşında (CLR) işləyən aralıq formanı tərtib edir. C# dili C və C++ dillərindən sintaksis elementlərini götürsə də (məsələn, Java), texniki cəhətdən bu dillərlə əlaqəli deyil.

Java və JavaScript arasındakı fərq nədir?

Java və JavaScript, krem ​​​​və krem ​​​​brülée ilə əlaqəli olduğu kimi əlaqəlidir.

Əvvəlki suala bənzər, texniki baxımdan Java və JavaScript heç bir şəkildə əlaqəli deyil. Onların bəzi ümumi sintaksisi var, çünki hər ikisinin əcdadı C idi, amma bu qədərdir. Vikipediyada adlardakı bu oxşarlığın haradan gəldiyi ilə bağlı yaxşı izahat var: https://ru.wikipedia.org/wiki/JavaScript#JavaScript_%D0%B8_Java.

Alətlər və Versiyaya Nəzarət

Versiya nəzarəti/versiya nəzarəti nədir? Mən istifadə etməliyəm?

Versiyaya Nəzarət Sistemi (VCS) kodunuzdakı dəyişiklikləri izləyən və səhvləri düzəltmək və zamanla dəyişənlərə baxmaq kimi faydalı funksiyaları təmin edən bir vasitədir. Müasir paylanmış sistemlər digər proqramçılarla eyni kod üzərində işləməyi də asanlaşdırır. Və bəli, siz mütləq versiya nəzarətindən istifadə etməlisiniz!

Ən populyar iki paylanmış sistem Git və Mercurialdır; Hansı birini istifadə etmək sizin şəxsi üstünlüklərinizdən asılıdır, lakin biz onlardan birini tövsiyə edirik.

Versiya nəzarətindən istifadə etməyə haradan başlamaq lazımdır?

Mercurial haqqında yaxşı və qısa dərslik - .

Kompüterlər və əməliyyat sistemləri

Hansı əməliyyat sistemindən istifadə etməliyəm?

Bir çox yeni başlayanların ümumi sualı hansı əməliyyat sisteminin istifadə etmək üçün daha yaxşı olmasıdır: Windows, Mac və ya Linux.

Bunun əslində heç bir əhəmiyyəti yoxdur: bu günlərdə mövcud alətlərin keyfiyyəti və imkanları bütün platformalarda təxminən bərabər olacaq və istənilən layiqli proqramlaşdırma dili bütün əməliyyat sistemlərində istifadə edilə bilər.

Yenə də gec-tez siz hər üç əməliyyat sistemi ilə az-çox tanış olmalısınız ki, yeni OS ilə qarşılaşdığınız zaman (məsələn, başqa bir maşına keçdiyiniz zaman və ya yeni işə başlayanda) tam çaşqınlıq yaşamayasınız.

Bu qayda üçün iki əsas istisna var:

  • Windows üçün inkişaf etdirmək istəyirsinizsə, Windows kompüteri alın.
  • Mac və ya iOS üçün inkişaf etdirmək istəyirsinizsə, Mac alın.

C# kodunu digər platformalarda işlətmək üçün bəzi yaxşı variantlar var, lakin bəzi Microsoft və .NET alətləri ilk növbədə Windows mərkəzlidir.

İstənilən kompüterdə Mac və iOS proqramlarını inkişaf etdirə bilsəniz də, tətbiqinizi tərtib etmək və App Store-a yükləmək üçün Mac-da Xcode-dan istifadə etməli olacaqsınız.

Nəhayət, qeyd etmək lazımdır ki, bu və ya digər əməliyyat sistemini seçmək sizin hərəkətlərinizi məhdudlaşdırmır: hər zaman başqa bir əməliyyat sistemi quraşdırılmış virtual maşını işlədə bilərsiniz. Məsələn, əgər mənim kompüterimdə Windows quraşdırılıbsa, mən asanlıqla Linux virtual maşını qura və onun mövcud Windows-a müdaxilə etməsindən qorxmadan istifadə edə bilərəm.

Hansı kompüter/noutbuk almalıyam?

Ümumiyyətlə, bu da kritik deyil: istənilən noutbuk və ya orta səviyyəli kompüter bunu edəcək. Əgər artıq kompüteriniz və ya noutbukunuz varsa, sadəcə ondan istifadə edin - yenisini almağa ehtiyac yoxdur. Demək olar ki, hər hansı bir mövcud kompüterdə mürəkkəb və maraqlı proqramları proqramlaşdırmağı və yazmağı öyrənə bilərsiniz.

Əgər həqiqətən pula ehtiyacınız varsa və ya işləyən kompüteriniz yoxdursa, hər zaman istifadə edilmiş kompüterləri Craigslist kimi saytlarda tapa və ya soruşa bilərsiniz. Əgər sadəcə təhsil alacaqsınızsa, hətta köhnə kompüterdə də çox uzaqlara gedə bilərsiniz.

Amma proqramlaşdırma üçün istifadə etmək istədiyiniz yeni kompüter almaq lazımdırsa, ilk növbədə prosessora, operativ yaddaşın və sərt diskin miqdarına diqqət yetirin. Mümkünsə, bu və ya daha yaxşı xüsusiyyətləri olan bir kompüter almağa çalışın:

  • CPU Intel i5 (3.0+ GHz)
  • RAM 4+ GB
  • sərt disk 200+ GB
  • (isteğe bağlı) bərk hal sürücüsü

Mümkünsə, sabit diskdən daha güclü prosessor və daha çox RAM olan bir cihaza üstünlük vermək daha yaxşıdır: əlavə prosessor gücü heç vaxt zərər vermir. Əksinə, proqramlaşdırma ümumiyyətlə çoxlu disk sahəsi tələb etmir - əgər siz şəkillər və videolarla işləməyinizə və ya maşın öyrənməsi və s. Ancaq belə şeylər buludda saxlanıla bilər.

Əgər siz stolüstü kompüter alacaqsınızsa, vacib olan yeganə xüsusiyyətlər bunlardır. Əgər mobillik sizin üçün vacibdirsə, noutbuk alın və kifayət qədər böyük ekrana və asan proqramlaşdırıla bilən klaviaturaya sahib olduğunuzdan əmin olun. Bununla birlikdə, noutbuklarda istifadə rahatlığı və daşınma arasında müəyyən bir tarazlıq var:

  • Ekran nə qədər geniş olsa, batareyanın ömrü bir o qədər qısa olar (lakin təyin etdiyiniz parlaqlıq nə qədər az olarsa, batareyanın ömrü də bir o qədər uzun olar)
  • Ekran nə qədər kiçik olsa, ona bir o qədər az yerləşəcək və bir o qədər tez-tez pəncərələr/masaüstü kompüterlər arasında keçid etməli olacaqsınız. İdeal olaraq, iş üçün rahat iki pəncərə yerləşməlidir.
  • Noutbuk nə qədər geniş olsa, bir o qədər ağırdır və onu daşımaq bir o qədər çətindir.

Noutbukdan necə istifadə etməyi planlaşdırdığınızı da düşünməyə dəyər. Bütün günü masanın üstündə oturacaq, yoxsa onu özünüzlə aparacaqsınız, yoxsa onunla gəzintiyə çıxacaqsınız?

Mümkünsə, seçdiyiniz hər bir noutbuku sınaqdan keçirin. Məsələn, onlardan birinin klaviaturasında yazmaqdan narahatsınızsa və buna öyrəşə bilmirsinizsə, kağız üzərində nə qədər cəlbedici görünsə də, belə bir noutbukdan imtina etmək daha yaxşıdır.

Əlavə məlumat və daha ətraflı yardımı aşağıdakı alt redditlərdə tapa bilərsiniz - onlar daha fərdi məsləhətlər təklif edirlər:

Həmçinin, Chromebook-ların alınmasını diqqətlə nəzərdən keçirin: ya onları fərdiləşdirməli, ya da onlayn redaktorlar və IDE-lərdən istifadə etməli olacaqsınız, həmçinin İnternetə daimi çıxışınız lazımdır. Ətraflı məlumatı linklərdə oxuyun:

Daha da yaxşısı, əsas proqramlaşdırma alətiniz kimi planşet və ya smartfonlardan istifadə etməyiniz barədə düşünməlisiniz. Planşetlərdə və ya smartfonlarda proqramlaşdırma müəyyən səylə mümkün olsa da, proqram təminatının hazırlanması demək olar ki, həmişə klaviaturadan istifadə edərək masaüstü və ya noutbuklarda həyata keçirilir.

Müəyyən bir istehsalçı seçməklə bağlı məsləhətə ehtiyacınız varsa, yalnız unutmayın ki, kompüteriniz proqramlaşdırmaq üçün heç bir super güc tələb etmir: yaxşı ümumi təyinatlı kompüter proqramlaşdırmada yaxşı olacaq. (Bu, yaxşı noutbuk axtarmağı asanlaşdırır, çünki xüsusi olaraq proqramçılar üçün nəzərdə tutulmuş cihaz seçmək məcburiyyətində deyilsiniz.)

Son bir xəbərdarlıq: Yalnız maşın öyrənməsinə, təbii dillərin işlənməsinə və ya qrafikaya (oyunların inkişafı daxil olmaqla) diqqət yetirmək istəyirsinizsə, GPU ilə cihaz almağı düşünün. Bütün bunlar üçün bu isteğe bağlıdır, lakin kodu tez-tez GPU-larda işləmək üçün yazmaqla sürətləndirmək olar.

Maşın öyrənməsi və ya təbii dil emalı ilə daha çox maraqlanırsınızsa, nəzərə alın ki, nisbətən aşağı qiymətlərlə Veb Xidmətləri (AWS) və ya Google Hesablama Mühərriki (GCE) kimi xidmətlərdən istifadə edərək buludda GPU-ları olan maşınları icarəyə götürə bilərsiniz.

Karyera və iş

Proqramlaşdırma ilə çox pul qazanmaq mümkündürmü?

Bəlkə də, ancaq yaxşı bir proqramçı olsanız. Santexnik və ya başqa bir sahədə çalışaraq çoxlu pul qazana bilərsiniz. Ancaq heç bir pul qazanmaya bilərsiniz. Proqramçı peşəsi buna yüz faiz zəmanət vermir.

Kompüter elmi dərəcəsi olmadan proqramlaşdırma üzrə iş tapmaq mümkündürmü? Yoxsa heç ali təhsili yoxdur?

Kompüter elmləri dərəcəsi olmadan, proqramçı kimi işə düzəlmək heç bir dərəcəyə sahib olmadan da mümkündür, baxmayaraq ki, perspektivlər daha pis olacaqdır. Biz mütləq universiteti tərk etməyi məsləhət görmürük. Proqramlaşdırma sizin üçün deyilsə, ixtisasınızı dəyişin. Sizin üçün təhsilinizi tamamlamaq iş axtarışınızda uğur şansınızı artıracaq.

Müxtəlif karyera suallarına daha ətraflı cavabları /r/cscareerquestions-da soruşmaqla tapa bilərsiniz.

Bu sənayeyə necə girmək və başlanğıc mövqeyi əldə etmək olar?

Bu subreddit mövzudan bir qədər kənardır: karyera ilə bağlı suallar ən yaxşı şəkildə /r/cscareerquestions-da verilir və onların əhatəli viki səhifəsində axtarılır.

Ancaq ümumiyyətlə, insanların əksəriyyətinin cavabları aşağıdakılarla bağlıdır:

  • Potensial işəgötürənlərə göstərə və CV-nizə əlavə edə biləcəyiniz orijinal layihələrin cəlbedici portfelini yaradın. Bunlar məktəb layihələriniz, müstəqil yan layihələr, məktəb və universitetdəki klubların layihələri, tədqiqat və ya könüllü layihələr, təcrübə zamanı və ya əvvəlki işlərdə həyata keçirilən layihələr və s. ola bilər. Güclü portfel işəgötürənlərə problemləri həll etmək üçün proqramlaşdırma dillərindən, kitabxanalardan və texnologiyalardan uğurla istifadə edə biləcəyinizi göstərir və onlara bacarıq səviyyənizi daha dəqiq qiymətləndirmək imkanı verir.
  • Tam ştatlı bir iş deyil, ilk növbədə təcrübə axtarmaq daha yaxşıdır. Təcrübə almaq daha asandır və onlar adətən layiqli ödəyirlər.
  • Siz mütləq məlumat strukturları və alqoritmləri yaxşı başa düşməlisiniz. Əksər müsahibələr, xüsusən də giriş səviyyəli vəzifələr üçün, kodlaşdırma tapşırıqlarını əhatə edir - ya vebsaytda, ya da lövhədə canlı olaraq.

Bundan sonra nə etməli?

Artıq yeni başlayan deyil

Elə bir vaxt gəlir ki, bütün proqramçılar böyüyür və sonra onlar problemlə - real dünya ilə üzləşirlər. Real dünyada heç kim sənin əlindən tutmur və səni həyat boyu istiqamətləndirmir. İndi təkbaşına irəli getməyi öyrənməlisən. Bu nöqtəyə çatmısınızsa, çox güman ki, sadəcə proqramlaşdırma, veb inkişafı, alqoritmlər və ya başqa bir şey olsun, bir növ maraq sahəsini inkişaf etdirmisiniz. Ola bilsin ki, proqramlaşdırma ilə bağlı digər sahələri araşdırmaq və ya bundan sonra nə edəcəyinizi anlamaq istərdiniz.

Proqramlaşdırma sadəcə bir vasitədir

Proqramlaşdırmaya başlayanda ikinci reddit və ya inanılmaz qrafika yaratmağı və ya müxtəlif alqoritmləri necə işlətməyi öyrənməyin gələcəyi ilə maraqlanmış ola bilərsiniz. Yaxşı, əgər özünüzü artıq başlanğıc hesab etmirsinizsə, proqramlaşdırma alətlər arsenalınıza əlavə edilmişdir. İndi ondan necə istifadə etməyi öyrənməli və bacarıqlarınızı möhkəmləndirməlisiniz. Çox tezliklə siz bunları edə biləcəksiniz və onlar haqqında hər şeyi öyrənəcəksiniz.

Proqramlaşdırma bacarıqlarınızı necə inkişaf etdirmək olar

Proqramlaşdırma ilə məşğul olan bir çox insanlar kifayət qədər məlumatlı olmadıqlarından qorxmağa başlayırlar. Buna görə də çoxları öz bacarıqlarını təkmilləşdirməyə çalışırlar. Ancaq bu mərhələdə bunu etmək üçün yalnız bir yol var - təcrübə. Təlim üçün çoxlu saytlar və mənbələr var, məsələn, /r/dailyprogrammer, CodeWars, HackerRank, Project Euler və bir çox başqaları.

Müxtəlif

Uşağa proqramlaşdırmanı necə öyrətmək olar?

Bu və ya digər formada bu sual burada tez-tez gündəmə gəlir. Özünüzü göndərməzdən əvvəl bu sorğuya baxın - o, artıq cavablandırılmış ola bilər. Əgər yeni sual göndərmək qərarına gəlsəniz, lütfən, öyrənmə ehtiyaclarınızın əvvəllər dərc edilmiş suallardan nə ilə fərqləndiyini aydın şəkildə izah etməyə çalışın.

Scratch 8-16 yaş arası uşaqlar üçün Massaçusets Texnologiya İnstitutu tərəfindən hazırlanmış heyrətamiz bir vasitədir. Əlavə proqram quraşdırmadan brauzer vasitəsilə işləyir.

Siz həmçinin /r/ProgrammingForKids-ə baxa bilərsiniz - bu məsələyə həsr olunmuş subreddit. Çoxlu resurs var.

Açıq mənbə layihələrinə necə töhfə vermək olar?

GitHub-da /r/learnproqramlaşdırma qrupuna töhfə verin! O, jfredett tərəfindən xüsusi olaraq naşı proqramçıların təcrübəli proqramçılar və mentorlarla qarşılıqlı əlaqə quraraq açıq mənbə inkişafı öyrənə biləcəyi layihələrə ev sahibliyi etmək üçün yaradılmışdır.

Qrup bu yaxınlarda yaranıb, bir neçə nəfər onu təbliğ edir.

Əgər sualınız həqiqətən də əhəmiyyətli dərəcədə fərqlidirsə və bu tez-tez verilən suallardakı cavablar sizin üçün işləmirsə, xahiş edirik postunuzda tez-tez verilən sualları oxuduğunuzu göstərin və sualınızın necə fərqli olduğunu və mövcud cavabların sizə nə üçün kömək etmədiyini dəqiq yazın. Bu o deməkdir ki, siz sualınızın cavabını tapmaq üçün artıq iş görmüsünüz və ona daha dəqiq cavab verməyə kömək edəcəksiniz.

/r/learnprogramming viki-ni necə redaktə edə bilərəm (bu tez-tez verilən suallar daxil olmaqla)?

Girişinizi alqışlayırıq, lakin redaktəyə uyğun olmaq üçün sizə ən azı 30 gün köhnə və bu subredditdə ən azı 200 şərh karması olan hesab lazımdır (bütövlükdə reddit deyil). Bu şərtlər yerinə yetirildikdən sonra viki başlığında “redaktə et” düyməsi görünəcək. Əgər vaxtınız və ya karmanız azdırsa, sadəcə olaraq əlavə etmək istədiyiniz mətnlə mövzu ilə bağlı müntəzəm yazı yaradın: əgər o keyfiyyətlidirsə, redaktə edə bilən kimsə onu demək olar ki, sizin üçün dərc edəcək.

İqtisadiyyat və bütün həyatımız hər gün daha çox rəqəmsallaşır və əmək bazarı veb-saytlar və proqram məhsulları yaratmaq üçün getdikcə daha çox bacarıqlı insan tələb edir. Ölkənin proqramçılara və tərtibatçılara ehtiyacı var, şirkətlər ağıllı mütəxəssislərə layiqli maaşlar verməyə və onların işi üçün ən rahat şəraiti, o cümlədən çevik iş saatlarını və uzaqdan işləmək bacarığını yaratmağa hazırdırlar.

Tanınmış Rusiyanın İT şirkətlərində sıfırdan ilk staj və ilkin işə başlayana qədər veb proqramlaşdırma dillərinin əsaslarını öyrənən yeni başlayanlar üçün 10 ən yaxşı onlayn kursun şəxsi reytinqini oxuyun. Onlar rus dilində, o cümlədən məktəblilər və yeniyetmələr üçün mövcuddur. Budur HTML və CSS-dən 1C, PHP, Java, Python, Ruby və C#-a qədər ən populyar dillər üzrə kurslar. Məqaləni sona qədər oxuyanlar pulsuz kurslara və intensiv proqramlaşdırmaya keçid əldə edəcəklər :)

1. SkillFactory tərəfindən Veb Tərtibatçıları üçün Python

Data Science, maşın öyrənməsi və süni intellekt son illərin ən isti texnologiya tendensiyalarıdır. Proqramçı olmaq istəyənlər ilk növbədə Python kimi bir dili mənimsəməyə daha yaxından nəzər salmalıdırlar, çünki o, bu sahələrdə ən çox istifadə olunur.

SkillFactory, Lamoda şirkətinin R&D proqramçısı İqor Bosyagin ilə birlikdə Django çərçivəsi olan Python-da proqramlaşdırmanın əsaslarını mənimsəməyə və 6 ay ərzində ilk tətbiqlərinizi inkişaf etdirməyə kömək edəcək. Sizi faydalı əlaqələrlə görüş, kursun sonunda imtahan, sertifikat, eləcə də təcrübə və işlə təminatla bağlı köməklik gözləyir. Kurs dünyanın istənilən yerindən mövcuddur.

Kursun qiyməti kursda yer bron etmə tarixindən və mövcud yerlərin sayından asılı olaraq 33,900 ilə 48,900 arasındadır. Bloq saytının oxucusu olaraq, ərizəni doldurduqdan sonra menecerə igaryoh kod sözünü deməklə 10% endirim əldə edə bilərsiniz. Proqram haqqında ətraflı oxuyun və bu linkdən istifadə edərək kursa yazın.

3. GeekBrains-dən peşəkar veb tərtibatçısı

GeekBrains Mail.ru Group ekosisteminin bir hissəsinə çevrilmiş təhsil layihəsidir və kadrları ilk növbədə bu İT nəhənginin ehtiyacları üçün, çox vaxt öz mütəxəssisləri tərəfindən hazırlayır. Sıfırdan veb tərtibatçısı peşəsi burada ayda demək olar ki, 8 min rubla 10 ay ərzində vebinarlar vasitəsilə verilir.

Bu, ən bahalı seçimdir, lakin peşə ilə yanaşı, pulsuz ingilis dili kursları və məlumat bazaları bonus olaraq daxildir. Mail.ru Group və ya onun tərəfdaşları üçün işləmək istəyirsinizsə, o zaman GeekBrains onlayn universitetinə daxil olun .

Format: vebinarlar + ev tapşırıqlarının nəzərdən keçirilməsi.

Müddət: 10 ay.

Qiymət: ayda 7997 rubl.

4. Netology-dən veb tərtibatçısı peşəsi

Veb tərtibatçısı müxtəlif alətlərin mənimsənilməsini tələb edən ən populyar və uyğun peşədir. Onlayn universitetlər bu peşəni 8-12 ay ərzində təqdim edirlər. Müəllimlər tanınmış İT şirkətlərinin təcrübəli praktikantlarıdır və tələbələrə real layihələr üzərində təcrübə keçəcək bacarıqlar təqdim edirlər. Nəticədə məzunlar bacarıq, təcrübə, diplomlar, portfolio layihələri və tərəfdaş şirkətlərdə mümkün işlə təmin olunurlar.

Netologiyada bu ixtisasa “full-stack developer” deyilir. Bu o deməkdir ki, bu kursun məzunu “açar təslim” adlanan veb-sayt və ya veb tətbiqi əvvəldən sona qədər yarada biləcək. Proqram üçün qeydiyyatdan keçə bilərsiniz.

Format

Müddət: 8 ay.

Qiymət

Həmçinin oxuyun:

5. Skillbox-dan veb tərtibatçısı peşəsi

Skillbox-da oxşar ixtisas üzrə təlim 12 ay davam edir, lakin daha ucuz başa gələ bilər. Burada canlı vebinarların əvəzinə video mühazirələrin yazılarına baxırsınız, lakin istənilən vaxt. Təfərrüatlar və qeydiyyat bu linkə daxil olun.

Format: video mühazirələr + ev tapşırığının video təhlili.

Müddət: 12 ay.

Qiymət: 39.000 - 50.000 rub. və ya illik ödənişlər 3900 rubl. aylıq.

6. Netology-dən Professional Frontend developer

Frontend tərtibatçısı saytın görünüşünü və onun interaktiv elementlərini inkişaf etdirməyə diqqət yetirir və praktiki olaraq server hissəsi ilə ("başlıq altında" olan hər şey) məşğul olmur. Netologiya üzrə “ön tender” olmaq üçün təlim 8 ay davam edir. İxtisas, təlim proqramı və qeydiyyatla bağlı təfərrüatlar bu linkə daxil olun.

Format: vebinarlar + ev tapşırığı ilə bağlı rəy.

Müddət: 8 ay.

Qiymət: 48,900 - 62,900 rub. və ya illik ödənişlər 5240 rubl. aylıq.

7. GeekBrains-dən Professional Frontend Developer

7 ay ərzində siz GeekBrains-də qabaqcıl inkişaf etdirici ola bilərsiniz. Qiymət təxminən Netology ilə eyni olacaq. Amma taksit planı 12 aya deyil, 7 ayadır. Təfərrüatlar və qeydiyyat.

Format: vebinarlar + ev tapşırıqlarının icmalı.

Müddət: 7 ay.

Qiymət: RUR 7,141 aylıq.

8. Skillbox-dan sıfırdan PRO-ya qədər PHP tərtibatçısı

PHP tərtibatçıları, ilk növbədə, hazırda oxuduğunuz sayt da daxil olmaqla, əksər müasir veb-saytların əhatəsində olanlar üzərində işləyirlər. Skillbox-da bu sahə əsasən Rusiyanın aparıcı veb inteqratoru olan QSOFT-un mütəxəssisləri tərəfindən tədris olunur. Bunu bütün il ərzində öyrədirlər, lakin nisbətən münasib qiymətə. Bu linkdən istifadə edərək kursa yazıla bilərsiniz.

Format: video mühazirələr + ev tapşırığının video təhlili.

Müddət: 12 ay.

Qiymət: 29.000 - 50.000 rub. və ya illik taksit planı 2900 rub. aylıq.

GeekBrains sizə eyni sahəni cəmi altı ay ərzində öyrətməyə hazırdır, lakin dəyəri Skillbox-dan daha baha ola bilər. Təfərrüatlar və qeydiyyat. Netologiyada PHP və verilənlər bazası üzrə kurs 2 ay davam edir və 22,00 - 25,000 rubl təşkil edir, lakin bu məlumat məqaləni diqqətlə oxuyanlar üçündür. Link buradadır.

Həmçinin oxuyun:

9. Netology-dən Python tərtibatçısı

Netology-dən Python öyrənmək üçün daha dərin proqram - bu, demək olar ki, bir il davam edir və HTML/CSS, JavaScript və Django sahələrində modulları ehtiva edir. Təfərrüatlar.

Format: vebinarlar + ev tapşırığı ilə bağlı rəy.

Müddət: 11 ay.

Qiymət: 48,900 - 62,900 rub. və ya illik ödənişlər 5240 rubl. aylıq.

10. Skillbox-dan sıfırdan mobil tərtibatçı

İnsanlar getdikcə daha çox mobil cihazlardan istifadə edirlər, bu səbəbdən mobil inkişaf işlərinin əhatə dairəsi və mobil proqram tərtibatçılarına tələbat artır. Skillbox sıfırdan başlayanlar üçün mobil Java/iOs/Android inkişafı üzrə geniş bir illik kurs təklif edir. Bununla bağlı təfərrüatları oxuyun və burada qeydiyyatdan keçin, Java proqramçısı. Və eyni şirkətə Skillbox-dan Java developer kursu əlavə edəcəyik.

Və nəhayət, desert üçün qalan şey pulsuzdur. Aydındır ki, hər kəsin pulla oxumaq imkanı yoxdur, lakin pulsuz təhsil almaq imkanı rəsmi olaraq tamamilə mümkündür və 17-ci bənd bundan ibarətdir.

Pulsuz proqramlaşdırma kursları

Bu gün öz-özünə öyrədilmiş tərtibatçıların bir çoxu təlimlərinə veb proqramlaşdırmanı, xüsusən də hipermətn işarələmə dilini (HTML) və kaskad üslub cədvəllərini (CSS) öyrənməklə başladılar. Netology sizə tanınmış İT şirkətlərinin təcrübəli tərtibatçılarının rəhbərliyi altında iki həftə ərzində bu mövzuları pulsuz öyrənmək imkanı verir. Proqramlaşdırma səyahətinizə yenicə başlayırsınızsa, bu linkdən istifadə edərək qeydiyyatdan keçin.

Netology-dən proqramçılar üçün digər ödənişli kurslar bu linkdə və GeekBrains-dən burada.

P.S.: Moskvada, Sankt-Peterburqda, Yekaterinburqda, Minskdə, Novosibirskdə, Nijni Novqorodda, Krasnodarda və Rusiyanın və MDB-nin digər şəhərlərində proqramlaşdırma kursları axtaran hər kəsə hələ də onlayn kursları seçməyi tövsiyə edirəm, çünki bu, onlayn texnologiyalardır. münasib qiymətə (icarə xərclərinin olmaması səbəbindən) ən keyfiyyətli təhsil məhsullarını yaratmaq, həmçinin ən yaxşı müəllimləri və işəgötürənləri paytaxtlardan ən ucqar rayonlardan olan tələbələr və gələcək işçilərlə əlaqələndirmək. Bundan əlavə, onlayn öyrənmə bacarıqları xarici məktəblərdə distant təhsil üçün də faydalı olacaq.

Mən inkişaf, təhsil, startaplar, məzmun marketinqi və biznes xidmətləri haqqında yazıram.

Pabunə olun İnstaqramda mənə, əvvələylənmək

Öz-özünə proqramlaşdırmanı öyrənməklə proqramlaşdırma karyerasına necə başlamaq olar? Bu, demək olar ki, bütün yeni başlayanlar tərəfindən verilən bir çox forumlarda ən populyar suallardan biridir.

Birincisi, siz əsas prinsipi öyrənməlisiniz, ən vacibi - İnternetdən, müxtəlif ədəbiyyatdan və elmi məqalələrdən istifadə edərək, özbaşına məlumat axtarmağı öyrənin. Bu bacarıq olmadan təkbaşına nəyisə öyrənmək mümkün deyil, xüsusən də proqramlaşdırma. İnternetdə sıfırdan öyrənmək üçün çoxlu saytlar, kitablar və proqramlar var, lakin dərhal oturub bu yeni məlumat kütləsinə qərq olmaq yeni başlayanlar üçün ən asan yol deyil. Bu vəziyyətdə təcrübəli mentor tapsanız çox faydalı olacaq. O, məsləhət verəcək və çətin vəziyyətdə düzgün qərar qəbul etməyə və nəyisə izah etməyə kömək edəcək. Belə bir mentoru tanış proqramçılar vasitəsilə, eləcə də müxtəlif tematik forumlarda və onlayn konfranslarda tapmaq olar.

Bir başlanğıcın atmalı olduğu növbəti addım onun üçün düzgün proqramlaşdırma dilini seçməkdir. Son məqsədi bilmək bu məsələdə çox kömək edir - niyə proqramlaşdırma və müəyyən bir dili öyrənmək lazım idi. Əgər belə bir məlumat yoxdursa, onda dil seçərkən aşağıdakı prinsipləri rəhbər tuta bilərsiniz: giriş səviyyəsinin aşağı olması - proqramlaşdırma istəyini itirməmək üçün, bazarda yaxşı vakansiyaların olması - təlimdən sonra yaxşı maaşlı iş tapa bilər. Bu addıma çox da bağlı qalmamalısınız, çünki bu “ideal” dili axtarmağa çox vaxt sərf etməkdənsə, “istənilən” dillə başlamaq daha yaxşıdır. Axı, sonradan bir dilin əsas biliklərini mənimsədikdən sonra heç bir çətinlik çəkmədən digərini öyrənməyə keçmək mümkün olacaq.

İndi ən vacib məqam təcrübədir. Bir çox yeni insanlar buna ləng gəlir. Çox çətin görünsə də, öz kodunuzun ilk sətirlərini mümkün qədər tez yazmağa başlamaq vacibdir. Siz dərsliklərdən bütün tapşırıqları yerinə yetirə, oradan nümunələri təkrar çap edə və mənimsədikdən sonra öz fikirlərinizlə çətinləşdirə bilərsiniz. Siz həmçinin öz layihələrinizi əldə etmək üçün qeydiyyatdan keçməyə cəhd edə bilərsiniz. Bəli, yeni başlayanlar üçün sifarişləri axtarmaq və yerinə yetirmək çox çətin olacaq, lakin sonradan işəgötürənə göstərməkdən utanmayacaq bir real təcrübə olacaq.

Yuxarıda göstərilənlərin hamısına əlavə olaraq, açıq mənbə layihələrində yaxşı təcrübə əldə edilə bilər. Bu, real tərtibatçılarla ünsiyyət qurmaq, onlardan dəyərli məsləhətlər almaq, həmçinin real işə cəlb olunmaq şansıdır - belə layihələrdə yeni başlayanlar da lazımdır. Əgər iştirak edə bilməmisinizsə, ümidsiz olmayın, orada kiminsə hazır kodunu öyrənə və onu özünüz dəyişdirməyə çalışa bilərsiniz.

Nəhayət, uğursuzluqlara və uğursuzluqlara aid olan sonuncu, lakin əhəmiyyətsiz deyil. Beləliklə, onlardan qorxmamalısınız. Nə qədər çox səy sərf edilsə, nəyisə öyrənmək bir o qədər çətin idi, gələcəkdə o, daha asan olacaq və öyrənilən məlumat yaddaşda bir o qədər uzun qalacaq. Uğurlu olmayan cəhdlər düzgün təhlil edilərsə və səhvlər aşkar edilərsə, daha dərindən başa düşməyə kömək edəcəkdir. Səhvlərinizi təhlil etmək, onları tapmaq və özünüz tənqid edə bilmək təkcə proqramlaşdırmanı deyil, digər elmləri də müstəqil öyrənmək üçün zəruri olan çox vacib keyfiyyətlərdir. Və ən əsası özünüzə və uğurunuza inanmaqdır. Onun mövcudluğu öyrənmənin effektivliyinə müsbət təsir göstərəcək və özünüzə və qabiliyyətlərinizə inamınız varsa, proqramlaşdırmanın müstəqil öyrənilməsinin uğur qazanacağına inanmaq üçün hər cür əsas var.

Çoxlarının proqramçı olmağı seçməsinin əsas səbəbi əmək bazarındakı tələbatdır. Onu mənimsəyən hər zaman qazanc əldə edə biləcək. Tələbat səbəbindən bu profildə olan mütəxəssislər yüksək maaşlara və yaxşı iş şəraitinə arxalana bilərlər. Yaxşı pul qazanmaq üçün yaxşı proqramçının əlaqələrə, zəngin valideynlərə və uğurlu insanların digər imtiyazlarına ehtiyacı yoxdur.

İstiqamətin seçilməsi

Hər hansı bir xüsusi proqramlaşdırma sistemini öyrənməyə başlamazdan əvvəl qərar verməlisiniz tam olaraq hansı proqram yaratmaq istəyirsən, yəni istiqamət seçiminə qərar verirsən. Hal-hazırda bu sənayedə var üç istiqamət: veb və ya veb saytların yazılması, tətbiqi və sistem proqramlaşdırması. Onların hər birinə qısaca nəzər salaq:

  • Veb saytlar indi o qədər müxtəlif imkanlara malikdir ki, onları tam hüquqlu proqramlar adlandırmaq olar. Mövcüd olmaq iki növ dil internet üçün proqramlaşdırma. Bəziləri serverdə skriptlərin icrası üçün nəzərdə tutulmuşdur, bunlar PHP, Ruby, Perl, Puthondur. Digərləri müştəri maşınında brauzerdə işləyən skriptlərin yazılması üçün lazımdır;
  • tətbiqi proqramlaşdırma son istifadəçi üçün proqram yazmağı öyrənir. Bunlar mühasibat uçotu, verilənlər bazası ilə işləmək üçün proqramlar, həmçinin oyunlar, videolara baxmaq üçün proqramlar və bir çox başqaları ola bilər;
  • sistem proqramçısı kompüterin işləməsi üçün lazım olan və digər İT mütəxəssisləri tərəfindən istifadə olunan drayverlərin, kompilyatorların və digər proqram təminatının yazılması ilə məşğul olur.

Dil seçimi

Fəaliyyət sahənizdən birini seçdiyiniz zaman əvvəlcə öyrənməli olduğunuz proqramlaşdırma dillərindən birini seçməlisiniz. Bütün proqramlaşdırma sistemləri bölünür iki növə bölünür. Tərtib edilmiş dillərdə mənbə kodu xüsusi proqram vasitəsilə icra olunan fayla çevrilir. Tərcümə edilmiş və ya skript dili ilə yazılmış proqram təminatı mənbə kodu faylında yazılmış sətirlər üzrə ardıcıl olaraq icra olunur.

Təfsir edənlər arasında Bu gün ən populyar olanları PHP, Python və Perl-dir.

Veb saytları yazmaq üçün ən populyardır PHP. Onun özəlliyi ondadır ki, onun inkişaf prosesini heç kim tərtib etməyib və ya ona rəhbərlik etməyib və buna görə də parametrlərin müxtəlif yerlərdə yerləşdirilə biləcəyi qaydalara cavabdeh olan heç bir üslub yoxdur; Əsas üstünlüyü ondan ibarətdir ki, onu öyrənmək asandır; siz iki saat ərzində kompüterdə oturub PHP yazmağa başlaya bilərsiniz.

Perl müxtəlif mətn məlumatlarını emal etmək üçün yaradılmışdır. İnternetin yaranması ilə internet saytları üçün skriptlərin yazılması üçün istifadə edilməyə başlandı. İndi PHP populyarlıq baxımından aşağı səviyyədədir.

PythonÖyrənilməsi asan dil hesab olunur. Sadə sintaksisə və standart kitabxanaya daxil olan bir çox funksiyaya baxmayaraq, kifayət qədər yüksək funksionallığa malikdir. Bu dilin imkanlarını daha da genişləndirən Python üçün üçüncü tərəf tərtibatçıları tərəfindən hazırlanmış bir çox kitabxana da var. Python həm proqramların yazılması, həm də müxtəlif uzantıların yaradılması üçün istifadə olunur.

Tərtibçilər arasındaİki dil var: C++ və Java.

Aktiv C++ Onlar müxtəlif proqram təminatı yazır, lakin praktiki olaraq veb-saytlar yaratmaq üçün ondan istifadə etmirlər. Bu dil təcrübəsiz bir proqramçı üçün çətindir. C++ tərtibatçıdan yüksək ixtisas tələb edir, lakin belə iş müvafiq olaraq ödənilir.

Java həm kompüterdə, həm də smartfonlarda və digər cihazlarda müxtəlif platformalarda işləyə bilən proqramlar yazmaq üçün nəzərdə tutulmuşdur. Mənbə proqramı maşın koduna deyil, xüsusi Java maşınında icra olunan xüsusi bayt koduna çevrilir. Bunun sayəsində bu dildə yazılmış proqramlar Java maşınının quraşdırıldığı istənilən cihazda işləyəcək. Java-nın ən populyar istifadələrindən biri Android proqramlarının yazılmasıdır. Bu dili öyrənmək C++ ilə müqayisədə daha asandır və onda pis proqram yazmaq daha çətindir.

Necə proqramçı olmaq olar

Hər hansı bir proqramı yazmadan əvvəl etməlisiniz tələblərin müəyyən edilməsi bu proqram təminatına, yəni istifadəçiyə nə lazım olduğunu müəyyən etmək, mövzu sahəsini öyrənmək. Bundan asılı olaraq, inkişaf dilini seçə bilərsiniz. Eynilə, yeni bir dil öyrənərkən hansı proqramları yazmaq istədiyinizi müəyyənləşdirməli və bunun əsasında öyrənməli olduğunuz materialı seçməlisiniz.

üçün saytlar yazmaq gözəl dizaynlar yaratmaq üçün HTML və CSS-ni bilməli olacaqsınız. Müştəri brauzerində işləyən skript yaratmaq üçün sizə JavaScript də lazımdır. Müştəri tərəfi funksionallığı ən çox PHP-də həyata keçirilir.

Sistem proqramçıları adətən C və Assembler dillərində yazılır.

Tətbiq proqramları və biznes proqramları adətən C++ və ya Java dillərində yazılır.

Müəyyən bir proqramlaşdırma dilini sıfırdan öyrənməyə başlamazdan əvvəl, siz oxumalıdır alqoritmlər haqqında əsas nəzəri məlumatlar, şərti budaqlanmanın, döngələrin, funksiyaların nə olduğunu bilmək. Gələcək proqramçının riyaziyyatı bilməsi və say sistemləri haqqında anlayışı olması da faydalıdır. Siz həmçinin ingilis dilində texniki məlumatları oxumağı bacarmalısınız. Kitablar adətən rus dilində nəşr olunmazdan əvvəl köhnəlir, çünki kitab yazmaq üçün vaxt lazımdır, sonra onu rus dilinə çevirmək lazımdır və bu müddət ərzində məlumatlar artıq köhnələcək.

Özünüz öyrənməyə başlamaq üçün ən yaxşı yer onunladır təlim saytları axtarın. Yaxşı olar ki, təlim real layihələrin təhlili yolu ilə keçirilsin, burada sizin üçün maraqlı olan proqramın necə yaradıldığını və onun yaradılmasının bütün mərhələlərini görə bilərsiniz. Bundan əlavə, proqramlaşdırmanı öyrənmək üçün rəsmi sənədləri və kitabları oxumalısınız.

İndi suallar verə biləcəyiniz canlı mentorla xüsusi hazırlanmış peşəkar proqramlara uyğun olaraq təlimlərin keçirildiyi bir çox fərqli məsafədən və üz-üzə kurslar var. Bilik əldə etməyin bu üsulunun yeganə çatışmazlığı onun olmasıdır yüksək qiymət.

Təcrübəsiz proqram yazmağı öyrənmək mümkün deyil. Kiçik və asan bir layihə ilə başlamaq lazımdır. Onu bitirdikdən sonra daha mürəkkəb proqram təminatı yazmağa başlaya bilərsiniz.

Yeni başlayanlar üçün proqram təminatı yaratmağı öyrənmək üçün yaxşı bir yol istifadə etməyi öyrənməkdir mentor. Dostlarınız arasında sizinlə məsləhətləşməyə razı olan bir proqram tərtibatçısı varsa, çox şanslı olacaqsınız.

Həmçinin, yaxşı proqramçı olmaq və zamanla ayaqlaşmaq üçün daim yeni məhsulları izləmək lazımdır.

Proqram yazmağı öyrənə biləcəyiniz ən yaxşı xarici xidmətlər

İndi təlim üçün bir neçə xidmətə baxaq:


  • Aktiv Kod Məktəbi HTML/CSS, JavaScript, Ruby, Python, .NET, iOS, Git və başqa dillərdə proqram təminatının hazırlanmasını pulsuz öyrənə bilərsiniz. Bu resursda öyrənməyə başlamaq üçün əvvəlcə qeydiyyatdan keçməlisiniz. Bundan sonra sizi maraqlandıran kurslara və dərslərə baxa bilərsiniz. Siz həmçinin saytdan kompüterinizə video yükləyə bilərsiniz.
  • Saytda Ağac ev Android kursu, oyun inkişaf etdirmə kursu kimi digər təlim platformalarında tapmaq çətin olan bir çox kurslar var. Rəqəmsal biznes, C# proqramlaşdırma, verilənlər bazası, Ruby və digər maraqlı təlim proqramları üzrə kurslar da mövcuddur.
  • Platformanın yaradılmasında Udacity Stenford Universiteti ən birbaşa iştirak etdi. Sıfırdan proqramlaşdırmağı öyrənmək üçün qeydiyyatdan başlamaq lazımdır. Öz sürətinizlə öyrənə biləcəyiniz heç bir son tarix yoxdur; Bütün kurslar çətinlik səviyyəsinə görə qruplara bölünür, həm informasiya texnologiyaları ilə tanış olmayanlar, həm də qabaqcıl tələbələr üçün təlim materialları mövcuddur.

Bir proqram tərtibatçısı kimi iş tapmaq üçün tamamlanmış bir layihəyə və tercihen birdən çox layihəyə sahib olmalısınız. Layihə yaratmaq üçün digər təcrübəsiz tərtibatçılarla birləşə və ya müstəqil mübadilədə bir layihəni tamamlaya bilərsiniz. Həmçinin müsahibəyə getməzdən əvvəl internetdə axtarış aparmalı və müsahibə zamanı verilən tapşırıqları həll etməlisiniz.

Proqramlaşdırmanı sıfırdan öyrənməyə haradan başlamaq lazımdır?
Bu yazıda təkbaşına sıfırdan proqramçı olmağın mümkün olub-olmadığını və proqramlaşdırmanı təkbaşına mənimsəmək və ondan pul qazanmağa başlamaq üçün hansı variantların olduğunu ətraflı təhlil etməyə çalışdım.
UPD: 2018-ci ildə proqramlaşdırmanı sıfırdan öyrənməyə haradan başlayacağını axtaranlar (yaxud 2019-cu ildə başlamağa hazırlaşırlar :)) Yakov Kramarenkonun “Proqram təminatının hazırlanmasına giriş” kitabı sayəsində çox şanslıdırlar. Mən bunu yoxlamağı ürəkdən tövsiyə edirəm - özbaşına kodlaşdırmağı öyrənənlər üçün №1 Google reytinqi və oxucu rəyləri ilə yeniləməyə dəyər.

Mən ən yaxşısını verməyə çalışdım - fikrimcə - yolu. Sizi xəbərdar edirəm - bu asan deyil! Əlavə oxumaq sizə bir neçə saatlıq maraqlı fəaliyyətlərə başa gələ bilər :)

Dərhal deyəcəyəm - proqramlaşdırmanı yalnız özünüz, pul qoymadan öyrənməyə qərar versəniz, daha çox vaxt sərf etməli olacaqsınız. Başqa bir işlə paralel oxuyursunuzsa, ən azı bir ildən sonra yeni bir ixtisasa yiyələnməyi gözləyin.

Bu məqaləni insanlar üçün daha faydalı etmək üçün əlavə etmək üçün bir şey tapsanız, şərhlərdə yazın.

Proqramlaşdırmanı özünüz öyrənmək istəyirsinizsə, bu məqalə mənim təcrübəmə əsaslanan ən yaxşı təcrübələri ehtiva edir. Bütün bunlar bir neçə əlavə ilə hələ də aktualdır.

Başlayanlar üçün veb proqramlaşdırma üzrə kitab

2016-cı il versiyası tərcümə olunub: https://courses.prometheus.org.ua/courses/Prometheus/CS50/2016_T1/about.

İngilis dilində kurs keçmək daha yaxşıdır. Dilinizi təkmilləşdirəcəksiniz və məlumat daha təzə olacaq. Kurs çox dəyişməsə də - yalnız 2017-ci ildə PHP əvəzinə Python istifadə olunmağa başladı.

Kursu tamamlamaq vaxt aparacaq, lakin öz başınıza əldə etmək çətin olan kifayət qədər tam bir anlayış təmin edəcək.

Əvvəlcə proqramlaşdırmanın hansı sahəsinin sizi maraqlandırdığına qərar verməlisiniz. Söhbət inkişafı sıfırdan öyrənməkdən gedirsə və siz tezliklə ondan pul qazanmağa başlamaq istəyirsinizsə, onda mənim fikrimcə iki seçim var: mobil qurğular üçün inkişaf və ya veb inkişafı.

Belə bir vəziyyətdə ən yaxşı seçim, mənim fikrimcə, veb inkişafı öyrənməyə başlamaqdır. Burada yeni başlayanlar üçün giriş həddi daha aşağıdır və sadə sifarişləri daha əvvəl yerinə yetirməyə başlamaq imkanı var.

Özünüz sıfırdan necə proqramçı olmaq olar

Əgər mən öz başıma veb inkişafı öyrənmək üçün sıfırdan başlasaydım (başa düşürəm ki, pul qoymadan bu daha uzun bir yoldur), onda bu yolu özümə tövsiyə edərdim:

1. HTML və CSS-i anlayın

HTML və CSS-nin əsas inkişafı üçün yaxşı kurs: https://learn.shayhowe.com/html-css/ (İngilis dili) və ya https://webref.ru/layout/learn-html-css (tərcümə).

Bundan sonra sürətləndirilmiş veb proqramların inkişafı üçün faktiki standarta çevrilmiş Bootstrap-ın imkanlarına nəzər salmağa dəyər: http://getbootstrap.com/

Növbəti addımlar üçün bu kifayət edəcək.
Bu nöqtədə dayanıb CSS-ni daha ətraflı öyrənmək istəyə bilərsiniz. Bu sizə layout dizayneri - dizaynı statik HTML səhifəsinə çevirən şəxs kimi işləmək imkanı verəcək, bundan sonra proqramçı layihənin məntiqini həyata keçirərək onu canlandırır.

Bundan əlavə pul qazana bilərsiniz - həm frilanser kimi, həm də veb inkişafında ixtisaslaşmış bir İT şirkətində işləyərək.

Ancaq proqramçı olmağa qərar verdiyimiz üçün davam edirik!

2. jQuery ilə tanış olun

Əgər onu bəyəndinizsə, ön tərəfi başa düşməyə və Javascript öyrənməyə davam edə bilərsiniz.

Əgər https://angularjs.org/ və ya http://backbonejs.org/ izləyirsə, bu, front-end inkişafının yoludur. Yaxşı bir ixtisas, xüsusən belə bilik veb inkişafını seçmiş hər hansı bir proqramçı üçün faydalı olacaqdır.

Məsləhətim odur ki, hələlik jQuery ilə qalın və davam edin.

3. Server proqramlaşdırma dilini mənimsəmək

Burada çoxlu seçim var. Ən perspektivli proqramlaşdırma dilləri Ruby, Java, Python, Node.JS-dir (server üçün Javascript).

Başlayanlar üçün ən asan proqramlaşdırma dili Python-dur. Python və sonra Django veb inkişaf çərçivəsini öyrənsəniz, bəzi olduqca mürəkkəb layihələri təkbaşına həll etmək üçün lazım olan hər şeyə sahib olacaqsınız.

Yaxşı seçim proqramlaşdırma dili Python və Djangodur

Üstəlik - Python və Django sizə “düzgün” proqramlaşdırmanı öyrədəcək. Python ardıcıl olaraq TOP 5-10 ən populyar dillər arasındadır və yaxşı Python mütəxəssisləri ən yüksək maaş alan proqramçılar arasındadır. Python təcrübəsiz proqramçılar üçün həm sadə, həm də başa düşülən proqramlaşdırma dilidir və eyni zamanda bir çox iri şirkətlərdə və böyük layihələrdə istifadə olunur.

Özünüz başlamaq üçün Jason Briggs tərəfindən "Uşaqlar üçün Python" oxuyun və ya baxın:

Digər materiallar arasında Python The Hard Way öyrənməyi tövsiyə edirəm. kitab “Sadə Python. Müasir proqramlaşdırma tərzi." Və əlbəttə ki, Python 2 Təlimatı və Python 3 Dərsliyi.

Django, şübhəsiz ki, veb inkişafı üçün ən yaxşı çərçivədir

Bütün hallar üçün ən yaxşı aləti tapmaq çox çətindir. Django veb inkişafı üçün belə bir vasitə olmaq potensialına malikdir.

Djanqonu öyrənməyə haradan başlamaq lazımdır:

Rəsmi sənədlərlə başlayın, orada çox yaxşı dərslik var: https://docs.djangoproject.com/en/2.1/intro/

Django ilə Tanqo ingilis dilinizi təkmilləşdirmək və eyni zamanda veb layihələrin necə qurulduğunu və hər şeyin necə işlədiyini başa düşmək üçün yaxşı fürsətdir.

Seçim #2 - PHP və WordPress

Başqa bir yol PHP ilə başlamaq və məşhur CMS ilə işləməkdir. Proqramlaşdırmanı özünüz öyrənirsinizsə və tez başlamaq istəyirsinizsə, PHP ilə başlayın.

Bir çox insanlar PHP-ni “tamamilə real olmayan” proqramlaşdırma dili hesab edirlər və bunun yaxşı bir səbəbi var. PHP böyük veb proqramlarında nadir hallarda istifadə olunur və yalnız veb üçün nəzərdə tutulmuşdur - başqa sahələrdə istifadə edilə bilməz.

Digər tərəfdən, PHP dünyada açılan veb-saytların sayına görə liderlik edir. Ən populyar CMS (məzmun idarəetmə sistemləri) ona əsaslanır.

Bundan sonra, WordPress üçün mövzuların necə yaradılacağını anlayın - bu, işləyən saytların sayı ilə ölçülürsə, yəqin ki, dünyada ən populyar CMS-dir.

Bunu yaxşı başa düşdükdən sonra artıq iş tapa bilərsiniz. PHP və WordPress ilə işləyən bir çox sayt var, buna görə də hər kəs üçün kifayət qədər iş var.

Bir proqramçı kimi pul qazanmağa necə başlamaq olar

Bir çox insan müstəqil bir proqramçının işini belə təsəvvür edir:

Əslində bu belə görünür:

Əgər proqramçı kimi işləməyə hazırsınızsa və pul qazanmağın yolunu axtarırsınızsa, freelancing-ə xoş gəlmisiniz! Sərbəst mübadilələr sadə sifarişlər tapmağa imkan verəcək (əvvəlcə demək olar ki, pulsuzdur) - təcrübə əldə etmək. Ümumiyyətlə, bir proqramlaşdırma işi axtarırsınızsa, İT şirkəti üçün işləmək daha gəlirli ola bilər.

2-ci bənddən sonra - HTML, CSS və jQuery-ni mənimsədikdən sonra, siz müstəqil birjalara gedə və profilinizi yaradaraq sadə sifarişlər qəbul edə bilərsiniz.

İngiliscə bilirsən? https://www.upwork.com/

Heç, hətta lüğətlə də yox? http://freelance.ru/

Veb saytları özünüz edə bildiyiniz zaman müştərilər tapmaq sizin üçün daha asan olacaq - rəylər və təcrübə olacaq.

Veb inkişafı üçün sürətli yol

Təcrübəmə əsaslanaraq, proqramlaşdırmanı sıfırdan öyrənmək ən yaxşı halda 6 aydan 12 aya qədər vaxt aparacaq, əgər sizə kömək edən biri varsa, 6 ay olacaq.

İT-yə daxil olma prosesini sürətləndirmək üçün təlimə getmək fürsətini axtarın (birdən çox ehtiyacınız ola bilər) və ya sizinlə məşq edəcək insan tapın. Əslində, biliklərini sizə ötürəcək bir insan olmadan, bir il oturub kitab oxumaq çox çətindir; Və sadəcə mürəkkəb şeylər haqqında danışa bilən bilikli bir insanla bu, daha asandır.

Bir vaxtlar məşq yolu ilə giriş yolunu seçmişdim. İnkişaf haqqında çox şey bildiyimi nəzərə alsaq, bu, mənə altı ay çəkə biləcək şeyi 2 ayda mənimsəməyə imkan verdi. Yolunuzu tapın.

Mənim proqramlaşdırma karyerasına başlamaq qərarına gələn və prosesi sürətləndirmək istəyən insanlar var. Bir çox başqa kurslar var. Özünüzə bir mentor tapsanız - sizi əlindən tutacaq bir insan - bu, inkişaf etdirici olmaq üçün yolunuzu əhəmiyyətli dərəcədə qısaldacaq.

Bir şey yarada biləcəyinizə əmin olan kimi, daha da inkişaf etdirə biləcəyiniz bir şirkət və ya müştərilər axtarın.

HTML, CSS, Python və Javascript sadəcə əsas biliklərdir, birinci mərhələdir. Sonra təcrübə, alqoritmləri öyrənmək və inkişaf alətləri çox vacibdir.

Suallarınız varsa, şərhlərdə soruşun! Ümid edirəm ki, bu məqalə sizə ilk addımı atmağa kömək edəcək. Uğurlar!