Skip to content

PRO TIP Block youtube.com at the DNS level — Pi-hole, NextDNS or your hosts file — but allow youtube-nocookie.com and i.ytimg.com. These tutorials keep playing; the rabbit hole does not.

Learning without distractions
  1. 1 4:39 How To Setup A C Programming Environment On Windows Portfolio Courses · 109.4K views
  2. 2 11:27 How To Setup A C Programming Environment On A Mac Portfolio Courses · 21.6K views
  3. 3 14:50 Basics of variables and types | C Programming Tutorial Portfolio Courses · 30.9K views
  4. 4 16:46 printf Basics | C Programming Tutorial Portfolio Courses · 43.8K views
  5. 5 10:24 scanf Basics | C Programming Tutorial Portfolio Courses · 66.4K views
  6. 6 8:56 if statements | C Programming Tutorial Portfolio Courses · 15.3K views
  7. 7 10:33 Logical Operators | C Programming Tutorial Portfolio Courses · 12.8K views
  8. 8 16:13 switch Statements | C Programming Tutorial Portfolio Courses · 18K views
  9. 9 7:04 while loop C | Programming Tutorial Portfolio Courses · 13.3K views
  10. 10 4:15 do while loop | C Programming Tutorial Portfolio Courses · 14.4K views
  11. 11 9:30 for loops | C Programming Tutorial Portfolio Courses · 13.4K views
  12. 12 5:31 break and continue statements | C Programming Tutorial Portfolio Courses · 10.8K views
  13. 13 15:36 Function Basics | C Programming Tutorial Portfolio Courses · 133.5K views
  14. 14 13:37 Array Basics | C Programming Tutorial Portfolio Courses · 69K views
  15. 15 8:02 String Basics | C Programming Tutorial Portfolio Courses · 64.1K views
  16. 16 8:17 Type Casting | C Programming Tutorial Portfolio Courses · 45.9K views
  17. 17 24:05 File Access Basics | C Programming Tutorial Portfolio Courses · 160.6K views
  18. 18 6:36 Command Line Arguments | C Programming Tutorial Portfolio Courses · 91K views
  19. 19 10:49 Recursion | C Programming Tutorial Portfolio Courses · 43.4K views
  20. 20 9:15 Constants | C Programming Tutorial Portfolio Courses · 11.4K views
  21. 21 2:16 typedef Basics | C Programming Tutorial Portfolio Courses · 21.4K views
  22. 22 24:44 struct Basics | C Programming Tutorial Portfolio Courses · 223.7K views
  23. 23 24:42 Introduction to Pointers | C Programming Tutorial Portfolio Courses · 178.6K views
  24. 24 10:12 Pass By Reference | C Programming Tutorial Portfolio Courses · 58.1K views
  25. 25 9:30 Passing an Array to a Function | C Programming Tutorial Portfolio Courses · 65.7K views
  26. 26 31:51 Dynamic Memory Allocation | C Programming Tutorial Portfolio Courses · 148.2K views
  27. 27 9:05 malloc vs calloc Differences Explained | C Programming Tutorial Portfolio Courses · 45.6K views
  28. 28 21:42 realloc Basics Portfolio Courses · 23.2K views
  29. 29 17:48 realloc Security Vulnerability | C Programming Tutorial Portfolio Courses · 8.7K views
  30. 30 14:10 2D Array Basics | C Programming Tutorial Portfolio Courses · 39.8K views
  31. 31 5:03 Heap Inspection Security Vulnerability | C Programming Tutorial Portfolio Courses · 8.3K views
  32. 32 7:54 postfix vs. prefix increment operator | C Programming Tutorial Portfolio Courses · 22.2K views
  33. 33 11:29 ctype Library | C Programming Tutorial Portfolio Courses · 14.2K views
  34. 34 9:49 Variable Scope | C Programming Tutorial Portfolio Courses · 7K views
  35. 35 17:00 Pointer Notation | C Programming Tutorial Portfolio Courses · 11.9K views
  36. 36 3:49 Main Function Return Value | C Programming Tutorial Portfolio Courses · 13.9K views
  37. 37 3:21 Comments | C Programming Tutorial Portfolio Courses · 2.6K views
  38. 38 7:09 strcmp() function | C Programming Tutorial Portfolio Courses · 46.6K views
  39. 39 3:07 strpbrk() function | C Programming Tutorial Portfolio Courses · 9.2K views
  40. 40 2:44 strrchr() function | C Programming Tutorial Portfolio Courses · 9.3K views
  41. 41 3:05 strstr() function | C Programming Tutorial Portfolio Courses · 37.2K views
  42. 42 12:36 strtok() function | C Programming Tutorial Portfolio Courses · 81.5K views
  43. 43 3:10 strcspn() function | C Programming Tutorial Portfolio Courses · 15.9K views
  44. 44 4:20 strchr() function | C Programming Tutorial Portfolio Courses · 21.3K views
  45. 45 3:21 strspn() function | C Programming Tutorial Portfolio Courses · 9.4K views
  46. 46 4:22 strcat() and strncat() functions | C Programming Tutorial Portfolio Courses · 22.5K views
  47. 47 6:14 Handling String Input With Spaces | C Programming Tutorial Portfolio Courses · 54.9K views
  48. 48 8:03 enum | C Programming Tutorial Portfolio Courses · 27.3K views
  49. 49 5:34 Ternary Operator | C Programming Tutorial Portfolio Courses · 8.5K views
  50. 50 4:38 memcpy() function | C Programming Tutorial Portfolio Courses · 26.9K views
  51. 51 3:43 memset() function | C Programming Tutorial Portfolio Courses · 38K views
  52. 52 4:25 exit() function | C Programming Tutorial Portfolio Courses · 47.2K views
  53. 53 24:06 Time Library | C Programming Tutorial Portfolio Courses · 59.5K views
  54. 54 2:29 sleep() and usleep() functions | C Programming Tutorial Portfolio Courses · 26.3K views
  55. 55 7:23 How True and False Boolean Values Work In C Portfolio Courses · 44.7K views
  56. 56 3:51 Relational Operators | C Programming Tutorial Portfolio Courses · 6.5K views
  57. 57 9:56 Arithmetic Operations | C Programming Tutorial Portfolio Courses · 7.8K views
  58. 58 3:11 Assignment Operators | C Programming Tutorial Portfolio Courses · 4K views
  59. 59 3:25 div() function | C Programming Tutorial Portfolio Courses · 3.8K views
  60. 60 2:43 modf() function | C Programming Tutorial Portfolio Courses · 3.5K views
  61. 61 8:23 Error Handling | C Programming Tutorial Portfolio Courses · 22.3K views
  62. 62 2:39 fmod() function | C Programming Tutorial Portfolio Courses · 6.7K views
  63. 63 7:52 round(), ceil(), floor() and trunc() double rounding functions | C Programming Tutorial Portfolio Courses · 10.1K views
  64. 64 15:50 How to create functions with a variable number of arguments using stdarg.h | C Programming Tutorial Portfolio Courses · 60.7K views
  65. 65 2:37 pow() function | C Programming Tutorial Portfolio Courses · 20.4K views
  66. 66 5:59 Random Number Generation | C Programming Tutorial Portfolio Courses · 8.3K views
  67. 67 12:19 Bitwise Operators | C Programming Tutorial Portfolio Courses · 36.8K views
  68. 68 4:24 remove() function for deleting files | C Programming Tutorial Portfolio Courses · 8.9K views
  69. 69 5:07 rename() Function For Renaming Files | C Programming Tutorial Portfolio Courses · 4.5K views
  70. 70 6:17 Static Local Variables | C Programming Tutorial Portfolio Courses · 13.5K views
  71. 71 8:15 strcpy() and strncpy() functions | C Programming Tutorial Portfolio Courses · 51.1K views
  72. 72 6:37 Arrow Operator For Pointers To Structs | C Programming Tutorial Portfolio Courses · 62.5K views
  73. 73 4:46 goto Statements | C Programming Tutorial Portfolio Courses · 26.4K views
  74. 74 4:39 rewind() function to reset file pointer to file start | C Programming Tutorial Portfolio Courses · 8.6K views
  75. 75 4:58 sprintf() Function | C Programming Tutorial Portfolio Courses · 32.1K views
  76. 76 2:12 getenv() Function To Get The Value Of An Environment Variable | C Programming Tutorial Portfolio Courses · 8.6K views
  77. 77 3:20 system() Function To Run Shell Commands | C Programming Tutorial Portfolio Courses · 14K views
  78. 78 2:06 strtod() Converts String To Double And Returns Remaining String Portion | C Programming Tutorial Portfolio Courses · 7.3K views
  79. 79 2:30 Convert A String To A Double, Int Or Long Int With atof(), atoi() or atol() | C Programming Tutorial Portfolio Courses · 17.8K views
  80. 80 4:01 How To Use atexit() To Set A Function To Run On Program Exit | C Programming Tutorial Portfolio Courses · 3.7K views
  81. 81 4:04 abort() Function | C Programming Tutorial Portfolio Courses · 3.3K views
  82. 82 6:25 Using assert() To Help Debug Our Program With Assertions | C Programming Tutorial Portfolio Courses · 14.3K views
  83. 83 6:03 memccpy() Function | C Programming Tutorial Portfolio Courses · 3K views
  84. 84 4:43 memchr() Function | C Programming Tutorial Portfolio Courses · 5.7K views
  85. 85 6:08 tmpnam() Function To Create Temporary Filenames | C Programming Tutorial Portfolio Courses · 1.7K views
  86. 86 7:54 fseek() Function | C Programming Tutorial Portfolio Courses · 18.7K views
  87. 87 11:42 Union Data Types | C Programming Tutorial Portfolio Courses · 23.8K views
  88. 88 6:19 How To Create A Library And Split A Program Across Multiple Files | C Programming Tutorial Portfolio Courses · 128.6K views
  89. 89 3:32 Static Global Variables | C Programming Tutorial Portfolio Courses · 17.6K views
  90. 90 16:17 Binary File Access Introduction | C Programming Example Portfolio Courses · 40K views
  91. 91 5:28 Register Variables | C Programming Tutorial Portfolio Courses · 12.4K views
  92. 92 13:39 Introduction To Threads (pthreads) | C Programming Tutorial Portfolio Courses · 192.4K views
  93. 93 18:31 Function Pointers | C Programming Tutorial Portfolio Courses · 107.4K views
  94. 94 12:11 Race Conditions Explained With An Example | C Programming Tutorial Portfolio Courses · 18.9K views
  95. 95 8:16 Make A File Directory With mkdir() | C Programming Tutorial Portfolio Courses · 12.4K views
  96. 96 6:25 lvalues and rvalues | C Programming Tutorial Portfolio Courses · 10.7K views
  97. 97 10:19 Mutex Introduction (pthreads) | C Programming Tutorial Portfolio Courses · 38.9K views
  98. 98 13:08 clearerr() Function | C Programming Tutorial Portfolio Courses · 3.2K views
  99. 99 10:39 ungetc() Function | C Programming Tutorial Portfolio Courses · 2.4K views
  100. 100 12:34 Detached Threads (pthreads) | C Programming Tutorial Portfolio Courses · 8.1K views
  101. 101 13:36 Comma Operator (And When To Use It) | C Programming Tutorial Portfolio Courses · 3.4K views
  102. 102 4:50 truncate() Function To Truncate A File (POSIX Library) | C Programming Tutorial Portfolio Courses · 2.9K views
  103. 103 15:15 Memory Leaks And How To Prevent Them | C Programming Tutorial Portfolio Courses · 16.2K views
  104. 104 30:53 fprintf() Function Deep Dive | C Programming Tutorial Portfolio Courses · 7.8K views
  105. 105 6:38 fputs() Function | C Programming Tutorial Portfolio Courses · 6.1K views
  106. 106 3:54 int main() vs int main(void) | C Programming Tutorial Portfolio Courses · 30.8K views
  107. 107 10:56 Why We Should NOT Use void main() | C Programming Tutorial Portfolio Courses · 5.7K views
  108. 108 10:24 Why We Should Never Use gets()… And Why To Use fgets() Instead | C Programming Tutorial Portfolio Courses · 30.6K views
  109. 109 24:12 Function-like Macros | C Programming Tutorial Portfolio Courses · 29.9K views
  110. 110 8:37 #ifdef #ifndef Conditional Compilation Directives | C Programming Tutorial Portfolio Courses · 25K views
  111. 111 14:01 #if #elif #else Conditional Compilation Directives | C Programming Tutorial Portfolio Courses · 6.3K views
  112. 112 2:41 #error Preprocessor Directive | C Programming Tutorial Portfolio Courses · 3.7K views
  113. 113 8:47 Token-Pasting Operator ## | C Programming Tutorial Portfolio Courses · 20.6K views
  114. 114 10:07 Predefined Preprocessor Macros + Log File Use Case | C Programming Tutorial Portfolio Courses · 11.8K views
  115. 115 9:58 String In Char Array VS. Pointer To String Literal | C Programming Tutorial Portfolio Courses · 299.1K views
  116. 116 8:40 Constant Pointer VS. Pointer To A Constant | C Programming Tutorial Portfolio Courses · 40.1K views
  117. 117 6:13 Make A Directory Using _mkdir() On Windows | C Programming Tutorial Portfolio Courses · 5.5K views
  118. 118 6:50 Get The Current Working Directory Using _getcwd() On Windows | C Programming Tutorial Portfolio Courses · 6.1K views
  119. 119 7:17 size_t Type | C Programming Tutorial Portfolio Courses · 20K views
  120. 120 5:14 Change The Current Working Directory Using _chdir() On Windows | C Programming Tutorial Portfolio Courses · 6.8K views
  121. 121 2:45 Function Parameters VS. Arguments | C Programming Tutorial Portfolio Courses · 34.5K views
  122. 122 7:09 memmove() Function | C Programming Tutorial Portfolio Courses · 16.5K views
  123. 123 16:47 sizeof Operator | C Programming Tutorial Portfolio Courses · 7.5K views
  124. 124 8:56 Nested Functions | C Programming Tutorial Portfolio Courses · 7.5K views
  125. 125 6:15 Find Middle Index Without Integer Overflow | C Programming Tutorial Portfolio Courses · 3.8K views
  126. 126 17:38 array vs &array Pointers Difference Explained | C Programming Tutorial Portfolio Courses · 57.8K views
  127. 127 6:01 function vs. &function Pointers | C Programming Tutorial Portfolio Courses · 12.1K views
  128. 128 15:58 Dynamically Allocate A 2D Array | C Programming Tutorial Portfolio Courses · 60.8K views
  129. 129 11:32 Increase The Size Of A Dynamically Allocated 2D Array | C Programming Tutorial Portfolio Courses · 10.4K views
  130. 130 6:46 Difference Between %f And %lf Format Specifiers | C Programming Tutorial Portfolio Courses · 6.2K views
  131. 131 6:12 int *p vs int* p Pointer Declarations | C Programming Tutorial Portfolio Courses · 216.5K views
  132. 132 3:12 Convert A For Loop To A While Loop | C Programming Tutorial Portfolio Courses · 13.8K views
  133. 133 13:01 How To Return An Array From A Function | C Programming Tutorial Portfolio Courses · 92.7K views
  134. 134 8:20 Return A Dynamically Allocated 2D Array From A Function | C Programming Tutorial Portfolio Courses · 15.2K views
  135. 135 8:38 Static Functions | C Programming Tutorial Portfolio Courses · 12.5K views
  136. 136 19:56 Find The Length Of An Array Using sizeof() | C Programming Tutorial Portfolio Courses · 8.8K views
  137. 137 4:15 If Statement Best Practice | C Programming Tutorial Portfolio Courses · 6.3K views
  138. 138 15:11 Dynamically Allocate An Array Of Structs | C Programming Tutorial Portfolio Courses · 47.3K views
  139. 139 13:51 How To Return A String From A Function | C Programming Tutorial Portfolio Courses · 22.7K views
  140. 140 6:45 Return Statement In A Void Function | C Programming Tutorial Portfolio Courses · 18.7K views
  141. 141 3:40 Absolute Value Functions abs() And fabs() | C Programming Tutorial Portfolio Courses · 13K views
  142. 142 5:49 Find A Square Root Using sqrt() sqrtf() sqrtl() | C Programming Tutorial Portfolio Courses · 6.3K views
  143. 143 18:59 NULL Pointer | C Programming Tutorial Portfolio Courses · 13.5K views
  144. 144 8:49 Local vs. Global Variables | C Programming Tutorial Portfolio Courses · 9.3K views
  145. 145 12:37 Floating-Point Number Classification Functions | C Programming Tutorial Portfolio Courses · 1.8K views
  146. 146 8:10 Structure Padding | C Programming Tutorial Portfolio Courses · 17.7K views
  147. 147 8:02 How To Clear The Input Buffer | C Programming Tutorial Portfolio Courses · 29.5K views
  148. 148 3:50 #line Preprocessor Directive | C Programming Tutorial Portfolio Courses · 3.8K views
  149. 149 5:41 puts() Function | C Programming Tutorial Portfolio Courses · 6K views
  150. 150 3:46 Interleave Switch Cases Within Other Control Structures | C Programming Tutorial Portfolio Courses · 2.2K views
  151. 151 9:59 Single vs. Multiple Recursion | C Programming Tutorial Portfolio Courses · 4.9K views
  152. 152 12:57 Stack Overflow Errors | C Programming Tutorial Portfolio Courses · 13.4K views
  153. 153 8:29 Direct vs. Indirect Recursion | C Programming Tutorial Portfolio Courses · 3.4K views
  154. 154 15:38 Head vs Tail Recursion | C Programming Tutorial Portfolio Courses · 4.6K views
  155. 155 8:39 tmpfile() Function | C Programming Tutorial Portfolio Courses · 1.5K views
  156. 156 9:04 Include Guards | C Programming Tutorial Portfolio Courses · 12.1K views
  157. 157 5:26 tolower() Function | C Programming Tutorial Portfolio Courses · 3.7K views
  158. 158 3:50 How To Use #if 0 … #endif To Remove Code For Debugging | C Programming Tutorial Portfolio Courses · 1.6K views
  159. 159 4:00 isalpha() Function | C Programming Tutorial Portfolio Courses · 5.7K views
  160. 160 4:14 isdigit() Function | C Programming Tutorial Portfolio Courses · 5K views
  161. 161 4:57 isalnum() Function | C Programming Tutorial Portfolio Courses · 2.5K views
  162. 162 4:17 ispunct() Function | C Programming Tutorial Portfolio Courses · 1.1K views
  163. 163 4:02 isspace() Function | C Programming Tutorial Portfolio Courses · 2.1K views
  164. 164 1:19 How To Print The % Character Using printf() | C Programming Tutorial Portfolio Courses · 2.1K views
  165. 165 9:35 feof() Function | C Programming Tutorial Portfolio Courses · 7.2K views
  166. 166 4:33 isprint() Function | C Programming Tutorial Portfolio Courses · 1.6K views
  167. 167 4:10 iscntrl() Function | C Programming Tutorial Portfolio Courses · 1.1K views
  168. 168 5:10 Standard Error Stream (stderr) | C Programming Tutorial Portfolio Courses · 4.1K views
  169. 169 4:53 isgraph() Function | C Programming Tutorial Portfolio Courses · 1.4K views
  170. 170 12:44 Void Pointers | C Programming Tutorial Portfolio Courses · 17.9K views
  171. 171 8:58 Designated Initializers For Arrays | C Programming Tutorial Portfolio Courses · 3.2K views
  172. 172 13:27 Flexible Array Members | C Programming Tutorial Portfolio Courses · 4.3K views
  173. 173 15:05 Null Terminator | C Programming Tutorial Portfolio Courses · 6.1K views
  174. 174 10:03 _Bool Type Explained | C Programming Tutorial Portfolio Courses · 2.4K views
  175. 175 19:29 Null Terminated String Safety Issues | C Programming Tutorial Portfolio Courses · 5.6K views
  176. 176 5:32 strnlen() String Length Function (POSIX) | C Programming Tutorial Portfolio Courses · 3.6K views
  177. 177 11:08 Dangling Pointers | C Programming Tutorial Portfolio Courses · 5.5K views
  178. 178 5:07 do {…} while(0) In Macros Pattern | C Programming Tutorial Portfolio Courses · 5K views
  179. 179 3:16 Multiline String Literals | C Programming Tutorial Portfolio Courses · 3.3K views
  180. 180 4:32 Do we need to typecast the return value of malloc()? | C Programming Tutorial Portfolio Courses · 3K views
  181. 181 9:25 Declare One Variable Per Line Coding Style Advantages | C Programming Tutorial Portfolio Courses · 4.3K views
  182. 182 5:36 time(NULL) Explained | C Programming Tutorial Portfolio Courses · 5.4K views
  183. 183 7:08 Resize A String Stored In Dynamically Allocated Memory | C Programming Tutorial Portfolio Courses · 2K views
  184. 184 11:16 How To Resize An Array | C Programming Tutorial Portfolio Courses · 3.7K views
  185. 185 5:38 Void Functions | C Programming Tutorial Portfolio Courses · 14.2K views
  186. 186 9:20 Legal Ways To Call Void Functions | C Programming Tutorial Portfolio Courses · 6.3K views
  187. 187 10:51 Segmentation Faults And Common Causes | C Programming Tutorial Portfolio Courses · 12.9K views
  188. 188 4:20 Exit Statuses and Exit Status Macros | C Programming Tutorial Portfolio Courses · 2.2K views
  189. 189 4:01 Use enumerate() For Loop Counters NOT range(len(…)) | Python Tutorial Portfolio Courses · 1.5K views