Dasturchi sifatida nimani o'rganish kerak. Dastur yozishni qanday o'rganish kerak

25.03.2024

Boshlash
Qayerdan boshlayman?
Avval qaysi dasturlash tilini o'rganishingiz kerak?
Sifatli ta'lim resurslarini qayerdan topishingiz mumkin?
O'z mahoratingizni qanday oshirish kerak
Boshlang'ichdan o'rta darajaga qanday o'tish mumkin?
O'quv mashqlari va loyiha g'oyalarini qayerdan topsam bo'ladi?
Dasturlarda (algoritmik fikrlash) vazifalarni/topshiriqlarni amalga oshirish malakasini qanday oshirish mumkin?
Men loyiha uchun ajoyib g'oyani o'ylay olmayman. Menga shunchaki ijod etishmayaptimi? Boshqa dasturchilar ilhomni qanday topishadi?
Yaxshi kod va loyihalar namunalarini qayerdan topsam bo'ladi?
Standart universitet kompyuter fanlari dasturlarida yoritilgan mavzularni qanday o'rganish mumkin?
Qanday qilib katta loyihani boshlash va undan voz kechmaslik kerak?
Umumiy qo'rquv va xavotirlar
Men dasturlash uchun juda yoshmanmi?
Avval o'rganishim kerak bo'lgan yana bir narsa bormi?
Men matematikani yaxshi bilishim kerakmi?
Men Google'da ko'p qidiraman yoki endi boshlamoqchi bo'lganimda qanday qilishni bilmayman. Bu yomon?
Dasturlash qiyinmi?
Trening haqida savollar
“Til bilish” yoki “dasturlashtira olish” nimani anglatadi?
Men endigina X tilini o'rganishni boshladim. Y tilini o'rganishni boshlashim kerakmi?
Bir vaqtning o'zida bir nechta dasturlash tillarini o'rganishga arziydimi?
Yangi boshlanuvchilar ba'zan vazifalar va mashqlar bilan bog'liq muammolarga duch kelishlari yomonmi?
Dasturlashni o'rganish uchun motivatsiyani qanday topish/qo'llab-quvvatlash kerak?
X-ni qayerdan boshlashim kerak?
Video o'yinlarni yaratishni qaerdan boshlash kerak?
Veb-saytlar/veb-ilovalar/veb ishlab chiqishni qaerdan boshlash kerak?
Mobil ilovalar/Android ilovalari/iOS ilovalari/Windows Phone ilovalarini yaratishni qaerdan boshlash kerak?
Qanday qilib biror narsani avtomatlashtirish mumkin?
Terminologiya va lug'at
Kompyuter fanlari (CS), kompyuter muhandisligi (CE), dasturiy ta'minot muhandisligi (SE), dasturlash va kodlash o'rtasidagi farq nima?
C, C++, Objective-C va C# o'rtasidagi farq nima?
Java va JavaScript o'rtasidagi farq nima?
Asboblar va versiyani boshqarish
Versiya nazorati/versiya nazorati nima? Men undan foydalanishim kerakmi?
Versiya boshqaruvidan foydalanishni qaerdan boshlash kerak?
IDE nima? Men undan foydalanishim kerakmi?
Kompyuterlar va operatsion tizimlar
Qaysi operatsion tizimdan foydalanishim kerak?
Qaysi kompyuter/noutbuk sotib olishim kerak?
Karyera va ish
Dasturlash bilan ko'p pul ishlash mumkinmi?
Informatika darajasisiz dasturlash bo'yicha ishga kirish mumkinmi? Yoki umuman oliy ma'lumot yo'qmi?
Qanday qilib bu sohaga kirish va boshlang'ich pozitsiyani egallash mumkin?
Keyin nima qilish kerak?
Endi yangi boshlovchi emas
Dasturlash shunchaki vositadir
Dasturlash mahoratingizni qanday oshirish mumkin
Turli xil
Bolaga dasturlashni qanday o'rgatish kerak?
Ochiq kodli loyihalarga qanday hissa qo'shish mumkin?
C/Python/boshqa til haqida savolim bor.
Mening savolim u erda emas. Nima qilay?
Ha, mening savolim tez-tez so'raladigan savollarda, lekin men haqiqiy odamdan javob olmoqchiman.
/r/learnprogramming wiki-ni qanday tahrirlashim mumkin (jumladan, ushbu tez-tez so'raladigan savollar)?

Qayerdan boshlayman?

Agar siz kodlashni o'rganmoqchi bo'lsangiz, avvalo bu nima uchun kerakligini tushunib olganingiz ma'qul. Unda YouTube video Kevin Cheers dasturlashni o'rganishga qanday yondashishni tushuntirib beradigan ajoyib ish qildi.

Keyin shuni unutmangki, kodlashni o‘rganishning yagona usuli yo‘q – har bir kishi biroz boshqacha o‘rganadi va sizga mos keladiganini topish uchun tajriba o‘tkazishingiz kerak bo‘lishi mumkin. Biroq, ko'pchilik quyidagi yondashuvdan foydalanadi, biz buni juda tavsiya qilamiz:

  1. Sizni hal qilmoqchi bo'lgan kichik vazifa yoki loyihani toping. Siz hayotingizdagi kichik muammoni hal qilish uchun vosita yaratishga harakat qilishingiz yoki o'zingiz uchun qiziqarli bo'lgan dasturni noldan amalga oshirishingiz mumkin. Bunday loyiha sizni kodlashni o'rganishni davom ettirishga undaydi va olingan bilimlaringizni amaliyotda qo'llash imkoniyatini beradi.
  2. Loyihangizga eng mos keladiganini tanlash uchun turli dasturlash tillari haqida o'qing. (Quyidagi tavsiyalarga qarang).
  3. Tilda yangi boshlanuvchilar uchun bitta sifatli manba toping va unga rioya qiling. (Shuningdek, quyida ko'ring).
  4. Ushbu manbadan tashqari, Google va savollar.
  5. Ushbu tilda bir nechta original loyihalarni bajaring.
  1. Tanlangan resursni passiv ravishda o'rganib bo'lmaydi: mashqlar va uy vazifasini bajaring; Amaliyot dasturlashni o'rganishning muhim qismidir.
  2. Bir tildan boshqa tilga keraksiz o'tmang. Bittasini tanlang va unga rioya qiling, chunki dasturlash tillarni o'rganish emas, balki muammolarni hal qilishdir. Muammolarni hal qilishni o'rganish qiyin va bu faqat doimiy mashg'ulot bilan aniqlanishi mumkin bo'lgan mahoratdir. Har safar boshqa tilga o'tganingizda, muammoni hal qilish ko'nikmalarini rivojlantirish uchun o'rgangan narsalaringizni amalda qo'llash uchun vaqt yo'qotasiz.
  3. Kursni tugatganingizdan keyin o'rganishni to'xtatmang. Dasturlash har doim o'rganish uchun yangi narsa bo'lgan sohalardan biridir.

Va nihoyat, dasturlashni o'rganish uzoq va qiyin jarayon ekanligini unutmang. Agar qiynalayotgan bo'lsangiz, tashvishlanmang! Bu mutlaqo normal holat va ko'p odamlar ishga kirish uchun ariza berish yoki jiddiy loyihaga hissa qo'shish uchun etarli darajada malakali his qilmaguncha yillar davomida o'qiydilar va mashq qiladilar. Yaxshiyamki, o'rganishni boshlash unchalik qiyin emas.

Avval qaysi dasturlash tilini o'rganishingiz kerak?

Odamlarni bu savolga olib keladigan ikkita keng tarqalgan noto'g'ri tushuncha mavjud. Birinchisi, “eng yaxshi” dasturlash tili mavjud bo‘lsa, ikkinchisi, siz o‘rgangan birinchi til bir marta va baribir dasturlash bo‘yicha martabangizni belgilaydi.

Darhaqiqat, birinchi navbatda o'rganishga arziydigan eng yaxshi til yo'q va u kelajakdagi martabangizda muhim rol o'ynamaydi. Tashqi tomondan, dasturlash tillari juda boshqacha ko'rinadi, ammo asosiy tamoyillarning aksariyati bir tildan boshqasiga o'tadi. Bundan tashqari, vaqt o'tishi bilan yangi tillarni o'rganish osonroq bo'ladi: boshlang'ich tilda o'zini ishonchli his qilish uchun bir necha oy kerak bo'lishi mumkin, ammo tajribali dasturchi bir necha kun ichida yangi til bilan tanishib qoladi.

Ideal holda, barcha dasturchilar turli xil tillarni bilishlari kerak. Bir tilni o'zlashtirganingizdan so'ng, siz avvalgisidan tubdan farq qiladigan boshqasini olishingiz mumkin. Yangi tillarni o'rganganingizda, siz ko'proq vositalardan ma'lum bir muammoni hal qilish uchun eng maqbulini tanlash imkoniyatiga ega bo'lasiz va bu yaxshi dasturchining belgisidir. Dasturlash tamoyillari eng muhimi bo'lgani uchun biz yangi boshlanuvchilarga quyidagi jadvaldagi mashhur tillardan birini boshlashni tavsiya qilamiz. Ularning har qandayida yangi boshlanuvchilar oddiy ilovalar yaratishni boshlashlari va tilning juda ilg'or xususiyatlariga tegmasdan kodlashni mashq qilishlari mumkin.

Agar sizda loyiha yoki maqsad bo'yicha g'oyangiz bo'lsa, o'z mahoratingizni vazifaga qo'llay olsangiz, tezroq o'rganasiz. Quyidagi jadvalda umumiy loyihalar uchun tavsiya etilgan tillar ko'rsatilgan.

Men o'rganmoqchiman ...

  • ...iPhone ilovalarini ishlab chiqish - Swift (batafsil)
  • ...Android uchun ilovalar ishlab chiqish - Java (batafsil)
  • ...veb-saytlar yaratish - JavaScript, CSS, HTML5 (ko'proq)
  • ...Windows uchun ish stoli ilovalarini yozish - C#
  • ...2D/3D oʻyinlarini yaratish - JavaScript, C# yoki C++ (koʻproq)
  • ...dastur Arduino/mikrokontrollerlar/robotlar - C
  • ...ilmiy/matematik hisoblash yoki ma'lumotlarni tahlil qilish - Julia, Python, R yoki Matlab
  • ... avtomatlashtirish va skriptlarni ishlab chiqish bilan shug'ullaning - ko'p tillar (Python, Ruby, Bash, Powershell, AutoHotKey...)

Agar sizga kerak bo'lgan narsalar ro'yxatda bo'lmasa, ushbu manbalardan boshqa variantlarni qidiring:

Agar siz hali ham qaror qabul qila olmasangiz, Python tilini o'rganing. Bu katta jamoaga va ko'plab kutubxonalarga ega bo'lgan dasturchilar uchun yaxshi, qulay til bo'lib, ular yordamida siz deyarli hamma narsani qilishingiz mumkin: o'yinlar yaratishdan tortib, uyda yoki ishda jarayonlarni avtomatlashtirish va veb-sayt yaratish uchun ma'lumotlarni tahlil qilish. Ilovalarni yanada murakkab ishlab chiqishga kirishdan oldin asosiy tamoyillar va asoslarni qamrab oladigan o'quv manbasini topishga harakat qiling. Har qanday tilni o'rganishni boshlash bo'yicha ko'rsatmalarni redditning boshlang'ich sahifasida topish mumkin.

Sifatli ta'lim resurslarini qayerdan topishingiz mumkin?

O'z mahoratingizni qanday oshirish kerak

Boshlang'ichdan o'rta darajaga qanday o'tish mumkin?

Ko'pgina yangi boshlanuvchilardan biz oladigan odatiy savol bu "keyingi nima?" Xususan, ular ba'zi darslar, qo'llanmalar, kurslar orqali ishlashga harakat qilganlarida, lekin oxir-oqibatda, if yoki for tsikli qanday ishlashini tushunish va murakkab va murakkab yaratish uchun o'rganganlarini qanday aniq qo'llashni tushunish o'rtasidagi tafovutni bartaraf eta olmadilar. qiziqarli dasturlar.

Darsliklardan murakkab kodga o'tish juda qiyin bo'lishi mumkin va bu kodlashni o'rganayotganlar uchun odatiy tajriba. Ushbu hodisa ushbu maqolada juda yaxshi tasvirlangan. Ko'pgina kurslar (ayniqsa, CodeAcademy kabi tijoriy dasturiy ta'minot saytlari) sizni asoslarni to'liq o'rganib chiqadi, lekin shu bilan tugaydi va yangi boshlanuvchilar suv ostida qoladi.

Ammo taslim bo‘lmasangiz va chalkashlikni yengib o‘tsangiz, asta-sekin yaxshilanib borayotganingizni seza boshlaysiz, to bir kun kelib, o‘zingiz ham sezmay turib, yangi bosqichga ko‘tarila boshlaganingizni tushunib yetguningizcha.

Qanday qilib taslim bo'lmaslik va keyin nima qilish kerakligi haqida ba'zi maslahatlar.

Passiv ta'limdan faol o'rganishga o'tish

Siz o'rganmoqchi bo'lgan narsangizni o'rgatadigan kurslar va darslarni o'tash o'rniga (siz o'ylaysiz) o'zingizni o'rgatish yo'llarini faol ravishda izlashni boshlang. Misol uchun, qanday qilib o'yin yaratish haqida hech qanday tasavvurga ega bo'lmasangiz, Google "X da o'yinni qanday yozish kerak", bu erda "X" siz foydalanmoqchi bo'lgan dasturlash tilidir. Agar sizga notanish xato xabari olsangiz, uni Google orqali sinab koʻring. Agar siz mashinani o'rganishni o'zlashtirmoqchi bo'lsangiz, Google-dan foydalaning va yaxshi kitob, qo'llanma yoki onlayn kursni toping.

Siz tez-tez nima qilishingiz kerakligini aniq tushuntirib beradigan o'quv qo'llanmalarini yoki hech bo'lmaganda sizga umumiy g'oya va aniqroq qidiruv so'rovlarini yozish bo'yicha maslahatlar beradigan maqolalarni uchratasiz. Bundan tashqari, yangi bilim manbalarini izlashda uyatli narsa yo'q - buning aksi. Barcha dasturchilar, ham boshlang'ich, ham professional, doimo ikkita narsani qilishadi: Google va o'qish.

Doimiy mashq qiling

Dasturlash mashg'ulotlarga o'xshaydi, chunki siz faqat doimiy mashg'ulotlar orqali yaxshilanishingiz mumkin. Kichikdan boshlang va buyruq satrida tosh-qog'oz-qaychi kabi oddiy o'yin yozishga harakat qiling. Ishingiz tugagach, yanada jasoratli loyihani amalga oshirishga harakat qiling va uni o'zlashtiring. Agar xohlasangiz, parallel ravishda ba'zi dasturlash mashqlarini bajarishingiz mumkin.

Dasturlashning asosiy maqsadi masalalarning amaliy yechimlarini ishlab chiqish bo'lib, buni o'rganishning eng yaxshi usuli katta va kichik muammolarni doimiy ravishda hal qilishdir.

(Shuningdek qarang: Tez-tez so'raladigan savollar: Amaliy mashqlar va loyiha g'oyalarini qayerdan topish mumkin va tez-tez so'raladigan savollar: Men ajoyib loyiha g'oyasini o'ylay olmayapman. Menda shunchaki ijodkorlik yetishmayaptimi? Boshqa dasturchilar qanday ilhom olishadi?)

Muammoni hal qilishni o'rganing

Katta loyiha yoki vazifani hal qilmoqchi bo'lganingizda, siz uning qanchalik katta va qo'rqinchli ko'rinishidan xafa bo'lishingiz mumkin. Tushkunlikka tushmaslik o'rniga, har bir alohida kichik vazifa boshqariladigan va amalga oshirilishi mumkin bo'lib ko'rinmaguncha, vazifani kichikroq va kichikroq kichik vazifalarga ajrating (bu parchalanish deb ataladi).

Aytaylik, siz tosh-qog'oz-qaychi o'yinini yaratmoqchisiz. Uni bir nechta kichik muammolarga bo'lish mumkin: foydalanuvchidan ma'lumotni qanday olish kerak, kompyuterni tasodifiy tanlov qilishga qanday majburlash kerak, g'olibni qanday aniqlash va o'yinni qanday takrorlash (agar siz ketma-ket bir necha marta o'ynashni istasangiz). ).

Agar siz ushbu kichik muammolarning har birini qanday hal qilishni bilmasangiz, ularni batafsilroq taqsimlang. Misol uchun, agar siz g'olibni qanday aniqlashni bilmasangiz, yanada ko'proq kichik muammolarni aniqlashingiz mumkin: durangni qanday aniqlash, g'alabangizni qanday aniqlash (agar toshni tanlasangiz), g'alabangizni qanday aniqlash (agar siz qog'ozni tanlang) va g'alabangizni qanday aniqlash mumkin (agar siz qaychi tanlasangiz).

Agar siz haqiqatan ham biror narsani qanday qilishni bilmasangiz (masalan, kompyuterni tasodifiy qiymatni tanlashga qanday erishish mumkin), uni Google orqali toping. Ushbu misolda "X tasodifiy qiymatni tanlash" (bu erda X - ishlatiladigan dasturlash tili) ni qidirish siz foydalanishingiz mumkin bo'lgan bir nechta turli usullarni ko'rsatadi. Ba'zan vazifani qidiruv tizimisiz ko'p qismlarga bo'lish mumkin, ba'zan esa usiz qilolmaysiz.

Shunday qilib, agar siz Java tilini o‘rganayotgan bo‘lsangiz va o‘yin yozishni o‘rganmoqchi bo‘lsangiz-u, lekin qayerdan boshlashni yoki vazifani qanday ajratishni bilmasangiz, Google “java o‘yinlari darslari”. Qidiruv sizga o'yin yozishni o'rgatadigan va (odatda avtomatik ravishda) o'yin yozish jarayonini kichikroq kichik vazifalarga ajratadigan yaxshi manbalarni topadi.

Aslida, bu bilan siz o'zingizga ishlab chiquvchining ongini singdirasiz. Agar vazifa juda qiyin bo'lsa, tushkunlikka tushmang. Uni oddiyroq va soddaroq qismlarga ajratishda davom eting va bo'linmas ko'rinadigan narsalarni o'rganing. Keyin yana aylanada: siz uni buzasiz, google, uni buzasiz, uni google ...

Bu o'z-o'zini o'rganish uchun juda samarali strategiya. Amaliyot bilan siz muammolarni qanday hal qilishni yaxshiroq tushuna boshlaysiz, shuningdek, bilim bazangizni va ularni hal qilishning mumkin bo'lgan usullarini kengaytirasiz.

Qo'shimcha maslahatlar uchun tez-tez so'raladigan savollarga qarang: dasturlarda vazifalar/topshiriqlarni amalga oshirish ko'nikmalarini qanday yaxshilash mumkin (algoritmik fikrlash).

Tizimli bo'ling

Kodni yozganingizda va disk raskadrovka qilganingizda, hech qachon shunchaki biror narsani sinab ko'rish va uning tasodifan ishlashini kutish odat tusiga kirmang. Iloji boricha aniq va izchil bo'ling - bu erda "sinov va xato" usuli ishlamaydi.

Kod yozayotganda, bir daqiqaga to'xtab, qog'ozga harakatning taxminiy rejasini tuzing. Ba'zi diagrammalarni chizish yoki psevdokodni yozib ko'ring. Agar siz o'z rejangizni o'zgartirishga to'g'ri kelsa (ehtimol, shunday bo'ladi), nima uchun sizga o'zgartirish kerakligi va yangi harakat rejangiz qanday bo'lishi haqida o'ylab ko'ring. (Ushbu rejalashtirish bosqichi vazifalarni dekompozitsiya qilish uchun yaxshi imkoniyatdir!)

Kodni tuzatishda aniq maqsadlar qo'ying. Olim kabi o'ylashga harakat qiling: xatoni tuzatishga harakat qiling yoki uni qidirishni qisqartiring va natijalarni yozing. Agar sizning taxminingiz/urinishingiz noto'g'ri bo'lib chiqsa yoki siz oldindan ko'rmagan narsa yuz bergan bo'lsa, to'xtating va sabab nima ekanligini aniqlang. Tajribalar va testlarni daftarga yozib qo'yishingiz mumkin, agar bu sizning rejangizga rioya qilishingizga yordam beradi.

Xatolar sizning taxminlaringiz haqiqatga mos kelmasa paydo bo'ladi. Agar biror narsa noto'g'ri bo'lib tuyulsa, uni e'tiborsiz qoldirmang: nima ekanligini / qaysi taxminlaringiz noto'g'ri ekanligini tushunmaguningizcha qidirishda davom eting.

Biror narsa ishlamaguncha hech narsa qilmang - izchil bo'ling.

Xatolarni yoki Googleni tuzatishingiz kerak bo'lsa, tushkunlikka tushmang

Barcha yangi boshlanuvchilar, hatto professional dasturchilar uchun ham ko'p vaqtlarini xatolarni tuzatish va ma'lumot qidirishga sarflashni tushunishmaydi.

Nosozliklarni tuzatish (va qiyinchilik!) dasturlashning ajralmas qismidir. Agar muvaffaqiyatga erishsangiz, tushkunlikka tushmaslikka va g'azablanmaslikka harakat qiling. Buni qiziqarli kvest yoki jumboq sifatida qabul qiling.

Agar xato kodning o'zi ustida ishlashni davom ettirishingizga xalaqit bersa ham, agar siz izchil bo'lsangiz, biroz boshqacha tarzda bo'lsa ham, muammoni parchalash bo'yicha yaxshi amaliyotga ega bo'lasiz.

Oxir oqibat, bitta xatoni tuzatish uchun sizga ko'p soat kerak bo'lsa ham, bu vaqtni yaxshi sarflaydi. Nosozliklarni tuzatish muammolarni hal qilishni o'rganishning eng yaxshi usullaridan biridir.

(Ko'proq tajriba orttirgan sari bu haqiqatga aylanadi. Hayotda sizning kompetentsiyangiz oshgani sayin, duch keladigan xatolarning murakkabligi oshadi. Ba'zida hatto tajribali dasturchilar ham bitta muammoli xatoni topish uchun bir necha oy sarflashlari kerak bo'ladi.)

Yordam so'rashdan qo'rqmang

Va nihoyat, agar siz butunlay qotib qolgan bo'lsangiz va keyin nima qilishni bilmasangiz, yordam so'rashdan tortinmang!

Dasturchilar odatda juda sezgir. Ko'pchiligimiz o'z-o'zini o'rgatganmiz va boshlash qanchalik qiyinligini va umidsiz tiqilib qolganingizda nima ekanligini tushunamiz.

Shunday bo'lsa-da, avvalo, iloji boricha hamma narsani qilishga harakat qiling (muammoni tuzating, kodni tuzating, Google va hokazo) va postingizni yaxshilab o'ylab ko'ring. Har qanday boshqa submadaniyat singari, dasturchilar ham o'zlarining so'zsiz qoidalari va qoidalariga ega. Asosiy narsalardan biri shundaki, savol aniq tasvirlangan bo'lishi kerak (hatto u asosiy narsa bo'lsa ham).

Intensivroq kirish kursini o'ting

Bu nuqta faqat CodeCademi tomonidan taklif qilingan kirish kurslarida dasturlash bilan yuzaki tanish bo'lganlar uchun amal qiladi. Bu kabi saytlar dasturlash nima ekanligi haqida ajoyib tasavvur beradi va ba'zi asoslarni o'rgatadi, lekin agar siz o'rta darajaga o'tishni istasangiz, deyarli foydasiz bo'lishi mumkin.

Asosiy qoida: Agar siz o'qigan kirish dasturlash kurslari unchalik qiyin bo'lmasa yoki topshiriqlar, mashqlar yoki mini-loyihalardan iborat bo'lmasa, siz ko'proq talabchan kursni izlashingiz kerak. Doimiy mashq qilish (va qiyinchilik!) Ta'lim jarayonining ajralmas qismidir.

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

O'quv mashqlari va loyiha g'oyalarini qayerdan topsam bo'ladi?

Yaxshi dasturchi bo'lishning yagona yo'li erta yoshdan kodlashni o'rganishdir, degan keng tarqalgan afsona bor. Bu to'g'ri emas: garchi ba'zi odamlar kodlashni erta o'rganishni boshlashsa ham (bu ularga qandaydir afzallik berishi mumkin), ko'pchilik uni kollejda yoki undan keyin boshlaganida o'rganishni boshlaydi.

Siz har qanday yoshda o'rganishingiz mumkin va boshqalarga e'tibor berish o'rniga, faqat o'zingizga va shaxsiy rivojlanish tezligingizga e'tibor qarating. O'sish tafakkurini rivojlantirishga harakat qiling va qattiq fikrlashdan xalos bo'ling.

Avval o'rganishim kerak bo'lgan yana bir narsa bormi?

Oldindan juda oz sonli shartlar mavjud va umuman olganda siz istalgan vaqtda dasturlashni o'rganishni boshlashingiz mumkin.

Bu faqat zarur shartlar:

  • Siz yozish imkoniyatiga ega bo'lishingiz kerak (agar siz Scratch kabi sudrab olib tashlash tilidan foydalanmasangiz).
  • Sizda kompyuter bo'lishi kerak.
  • Siz o'zingiz Google/savollarga javob izlashingiz kerak.

Shuningdek, sizga matematika (asosiy darajadagi algebra) va ingliz tili (chunki ko'plab onlayn manbalar ingliz tilida) bo'yicha biroz bilim kerak bo'ladi, ammo bu ikki shartsiz ham qila olasiz.

Yuqorida aytilganlarning barchasi universitetning rasmiy diplomini olishni xohlovchilar uchun amal qiladi. Aksariyat universitetlar kiruvchi talabalarni kompyuter fanlari va dasturlash haqida hech narsa bilmaydi deb hisoblaydi va ularni noldan o'rgatishni boshlaydi (garchi ba'zi hollarda siz testdan o'tsangiz yoki etarli ko'nikmalarni namoyish qilsangiz, bir yoki ikkita kirish kursini o'tkazib yuborishingiz mumkin). Agar siz o'rta maktabda yoki undan yoshroq bo'lsangiz va kollejda kompyuter fanini o'rganmoqchi bo'lsangiz, muddatidan oldin o'qish sizga foyda keltiradi - bu sizga yaxshi boshlash imkonini beradi, lekin sizga kerak emas.

Ba'zi kollejlar umumiy ta'lim va matematika bo'yicha malakaga nisbatan qattiqroq bo'lishi mumkin (masalan, ko'pchilik kollejlarda hisoblash ko'nikmalari talablari mavjud), ammo ular kollejdan kollejga farq qiladi va siz o'qishni qiziqtirgan joy bilan to'g'ridan-to'g'ri tekshirishingiz kerak. Quyida ko'proq o'qing.

Men matematikani yaxshi bilishim kerakmi?

Majburiy emas: Dasturlash va informatika keng soha bo'lib, siz bu sohada yaxshi bo'lishingiz kerakmi yoki yo'qmi, qaysi fan bo'yicha ixtisoslashishga qaror qilishingizga bog'liq.

Misol uchun, dasturlashning ba'zi sohalari aslida kuchli matematik ko'nikmalarni talab qiladi. 2D va 3D o'yinlarda ko'pincha vektorlar, matritsalar va chiziqli algebra ishlatiladi; ma'lumotlar qazib olish va mashinani o'rganishda - statistikaning ko'plab tushunchalari; va agar siz algebra va asosiy hisoblash ko'nikmalarini yaxshi bilsangiz, algoritmik murakkabliklarni engish osonroq bo'ladi.

Umuman olganda, mavzuning darajasi va murakkabligi qanchalik baland bo'lsa, sizga kuchli matematik ma'lumot kerak bo'ladi. Agar sizning maqsadingiz ushbu murakkab muammolarni qanday hal qilishni o'rganish bo'lsa, unda yaxshi poydevor siz uchun bebaho bo'ladi.

Biroq, kompyuter fanlari va dasturlashning ko'pgina sohalari matematikani chuqur bilishni talab qilmaydi. Siz bilishingiz kerak bo'lgan yagona narsa - qo'shish, ayirish, ko'paytirish, bo'lish va ba'zan ba'zi bir asosiy algebra. Ko'pgina dasturchilar o'zlarining kareralarida matematikaga juda kam yoki umuman ta'sir qilmaydilar.

Agar siz matematikani yaxshi bilmasangiz, o'rganishingiz va o'sishingiz mumkin. Axir, siz ham dasturlashda unchalik yaxshi emassiz, lekin siz hali ham kodlashni o'rganasiz. Khan Academy-ga boring va asosiy darajadan yuqori darajagacha bo'lgan bepul darslarni qidiring.

Ammo, agar siz kompyuter fanlari bo'yicha ilmiy darajaga ega bo'lishni istasangiz, javob biroz boshqacha. Ko'pgina maktablar sizni qabul qilish yoki tugatishdan oldin bajarishingiz kerak bo'lgan maxsus talablarga ega (hisoblash kurslari va boshqalar). Informatika fani ma'lum darajada amaliy matematika bo'lganligi sababli, siz bitiruvni tugatish uchun diskret matematikani o'rganishingiz, dalillar yozishingiz va shunga o'xshash narsalarni o'rganishingiz kerak bo'ladi. Ushbu mavzularni o'rganishni boshlash uchun matematikani yaxshi bilishingiz shart emas (har qanday matematik mavzu, albatta), lekin matematika bo'yicha ba'zi bilimlar sizga zarar keltirmaydi va o'quv jarayonini osonlashtirishi mumkin.

Informatika dasturining matematika bilan bog‘lanishi darajasi har bir muassasada farq qiladi. Qo'shimcha ma'lumot olish uchun siz o'qishga kirmoqchi bo'lgan universitetning talablari va dastur mazmunini o'rganishingiz kerak.

Xulosa qilib aytganda, rivojlanishda muvaffaqiyatli martabaga ega bo'lish uchun matematikani yaxshi bilish shart emas. Agar siz kompyuter olimi bo'lishni istasangiz, ko'p matematikani o'rganishga tayyor bo'ling. Agar siz murakkabroq masalalar/mavzular ustida ishlashni istasangiz, matematika vaziyatga qarab juda foydali vosita bo'lishi mumkin.

Men Google'da ko'p qidiraman yoki endi boshlamoqchi bo'lganimda qanday qilishni bilmayman. Bu yomon?

Biz ko'pincha motivatsiyani davom ettiradigan harakat bo'lsa, "agar menda etarli motivatsiya bo'lsa ... men qila olardim ..." deb o'ylaymiz. Avval harakat, keyin motivatsiya keladi. O'zingiz yaratmoqchi bo'lgan kichik, maxsus dasturlarni toping. Sizni chalg'itadigan hamma narsadan xalos bo'ling. Reddit, Facebook va Twitter kabi saytlarni bloklaydigan brauzer kengaytmalarini o'rnating. Bir oz vaqt ajrating va yanada malakali dasturchi bo'lish qanchalik ajoyib bo'lishini tasavvur qiling.

Mavzu bo'yicha so'nggi mavzular:

X-ni qayerdan boshlashim kerak?

Video o'yinlarni yaratishni qaerdan boshlash kerak?

Zamonaviy video o'yinlar o'yin dvigatellari yordamida yaratilgan: bular grafika, ovoz, fizika va tarmoqlar kabi murakkab narsalar bilan ishlash imkonini beruvchi dasturlar kutubxonalari. Ko'plab kutubxonalar mavjud. Biroq, yangi boshlanuvchilar uchun quyidagi kutubxonalar tavsiya etiladi, chunki ular bepul va o'rganish uchun eng yaxshi hujjatlarga ega:

  • Unity (C#): mobil, ish stoli, brauzer/onlayn va konsol 2D va 3D o'yinlari uchun mos keladi
  • Construct2 (JavaScript): mobil, ish stoli va brauzer/onlayn 2D o'yinlar uchun
  • Pygame (Python): ish stoli 2D o'yinlari uchun vosita
  • LÖVE (LUA): 2D ish stoli o'yinlari uchun mos

Har doim esda tutingki, sizning maqsadingiz dvigatellarni emas, balki o'yinlarni rivojlantirishdir! Shunday qilib, g'ildirakni qayta ixtiro qilishning hojati yo'q.

Dvigatellar sizga kelajakdagi o'yinlar uchun grafik va shaxsiy boshqaruvni boshlashingizga yordam beradi, lekin siz hali ham o'yin mantig'ini yozish uchun dasturlash tilini yaxshilab o'rganishingiz kerak, shuning uchun yaxshi kitob yoki onlayn resurs oling.

Eng asosiysi: oddiy boshlang. Siz darhol sakrab, orzularingizdagi o'yinni yaratmoqchi bo'lasiz, lekin unutmangki, tog' cho'qqisiga chiqishning yagona yo'li - bir vaqtning o'zida kichik qadam tashlashdir. Mana, qiyinchilikni oshirish uchun oddiy mashq o'yinlari ro'yxati - yakuniy maqsad sari shoshilmasdan oldin ulardan ba'zilarini sinab ko'ring:

  • Blackjack yoki tic-tac-toe
  • Wampus Hunt (qoidalar)
  • o'z xohishingizga ko'ra sarguzasht o'yinini tanlang yoki Zork klonini
  • Pong, Tetris yoki Minesweeper kloni
  • Vertikal yoki gorizontal aylantirish bilan Space Shooter
  • DOOM, Mario yoki Legend of Zelda ning oddiy kloni

/r/gamedev tez-tez so'raladigan savollarni tekshiring, /r/gamedev-dagi kirish qo'llanmasini o'qing va /r/gamedev va /r/learnprogramming bo'yicha eski mavzularni tekshiring.

Veb-saytlar/veb-ilovalar/veb ishlab chiqishni qaerdan boshlash kerak?

Veb-dasturlashni o'rganishning turli xil usullari mavjud, ammo umuman olganda, sizga kerak bo'ladigan asosiy ko'nikmalar - bu front-end ishlab chiqish (foydalanuvchining veb-brauzerida ishlaydigan kod) va backend ishlab chiqish (serveringizda ishlaydigan kod).

Odatda, ko'pchilik HTML, CSS va Javascriptni o'rganishdan boshlashni tavsiya qiladi (shu tartibda) - bular barcha veb-brauzerlar qo'llab-quvvatlaydigan va barcha veb-saytlar yozilgan uchta asosiy tildir.

Qo'shimcha ma'lumotni /r/webdev FAQ-da topishingiz mumkin. Yangi boshlanuvchilar uchun yana bir narsa.

Mobil ilovalar/Android ilovalari/iOS ilovalari/Windows Phone ilovalarini yaratishni qaerdan boshlash kerak?

Har bir turdagi smartfon uchun siz turli dasturlash tillarini o'rganishingiz kerak bo'ladi.

  • Android ilovalari asosan Java-da yozilgan - qo'shimcha ma'lumot olish uchun FAQ /r/androiddev-ni o'qing.
  • iOS ilovalari Objective-C yoki Swift-da yozilgan - qo'shimcha ma'lumot olish uchun /r/iosprogramming yon paneli va ularning wiki-ni (GitHub-da) tekshiring.
  • Windows Phone ilovalari C#, Visual Basic yoki Javascript-da yozilgan - qo'shimcha ma'lumot olish uchun /r/WPDev yon paneliga qarang.

Shuningdek, Phonegap va Titanium texnologiyalaridan foydalangan holda uchta asosiy platformada ishlaydigan ilovalar yaratishingiz mumkin - ilovalar HTML, CSS va Javascript yordamida bir marta yoziladi va istalgan platformada ishlaydi.

Biroq, shuni yodda tutingki, ushbu vositalarning barchasi bo'lmasa ham, ko'plari allaqachon dasturlash tajribasiga ega bo'lganlar uchun mo'ljallangan. Agar siz ilgari hech qanday rivojlanish bilan shug'ullanmagan bo'lsangiz, yangi boshlanuvchilar uchun ko'proq manbalarga ega bo'lgan tilni o'rganishdan boshlashingiz mumkin. Biroz tajriba orttirganingizdan va dasturlashning asosiy tamoyillarini tushunganingizdan so'ng, sizga yangi tillarni o'rganish va mobil ishlanmalarni o'rganishni boshlash ancha oson bo'ladi. Bo'lim "Qaerdan boshlayman?" Bizning tez-tez so'raladigan savollarimiz qaerdan boshlash haqida ko'proq ma'lumotga ega.

Qanday qilib biror narsani avtomatlashtirish mumkin?

Windows uchun Autohotkey va AutoIt kabi bir nechta maxsus dasturlash tillari mavjud.

Yana bir mos o'zaro faoliyat platformali alternativ - Python. Python yordamida zerikarli narsalarni avtomatlashtirish ajoyib ta'lim manbasidir.

Agar siz MS-Office-ni avtomatlashtirmoqchi bo'lsangiz, o'rnatilgan dasturlash tili Visual Basic for Applications (VBA) dan foydalaning. /r/vba subreddit VBA dasturlashga bag'ishlangan.

Qaysi biri eng yaxshisi...

Dasturlash vs. kodlash

Va nihoyat, dasturlash va kodlash bor edi. Ushbu tushunchalar orasidagi farq juda kichik va ko'p odamlar ularni sinonim sifatida ishlatishadi. Umuman olganda, "dasturlash" atamasi "kodlash" dan ko'ra ko'proq ijobiy ma'noga ega. Agar siz "men dasturchiman" desangiz, bu ma'lum darajadagi professionallikni anglatadi va siz nafaqat kod yozishingiz, balki asoslar va nazariyani chuqur egallashingiz, mijozlar bilan qanday muloqot qilishni bilishingiz, dasturchi bo'lib ishlashingiz mumkinligini bildiradi. jamoa va boshqalar.

Aksincha, agar siz "men kodlovchiman" desangiz, siz faqat kodni ishlab chiqishda va kamroq darajada boshqa narsalarda ishtirok etayotganingizni ta'kidlaysiz.

Ammo yana, bu nuances bu erda deyarli ahamiyatsiz: aksariyat hollarda bu ikki atama bir-birining o'rnida ishlatilishi mumkin.

C, C++, Objective-C va C# o'rtasidagi farq nima?

C, C++, Objective-C va C# bir xil tilning o'zgarishlari emas.

C bu tillarning eng kichiki va eng qadimgisidir. U dastlab Unix operatsion tizimi uchun tizimli dasturlash tili sifatida yaratilgan va hanuzgacha amaliy dasturlashda keng qo'llaniladi.

C++ - dastlab C tiliga asoslangan juda mashhur umumiy maqsadli dasturlash tili. Ba'zi o'zgarishlar bilan ko'pchilik C kodlari (deyarli har qanday kod) C++ kodi sifatida kompilyatsiya qilinishi mumkin. Biroq, C++ tili C bilan solishtirganda tildan foydalanishni sezilarli darajada o'zgartiradigan juda ko'p funktsiyalar to'plamiga ega. C++ da C uslubidagi kodni yozish odatda tavsiya etilmaydi.

Objective-C C tilining qat'iy to'plamidir, shuning uchun har qanday ishlaydigan C kodi ham Objective-C kodi bilan ishlaydi. Bu til deyarli C yoki C++ kabi keng tarqalgan emas va bugungi kunda asosan Apple kompaniyasining OS X va iOS platformalarini ishlab chiqishda foydalaniladi.

C# hech qanday texnik ma'noda C ga asoslanmagan. C# - bu Microsoft tomonidan yaratilgan va Java-ga o'xshash umumiy maqsadli dasturlash tili. Mahalliy mashina kodiga kompilyatsiya qilinadigan oldingi uchta tildan farqli o'laroq, u virtual mashinada (CLR) ishlaydigan oraliq shaklga kompilyatsiya qiladi. Garchi C# C va C++ dan sintaksis elementlarini (Java kabi) olgan bo'lsa ham, bu tillar bilan texnik jihatdan bog'liq emas.

Java va JavaScript o'rtasidagi farq nima?

Java va JavaScript xuddi muhallabi va krem-bryule o'zaro bog'liqligi kabi bog'langan.

Oldingi savolga o'xshab, texnik nuqtai nazardan, Java va JavaScript hech qanday tarzda bog'liq emas. Ularning umumiy sintaksisi bor, chunki ikkalasining ham ajdodlari C bo'lgan, ammo bu haqida. Vikipediyada ismlardagi bu oʻxshashlik qayerdan kelib chiqqanligi haqida yaxshi izoh berilgan: https://ru.wikipedia.org/wiki/JavaScript#JavaScript_%D0%B8_Java.

Asboblar va versiyani boshqarish

Versiya nazorati/versiya nazorati nima? Men undan foydalanishim kerakmi?

Versiyalarni boshqarish tizimi (VCS) - bu sizning kodingizdagi o'zgarishlarni kuzatib boradigan va xatolarni tuzatish va vaqt o'tishi bilan nima o'zgarganini ko'rish kabi foydali xususiyatlarni taqdim etadigan vositadir. Zamonaviy taqsimlangan tizimlar boshqa dasturchilar bilan bir xil kod ustida ishlashni ham osonlashtiradi. Va ha, siz albatta versiya boshqaruvidan foydalanishingiz kerak!

Ikki eng mashhur taqsimlangan tizimlar - Git va Mercurial; Qaysi birini ishlatish sizning shaxsiy xohishingizga bog'liq, ammo biz ulardan birini tavsiya qilamiz.

Versiya boshqaruvidan foydalanishni qaerdan boshlash kerak?

Mercurial bo'yicha yaxshi va qisqacha qo'llanma -.

Kompyuterlar va operatsion tizimlar

Qaysi operatsion tizimdan foydalanishim kerak?

Ko'pgina yangi boshlanuvchilar uchun keng tarqalgan savol - qaysi operatsion tizimdan foydalanish yaxshiroq: Windows, Mac yoki Linux.

Bu haqiqatan ham muhim emas: bugungi kunda mavjud vositalarning sifati va imkoniyatlari barcha platformalarda taxminan teng bo'ladi va har qanday munosib dasturlash tili barcha operatsion tizimlarda foydalanish mumkin bo'ladi.

Shunday bo'lsa-da, ertami-kechmi, siz yangi operatsion tizimga duch kelganingizda (masalan, boshqa mashinaga o'tganingizda yoki yangi ishga kelganingizda) to'liq adashmaslik uchun uchta operatsion tizim bilan ko'proq yoki kamroq tanish bo'lishingiz kerak.

Ushbu qoidadan ikkita asosiy istisno mavjud:

  • Agar siz Windows uchun ishlab chiqmoqchi bo'lsangiz, Windows kompyuterini sotib oling.
  • Agar siz Mac yoki iOS uchun ishlab chiqmoqchi bo'lsangiz, Mac sotib oling.

Boshqa platformalarda C# kodini ishga tushirish uchun ba'zi yaxshi variantlar mavjud, biroq ba'zi Microsoft va .NET vositalari asosan Windows-ga asoslangan.

Har qanday kompyuterda Mac va iOS ilovalarini ishlab chiqish imkoniga ega bo‘lsangiz ham, ilovangizni kompilyatsiya qilish va App Store’ga yuklash uchun Mac’da Xcode’dan foydalanishingiz kerak bo‘ladi.

Va nihoyat, shuni ta'kidlash kerakki, u yoki bu operatsion tizimni tanlash sizning harakatlaringizni cheklamaydi: siz har doim boshqa operatsion tizim o'rnatilgan virtual mashinani ishga tushirishingiz mumkin. Misol uchun, agar mening kompyuterimda Windows o'rnatilgan bo'lsa, men Linux virtual mashinasini osongina o'rnatishim va uni mavjud Windows tizimiga xalaqit berishidan qo'rqmasdan foydalanishim mumkin.

Qaysi kompyuter/noutbuk sotib olishim kerak?

Umuman olganda, bu ham muhim emas: har qanday noutbuk yoki o'rta sinf kompyuter buni qiladi. Agar sizda allaqachon kompyuter yoki noutbuk bo'lsa, shunchaki foydalaning - yangisini sotib olishning hojati yo'q. Siz deyarli har qanday mavjud kompyuterda murakkab va qiziqarli dasturlarni dasturlash va yozishni o'rganishingiz mumkin.

Agar siz haqiqatan ham naqd pulga muhtoj bo'lsangiz yoki ishlaydigan kompyuteringiz bo'lmasa, Craigslist kabi saytlardan har doim foydalanilgan kompyuterlarni topishingiz yoki atrofingizdan so'rashingiz mumkin. Agar siz faqat o'qish uchun ketayotgan bo'lsangiz, hatto eski kompyuterda ham uzoqqa borishingiz mumkin.

Ammo agar siz dasturlash uchun foydalanmoqchi bo'lgan yangi kompyuter sotib olishingiz kerak bo'lsa, birinchi navbatda protsessorga, operativ xotira va qattiq disk miqdoriga e'tibor bering. Iloji bo'lsa, ushbu yoki undan yuqori xususiyatlarga ega kompyuterni sotib olishga harakat qiling:

  • CPU Intel i5 (3,0+ GHz)
  • RAM 4+ GB
  • qattiq disk 200+ GB
  • (ixtiyoriy) qattiq holatdagi disk

Iloji bo'lsa, qattiq diskdan ko'ra kuchliroq protsessor va ko'proq RAMga ega qurilmaga ustunlik berish yaxshiroqdir: ortiqcha protsessor kuchi hech qachon zarar qilmaydi. Aksincha, dasturlash odatda diskda juda ko'p joy talab qilmaydi - agar siz tasvirlar va videolar bilan ishlamasangiz yoki mashinani o'rganish va shunga o'xshashlar uchun katta ma'lumotlar to'plamlarini qayta ishlamasangiz. Biroq, bunday narsalarni bulutda saqlash mumkin.

Agar siz ish stoli kompyuterini sotib olmoqchi bo'lsangiz, bular muhim bo'lgan yagona xususiyatlardir. Agar harakatchanlik siz uchun muhim bo'lsa, noutbuk sotib oling va etarlicha katta ekran va dasturlash oson klaviaturaga ega bo'lishingizga ishonch hosil qiling. Biroq, noutbuklarda foydalanish qulayligi va portativlik o'rtasida ma'lum bir muvozanat mavjud:

  • Ekran qanchalik keng bo'lsa, batareya quvvati shunchalik qisqaroq bo'ladi (lekin siz o'rnatgan yorqinlik qanchalik past bo'lsa, batareyaning ishlash muddati shunchalik uzoq bo'ladi)
  • Ekran qanchalik kichik bo'lsa, unga kamroq sig'adi va siz tez-tez derazalar/ish stollari o'rtasida almashishingiz kerak bo'ladi. Ideal holda, u ish uchun qulay bo'lgan ikkita oynani joylashtirishi kerak.
  • Noutbuk qanchalik keng bo'lsa, u og'irroq bo'ladi va uni olib yurish qiyinroq bo'ladi.

Noutbukdan qanday foydalanishni rejalashtirayotganingizni ham ko'rib chiqishga arziydi. U kun bo'yi stolda o'tiradimi yoki siz uni o'zingiz bilan olib yurasizmi yoki u bilan sayrga chiqasizmi?

Iloji bo'lsa, siz tanlagan har bir noutbukni sinab ko'ring. Agar, masalan, ulardan birining klaviaturasida yozish noqulay bo'lsa va siz bunga ko'nikmasangiz, qog'ozda qanchalik jozibali ko'rinmasin, bunday noutbukdan voz kechganingiz ma'qul.

Qo'shimcha ma'lumot va batafsil yordamni quyidagi subredditlarda topish mumkin - ular ko'proq moslashtirilgan maslahatlarni taklif qiladi:

Shuningdek, Chromebook-larni sotib olishni diqqat bilan ko'rib chiqing: siz ularni sozlashingiz yoki onlayn muharrirlar va IDE-lardan foydalanishingiz kerak, shuningdek, Internetga doimiy kirish kerak bo'ladi. Batafsil ma'lumotni havolalarda o'qing:

Eng yaxshisi, asosiy dasturlash vositasi sifatida planshet yoki smartfonlardan foydalanish kerakmi, deb o'ylashingiz kerak. Planshetlarda yoki smartfonlarda dasturlash biroz harakat bilan mumkin bo'lsa-da, dasturiy ta'minotni ishlab chiqish deyarli har doim ish stoli yoki noutbukda klaviatura yordamida amalga oshiriladi.

Agar sizga ma'lum bir ishlab chiqaruvchini tanlash bo'yicha maslahat kerak bo'lsa, shuni yodda tutingki, kompyuteringiz dasturlash uchun hech qanday super kuchlarni talab qilmaydi: yaxshi umumiy maqsadli kompyuter dasturlashda yaxshi bo'lishi mumkin. (Bu yaxshi noutbukni izlashni osonlashtiradi, chunki siz dasturchilarga mo'ljallangan qurilmani tanlashingiz shart emas.)

Oxirgi mumkin bo'lgan ogohlantirish: Agar siz faqat mashinani o'rganishga, tabiiy tilni qayta ishlashga yoki grafikaga (shu jumladan o'yinni ishlab chiqishga) e'tibor qaratmoqchi bo'lsangiz, GPU-ga ega qurilma sotib oling. Bularning barchasi uchun bu ixtiyoriy, lekin kodni ko'pincha grafik protsessorlarda ishlash uchun yozish orqali tezlashtirish mumkin.

Agar siz mashinani o‘rganish yoki tabiiy tillarni qayta ishlashga ko‘proq qiziqsangiz, Web Services (AWS) yoki Google Compute Engine (GCE) kabi xizmatlardan foydalangan holda bulutda GPU’li mashinalarni nisbatan arzon narxlarda ijaraga olishingiz mumkinligini yodda tuting.

Karyera va ish

Dasturlash bilan ko'p pul ishlash mumkinmi?

Ehtimol, lekin agar siz yaxshi dasturchi bo'lsangiz. Santexnik yoki boshqa sohada katta pul ishlashingiz mumkin. Lekin siz pul ishlamasligingiz mumkin. Dasturchi kasbi bunga yuz foiz kafolat bermaydi.

Informatika darajasisiz dasturlash bo'yicha ishga kirish mumkinmi? Yoki umuman oliy ma'lumot yo'qmi?

Kompyuter fanlari darajasiga ega bo'lmasdan, dasturchi sifatida ishga kirish, xuddi hech qanday darajaga ega bo'lmasdan ham mumkin, ammo istiqbollar yomonroq bo'ladi. Biz, albatta, universitetni tark etishni tavsiya etmaymiz. Agar dasturlash siz uchun bo'lmasa, mutaxassisligingizni o'zgartiring. Siz uchun o'qishni yakunlash ish qidirishda muvaffaqiyat qozonish imkoniyatingizni oshiradi.

Turli kasbiy savollarga batafsil javoblarni /r/cscareerquestions sahifasida so'rash orqali topishingiz mumkin.

Qanday qilib bu sohaga kirish va boshlang'ich pozitsiyani egallash mumkin?

Ushbu subreddit mavzudan biroz chetda: martaba bilan bog'liq savollar eng yaxshi /r/cscareerquestions-da so'raladi va ularning keng qamrovli wiki sahifasida qidiriladi.

Ammo, umuman olganda, ko'pchilikning javoblari quyidagilarga to'g'ri keladi:

  • Potentsial yollovchilarni ko'rsatishingiz va rezyumeingizga qo'shishingiz mumkin bo'lgan original loyihalar portfelini yarating. Bu sizning maktab loyihalaringiz, mustaqil yon loyihalar, maktab va universitetdagi klublar loyihalari, tadqiqot yoki ko'ngilli loyihalar yoki amaliyot paytida yoki oldingi ishlarda amalga oshirilgan loyihalar va boshqalar bo'lishi mumkin. Kuchli portfel ish beruvchilarga muammolarni hal qilish uchun dasturlash tillari, kutubxonalar va texnologiyalardan muvaffaqiyatli foydalanishingiz mumkinligini ko'rsatadi va ularga mahorat darajangizni aniqroq baholash imkoniyatini beradi.
  • To'liq kunlik ish emas, avvalo stajirovka izlagan ma'qul. Amaliyot olish osonroq va ular odatda munosib haq to'laydilar.
  • Siz, albatta, ma'lumotlar tuzilmalari va algoritmlarini yaxshi tushunishingiz kerak. Ko'pgina intervyular, ayniqsa kirish darajasidagi lavozimlar uchun, kodlash topshiriqlarini o'z ichiga oladi - veb-saytda yoki oq doskada.

Keyin nima qilish kerak?

Endi yangi boshlovchi emas

Shunday vaqt keladiki, barcha dasturchilar ulg'ayib, keyin ular muammoga - haqiqiy dunyoga duch kelishadi. Haqiqiy dunyoda hech kim sizning qo'lingizni ushlab turmaydi va sizni hayot davomida boshqarmaydi. Endi siz o'zingiz oldinga borishni o'rganishingiz kerak. Agar siz shu nuqtaga yetib kelgan bo'lsangiz, ehtimol siz dasturlash, veb-ishlab chiqish, algoritmlar yoki boshqa biror narsa bo'ladimi, qiziqish sohasini allaqachon ishlab chiqqansiz. Ehtimol, siz dasturlash bilan bog'liq boshqa sohalarni o'rganishni xohlaysiz yoki shunchaki keyin nima qilish kerakligini aniqlaysiz.

Dasturlash shunchaki vositadir

Dasturlashni boshlaganingizda, siz ikkinchi reddit yoki aql bovar qilmaydigan grafiklarni yaratish yoki turli xil algoritmlarni qanday ishlatishni o'rganishning kelajagi haqida o'ylagan bo'lishingiz mumkin. Xo'sh, agar siz endi o'zingizni boshlang'ich deb hisoblamasangiz, unda dasturlash sizning asboblar arsenalingizga qo'shildi. Endi siz undan qanday foydalanishni o'rganishingiz va ko'nikmalaringizni mustahkamlashingiz kerak. Tez orada siz bu narsalarni qila olasiz va ular haqida hamma narsani bilib olasiz.

Dasturlash ko'nikmalaringizni qanday yaxshilash mumkin

Dasturlash bilan shug'ullanadigan ko'p odamlar etarli darajada bilmasligidan qo'rqishadi. Shuning uchun ko'pchilik o'z mahoratini oshirishga intiladi. Ammo bu bosqichda buni qilishning yagona yo'li bor - mashq. O'qitish uchun ko'plab saytlar va manbalar mavjud, masalan, /r/dailyprogrammer, CodeWars, HackerRank, Project Euler va boshqalar.

Turli xil

Bolaga dasturlashni qanday o'rgatish kerak?

Bu yoki boshqa shaklda bu savol tez-tez paydo bo'ladi. O'z so'rovingizni yuborishdan oldin ushbu so'rovni ko'rib chiqing - u allaqachon javob bergan bo'lishi mumkin. Agar siz yangi savol qo'yishga qaror qilsangiz, iltimos, o'rganishga bo'lgan ehtiyojingiz avval e'lon qilingan savollardan qanday farq qilishini aniq tushuntirishga harakat qiling.

Scratch - Massachusets texnologiya instituti tomonidan ishlab chiqilgan 8-16 yoshdagi bolalar uchun ajoyib vosita. Qo'shimcha dasturlarni o'rnatmasdan brauzer orqali ishlaydi.

Shuningdek, /r/ProgrammingForKids-ni ham ko'rishingiz mumkin - ushbu masalaga bag'ishlangan subreddit. Ko'p resurslar mavjud.

Ochiq kodli loyihalarga qanday hissa qo'shish mumkin?

GitHub-dagi /r/learnprogramming guruhiga hissa qo'shing! U jfredett tomonidan maxsus loyihalarga mezbonlik qilish uchun yaratilgan bo'lib, ular orqali yangi boshlanuvchi dasturchilar tajribali dasturchilar va murabbiylar bilan muloqotda bo'lish orqali ochiq manbalarni ishlab chiqishni o'rganishlari mumkin.

Guruh yaqinda tashkil etilgan, uni bir necha kishi targ'ib qilmoqda.

Agar sizning savolingiz haqiqatdan ham sezilarli darajada farq qilsa va ushbu tez-tez beriladigan savollardagi javoblar siz uchun ishlamasa, iltimos, postingizda tez-tez so'raladigan savollarni o'qib chiqqaningizni ko'rsating va savolingiz qanday farq qilishini va nima uchun mavjud javoblar sizga yordam bermasligini yozing. Bu sizning savolingizga javob topish uchun ishni allaqachon bajarganingizni anglatadi va sizga aniqroq javob berishga yordam beradi.

/r/learnprogramming wiki-ni qanday tahrirlashim mumkin (jumladan, ushbu tez-tez so'raladigan savollar)?

Sizning kiritishingizni mamnuniyat bilan qabul qilamiz, lekin tahrir qilish uchun sizga kamida 30 kunlik va ushbu subredditda kamida 200 ta izoh karmasi bo'lgan hisob qaydnomasi kerak bo'ladi (butun reddit emas). Ushbu shartlar bajarilgandan so'ng, wiki sarlavhasida "tahrirlash" tugmasi paydo bo'ladi. Vaqtingiz yoki karmangiz kam bo'lsa, qo'shmoqchi bo'lgan matn bilan mavzu bo'yicha oddiy post yarating: agar u sifatli bo'lsa, tahrirlay oladigan kimdir uni deyarli albatta siz uchun nashr etadi.

Iqtisodiyot va butun hayotimiz kundan-kunga raqamli bo'lib bormoqda va mehnat bozori veb-saytlar va dasturiy mahsulotlar yaratish uchun ko'proq malakali odamlarni talab qiladi. Mamlakatda aqlli mutaxassislarga munosib ish haqi to'lashga va ularning ishi uchun eng qulay sharoitlarni yaratishga tayyor bo'lgan dasturchilar va ishlab chiquvchilar kerak;

Yangi boshlanuvchilar uchun noldan birinchi amaliyot va taniqli rus IT-kompaniyalarida ishga joylashishgacha bo'lgan veb-dasturlash tillari asoslarini o'rganadigan 10 ta eng yaxshi onlayn kurslar haqidagi shaxsiy reytingimni o'qing. Ular rus tilida, shu jumladan maktab o'quvchilari va o'smirlar uchun mavjud. Bu erda HTML va CSS dan 1C, PHP, Java, Python, Ruby va C# gacha bo'lgan eng mashhur tillar bo'yicha kurslar mavjud. Maqolani oxirigacha o'qiganlar bepul kurslar va intensiv dasturlash uchun havolalar oladi :)

1. SkillFactory tomonidan veb-ishlab chiquvchilar uchun Python

Ma'lumotlar fanlari, mashinalarni o'rganish va sun'iy intellekt so'nggi yillardagi eng issiq texnologiya tendentsiyalaridir. Dasturchi bo'lmoqchi bo'lganlar, birinchi navbatda, Python kabi tilni o'zlashtirishga diqqat bilan qarashlari kerak, chunki u ushbu sohalarda eng ko'p qo'llaniladi.

SkillFactory Lamoda ilmiy-tadqiqotchi dasturchisi Igor Bosyagin bilan birgalikda Python, Django ramkasida dasturlash asoslarini o'zlashtirishga va 6 oy ichida birinchi ilovalaringizni ishlab chiqishga yordam beradi. Sizni foydali aloqalar bilan uchrashuv, kurs oxirida imtihon, sertifikat, shuningdek, amaliyot va ishga joylashishda yordam kutmoqda. Kurs dunyoning istalgan nuqtasidan mavjud.

Kursning narxi kursda joy bron qilingan sana va mavjud joylar soniga qarab 33 900 dan 48 900 gacha. Blog sayti o‘quvchisi sifatida arizani to‘ldirganingizdan so‘ng menejerga igaryoh kod so‘zini aytib, 10% chegirmaga ega bo‘lishingiz mumkin. Dastur haqida ko'proq o'qing va ushbu havola orqali kursga yoziling.

3. GeekBrains-dan veb-dasturchi kasbi

GeekBrains - bu Mail.ru Group ekotizimining bir qismiga aylangan ta'lim loyihasi bo'lib, xodimlarni birinchi navbatda ushbu IT giganti ehtiyojlari uchun, ko'pincha o'z mutaxassislari tomonidan tayyorlaydi. Noldan veb-dasturchi kasbi bu erda 10 oy davomida oyiga deyarli 8 ming rubldan vebinarlar orqali beriladi.

Bu eng qimmat variant, lekin kasb bilan bir qatorda ingliz tilidagi bepul kurslar va ma'lumotlar bazalari bonus sifatida kiritilgan. Agar siz Mail.ru Group yoki uning hamkorlarida ishlashga qiziqsangiz, unda GeekBrains onlayn universitetiga ro'yxatdan o'ting .

Format: vebinarlar + uy vazifalarini ko'rib chiqish.

Davomiyligi: 10 oy.

Narxi: oyiga 7997 rubl.

4. Netologydan veb-dasturchi kasbi

Veb dasturchi - bu turli xil vositalarni o'zlashtirishni talab qiladigan eng mashhur va tegishli kasb. Onlayn universitetlar ushbu kasbni 8-12 oy ichida taqdim etadilar. O'qituvchilar taniqli IT-kompaniyalarning tajribali amaliyotchilari bo'lib, talabalarga real loyihalarda mashq qiladigan ko'nikmalarni beradi. Natijada bitiruvchilar malaka, tajriba, diplomlar, portfel loyihalari va hamkor kompaniyalarda ishga joylashish imkoniyatiga ega bo‘ladilar.

Netologiyada bu ixtisoslik "to'liq stek ishlab chiqaruvchisi" deb ataladi. Bu shuni anglatadiki, ushbu kurs bitiruvchisi boshidan oxirigacha veb-sayt yoki veb-ilovani yaratishi mumkin, bu "kalit taslim" deb ataladi. Dasturda ro'yxatdan o'tishingiz mumkin.

Format

Davomiyligi: 8 oy.

Narxi

Shuningdek o'qing:

5. Skillbox-dan veb-dasturchi kasbi

Skillbox-da shunga o'xshash mutaxassislik bo'yicha o'qitish 12 oy davom etadi, ammo arzonroq bo'lishi mumkin. Bu yerda jonli vebinar o‘rniga siz videoma’ruza yozuvlarini tomosha qilasiz, lekin istalgan qulay vaqtda. Tafsilotlar va ro'yxatdan o'tish ushbu havola orqali amalga oshiriladi.

Format: videoma'ruzalar + uy vazifasini video tahlil qilish.

Davomiyligi: 12 oy.

Narxi: 39 000 - 50 000 rub. yoki yillik to'lovlar 3900 rubl. oyiga.

6. Netologydan Frontend dasturchi kasbi

Frontend ishlab chiqaruvchisi asosiy e'tiborni sayt ko'rinishini va uning interaktiv elementlarini ishlab chiqishga qaratadi va deyarli server qismi bilan shug'ullanmaydi ("qopqoq ostidagi" hamma narsa). Netologiya bo'yicha "front-tender" bo'lish uchun trening 8 oy davom etadi. Mutaxassislik, o'quv dasturi va ro'yxatdan o'tish haqida batafsil ma'lumot ushbu havolada.

Format: vebinarlar + uy vazifasi bo'yicha fikr-mulohazalar.

Davomiyligi: 8 oy.

Narxi: 48 900 - 62 900 rub. yoki yillik to'lovlar 5240 rubl. oyiga.

7. GeekBrains-dan Frontend Developer kasbi

7 oy ichida siz GeekBrains-da front-end dasturchisi bo'lishingiz mumkin. Narx Netology bilan taxminan bir xil bo'ladi. Lekin bo‘lib-bo‘lib to‘lash rejasi 12 oyga emas, 7 oyga mo‘ljallangan. Tafsilotlar va ro'yxatdan o'tish.

Format: vebinarlar + uy vazifalarini ko'rib chiqish.

Davomiyligi: 7 oy.

Narxi: 7 141 rubl oyiga.

8. Skillbox-dan PRO-ga noldan PHP ishlab chiqaruvchisi

PHP ishlab chiquvchilari, birinchi navbatda, ko'pgina zamonaviy veb-saytlar, jumladan, hozir o'qiyotgan saytlar ustida ishlaydilar. Skillbox-da bu sohani asosan Rossiyadagi yetakchi veb-integrator QSOFT mutaxassislari o'rgatishadi. Ular buni bir yil davomida o'rgatishadi, lekin nisbatan arzon narxda. Ushbu havola orqali kursga yozilishingiz mumkin.

Format: videoma'ruzalar + uy vazifasini video tahlili.

Davomiyligi: 12 oy.

Narxi: 29 000 - 50 000 rub. yoki yillik to'lov rejasi 2900 rub. oyiga.

GeekBrains sizga xuddi shu sohani atigi olti oy ichida o'rgatishga tayyor, ammo narxi Skillbox-dan qimmatroq bo'lishi mumkin. Tafsilotlar va ro'yxatdan o'tish. Netologiyada PHP va ma'lumotlar bazalari bo'yicha kurs 2 oy davom etadi va 22,00 - 25,000 rublni tashkil qiladi, ammo bu ma'lumot maqolani diqqat bilan o'qiganlar uchundir. Havola shu yerda.

Shuningdek o'qing:

9. Netology'dan Python dasturchisi

Netology'dan Python tilini o'rganish uchun chuqurroq dastur - u deyarli bir yil davom etadi va HTML/CSS, JavaScript va Django sohalarida modullarni o'z ichiga oladi. Tafsilotlar.

Format: vebinarlar + uy vazifasi bo'yicha fikr-mulohazalar.

Davomiyligi: 11 oy.

Narxi: 48 900 - 62 900 rub. yoki yillik to'lovlar 5240 rubl. oyiga.

10. Skillbox-dan noldan mobil dasturchi

Odamlar mobil qurilmalardan tobora ko'proq foydalanmoqda, shuning uchun mobil qurilmalarni ishlab chiqish ishlari ko'lami va mobil ilovalarni ishlab chiquvchilarga talab ortib bormoqda. Skillbox noldan boshlab yangi boshlanuvchilar uchun mobil Java/iOs/Android ishlab chiqish bo'yicha keng qamrovli bir yillik kursni taklif etadi. Bu haqda batafsil o'qing va bu erda ro'yxatdan o'ting, Java dasturchisi. Xuddi shu kompaniyaga biz Skillbox-dan Java dasturchi kursini qo'shamiz.

Va nihoyat, shirinlik uchun qolgan narsa - bu bepul. Hamma ham pul uchun o'qish imkoniyatiga ega emasligi aniq, lekin bepul o'qish imkoniyati rasman mumkin va 17-band bu haqda.

Bepul dasturlash kurslari

Bugungi kunda o'zini o'zi o'rgatgan ishlab chiquvchilarning ko'pchiligi o'z mashg'ulotlarini veb-dasturlashni, xususan gipermatn belgilash tili (HTML) va kaskadli uslublar jadvallarini (CSS) o'rganishdan boshladilar. Netology sizga ikki hafta ichida taniqli IT-kompaniyalarning tajribali dasturchilari rahbarligida ushbu mavzularni bepul o'rganish imkoniyatini beradi. Agar dasturlash sayohatingizni endigina boshlayotgan bo'lsangiz, ushbu havola orqali ro'yxatdan o'ting.

Netology'dan dasturchilar uchun boshqa pullik kurslar bu havolada va GeekBrains'dan bu yerda.

P.S.: Men Moskva, Sankt-Peterburg, Yekaterinburg, Minsk, Novosibirsk, Nijniy Novgorod, Krasnodar va Rossiya va MDHning boshqa shaharlarida dasturlash kurslarini izlayotgan har bir kishiga hali ham onlayn kurslarni tanlashni qat'iy maslahat beraman, chunki bu onlayn texnologiyalardir. hamyonbop narxlarda (ijara xarajatlari yo‘qligi sababli) eng sifatli ta’lim mahsulotlarini yaratish, shuningdek, eng yaxshi o‘qituvchilar va ish beruvchilarni poytaxtlardan eng olis hududlardagi talabalar va bo‘lajak xodimlar bilan bog‘lash. Bundan tashqari, onlayn ta'lim ko'nikmalari xorijiy maktablarda masofaviy ta'lim uchun ham foydali bo'ladi.

Men rivojlanish, ta'lim, startaplar, kontent marketingi va biznes xizmatlari haqida yozaman.

Pobuna bo'ling Instagramda menga, oldinzavqlanish

O'z-o'zidan dasturlashni o'rganish orqali dasturlash karerasiga yo'lni qanday boshlash kerak? Bu deyarli barcha yangi boshlanuvchilar tomonidan so'raladigan ko'plab forumlarda eng mashhur savollardan biridir.

Birinchidan, siz asosiy tamoyilni o'rganishingiz kerak, eng muhimi - Internet, turli adabiyotlar va ilmiy maqolalardan foydalanib, mustaqil ravishda ma'lumot qidirishni o'rganing. Bu ko'nikmasiz o'z kuchingiz bilan biror narsani, ayniqsa dasturlashni o'rganish mumkin emas. Internetda noldan o'rganish uchun juda ko'p saytlar, kitoblar va ilovalar mavjud, ammo darhol o'tirib, bu yangi ma'lumotlar massasiga sho'ng'ish yangi boshlanuvchilar uchun eng oson yo'l emas. Bunday holda, tajribali murabbiy topsangiz, bu juda foydali bo'ladi. U maslahat beradi va sizga to'g'ri qaror qabul qilishga va qiyin vaziyatda biror narsani tushuntirishga yordam beradi. Bunday murabbiyni tanish dasturchilaringiz, shuningdek, turli tematik forumlar va onlayn konferentsiyalar orqali topish mumkin.

Yangi boshlovchi qilish kerak bo'lgan navbatdagi qadam uning uchun to'g'ri dasturlash tilini tanlashdir. Yakuniy maqsadni bilish bu masalada ko'p yordam beradi - nima uchun dasturlashni va ma'lum bir tilni o'rganish kerak edi. Agar bunday ma'lumot bo'lmasa, tilni tanlashda siz quyidagi printsiplarga amal qilishingiz mumkin: kirishning past darajasi - dasturlash istagini yo'qotmaslik uchun, bozorda yaxshi bo'sh ish o'rinlarining mavjudligi - ta'limdan so'ng sizni yaxshi maoshli ish topishi mumkin. Siz bu bosqichga haddan tashqari yopishib qolmasligingiz kerak, chunki bu "ideal" tilni izlashga ko'p vaqt sarflashdan ko'ra, "har qanday" tildan boshlagan ma'qul. Axir, keyinchalik bir tilning asosiy bilimlarini o'zlashtirgandan so'ng, hech qanday qiyinchiliksiz boshqasini o'rganishga o'tish mumkin bo'ladi.

Endi eng muhim nuqta - bu amaliyot. Ko'pgina yangi odamlar bunga sekin. O'z kodingizning birinchi qatorlarini iloji boricha tezroq yozishni boshlash juda muhim, garchi bu juda qiyin bo'lib tuyulsa ham. Siz darsliklardagi barcha topshiriqlarni bajarishingiz, u erdan misollarni qayta chop etishingiz va ularni o'zlashtirganingizdan so'ng, ularni o'z g'oyalaringiz bilan murakkablashtirishingiz mumkin. Shuningdek, siz o'z loyihalaringizni olish uchun ro'yxatdan o'tishga harakat qilishingiz mumkin. Ha, yangi boshlanuvchilar uchun buyurtmalarni qidirish va bajarish juda qiyin bo'ladi, lekin keyinchalik ish beruvchiga ko'rsatishdan uyalmaydigan haqiqiy tajriba bo'ladi.

Yuqorida aytilganlarning barchasiga qo'shimcha ravishda, ochiq kodli loyihalarda yaxshi tajriba orttirish mumkin. Bu haqiqiy ishlab chiquvchilar bilan muloqot qilish, ulardan qimmatli maslahatlar olish, shuningdek, haqiqiy ishda ishtirok etish imkoniyati - bunday loyihalarda yangi boshlanuvchilar ham kerak. Agar siz ishtirok eta olmagan bo'lsangiz, tushkunlikka tushmang, u erda siz kimningdir tayyor kodini o'rganishingiz va uni o'zingiz o'zgartirishga harakat qilishingiz mumkin.

Va nihoyat, muvaffaqiyatsizliklar va muvaffaqiyatsizliklar bilan bog'liq bo'lgan oxirgi, ammo ahamiyatsiz nuqta. Shuning uchun siz ulardan qo'rqmasligingiz kerak. Qanchalik ko'p kuch sarflangan bo'lsa, biror narsani o'rganish qanchalik qiyin bo'lsa, kelajakda u shunchalik oson bo'ladi va o'rganilgan ma'lumotlar xotirada uzoqroq bo'ladi. Muvaffaqiyatsiz bo'lgan urinishlar, agar to'g'ri tahlil qilinsa va xatolar aniqlansa, chuqurroq tushunishga yordam beradi. Xatolaringizni tahlil qilish, ularni topish va o'zingiz tanqid qila bilish nafaqat dasturlashni, balki boshqa fanlarni ham mustaqil o'rganish uchun zarur bo'lgan juda muhim fazilatlardir. Va eng muhimi, o'zingizga va muvaffaqiyatingizga ishonishdir. Uning mavjudligi o'rganish samaradorligiga ijobiy ta'sir ko'rsatadi va agar siz o'zingizga va qobiliyatingizga ishonchingiz komil bo'lsa, dasturlashni mustaqil o'rganish muvaffaqiyat qozonishiga ishonish uchun barcha asoslar mavjud.

Ko'pchilik dasturchi bo'lishni tanlashining asosiy sababi mehnat bozoridagi talabdir. Uni o‘zlashtirgan har bir kishi hamisha ro‘zg‘or tebratadi. Talabdan kelib chiqqan holda, ushbu profildagi mutaxassislar yuqori ish haqi va yaxshi ish sharoitlariga ishonishlari mumkin. Yaxshi pul topish uchun yaxshi dasturchiga muvaffaqiyatli odamlarning aloqalari, boy ota-onalari va boshqa imtiyozlari kerak emas.

Yo'nalishni tanlash

Har qanday maxsus dasturlash tizimini o'rganishni boshlashdan oldin, siz qaror qabul qilishingiz kerak aniq qanday dasturiy ta'minot yaratmoqchisiz, ya'ni yo'nalishni tanlash haqida qaror qabul qilasiz. Hozirgi vaqtda ushbu sohada mavjud uch yo'nalish: veb yoki veb-sayt yozish, amaliy va tizimli dasturlash. Keling, ularning har birini qisqacha ko'rib chiqaylik:

  • Endi veb-saytlar juda ko'p turli xil imkoniyatlarga ega bo'lib, ularni to'liq huquqli ilovalar deb atash mumkin. Mavjud tillarning ikki turi veb uchun dasturlash. Ba'zilari serverda skriptlarni bajarish uchun mo'ljallangan, bular PHP, Ruby, Perl, Puthon. Boshqalar mijoz mashinasida brauzerda ishlaydigan skriptlarni yozish uchun kerak;
  • amaliy dasturlash oxirgi foydalanuvchi uchun dasturiy ta'minot yozishni o'rganadi. Bular buxgalteriya hisobi, ma'lumotlar bazalari bilan ishlash dasturlari, shuningdek o'yinlar, video tomosha qilish uchun dasturlar va boshqalar bo'lishi mumkin;
  • tizim dasturchisi kompyuterning ishlashi uchun zarur bo'lgan va boshqa IT mutaxassislari tomonidan foydalaniladigan drayverlar, kompilyatorlar va boshqa dasturlarni yozish bilan shug'ullanadi.

Til tanlash

Faoliyatingizdan birini tanlaganingizda, avvalo o'rganishingiz kerak bo'lgan dasturlash tillaridan birini tanlashingiz kerak. Barcha dasturlash tizimlari bo'lingan ikki turga bo'linadi. Kompilyatsiya qilingan tillarda dastlabki kod maxsus dastur yordamida bajariladigan faylga aylantiriladi. Tarjima qilingan yoki skript tilida yozilgan dasturiy ta'minot manba kod faylida yozilgan qatorlar bo'ylab ketma-ket bajariladi.

Ta'riflanganlar orasida Bugungi kunda eng mashhurlari PHP, Python va Perl.

Veb-saytlarni yozish uchun eng mashhuri PHP. Uning o'ziga xosligi shundaki, uni ishlab chiqish jarayonini hech kim ishlab chiqmagan yoki boshqargan va shuning uchun unda sozlamalar turli joylarda joylashgan bo'lishi mumkin bo'lgan qoidalar uchun javobgar bo'lgan uslub yo'q; Asosiy afzalligi shundaki, uni o'rganish oson, siz kompyuterda o'tirib, ikki soat ichida PHP yozishni boshlashingiz mumkin;

Perl turli matnli ma'lumotlarni qayta ishlash uchun yaratilgan. Internet paydo bo'lishi bilan u veb-saytlar uchun skriptlarni yozish uchun ishlatila boshlandi. Endi PHP mashhurligidan past.

Python O'rganish oson til deb hisoblanadi. Oddiy sintaksisga qaramay va standart kutubxonaga kiritilgan ko'plab funktsiyalar tufayli u juda yuqori funksionallikka ega. Python uchun uchinchi tomon dasturchilari tomonidan ishlab chiqilgan ko'plab kutubxonalar mavjud bo'lib, ular ushbu tilning imkoniyatlarini yanada kengaytiradi. Python ham dasturlar yozish, ham turli kengaytmalarni yaratish uchun ishlatiladi.

Kompilyatorlar orasida Ikki til mavjud: C++ va Java.

Yoniq C++ Ular turli xil dasturiy ta'minotni yozadilar, lekin ular veb-saytlarni yaratishda deyarli foydalanmaydilar. Ajam dasturchi uchun bu til qiyin. C++ dasturi ishlab chiquvchidan yuqori malaka talab qiladi, ammo bunday ish shunga yarasha to'lanadi.

Java kompyuterda ham, smartfon va boshqa qurilmalarda ham turli platformalarda ishlashi mumkin bo'lgan dasturlarni yozish uchun mo'ljallangan. Dastlabki dastur mashina kodiga emas, balki maxsus Java mashinasida bajariladigan maxsus baytekodga aylantiriladi. Buning yordamida ushbu tilda yozilgan dasturiy ta'minot Java mashinasi o'rnatilgan har qanday qurilmada ishlaydi. Java-ning eng mashhur usullaridan biri bu Android ilovalarini yozishdir. Bu tilni o'rganish C++ ga qaraganda osonroq va unda yomon dastur yozish qiyinroq.

Qanday qilib dasturchi bo'lish mumkin

Har qanday dasturni yozishdan oldin siz qilishingiz kerak talablarni belgilash ushbu dasturga, ya'ni foydalanuvchiga nima kerakligini aniqlash, fan sohasini o'rganish. Bunga qarab siz rivojlanish tilini tanlashingiz mumkin. Xuddi shunday, yangi tilni o'rganayotganda, siz qanday dasturlarni yozmoqchi ekanligingizni aniqlab olishingiz va shu asosda o'rganishingiz kerak bo'lgan materialni tanlashingiz kerak.

Uchun veb-saytlar yozish chiroyli dizayn yaratish uchun HTML va CSS-ni bilishingiz kerak bo'ladi. Mijoz brauzerida ishlaydigan skript yaratishingiz uchun sizga JavaScript ham kerak bo'ladi. Mijoz tomoni funksionalligi ko'pincha PHP da amalga oshiriladi.

Tizim dasturchilari odatda C va Assemblerda yoziladi.

Amaliy dasturlar va biznes dasturlari odatda C++ yoki Java tilida yoziladi.

Muayyan dasturlash tilini noldan o'rganishni boshlashdan oldin, siz o'rganishi kerak algoritmlar haqida asosiy nazariy ma'lumotlar, shartli tarmoqlanish, tsikllar, funktsiyalar nima ekanligini bilish. Bo‘lajak dasturchining matematikani bilishi va sanoq tizimlari haqida tushunchaga ega bo‘lishi ham foydalidir. Shuningdek, siz ingliz tilida texnik ma'lumotlarni o'qiy olishingiz kerak. Kitoblar, odatda, rus tilida nashr etilishidan oldin ham eskirib qoladi, chunki kitob yozish uchun vaqt kerak, keyin uni rus tiliga tarjima qilish kerak va bu vaqt ichida ma'lumotlar allaqachon eskirib qoladi.

O'zingiz o'qishni boshlash uchun eng yaxshi joy - bu o'quv saytlarini qidirish. Agar trening haqiqiy loyihalarni tahlil qilish orqali amalga oshirilsa, eng yaxshisi, u erda siz uchun qiziqarli bo'lgan dastur qanday yaratilganligini va uni yaratishning barcha bosqichlarini ko'rishingiz mumkin. Bundan tashqari, dasturlashni o'rganish uchun rasmiy hujjatlar va kitoblarni o'qishingiz kerak.

Endi turli xil masofaviy va yuzma-yuz kurslar mavjud bo'lib, ularda mashg'ulotlar maxsus ishlab chiqilgan professional dasturlarga muvofiq jonli murabbiy bilan olib boriladi, unga savollar berishingiz mumkin. Bilim olishning bu usulining yagona kamchiligi shundaki yuqori narx.

Amaliyotsiz dastur yozishni o'rganish mumkin emas. Siz kichik va oson loyihadan boshlashingiz kerak. Uni tugatgandan so'ng, yanada murakkab dasturlarni yozishni boshlashingiz mumkin.

Yangi boshlanuvchilar uchun dasturiy ta'minot yaratishni o'rganishning yaxshi usuli - bu foydalanishni o'rganishdir ustoz. Do'stlaringiz orasida siz bilan maslahatlashishga rozi bo'lgan dasturiy ta'minot ishlab chiqaruvchisi bo'lsa, siz juda omadli bo'lasiz.

Bundan tashqari, yaxshi dasturchi bo'lish va zamon bilan hamnafas bo'lish uchun siz doimo yangi mahsulotlarni kuzatib borishingiz kerak.

Dastur yozishni o'rganishingiz mumkin bo'lgan eng yaxshi xorijiy xizmatlar

Keling, o'qitish uchun bir nechta xizmatlarni ko'rib chiqaylik:


  • Yoniq Kod maktabi HTML/CSS, JavaScript, Ruby, Python, .NET, iOS, Git va boshqalarda bepul dasturiy ta'minot ishlab chiqishni o'rganishingiz mumkin. Ushbu resursda o'rganishni boshlash uchun avval ro'yxatdan o'tishingiz kerak. Shundan so'ng siz o'zingizni qiziqtirgan kurslar va darslarni ko'rib chiqishingiz mumkin. Bundan tashqari, saytdan videolarni kompyuteringizga yuklab olishingiz mumkin.
  • Saytda Daraxt uyi boshqa o'quv platformalarida topish qiyin bo'lgan ko'plab kurslar mavjud, masalan, Android kursi, o'yinni rivojlantirish kursi. Shuningdek, raqamli biznes, C# dasturlash, ma'lumotlar bazalari, Ruby va boshqa qiziqarli o'quv dasturlari bo'yicha kurslar mavjud.
  • Platformani yaratishda Udacity Stenford universiteti eng bevosita ishtirok etdi. Qanday qilib noldan dasturlashni o'rganish uchun siz ro'yxatdan o'tishingiz kerak. O'qish muddati yo'q, siz o'zingizning xohishingiz bilan o'rganishingiz mumkin; Barcha kurslar qiyinchilik darajasiga ko'ra guruhlarga bo'lingan; axborot texnologiyalaridan mutlaqo bexabar bo'lganlar uchun ham, ilg'or talabalar uchun ham o'quv materiallari mavjud.

Dasturiy ta'minot ishlab chiqaruvchisi sifatida ish topish uchun sizda tugallangan loyiha va afzalroq bir nechta bo'lishi kerak. Loyihani yaratish uchun siz boshqa yangi ishlab chiquvchilar bilan hamkorlik qilishingiz yoki mustaqil birjada loyihani yakunlashingiz mumkin. Bundan tashqari, intervyuga borishdan oldin siz Internetni qidirib topishingiz va suhbat davomida berilgan vazifalarni hal qilishingiz kerak.

Dasturlashni noldan o'rganishni qaerdan boshlash kerak?
Ushbu maqolada men mustaqil ravishda noldan dasturchi bo'lish mumkinmi va mustaqil ravishda dasturlashni o'zlashtirish va undan pul ishlashni boshlash uchun qanday imkoniyatlar borligini batafsil tahlil qilishga harakat qildim.
UPD: 2018-yilda noldan dasturlashni oʻrganishni qayerdan boshlashni izlayotganlar (yoki endigina 2019-yilda boshlashga tayyorlanayotganlar :)) Yakov Kramarenkoning “Dasturiy taʼminotni ishlab chiqishga kirish” kitobi tufayli juda omadli. Men buni tekshirib ko‘rishni chin yurakdan tavsiya qilaman – bu o‘z-o‘zidan kodlashni o‘rganayotganlar uchun №1 Google reytingi va o‘quvchilarning sharhlari bilan yangilanishga arziydi.

Men eng yaxshisini berishga harakat qildim - mening fikrimcha. Men sizni ogohlantiraman - bu oson emas! Keyingi o'qish sizga ko'p soatlik qiziqarli mashg'ulotlarga olib kelishi mumkin :)

Men darhol aytaman - agar siz dasturlashni faqat o'zingiz, pul sarflamasdan o'rganishga qaror qilsangiz, ko'proq vaqt sarflashingiz kerak bo'ladi. Agar siz boshqa ish bilan parallel ravishda o'qiyotgan bo'lsangiz, kamida bir yil ichida yangi mutaxassislikni o'zlashtirishni kuting.

Agar siz ushbu maqolani odamlar uchun foydaliroq qilish uchun qo'shadigan biror narsa topsangiz, sharhlarda yozing.

Agar siz o'zingiz dasturlashni o'rganmoqchi bo'lsangiz, ushbu maqola mening tajribamga asoslangan eng yaxshi amaliyotlarni o'z ichiga oladi. Bularning barchasi bir nechta qo'shimchalar bilan hali ham dolzarbdir.

Yangi boshlanuvchilar uchun veb-dasturlash bo'yicha kitob

2016 versiyasi tarjima qilingan: https://courses.prometheus.org.ua/courses/Prometheus/CS50/2016_T1/about.

Kursni ingliz tilida olib borish yaxshiroqdir. Siz tilingizni yaxshilaysiz va ma'lumotlar yangi bo'ladi. Kurs unchalik o'zgarmagan bo'lsa-da - faqat 2017 yilda PHP o'rniga Python ishlatila boshlandi.

Kursni yakunlash ko'p vaqt talab etadi, lekin o'zingiz olish qiyin bo'lgan juda to'liq tushunchani beradi.

Dastlab, dasturlashning qaysi sohasi sizni qiziqtirishini hal qilishingiz kerak. Agar biz rivojlanishni noldan o'rganish haqida gapiradigan bo'lsak va siz tez orada undan pul ishlashni boshlamoqchi bo'lsangiz, unda mening fikrimcha, ikkita variant mavjud: mobil qurilmalar uchun ishlab chiqish yoki veb-ishlab chiqish.

Bunday vaziyatda eng yaxshi tanlov, menimcha, veb-ishlab chiqishni o'rganishni boshlashdir. Bu erda yangi boshlanuvchilar uchun kirish chegarasi pastroq va oddiy buyurtmalarni ertaroq bajarishni boshlash imkoniyati mavjud.

Qanday qilib noldan o'zingiz dasturchi bo'lishingiz mumkin

Agar men veb-ishlab chiqishni mustaqil ravishda o'rganishni noldan boshlagan bo'lsam (pul investitsiya qilmasdan bu uzoqroq yo'l ekanligini tushunganimda), men o'zimga ushbu yo'lni tavsiya qilgan bo'lardim:

1. HTML va CSS-ni tushunish

HTML va CSS-ning asosiy rivojlanishi uchun yaxshi kurs: https://learn.shayhowe.com/html-css/ (ingliz tili) yoki https://webref.ru/layout/learn-html-css (tarjima).

Shundan so'ng, veb-ilovalarni tezlashtirilgan ishlab chiqish uchun de-fakto standartiga aylangan Bootstrap imkoniyatlarini ko'rib chiqishga arziydi: http://getbootstrap.com/

Bu keyingi qadamlar uchun etarli bo'ladi.
Siz shu nuqtada to'xtab, CSS-ni batafsil o'rganishni xohlashingiz mumkin. Bu sizga maket dizayneri sifatida ishlash imkoniyatini beradi - dizaynni statik HTML sahifasiga aylantiradigan, shundan so'ng dasturchi loyiha mantig'ini amalga oshirib, uni jonlantiradi.

Bundan tashqari, siz frilanser sifatida ham, veb-ishlab chiqishga ixtisoslashgan IT-kompaniyada ishlash orqali ham pul ishlashingiz mumkin.

Ammo biz dasturchi bo'lishga qaror qilganimiz sababli, biz davom etamiz!

2. jQuery bilan tanishing

Agar sizga yoqqan bo'lsa, siz frontendni tushunishni davom ettirishingiz va Javascriptni o'rganishni boshlashingiz mumkin.

Agar https://angularjs.org/ yoki http://backbonejs.org/ ergashsa, bu front-end rivojlanish yo'lidir. Yaxshi mutaxassislik, ayniqsa, bunday bilim veb-ishlab chiqishni tanlagan har qanday dasturchi uchun foydali bo'ladi.

Mening maslahatim hozircha jQuery bilan qoling va davom eting.

3. Server dasturlash tilini egallash

Bu erda tanlov juda ko'p. Eng istiqbolli dasturlash tillari Ruby, Java, Python, Node.JS (server uchun Javascript).

Yangi boshlanuvchilar uchun eng oson dasturlash tili bu Python. Agar siz Python va keyin Django veb-ishlab chiqish tizimini o'rgansangiz, juda murakkab loyihalarni mustaqil hal qilish uchun kerak bo'lgan hamma narsaga ega bo'lasiz.

Yaxshi variant Python va Django dasturlash tilidir

Bundan tashqari - Python va Django sizga "to'g'ri" dasturlashni o'rgatadi. Python doimiy ravishda TOP 5-10 ta eng mashhur tillar qatoriga kiradi va yaxshi Python mutaxassislari eng yuqori maosh oladigan dasturchilar qatoriga kiradi. Python yangi boshlanuvchi dasturchilar uchun oddiy va tushunarli dasturlash tili bo'lib, ayni paytda u ko'plab yirik kompaniyalar va yirik loyihalarda qo'llaniladi.

O'zingiz boshlash uchun Jeyson Briggsning "Bolalar uchun Python" asarini o'qing yoki tomosha qiling:

Boshqa materiallar qatorida men Python The Hard Way o'rganishni tavsiya qilaman. kitob “Oddiy Python. Zamonaviy dasturlash uslubi." Va, albatta, Python 2 darsligi va Python 3 darsligi.

Django, shubhasiz, veb-ishlab chiqish uchun eng yaxshi ramka

Barcha holatlar uchun eng yaxshi vositani topish juda qiyin. Django veb-ishlab chiqish uchun shunday vositaga aylanish imkoniyatiga ega.

Djangoni o'rganishni qaerdan boshlash kerak:

Rasmiy hujjatlardan boshlang, u erda juda yaxshi qo'llanma mavjud: https://docs.djangoproject.com/en/2.1/intro/

Django bilan Tango ingliz tilini yaxshilash va shu bilan birga veb-loyihalar qanday tuzilganligi va hamma narsa qanday ishlashi haqida tushunchaga ega bo'lish uchun yaxshi imkoniyatdir.

Variant №2 - PHP va WordPress

Yana bir usul - PHP bilan boshlash va mashhur CMS bilan ishlash. Agar siz dasturlashni o'zingiz o'rganayotgan bo'lsangiz va tezda boshlashni istasangiz, PHP bilan boshlang.

Ko'p odamlar PHPni "haqiqiy bo'lmagan" dasturlash tili deb bilishadi va buning sababi yaxshi. PHP katta veb-ilovalarda kamdan-kam qo'llaniladi va faqat veb uchun mo'ljallangan - uni boshqa sohalarda ishlatib bo'lmaydi.

Boshqa tomondan, PHP dunyoda ochilgan veb-saytlar soni bo'yicha yetakchilik qiladi. Eng mashhur CMS (kontentni boshqarish tizimlari) unga asoslangan.

Shundan so'ng, WordPress uchun mavzularni qanday yaratishni aniqlang - bu, ehtimol, ishlaydigan saytlar soni bilan o'lchanadigan bo'lsa, dunyodagi eng mashhur CMS.

Buni yaxshi tushunganingizdan so'ng, siz allaqachon ish topishingiz mumkin. PHP va WordPress-da ishlaydigan ko'plab saytlar mavjud, shuning uchun hamma uchun etarli ish mavjud.

Dasturchi sifatida pul ishlashni qanday boshlash kerak

Ko'pchilik mustaqil dasturchining ishini shunday tasavvur qiladi:

Aslida, bu shunday ko'rinadi:

Agar siz dasturchi sifatida ishlashga tayyor bo'lsangiz va pul ishlash yo'lini izlayotgan bo'lsangiz, freelancingga xush kelibsiz! Freelance almashuvlari sizga oddiy buyurtmalarni topishga imkon beradi (ehtimol, avvaliga deyarli bepul) - amaliyotga ega bo'lish. Umuman olganda, agar siz dasturlash bo'yicha ish izlayotgan bo'lsangiz, IT kompaniyasida ishlash yanada daromadli bo'lishi mumkin.

2-banddan so'ng - HTML, CSS va jQuery-ni o'zlashtirganingizdan so'ng, siz freelance birjalarga borishingiz va o'z profilingizni yaratish orqali oddiy buyurtmalar olishingiz mumkin.

Inglizchani bilasizmi? https://www.upwork.com/

Hatto lug'at bilan ham yo'qmi? http://freelance.ru/

Veb-saytlarni o'zingiz yaratishingiz mumkin bo'lgan vaqtga kelib, mijozlarni topish osonroq bo'ladi - sharhlar va tajribalar bo'ladi.

Veb-ishlab chiqish uchun tezkor trek

Mening tajribamga asoslanib, dasturlashni noldan o'rganish eng yaxshi holatda 6 oydan 12 oygacha davom etadi, agar sizga kimdir yordam bersa, 6 oy.

ITga kirish jarayonini tezlashtirish uchun treningga borish imkoniyatini izlang (sizga bir nechta kerak bo'lishi mumkin) yoki siz bilan birga mashq qiladigan odamni toping. Haqiqatda, o'z bilimini sizga o'tkazadigan odamsiz, siz bir yil davomida kitob o'qib o'tirishingiz va hech qachon boshlamasligingiz juda qiyin; Va oddiygina murakkab narsalar haqida gapira oladigan bilimdon odam bilan bu juda oson.

Bir paytlar men mashg'ulot orqali kirish yo'lini tanlaganman. Rivojlanish haqida ko'p narsalarni bilganimni hisobga olsam, bu menga olti oy davom etishi mumkin bo'lgan narsani 2 oy ichida o'zlashtirishga imkon berdi. Yo'lingizni toping.

Menda dasturlash karerasini boshlashga jiddiy qaror qilgan va jarayonni tezlashtirishni xohlaydigan odamlar bor. Boshqa ko'plab kurslar mavjud. Agar siz o'zingizni ustoz - sizni qo'lingizdan boshqaradigan odam topsangiz - bu sizning dasturchi bo'lish yo'lingizni sezilarli darajada qisqartiradi.

Biror narsa yaratishingiz mumkinligiga ishonchingiz komil bo'lishi bilanoq, o'zingizni yanada rivojlantirishingiz mumkin bo'lgan kompaniya yoki mijozlarni qidiring.

HTML, CSS, Python va Javascript - bu faqat asosiy bilimlar, birinchi bosqich. Keyinchalik, mashq qilish, algoritmlarni o'rganish va ishlab chiqish vositalari juda muhimdir.

Savollaringiz bo'lsa, sharhlarda so'rang! Umid qilamanki, ushbu maqola sizga birinchi qadamni qo'yishga yordam beradi. Omad!