Why learning the C language is still a good idea

  Рет қаралды 6,064

Salvatore Sanfilippo

Salvatore Sanfilippo

Күн бұрын

Пікірлер: 54
@rbianchidev
@rbianchidev 15 күн бұрын
For those wondering what book is recommended in this video, it's titled "The C Programming Language" by Brian W. Kernighan and Dennis M. Ritchie (commonly referred as K&R after the authors' initials).
@DomenicoTesta
@DomenicoTesta 15 күн бұрын
Un vecchio collega una volta mi disse: C è come mia moglie. Non so più da quanto tempo ci sto assieme e forse neanche perché, però senza sarei perso.
@nicola.defilippo
@nicola.defilippo 15 күн бұрын
L'esempio è bellissimo, ma il tuo collega è sopravvisuto dopo aver detto questa cosa? :D
@ponkje
@ponkje 15 күн бұрын
A+
@LucaLanziani
@LucaLanziani 14 күн бұрын
Time to write another book Salvatore!!! 🚀Learning C in 2025 🚀
@fjkldhakljf
@fjkldhakljf 15 күн бұрын
I was still going through the kilo editor tutorial to learn C, There is something magical that is lost in what I like to call "minimal implementation", to capture the essence of a topic or a problem and spell it out in a condensed form, you are the master of this, today its all about libraries that try to do everything and hide everything through multiple layers of abstraction and thousands loc of boilerplate that dont actually contribute to the original problem to a point that it becomes impossible to read or learn from
@annusingh4694
@annusingh4694 10 күн бұрын
Can you tell where to find the Kilo editor tutorial you mentioned?
@stefanodicecco3948
@stefanodicecco3948 15 күн бұрын
I asked you yesterday to talk about this topic in your reel, thank you for sharing a whole video
@astramieri
@astramieri 15 күн бұрын
My thesis (2010) was about translating a neural network algorithm written in Java, first into C and then into CUDA. Before then I had never written a line of code in C. The most beautiful and intense twelve months of my (starting) career as a developer.
@igoremelianov5200
@igoremelianov5200 12 күн бұрын
"Nothing better than C" Linus Torvalds
@graragorn86
@graragorn86 10 күн бұрын
I have started learning Go after years (too many) of Javascript and I can totally see that I miss some fundamental concepts... thanks for your wisdom.
@EdoardoAnnunziata-q8y
@EdoardoAnnunziata-q8y 15 күн бұрын
This is my first comment on KZbin ever, and I don't regret spending it on thanking you for this video. I completely agree, most people will likely never write C, and yet knowing how C works is immediately useful if you, say, use the struct module in python, or have to analyze serialized data.... A book recommendation for those looking for something "meatier" than K&R: "Modern C" by Jens Gustedt, Manning Publications is just about the best thing you can read about contemporary C short of the ISO C standard.
@antirez
@antirez 15 күн бұрын
Thank you so much, Edoardo.
@nonefvnfvnjnjnjevjenjvonej3384
@nonefvnfvnjnjnjevjenjvonej3384 15 күн бұрын
Love it! I learnt C a long time back and use Rust now but I can immediately think "what the computer"needs to do because of that experience.
@dario_de_luca
@dario_de_luca 15 күн бұрын
Funny to watch the video after i started learning c to try to understand your kilo editor :) Indeed a very cool language that allows for better understading more low level concepts
@francescobarsotti781
@francescobarsotti781 14 күн бұрын
Totally agree with you. If you are a Python programmer and a Linux user and want to learn more deeply how things work, learning C is mandatory!!! Thank you for sharing this message!
@Gica78R
@Gica78R 2 күн бұрын
Fiero possessore della seconda edizione (in inglese) del K&R. Il bello del C è la sua sintassi pulita, anche se coi puntatori le cose si complicano rapidamente (almeno finché non ci si fa la mano). Ai tempi dell'università, pur di evitare Java, avevo iniziato a studiare il C++ sul libro di Stroustrup, ma non mi ha mai appassionato.
@ntoslinux
@ntoslinux 15 күн бұрын
Thanks Salvatore, I will watch this video again and again.
@geertdepuydt2683
@geertdepuydt2683 15 күн бұрын
I have the same experience. Once you implement something just above trivial where you need to allocate to the heap, you are forced to quickly grasp the memory model that drives everything software. Once you climbed that hill, you are so much better equipped even when moving on to higher level languages. There are some alternatives to C that can provide the same benefit, like Zig or Odin, but still, c is so much more widespread that you have to pick it up at some point if systems programming is in your interest
@dwarez
@dwarez 15 күн бұрын
Luckily, C is still widely taught in schools/uni (at least in Italy). I agree with you on all the points you mentioned, and I add that when you learn doing things at low level, everything else that is more abstract will be easier to learn (for example, transitioning from C to Python). In my field things get so abstract and convoluted that it's kinda annoying and everyday I have to read some source code to understand what exactly happens during execution. I actually miss the simplicity of low level languages.
@alexs591
@alexs591 15 күн бұрын
There’s something satisfying about the spartan simplicity of C. The opposite of lisp, but also much like lisp in a way. The Turing machine vs the lambda calculus. The magic of computing distilled to its essence. Integral types, Structs, arrays, functions, loops, if statements, pointers. Thats it. You’re off and running.
@federicosalvetti4286
@federicosalvetti4286 15 күн бұрын
I started two years ago with C and the more I learn about everything in programming and other languages, the more I learn to love C and its simplicity and power over any other language.
@alainrk
@alainrk 15 күн бұрын
Wise words, keep it up!
@AndreaGriffini
@AndreaGriffini 12 күн бұрын
There is someone that says that if you want to learn C++ you should not learn C first. I think that this is true if you want to be a bad C++ programmer. In that case knowing C is a waste of time and you can just try to go for C++ first. However if you want to be a good C++ programmer you MUST understand C first; only after that you will understand which C++ abstractions are good and which are not, or where are the leaks. In addition if you know C (how things really work down there) then memorizing all weird C++ quirks will be simpler, because thinking to the implementation they will be obvious and not alien facts coming out of nowhere (e.g. why std::vector::push_back invalidates iterators?).
@noJobProgrammer
@noJobProgrammer 15 күн бұрын
all low level infrastructure components are written in C, so it is a must
@paolocaressa4583
@paolocaressa4583 15 күн бұрын
Totally agree. C you soon:-)
@kazkylheku1221
@kazkylheku1221 12 күн бұрын
The magical language which is high and low level at the same time is Lisp.
@FabioPallini88
@FabioPallini88 15 күн бұрын
I started programming in C, then spent a decade developing with Java, Objective-C, PHP, JavaScript, and Python, only to return to C, still my favorite
@vincenzoe.corallo4448
@vincenzoe.corallo4448 15 күн бұрын
The example about understand what the borrow checker want to address is sharp. I am really fascinated by how legacy languages may be unmissable to reach awareness on more modern concepts and patterns. Do you thing to cover the other side of Rust similar reasoning may apply for Haskell?
@antirez
@antirez 15 күн бұрын
Thanks Vincenzo. I have the feeling that Haskell is kinda another beast , to the point that knowing with is under the hoods is not so important in this case. Such languages are an exercise in pushing as far away, as far as possible, from the imperative working internals of the machine. To know how a Scheme interpreter is implemented is useful but is not as illuminating as knowing how *eval itself* works in Scheme.
@vincenzoe.corallo4448
@vincenzoe.corallo4448 15 күн бұрын
@@antirez Thank you so much Salvatore. Your reply is not trivial, so I needed some time to digest it :) I think I got your point, as a non expert I fell Haskell is built on pure abstraction so I understand your suggestion that it's not the C of the functional side... even if to my basic eyes many patterns in Rust reseambles those in Haskell to the point of guessing the last to be propedeutical. Thank you so much for your videos!
@codeadda3178
@codeadda3178 12 күн бұрын
Great explaination
@davidec1195
@davidec1195 15 күн бұрын
Knowing C entails power and instills wisdom. The rest is cheap knowledge.
@ivanguerreschi
@ivanguerreschi 7 күн бұрын
Adoro il C, vorrei solo che nella libreria standard ci fossero funzioni di alto livello per la manipolazione di stringhe i socket e un minimo di data collection.
@BurninVinyl
@BurninVinyl 11 күн бұрын
'Cuz oop is a nightmare.
@PaoloPerego
@PaoloPerego 11 күн бұрын
Hai da suggerire un tema per un piccolo pet project giusto per questo 2025, per scrivere un po' di C e che magari sia utile agli altri?
@fiffy6572
@fiffy6572 9 күн бұрын
Il libro "The C programming Language" (versione fisica) è quasi introvabile a prezzi decenti, anche se preferirei leggerlo in inglese, sai se ci sono edizioni tradotte in maniera fedele? Edit: Lo chiedo perche su vari siti di usato si trovano versioni in italiano anche a pochi euro
@enricosaccheggiani3192
@enricosaccheggiani3192 15 күн бұрын
yes of course I agree, however C has evolved and now C++ up to the latest releases has become huge, very powerful, full of features. For example, once there was only one way of doing the loop, in the classical for mode, now there are many ways of doing the loop with iterators in C++. What is the relationship between C and C++? Do you think you can only work with C while ignoring C++? Are you referring to the fact that C++ is also useful in operating systems? In my opinion it is difficult for one to use only C, In any case now C++ has become very powerful and huge, it would take a huge book to describe it all. Thank you very much
@antirez
@antirez 15 күн бұрын
I tend to believe they are completely different languages, at this point, and that there is room for re-doing C++ the right way.
@francescoferrazzino1307
@francescoferrazzino1307 15 күн бұрын
⁠​⁠@@antirezlol. At that point I prefer zig to a ‘new c++ done right’
@antirez
@antirez 15 күн бұрын
@ zig is great. Too immature right now but headed very well.
@onaecO
@onaecO 11 күн бұрын
concordo al 1000%
@liviofrancisconi5057
@liviofrancisconi5057 14 күн бұрын
I agree with what you say but I have a thought: could it be the first language for someone who wants to enter the business world? Especially for the web? In this case I prefer Javascript for speed. What do you think about it?
@antirez
@antirez 13 күн бұрын
@@liviofrancisconi5057 if the goal is to get some work in IT as soon as possible, probably JavaScript or Pytjon are the best pick. But not the languages alone, the person willing to do so should also learn some application of the language, for instance front end for JavaScript and so forth.
@FoolBear404
@FoolBear404 15 күн бұрын
io vorrei giuro andare in low language, ma ogni volta che ci provo voglio darmi al masochismo, però è veramente un gran coding devo ammetterlo ps: SQL and Pythonista
@RiccardoCosenza
@RiccardoCosenza 15 күн бұрын
Hai perfettamente ragione, un linguaggio “piccolo” ma molto usato e’ ottimo per iniziare, io ho iniziato dal lato opposto.. 😅 Un consiglio, volendo cominciare a imparare C, anche per sola conoscenza personale, parlando in termini di editor, cosa consigli? Un editor intelligente tipo vscode o similari che mi può segnalare errori di sintassi al volo oppure vi/vim/notepad brutale? ❤
@antirez
@antirez 15 күн бұрын
Niente ide. Qualsiasi editor e la linea di comando per compilare.
@RiccardoCosenza
@RiccardoCosenza 15 күн бұрын
@@antireznon so perché, ma da te mi aspettavo questa risposta.. 😅
@andrearitondale
@andrearitondale 6 күн бұрын
@RiccardoCosenza, la mentalità di Salvatore è "old school" - e lo dico come complimento. È l'approccio che ha forgiato i migliori programmatori della storia, figure che oggi sono sempre più rare e preziose. Quando ne incontri uno, è fondamentale ascoltarlo e imparare da lui, perché l'intelligenza si manifesta proprio nella capacità di ascoltare e mettersi in discussione. Gli "old school programmers" si distinguono per un principio chiave: costruire fondamenta solide attraverso una profonda comprensione dei rudimenti dell'informatica e del calcolo numerico. È come nell'edilizia: solo con basi robuste puoi passare dalla costruzione di una casetta a quella di un grattacielo di Manhattan. Le linee guida condivise da Salvatore in questo video sono preziose per chi vuole investire seriamente nella propria formazione. Partendo dal C e passando al C++, si possono realizzare progetti ambiziosi, specialmente lavorando in team. Non voglio illudere nessuno: un "grattacielo" non si costruisce da soli, ma con l'intelligenza artificiale usata strategicamente si possono raggiungere risultati notevoli. Purtroppo, la mentalità dei "new programmers" spesso punta direttamente al grattacielo, ignorando i fondamentali. Il risultato? Strutture instabili destinate al fallimento. Ho 35 anni e devo la mia formazione a un programmatore vecchia scuola che mi ha trasmesso questa mentalità, la stessa di Salvatore. I benefici sono tangibili: ho iniziato scrivendo un compilatore in C (parser+lexer) e questa "iniziazione" mi ha dato una marcia in più, rafforzando anche la mia autostima. Complimenti Salvatore, ho scoperto da poco il tuo canale e lo seguo con grande interesse. P.S. Un doveroso tributo a Dennis Ritchie: senza il suo contributo, l'informatica e i computer come li conosciamo oggi non esisterebbero.
@PAttah-d1c
@PAttah-d1c 10 сағат бұрын
"Thinging"
@Marco-sz6mq
@Marco-sz6mq 15 күн бұрын
Consigli qualche risorsa in particolare per continuare ad imparare il C? Considerando che ho già letto K&R e conosco già il linguaggio. Bel video comunque. Sono volati i 7 minuti del video.
@antirez
@antirez 15 күн бұрын
@@Marco-sz6mq ti consiglio di reinventare la ruota usando il linguaggio C: scrivi ad esempio un piccolo interprete per un linguaggio molto semplice.
@danielemavilio9054
@danielemavilio9054 13 күн бұрын
Perpiacere abbiamo più bisogno di divulgatori così (in italiano, per l'italia)
@Francesco-y4v1c
@Francesco-y4v1c 15 күн бұрын
Great content, keep making it! 🦾
RAG sucks (even if I believe generative AI is great)
9:39
Salvatore Sanfilippo
Рет қаралды 2,9 М.
Programmare fuori dal gregge: temi sparsi sulla carriera dello sviluppatore.
23:03
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 18 МЛН
Sigma Kid Mistake #funny #sigma
00:17
CRAZY GREAPA
Рет қаралды 30 МЛН
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
♫ The Swarm FM ♫
boop.
Рет қаралды 241
Cosa sono Le Equazioni Differenziali?
6:00
Hidden Patterns
Рет қаралды 9 М.
one year of studying (it was a mistake)
12:51
Jeffrey Codes
Рет қаралды 243 М.
before you code, learn how computers work
7:05
Low Level
Рет қаралды 615 М.
Le AI sostituiranno i programmatori o li affiancheranno?
14:02
Salvatore Sanfilippo
Рет қаралды 7 М.
La corsa al processo produttivo dei chip a 4 nm
9:29
Salvatore Sanfilippo
Рет қаралды 1,7 М.
REAL or FAKE? #beatbox #tiktok
01:03
BeatboxJCOP
Рет қаралды 18 МЛН