# Order Of Books



## Majorix (Oct 21, 2012)

I am not attending school this year, so lots of free time I have. I was studying CSE, and am planning to continue next year.

In the meantime, I thought I would take the first steps in becoming a UNIX sysadmin.

I have decided to read (at least) 3 books, each in a different subject. Let me list them, in the order I am planning to read them:

Absolute FreeBSD, 2nd Edition
Pro Bash Scripting
Beginning Ruby - From Novice to Professional

Do you think the order is correct? Any other books or webpages you can recommend?


----------



## lockfile (Oct 22, 2012)

Any order of book is correct, as long as you got skills in the end. It takes plenty to be a system admin these days. The market is flooded in certain places, and many orgs use their own guys. I would just look for a regular kid job like cashier, restaurant, etc, and code on the side. Don't order those books, you can get most computer books for free as free pdf downloads or from many free software project websites. FSF and GNU have docs on all the UNIX tools like grep, sed, awk, sh, bash, etc. You're a student (like me) and should save while you can.

I would start with c and bash/sh together, perl, c++, and then use some APIs for graphics and such. But still try to follow your own goals, don't let me discourage you!


----------



## UNIXgod (Oct 22, 2012)

Why pro bash? Look at The UNIX Programming Environment by K&P. Other shell books worth looking at are the "Classic" and "Portable".

Also if you get a corporate gig after school you will find that the ones running non-free OSes require skill in ksh... not bash.

Absolute FreeBSD is a good book. The bible for administration is/was The UNIX System Administrators Handbook. The purple (3rd?) edition covers FreeBSD.

I like the Flanagen/Matsumoto Ruby Programming Language book.  Yukihiro Matsumoto is the Ruby language creator. It makes reference to an attempt to live up to the gold standard in technical writing like the K&R C Programming Language book.

Most people read K&R C as their first introduction to programming C on a UNIX machine.

I read MetaProgramming Ruby which was somewhat of an eye opener. For the most part it's stuff that may be learned from books like SICP( https://mitpress.mit.edu/sicp/full-text/book/book.html ) with scheme( but with ruby).

Ruby is a multi-paradigmal language. For the most part it's three major (and different paradigms).

First and foremost the most obvious is that it is a complete Object-Oriented Language. This part is based on smalltalk (though it's often reference is python for marketing purposes)

Secondly it's a "shell programming" language as it has access to system level and UNIX text processing as primitives. Though this is referenced as perl -- this is actually for the most part awk and shell. ruby (like perl) has regular expressions built in just like (awk/sed/grep/ed). This makes ruby an object-oriented shell programming language.

The last part of ruby is that it is also a functional language with is influenced by LISP.

I agree with the above poster that most of the information is available online. Though you may want to pick up some of the classics as they are always good to refer to and never really go out of date.

Look out for those ruby books. It's a hot topic and everyone is trying to cash in on the educational area of it. There are very few books on ruby that contain the substance to be much more than a magazine article... Have you noticed that most of the so called online tutorials for ruby or even rails slips in very little information and suggests a book to buy. SEO is a big market. You may have to dig to find the proper resources.

Of course you can always ask questions here in this forum.


----------



## gqgunhed (Oct 23, 2012)

Hi Majorix,

I think the best way to learn all the skills is practice. So try to use your preferred OS as much as possible.
Go the "hard way" and try to solve all the problems by reading man pages, using IRC, forums, etc. as lockfile suggested. Books are ok, but you need some playground.

Try to accomplish all your IT task with FreeBSD like networking, writing, coding, surfing, etc.

Experience is key. If you can afford try to use some virtual machines and/or jails to play around with other things like e.g. mail-servers, webservers and so on.

Use it on a daily basis ;-)


----------

