Кариера

Како да размислите како програмер кога решавате проблеми

Како да размислите како програмер кога решавате проблеми


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Дали сакате да научите да решавате проблеми како компјутерски програмер? Тогаш дојдовте на вистинското место.

Тука истражуваме како просечен програмер се справува со проблемите и предлагаме начини да ви помогнеме да го направите истото. Ве очекува подобра, поефикасна иднина за решавање проблеми.

Барем во теорија.

ПОВРЗАНО: 9 од најсмешните програмери сеќаваат токму сега

Што е решавање на проблеми во програмирањето?

Пред да започнеме, можеби вреди да се закова што решава проблеми има намера да значи за програмерите.

Според Факултетот за компјутери на Универзитетот во Јута, тоа често се дефинира како:

„Решавањето проблеми [е] решавањето проблеми е јадрото на компјутерската наука. Програмерите прво мора да разберат како човекот решава проблем, потоа да разберат како да го преведат овој„ алгоритам “во нешто што може да го стори компјутерот, и на крај како да„ напише “ специфичната синтакса (потребна од компјутер) за да се заврши работата. "

Звучи едноставно на површината, но, како што ќе откриете, тоа е всушност нешто како „уметност“, повеќе од наука (до одредена мера).

Држете се цврсто ...

Како мислите како програмер?

Стив sобс славно рече дека „сите во оваа земја треба да научат да програмираат компјутер затоа што тој ве учи да размислувате“. Ова е многу моќна порака и не мора да значи дека треба да станете следната Ада Ловлејс, Стив Возниак или Бил Гејтс.

Развивање на „меки вештини“ или „мета-вештини“ како на пример учење како да размислите јасно и критички, ќе исплатите дивиденда во многу аспекти од вашиот живот.

Особено во вашата професионална кариера, која и да сте ја одбрале патеката, било да е тоа инженер или не.

Заедно со другите важни „мета-вештини“ како земање перспектива, забележување болка, раскажување приказни, интервју и поврзување на точките, совладувањето на оваа вештина нашироко се смета за суштинско во нашиот технолошки комплексен свет. Всушност, многу работодавци имаат приоритет на решавање на проблеми и основно кодирање до одредена мерка, во однос на повеќето други вештини кога бараат потенцијални нови вработувања.

„Вештините за решавање проблеми се скоро едногласно најважната квалификација што работодавачите ја бараат .... повеќе од владеење на програмските јазици, дебагирање и дизајн на системот.

Да се ​​покаже пресметковно размислување или можност за разградување на големи, сложени проблеми е исто толку вредно (ако не и повеќе) од основните технички вештини потребни за работа “. - Хакерски ранг.

Па, како може да развиете таква вештина? Па, еден начин е да се обиде да размисли како програмер.

Ако знаете кој било во вашата пријателска група, вашето прво пристаниште може да биде искрена и отворена дискусија за ова. Можеби ќе се чувствува непријатно на почетокот, но вие брзо ќе го научите и засакате процесот.

Но, во суштина, програмерите учат, обично преку обиди и грешки, да станат постепено поефикасни во решавањето на проблемите. Повеќето луѓе, освен ако не сте развиле робустен систем, најверојатно ќе вклучат нешто како што следува:

1. Обидете се за решение.

2. Ако не работи, обидете се со друг.

3. Ако и тоа не успее, исплакнете и повторете го чекор 2 додека не пронајдете нешто што работи (можеби преку среќа).

Иако звучи како разумен пристап, оваа методологија е оданочување на вашата ментална енергија и, што е најважно, вредно и незаменливо време (единственото вистинско богатство во животот). Ова е, всушност, метод на брутална сила за решавање на проблемите.

Програмерите се господари на еден посуптилен и ефективен начин за правење на тоа преку стратегија за план, направете, проверете, дејствувајте. Ова вклучува, всушност:

1. Имање рамковен пристап за справување со проблем.

2. Вежбајте, учете од грешките, прегледувајте и подобрувајте сè додека не го совладате.

Додека, првично, за ова е потребна голема инвестиција во вашето време, откако ќе бидете добро упатени во тоа, тоа ќе исплати дивиденда во иднина. Исто така, треба да се обидете да негувате некои други навики во стилот на живот (како оние на Елон Маск) кои ќе ве стојат во добра позиција кога решавате проблеми со користење на програмерско размислување.

Како можам да ги подобрам моите програмски вештини за решавање проблеми и да развијам програмерско размислување?

Како што претходно споменавме, најдобриот начин е да се развие рамка за решавање на проблеми и потоа да се вежба, практикува, практикува. Но, што значи да се има рамка за решавање на проблеми?

Постои огромна библиотека токму на оваа тема, но во суштина, рамката за решавање проблеми ќе има некои, ако не и сите, од следниве главни компоненти:

1. Разбијте го разберете го предметното прашање

Првиот чекор во вашата рамка за решавање проблеми треба да биде обид да знаете што точно се бара, или се бара. Многу, очигледно ненадминливи проблеми се баш затоа што првично не ги разбираме во целост.

Па, како го правиш ова? Еден показател дека сте го сфатиле проблемот е со тоа што можете да го објасните на обичен англиски јазик, па дури и со дијаграм.

