Programmeringsprojekt för nybörjare!

Permalänk
Medlem

Programmeringsprojekt för nybörjare!

Jag läser just nu en teknisk utbildning på högskola och har läst en kurs i Python. Då fann jag inte att programmering var särskilt intressant men jag tänkte att jag skulle försöka mig på ett lättare projekt för att ge det en chans till fast mer som en fritidssyssla. Min kunskap hittills är implementering av if, while, for samt iteration mellan listor och dictionaries. Har även introducerat OOP. Eftersom man lärt sig allt under en 10-veckorsperiod så är förståelsen möjligtvis något bristfällig för hur Python opererar men skulle ändå säga att jag har någorlunda koll.

Nu till min fråga om projekt som inte ska kännas omöjligt för mig att klara av. En egen idé är att skapa ett program som inaktiverar tangentbordet samt datormus och aktiveras igen genom en kombination av tangenter. Är detta genomförbart eller låter det som en för hög komplexitet? Någon som har ett förslag på ett annat bra projekt?

Tack på förhand!

Permalänk
Medlem

Problemet med utilities av olika slag som liknar det du nämner är att man kan behöva ganska djup integration med operativsystemet. Det är antagligen inte funktioner som finns inbyggda i Python, utan det blir i så fall att sitta och leta API anrop i Microsofts dokumentation (om du kör Windows) och sedan översätta de anropen från C till t ex ctypes (ett bibliotek i Python för att anropa C-funktioner) eller skriva så kallad "glue kod" i C som läses in av Python. Det är inte helt lätt ens när man är erfaren inom både Python och C... ChatGPT kan ibland göra underverk på en del såna här saker, men det kan också gå käpprätt åt h*lvete utan att man har en aning om varför

Det finns ingenting du känner att du "saknar" som bara går ut på att ta in data, göra någon operation på dessa data, och ge ett svar tillbaka? Eventuellt med data som kommer från en web-sida eller liknande? T ex den som är intresserad av aktier kanske vill ta fram någon viss statistik, eller någon statistik över något online-spel, eller du vill göra någon beräkning på elanvändning, eller någon speciell väderpresentation eller något annat? Jag tror väldigt många börjar med programmering för att de vill lösa något problem av den här typen.

Eller om du har någon idé på något väldigt enkelt datorspel, tänk något i stil med Tetris eller "Masken".

Permalänk
Medlem

Jag skulle rekommendera att du försöker att ta dig igenom adventofcode.com
jag har inte gjort 2022 och tyckte att 2021 var utmanande att klara inom tiden
men det ger många möjligheter till att fundera på algoritmer och att strukturera sin kod,
man har tidigare haft nytta av att bygga vidare på tidigare lösningar.

Typiskt så är liknande problem enkla att lösa med ett naivt program för det lilla exemplet,
sedan får man en mycket större fil med samma struktur där det krävs en algoritm som är effektivare både i tid och minne.
Det lär komma problem som är svåra, men försök att lösa dom på ditt sätt och sedan kan man nog hitta
lösningar på nätet som du kan försöka förstå eller få inspiration av.
Just pythonkod kan nog bli kryptisk ibland, typ oneliners med list comprehension

Du snackar om att interagera med mus och tangentbord,
men det handlar mer om kunskap om system och libraries än programmering i python.
Har du ett verkligt intresse kanske du behöver välja ett programspråk som ofta används för
det efter att du lärt dig grunderna i t.ex python och kan avgöra dess för och nackdelar.

Permalänk
Medlem

Tack för väldigt bra svar! Då var det tur att jag frågade om mitt lilla projekt först för annars kanske det kylt ned mitt intresse ännu mer 😉. Ett annat förslag är att skapa ett program som beräknar min aktiva konsumtion per månad och beräknar ett genomsnitt per år. Det tänker jag borde vara mer genomförbart? Då tänker jag även lägga till ett grafiskt gränssnitt då vi i Python-kursen jobbat lite med ett grafiskt bibliotek.

Kan även tillägga att jag just nu håller på med enkel ASM och kommer inom ett par veckor börja med C. Vet inte om man kan åstadkomma fler saker med dessa olika språk?

Permalänk
Medlem
Skrivet av Cybrus:

Tack för väldigt bra svar! Då var det tur att jag frågade om mitt lilla projekt först för annars kanske det kylt ned mitt intresse ännu mer 😉. Ett annat förslag är att skapa ett program som beräknar min aktiva konsumtion per månad och beräknar ett genomsnitt per år. Det tänker jag borde vara mer genomförbart? Då tänker jag även lägga till ett grafiskt gränssnitt då vi i Python-kursen jobbat lite med ett grafiskt bibliotek.

Kan även tillägga att jag just nu håller på med enkel ASM och kommer inom ett par veckor börja med C. Vet inte om man kan åstadkomma fler saker med dessa olika språk?

