Learn to think like the computer hates you, because it does.

Learn C The Hard Way (LCTHW) is a practical book teaching real world useful C using the same proven Learn The Hard Way method. LCTHW teaches real robust C coding and defensive programming tactics on real hardware rather than abstract machines and pedantic theory. The book emphasizes breaking your code on purpose, and in the process teaches a plethora of important topics like data structures, algorithms, and automated testing. If you've wanted to become a better programmer then you need this book.

Get the course

Thanks so much for putting your book online. It has served as a tremendous resource on learning python and just wanted to say I really appreciate it. People like you make this world a better place.

Michael

Hey man just wanted to say you really made it easy to learn from being a beginner. The command line does suck and is really boring but I can tell once I start becoming familiar with it everyday it will be second nature.

Kennon

Just wanted to send a quick thank you for giving me confidence in trying to learn to code. I’m 28 now and didn’t think it was something I could do – (it still might not be) – but thanks to your book it’s given me an opportunity I don’t want to miss out on. Love your passion and it’s very inspiring.

Peter

I started doing your Python course when I was unemployed...and it made a huge difference in my life. Because I had some programming knowledge, I was able to get a job for a financial company that needed someone who could do a bit of coding in addition to their regular duties. ... Now, I've gone from being one of the long-term unemployed to looking at buying my first home.

Marshal

Briefly I’m a 61 year old retire[d] business consultant who has always love computers. Decided to learn programming and starting with your course. As one who has done lots of teaching allow me to compliment the course and your style. Just finished Exercise 12 and wanted to say thanks for putting this course together!

Bert

I've just bought Learn C the Hard Way while on a business trip, since the beta edition website has been incredibly useful. Thanks for that, by the way! Writing the simple database with dynamically allocated fields was more empowering than almost anything I've done as a programmer so far.

Roman

Also I may as well take the opportunity to mention that as a PHP dev the C course is exactly what I was looking for and is frankly excellent. So thank you very much!

Michael

I would like to say that I find your material absolutely terrific. Very pedagogical and methodical, taking it nice and slow. Perfect for a beginner and someone who thinks that technology can be a little intimidating like me. I've been running my own businesses for some years and have come to the realization how important it is to know at least some coding. Most importantly in order to be able to talk to and understand programmers (and balance up the information asymmetry), as well as making your own prototypes without the need to resort to external expertise.

Michael

To be completely honest, programming is one of the best things I have experienced. Truly. The combination of getting a chance to train your logic and making use of your own creativity is so very rewarding. And the almost endless number of applications you can put that knowledge into use is inspiring. I try to do at least 2 hours of programming every day, and it's something I look forward to each time I get out of bed. Thanks for that Zed! Without your online course I wouldn't have dared to take the leap.

Michael

I just completed the command line crash course and want to express my feeling towards your lessons and teaching methods. I have been learning all over the web about coding and very few places make me feel like I’m grasping the methods. I like how you “made” me make flash cards and things felt like a true bootcamp. I have learned a lot more about the command line and am not so afraid of it anymore. I wanted to ask if you have any JavaScript writings as I did not see any on your webpage, I will definitely be reading Ruby but JavaScript is really tripping me up in places and I could use better explanations for things than the ones I’ve seen.

Kevin

I'm reading your book, Learn Python the Hard Way, and really enjoying it. Your teaching approach is the best. I remember at the university, we would have to reach large and dense chapters on programming concepts before writing a line of code. It was insufferable. It should be the other way around, as you have recognized, writing code first and later reading as much about it as is necessary or desired. That deep understanding is important, but it's really impossible to achieve through reading alone and must instead spring forth from a foundation of hands on experience.

Christopher

Thank you so much for the great resource you have provided in Learn C The Hard Way. To give you some positive feedback, I recently used your site to refresh my C skills from Uni, having not used them in anger for a number of years. At the conclusion I applied for work as a C \ Python developer. I feel as though I put my best foot forward, and my inner software engineer has gotten back its spark.

Anonymous

I just wanted to let you know that this course is awesome. I'm following all of the instructions and everything makes sense, so I don't actually need help. I just wanted to thank you. This is a really well constructed course and well worth the very affordable expense. Cheers.

Nathan

I really appreciate what you have given back and I agree with your [writings]. You have helped my career tremendously. Thank you from the bottom of my fingers.

Anthony

I would like to thank you for writing your books. About 8 months ago I was ready to try something new. I had never done any programming before but I have a few friends and relatives who do it for a living and thought I would give it a try. I came across your books and got to work. The way your books are organized and how each chapter progressed in simple steps helped me a lot. I also appreciated your straight forward attitude and tone throughout. I just released my first iOS app for sale.

Greg

I recently finished LPTHW and greatly enjoyed it. Python’s readability and your teaching approach really helped me to finally overcome some mental obstacles to developing programming abilities that have frustrated me for a long time. I appreciate you making your knowledge available to the world for free. I found your 'what to tell know-it-all programmers' and general life observations just as interesting as the code.

Drew

Can I just say how grateful I am to you for writing this book. It is the first thing I have found that has made me feel like, I can get it together and learn to code.

Alexander

All Courses Include

DRM Free

View in any browser and any location without DRM restrictions.

HD Video

High quality video screencasts of Zed working through each exercise.

Tech Support

Email and live chat support when you’re stuck.

