Yangi ishlab chiquvchilar uchun eng yaxshi maslahatlar: (asosan) o'z-o'zini o'rgatadigan dastur muhandisining maslahatlari

Blog o'quvchilaridan eng ko'p so'raladigan savol bu: "Yangi dasturchilar uchun qanday maslahatingiz bor?" Shunday qilib, fikrlarimni yozishga vaqtim keldi deb o'yladim.

Kelgusida to'liq hikoyamni yozaman, lekin men kollejda ikkita informatika sinfidan o'tdim. Ko'p o'tmay, men dasturiy ta'minot muhandisligi bo'yicha amaliyot oldim. Veb-saytlarni yaratish bo'yicha ishlarni boshladim. Dastlab men orqa tomonda ishladim, so'ngra oxirida. Mening kollejim, albatta, dastlabki bir necha informatika darslarida veb-ishlab chiqishni o'rgatmagan, shuning uchun men o'zimga dars berganman.

Mening hikoyam noyob deb o'ylamayman. Barcha dasturchilar o'z-o'zini o'qitishadi yoki kompyuter fanlari bo'yicha magistrlarga ega bo'lishlaridan qat'iy nazar o'z-o'zidan o'qitiladi. Yo'l davomida hamma o'zlariga RegEx kabi narsalarni o'rgatdi. Aslida, o'z-o'zini o'qitish siz ishlab chiquvchiga ega bo'lishingiz mumkin bo'lgan eng muhim ko'nikmalardan biri bo'lishi mumkin.

Men o'zimning tajribamdan tashqari, odamlarga o'zimning asosiy ishim va o'zim ixtiyoriy bo'lgan tashkilotlar uchun kodlashni o'rgataman. Shunday qilib, ushbu maqola ham ushbu tajribaga asoslanadi.

Shunday qilib, boshlash uchun mening maslahatlarim.

Yangi dasturchilar uchun maslahatlar

1. O'zingizning aqlingiz bor va buni yodda saqlang

Agar siz dasturlashni boshlamoqchi bo'lsangiz, buning sababi bo'lishi kerak. Buning sababi siz kod yozishni yaxshi ko'rishingiz yoki ko'proq daromadli martaba orttirishni xohlashingiz bo'lishi mumkin. Siz Excel ishlarining bir qismini bajarayotganingiz va siz buni yanada samaraliroq qilishni xohlaysiz.

Buning sababini kuzatib boring. Dasturlash qiyin, va siz ba'zida xafa bo'lasiz. Bu sababni yodda tutish va unga rioya qilish juda muhimdir. Kompyuteringizga yopishqoq yozuvni yoki uy ekraningizga eslatma qo'yishingiz mumkin. Yoki (men kabi) uni quruq o'chirish belgisi bilan oynaga yozing.

2. mustahkam poydevor yarating

Bu unchalik keng tarqalgan maslahat bo'lmasligi mumkin, ammo menimcha, bu juda foydali. Kod yozishni boshlashdan oldin, agar siz matematikaga bir muncha vaqt qaramagan bo'lsangiz, men Algebra 1-dan tushunchalarni qayta ko'rib chiqardim. Dasturlash funktsiyalari va o'zgaruvchilar kabi Algebra 1 matematikasiga qurilgan. Ushbu tushunchalarni dasturlashdan tashqarida tushunish kelajakda juda foydali bo'ladi. Men Xan akademiyasining Algebra 1 kursini tavsiya qilaman!

ruxsat bering x = 1; // kontseptual ravishda algebraik o'zgaruvchilar bilan bir xil!
funktsiya add (x, y) {// algebraik funktsiyalar bilan bir xil!
  x + y ni qaytaring
}

3. Jamiyatni toping

Kod yozishni boshlaganingizda sizni qo'llab-quvvatlaydigan jamoani topish foydali bo'ladi. Bu jamoa qimmatli bo'ladi, chunki boshqa odamlar siz bilan bir joyda bo'ladi. Ular ularga yordam bergan manbalarni taklif qilishlari va dalda berishlari mumkin.

