Най-добрите ми съвети за новите разработчици: съвет от (най-вече) софтуерен инженер-самоук

Най-често срещаният въпрос, който получавам от читателите на блогове, е „Какъв е вашият съвет за новите програмисти?“ И така, реших, че е време да напиша своите мисли.

Занапред ще напиша пълната си история, но взех два часа по компютърни науки в колежа. След това скоро след това получих стаж за софтуерно инженерство. Започнах да се занимавам с уеб разработка. Първоначално работих по задния фон, а след това в крайна сметка по фронта. Колежът ми определено не преподаваше уеб разработка в първите няколко часа часове по компютърни науки, така че аз сам преподавах.

Не мисля, че моята история е уникална. Всички програмисти са самоуки до известна степен, независимо дали са напълно самоуки или имат магистри по компютърни науки. Всеки сам е научил нещо като RegEx по пътя. Всъщност самообучението може да е едно от най-важните умения, които можете да имате като програмист.

В допълнение към собствения си опит, аз също уча хората да кодират като моя основна работа и за организации, с които доброволно работя. Така че тази статия се опира и на този опит.

Така че ето моите съвети за започване на работа.

Моите съвети за нови програмисти

1. Имайте разума си и го запомнете

Ако искате да започнете да програмирате, трябва да има причина за това. Тази причина може да бъде, че обичате да пишете код или че искате да имате по-доходоносна кариера. Възможно е да правите куп работа в Excel и искате да направите това по-ефективно.

Следете тази причина. Програмирането е трудно и понякога ще се разочаровате. Важно е да имате предвид тази причина и да се придържате към нея. Можете да поставите лепкава бележка на вашия компютър или бележка на началния си екран. Или (като мен) го напишете на огледалото си със маркер за сухо изтриване.

2. Изградете солидна основа

Това може да е по-рядко съвет, но мисля, че наистина е полезно. Преди да започнете да пишете код, ако не сте разгледали математиката от известно време, бих прегледал понятията от Алгебра 1. Програмирането е изградено на математика Алгебра 1, като функции и променливи. Разбирането на тези понятия извън програмирането ще бъде супер ценно в бъдеще. Препоръчвам курс по Алгебра на Khan Academy 1!

нека x = 1; // концептуално същото като алгебраичните променливи!
функция add (x, y) {// същото като алгебраичните функции!
  върнете х + у
}

3. Намерете общност

Намирането на общност, която да ви подкрепи, когато започнете да пишете код, ще бъде полезно. Тази общност ще бъде ценна, защото другите хора ще бъдат на същото място като вас. Те могат да предложат ресурси, които са им помогнали и да предлагат насърчение.

Бих предложил да се намери среща във вашия район като топ решение тук. Дори малките градове са склонни да имат група донякъде наблизо. Ако няма такава, бих предложил dev.to и общността CodeNewbie като две отлични алтернативи. CodeNewbie има седмичен чат в Twitter, група Slack и подкасти за слушане. Dev.to има куп публикации в блога и #discuss маркер, където можете да публикувате вашите въпроси.

4. Разделете проблемите на по-малки

Една от най-важните части на програмирането е вземането на голям проблем и разбиването му на по-малки и по-малки парчета, докато тези части са неразрешими. Ако гледате редактор на празен текст и не знаете откъде да започнете, това може да е, защото не сте разбили проблема достатъчно!

5. Псевдокод

Свързан с предишната точка, много пъти е полезно да напишете подробно какво се опитвате да направите с прости думи, преди дори да се опитате да напишете код. Този процес се нарича псевдокодиране и може да приеме каквато форма искате. Също така може да бъде полезно първо да се разреши проблем на хартия. Помислете или дори запишете отделните стъпки, които ще предприемете, за да разрешите този проблем.

// ако потребителят има повече от десет точки
// покажете "победител" на страницата
// друго
//     продължавай да играеш

6. Приемете цикъла на обучение

Ако се научите да кодирате като втора кариера, особено ако сте били далеч от класната стая, ученето как да научите ще бъде голяма част от вашия процес. Участват много възходи и падения, което е много естествено! Бих се подготвил за този влак, преди да започнете.

7. Започнете с безплатни ресурси

Има милион и един ресурс за научаване как да кодирате. Някои са безплатни, а някои са платени. Бих започнал с безплатните ресурси. Уверете се, че ви харесва първо да пишете код. Тогава след това, можете да помислите за преминаване към платени ресурси или дори на bootcamp.

8. Намерете своята ниша

