I worked through this book except for the last chapter about the unix stuff because that's probably obsolete and I...

I worked through this book except for the last chapter about the unix stuff because that's probably obsolete and I should learn that stuff from a more recent source.


what next?

Attached: Cprogram.png (792x1023, 107K)

Other urls found in this thread:

cs.cmu.edu/~15122/schedule.shtml
cs.cmu.edu/~213/schedule.html
matt.sh/howto-c
cert.org/secure-coding/publications/books/cert-c-secure-coding-standard.cfm?
cs.cmu.edu/~213/
csapp.cs.cmu.edu/3e/labs.html
twitter.com/NSFWRedditVideo

Learn about algorithms and data structures. Do some projects.

Learn about OS design and systems programming.

C is annoying and shit-tier for 99% of programming uses but it completely fucking dabs on everything else for low-level work that interacts directly with the kernel.

This too.

C forcing heavy use of pointers and manual memory management rather tha high-level OOP abstractions means you learn why the fundamental data structures such as linked lists and trees and all the algorithms that use them work the way they do.

Learn OpenGL and build a Doom clone.

Attached: chex-quest_5.png (640x400, 23K)

if you are serious
> Programming in C by Stephen G. Kochan
>Computer Systems: A Programmer's Perspective by Randal E. Bryant and David R. O'Hallaron

Practice of Programming, it's also by the same author.

>but it completely fucking dabs on everything else

I mean does it really ?

Personally I have never used Swift, Rust, Go, Nim,or D. I always just assumed C is still best for system programming.

this desu, kinda fun
i mean not really, in my experience it was like putting my dick in a pencil sharpener compared to relatively easy task of coding games in C++ and SFML (tried to do a wolf3d clone with C and SDL and i didnt get anywhere yet) but its intereting

Yes, Go has garbage collection and other shit and weaker libraries than C and C++
I'm not a mac cuck but I'm assuming similar story for Swift
Rust has essentially the same issues C++ has over C afaik
Idk shit about Nim or D, and afaik they both also lack the libraries and support that C has.
I mean it might not "dab" on them, but it is definitely superior in performance in almost every way.

king.2008 - C Programming. A Modern Approach (2nd ed.)
klemens.2014 - 21st Century C (2nd ed.)

Attached: gir_head.gif (500x375, 640K)

>it dabs on everything else

Attached: 1541575239971.jpg (1920x1080, 88K)

Rust is as fast as C and has safe memory access+build in thread safety. The main problem C++ has is it's so bloated that even industry professionals can't keep up, how does Rust have that when it can be contained in a single book much like C can? Rust is the future.

>RUST

Attached: soy1.jpg (400x400, 50K)

This so much. I wasted so much time working on language-specific programming textbooks to make sure I knew all of a language's features before trying to program actual useful stuff. Fuck that. Learn the basics of the fundamentals (types, control flow, loops, arrays, functions, pointers for C) and then learn the generic data structures + algorithms and try to implement them in projects of your chosen language. You will progress 100x quicker than working through problems sets of another 'Learn Language X' textbook.

>I worked through this book
no, you don't
lie is bad, user

Attached: 1518002485283.gif (388x268, 2M)

====================================================================

Step 1: Read K&R, realize the style of declarations used in it won't be used today but it still is the definitive resource on how to read a declaration/bracket order operations ect.

Step 2: Read these lecture notes, slides/additional resources cs.cmu.edu/~15122/schedule.shtml

Step 3: Watch these lectures, read the course book (click on 'old lectures') cs.cmu.edu/~213/schedule.html

Step 4: Read this modern C guide matt.sh/howto-c

Final step: Read this and use for reference cert.org/secure-coding/publications/books/cert-c-secure-coding-standard.cfm?

That's all you need. K&R will teach you what is undefined behavior. 15-122 will teach you to write safe programs and how to analyze existing programs. 15-213 will teach you what C looks like at the assembly level, stack frames, two's complement representation, floating point ect. That 'How to C in 2016' guide will teach you how modern C is written to avoid classic C problems like throwing around char's and ints. The CERT guide is a good desktop book to have around to make sure the shit you are writing cannot under any circumstances lead to undefined behavior. Whatever project you decide to contribute to after doing all this to obtain base competence in modern C programming, they will have a contributor's style guide which you must read like the kernel.org style guide or OpenBSD man style

