Karrier

Hogyan kell programozóként gondolkodni a problémamegoldás során?

Hogyan kell programozóként gondolkodni a problémamegoldás során?


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.

Meg akar tanulni problémamegoldást, mint egy számítógépes programozó? Akkor jó helyre került.

Itt azt vizsgáljuk meg, hogyan oldja meg az átlagos programozó a problémákat, és javaslatot teszünk arra, hogy miként tehetnéd meg ugyanezt. Egy jobb, hatékonyabb problémamegoldó jövő vár rád.

Legalábbis elméletben.

KAPCSOLÓDÓ: A LEGJOBB PROGRAMOZÓK közül 9 MOST

Mi a problémamegoldás a programozásban?

Mielőtt elkezdenénk, érdemes leszögezni, hogy a problémamegoldás mit jelent a programozók számára.

Az Utah-i Egyetem Számítástechnikai Iskolája szerint gyakran meghatározzák:

"A problémamegoldás [a] problémamegoldás a számítástechnika lényege. A programozóknak először meg kell érteniük, hogy az ember hogyan oldja meg a problémát, majd meg kell érteniük, hogyan kell ezt az" algoritmust "lefordítani olyanná, amire a számítógép képes, és végül hogyan kell" írni " a munka elvégzéséhez szükséges speciális szintaxist (amelyet a számítógép megkövetel). "

A felszínen egyszerűen hangzik, de amint kiderül, valójában inkább egy "művészet", mint egy tudomány (bizonyos mértékben).

Kapaszkodj...

Mit gondolsz, mint egy programozó?

Steve Jobs híresen azt mondta, hogy "ebben az országban mindenkinek meg kell tanulnia programozni a számítógépet, mert az megtanít gondolkodni". Ez egy nagyon erőteljes üzenet, és nem feltétlenül jelenti azt, hogy a következő Ada Lovelace, Steve Wozniak vagy Bill Gates leszel.

A "puha készségek" vagy a "meta-készségek" fejlesztése, mint például az egyértelmű és kritikus gondolkodás megtanulása, az életed számos területén osztalékot jelent.

Különösen szakmai karrierje során, akármelyik utat választotta is, legyen az mérnök vagy sem.

Más fontos "meta-készségek" mellett, mint a perspektívafelvétel, a fájdalomfoltozás, a történetmesélés, az interjúkészítés és a pontok összekapcsolása, e készség elsajátítását széles körben elengedhetetlennek tartják a technológiailag összetett világunkban. Valójában sok munkaadó előnyben részesíti a problémamegoldást és az alapvető kódolást bizonyos mértékben a legtöbb más készséggel szemben, amikor potenciális új alkalmazókat keres.

"A problémamegoldó készségek szinte egyöntetűen a legfontosabb képesítés, amelyet a munkaadók keresnek.

A számítási gondolkodás vagy a nagy, összetett problémák lebontásának képességének bemutatása ugyanolyan értékes (ha nem is inkább), mint a munkához szükséges alapvető technikai készségek. ” - Hacker Rank.

Tehát hogyan lehet ilyen készséget fejleszteni? Nos, az egyik módja az, hogy megpróbál programozóként gondolkodni.

Ha ismer valakit a baráti társaságában, akkor az első hívási pont az lehet, ha őszinte és nyílt vitát folytat erről. Lehet, hogy az elején kínos lesz, de gyorsan megtanulja és megszereti a folyamatot.

De lényegében a programozók megtanulják, általában próbálgatással és hibával, hogy fokozatosan hatékonyabbá váljanak a problémamegoldásban. A legtöbb ember, hacsak nem fejlesztett ki robusztus rendszert, valószínűleg a következőkhöz hasonló dolgokat fog bevonni:

1. Próbálja meg a megoldást.

2. Ha nem működik, próbáljon ki egyet.

3. Ha ez sem sikerül, öblítse le és ismételje meg a 2. lépést, amíg nem talál valamit, ami működik (talán a szerencsén keresztül).

