C Programming for Hardcore Beginners

This is a C programming course for those who wish to pursue a path as a professional developer rather than just a hobbyist. I recommend this to those who are willing to learn through bitter and rigorous study to reach a sweet destination!

(4.9) 215 reviews

2,921 learners

Level Basic

Course period Unlimited

C
C
Computer Architecture
Computer Architecture
assembly-language
assembly-language
vc++
vc++
C
C
Computer Architecture
Computer Architecture
assembly-language
assembly-language
vc++
vc++

Reviews from Early Learners

Reviews from Early Learners

4.9

5.0

UH K

100% enrolled

As someone who has completed this course, along with "Tough C Linear Data Structures" and "Minimal C++ Course for C Developers," I am leaving this review for others who are considering taking this course or for C/C++ developers who are looking to challenge themselves. The instructor often mentions GPT during the lectures, and inspired by that, I incorporated GPT into my studies. After completing this C course once, I minimized re-listening to the lectures for review. Instead, I trained GPT with the examples provided by the instructor and asked it to give me 10 problems every day from start to finish. I started with easier problems to warm up and gradually increased the difficulty. When I struggled to understand certain parts, I would revisit those lecture sections at double speed. I kept requesting and solving problems to engrave them in my mind and hands. Also, I made sure to spend at least 30 minutes to 1 hour trying to solve the practice examples in the lectures on my own. Some problems were solved within 5 minutes, while others, despite appearing easy, took over an hour before I reluctantly looked at the answer. If I had to look at the answer, I would ask GPT to generate similar problems for review. Since I decided to do it the "tough" way, I worked hard with the mindset of showing how tough I could be. It was a truly great course for me. I highly recommend it! Everyone, fighting!

5.0

김태수

100% enrolled

I am a current FE developer. In my case, since I started development with JavaScript, it was somewhat difficult to build up CS knowledge. I tried studying data structures and algorithms in JavaScript, but it was not easy to think about the deep areas of memory due to the nature of the language. I took this course at a time when I had a terrible thirst for basic knowledge. While watching this course, I think I gained a lot of abstract realizations such as, "How do the codes I worked on work internally?" How variables that were simply declared are allocated to memory, what is the relationship between operators and CPUs and how they work, what role pointers play, what is the relationship between structures and objects, what is the reality of stack and heap that are casually mentioned in JavaScript, how callback patterns actually work, how to write good code, etc... I think I thought a lot while watching the course, consciously or unconsciously. I bought the course in mid-October and watched it little by little after work, and I finally finished it today. I feel proud that I have grown a little more than I did three months ago. I think this course will be of great help to those who are currently working and want basic CS knowledge. Finally, to the easy-going developer! Thank you for making such a great course!

5.0

박인희

100% enrolled

I think this lecture, which starts with C programming, might be difficult to understand if you are a complete beginner. Personally, I watched this lecture with a basic understanding of Linux Python and computer science, and I understood it very well. Even if I didn't understand it at first, I was able to understand it well even if it took some time by disassembling the memory, asking the chat GP, and changing the code to try out various cases, as you said. And among the things you said, you said there is no royal road to this path, which made my impatient mind look at it for a longer period of time. I think I'm lucky to watch this lecture, and I want to thank the generous developer who created the lecture.

What you will gain after the course

  • C language syntax

  • Minimal Computer Architecture

  • A solid understanding of pointers

The bible of C programming
for those of you who want to do C 'properly'!

It's back, and it's tougher than ever!
The latest revision of the steady-selling C language introduction 📖

This is a lecture for the latest revised edition of the book 『C Programming for a Tough Start』. It inherits the same characteristics as the previous book and lectures.

  • ✅ You will learn at a major-level proficiency, covering everything from basic C language syntax to advanced programming theory.
  • ✅ We provide support not only for tool usage but also for proper memory debugging.
  • ✅ You will learn the theories and basic programming techniques that those aspiring to become professional developers, rather than just hobbyists or general learners, must know.

