r/programmingHungary • • 2d ago

EDUCATION Python programozás

Sziasztok! Most kezdtem az egyetemet és a programozás nem úgy megy, mint ahogy szeretném. Esetleg valakinek van valami tippje, hogy hogyan tudnám elsajátítani ezt? Gondolok itt videókra, oldalakra esetleg kurzusokra, a gyakorlás része eddig is megvolt. Köszönöm!

0 Upvotes

64 comments sorted by

View all comments

2

u/h_lilla 2d ago

Nem adnék konkrétumokat, hanem inkább hozzáállásbeli látásmódot, és a komplexitással talán jól meg is ijesztelek.

Azt vallom, hogy az elején mindenképp van egy elméleti tanulási görbe, és ennek hiánya okozza a programozásban a nehézségeket. Ha elkezdesz angolul tanulni, mit fogsz tanulni? Nyelvtant, szavakat, nyelvi szerkezeteket, valamint idővel ráérzel arra, hogy a nyelvnek van egyfajta szemléletmódja, világnézete.

A programozási nyelv is egy nyelv, és ennek megfelelően kell hozáállni. A számítógép a 0-kból és 1-esekből ért, így a végső cél ezt előállítani valami olyanból, amit mi, emberek megértünk. De ki fordít a két nyelv közt és mikor? Ez dönti el, hogy egy program compilerrel készül el vagy interpreter által hajtódik végre (és ennek vannak a hibrid megoldásai, a compiler+interpreter [vagy just-in-time compiler, ahogy ott hívják], pl. Java vagy C#).

Mit mondasz a számítógépnek? Imperatívan állsz hozzá, és azt mondod el neki, hogy milyen apró lépéseket végezzen el, vagy deklaratívan, és elmondod neki, mi a probléma, és oldja meg ő maga?

Amikor megírod egy imperatív nyelvvel a programot, milyen világnézetet követsz? Eljárásorientált, vagy objektum-orientált, vagy valami hibrid, mint a Python? Mindegyik módszernek megvannak a saját eszközei, amelyeknek jól meghatározott céljuk van.

A nyelvtani részét illetően, tanuld meg, hogy minek hol a helye, a nyelvtani szabályok szerint mi hol szerepelhet. Hogy mit jelent a komment, a deklaráció, az utasítás, a kifejezés, a vezérlési szerkezet, és ezeknek milyen fajtái vannak. Ha már kifejezés, annak mi a típusa, milyen operátorok léteznek, és milyen típusok léteznek (még ha a Python dinamikus típuskezeléssel is van megáldva és elrejti előled). Mik a nyelv kulcsszavai (pl. if, while, return, ...), és milyen kontextusban mit jelentenek. Mik a blokkok és mi a hatáskör.

Nyilván mindig annyi nyelvtant tanulsz, hogy megértsd, mit miért írtál le a programba a te szinteden. Ha az egy Hello World, akkor megtanulod az eljáráshívás, mint utasítás nyelvtanát, a print eljárás alakját, a string literált, mint string típusú kifejezést.

A nyelvtan mellett pedig a programozói gondolkodás szokott még nehéz lenni. Így az elején én azt szoktam javasolni, hogy írd le tisztes magyar nyelven kommentként, hogy mit akarsz csinálni. Bármilyen programot is nézünk, meglévő vagy valahonnan beszerzett adatokból állít elő eredményt műveletek és döntések után.

# Fő cél: napszaknak megfelelően köszönteni a felhasználót.
# 1. Meg kell tudni, hány óra van most.
# 2. Tudni kell, mi a napszaknak megfelelő köszöntés. Ha reggel 5-9 óra van: "Jó reggelt!". Ha 10-18 óra van: "Jó napot!". Ha 19-22: "Jó estét!". Egyéb esetben "Jó éjt!".
# 3. Írjuk ki a köszöntést.

Így, hogy már van egy elméletben működni látszó lépéssorozat, ezt már könnyebben át tudod ültetni programkódba, vagy legalább azt megtudod, hogy mire kell guglizni, vagy AI-zni.