65,00 €
For Developers – Build Linux Programmable Libraries, Makefiles, Memory Management, Compilation & Linking, C Programming
There are already innumerable courses/tutorials on the internet/Udemy which teach almost every aspect of C programming language. All those courses sound the same, talk the same and deliver more or less the same knowledge. How is this course different from others?
The intention of this course is to make you ready for System programming Technical interviews, interview level – from Beginner to Intermediate. This course is for (future) Developers, not for testers or System Administrators.
I choose to create this course to fill the gap between novice/beginner and intermediate/Advanced Programmers. This course assumes that you are at least above average in programming (in any programming language, but preferable in C/C++) – know memory allocations, all kinds of loops, function calls, pointers etc. In this course, I won’t teach C/C++ (there are already many courses on it online) but would teach programming techniques and low-level details regarding how C program works behind the scenes – All topics are very important from an interview point of view. My Target is to grow this course into Linux/C Bible.
Yet, I always feel, you need to outsmart your fellow colleagues in this era of stiff competition, and therefore, I tried this attempt to present you the wisdom and knowledge which is of utmost importance for a programmer. I have seen though students could write good C/C++ programs, yet they lack the clarity on how one should write better organized, Manageable, extensible, and programmable codes in the form of libraries. For example, Students are too good at competitive programming, yet do not know how to write a simple Makefile, the reason being, Academics do not teach and students do not care to learn.
In this course, I will cover the topics related to creating Linux System Libraries (release 1) with Advanced language-agnostic Programming Concepts (release 2) which can be well applied if you happen to become a programmer in other languages tomorrow.
The Concepts like MultiThreading, Thread-Synchronization, Socket Programming, IPCs, etc demand a separate course on each topic altogether. Currently, I have a course on IPC, pls check it out. These topics are out of scope for this course.
The Course shall be delivered into two Releases :
Release 1 Building and Managing a Library: This covers the basics regarding how one should create and organize his code as a Library.
Release 2 Memory Management Concepts: This covers Advance concepts on Linux Memory Management specifically. Please check the Table of Contents for more info.
Why you should *NOT* do this course?
1. Please Excuse this course if you are the ultimate beginner in C programming !!
2. There is no point of doing this course if you don’t like hitting the keyboard, and are lazy enough to watch lecture VDOs only
3. If you want everything cooked and served on your plate.
Course Pre-requisite :
No Third-Party libraries
Whatever logic you implement, you need to implement it from scratch. Like all my other courses, this course does not suggest taking the help of any third-party library to get the jobs done. The use of external libraries completely defeats the purpose of the course.
Warning: This course has auto system-generated subtitles which may not be perfect. Please disable subtitles at your convenience.
Curriculum :
**********************************************
Release 1 Building and Managing a Library
**********************************************
Section 1 : Introduction to Libraries
Section 2 : Header Files
Section 3 : Preprocessing Directives
Section 4 : Correct way of Using Structures and Functions
Section 5 : Creation of Static and Dynamic Libraries
Section 7: Understanding four stages of Compilation
Section 8 : Building using a Makefile
Section 9 : Run-time Programmable libraries
Section 10 : Writing Iterators using Macros
Section 11 : Glue Based Libraries and Data structures
Section 12 : Bit Level Programming
************************************************
Release 2 Memory Management Concepts
************************************************
Section 13 : Memory Layout of Linux Process
Section 14 : Stack Memory Management
Section 15 : Heap Memory Management
Section 16 : Concept of Paging
Section 17 : Multilevel Paging
Section 18 : Demand Paging
Section 19 : Memory Management for Multi-threaded Process
The intention of this course is to make you ready for System programming Technical interviews from beginners to upto 8-9 yrs of experience.
Q. What are the frequently asked questions by interviewers in a technical round when someone writes C/C++/System Programming language on their resume?
Answer : If i am interviewer, what questions i would ask depends on his no of years of experience in C.
1–3 yrs of experience — I would have asked:
4–6 yrs of experience – I would have asked:
7+ yrs of experience – I would have asked
If you analyze the pattern,
Candidate with 1–3 yrs of experience, I would choose to ask more of a direct and straightforward Questions.
Candidate with 4–6 yrs of experience, I would choose to ask more advanced technical C Question plus some comparison of approaches based Questions
Candidate with 7+ yrs of experience, I would choose to ask more of a design and Analysis based Question.
Note that, since the Question pertains to C and System Programming, so I have not mentioned Data structures and Algorithms.
Hours on-demand video | 14 |
---|---|
Language | English |