زبان C
CC کوچک است: بیستوچند کلیدواژه و تقریباً هیچ چیز پنهانی. همین باعث میشود سختترین و آموزندهترین زبان برای یادگیری باشد — چون هیچچیز را برایت انجام نمیدهد. اگر C را بفهمی، بعد از آن هر زبانی به نظرت یک راحتی لوکس میآید، و میدانی آن راحتی دقیقاً چه چیزی را پنهان میکند.
پیشرفت تو
درصد هر فصل از دو چیز میآید: چقدر از بخشهایش را خواندهای (۵۵٪) و چند تمرینش را تیک زدهای (۴۵٪). همهچیز داخل مرورگر خودت میماند.
فصل
فصلها به هم وابستهاند و ترتیبشان معنا دارد. هر مسیر با پروژههای نهایی تمام میشود: ساده، متوسط، پیچیده.
چرا هنوز C
کجا استفاده میشود و چرا جایگزین نشده.
در نوبت نوشتننوع، متغیر، عملگر
اندازهٔ نوعها و سرریز.
در نوبت نوشتنکنترل جریان
شرط، حلقه، switch و goto.
در نوبت نوشتنتابع و پشته
فراخوانی، بازگشت و frame پشته.
در نوبت نوشتناشارهگر
مهمترین فصل. آدرس، مرجعگیری و حساب اشارهگر.
در نوبت نوشتنآرایه و رشته
چرا آرایه در C اشارهگر است و رشته پایانیافته با صفر.
در نوبت نوشتنمدیریت حافظه
malloc، free، نشتی و استفادهٔ پس از آزادسازی.
در نوبت نوشتنstruct و union
چیدمان حافظه و padding.
در نوبت نوشتنفایل و ورودی/خروجی
خواندن، نوشتن و باینری.
در نوبت نوشتنپیشپردازنده
#define، #include و ماکرو.
در نوبت نوشتنساختمان داده با اشارهگر
لیست پیوندی، درخت و پشته — از صفر.
در نوبت نوشتنکامپایل و Make
مراحل کامپایل، لینک و Makefile.
در نوبت نوشتناشکالزدایی
gdb، valgrind و segfault.
در نوبت نوشتنپروژهٔ ۱ — ابزار خط فرمان
پردازش فایل با مدیریت حافظهٔ درست.
در نوبت نوشتنپروژهٔ سادهپروژهٔ ۲ — ساختمان داده
hash table کامل با تست.
در نوبت نوشتنپروژهٔ متوسطپروژهٔ ۳ — مفسر کوچک
tokenizer، parser و ارزیاب.
در نوبت نوشتنپروژهٔ پیچیده