Learn C programming the hard way to use it with ease
Teaching you properly right from the start.

Non-CS majors who wish to find employment as professional developers

CS majors who want to deepen their understanding of C language

Those who are having difficulty understanding the concept of C language pointers

Anyone who wants to have a differentiated competitive edge in the job market

Is this perhaps your concern?

Many of those who wish to find employment as professional IT developers complain about a lack of CS knowledge. Unfortunately, however, in most cases, the cause is that they did not properly study the basic theories.

What if you are studying Java, another popular programming language? Those studying Java may find it convenient because they do not manage memory directly. However, many of the theoretical questions you will encounter in interviews are not much different from the problems caused by pointers in C.

The solution is simple. You just need to learn it properly from the beginning!


A to Z of C Language for Beginners
with the Easygoing Developer

💡 This course is truly intense! It covers not only the syntax of the language but also includes parts of computer architecture and operating system theory to densely pack the essential knowledge required to become a professional C developer.

Before learning C, you can understand the fundamental computer architecture and its corresponding characteristics.

You can understand the characteristics of most programming languages, including C, in connection with computer architecture. As a result, your application skills will improve significantly.

Most existing popular programming languages use C language syntax as is. In the future, no matter what programming language you study, you will be able to approach it easily.

You can become familiar with C language pointers, which many people find difficult, and above all, you will be able to use powerful debugging techniques to solve problems on your own when they arise.


Curriculum Preview 📚

The lecture consists of four main parts.

  • Part 1 covers basic CS theory that you need to know before learning C.
  • In Part 2, we will set up the development environment and learn the basic syntax of C and standard input/output techniques.
  • In Part 3, assuming you have a grasp of basic theory, you will learn programming techniques to improve your skills.
  • In the final Part 4, you will learn advanced C syntax and professional theories.

Operation of Input/Output Buffers and Operating System Structure

Understanding Variables and Operations through Computer Architecture

  • You can learn to trace the call stack that changes with function calls, as well as various debugging techniques.
  • Based on this, you can directly develop high-level application programs.

The instructor who created this course is
Knowledge Sharer 👨‍💻

I am 'Null-Null Developer' Hosung Choi.

  • The developer of Korea's first PC firewall (the one everyone hates)
  • A 30-year veteran C/C++ developer who has been studying C since 1992.
  • An experienced professional who has conducted numerous national projects and has over 15 years of experience in development instruction!
  • Author of the popular introductory C language book 『C Programming for the Determined』

I run the "Null-Null Developer TV" YouTube channel with over 30,000 subscribers. (Go to channel)


Q&A 💬

Q. Can a non-major who is new to programming take this course?

Yes, you can take it. However, you absolutely cannot understand everything at once, and you must invest at least 2 months into the overall learning and review process.

Q. Do I have to set up the development environment on Windows?

Yes, I strongly recommend doing so if possible. Otherwise, it is practically impossible to conduct hands-on practice for core theories, such as tracking memory changes.

Q. Is there anything I need to prepare before taking the course?

'Become a Computer Science Major by Memorizing Broadly and Shallowly' You must be familiar with the contents covered in the class. Although the most essential parts will be covered again in this course, I highly recommend studying them in advance before taking this class.. Mặc dù những phần thực sự cần thiết sẽ được nhắc lại trong khóa học, nhưng tôi khuyên bạn nên tìm hiểu trước nếu có thể rồi mới tham gia lớp học này.

Q. I'm planning to become a Java developer; will this course be helpful?

There may be some controversy, but I can say that it will ultimately be helpful. Java's reference types are similar to C++'s reference types. At the same time, they are the same as C pointers. Due to the nature of the language, Java simply doesn't manage memory directly, but it handles memory in the same way.

Q. Will taking this course be advantageous for getting a job?