Ett sådant program är klart möjligt. En riktigt enkel version behöver bara ett grundläggande fönster, en textruta och en knapp för att spara. Med lite addition i bakgrunden.

Sedan kan du expandera det hur mycket som helst.

Permalänk
Medlem
Skrivet av Cybrus:

Tack för väldigt bra svar! Då var det tur att jag frågade om mitt lilla projekt först för annars kanske det kylt ned mitt intresse ännu mer 😉. Ett annat förslag är att skapa ett program som beräknar min aktiva konsumtion per månad och beräknar ett genomsnitt per år. Det tänker jag borde vara mer genomförbart? Då tänker jag även lägga till ett grafiskt gränssnitt då vi i Python-kursen jobbat lite med ett grafiskt bibliotek.

Kan även tillägga att jag just nu håller på med enkel ASM och kommer inom ett par veckor börja med C. Vet inte om man kan åstadkomma fler saker med dessa olika språk?

Bara du kan veta om du har nytta av ett sånt program. För mig låter det förvisso lite som att ett Excel-ark kan lösa just den uppgiften lika väl, men åas finns det många populära program som löser extremt specifika problem bara snäppet lättare och/eller snyggare än Excel.

Själv tycker jag det är viktigt att få ett hum om Assembler för att förstå hur en dator egentligen funkar även om "ingen" behöver/använder Assembler nu för tiden, men det finns garanterat mängder med programmerare där ute som inte kan något annat än JavaScript eller Python och ändå drar in miljontals kronor per år på att vara duktig på sin nisch.

Både Windows och Linux bygger mestadels på APIer i C. Dvs när ett program vill göra någonting annat än beräkningar kommer det i slutändan vara C-anrop mellan programmet och operativsystemet som används, och anropen är dokumenterade i C. Vill man göra mer komplicerade saker än att läsa lite input och rita saker på skärmen etc (som någon annan redan skapat en "översättning" av från C till t ex Python) kommer man behöva förstå C. Men bara för att man är duktig på C betyder det inte nödvändigtvis att det är lätt att göra det man vill. APIer kan ofta vara svårare att förstå sig på än programmeringsspråk och den officiella dokumentationen kan vara väldigt bristfällig osv.

Permalänk
Medlem

Kul att det låter görbart! Huruvida programmet redan existerar har för mig mindre betydelse. Om programmet blir för svårt att koda lär jag snabbt tappa intresset och de idéer som är mer häftiga att förverkliga torde ju då vara högre svårighetsgrad. I grund och botten handlar detta om att utforska programmering bortom det snäva kursupplägg som jag redan tagit mig igenom, och ge det en mer ärlig chans. Det finns inget som blir kul när man måste stressa ihjäl sig med att lösa uppgifter för att kunna klara tentan och då fokuseras det mindre på vad det är man faktiskt gör. Trist att det ska vara så, men det är den bittra sanningen.

Permalänk
Skrivet av Cybrus:

Jag läser just nu en teknisk utbildning på högskola och har läst en kurs i Python. Då fann jag inte att programmering var särskilt intressant men jag tänkte att jag skulle försöka mig på ett lättare projekt för att ge det en chans till fast mer som en fritidssyssla. Min kunskap hittills är implementering av if, while, for samt iteration mellan listor och dictionaries. Har även introducerat OOP. Eftersom man lärt sig allt under en 10-veckorsperiod så är förståelsen möjligtvis något bristfällig för hur Python opererar men skulle ändå säga att jag har någorlunda koll.

Nu till min fråga om projekt som inte ska kännas omöjligt för mig att klara av. En egen idé är att skapa ett program som inaktiverar tangentbordet samt datormus och aktiveras igen genom en kombination av tangenter. Är detta genomförbart eller låter det som en för hög komplexitet? Någon som har ett förslag på ett annat bra projekt?

Tack på förhand!

Så du vill aktivera tangentbordet genom en kombination av tangenter när tangentbordet är inaktiverat och inte registrerar tangenter?

Vad är syftet? Låter som du försöker koda skadlig mjukvara.

Permalänk
Medlem
Skrivet av Jonathan-dev:

Så du vill aktivera tangentbordet genom en kombination av tangenter när tangentbordet är inaktiverat och inte registrerar tangenter?

Vad är syftet? Låter som du försöker koda skadlig mjukvara.

Syftet är att jag har en katt som gärna kliver på tangentbordet och jag vill snabbt kunna stänga av det och snabbt aktivera det. Att det skulle vara avsett för skadlig mjukvara är väl ändå lite långsökt? 😁

Permalänk
Medlem