Bu erda eng yaxshi echim sifatida sizning mintaqangizda uchrashuvni topishni taklif qilaman. Hatto kichik shaharlarda ham bir oz yaqinroqda guruh bo'lishi mumkin. Agar yo'q bo'lsa, men dev.to va CodeNewbie hamjamiyatiga ikkita ajoyib alternativani taklif qilaman. CodeNewbie-da har hafta Twitter suhbatlari, "Sekin guruh" va tinglash uchun podkastlar mavjud. Dev.to-da bir nechta blog postlari va siz savollaringizni joylashtiradigan #discuss yorlig'i mavjud.

4. Muammolarni kichiklarga ajratib oling

Dasturlashning eng muhim qismlaridan biri bu katta muammoni hal qilish va uni echish mumkin bo'lgunga qadar uni kichikroq va mayda bo'laklarga bo'lish. Agar bo'sh matn muharririni qaerdan boshlashni bilmayotgan bo'lsangiz, bu muammoni etarlicha buzmaganingiz uchun bo'lishi mumkin!

5. Psevdokod

Oldingi nuqta bilan bog'liq holda, kod yozishga harakat qilishdan oldin, oddiy so'zlar bilan nima qilayotganingizni batafsil yozib qo'yish foydalidir. Ushbu jarayon psevdokoding deb ataladi va u siz xohlagan shaklni olishi mumkin. Dastlab, avval qog'ozda asta-sekin muammoni hal qilish foydali bo'lishi mumkin. Ushbu muammoni hal qilish uchun qanday qadamlar qo'yishingiz haqida o'ylaysiz yoki hatto yozasiz.

// agar foydalanuvchi o'ndan ortiq ballga ega bo'lsa
// sahifada "g'olib" ni ko'rsatish
// yana
// o'ynashda davom eting

6. O'qish tsiklini qamrab oling

Agar siz ikkinchi martaba sifatida kodlashni o'rganayotgan bo'lsangiz, ayniqsa darsdan bir muncha vaqt chetda bo'lgan bo'lsangiz, qanday qilib o'rganishni o'rganish bu jarayonning katta qismi bo'ladi. Ko'plab ko'tarilishlar mavjud, bu juda tabiiy! Ishga kirishishdan oldin bu g'ildirakchani tayyorlab qo'ygan bo'lardim.

7. Bepul manbalardan boshlang

Kodlashni bilishni o'rganish uchun million va bitta resurs mavjud. Ba'zilar bepul, ba'zilari esa pullik. Bepul manbalardan boshlagan bo'lardim. Avval kod yozishni yoqtirishingizga ishonch hosil qiling. Shundan so'ng, siz pulli manbalarga yoki hatto bootcampga o'tishni o'ylab ko'rishingiz mumkin.

8. O'zingizning uyingizni toping

Dasturlash jarayonida dunyolar juda ko'p, shuning uchun sizga yoqadigan bitta dunyoni topishga harakat qiling va shu narsaga e'tiboringizni qarating. 8 ta dasturlash tilini, old va orqa sahifani, kompilyatsiya qilingan va sharhlangan tillarni, barcha matn muharrirlarini, dasturchilar vositalarini va boshqalarni o'rganishga urinishning o'rniga, siz haqiqatan ham qiziqadigan bir nechta narsalarni toping va ularga yaxshi munosabatda bo'ling.

9. Namunani aniqlashda yaxshi bo'ling

Koddagi naqshlarni tanib olish siz ega bo'ladigan eng muhim ko'nikmalardan biridir. Odamlar "DRY" kodini yozish haqida gapirishganda (ya'ni o'zingizni takrorlamang), ular sizning kodingizdagi naqshlarni kamaytirish haqida gapirishadi. Men Naqshni aniqlash uchun to'plamni tavsiya qilaman - siz har kuni Nyu-York Tayms veb-saytida onlayn o'ynashingiz mumkin!

