El teu projecte funciona, està provat i viu en un repositori endreçat: Implementació i proves va tancar la checklist d'«acabat». Queda una part que qui comença sol considerar accessòria i que a la pràctica decideix quant val la teva feina per als altres: saber-lo ensenyar. Un projecte que ningú no sap instal·lar, que no s'entén sense tu al costat o les decisions del qual no saps justificar és, a efectes pràctics, un projecte que no existeix. Aquesta lliçó converteix la teva carpeta de codi en alguna cosa presentable: un repositori net, un README que fa la feina per tu, una demostració de cinc minuts que no depèn de la sort, i les respostes preparades per a les preguntes que et faran —inclosa la més incòmoda, la de les limitacions—.
Contingut
- Deixar el repositori presentable
- El README com a carta de presentació
- La demostració de cinc minuts
- Explicar decisions tècniques
- Parlar de les limitacions sense restar-te valor
- Preguntes típiques i com respondre-les
- Rebre crítica i convertir-la en tasques
- Publicar el projecte
- Autoavaluació final i pla de millora
- Errors comuns i consells
- Exercicis
- Conclusió
- Deixar el repositori presentable
Qui miri el teu projecte veurà primer el repositori, no el programa. I la primera impressió es juga en trenta segons: si hi ha un README.md que explica què és això i hi ha fitxers amb noms raonables, continua llegint; si veu una carpeta amb prova2.py, dades_final_final.json i cap text, tanca la pestanya.
Recorre aquesta checklist sencera abans d'ensenyar-lo a ningú, reprenent Documentació i comentaris i Control de versions:
| # | Comprovació | Per què importa |
|---|---|---|
| 1 | README.md complet, amb instal·lació, ús i exemple de sessió |
És l'única cosa que molts llegiran |
| 2 | requirements.txt (o requirements-dev.txt) amb les dependències |
Sense això ningú no reprodueix el teu entorn |
| 3 | .gitignore amb .venv/, __pycache__/, *.log i les teves dades reals |
Un repositori amb brossa resta credibilitat |
| 4 | Sense dades personals ni credencials en cap fitxer ni a l'historial | És l'error més greu que pots cometre |
| 5 | Sense fitxers temporals, prova.py, copia_de_seguretat/ ni codi comentat |
Tot el que sobra distreu del que importa |
| 6 | Noms de fitxer i de branca coherents i en un sol idioma | La coherència es llegeix com a professionalitat |
| 7 | git log --oneline llegible, amb missatges que comencen per verb |
Explica la història del projecte |
| 8 | git status net, tot committejat i pujat |
El que no és pujat no existeix |
| 9 | Etiqueta v1.0 creada i empesa |
Marca el punt lliurable |
| 10 | Clonat en una carpeta nova: instal·la i arrenca | La comprovació definitiva |
Sobre el punt 4, un advertiment seriós: esborrar un fitxer amb una contrasenya en un commit posterior no l'elimina de l'historial; continua allà i qualsevol el pot recuperar. Si t'ha passat, la resposta correcta no és maquillar-ho sinó invalidar aquella credencial i, si el repositori encara no és públic, refer-lo des de zero. En un projecte d'aquest curs el normal és que no hi hagi credencials, però sí dades personals reals: les teves, al fitxer de despeses o a l'agenda de contactes. Aquestes no es pugen.
I el tancament de la feina, reprenent el versionatge semàntic de 08-01:
- El README com a carta de presentació
El README és el document més rendible del teu projecte: s'escriu en una hora i és el que llegirà el 100 % dels qui el mirin. Aquesta és l'estructura, en ordre, amb el perquè de cada secció:
| Secció | Què hi va | Extensió |
|---|---|---|
| Títol i frase | Què és això, en una línia | 1 línia |
| Descripció | El problema que resol i per a qui | 3-5 línies |
| Característiques | Llista del que fa | 5-8 punts |
| Requisits | Versió de Python i dependències | 2 línies |
| Instal·lació | Ordres copiables, en ordre | 4-6 línies |
| Ús | Com s'executa i un exemple de sessió real | 15-25 línies |
| Estructura del projecte | Arbre de fitxers amb una línia per mòdul | 8-10 línies |
| Proves | Com executar-les | 2 línies |
| Limitacions i millores futures | El que no fa, expressament | 4-6 punts |
| Llicència i autoria | Qui ho va fer | 1-2 línies |
Un extracte comentat del README de LesMevesDespeses:
# LesMevesDespeses
Gestor de despeses personals per linia d'ordres.
Registra ingressos i despeses amb categoria i data, els desa en un fitxer JSON
i mostra el desglossament mensual per categoria. Va neixer d'un problema propi:
arribar a final de mes sense saber en que se n'havien anat els diners.
## Caracteristiques
- Alta de despeses i ingressos amb validacio de tots els camps
- Llistat de moviments per mes, ordenat per data
- Resum per categoria amb percentatges i saldo del mes
- Exportacio del mes a CSV per al full de calcul
- Desat automatic en JSON; tolera fitxer absent o corrupte
## Requisits
Python 3.10 o superior. Sense dependencies externes.
## Installacio
(aqui va un bloc de codi bash amb les ordres, una per linia)
## Us
(un altre bloc de codi amb: python -m lesmevesdespeses)Els dos últims apartats porten blocs de codi amb les ordres literals, que són aquestes:
git clone https://github.com/usuari/lesmevesdespeses.git
cd lesmevesdespeses
python -m venv .venv && source .venv/bin/activate
python -m lesmevesdespesesFixa't en tres decisions. La descripció esmenta el problema abans que la solució: qui llegeix entén per a què serveix abans de saber com funciona. Les característiques són en infinitiu o substantiu, no en «podràs fer...». I la instal·lació són ordres copiables en ordre, sense prosa entremig: qui avalua el teu projecte les vol enganxar i que funcionin.
La part que més convenç, i la que gairebé ningú no inclou, és una demostració en text d'una sessió real. Val més que qualsevol descripció, perquè ensenya el programa funcionant sense instal·lar-lo:
$ python -m lesmevesdespeses
=== LesMevesDespeses ===
1. Registrar despesa
4. Resum per categoria
0. Sortir
Opcio: 4
Mes (AAAA-MM): 2026-08
=========================================
RESUM DE 2026-08 (18)
=========================================
menjar -212,40 EUR 38,1 %
transport -132,00 EUR 23,7 %
llar -98,50 EUR 17,7 %
-----------------------------------------
Despeses -557,10 EUR
Ingressos +1450,00 EUR
SALDO +892,90 EUR
=========================================Com es fa: executa el programa amb les teves dades d'exemple, copia la sortida literal del terminal i enganxa-la en un bloc ```text. Res de recrear-la a mà —es nota, i a més sol quedar desalineada—. Si prefereixes captures de pantalla, puja-les a una carpeta docs/ del repositori i enllaça-les amb ; però el text té un avantatge: es cerca, es copia i no es trenca.
- La demostració de cinc minuts
Tard o d'hora hauràs d'ensenyar el projecte en directe: a classe, en una entrevista o a algú que et va preguntar què estaves fent. Cinc minuts semblen pocs i són molts si no portes guió, perquè l'impuls natural és començar pel codi i perdre's en detalls.
flowchart LR
P["Problema<br/>30 s"] --> S["Solucio<br/>30 s"]
S --> D["Demo del flux<br/>2 min"]
D --> T["Detall tecnic<br/>1 min"]
T --> L["Limitacions i<br/>seguents passos 1 min"]
Aquest és el guió, i el repartiment de temps importa tant com el contingut:
| Bloc | Temps | Què dius | Error típic |
|---|---|---|---|
| 1. El problema | 30 s | «Apuntava les despeses en notes del mòbil i a final de mes no sabia en què se m'anaven els diners» | Començar per «he fet servir dataclasses i JSON» |
| 2. La solució | 30 s | Què és el programa en una frase i què fa | Enumerar les deu funcions |
| 3. Demo del flux principal | 2 min | Registrar una despesa i veure el resum del mes, amb dades ja carregades | Improvisar i teclejar dades a mà |
| 4. Un detall tècnic | 1 min | Alguna cosa de la qual estiguis orgullós, amb el seu perquè | Ensenyar codi sense explicar la decisió |
| 5. Limitacions i següents passos | 1 min | Què vas deixar fora expressament i què faries després | Demanar disculpes pel que falta |
Sobre el bloc 3, que és el que es pot torçar: prepara les dades per endavant. Tingues un dades_demo.json amb quinze o vint moviments repartits en dos mesos, copiat al lloc just abans de començar. No facis mai una demostració amb la base buida: registrar cinc despeses en directe consumeix els teus dos minuts i no ensenya res. I assaja la seqüència exacta de tecles almenys dues vegades; l'objectiu és que puguis parlar mentre les teclejes, no llegir la pantalla.
I si alguna cosa falla durant la demostració? Falla, tard o d'hora. El que es jutja no és la fallada, és la reacció:
- No l'amaguis ni la minimitzis. «Aquí hi ha una fallada, no havia provat aquesta combinació» és una resposta professional. Fer veure que no ha passat res, no.
- No et posis a depurar en directe. Consumeix el temps de tothom i rarament surt bé. Anota-ho i continua.
- Tingues un pla B: una captura o una sessió gravada en text al README amb la qual continuar explicant.
- Converteix la fallada en informació. «És un cas que no és al meu guió de proves; l'afegeixo» demostra que tens mètode, que és justament el que s'està avaluant.
- Explicar decisions tècniques
Tot el que hi ha al teu codi és el resultat d'una decisió, i la pregunta «per què ho vas fer així?» no és un atac: és la manera estàndard d'esbrinar si entens el que has fet. Una bona resposta té tres parts: què vas triar, quina alternativa vas descartar i amb quin criteri. Tres exemples reals sobre LesMevesDespeses:
«Per què una classe
Movimenti no un diccionari?» Vaig començar amb diccionaris, que és el més ràpid. El problema va aparèixer amb la validació: cada lloc que creava un moviment havia de comprovar que la quantitat no fos zero i que la categoria existís, i me'n vaig oblidar en un. Amb una classe, la validació és a__post_init__i no pot existir un moviment invàlid al programa. A més,__str__em dóna la línia de taula ja formatada. Si només fos un contenidor de dades sense regles, hauria deixat el diccionari.
«Per què JSON i no CSV, si són registres plans?» Pels tipus. En CSV tot torna com a cadena i hauria de reconvertir imports i dates en llegir, amb el risc de fallar en silenci. JSON conserva els números i em deixa afegir camps opcionals sense trencar els fitxers antics, per a la qual cosa a més deso un número de versió. CSV sí que el faig servir, però només com a exportació d'un sentit, que és on té avantatge: obrir el mes al full de càlcul.
«Per què vas separar la interfície de la lògica, si és un programa petit?» Sobretot per poder provar-lo. Els càlculs del resum són a
Quadern, que no imprimeix res, així que els puc verificar ambpytesten centèsimes de segon; si estiguessin barrejats amb els
El patró es veu en els tres: context, alternativa, criteri, conseqüència. I una cosa igual d'important: si una decisió la vas prendre sense pensar, digues-ho. «Ho vaig fer així perquè era el que sabia fer, i ara que ho miro hauria estat millor...» és una resposta que suma, perquè demostra criteri adquirit. La resposta que resta és inventar-se una justificació que no sostens a la repregunta.
- Parlar de les limitacions sense restar-te valor
Tot projecte té mancances, i el teu, que és el primer, en té bastants. La diferència entre semblar un principiant que no en sap i un professional que comença és tota en com s'expliquen. El patró té tres temps:
«Ho sé → ho vaig deixar fora expressament → així ho faria»
Aplicat:
| Limitació | Versió que resta | Versió amb el patró |
|---|---|---|
| Sense interfície gràfica | «No vaig tenir temps de fer la interfície» | «És de línia d'ordres expressament: volia centrar l'esforç en el model de dades i les proves. La interfície està aïllada a interficie.py, així que muntar-hi una web a sobre seria substituir aquella capa» |
| Sense multiusuari | «Només funciona per a una persona» | «És monousuari per disseny: resolia el meu problema. Per a diversos caldria un identificador d'usuari al model i un fitxer per usuari, o directament una base de dades» |
| Tot en memòria | «Si tingués moltes dades potser va lent» | «Carrego tot en memòria en arrencar, cosa que amb uns milers de moviments respon a l'instant. A partir de desenes de milers caldria passar a SQLite; ho vaig mesurar abans de decidir-ho (06-04)» |
Les tres versions de la dreta comparteixen una cosa: converteixen una mancança en una decisió i proposen el camí. Això només és possible si de debò vas prendre la decisió, i per això el calaix Won't de Definició del projecte era tan important: ara és el teu guió.
Dues coses que no has de fer mai: disculpar-te en bucle («perdó, sé que està molt mal fet, és que soc principiant»), que convida a mirar el projecte amb desconfiança i no aporta informació; i inventar limitacions que no tens per semblar humil. Digues el que és.
- Preguntes típiques i com respondre-les
Aquestes preguntes surten gairebé sempre. Prepara-les per escrit; respondre bé una pregunta previsible és de les coses que més diferencien una presentació d'una altra:
| Pregunta | Què volen saber | Orientació de resposta |
|---|---|---|
| Què és el que més et va costar? | Si saps reconèixer dificultats i com les resols | Un problema concret i el mètode amb què el vas resoldre, no «tot va ser difícil» |
| Què faries diferent si comencessis avui? | Criteri adquirit | Una o dues decisions concretes amb el seu perquè |
| Com saps que funciona? | Si proves o només confies | Les proves automàtiques, què cobreixen, i el guió manual de la interfície |
| Què passa si l'usuari escriu qualsevol cosa? | Robustesa | Demostra-ho en viu: escriu una bestiesa i ensenya el missatge d'error |
| Quant trigaries a afegir X? | Si coneixes el teu propi codi | Anomena els fitxers que tocaries i dóna un rang honest |
| Per què aquesta estructura de fitxers? | Si entens les capes o vas copiar | Una frase per mòdul i la regla de les dependències cap avall |
| Has fet servir IA? | Honestedat i criteri | Digues la veritat i explica per a què: entendre errors, revisar, aprendre |
| Escalaria a moltes dades? | Si penses en costos | Big-O de les teves operacions principals i a partir de quin volum canviaries |
| Què has après? | Autoconeixement | Concret: «a partir la feina en increments», no «he après Python» |
Sobre la de la IA: la resposta honesta sempre és millor. «La vaig fer servir per entendre un TypeError que no sabia llegir i perquè em revisés el magatzem.py; el disseny i el codi són meus» és una resposta professional i verificable —perquè si el codi és teu, el sabràs explicar—.
- Rebre crítica i convertir-la en tasques
Quan ensenyes el teu projecte reps comentaris, i la reacció instintiva és defensar-se. És un error: la crítica d'algú que s'ha molestat a mirar el teu codi és de les coses més valuoses que rebràs de franc. El procediment:
- Escolta sencera l'observació sense interrompre i sense justificar-te encara.
- Anota-la literal. No la interpretis en el moment; ja la interpretaràs en fred.
- Pregunta si no l'entens. «A què et refereixes amb que el mòdul fa massa coses?» és una pregunta legítima i demostra interès.
- Agraeix-ho. Encara que no hi estiguis d'acord. El cost d'escoltar és zero.
- En fred, classifica-la en una d'aquestes quatre caixes.
| Tipus de comentari | Exemple | Què fas |
|---|---|---|
| Error real | «Amb el mes 2026-13 peta» |
Tasca immediata: reproduir, arreglar, prova de regressió |
| Millora encertada | «Els percentatges s'haurien d'arrodonir al mateix decimal» | Tasca per a la v1.1 |
| Preferència personal | «Jo ho hauria fet amb llistes per comprensió» | Escolta-la, valora-la, decideix tu |
| Fora d'abast | «Li falta una app mòbil» | Va al calaix Won't amb la seva justificació |
La quarta caixa és on més es pateix si no la tens clara: hi ha comentaris que descriuen un altre projecte, no el teu. I la primera és la més valuosa de totes: qui troba una fallada al teu programa t'està fent un favor, encara que no ho sembli en aquell moment. Converteix cada comentari de les dues primeres caixes en una línia de la teva llista de tasques, amb la seva prioritat; d'això surt el pla de millora de l'apartat 9.
- Publicar el projecte
Un projecte al teu disc dur no serveix a ningú, començant per tu. Publicar-lo costa vint minuts:
# Amb el repositori ja creat a GitHub, buit:
git remote add origin https://github.com/usuari/lesmevesdespeses.git
git branch -M main
git push -u origin main --tagsDesprés, dedica una estona a la pàgina del repositori, que és el teu aparador:
- Descripció curta (el camp About): una frase amb el que fa i en què està escrit. «Gestor de despeses personals per línia d'ordres en Python, amb persistència en JSON i proves amb pytest».
- Temes (topics):
python,cli,json,pytest,learning-project. Ajuden que aparegui a les cerques. - README ben renderitzat: mira-te'l a GitHub, no només a l'editor. Comprova que les taules es veuen i que els blocs de codi tenen el seu llenguatge.
- Llicència: si vols que altres el facin servir, afegeix-hi una MIT; sense llicència, tècnicament ningú no el pot reutilitzar.
Sobre el portafolis: dos o tres projectes acabats, explicats i amb historial de commits valen més que vint repositoris a mitges. Qui avalua mira si el projecte està acabat, si el README explica el perquè, si hi ha proves i si els commits expliquen una història coherent. Un projecte petit i complet comunica «aquesta persona acaba les coses», que és exactament el senyal que es busca.
I una pràctica que ensenya més del que sembla: mirar projectes aliens. Busca a GitHub una aplicació de línia d'ordres en Python amb poques estrelles —els projectes enormes són il·legibles al principi— i examina, en aquest ordre: el README (entens què fa en un minut?), l'estructura de fitxers (reconeixes les capes?), un mòdul qualsevol (com anomenen les funcions?), els tests (què proven?) i l'historial (com escriuen els missatges?). Mitja hora fent això et dóna referències que cap tutorial no et dóna.
- Autoavaluació final i pla de millora
Ha arribat el moment de fer servir la rúbrica que vas escriure a 09-01, quan encara no sabies com sortiria el projecte. Omple-la amb honestedat —l'única persona a qui enganyaries és a tu— i multiplica cada puntuació pel seu pes:
| Criteri | Pes | La teva puntuació (1-4) | Evidència concreta que ho justifica |
|---|---|---|---|
| Funcionalitat | 25 % | Quins requisits Must funcionen? Algun a mitges? | |
| Estructura del codi | 20 % | Quants mòduls i amb quina responsabilitat? | |
| Robustesa | 15 % | Quines entrades estranyes vas provar i què va passar? | |
| Documentació | 15 % | README, docstrings, anotacions, CHANGELOG? | |
| Proves | 15 % | Quantes i de quines capes? | |
| Ús de Git | 10 % | Quants commits, amb quins missatges, hi ha etiqueta? |
La columna de la dreta és la que fa útil l'exercici: obliga a justificar la nota amb una evidència, no amb una impressió. Un 3 en proves significa poder dir «onze proves que cobreixen model, agregació i cicle desar/carregar», no «em sembla que estan bé».
Amb la rúbrica omplerta, el pla de millora surt sol: ordena per pes descendent els criteris amb nota més baixa. Exemple de LesMevesDespeses, que va sortir amb 2,85 de mitjana:
| Prioritat | Criteri | Nota | Acció concreta | Cost |
|---|---|---|---|---|
| 1 | Robustesa (15 %) | 2 | Validar el format del mes i capturar PermissionError en desar |
1 h |
| 2 | Proves (15 %) | 2 | Afegir proves de del_mes amb mes buit i de l'exportació a CSV |
2 h |
| 3 | Documentació (15 %) | 3 | Afegir CHANGELOG.md i docstrings a interficie.py |
1 h |
| 4 | Funcionalitat (25 %) | 3 | Implementar «editar moviment», que va quedar a Should | 3 h |
Set hores de feina que pugen la mitjana a un 3,4. I observa l'ordre: primer el que és barat i arregla una nota baixa, després el que és car. Afegir una funció nova és el més divertit i gairebé mai és el que més millora el projecte.
Errors Comuns i Consells
- Ensenyar el codi abans que el problema. Ningú no pot valorar una solució si no sap quin problema resol. Trenta segons de context primer, sempre.
- README de tres línies. «Projecte final del curs de Python» no diu res. Si només tens una hora per polir el projecte, inverteix-la sencera aquí: és el que més multiplica.
- Demostració sense dades preparades. Registrar registres en directe consumeix el temps i avorreix. Tingues un fitxer de demostració llest i assajat.
- Disculpar-se tota l'estona. Rebaixa el valor del que has fet i no aporta informació. Fes servir el patró «ho sé, va ser expressament, així ho faria».
- Defensar-se de la crítica. Escoltar és gratis i decidir és cosa teva. Anota, agraeix, classifica en fred.
- Pujar dades personals. Revisa el repositori abans de fer-lo públic: el fitxer de dades reals no es puja, i esborrar-lo després no el treu de l'historial.
- Consell: explica el projecte en veu alta a algú que no programi. Si aconsegueixes que entengui què fa i per què, tens la presentació resolta.
- Consell: escriu el teu guió de cinc minuts i cronometra'l. Gairebé sempre en són vuit la primera vegada, i el que sobra és el bloc tècnic.
Exercicis
Els últims passos reals del teu projecte. En acabar-los, està lliurat.
Exercici 1: Repositori i README
Recorre la checklist de l'apartat 1 punt per punt i arregla el que falli, inclosa la comprovació de clonar en una carpeta nova. Després escriu el teu README.md complet amb les deu seccions de l'apartat 2, incloent-hi una demostració en text d'una sessió real copiada literalment del teu terminal. Crea l'etiqueta v1.0 i puja-la.
Exercici 2: Guió de demostració i decisions tècniques
Escriu el teu guió de cinc minuts seguint la taula de l'apartat 3, amb el temps assignat a cada bloc i les dades de demostració preparades en un fitxer a part. Assaja'l cronometrat dues vegades. Després redacta per escrit tres decisions tècniques del teu projecte amb el patró context-alternativa-criteri-conseqüència, i tres limitacions amb el patró «ho sé, ho vaig deixar fora expressament, així ho faria».
Exercici 3: Autoavaluació i pla de millora
Omple la rúbrica de l'apartat 9 amb una evidència concreta per criteri i calcula la teva nota ponderada. Construeix després el pla de millora ordenant per pes els criteris amb nota més baixa, amb una acció concreta i una estimació per fila. Finalment, tria l'acció de prioritat 1 i fes-la; després torna a puntuar aquell criteri.
Solucions
Solució 1. L'apartat 2 conté l'estructura i l'extracte del README de LesMevesDespeses. Les tres fallades més habituals: un README que descriu el codi en lloc del problema, una secció d'instal·lació amb prosa entre les ordres, i cap demostració de sessió. Rúbrica d'autoavaluació: algú que no coneix el teu projecte sabria en un minut què fa i per a qui? Pot instal·lar-lo copiant i enganxant, sense preguntar-te res? Hi ha exemple de sessió real? La secció de limitacions existeix i està escrita com a decisions? git tag mostra v1.0?
Solució 2. L'apartat 3 té el guió amb temps i l'apartat 4 els tres exemples de decisió ben argumentada —classe davant de diccionari, JSON davant de CSV, separació de capes— amb l'estructura context, alternativa, criteri i conseqüència. L'apartat 5 fa el mateix amb les limitacions. Rúbrica: el teu guió dedica els primers 60 segons al problema i a la solució, sense esmentar tecnologia? La demostració és d'un flux real amb dades ja carregades? Cada decisió esmenta l'alternativa que vas descartar? Cada limitació acaba proposant com es resoldria? Cap en cinc minuts cronometrats?
Solució 3. L'apartat 9 té la rúbrica i el pla de millora de LesMevesDespeses, amb la seva nota de 2,85 i les quatre accions ordenades per pes. El que sol fallar en aquest exercici és la generositat: si et poses un 4 en proves amb tres proves soltes, la rúbrica deixa de servir per a res. Rúbrica de la rúbrica: cada nota té una evidència concreta i numèrica al costat? El teu pla està ordenat per pes del criteri, no pel que et ve de gust fer? Cada acció cap en tres hores? Ja has fet la primera?
Conclusió
Un projecte que no se sap explicar no compta, i explicar-lo comença pel repositori: README complet, requirements.txt, .gitignore, zero dades personals o credencials, sense fitxers temporals, historial llegible, tot committejat, etiqueta v1.0 i la comprovació definitiva de clonar en una carpeta nova i arrencar. El README és el document més rendible que escriuràs: deu seccions en ordre —títol i frase, descripció del problema abans que de la solució, característiques, requisits, instal·lació en ordres copiables, ús amb demostració en text d'una sessió real, estructura, proves, limitacions i autoria— i s'escriu en una hora.
La demostració de cinc minuts té guió i repartiment de temps: trenta segons de problema, trenta de solució, dos minuts de demostració del flux principal amb dades preparades per endavant i assajades, un minut de detall tècnic del qual estiguis orgullós i un minut de limitacions i següents passos; i si alguna cosa falla, es reconeix, s'anota i es continua, sense depurar en directe. Les decisions tècniques es defensen amb el patró context, alternativa descartada, criteri i conseqüència —per què una classe i no un diccionari, per què JSON i no CSV, per què separar la interfície de la lògica—, i les limitacions amb el patró «ho sé, ho vaig deixar fora expressament, així ho faria», que converteix cada mancança en una decisió i pel qual el calaix Won't de 09-01 esdevé el teu guió. Les preguntes típiques es preparen per escrit, la de la IA inclosa, on la resposta honesta sempre guanya. La crítica s'escolta sencera, s'anota literal, s'agraeix i en fred es classifica en error real, millora encertada, preferència personal o fora d'abast; les dues primeres es converteixen en tasques. I el projecte es publica: repositori a GitHub amb descripció, temes i llicència, amb la idea que dos o tres projectes acabats valen més que vint a mitges, i amb l'hàbit de llegir codi aliè per tenir referències. L'autoavaluació tanca el cercle amb la rúbrica de 09-01, exigint una evidència concreta per criteri, i el pla de millora ordena per pes el que més puja la nota.
Amb això, el projecte està fet, acabat, defensat i publicat —que és exactament el que es proposava en obrir el mòdul—. Queda una última conversa, i no és tècnica: què fer a partir d'ara. A Següents passos com a programador recorrerem el que s'ha après en aquests nou mòduls, el que aquest curs no va cobrir i convé saber que existeix, els camins professionals que s'obren amb el que ja saps, els hàbits que convé consolidar i un pla concret per als propers tres mesos.
Fonaments de la Programació
Mòdul 1: Introducció a la Programació
- Què és la programació?
- Història de la programació
- Llenguatges de programació
- Entorns de desenvolupament
- Del problema a l'algorisme
Mòdul 2: Conceptes Bàsics
- Variables i tipus de dades
- Operadors i expressions
- Entrada i sortida de dades
- Conversió de tipus i validació de dades
Mòdul 3: Estructures de Control
Mòdul 4: Funcions i Procediments
- Definició i ús de funcions
- Paràmetres i retorn de valors
- Àmbit de variables
- Descompondre un programa en funcions
- Funcions com a valors: lambda i ordre superior
Mòdul 5: Estructures de Dades
- Llistes i arrays
- Cadenes de caràcters
- Diccionaris i conjunts
- Tuples i estructures imbricades
- Desar dades en fitxers: text, CSV i JSON
Mòdul 6: Algorismes Bàsics
Mòdul 7: Objectes i Organització del Codi
- De les dades als objectes: classes i instàncies
- Atributs, mètodes i constructor
- Col·leccions d'objectes
- Mòduls, paquets i importacions
Mòdul 8: Bones Pràctiques i Eines
- Documentació i comentaris
- Depuració i gestió d'errors
- Control de versions
- Proves automatitzades
- Estil, llegibilitat i refactorització