Bár ésszerű megközelítésnek tűnik, ez a módszertan egyszerre adóztatja meg szellemi energiáját, és ami a legfontosabb, értékes és pótolhatatlan időt (az egyetlen igazi eszköz az életben). Valójában ez a durva erő módszer a problémák megoldására.

A programozók a finomabb és hatékonyabb módszer mesterei ennek a tervnek, a végrehajtásnak, az ellenőrzésnek, a stratégiai cselekvésnek a segítségével. Ez tulajdonképpen a következőket foglalja magában:

1. Keret megközelítéssel rendelkezik a probléma kezelésére.

2. Gyakorolj, tanulj a hibákból, vizsgáld felül és javíts, amíg el nem sajátítod.

Míg ez kezdetben nagy időbe telik, addig, ha jól ismeri, a jövőben osztalékot fizet. Meg kell próbálnia ápolni néhány más életstílusbeli szokást is (például Elon Musk szokásait), amelyek jó helyzetben lesznek a problémamegoldás során a programozói gondolkodásmód segítségével.

Hogyan javíthatom programozási problémamegoldó készségemet és fejleszthetek programozói gondolkodásmódot?

Mint már korábban említettük, a legjobb módszer a problémamegoldás keretrendszerének kidolgozása, majd gyakorlás, gyakorlás, gyakorlás. De mit jelent a problémamegoldás kerete?

Hatalmas könyvtár létezik csak erről a témáról, de lényegében a problémamegoldó keretrendszer néhány, ha nem az összes alábbi elemet tartalmazza:

1. Bontson meg egy értő kérdést

A problémamegoldó keretrendszer első lépésének arra kell törekednie, hogy pontosan megtudja, mit kérnek vagy igényelnek. Sok, látszólag leküzdhetetlen probléma éppen azért van így, mert kezdetben nem értjük őket összességében.

Szóval, hogy csinálod ezt? Az egyik jelző, amellyel felfogta a kérdést, az, hogy képes egyszerű magyarázattal vagy akár egy diagrammal magyarázni.

Gondolkodással és a probléma megszólaltatásával gyorsan megtalálja a logikában rejlő lyukakat, vagy saját megértését, amelyet előzetesen elmulasztott. Ez az egyik folyamat, amellyel a legtöbb programozó élénken tisztában lesz.

Írja le a problémát, legyen egy vázlata (esetleg gondolattérkép segítségével), és próbálja meg elmagyarázni másnak.

2. A tervezés elmulasztása, a kudarc tervezése (készítsen tervet, és egy nagy problémát bontson kisebbekre)

A következő lépés az, hogy megpróbálunk megfogalmazni egy támadási tervet. Mint bármi az életben, soha ne kezdj valamit addig, amíg ezt meg nem tetted (különösen olyan dolgokat, mint például a pénz befektetése).

Bontja a nagyobb problémákat kisebb, jobban emészthető darabokra, és gondoljon arra, hogyan lehetne kipipálni őket a listáról. Valószínűleg ehhez hasonló dolgot fejlesztett ki az egyetemi tanulmányai alatt vagy az élet bármely más időpontjában.

A programozók számára nem merülnek el egyenesen anélkül, hogy ezt a fázist rendezni kellene. Az ebben a szakaszban befektetett idő rengeteg felesleges időt takarít meg később az úton.

Ez a programozó gondolkodásmódja.

Próbáljon megválaszolni egy olyan kérdést, hogy "adott egy bemenetet, milyen lépésekre van szükségem egy másik kimenet visszaadásához?", Stb. Nem beszélve az "ha ez akkor, vagy valami más" utasítások hálózatáról.

Ez kritikus fontosságú a programozók számára, mivel szubrutinokat, függvényeket, módszereket és eljárásokat, valamint egyéb kisebb kódbiteket kell kifejleszteniük, amelyeknek egészben működniük kell.

Az egyik hiba hatással lehet és általában hatással van a kód más részeire, és akár olyan kérdésekhez is vezethet, mint a végtelen hurkok. A fő probléma minden szakaszának ilyen módon történő feldolgozásával a hibák és a megoldások kezelhetők, amikor azok megjelennek.

Az sem szokatlan, hogy a letiltás több kisebb, önálló kóddarabban is problémamegoldást igényel. Ez lényegében a pontok összekapcsolásának egyik módja.

Mellékesen szólva, ez is az egyik fő oka annak, hogy a programozók a megjegyzéseket kódban használják. Különösen, ha egy csapat részeként dolgozunk (senki nem olvashatja el más gondolatait).

De eltérünk.

Nem kell félnie segítséget kérni, vagy valami kutatást. Lehet, hogy nem kell újból feltalálnia a kereket. De NE támaszkodjon más problémáinak megoldására, mivel nem sajátítja el és fejleszti saját gondolatait és készségeit egy adott területen.

"Ha minden kezdő programozónak egy problémamegoldó képességet tudnék megtanítani, az a" csökkentse a probléma technikáját "...

Csökkentse a problémát addig a pontig, ahol tudja, hogyan kell megoldani, és írja meg a megoldást. Ezután kissé bővítse ki a problémát, és írja át a megoldást, hogy megfeleljen, és folytassa addig, amíg vissza nem tér vissza oda, ahol elkezdte. "- V. Anton Spraul.

3. "Maradjon a célnál", időnként elakadhat és el is fog ragadni

"Az egerek és férfiak legjobban lefektetett tervei gyakran elromlanak" - ahogy Robert Burns híresen elmondta. Ne aggódjon, ez várható, és gyakran magáévá teszi.

De mit csinálsz, ha nem tudsz megoldani egy problémát, különösen programozáskor?

Míg sokan felvetik a kezüket egy probléma vagy sikertelen megoldás első látására, a legtöbb programozó kíváncsiságot tanúsított a "hibák" iránt.

Nem is beszélve az eltökéltségről, hogy kijavítsuk őket.

Ha bővülnek, a programozók általában elindítják a következő folyamatot, egy mentális funkciót:

  • Vegyen részt egy hibakeresési folyamatban azáltal, hogy lépésről lépésre végigveszi az írásos megoldást a nyilvánvaló problémák megtalálásában (például a szintaxis helytelen használata).
  • Ha ez nem sikerül, értékelje újra egy lépéssel hátrébb, és próbálja "megtalálni a másik szöget" a problémára. Elvonható bármi, vagy hiányzik valami? Más szavakkal: "hiányzik az erdő a fákért"? Nagyon-nagyon gyakori, hogy annyira belemerül a részletekbe, hogy gyakran hiányzik a nagyobb kép.
  • Ha minden nem sikerül, egyszerűen elölről kezdheti az egészet - csodálkozna azon, hogy milyen megoldásokat lehet találni.

4. A gyakorlat teszi tökéletessé

Egy kis közhely? Talán, de nem számíthat arra, hogy az összes összetett problémát vagy részproblémát egyik napról a másikra megoldja. Bármiben jónak lenni, időbe telik a gyakorlás, a kudarc, az újrapróbálkozás és az elsajátítás.

Ahogy bővíti tapasztalatait a problémamegoldásban, a folyamat egyre gyorsabbá válik, amikor azonosítja azokat a módszereket, amelyeket korábban használt és amelyek alkalmazhatók egy adott helyzetben. Valójában a legsikeresebb emberek közül sokan rendszeresen részt vesznek a "mini-problémamegoldásban".

Egyesek sakkoznak, mások sudokut, mások rendszeresen keresztrejtvényeket vagy akár számítógépes játékokat játszanak. Próbáljon meg találni olyat, amelyik tetszik és a szürke anyagot dolgozza fel!

És ami a legfontosabb talán: ne féljen a kudarctól. Sokkal többet fog megtudni onnan, ahol elrontod, mint valaha, onnan, ahol sikerrel jársz. Tanulj meg bukni, és bukj gyorsan!

És ez egy pakolás. Várja az utat a problémamegoldáshoz programozóként!

Sok szerencsét utazó.


Nézd meg a videót: Programozói karrier első évei: hogyan haladhatok gyorsabban? (Lehet 2022).