Да се научите как да кодирате може да бъде безценно, уменията за кодиране са по-търсени от всякога, така че сега е чудесна възможност да се включите и да достигнете тези най-добре платени работни места. Изучаването на основите на кодирането може да изглежда доста обезсърчително, но докато усвоявате знанията ви ще започнат да се сглобяват и да работят в тандем към крайната цел.
С толкова много предлагани езици за програмиране може лесно да попаднете в капана на жонглиране с вашите чинии, всеки език предлага различни начини за кодиране на вашите проекти, тъй като всеки от тях има своите предимства. Въпреки това, ако се придържате само към един и станете значително добър в него, преди да преминете към следващия, ще гарантирате, че нямате пропуски в знанията си и можете да използвате уменията си в пълна полза.
Нека да разгледаме някои грешки, които могат да бъдат допуснати, когато развивате уменията си за кодиране или започвате обучението си по кодиране от нулата, за да сме сигурни, че можете да сте уверени в своя подход и да получите резултатите, от които се нуждаете.
Избор на неподходящ учител или ментор
Учителите и наставниците са особено важна част от вашето обучение, особено ако не ви е удобно да сте самоук. Избирането на първия учител или наставник, който пресече пътя ви, може да не е във ваша полза, всеки от тях притежава собствен опит и ще бъде по-запознат с определени езици за програмиране или най-добрите общи практики за програмиране.
Броят на ресурсите онлайн за учене на кодиране отбеляза експоненциален ръст, с предлаганото съдържание с добро качество може лесно да попаднете в капани онлайн. Ако избирате онлайн курсове, тогава трябва да поставите под въпрос качеството им. Направете проучване, вижте дали можете да опитате курса, преди да се ангажирате с нещо. При такъв доходоносен пазар има онлайн продавачи, които ще обещаят да осигурят отлични резултати с курсове, предназначени само да бъдат загуба на време и пари.
Технологиите винаги се развиват и изборът от кого да се учите е един от най-важните критерии за вашия успех. И накрая, няма нито един ментор или курс, който може да ви научи на всичко. Струва си да се консултирате с множество ментори, за да вземете предвид различни гледни точки и опит.
Научаване на всичко наведнъж
Намирането на начална точка с кодирането е сравнително лесно, изберете език за програмиране и първо научете основите, преди да скочите в дълбокия край. Когато става въпрос за дълбочината на знанията по програмиране е по-важна от широчината, работодателите търсят подробно разбиране на даден език, а не кратко разбиране на много. Прегледайте множество ресурси, за да получите различни ъгли, методи и гледни точки, за да разширите разбирането си за различни начини за решаване на един проблем. Помнете, че целта е да практикувате и повтаряте знанията си, за да можете да изградите окончателен проект без насоки, без да попадате в капана на чистилището на урока.
Въпреки че по-голямата част от вашите знания ще произтичат от образование, ментори или ресурси, вие ще придобиете щедри знания особено от работа в реална работна среда с колеги, които също разбират избрания от вас език. Работата в тандем с колеги по реални проекти ще ви помогне да попълните празнините в знанията си за кодиране и ще развиете уменията си допълнително.
Не научаване на основите
Не мога да подчертая колко е важно да научите как работят компютрите поне на основно ниво, преди да се потопите в кода. Научаването как и защо компютрите и програмите си говорят помежду си е изключително важно за разбирането защо има толкова много езици и как всеки един поотделно може да бъде от полза за проект в реалния свят.
Първо трябва да започнем с фундаменталните принципи (т.е. „защо“ на нещо), преди да се потопим дълбоко в компютърните технологии. Те идват и си отиват, но основната технология на начина, по който програмите работят под капака, се е променила значително през последните няколко десетилетия. Живеем в свят, в който знанията непрекъснато се актуализират и променят. Когато започнем да изучаваме фундаменталните принципи, това са нещата, които всъщност продължават дълго време в кариерата ви, вместо да прескочите това, върху което са изградени днешните и утрешните „горещи технологии“.
Чрез изучаване на основните корени и структура, които лежат под всички езици за програмиране, като променливи, обхвати, функции, цикли, условия, масиви, типове данни и т.н., ние сме в състояние бързо да преминем към нов език за програмиране по всяко време.
Добра аналогия е да използвате корените и ствола на едно дърво като основи, а листата като горещи/популярни технологични стекове на днес. С всеки сезон се образуват нови листа, като същевременно се запазва основното критично знание, което ги поддържа.
Така че вместо да придобиваме краткотрайни знания, ние искаме да се съсредоточим върху знания, които поддържат структурата на езиците за програмиране. Ако започнем с това, без значение колко дълго се променят тенденциите, без значение как се променя обществото, имаме тези фундаментални принципи за развиване на умения, докато те се променят, за да се адаптират към настоящото общество.
В капана на учебното чистилище
Гледането на онлайн урок е сигурен начин да създадете копие на съществуващ проект. Вместо това оптималният начин да научите и да придобиете повече опит е да приложите съществуващите си знания на практика и да разработите свой собствен проект. Вашето кодиране е малко вероятно да започне толкова чисто и стегнато, колкото бихте искали да бъде и това може да се очаква; чрез разработване на ваши собствени проекти ви предоставя време за размисъл върху това, което бихте могли да подобрите по време на следващото повторение.
Въпреки че странният онлайн урок няма да ви навреди, ще трябва да започнете с малко и да придобиете увереност в подхода си, вместо да бързате да създадете технически проект чрез урок стъпка по стъпка.
Непоставяне на конкретни цели и срокове
Целите и крайните срокове са особено важни, в реална работна среда ще се сблъскате с тях безброй пъти, обвързвайки се с датите на пускане на пазара и изискванията на купувача. Като се запознаете с работата по графици, цели и крайни срокове, вие ще развиете работно темпо и ще можете да определите дали вашите знания и опит са достатъчно задълбочени, за да се справите с реален проект в реални срокове.
Трябва да определите какъв ще бъде вашият проект и (в зависимост от размера) да зададете реалистичен краен срок за завършване, заедно с поставяне на малки цели между тях, за да сте на правилния път. Като постигате по-малките си цели, това ще помогне за поддържане на мотивацията и ще ви държи в зададения от вас график. Ако срещнете някакви пречки през това време, тогава можете да прецените докъде сте стигнали и да адаптирате крайния си срок, за да отговаря на всяка промяна на плановете. Това става ценно в реалната среда, като ви позволява да комуникирате с вашия работодател или клиент относно всякакви проблеми, които са се появили и до какво въздействие може да доведе това, помагайки за поддържане на добри работни отношения с ясна комуникация.
Неспособност да обясни техническите концепции с прости думи
Това е грешка, която лесно може да се направи и може да замъгли водите между клиенти и програмисти. Клиентите трябва да получават редовна, ясна комуникация, която показва, че проектът ще бъде планиран и отговаря на всичките им изисквания. Техническият жаргон, използван от програмистите, често е объркващ за неопитния човек и затова трябва да бъде обяснен по ясен и кратък начин.
Когато става въпрос за програмиране, крайният потребител или клиент обикновено се интересува от въздействието на нещо, а не от процеса зад него. Следователно обяснението на клиент, че „бек-енд сървърът е срещнал грешка на ред 12 при обработка на командата“ вероятно няма да означава нищо за него. Вместо това възможността да уведомите, че „документът не е успял да се качи и според нас това трябва да бъде разрешено в рамките на един час“ ще даде на клиента критичната информация, от която се нуждае, и ще обобщи проблема по начин, който е лесно за разбиране от всеки.
Освен това е изключително полезно в среда, в която предлагате концепция за програмиране, клиентът ще търси всички ползи, които вашето кодиране ще им осигури, и всички потенциални въздействия, които могат да възникнат. Като например обяснение как вашият персонализиран софтуер ще използва много свързани маршрути за повикване, за да намали времето, необходимо за поемане на клиентско обаждане от агент за обслужване на потребители.
Ако знаете как ще работи задната част на този тип система, но не можете да съобщите ползите от вашето програмиране на крайния клиент, тогава е малко вероятно вашата работа да се разглежда като някаква форма на полза за тях.
Не иска подкрепа
Ако не разбирате нещо, тогава е важно да поискате подкрепа. Програмистите работят изключително добре в екипи и често са в състояние да дадат информация за разрешаването и адаптирането на проблем. Поради тази причина се препоръчва да намерите някой, който е на път, подобен на вас, или дори ментор, който е там, за да отговори на въпросите, които може да имате, и който може да помогне за ускоряване на обучението ви. Това също ще ви бъде от полза, тъй като можете да обясните накратко проблем и да демонстрирате предишните си усилия в опитите за разрешаване на проблема.
Всички програмисти ще са преминали през етапи, в които не са имали всички отговори за разрешаване на определен проблем и е трябвало да потърсят подкрепа, приемливо е да задавате въпроси и да се учите от всякакви грешки или лоши практики, направени като младши софтуерен разработчик.
Заключение
Всеки път, когато инвестирате собственото си време в нещо, вие се отказвате от възможността да правите нещо друго. Не всяко учене е създадено еднакво, така че се препоръчва да отделите малко време за проучване, за да решите в какво да вложите времето и усилията си. Не става въпрос за натъпкване на най-много работа, за да станете по-добри. Тези, които успяват, са тези, които могат да учат ефективно. Това е умение, което надхвърля простото научаване на кодиране.
Направете свое собствено проучване и разберете нещата сами и намерете няколко ментори, на които можете да се доверите, това ще отнеме време, но ще бъде инвестирано в ценно умение, което има все по-голям потенциал.
Следвайте ме в Twitter за повече програмно съдържание: wylleman_seb