Reputation: 69
I was just thrust into Linux programming (Red Hat) after several years of C++ on Win32. So I am not looking for the basics of programming. Rather I am looking to get up to speed with things unique to the Linux programming world, such as packages, etc. In other words, I need to know everything in https://www.redhat.com/courses/rhd251_red_hat_linux_programming/details/ without spending 3K. Any ideas of how I can acquire that knowledge quickly (and relatively cheaply)?
Update: The things that I am used to doing on Windows like building .exe and dlls using VC++, creating install scripts etc are just done differently on Linux. They use things like yum, make and make install, etc. Things like dependency walker that I take for granted in the windows world constantly send me to google while doing linux. Is there a 'set' of new skills somewhere that I can browse or is this more of a learn as you go?
The primary problem is this: As a very experienced programmer in Windows,I am having to ask simple questions like what's the difference between usr\bin and usr\local\bin and I would like to be prepared.
Upvotes: 5
Views: 1394
Reputation: 79901
Edited because I had to leave a meeting when I originally submitted this, but wanted to complete the information
Half of that material is learning about development in a Unix-like environment, and for that, I'd recommend a book since it's tougher to filter out useful information from the start.
I'd urge you to go to a bookstore and browse through these books:
Unix/Linux System Administration - This book covers the more system administrator side of stuff, like directory structure of most Unix and Linux file systems (Linux distributions are more diverse than their Unix-named counterparts in how they might structure their file system)
Other information accessible online:
GCC Online Manual - the comprehensive GNU GCC documentation
winsock
, this should be mostly familiar to you.make
- Wikipedia article that will have links to the various make
documentation out thereAdditionally, you will want to learn about ldd
, which is like dependency walker in Windows. It lists a target binary's dependencies, if it has any.
And for Debugging, check out this StackOverflow thread which talks about a well written GDB tutorial and also links to an IBM guide.
Happy reading.
Upvotes: 7
Reputation: 1952
A good source is the Advanced Linux Programming book.
It's free and covers a lot of you are looking for
Upvotes: 0
Reputation: 2317
For POSIX and such I can recommend Advanced Programming in the UNIX Environment and having a bookmark to The single UNIX Specification.
For GCC/GDB and those tools I'm afraid I can't give you any good recommendation.
Hope that helps anyway.
Edit: Duck was slightly faster.
Upvotes: 0
Reputation: 99
that is quite a large and diverse topic list. for the programming part i think the C++ library should be portable, things that are not should be documented. for the linux-admin part, i suggest you try to use linux as your main desktop system, as many notions are absorbed via day to day work, there is no magic tutorial
Upvotes: 1
Reputation: 17132
The single most important thing you'll need is a 99 cent notebook titled "Sys Admin" kept next to your computer. Keep track of everything you install/update including directory location, date, and method.
Upvotes: 0
Reputation: 218
Thats a bit broad.
What kind of programs are you going to be doing?
If you stick to standard c++ you're good to go... and just man everything else.
Upvotes: 0