// DRY kodi emas
reversedString = string.split (""). teskari (). qo'shilish ("")
reversedString2 = string2.split (""). teskari (). qo'shilish ("") ga ruxsat bering.
// tozalovchi kod
const teskari = string => string.split (""). teskari (). qo'shilish ("")
ruxsat berish reversedString = teskari (satr)
reversedString2 = teskari bo'lishiga yo'l qo'ying (string2)

10. Yaxshi odatlarni erta qiling

Agar erta odatlanib qolsangiz, kelajakda toza kodni yozish osonroq bo'ladi. Yomon odatlardan qutulish qiyin bo'lishi mumkin. Toza kodni yozish bo'yicha maslahatlarim. Agar siz veb-ishlab chiqishni amalga oshirayotgan bo'lsangiz, HTML va CSS-ning to'g'rilagichlarini kodingizda ishlatsangiz, nima to'g'rilash kerakligini aniq bilib olishingiz mumkin!

// Ajoyib emas
funktsiya avg (a) {
  s = a.reduce ((x, y) => x + y) ga ruxsat bering
  qaytish s / a.length
}
// Juda ham yaxshi!
funktsiya sumArray (array) {
  return array.reduce ((raqam, currentSum) => raqam + currentSum)
}

funktsiya o'rtachaArray (qator) {
  return sumArray (array) / array.length
}

11. O'qish uslubingizni aniqlang

Hamma boshqacha o'rganadi. Vizual, audio yoki kinestetik o'rganuvchilardan bo'lishingizdan qat'i nazar, siz keyingi odamga qaraganda boshqacha o'rganasiz. Qanday qilib eng yaxshi o'rganganingizni aniqlang va ushbu uslubga mos keladigan manbalarga ishoning. Masalan, men hujjatlarni va uning kod namunalarini o'qishdan eng yaxshi narsani o'rganaman. Men darslarda diqqatni yo'qotaman.

12. Jang qiling, lekin ko'p emas

O'rganayotganda ozgina kurashish juda muhimdir. Siz muammoni o'zingiz hal qilmoqchisiz va mavjud manbalardan foydalangan holda javob topasiz. Bu shuni anglatadiki, muammo bilan uzoq vaqt kurashish samarasiz va kuchsizdir. Bir necha soat o'tgach, kimdir bilan yordam so'rang!

13. Muvaffaqiyatsiz bo'lganda qulay bo'ling

Dasturlash qiyin, va to'g'ri javobni topish darhol bo'lmaydi. Mening dasturlash sayohatimdagi eng muhim daqiqalardan biri Sudoku solverini yozishda muvaffaqiyatsizlik bo'ldi. Hamma narsani darhol olishiga va xato xabarlarini ko'rishga moslashish qiyin bo'lishi mumkin. Ammo bu dasturlashning juda katta qismidir.

14. Xatolaringiz haqidagi xabarlarni seving

Xato xabarlari juda foydali! Siz boshlayotganingizda, qizil xato xabari dahshatli bo'lishi mumkin! Ushbu ulkan qadamlardan biri bu xabarlarni o'qish, ularni tushunish va muammoni hal qilish uchun foydalanishdir. Aslida, siz dasturni jimgina ishlamay qolishi foydali xato xabari bilan solishtirganda yanada zerikarli bo'ladigan joyga etib borasiz.

Python xatosi haqida xabar

15. Ba'zi dasturlash tillari boshqalarga qaraganda osonroq

Dastlab qaysi dasturlash tilini o'rganishga to'g'ri javob yo'q. Ba'zilarini olish osonroq bo'ladi. Mening eng yaxshi uchligim Python, Ruby va JavaScript. Men ularni yoqtiraman, chunki ularning orqasida katta bir jamoa bor, ular sodda va sintaksisga ega, shuning uchun ularni talqin qilishadi, shuning uchun kompilyatsiya jarayonidan o'tishingiz shart emas.

