Frank via plug on 27 Sep 2023 17:42:05 -0700 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: [PLUG] Places to learn Linux and C around Philadelphia? |
Thanks for all of the advice and suggestions!
To clarify a bit, I'm interesting in learning C and Linux
together so I can work on open source Linux applications (or Linux
itself). So, I'm trying to learn both the gnarly details of C,
but also how Linux is structured so I can program for it and in it
(ie: I need to understand the different standard libraries,
windowing systems, file systems, drivers, etc.). And, since C and
Linux are so intertwined, it made sense to tackle both at the same
time.
So far I've gone through this course:
https://www.edx.org/professional-certificate/dartmouth-imtx-c-programming-with-linux
(which was awesome), but I need something much more substantial to
go from "Hello World" to making pull requests on real projects.
Right now, I'm muddling through with a few books, and I'm trying
to get an existing open source project (xed) compiled locally
(Mint Cinnamon) so I can maybe fix a bug or two, but I'm going to
keep looking for local resources where I could take an actual
class and interact with some people much smarter than myself. If
I run into anything, I'll be sure to post it here.
I look forward to meeting some of y'all in the future!
Thanks, Frank
Links mentioned for K&R and the hacking book (Amazon, find on your own):
- K&R although there are some pdf's floating around.
- Hacking: The Art of Exploitation
-Will C
On Tue, Sep 26, 2023 at 12:06 PM Will <staticphantom@gmail.com> wrote:
So adding to Rich's great suggestions. Languages to learn are definitely C, Zig, or Rust. All have pro's and cons within those spaces.
As for C material, there are various free versions of the original C (and ANSI C) programming book from Kerrigan and Richie (look up C book K&R). This book in physical or free digital form has a cult like following.
If you want the second best and the best non-comsci source for learning C I have ever found. Look up the book Hacking: The Art of Exploitation. The one chapter and many refer nces to C in that book is quite possibly the C programming condensed resource I have ever seen and the defacto start to anyone learning the concepts of secure coding (and verified with some fizzing exercises). You will learn more about computers in that book than any other book.
As for "get an old junker computer". I counter with getting an ARM based computer. The raspberry pi is great to get started and get the basics going. More importantly, the installation is easier and more opinionated that desktops that gets you setup the fastest and easiest way to get into Linux. Yeah, chrome maybe a problem but it is more than capable and honestly the newer arm boards out class many high end computers from before 2010 anyway while taking up less space and power.
Regardless, a VM of Linux is not nearly as nice as just getting fully emersed in Linux. As Rich mentioned, systemd + knowing how to search "The Pacman Rosetta in the Arch wiki" will help you more with learning Linux and different distributions of Linux than other material in a single location.
-Will C
On Tue, Sep 26, 2023, 10:49 Rich Freeman via plug <plug@lists.phillylinux.org> wrote:
On Tue, Sep 26, 2023 at 7:04 AM Casey Bralla via plug
<plug@lists.phillylinux.org> wrote:
>
> I agree that you should get a old clunker and load/mess-up/re-load/mess-up/and re-load several times. I also intensely dislike systemd systems, but you'll probably need to become familiar with it sometime.
The few hours it takes to grok systemd will probably get you far more
bang for the buck than the years it would take to really master C. It
doesn't take long to master systemd and it is basically something you
have to understand to get paid to administer just about any linux
system today. If it gets replaced at some point it will almost
certainly be by something that is even further from the previous
generation of service managers.
At this point I'd probably also be looking at something like Rust for
systems programming as it seems to be slowly replacing C, though I'm
sure that C will be around for decades much like COBOL still is.
I'd suggest that playing around in containers or VMs is going to be a
more efficient use of time than bare metal. You can take a snapshot
and reset it every time you mess something up - far more efficiently
than pulling out a USB drive to reimage/restore/etc. That said, being
able to use a rescue disk is also a valuable skill and I would make
sure that you're able to do it if you want to admin systems.
We're kinda conflating a few topics though. You don't have to know
much C to admin a linux system, and you don't need to know much about
linux/systemd/etc beyond the system calls/etc to write C. I'm not
sure which was your intended focus - you asked about C and we're kinda
assuming you want to be a sysadmin. Of course, knowing the basics is
valuable regardless. If your focus is on the software side then
really all you need to know is how to stick your code in a docker
container and run it, and if it blows up it won't hurt anything.
--
Rich
___________________________________________________________________________
Philadelphia Linux Users Group -- http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug
___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug
___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug