Recommendation for FreeBSD online school

Caliante said:
I don't know about that, but I can recommend you two very good books:

1. FreeBSD 6 Unleashed
2. Absolutely FreeBSD

(In that order as far as I am concerned).

Those two, combined with the online handbook on freebsd.org + this forum should get you somewhere (says I, as a noob myself :p).


Hey I have recently borrowed (the book is a bit too expensive for me to purchase... for now) Absolute FreeBSD 2nd Ed. and I feel it is a good book with lots of clear and easy to understand explanations. It is quite up-to-date (based on FreeBSD v7) too. And most importantly it has solved some of my problems with FreeBSD ;)

I use the handbook for the installation and getting things to work, and will turn to Absolute FreeBSD if I want a more elaborated explanation on certain topics. Hence maybe you will want to get hold of the book too and see if it can clear some of your doubts? :)
 
When I first inquired about FBSD in the mid 90's I was told "It's like windows... you wouldn't understand."

Well, at that point in time I had 0 use for any BSD. But as time went on it became appealing.

From having come across VERY generous people who 'guided' me along my path of learning I didn't learn much by way of free shells, free books (old copies), or even on-line reading at that time.

I tried to learn it and guess what I did? While installing as dual-boot with windows 98 I messed up my windows partition. Very discouraging as CD burners were very expensive and media prices were still ridiculous. So needless to say, I f'd up pretty bad. With no way to fix it.

Since then, I have learned quite a bit - the hard way. While I still don't know everything (who does right?) all I can tell you is my experience.

The end result of learning BSD was to:
1) Host my own web site (for 'scripts' I wrote for mIRC)
2) Run my own DNS to do rnds on the fly.
3) Provide e-mail services and shells free of charge to select individuals.
4) Provide free web hosting to select individuals.
5) Runs BSD as a desktop OS
6) Provide network shares compatible across the network
7) Lots of other things I can't think of at the moment (it's Friday!)

What I did:
1) Bought the FreeBSD Power Pak that came with 12 CDs and "The Complete FreeBSD Handbook) (AKA the bible).
2) Did a lot of reading (my fav. entry: "Then magic happens.")
3) Ask a lot of questions.

I agree with what others have said about taking "classes." You will be certified to administer a system, but you won't know how. I had 1 friend in particular who ended up choosing IT as his career and took all the crash course certifications. It's scary to me that he ended up configuring networks (even though they are windows based) when he didn't fully understand what he was doing. (As an aside, that friend took credit for my hard work when he was applying for work!)

As for what you want to do:

1) A small business (that's easy)
2) Lease out web space. That is easy, install apache, enable FTP, a little security detail and you're set. But that's not it, now you have to help people out who have no idea what they're doing, specifically in pointing their domain to you. Things to keep in mind: they need to restore mail they've "lost" (deleted), they messed up their website and need your help (backups), they have x issue with n language (php, perl etc).
3) So you want to make more money by installing more free software and handle the DNS yourself? Yikes. I've never met anyone who said learning Bind was "easy." So I won't lie to you and say that it is. If you want to use it at it's most basic setup you can do it without having to read a lot. But if you want to take advantage of what it can do, be prepared to be humble and ask for help when you can find what you need by reading. Also have a good way of updating your entries (search for updating conventions).

You mentioned security, historically FreeBSD has had a lot of, 'vulnerabilities' in the past. It depends on your needs really, if you're paranoid then move to OpenBSD and work backwards. If you want to put in a lot of elbow grease and LEARN how to make Fbsd secure then this is the OS for you.

You probably come across a lot of negative opinions because you're asking for help on something similar to "how do I build a house from scratch? I know how to use a saw and a power drill, but not a power saw." You can jump right in and fairly "easy" enough to set up what you want, but when you have customers to deal with who pay you money and you can't figure it out yourself, you're going to be in trouble.

What I recommend, is set everything up for yourself. Get a domain, website, maybe secure transactions (if your customers might need them) and see how that goes. Install a forum and a blog, common things people with sites do. If you feel like you're in over your head then quit. If you don't have a "that's too hard for me attitude" then keep at it and you will figure it out (right guys?).

Also, I recommend you learn how to do everything in console. Now to make my life easier for some things I use something similar to Webmin. But if I didn't know how to do things in console, I would have problems! Some examples I'm talking about:
You can use webmin for configuring apache, ftp and even users/groups.
In console you can write small scripts that can help you rotate logs, clean up the system and perform basic checks on a schedule (cron).

Worth mentioning again is Bind DNS. Not the easiest thing to learn in life. Also worth mentioning is sendmail. If you can't hang, don't even start. I recently had a problem with an install and it turned out to be a blocked port 25 on the ISP's side. But because of the errors it was giving it wasn't something I thought was the problem right away. So be prepared to bang your head on things for a while until it gets sorted out. Although I recommend asking for help, don't expect people to be able to help you out every time (for example, my authentication settings for samba 3 with window 7 clients - a windows 7 problem).