16. Siz hamma narsani bilishingiz shart emas

Dasturlash to'g'risida hamma narsani bilish 100% imkonsiz. Hech kim dasturlash tilini, u erda mavjud bo'lgan har bir usulni, har bir kutubxonani va tizimni yoki har qanday muammoni mukammal hal qilishni bilmaydi. Hamma narsani o'rganishdan tashvishlanmang, shunchaki bilgan narsangizga e'tiboringizni qarating va uni kengaytiring.

17. Kenglikka e'tiboringizni qarating

Bir narsani chuqurroq o'rganish, ko'p narsalarni, ayniqsa dastlab boshdan kechirishni o'rganish yaxshiroqdir. Bu chuqur bilim davom etadi va keyingi narsani o'rganishni osonlashtiradi. Ko'zoynaklarni kiying, shunda siz o'rganayotgan narsangizni tashlab, yangi narsaga o'tishga vasvasaga tushmaysiz.

18. Avvalambor asoslarga e'tibor qarating

Dasturlash asoslari bebahodir. Siz dasturlash bilan nima tugashidan qat'i nazar, ulardan foydalanasiz. Hamma gapiradigan ajoyib kutubxonani o'rganishga o'tishdan oldin, ko'chadan, shartli ravishda, funktsiyalardan, ma'lumotlar turlaridan va (ko'p tillarda) ob'ektga yo'naltirilgan dasturlash to'g'risida chuqur bilimga e'tibor qarating.

Agar siz asoslarni juda yaxshi bilsangiz, bu kutubxonani o'rganish shunchalik oson bo'ladi. Ular shuningdek, tildan tilga o'tadi, shuning uchun siz ularni bir marta o'rganishingiz kerak. Bu shunchaki sintaksis!

19. Muammolarni hal qilishda yaxshi bo'ling

Muammoni hal qilish dasturlashning asosidir! Bunda yaxshilanish juda muhimdir. Jumboqlarni yechish, qog'ozga kod yozish va muammolarni yechish haqiqatan ham muammoni hal qilishga yordam beradi.

Ba'zida men yangi ishlab chiquvchilar bilan ko'rishadigan narsa shundaki, ular dasturlash muammoni hal qilish loyihasi o'rniga tadqiqot muammosi kabi murojaat qilishadi. Agar ular Google-ga biron bir narsani etarlicha yaxshi bersalar, ular hal qilinadi. Ha, Google va Stack Overflow katta yordam beradi, lekin ba'zida o'zingizga ham ishoning. Biror narsani tadqiq qilishdan oldin uni turli xil usullar bilan sinab ko'ring. Yoki muammoning o'zi o'rniga muammoning kichik qismlarini o'rganing - ya'ni "teskari qatorli JavaScript" o'rniga "bir qatorni JavaScript-ga aylantiring".

20. Izlanishda yaxshi bo'ling

O'rganish uchun eng katta narsalardan biri bu savollarga yaxshi javob topish yoki tilingiz yoki kutubxonangizning yangi xususiyatlarini o'rganishdir. Google-dan foydalanish juda muhim, shuning uchun hamjamiyatga qo'shilish va resurslarga obuna bo'lish. Men foydalanadigan Google shablonini imkon qadar kamroq so'zlar bilan va to'ldiruvchisiz "muammoli til / ramka / kutubxona". Shunday qilib, "JavaScript qatorini tartiblash", "CSS-ning spin elementi" yoki "Vue routerini yaratish".

21. O'zingiz yoqtirgan loyihalarni yarating

