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!
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!
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"
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. ^^
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.
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. :)
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!
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. :)
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!
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. :)
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!
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. :)