Ronald P Guilmet via plug on 26 Sep 2023 09:37:19 -0700


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] Places to learn Linux and C around Philadelphia?


Hello!  I'm new to the area, and I'm looking for places & resources that'll help me learn Linux and C (ideally together).  I've looked at all of the local community colleges, and all of the 4 year colleges in the area, and none of them have strong CS/CE programs that offer in-depth courses on C.  

Ideally, I'd like to learn in person, or at least with a local group, if possible.  I have some of a programming background, and I am in the process of learning how to work in Linux.  Right now, I'm limping along with some books from the library, but I could really use some face-to-face help with the more complicated concepts.
 
Thanks, Frank

Hi Frank,

You mention learning Linux and C together. It's not clear if you are looking to write software for Linux, Device drivers, or Kernel development, etc. In any case, you are looking at 2 or 4 year colleges. I can tell you that even a 4 year degree in any field is only a basic level. A basic of core classes along with a basic understanding of your actual major. That said, you will most likely not get into any specifics until even higher education. I know some people don't like bootcamps, but they may be helpful since they are more targeted.

You could try to start a meetup for this topic, as you're looking for face to face. You'd be surprised, the "Build it, they will come," actually works in most cases. I relocated to outside of the Boston area, so I don't know of the local scene anymore. Find a Panera or someplace, and let people know. I'm sure a handful of people would show up. I'm not sure what the "more complicated concepts" are that you need help with. There are members of PLUG that do have in-depth C knowledge. I'm sure, if you had a specific question about a concept, someone could help.

You say you are trying to learn how to work in Linux, so we can assume you have Linux installed or have access to Linux. You could also try to put together a "talk or presentation" for PLUG. PLUG is always looking for presentations. If you can teach a topic, you have a good understanding of the material. I've given my fair share, and it forces you to understand it better, and if you don't understand something, someone in attendance may have feedback. 

Writing C in Linux it is helpful to understand file descriptors etc, which you can gain through BASH programming. I know you are already working with books, however, I will post a few links to pdf books that may help. 

This book may be helpful in understanding Linux Programming. It will have you create a program in BASH, then taking that knowledge you will rewrite the program in C.

https://doc.lagout.org/operating%20system%20/linux/Beginning%20Linux%20Programming%2C%204%20Ed.pdf

Another book for Device Driver is here

https://lwn.net/Kernel/LDD3/

Another book is the Dennis Ritchie book

https://colorcomputerarchive.com/repo/Documents/Books/The%20C%20Programming%20Language%20(Kernighan%20Ritchie).pdf

Ron



On Tue, Sep 26, 2023 at 10:49 AM 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


--

Ron Guilmet


___________________________________________________________________________
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