Yes, it will be advantageous. If you understand C at the level covered in this lecture, I can confidently say that you are definitely not a beginner. While it may not be everything, it will certainly give you a distinct competitive edge.

📢 Guide to Practice Environment and Precautions

C language is native code that directly depends on the OS and hardware. Therefore, you must match the practice environment below exactly to properly conduct the exercises.

  • Windows 11 64-bit OS (Windows 10 64-bit possible)
  • Microsoft Visual Studio 2022 Community (Required)
  • Microsoft Excel (Recommended)
  • Hardware capable of running the aforementioned OS and tools without issues (Intel i5 + 16GB RAM recommended)
  • macOS and Linux environments are not considered.

Students will be provided with a PDF of the class materials and all example files used in the lectures. Additionally, for a smooth understanding, you should have an understanding of the content covered in the lecture 'Becoming a Computer Science Major by Memorizing Broadly and Shallowly'.

Recommended for
these people

Who is this course right for?

  • Those who want to learn the C language properly

  • Those who are already on the path of a CS major

  • Those who hope to become a differentiated professional developer

Need to know before starting?

  • Knowledge equivalent to the level of the lecture "Becoming a Computer Science Major by Memorizing Broadly and Shallowly"

Hello
This is nullnull8537

48,652

Learners

2,838

Reviews

1,179

Answers

4.9

Rating

27

Courses

I am the owner of the "NullNull Developer TV" channel and
a developer who has been navigating the sea of IT technology for over 30 years. Nice to meet you. ^^

Curriculum

All