====================================================================

Attached: dmr.jpg (660x480, 70K)

>it completely fucking dabs on everything else for low-level work that interacts directly with the kernel.
Sorry, Rust exists.
Wolf has already been ported to SDL by a man much more better than yOU!!!

This is the official unofficial next logical step after K&R's C book, just so you know.

Attached: Screen Shot 2019-03-13 at 4.15.19 PM.png (562x726, 463K)

>what next?
terry a davis streams before The Great Journey

Rust is not as fast as C. That is mathematically impossible.

Tfw math too weak to learn algorithms and data structures
What do?

Attached: 1548583505024.jpg (250x190, 8K)

I used that book my pre-junior (3/5) year. MIPS, rite?

learn on computer organization, memory hierarchy and superscalar CPU architecture
realize that C/C++/Rust/...'s performance isn't magic and that you still need to design your software, structures and data flow for it
learn on compilers, look at llvm
realize C is fucking horrible and even brain dead monkey could hack a better language around llvm backend in a week
lean on OS design, 3rd gen microkernels
get annoyed by unix
learn on meditation to handle all the saltyness emerged from new knowledge
???
profit

Get some programming socks.

I've read this (3rd edition) and oh boy, mixed feelings

(1st chapter is overview of all topics)
2nd is on data representation - two's complement, floating points, arithmetic, bit operations and bit tricks. I knew most of this already. I was horrified to see that authors promote to check for overflow on signed numbers by using the result of the arithmetic expression yet at the same time warn that the result is undefined. I get such mistake from slower student, not from teacher.
3rd is on assembly, registers, stack, call conventions, data types in memory. good chapter
4th was implementing the Y86-64 instruction set processor in HCL. I was not interested and skipped it. Years later, I think I'll go back to it.
5th was on optimizing against branch prediction, pipelining. very good chapter, learned a lot.
6th is similar. focuses on memory hirarchy and caching. One criticism would be that authors talks about measuring, but provide zero hints on how to measure.
7th is on compiler toolchain. explains ELF object files, symbols, relocation, static and dynamic linking, PIC. overall useful
8th on exceptional control flow, interrupts, syscalls, faults, OS processes, virtual memory, context switching, signals. slightly convoluted but handy. From now on, the book is like every unix/OS intro book but more poorly written.
9th more on virtual memory, addressing and some memory management, allocation and GC. talks more on dynamic linking.
10th is on system I/O, files, pipes.
11th on unix networking. networking in C gives everyone a nightmare.
12th teaches concurrency patterns from 80s with pthreads.

I highly recommend the labs and lectures from cs.cmu.edu/~213/ course as supplemental material and
csapp.cs.cmu.edu/3e/labs.html labs were bretty good.
the book is constructed as a course - half has a good structure and knows that it wants to focus on, other half is a filler because uni needs to teach these things but it's not enough for separate course.

Attached: 1550229369045.jpg (892x814, 269K)

this :3

im reading the second edition currently as a hobbyist programmer.
the biggest hurdle for me is when he starts explaining relatively straightforward concepts with math at which point i cant track of what he is trying to say and im forced to piece something together.
but i like the exercises a lot.

it blew my mind when I realized C is just FUNCTIONS AND VARIABLES

more like pointers to functions and variables.

a pointer is a variable that contains a variable's address

that changes nothing desu

More like pointers to functio-

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASegmentation fault. Core dumped.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0x90 0x90 0x90 0x90 0x90 0x90 0x90 0x90
[root] $

Get better at math, nigger. Chinks aren't that much better at math if at all, they're just drilled to practice it until they finally get it.

"C A modern approach" is a much superior book,but anyways I'm now reading Introduction to Algorithms (Cormen) and The Linux programming Interface
The latter is a very good book if you want to keep expanding your C knowledge and Linux knowledge