Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
[dupe] Beej's Guide to C Programming (beej.us)
115 points by nadavision on March 29, 2023 | hide | past | favorite | 36 comments


This was discussed here a month ago: https://news.ycombinator.com/item?id=34946811


Yup - almost exactly the same case as https://news.ycombinator.com/item?id=35343696 - we put it in the second-chance pool without realizing it was a dupe. Sorry!


For those who might not be familiar with Beej, this is not his first or only guide. They're all excellent. There's a link near the top of the page: "Click here for other Guides"

Also, see previous posts here on HN https://news.ycombinator.com/from?site=beej.us


Beej's Guide to Network Programming was how I fumbled my way into socket programming AND C. I can't remember if I first encountered it in the late 90's or early 2000's. It's funny to think about that world now. Unless you had a shell account or ran Linux or some sort of Unix you had to _pay_ (or... not pay) to get access to a C compiler.

If you were lucky you'd get access to some FTP servers via IRC that might have some ZIP files full of good text docs, or wander upon some hacking clan's site that had good tutorials or info. But more likely you'd try to cobble it all together from as many sources as you could find.

I'm really glad we're in a time, and for the most part a community, that values sharing information free and wide, and supporting FOSS tools that put all this knowledge within reach.


Somewhere in the depths of a comms room at a Very Very Big Company, there's a very very old laptop running a very very old install of Slackware, which does one job - run a server that Radio-over-IP boxes connect to, so they can have their G.711 streams picked apart, some DSP applied to add or remove certain high frequency tones and generally clean up the audio, and be fired back out into another interface.

That was all made possible by Beej's Guide to Network Programming and the RBJ Biquad Cookbook, mostly.

Just a temporary bodge until the vendor got their shit together. I doubt it'll ever be replaced.


It was some random socket program I found on an FTP server that got me going on writing this whole thing. The sockets API was pretty confusing in terms of the sequence of what to call when and how, but this sample program spelled it out pretty simply. (So thank you, anonymous author!)

Then it was just lucky timing with the web picking up around then and the fact that we had just gotten NCSA Mosaic installed on the computers at school. :)

Edit: Pretty sure the first version of the guide was ~1995.


Never expected I'd get a reply from Beej themself.

Thank you for your contribution. Your work enabled me to send some bytes from one place on the internet to another, which ignited a passion and a career for me. Thanks again.

Also, thanks for making me wonder where Chico State was and what the pizza was like.


>Unless you had a shell account or ran Linux or some sort of Unix you had to _pay_ (or... not pay) to get access to a C compiler.

That was actually how I got my introduction to nix. I was taking a c++ class in highschool, and I was mad that I couldn't compile my homework without paying for borland. Someone pointed me to g++, and I actually got a shell account with the university of colorado (it's wild to me they would give those away for free!). I kept pestering the admins about installing this or that, and they told me 'hey kid, why don't you install linux on your own* machine and then you can install whatever you like.

So I went and installed redhat on an old computer. Free compilers for basically every language in existence, and an entire OS worth of source code, heaven!

The rest as they say, is history.


your timeline is a bit off there, but yes


His timeline sounds exactly right to me, I basically did the same thing.

Mid-late 90s I used Beej's network programming guide to write an IRC client.


However, by late 90s you weren't paying for a C compiler, you had Cygwin, MinGW, or DJGPP (OK, probably no sockets in that case).


Screenshot of GCC 10.2 compiling its own source code Original author(s) Richard Stallman Developer(s) GNU Project Initial release March 22, 1987; 36 years ago


My past undergraduate self will always be thankful to Beej for the network socket programming guide.


That was the first programming guide I ever read.


Are there any modern c tutorials that teach and guide the learner through practical programs. For instance a real world backend service ?


I’ve been learning with beej’s guide and exercism.il for the last few weeks and it’s very effective paired with the (free!) mentoring there and asking random questions on libera.chat as well.


Seconding. This would be great to see.



In the time section it has:

    .tm_sec=04,    // seconds after the minute -- [0, 60]
Since a leading zero means octal I wouldn't suggest writing a number this way. Of course, in this case octal 4 == decimal 4.


Good catch... I warn people of this very problem elsewhere in the guide. :)

Lucky I didn't go with nine...


I learned about this when I was a teenager doing the Vortex game from OverTheWire. I ended up learning and falling in love with C and networking in general.


Dupe. Discussed last month, though the link was a bit different: https://news.ycombinator.com/item?id=34946811


See also Wikibooks' "C Programming": https://en.wikibooks.org/wiki/C_Programming


I worked with Beej and Robot Stampede back when he helped port Aviary's image editor tools from Flash to HTML5. Beej, if you're reading this, I hope you're doing great!


Blast from the past! I'm doing A-OK. Hope the same for you!


How often is this going to be reposted?


I wouldn't even mind it, but what's weird is that there are active and interesting threads flagged and penalized with "dupe" flag, because they were posted 49 days ago also... but not Beej's links.


Every day, there's a new "today's 100,000".


Today's 10,000 - https://xkcd.com/1053/

We can be pedantic...this is HN... :-)


Yeah. I was too lazy to look it up...


My first time seeing it. Not sure why it bothers you so much.


It's one of those eternal reposts. I guess I'm ok with it because it's of quality.


Yes


heh yeah its probably time for something like the "HN Hall Of Fame" where this stuff gets enshrined, and from that time forward scrubbed from the top page


Never heard of it until last month, so I’m glad it keeps getting reposted.


Why do you ask? Does it bother you or you want to signal how astute about HN you are?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: