[Python] Een nieuw doel

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • rilly
  • Registratie: April 2013
  • Laatst online: 06-05 13:36
Mijn vraag
Ik wil "iets" programmeren, maar wat?
Graag wil ik beter worden in Python, heb al diverse jaren ervaring met analyse, maar deze code is niet te vergelijken met nette code. Daarbij wil ik graag iets nuttigs doen, iets wat functioneel is en gebruikt kan worden. Waar kan ik beginnen?

Relevante software en hardware die ik gebruik
(nog) niet van toepassing? Ik ben bereid dit uit te breiden waar nodig.

Wat ik al gevonden of geprobeerd heb
Afgeronde projectjes: schoolopdrachten en bijbehorende simulatie & analyse met data, hackerrank, puzzeltjes oplossen. Uiteraard ook gekeken in de boekencollectie en online naar ZZP opdrachten, maar dit is ook juist niet wat ik direct zoek. Een soort vrijwillig, langdurig project met iets meer "diepgang" & "direct nutig" dan de traditionele puzzeltjes en opdrachtjes uit een boek.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Barreljan
  • Registratie: December 2001
  • Laatst online: 30-09 13:10

Barreljan

...Zoom-Zoom...

Dit is altijd het lastige punt waar je op beland. Geen doel. Ik heb zelf veel nog met netwerk en servers te spelen en daarin kan in tot nu toe mijn ei kwijt. Geen mini scriptje in Bash (Shell) meer om iets te doen maar in Python. Ik heb op m'n publieke webserver een API gemaakt om thuis dingen aan/uit te zetten of informatie op te halen van a-z. Dat was leuk. Met mijn ouders heb ik een VPN tussen 2 Ubuiqiti firewalls en Ziggo wisselt nog wel eens van IP. Beide sites checken periodiek of hun IP gewijzigd is tov wat m'n API weet; zo ja, firewall aanpassen, API update call en de tunnel komt wel weer up. Waarom? Omdat ik het zat was zelf te doen :p en ik wilde leren.

Maar een doel; zo out-of-the-blue? Dat is lastig..

Wat je kan doen, ik lees puzzeltjes, is misschien met Flask in Python een soort webpagina te maken (gerenderd via Jinja2 templates), interactief en daar diverse puzzels kan doen. Of andere dingen die je presenteert. Daar heb je niet direct een betaalde server voor nodig, dat kan lokaal. En dan compleet, docstrings, documentatie, unit tests, the whole-9-yards.

Wellicht heb je iets, bijvoorbeeld Domotica of kan je thuis iets 'automatiseren'. Ik heb geen idee van je hobby's en andere resources maar zoiets dus.

[ Voor 3% gewijzigd door Barreljan op 10-09-2021 10:18 ]

Time Attacker met de Mazda 323F 2.5 V6 J-spec | PV output


Acties:
  • 0 Henk 'm!

  • ge-flopt
  • Registratie: Februari 2001
  • Laatst online: 10:57
Als je iets wilt leren (lees kennis uitbreiden), is het "random" bedenken van een project niet echt een goed begin, voor mij althans.
Ik zou eens kijken welke andere hobbies heb je en kun je met Python (of elke andere programmeer/script taal) dit ondersteunen.

Waar ik bv naar gekeken heb is python gebruiken om games te ondersteunen. Kijk dan eens op de youtube kanaal van Sentdex.

Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Laatst online: 11:16
Mijn ervaring is dat het het beste werkt als je een probleem zoekt wat je zelf hebt en daar dan iets voor bouwt.