Има много светове в рамките на програмирането, така че се опитайте да намерите един свят, който обичате, и се съсредоточете върху това. Вместо да се опитвате да научите 8 езика за програмиране, интерфейс и бекенд, компилирани и интерпретирани езици, всички текстови редактори, инструменти за програмисти и т.н., намерете няколко неща, които наистина ви интересуват, и се добрайте в тях.

9. Станете добър в разпознаването на образа

Разпознаването на модели в кода е едно от най-важните умения, които можете да имате. Когато хората говорят за писане на „DRY“ код (т.е. не се повтаряйте), те говорят за намаляване на моделите във вашия код. Препоръчвам играта Набор за разпознаване на модели - дори можете да играете онлайн всеки ден на уебсайта на New York Times!

// не DRY код
нека reversedString = string.split (""). reverse (). join ("")
нека reversedString2 = string2.split (""). reverse (). join ("")
// по-чист код
const reverse = string => string.split (""). reverse (). join ("")
нека reversedString = обратен (низ)
нека reversedString2 = обратен (string2)

10. Направете добри навици рано

Ще бъде по-лесно да напишете чист код в бъдеще, ако навлизате в навика рано. Лошите навици могат да бъдат трудно да се нарушат. Ето моите съвети за писане на по-чист код. Ако правите уеб разработка, пускането на HTML и CSS валидатори на вашия код може да ви каже точно какво да поправите!

// Не е страхотно
функция avg (a) {
  нека s = a.reduce ((x, y) => x + y)
  връщане s / a.length
}
// Много по-добре!
функция sumArray (масив) {
  return array.reduce ((число, currentSum) => число + currentSum)
}

функция povpreArray (масив) {
  връщане sumArray (масив) / array.length
}

11. Определете вашия стил на обучение

Всички учат различно. Независимо дали сте визуален, аудио или кинестетик, вие научавате различно от следващия човек. Определете как се научите най-добре и разчитайте на ресурси, които добре отговарят на този стил. Например, научавам се най-добре от четенето на документацията и нейните примери за код. Губя се лесно в уроците.

12. Борете се, но не прекалено много

Да се ​​мъчиш малко, когато учиш, е наистина важно. Искате сами да решите проблема и да намерите отговор, като използвате ресурси, които съществуват. Това каза, че е непродуктивно и демотивиращо да се борим с проблем твърде дълго. След няколко часа се свържете с някого за помощ!

13. Удобвайте се при неуспех

Програмирането е трудно и намирането на точния отговор няма да бъде незабавно. Един от най-важните моменти в моето пътуване по програмиране беше провалът при писането на решаване на судоку. Може да е предизвикателно да се настроите да не получавате всичко веднага и да не виждате тези съобщения за грешка. Но това е огромна част от програмирането.

14. Обичайте съобщенията си за грешки

Съобщенията за грешки са супер полезни! Когато започвате, това червено съобщение за грешка може да бъде ужасяващо! Една огромна стъпка, която трябва да направите, е да прочетете тези съобщения, да ги разберете и след това да ги използвате за решаване на проблема. Всъщност вие ще стигнете до момент, в който една програма, която безшумно се проваля, ще бъде много по-досадно от полезно съобщение за грешка.

Съобщение за грешка в Python

15. Някои езици за програмиране са по-лесни от други

Няма правилен отговор за това какъв език за програмиране първо да научим. Някои ще бъдат по-лесни за вземане. Най-добрите ми три са Python, Ruby и JavaScript. Харесвам ги, защото имат голяма общност зад гърба си, имат по-прав синтаксис и се тълкуват, така че не е нужно да преминавате през процес на компилиране.

16. Не е нужно да знаете всичко

Направо е 100% невъзможно да знаете всичко за програмирането. Никой не знае всеки език за програмиране, всеки един метод, който е там, всяка библиотека и рамка или идеалното решение на всеки проблем. Не се притеснявайте да научите всичко, просто се съсредоточете върху това, което знаете и разширете това.

17. Фокусирайте се върху дълбочината над широчината

Да се ​​научиш на едно нещо в дълбочина е по-добре, отколкото да научиш малко за много неща, особено в началото. Това задълбочено знание ще пренесе и ще направи ученето на следващото нещо по-лесно. Поставете щорите, за да не се изкушавате да изпуснете наученото и да преминете към нещо ново.

18. Първо се съсредоточете върху основите

Основите на програмирането са безценни. Ще ги използвате, независимо какво в крайна сметка правите с програмирането. Съсредоточете се върху доброто познаване на цикли, условности, функции, типове данни и (на повечето езици) обектно-ориентирано програмиране, преди да преминете към изучаването на тази страхотна библиотека, за която всички говорят.