149 lectures ∙ (28hr 58min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

215 reviews

4.9

215 reviews

  • zkfk26689220님의 프로필 이미지
    zkfk26689220

    Reviews 1

    Average Rating 5.0

    5

    100% enrolled

    I think this lecture, which starts with C programming, might be difficult to understand if you are a complete beginner. Personally, I watched this lecture with a basic understanding of Linux Python and computer science, and I understood it very well. Even if I didn't understand it at first, I was able to understand it well even if it took some time by disassembling the memory, asking the chat GP, and changing the code to try out various cases, as you said. And among the things you said, you said there is no royal road to this path, which made my impatient mind look at it for a longer period of time. I think I'm lucky to watch this lecture, and I want to thank the generous developer who created the lecture.

    • nullnull8537
      Instructor

      This class has both strengths and weaknesses that you pointed out exactly. :) If I tell the necessary story, the content becomes difficult, and if I make it easy, it feels like I'm lying, so I've kept my beliefs even though I've received some bad reviews. Fortunately, I'm glad it was helpful. Thank you for the good review and feedback. :)

  • elonj334037님의 프로필 이미지
    elonj334037

    Reviews 6

    Average Rating 5.0

    5

    16% enrolled

    I am truly grateful that a developer with outstanding capabilities and good explanatory skills has opened a lecture like this with such enthusiasm.

    • nullnull8537
      Instructor

      Wow~~! Thank you for your kind words. It makes me want to work harder. I hope that your skills will also soar in the Year of the Blue Dragon. :)

  • khumberthumbert님의 프로필 이미지
    khumberthumbert

    Reviews 4

    Average Rating 5.0

    Edited

    5

    100% enrolled

    As someone who has completed this course, along with "Tough C Linear Data Structures" and "Minimal C++ Course for C Developers," I am leaving this review for others who are considering taking this course or for C/C++ developers who are looking to challenge themselves. The instructor often mentions GPT during the lectures, and inspired by that, I incorporated GPT into my studies. After completing this C course once, I minimized re-listening to the lectures for review. Instead, I trained GPT with the examples provided by the instructor and asked it to give me 10 problems every day from start to finish. I started with easier problems to warm up and gradually increased the difficulty. When I struggled to understand certain parts, I would revisit those lecture sections at double speed. I kept requesting and solving problems to engrave them in my mind and hands. Also, I made sure to spend at least 30 minutes to 1 hour trying to solve the practice examples in the lectures on my own. Some problems were solved within 5 minutes, while others, despite appearing easy, took over an hour before I reluctantly looked at the answer. If I had to look at the answer, I would ask GPT to generate similar problems for review. Since I decided to do it the "tough" way, I worked hard with the mindset of showing how tough I could be. It was a truly great course for me. I highly recommend it! Everyone, fighting!

    • nullnull8537
      Instructor

      Wow~! You're amazing. Asking it to learn from examples and then give you problems is a truly excellent choice. And you even reviewed it at twice the speed... you're really a model student!! You might even be running 'harder' than me, the one who made this lecture. More than anything, it made me think again about the attitude of learning. I will repay your support by creating even better lectures in the future. Thank you. :)

  • kkts93082356님의 프로필 이미지
    kkts93082356

    Reviews 2

    Average Rating 5.0

    5

    100% enrolled

    I am a current FE developer. In my case, since I started development with JavaScript, it was somewhat difficult to build up CS knowledge. I tried studying data structures and algorithms in JavaScript, but it was not easy to think about the deep areas of memory due to the nature of the language. I took this course at a time when I had a terrible thirst for basic knowledge. While watching this course, I think I gained a lot of abstract realizations such as, "How do the codes I worked on work internally?" How variables that were simply declared are allocated to memory, what is the relationship between operators and CPUs and how they work, what role pointers play, what is the relationship between structures and objects, what is the reality of stack and heap that are casually mentioned in JavaScript, how callback patterns actually work, how to write good code, etc... I think I thought a lot while watching the course, consciously or unconsciously. I bought the course in mid-October and watched it little by little after work, and I finally finished it today. I feel proud that I have grown a little more than I did three months ago. I think this course will be of great help to those who are currently working and want basic CS knowledge. Finally, to the easy-going developer! Thank you for making such a great course!

    • nullnull8537
      Instructor

      I think all software developers become thirsty for CS theory as they gain practical experience. I was no exception. I am so glad that this lecture helped you. As you gain more understanding of the internal structure, your understanding of JavaScript will inevitably deepen. Thank you for your kind words and good evaluation. I hope you grow into a better developer. :)

  • sdfjo15658032님의 프로필 이미지
    sdfjo15658032

    Reviews 1

    Average Rating 5.0

    5

    12% enrolled

    These days, effort is important, but the direction you should take is also important, so I think I met a great teacher. Thank you so much for teaching me. In the past, when I studied with the book "C Programming for Beginners" and YouTube lectures, I remember that it was very difficult to follow along while referring to the book because the order of the lectures changed. Now, since you provide the materials in files, it is easy to follow along and organize notes. This is definitely a good thing. However, I personally wish you would change the pen sound when you make the next lecture. Haha.. My ears are sensitive to the sound of the sign pen(?) and when I listen with earphones, I get goosebumps all over my body several times during each lecture, so I turn the volume down to the point where I can barely hear the voice. Of course, this will vary from person to person, but if you don't mind, I would appreciate it if you could consider this as well. ㅎㅎ I have previously broadcasted the lectures on YouTube several times, so I don't know what would be disappointing for a beginner, but I think that if you diligently chew on this lecture and practice programming a little more, you can be in the top ranks of the C language in college. (I did.) As a college student who also wants to become a C/C++ developer, I will cheer you on and diligently follow the lectures you will give in the future. Stay healthy!

    • nullnull8537
      Instructor

      You must have taken my previous lectures on C! First of all, I would like to say hello. :) I also paid attention to the order based on my previous lecture experience, and I am glad that it led to good results. Also, the recorded sound you gave me as feedback is the actual sound recorded on the microphone. Many people liked this sound, so I didn't pay attention, but I thought that there could be many problems like the one you gave me as feedback. I will try to find a compromise. Thank you for liking my lecture. I will repay you with a better lecture. :)

nullnull8537's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!

$77.00