Skip to content
0:00 / 0:00

#unix#apue#netbsd

Advanced Programming in the UNIX Environment: Week 01 - Introduction

cs631apue

6.9K subscribers • 1 video on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.

Intermediate. Assumes working knowledge.

56K views6 years ago2 recommendations

Systems programmingOperating systemsC

An introduction to the course on advanced UNIX programming, covering the syllabus, expectations, and core UNIX concepts.

In this video lecture, we provide an introduction to the class CS631 "Advanced Programming in the UNIX Environment" and discuss the purpose of the class, the syllabus, student expectations, as well as available resources. Slides for this lecture: stevens.netmeister.org/631/01-introduction.pdf Course website: stevens.netmeister.org/631/ Note: The videos in this series were mostly created in 2020. A few things have changed since then. Specifically, consult the course website for updates regarding the assignments. These videos also predate the widespread use of LLMs and other AI tools. That's ok: their use in this class is strictly prohibited, because your goal is actually _learn_ something. See this page for details: stevens.netmeister.org/631/use-of-ai.html Outline: Introduction What this class is NOT This class in a nutshell Why are we doing this? How are we doing this? Grading policy Syllabus and homework

Why it's here

2 people recommend this

What people say. Highly recommended as a video companion course to the classic book Advanced Programming in the UNIX Environment.

u/thedoogsterin r/C_Programming • Recommends

On “Book after k&r for a curious beginner not familiar with low level systems?”

And this playlist of a course that uses it! link to this video

u/NostraDavidin r/C_Programming • Recommends

On “what does /2/ stand for?”

For those thinking "but how would I know!?", get APUE. That book basically goes over the full available C library, within the context of Unix. It's great. There's also the cs631apue channel that is based on APUE, if you prefer videos (though I'd recommend reading the book too).

u/NostraDavidin r/C_Programming • Recommends

On “Should I try to learn C for Systems?”

I have no idea whether it's a good career path, but knowing how Unix itself works is a boon for yourself. For example, I'm a Python Data Engineer. I take data from one source, drag it through an ETL process and save the output (and some intermediates). Now that I'm learning APUE (and a video series) I get a better understanding of `umask`, `file permissions` and why `cd` can't be an executable (it has to do with how Unix can change the current working directory of the current process, but not of a parent process). So either way, knowing how Unix works can be a boon in the long term and APUE is also a good way to get to know the library that comes with C. I won't lie: it _can_ be a slog a…

u/NostraDavidin r/C_Programming • Recommends

On “C, Linux and low level stuff”

>Advanced Programming in the UNIX Environment There's a related online course - CS631, which is quite excellent as a support for the book. It also uses NetBSD instead of Linux to give a "real" Unix Experience^TM (I think it's good to be at least introduced to a non-Linux OS even if you'll end up using Linux)

u/thedoogsterin r/C_Programming • Recommends

On “Linux Programming Interface or Advanced Programming in a Unix Environment? Which did you prefer to get into systems Programming?”

I'd pick APUE just for the course of videos that use it: [video Anyway, both books are better than "Advanced Unix Programming" (Marc Rochkind), which is padded out with irrelevant stuff about incompatible Unix systems. I quit reading that book when I realized that the manpages were a better resource.

u/NostraDavidin r/C_Programming • Recommends

On “Decided to learn C programming language before heading into C++, Suggest some resources”

Advanced Programming in the UNIX® Environment with the free [ cs631apue] course, so you can watch a video, read a bit, watch a video, read a bit, etc. Prereqs: * know some shell basics (cd, ls, find, vim or nano, rm, pwd, chmod, cp, cat, etc) * know some programming basics (variables, functions, for loops, returns, continues, importing a function from another file, etc) Why read this over other guides? Because it _also_ goes into the different libraries, how Unix (NetBSD, in this case) interacts with C, where you can find your C documentation (spoiler: it's via the `man` command, short for "manual") and how to navigate said documentation. This isn't an introduction into programming kin…