Размислувајќи и вокализирајќи го проблемот, брзо ќе ги пронајдете дупките во логиката или сопственото разбирање што можеби претходно сте го пропуштиле. Ова е еден процес за кој повеќето програмери ќе бидат многу свесни.

Напишете го проблемот, испукајте го да го скицирате (можеби користејќи мапа на умот) и обидете се да му објасните на некој друг.

2. Ако не планирате, планирате да не успеете (направете план и расчленете голем проблем на помали)

Следниот чекор е да се обиде да формулира план за напад. Како и што било во животот, никогаш не започнувајте нешто додека не го направите ова (особено работи како инвестирање во парите).

Разграничете поголеми проблеми на помали, повеќе сварливи парчиња и размислете како да ги одберете од списокот. Веројатно сте развиле нешто слично на ова за време на вашето студирање на универзитет или кое било друго време во животот.

За програмерите, тие не нуркаат директно без да ја решат оваа фаза. Времето инвестирано во оваа фаза ќе ви заштеди еден тон потрошено време подоцна по патот.

Ова е размислување на програмерот.

Обидете се да одговорите на прашање како што е: „Даден внес, кои се чекорите што ми требаат за да вратам друг излез?“, Итн. Да не спомнувам мрежа од пакет инструкции „ако ова тогаш, или нешто друго“.

Ова е од клучно значење за програмерите бидејќи тие треба да развијат потпрограми, функции, методи и процедури и други помали делови на кодови, кои мора да работат како целина.

Грешка во еден може и обично ќе влијае на другите делови на кодот, па дури може да доведе до проблеми како бесконечни јамки. Со работа на секоја фаза од главниот проблем на овој начин, грешките и решенијата може да се решат кога и кога ќе се појават.

Исто така, не е невообичаено за закачување да бара решавање на проблеми и во повеќе помали автономни парчиња кодови. Ова е, во суштина, начин за поврзување на точките.

Како прилог, ова е исто така една од главните причини што коментарите се користат во кодот од страна на програмерите. Особено кога работите како дел од тим (никој не може да чита ум на друг).

Но, ние отстапуваме.

Не треба да се плашите да побарате помош, или така истражување. Можеби не треба повторно да го измислувате тркалото. Но НЕМОЈ потпрете се на решенијата на другите за вашите проблеми бидејќи нема да научите и да развивате свој ум и вештина во одредена област.

„Ако би можел да научам на секој почетен програмер една вештина за решавање проблеми, тоа би била„ техниката за намалување на проблемот “...

Намалете го проблемот до точка каде што знаете како да го решите и напишете го решението. Потоа, проширете го проблемот малку и препишете го решението за да одговара и продолжете додека не се вратите таму каде што сте започнале. “- В. Антон Спурал.

3. „Остани на целта“, може и ќе се заглавиш на моменти

„Најдобро поставените планови на глувци и мажи често одат на лошо“, како што славно рече Роберт Барнс. Не грижи се, ова е очекувано и често прифатено.

Но, што правите кога не можете да решите проблем, особено кога програмирате?

Додека многумина ќе ги кренат рацете на прв поглед на проблем, или решение што не успее, повеќето програмери развија став на iosубопитност кон „бубачки“.

Да не зборуваме за решеноста да ги поправам.

Кога ќе се појават, програмерите обично започнуваат процес, ментална функција, ако сакате, од следново:

  • Вклучете се во процес на дебагирање со чекор чекор по нивното пишано решение за да пронајдете очигледни проблеми (како злоупотреба на синтаксата).
  • Ако тоа не успее, повторно проценете со чекор назад и обидете се да „пронајдете друг агол“ на проблемот. Може ли нешто да се апстрахира или нешто ви недостасува? Со други зборови, дали „ви недостасува шумата за дрвјата“? Многу е многу вообичаено да се заглавите во деталите што честопати ќе ја промашите поголемата слика.
  • Ако сите не успеат, можете едноставно да започнете одново - ќе бидете изненадени што можат да се најдат решенија.

4. Вежбањето е совршено

Малку клише? Можеби, но не можете да очекувате да ги решите сите комплексни проблеми или под-проблеми, преку ноќ. Да се ​​биде добар во што било треба време да вежбате, да не успеете, да се обидете повторно и да го совладате.

Како што го градите вашето искуство во решавање на проблеми, процесот ќе стане побрз и побрз кога ќе ги идентификувате методите што сте ги користеле претходно и кои можат да се применат во дадена ситуација. Всушност, многу од најуспешните луѓе редовно учествуваат редовно во „мини-решавање проблеми“.

Некои играат шах, други судоку, други пак крстозбори или дури и компјутерски игри, редовно. Обидете се да најдете оној во кој уживате и да работите со таа сива материја!

И, веројатно најважно од сè, не плашете се од неуспех. Willе научите многу повеќе од тоа каде ќе се плеткате отколку некогаш од каде што успевате. Научете да пропаѓате, и брзо не успевајте!

И тоа е обвивка. Вашиот пат до решавање проблеми како што чека програмер!

Среќно патник.


Погледнете го видеото: Algebra I: Translating Problems Into Equations Level 2 of 2. 3 Facts and 3 Unknowns (Декември 2022).