A note about me and my story: GhettoBSD = hand me down and outdated hardware. My network consisted of 3 FreeBSD servers and 2 windows machines. I had 33mhz intels that ran 66mhz on turbo and currently useless amounts of ram. I was in awe when I saw what such lowly hardware specs could accomplish when the latest and best was 133mhz. Since then I've upgraded and even run my 'server' on a intel d510 dualcore atom (for power saving efforts). And to this day I spread FreeBSD goodness under the name of GhettoBSD and even current have set up 2 servers at my clients location (they're windows based though they use linux-based devices and servers). Little by little they see what BSD can do and maybe even one day, replace "windows advanced servers."
 
jt202 said:
Ive been trying to learn FreeBSD on an off for years. I always run into the same brick wall, when I have questions and try to access different formats on the net, Like chat sites on IRC, I get high school kid crap and dont learn ANYthing.
This (how to ask questions the smart way) has been one of the best pieces of advice anywhere for me on how to get what you want answered in the FOSS world. Read it, internalize it.
I need to find an online school or college for FreeBSD. I've been searching with no luck so far. I was hopeing I could get some suggestions here.
Some awesome replies here already. Course vs DIY - you want to do something specific with Unix. So does everyone else. Expecting a generic course to cater to everyone's needs (especially your own) is not very realistic. Someone creating a course does not know what everyone needs to know. They do not have perfect market research to find what are the most common needs. They don't have perfect recall as to what were the hard parts of learning what they know. By the time the course is created, it will already be out of date.

It's a bit like taking an automotive repair course vs buying a Haynes manual for your car and learning how to do everything. I've never done the former, but I have done the latter. Now I can change the oil and oil filter, the coolant, the brake fluid, brake pads, etc. If I get stuck I type whatever it is I want to do into youtube, e.g. "brake fluid change". And the thing is, now I've started down that path I see the mistakes that "professional" mechanics make, who probably learned via courses. Spark plugs, oil filters overtightened, and some major screwups I've seen before - e.g. rags left behind the air filter that got sucked into a turbo, and more. Those are just the ones I've found. I shudder to think of the mistakes I don't find, or the short cuts taken that will ultimately cost me money.

It's not that I don't think courses are unimportant, otherwise I wouldn't have an engineering degree. But I think the best learning, particularly for actual systems rather than general principles, is DIY. I knew lots of other engineers in college. I would ask myself if I would hire them - do they look good on paper or do they live and breath their field of expertise? All my instant hires were good at various things by the time they got to college. They were all self-taught in something, be it fixing cars, running Linux themselves, whatever. Other people thought they were good too - some worked for the university running the Unix labs, and all were hired and are making good money now doing actual engineering.

DIY gives you something that courses don't, and that is resourcefulness. Someone who has taken a course on something Unix related will have a set of go-to cookie cutter ways of doing specific things. Once they do something out of the ordinary, they can get stuck. Someone who has taught themselves will just do what they did to learn what they already did. And the thing is, the internet has lowered the bar tremendously for DIY. It's dead simple these days.