Free Updates

You’ll receive free updates until the next edition is announced.

30 Day Guarantee

30 days to try it and get a refund or switch to another course if you don't like it.

Thanks so much for putting your book online. It has served as a tremendous resource on learning python and just wanted to say I really appreciate it. People like you make this world a better place.

Michael

Hey man just wanted to say you really made it easy to learn from being a beginner. The command line does suck and is really boring but I can tell once I start becoming familiar with it everyday it will be second nature.

Kennon

Just wanted to send a quick thank you for giving me confidence in trying to learn to code. I’m 28 now and didn’t think it was something I could do – (it still might not be) – but thanks to your book it’s given me an opportunity I don’t want to miss out on. Love your passion and it’s very inspiring.

Peter

I started doing your Python course when I was unemployed...and it made a huge difference in my life. Because I had some programming knowledge, I was able to get a job for a financial company that needed someone who could do a bit of coding in addition to their regular duties. ... Now, I've gone from being one of the long-term unemployed to looking at buying my first home.

Marshal

Briefly I’m a 61 year old retire[d] business consultant who has always love computers. Decided to learn programming and starting with your course. As one who has done lots of teaching allow me to compliment the course and your style. Just finished Exercise 12 and wanted to say thanks for putting this course together!

Bert

I've just bought Learn C the Hard Way while on a business trip, since the beta edition website has been incredibly useful. Thanks for that, by the way! Writing the simple database with dynamically allocated fields was more empowering than almost anything I've done as a programmer so far.

Roman

Also I may as well take the opportunity to mention that as a PHP dev the C course is exactly what I was looking for and is frankly excellent. So thank you very much!

Michael

I would like to say that I find your material absolutely terrific. Very pedagogical and methodical, taking it nice and slow. Perfect for a beginner and someone who thinks that technology can be a little intimidating like me. I've been running my own businesses for some years and have come to the realization how important it is to know at least some coding. Most importantly in order to be able to talk to and understand programmers (and balance up the information asymmetry), as well as making your own prototypes without the need to resort to external expertise.

Michael

To be completely honest, programming is one of the best things I have experienced. Truly. The combination of getting a chance to train your logic and making use of your own creativity is so very rewarding. And the almost endless number of applications you can put that knowledge into use is inspiring. I try to do at least 2 hours of programming every day, and it's something I look forward to each time I get out of bed. Thanks for that Zed! Without your online course I wouldn't have dared to take the leap.

Michael

I just completed the command line crash course and want to express my feeling towards your lessons and teaching methods. I have been learning all over the web about coding and very few places make me feel like I’m grasping the methods. I like how you “made” me make flash cards and things felt like a true bootcamp. I have learned a lot more about the command line and am not so afraid of it anymore. I wanted to ask if you have any JavaScript writings as I did not see any on your webpage, I will definitely be reading Ruby but JavaScript is really tripping me up in places and I could use better explanations for things than the ones I’ve seen.

Kevin

I'm reading your book, Learn Python the Hard Way, and really enjoying it. Your teaching approach is the best. I remember at the university, we would have to reach large and dense chapters on programming concepts before writing a line of code. It was insufferable. It should be the other way around, as you have recognized, writing code first and later reading as much about it as is necessary or desired. That deep understanding is important, but it's really impossible to achieve through reading alone and must instead spring forth from a foundation of hands on experience.

Christopher

Thank you so much for the great resource you have provided in Learn C The Hard Way. To give you some positive feedback, I recently used your site to refresh my C skills from Uni, having not used them in anger for a number of years. At the conclusion I applied for work as a C \ Python developer. I feel as though I put my best foot forward, and my inner software engineer has gotten back its spark.

Anonymous

I just wanted to let you know that this course is awesome. I'm following all of the instructions and everything makes sense, so I don't actually need help. I just wanted to thank you. This is a really well constructed course and well worth the very affordable expense. Cheers.

Nathan

I really appreciate what you have given back and I agree with your [writings]. You have helped my career tremendously. Thank you from the bottom of my fingers.

Anthony

I would like to thank you for writing your books. About 8 months ago I was ready to try something new. I had never done any programming before but I have a few friends and relatives who do it for a living and thought I would give it a try. I came across your books and got to work. The way your books are organized and how each chapter progressed in simple steps helped me a lot. I also appreciated your straight forward attitude and tone throughout. I just released my first iOS app for sale.

Greg

I recently finished LPTHW and greatly enjoyed it. Python’s readability and your teaching approach really helped me to finally overcome some mental obstacles to developing programming abilities that have frustrated me for a long time. I appreciate you making your knowledge available to the world for free. I found your 'what to tell know-it-all programmers' and general life observations just as interesting as the code.

Drew

Can I just say how grateful I am to you for writing this book. It is the first thing I have found that has made me feel like, I can get it together and learn to code.

Alexander

Buy Learn C the Hard Way

When you buy Learn C the Hard Way directly from the author, Zed A. Shaw, a professional online course with text and hours of HD Video, all DRM-free.

$29.00

Buy Online Course Directly From The Author

Learn JavaScript or Python

If you're a total beginner I recommend you learn either Python or JavaScript instead of C. C is a difficult language for a first language, but if you learn Python or JavaScript first then C is much easier.

Buy Learn JavaScript the Hard Way Buy Learn Python the Hard Way