Jag skulle rekommenderar att göra något litet verktyg du skulle ha nytta av. Det kan vara precis vad som helst som underlättar din vardag som datornörd. Skit som sagt i om det redan finns. För det gör det. Som de sa i en pod jag lyssnar på. Kommer man på en idé så finns den med största sannolikhet redan på Github.
Jag själv kladdade ihop ett litet lätt verktyg som kan döpa om filer i batches för en väldigt specifik sak. Det funkar alltså inte till något annat.

Skrivet av Jonathan-dev:

Så du vill aktivera tangentbordet genom en kombination av tangenter när tangentbordet är inaktiverat och inte registrerar tangenter?

Vad är syftet? Låter som du försöker koda skadlig mjukvara.

Programmet blockerar ju bara inputsen tills att man tryckt en viss kombination. Ser inte själv nyttan, men är säkert ett kul projekt.
Edit: Såg att Cybrus han svara.

Visa signatur

www.fckdrm.com - DRM år 2024? Ha pyttsan.

Permalänk
Medlem

Om du tycker matematik är roligt så kan du ju göra en textbaserad miniräknare? Tänk en light-version av wolframalpha.
Väldigt enkelt till en början, men går att göra väldigt avancerat. Svåra är att få till parsningen av text, dvs att få till ((5+2)-2)*2 sedan går det ju lägga till att lösa t.ex. x + 2 = 5 osv..

Visa signatur

10700K | NVIDIA RTX 3080

Permalänk
Medlem

Jag tycker matematik är intressant så jag gillar förslaget med att utveckla en miniräknare. Känns inte som att det vore helt omöjligt att utföra.

Permalänk
Skrivet av Cybrus:

Syftet är att jag har en katt som gärna kliver på tangentbordet och jag vill snabbt kunna stänga av det och snabbt aktivera det. Att det skulle vara avsett för skadlig mjukvara är väl ändå lite långsökt? 😁

Låter enklare att köpa ett tangentbord som du kan slå på/av XD

I C språket finns biblioteket <winable.h> som har funktionen BlockInput(true), som blockerar både tangentbord och mus. Endast kombinationen ctrl+alt+del funkar - av säkerhetsskäl - som öppnar upp aktivitetshanteraren.

Lekte lite med detta när man var yngre; hade ett program som öppnade och stängde CD-ROM enheten.

Permalänk
Medlem
Skrivet av Jonathan-dev:

Låter enklare att köpa ett tangentbord som du kan slå på/av XD

I C språket finns biblioteket <winable.h> som har funktionen BlockInput(true), som blockerar både tangentbord och mus. Endast kombinationen ctrl+alt+del funkar - av säkerhetsskäl - som öppnar upp aktivitetshanteraren.

Lekte lite med detta när man var yngre; hade ett program som öppnade och stängde CD-ROM enheten.

<winable.h> är inget bibliotek utan en header, och den ingår inte i språket C utan var en Windows-specifik utökning som inte stöds av modernare Windows SDK:er, utan där skall man istället använda den lika Windows-specifika headern <winuser.h>

Permalänk
Skrivet av Erik_T:

<winable.h> är inget bibliotek utan en header, och den ingår inte i språket C utan var en Windows-specifik utökning som inte stöds av modernare Windows SDK:er, utan där skall man istället använda den lika Windows-specifika headern <winuser.h>

Ja, och den blev dessutom förlegad för 15 år sedan.

Men funktionen finns kvar i <winuser.h>

https://learn.microsoft.com/en-us/windows/win32/api/winuser/n...

Permalänk
Medlem

Jag har haft samma problem, jag VILL lära mig mer om Python men har svårt att hitta på ett bra projekt som känts kul att göra.

Så istället började jag fundera vad som skulle vara bra att ha i jobbet och det slutade med att jag satt hela helgen och byggde en web scraper för eniro där jag från sökord kan få ut listor på företag, branscher osv formaterade med koordinater till platsen. Själva programerandet blev skitkul även om projektet i sig inte är supersexigt, bara problemlösningen och känslan i kroppen när det funkade gjorde det värt det.

Visa signatur

¯\_(Ó.ò)_/¯

Permalänk
Medlem
Skrivet av Vaun:

Jag har haft samma problem, jag VILL lära mig mer om Python men har svårt att hitta på ett bra projekt som känts kul att göra.

Så istället började jag fundera vad som skulle vara bra att ha i jobbet och det slutade med att jag satt hela helgen och byggde en web scraper för eniro där jag från sökord kan få ut listor på företag, branscher osv formaterade med koordinater till platsen. Själva programerandet blev skitkul även om projektet i sig inte är supersexigt, bara problemlösningen och känslan i kroppen när det funkade gjorde det värt det.

Kul att du lyckades hitta ditt projekt! Visst är det en häftig känsla när man lyckas förverkliga en idé! Jag håller fortfarande på och spånar på idéer men det har blivit lagt på is tills efter denna tentaperioden är över. Jag hoppas att jag finner mer tid till detta framöver, känns så oerhört användbart på alla sätt och vis!