How I do it
There is of course a lot of very good documentation available for free online or very little cost. It will be specific to your needs. Here is my rough algorithm for figuring out how I do what I want to do with FreeBSD (e.g. set up a soundcard). Note that at any time I discover new information that I know is crucial to what I want to do, or interesting, I start the algorithm again with those search terms, often opening up new tabs in firefox. Often I learn that the way I initially thought to do the problem is not a good solution at all, and this may happen multiple times along the way. Note that my algorithm is easily modified for anything, just replace the forums I search on with other application specific forums you have discovered.
  1. Google what it is I want to do. (Maybe someone has an excellent howto somewhere on some random blog or page.)
  2. Google site:freebsd.org and the terms I want (note that I use "file" tags because it comes out as a smiley otherwise.) Read the links that look interesting.
  3. Google site:daemonforums.org and the terms I want. Read the links that look interesting.
  4. Consult the handbook. This is often worth doing first, especially if it's something not cutting edge. But the first two paths will usually find it anyway.
  5. man pages. If you've come this far, there might be a driver or program related to what you want to do. e.g I've figured out that my wireless card requires the rum driver. e.g.
    $ man rum
    (hint, type "/" to search, type "n" to go to the next term.
  6. If I don't know the specific man page, apropos is your friend. It will give you a list of relevant man pages that you can then try with step 5. e.g.
    $ apropos sound
  7. Ask myself would a book have current information? Search amazon and read the reviews to find the best books on the topic I'm after, and if it's current enough. Is it in another book I have? e.g. I have a book on OpenBSD, and a book on "Building Internet Firewalls", maybe it's in there.
  8. Consider how soon I want the information. If it is not time critical, I might ask on the forum. People are more inclined to help if they know that their answer will help other people rather than be confined to irc log wasteland.
  9. At this stage, I usually decided that I can't wait that long and so I try some more iterations of my algorithm from the beginning, with new search terms. Or actually reading something from the handbook or the man page. For example, to learn more about ZFS I printed out the man pages for zpool and zfs. Often I find I solve my own problem if I actually take the time to READ what I have googled.
  10. Ask on IRC, in the manner of the very first link I posted. Think of how you can give back to the community though - maybe write a howto or something, so that some benefit comes from their help, and if you are serious, phrase it that way. And don't expect very much in the way of a response, not more than a line or two. Take what you have given, and apply it through the steps above (e.g. use it as the search terms).
  11. And at the end - DOCUMENT WHAT YOU FOUND. What is the point of going through a process that may take days, weeks or months, only to forget it all again? And consider giving that documentation back to the community. There is a self-interest aspect here too - every time you give back quality stuff (code, documentation, newbie help) to the community, you build your reputation. That's like depositing money in a bank that you can later withdraw from in the form of help when you need it. Nothing is guaranteed of course, but it certainly doesn't hurt.

Some other things - don't bite off more than you can chew. Running FreeBSD straight after windows would have been too hard for me. I started off with Ubuntu after trying various Linuxes and BSD. To do it I ran it as my primary OS, ditching Windows completely. Know which apps you are going to be running first though, otherwise the culture shock will be huge. Then migrate the OS.

Good luck.
 
Ideally you're going to want to do a bit of DIY and formal classwork of some sort. But the times when I've learned the most about FreeBSD was from making mistakes and having to learn how to fix it. Coursework is great in that they can guide you through the basics, but systems administration as well as related IT stuff is as much an art as it is a science. There might be, and usually is, several ways of accomplishing a task, but one way which is significantly less of a pain than the others.

The OP might consider looking at http://www.oreillyschool.com, it's completely online and mostly practical work. It hasn't got anything specifically for FreeBSD, but some of the topics like Perl are definitely useful.
 
I don't know of anything other than what's been discussed here (some great books have been mentioned), but wanted to throw in my experience.

I went to college for 6 years and have 2 degrees in computers from it. I had exactly 1 class in Linux, and that was one the teacher let me sit in on during my final semester because they'd just created the course. (Linux had been hugely popular for years at this point; schools generally lag behind quite badly in the technology they teach from my experience.) After the linux course, I can honestly say that I still had no clue what I was doing. Of course, I didn't know that I didn't know what I was doing, which is worse than knowing that you don't know what you're doing IMO.

I've learned FAR more reading on my own, playing with systems, trying to break into my own systems after I have them built, investigating problems as they come up, etc than I did throughout all my years of college. If you know how to learn and are willing to read/struggle through things, this is the way to go. Go pick up an old box somewhere, install BSD, configure it, destroy it when you screw up, then repeat. ;) I can't tell you how many times I nuked one or more of my computers by doing stupid crap, but I learned from each. I'm far from an expert at BSD, but I know how to learn and am willing to put the time and effort into it. I installed and have run a mail server for my company for the past 3.5 years; what I've learned in the process has been invaluable.

With your free time being so restricted, I honestly don't know if this is realistic. It took me over 3 months to get BSD installed and configured to a point I was comfortable putting it in place for our mail server... every time I thought it was ready, I'd find something else, or something would act strange, or I'd find a way to break in, or I'd read something and figure out a way to tweak the system for better performance or to be more stable or to be more secure or to monitor itself more completely or... This was working a 40-hour/week job, doing a few hours of other stuff (fixing PCs, repairing printers, etc) but otherwise strictly dedicated to setting up, configuring, and testing BSD on the server. After doing this and running it for ~6 months, I set up/configured BSD on my home server in a day and a half, and it only took that long because the machine is old/slow (low power) and took a long time to compile the ports I needed.
 
Ruler2112 said:
Go pick up an old box somewhere, install BSD, configure it, destroy it when you screw up, then repeat. ;)
This is key. You need more than one machine, and more than one HDD. You need one machine to google stuff with, download ISOs and whatever else. You need the other machine to experiment with, and if it gets hosed, it gets hosed. An extra HDD is nice - you can just switch out the HDD so that you can keep one install intact while you try something with the other HDD. Also mandatory are multiple USB sticks, for transferring files, booting, storing config files, etc.

If you don't have a machine or two to experiment with, you won't learn because you will be too scared to break something.
With your free time being so restricted, I honestly don't know if this is realistic. It took me over 3 months to get BSD installed and configured to a point I was comfortable putting it in place for our mail server...
I'm glad you said this. It has taken me several months of continuous work to set my machine up, and I'm still going. I had no idea, really. Now I don't feel so bad. It's funny that several months of human labor can be reduced to a few lines of code or config, that can run in a few minutes.

You might pay the equivalent amount of money equal to your time spent configuring your system to buy a commercial solution... but you won't build the knowledge or the confidence that brings, you need to trust someone rather than knowing, and you won't end up with a solution tailored to exactly what you want.

Also: Don't forget the time spent to spec out your machine and purchase it, if you need to. You won't get that done in a day, or a week even. Then you will be waiting for parts.
 
Back
Top