What’s the best programming language to start with?

My son is 14, in his first year of high school with a focus on computer science. Even though they don’t really dive into programming yet at school, he asked me to teach him.

I started out myself with Amiga BASIC, then moved on to C — long before university. I still remember how crucial it was to first learn how to think like a programmer, not just how to type code.

So, I chose Python: clean, readable, no pointers or type declarations.
But to my surprise, the indentation-based syntax actually confused him quite a bit.

We switched to Swift, and thanks to its use of curly braces, the code structure became much clearer for him.

Later, we came back to Python, but this time with more confidence — and it finally clicked.

Now I wonder:
– Was it just me not explaining Python properly at first?
– Or maybe Python isn’t always the best first language, as people often assume?

What language did you start with? And what would you recommend today to someone just starting out?

Philosophy and tech

Can philosophy help us in our work and technological business? I just finished reading (in Italian): Contemplative Life: In Praise of Inactivity by Byung-Chul Han, a passage that struck me is this (i personally translated it from Italian). “Today the mass is losing its meaning. It is no coincidence that we speak of a “society of singularities”, evoking creativity and authenticity. Everyone believes they are unique. Everyone must tell their own story. Everyone puts themselves on stage. And so active life is expressed as performative life. The emphasis on the New is rekindled: the New must facilitate an intense life; the Old arouses skepticism. And even the so-called start-ups evoke creativity and innovation, promising the New.”
If on the one hand I think this passage can immediately evoke a clear reference to social media, where everyone tries to be different from the others, to give something unique, on the other it made me think of the world of start-ups and technological innovations that involve everyone and especially those who like me are immersed in this world. I wonder if start-ups really fail at this point due to a lack of market-fit, capital and other things that we usually read and tell ourselves or simply contain a New that does not improve the old.

The new for the new is useless. We can see it also with programming languages, I often jokingly say that there are more languages ​​than developers. Do we really need it? Or does the search for the new, cooler thing make us lose sight of the essence and poetry of our work (let it be clear that some tools have improved our work and others will improve it even more)?

The Italian version

Può la filosofia aiutarci nel nostro lavoro e business tecnlogico? Ho appena finito di leggere (in versione italiana) Vita Contemplativa: In Praise of Inactivity di Byung-Chul Han, un brano che mi ha colpito è questo (l’autore mi perdonerà la traduzione dall’italiano):
Oggi la massa sta perdendo di significato. Non a caso si parla di “società delle singolarità”, evocando creatività e autenticità. Ognuno crede di essere unico. Ognuno deve raccontare la propria storia. Ognuno si mette in scena. E allora la vita attiva si esprime come vita performativa. L’enfasi sul Nuovo viene riattizzata: il Nuovo deve agevolare una vita intensa; il Vecchio suscita scetticismo. E anche le cosiddette start up evocano creatività e innovazione, promettendo il Nuovo.

Se da un lato questo brano penso possa subito suscitare un chiaro riferimento ai social network, dove ognuno cerca di essere diverso dagli altri, di dare qualcosa di unico, dall’altro mi ha lasciato pensare al mondo delle start-up e delle novità tecnologiche che coinvolgono tutti e soprattutto quelli che come me sono immersi in questo mondo. Mi chiedo se davvero le start-up a questo punto falliscano per mancanza di market-fit, capitali ed altre cose che siamo soliti leggere e raccontarci o se invece banalmente contengono un Nuovo che non migliora il vecchio. Il nuovo per il nuovo non serve a nulla. Lo possiamo vedere anche con i linguaggi di programmazione, spesso scherzando dico che ci sono più linguaggi che sviluppatori. Ne abbiamo davvero bisogno? O la ricerca della cosa nuova, più figa, ci fa perdere di vista l’essenza e la poesia del nostro lavoro (sia chiaro che alcuni strumenti hanno migliorato il nostro lavoro e altri lo miglioreranno ancora)?

What I Learned from Teaching Coding: AI, Soft Skills, and Student Challenges

Last friday my extracurricular course at the University of Sannio concluded (for 2024). For those who don’t know, it’s a full immersion course lasting one month that allows participants to gain basic knowledge in coding, design, storytelling, etc., to present a prototype of an iOS application developed with SwiftUI. From my perspective, it’s a fascinating experience that keeps me feeling young, even though it requires some personal sacrifice and the willingness of the company I collaborate with to not be able to reach me in the morning.

At the end of each course, I always ask myself what worked, what could have gone better, and what I can improve. But I always wonder what I “take away” from this experience:

• Guiding 30 “juniors” for a month enhances soft skills.
• By explaining, you learn more (perhaps that’s obvious).
• Ideas for my posts arise from the questions or curiosities of the students.

This time, I also have an additional reflection: the benefits of AI tools during coding. From what I observed, the results were not satisfying. It’s worth noting that most students come from computer science backgrounds; some are at the end of their studies, others at the beginning, and there are even people who have never programmed in their lives. The quality of the prototypes was generally similar to that of previous years, but upon closer examination, I found more malfunctions due to poor programming and the use of code generated by AI. I often saw solutions based on outdated APIs or proposals that seemed to “shoot flies with a cannon.”

From what I observed, there were more errors, and students learned less. Perhaps the good old Stack Overflow was better: at least when they used code from there, they always had doubts about how it worked; today, however, there’s a “blind” trust in the tool. I don’t foresee an easy period for software quality

Summer reflection

Which book reminds you of summer? For me, it’s the one below, and I’ll tell you why. It was the summer of 1991. My uncle, who was on vacation, had left me the keys to his house, so I went there to study and acted as a caretaker. I brought along books on algebra and geometry (matrices, vector spaces, monads, etc.) and the RKM (Amiga Rom Kernel Manual)in the photo. Until 6 PM, I studied algebra, and then I read the RKM. I followed my grandmother’s advice: duty first, then pleasure (sorry, Professor Konderac, but the RKM gave me more pleasure).

Over the years, I’ve realized I often buy books by so-called gurus on how to organize life and be productive. On LinkedIn and Twitter, posts by these super personalities appear, but if I think about it, it’s all already been written or said. The monks’ “ora et labora” is today’s “start the day with meditation”; “eat the frog first” is my grandmother’s way of saying “duty first.” Regarding persistence, we can remember some of Jesus Christ’s words, but surely there is something similar in other religions or philosophies. Why do we need to hear or read the same things in a different form? Have we lost our memories? Maybe these hot nights are getting to me.

Coding and Renaissance

These days we talk a lot about coding as the new critical thinking and as new literature. I want to go beyond, perhaps with the coding, you are back to the old science, that before the French Revolution (from That moment onwards Scientists have always Been More classified in sectoral almost confused with the “technical” disciplines).

Before this (the two World Conflicts completed this change) the Scientists were multidisciplinary, think of Galileo, Leonardo And Others; they were philosophers, inventors, hackers (curious).

Today with the coding maybe we again individually purchasing this multidisciplinarity, returning to take care of the diversity of Humanity aspects (the software must solve a problem) but must interface with Being Human (psychology visual, emotional, etc.), dropped in the context (sociology.) Are the machines push us to rediscover the humanity that we were losing?