Een paar voorbeelden van side projects die ik zelf heb opgepakt:
- Een eigen 'Google locatiegeschiedenis' zodat ik die data nu in een eigen database heb (toevallig ook gebruikt om eens wat met Python te doen'
- Iets om je banktransacties te importeren en te categoriseren
- Logging van zonnepanelen en energieverbruik
- Een schermpje voor in de huiskamer met handige gegevens (in mijn geval energieverbruik, het weer en zonnepanelen opbrengst)

Meestal bestaat er voor alles wat je bedenkt al iets, je moet de lol erin vinden om het compleet op je eigen manier te doen

Acties:
  • 0 Henk 'm!

  • TheSuperLAW
  • Registratie: Juni 2017
  • Laatst online: 30-09 15:43
Idd heel lastig. Wat je misschien kan aanschaffen is een RPI met een breadboard en verschillende sensors er aan hangen. Die kan je allemaal besturen via Python dus lampjes, lichtsensoren en nog veel meer sensors. Daar kan je ook veel van leren!

Acties:
  • +1 Henk 'm!

  • rilly
  • Registratie: April 2013
  • Laatst online: 06-05 13:36
Bedankt voor de suggesties! Het andere probleem is inderdaad dat ik op alle vlakken nog op zoek ben naar een hobby. Eigenlijk zoek ik iemand die zegt: "bekijk nu dit" of "bouw nu dit" en dat ik dat op een rustig tempo kan doen in mijn vrije tijd. Dit gebeurde wel op mijn opleiding en de vervolgvragen die komen dan automatisch wel.

Overigens vind ik het ook geen probleem om een cursus te doen of opdrachten uit een boek, maar van de gratis beginnerscursussen denk ik dat ik het meeste "wel weet" en een Master Computer Science kost voor mij 10.000 euro per jaar, dat vind ik dan weer iets te veel voor deze hobby. Iets hier tussenin is ook welkom, het bekende "dit is de opdracht" of "ik heb een analyse hierover nodig, voer hem uit".

Ik zal eens het kanaal van Sentdex verder bekijken, in eerste instantie zag dit er interessant uit.

Het waren puzzeltjes van geocaching in de buurt, ofwel mijn kleine toenmalige problemen, toevallig waren er wat interessante mysteries vrijgekomen. Die mysteries inmiddels opgelost. Een website bouwen met een hobby generator is wellicht een idee. Gezien mijn weinige hobby's heb ik ook niet echt problemen die ik kan oplossen met Python, ik mis wat creativiteit of inspiratie.

Toevallig staat er een RPI te verstoffen met wat sensoren, maar ook daarbij heb ik een gebrek aan creativiteit. Lampje aan, lampje uit, het werkt, en dan? Eigenlijk wordt wellicht de vraag; hoe word ik creatief? Maar vermoedelijk is dit (uiteraard) te veel off-topic / off-category.
Nogmaals bedankt voor het meedenken!

Acties:
  • +1 Henk 'm!

  • DHH
  • Registratie: Augustus 2014
  • Laatst online: 07-09-2024

DHH

Ik denk dat ik een beetje in een vergelijkbare situatie zit: Python wel gebruikt vanuit m'n werk als data-analist, maar nooit 'goede code' leren schrijven, maar dat wel willen.

Ik ben zelf enige tijd geleden begonnen met het boek Test-Driven Development with Python, waarvan je een gratis digitale versie kan vinden https://www.obeythetestinggoat.com/. Met het boek wordt een webapp geschreven met Django & Selenium en leer je TDD (+ Git). Enige kennis van Python is wel handig (maar dat heb je), voorkennis van Django / Selenium / HTML / JS is niet nodig.

Mocht je meer van video content houden dan zou je Tech With Tim op Youtube eens kunnen proberen, staan best veel ideeën plus hij heeft meerdere 'live coding' sessies online staan waar je inspiratie uit op kan doen.

  • Rukapul
  • Registratie: Februari 2000
  • Laatst online: 11:36
Ga eens zitten met een kop koffie en een blank vel papier, rustig muziekje erbij, en spendeer 30 minuten aan probleem(pjes) en vragen waar je de afgelopen 1-3 maanden tegenaan bent gelopen. Bedenk vervolgens welke daarvan je kunt adresseren met een leuk Python project(je) aan kunt pakken.

Acties:
  • +1 Henk 'm!

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 02-10 17:01
Wat is precies je doel? Volgens mij heb je al ervaring met Python, maar dan voor data analyse; ik vermoed o.a. met pandas en scikit-learn en dan vooral in Jupyter Notebooks? En het lijkt erop dat je nu meer "production grade" code wilt gaan schrijven?

Persoonlijk denk ik dat het dan minder uitmaakt wat voor project je oppakt en dat vooral de vormgeving van het project belangrijk is. Denk bijvoorbeeld aan:

- Overzichtelijke structuur met modules en classes
- Installeerbaar package inclusief dependencies (bv. via eigen setup.py / cookiecutter / poetry)
- Goede documentatie (docstrings + README)
- Automatisch genereren docs met mkdocs / sphinx
- Consistente / foutloze code (bv met black + pylint / flake8 + mypy)
- Unit tests (bv met pytest + tox)
- Controleren van je code voor je commit (m.b.v. pre-commit)
- CI/CD deployment opzetten

Et cetera. Al deze dingen kun je toepassen op ieder inhoudelijk project; je zou dus een oud project kunnen kiezen en dit kunnen transformeren naar een volwassen / nette software distributie. Ik zou met een simpel project beginnen; dan kun je de aandacht vooral richten op het robuuster maken van de code.
Pagina: 1