O'rganayotganda siz o'zingizning mahoratingizni mashq qilish (va namoyish qilish) uchun turli xil loyihalarni qurasiz. Sizga qiziq bo'lgan loyiha g'oyalarini tanlang - ularni tugatish ehtimoli ko'proq bo'ladi va ular bilan ishlashni xohlaysiz. Tegishli: ushbu loyihalarni yakunlang. Bir nechta chindan ham yaxshi tugallangan loyihalar yarim tayyor loyihalar to'plamiga qaraganda ancha ta'sirchan!

22. O'zingizni faqat o'zingiz bilan solishtiring

U erda kodlashni o'rganayotgan ko'plab odamlar bor. O'zingizning muvaffaqiyatingizni boshqa birov bilan taqqoslamang. Buning o'rniga, o'zingizni oldingilar bilan taqqoslang va o'zingizning o'sishingizga e'tibor qarating.

23. Kod vazifalarini bajaring

Tez kodlash muammolarini hal qilish haqiqatan ham asoslarni mustahkamlashga yordam beradi. Ular muammoni hal qilish va intervyu o'tkazish uchun juda yaxshi. Men har kuni Twitter-da #CodingPuzzle xashtagi bilan bitta xabarni joylashtiraman, agar siz ularni boshqa birov hal qilmoqchi bo'lsa!

"" "
Elementni faqat bir marta paydo bo'lgan massivda toping
https://www.hackerrank.com/challenges/ctci-lonely-integer-dan
"" "
counter Counter to'plamlaridan
def lonely_integer (a):
    a_counter = Hisoblagich (a)
    a uchun, a_counter.items ():
        agar soni == 1:
            qaytish l

24. G'alabalaringizni nishonlang

Dasturlashni o'rganish juda qiyin jarayon bo'lishi mumkin, shuning uchun biron bir ishni bajarganingizda, hatto kichik bo'lsa ham, uni nishonlang! Men Google Keep-dagi g'alabalarimni kuzatib boraman, agar yomon kunim bo'lsa, o'sha g'alabalarga qaytib kelib ularni eslab qolishim mumkin.

25. Dasturlash juda zo'r

Dasturlash juda ajoyib, chunki siz narsalarni qurishga kirishasiz. Men har doim ushbu Sandi Metz taklifiga qaytaman:

Dastur yozish uchun kimning ishi juda omadli. Dasturiy ta'minotni yaratish befoyda lazzatdir, chunki biz o'z ijodiy energiyamizni ishlarni bajarish uchun sarflashimiz kerak. Biz hayotimizni ikkala yo'l bilan ham tartibga solganmiz; biz yozgan kod ishlatilganligiga ishonch hosil qilib, sof kodni yozish harakatlaridan bahramand bo'lishimiz mumkin. Biz muhim narsalarni ishlab chiqaramiz. Biz zamonaviy hunarmandlarmiz, bugungi voqelikni tashkil etadigan qurilish inshootlari va g'isht teruvchilar yoki ko'prik quruvchilaridan kam emas, biz erishgan yutuqlarimiz bilan haqli ravishda faxrlanamiz.
Bularning barchasini eng g'ayratli yangi boshlanuvchidan tortib to yaqqol oqsoqol oqsoqolgacha, xoh yengil Internet startapida ishlaysizmi, xoh eng dadil, uzoq vaqt ishlaydigan korxonada bo'lishasiz. Biz eng yaxshi ishimizni qilishni xohlaymiz. Bizning ishimiz mazmunli bo'lishini xohlaymiz. Yo'l davomida dam olishni xohlaymiz.
Sandi Metz

Aloqada bo'lish!

Agar siz ushbu maqolani yoqtirsangiz, u qaerdan kelganligi haqida ko'proq narsa bor! Men har hafta o'zimning sevimli havolalarim va shu hafta yozgan narsalarim bilan yangiliklar byulletenini yuboraman. Shuningdek, mening xabarlarim paydo bo'lganda ularni ko'rish uchun meni Tvitterda kuzatib borishingiz mumkin!

Dastlab zen-of-programming.com saytida chop etilgan.