Ще бъде толкова по-лесно да научите тази библиотека, след като наистина добре знаете основите. Те също ще пренасят от език на език, така че трябва наистина да ги научите само веднъж. След това това е просто синтаксис!

19. Станете добър в решаването на проблеми

Решаването на проблеми е в основата на програмирането! По-доброто в това е изключително важно. Решаването на гатанки, писането на код на хартия и разрушаването на проблеми наистина могат да помогнат за решаването на проблеми.

Нещо, което понякога виждам при новите разработчици е, че те подхождат към програмирането като към изследователски проблем, а не към проект за решаване на проблеми. Ако имат нещо достатъчно добре, тогава ще имат решение. Да, Google и Stack Overflow са много полезни, но разчитайте и на себе си понякога. Изпробвайте нещо по няколко различни начина, преди да го изследвате. Или проучете малки части от проблема вместо самия проблем - т.е. „превърнете низ в JavaScript масив“ вместо „JavaScript на обратния низ“.

20. Стани добър в изследването

Едно от най-големите неща, които трябва да научите, е как да намерите добри отговори на вашите въпроси или да научите нови функции на вашия език или библиотека. Използването на Google е важно, така че присъединяването към общности и абонирането за ресурси. Шаблонът на Google, който обикновено използвам, е „проблемния език / рамка / библиотека“ с възможно най-малко думи и без пълнител. Така че, "сортирайте JavaScript масив", "завъртане на елемента CSS" или "създайте рутер Vue."

21. Изграждайте проекти, които обичате

Когато се учите, ще изграждате различни проекти, за да практикувате (и да демонстрирате) своите умения. Изберете идеи за проекти, които са ви интересни - ще бъдете много по-склонни да ги завършите и искате да вложите работа в тях. Свързани: завършете тези проекти. Няколко наистина добри готови проекта са много по-впечатляващи от куп полуфабрикати!

22. Сравнете само себе си със себе си

Има много хора, които се учат да кодират там. Не сравнявайте напредъка си с някой друг Вместо това сравнете себе си с предишния ви и се съсредоточете върху собствения си растеж.

23. Направете куп предизвикателства с код

Правенето на бързи предизвикателства с код наистина може да помогне за втвърдяването на основите. Те са чудесни за решаване на проблеми и практикуват за интервюта. Публикувам по един ден в Twitter с хештега #CodingPuzzle, ако искате някой друг да ги разреши!

"" "
Намерете елемента в масива, който се появява само веднъж
от https://www.hackerrank.com/challenges/ctci-lonely-integer
"" "
от колекции импортиране Counter
def lonely_integer (a):
    a_counter = Брояч (a)
    за l, бройте в a_counter.items ():
        ако се брои == 1:
            връщане l

24. Празнувайте вашите победи

Научаването да програмирате може да бъде наистина труден процес, така че когато постигнете нещо, дори и неговото малко, го празнувайте! Проследявам победите си в Google Keep, така че ако имам лош ден, мога да се върна към тези победи и да ги запомня.

25. Програмирането е страхотно

Програмирането е наистина готино, защото се захващате да изградите нещата. Винаги се връщам към този цитат на Санди Мец:

Тези от нас, чиято работа е да пишат софтуер, имат невероятен късмет. Изграждането на софтуер е удоволствие без вина, защото ние използваме своята творческа енергия, за да свършим нещата. Подредихме живота си, за да го имаме и в двете посоки; можем да се насладим на чистия акт на писане на код със сигурни знания, които кодът, който пишем, използва. Ние произвеждаме важни неща. Ние сме съвременни занаятчии, изграждайки конструкции, изграждащи съвременна реалност, и не по-малко от зидари или строители на мостове, се гордеем с оправдана гордост от постиженията си.
Това споделят всички програмисти - от най-ентусиазирания начинаещ до явно потъналия старейшина, независимо дали работят в най-лекия старт на интернет или в най-стабилното, отдавна навлезено предприятие. Искаме да свършим всичко възможно. Искаме работата ни да има смисъл. Искаме да се забавляваме по пътя.
Санди Мец

Поддържаме връзка!

Ако тази статия ви е харесала, има много повече откъде е дошла! Всяка седмица изпращам бюлетин с любимите ми връзки и това, което съм написал през тази седмица. Можете също да ме последвате в Twitter, за да видите публикациите ми, когато излизат!

Първоначално публикуван на zen-of-programming.com.