Tell your story, help others

Everyone was once a newbie. It doesn’t matter who you are, at one time
you knew nothing about FreeBSD. For that matter, the same can be said about
every topic you care to mention. In fact, there was a time you didn’t know
much more than how to eat, sleep, and get rid of what you just ate.
That was your life. Most likely you have moved on from that.

Everyone learns as they go along. Life is a process of constant learning.
This process begins slowly and rapidly progresses. Much as technology
prompts new technology, new knowledge allows you to learn more. One cannot
learn quantum physics without learning basic mathematics.
The cliche “it’s like riding a bicycle” refers to once you learn something
you don’t forget it. Yet it is a fairly long path from being a
new-born to riding a bicycle. There are many tasks to be mastered before
you can accomplish that amazing feat. Some of you will sneer and say that
anyone can ride a bike. Sure. But that anyone must first learn balance, motor
skills, and the complex coordination required to ride a bike. Just because
you and everyone you know can change a shell and reboot into single user
mode does not make it a simple task. These examples are relatively simple
and mundane tasks when compared to others, yet they require specific
unintuitive and non-instinctual knowledge.

I recall a discussion I had with someone who claimed it was easy to tap
a phone. I claimed it was not easy and required specialized knowledge.
Yes, it’s easy ONCE you know how, but getting there is not. Claims
to the contrary ignore the premise that you once knew nothing.

Confidence

One of the biggest hurdles along the path to increased education is the
confidence and base education factor. Once a newbie gains confidence and learns
new skills, they build upon that
foundation to move to bigger things.

Here is a common example. You
probably use portupgrade. You know it’s
a great tool and easy to use. However, before using portupgrade, a newbie
needs to first learn the the ports tree basics and
how to use cvsup to get the latest ports. They need to know that the ports
tree consists of just skeletons which allow the system to download,
patch, compile, and install the application, including any dependencies.
Even more important, they need to learn how to obtain the ports tree
in the first place, either
from a CD or from the Internet. In addition, they need to learn how to
obtain and install cvsup. These are all prerequisites to learning how to
use portupgrade. Once they have that skill under their belt, they can move
on to more complex tasks such as using portupgrade to get the latest mod_php4
and ensure that the dependencies are also upgraded.
Perhaps to some of you, installing and configuring Apache
is pretty easy, but it wasn’t the first time you did it.

If you haven’t figured it out yet, I’m in the midst of
yet-another-article-on-advocacy. The main reason this website exists
is to provide practical examples that allow both newbies and non-newbies
to easily accomplish a complex task. If you disagree that some tasks are
complex, you are forgetting what was said in the previous paragraph and
are denying that complex is a relative term.

If you like FreeBSD and would like to see others using it, then there are
many very simple things you can do to help others. I have spoken of this
before, but it’s good to repeat this stuff from time to time.

Simple things you can do to help

Be polite. When someone asks you a question about FreeBSD, don’t ridicule
them. This type of response seems to be innate with some people. If you
hang around any IRC channel long enough, you’ll see the type of person I
mean. They are able to provide help but prefer to score points with their
buddies rather than actually help the person asking the question.

Remember your roots. You were a newbie. You didn’t know as much as you
know now. Don’t forget that. Many do. They often make poor teachers.
Your goal is to be a good teacher.

Analyze the problem. If someone asks a question, be postive you know what the
problem actually is. Always seek out the base problem they are trying to solve
instead of taking their question at face value. People often have a hard
time phrasing a good question. There is a reference about that which makes
for good reading, but I don’t have it to hand just now. No doubt someone
will post it in the article comments.

The man pages are not for novices. Contrary to popular advice, man pages
are not always a good resource for learning about something new. They
are good references when you already know what you are doing. There are
notable exceptions to this rule. For example, ppp has a good man page
when it comes to setting up your modem.

Help others. Not everyone can code. But anyone can help. You may
not think you can help, but you can. Start by reading
a previous article on advocacy.

Share your experiences. I urge you to write about your experiences
in the Success Stories section of this website.
For example, you can talk about your first install, how it went, how
it failed, and how far you have come since then. Perhaps talk about
your skill level then compared to now. How long did it take for certain
tasks? Such stories can demonstrate to newbies that others with similar skill
levels have gone before them.

Helpers wanted!

If you live in the Ottawa area, I want you. Your help is needed. Even if you live in
Kingston, Montreal, Toronto, New York, or anywhere within a few hours drive, come. I
need your help.

That’s it. Oh, and if you know something about FreeBSD, NetBSD, OpenBSD, or any other BSD, that’s a bonus.
And yes, those of you that use Linux, I know you’re reading this. You are especially encouraged to come along.

Please email me now at “dan at langille in the org domain”. You’ll have a fun time. Thanks.

It’s a cliche but…

You learned to walk before you learned to run. Remember that.
Many teachers forget what it was like to be a pupil. Learn how
to learn. Remember what it was like to learn new things. That’s
part of the key to becoming a good teacher.

Contribute what you can. It does not take much time and it is easier
than you think. And never forget that you were a newbie.

My BSD world begain on 12/16/2003. I’m coming from the other side of the tech planet. I’ve been a windows admin for over 5 years + with a hobby of running an website dedicated the Active Server Pages, ASP.NET (http://www.aspfree.com) for 3 1/2 years. This was satisfying sharing my experiences about ASP/ASP.NET. Over 300,000 people visit my website monthly. But in the persuit of wanting to learn more, that is what led me to open source, plus its free *kindof*! I’ve coined the phrase "there is an RTFM cost"!

The one thing that convinced me to try open source was able to bring up a backup mail server without any licensing costs. I had never pursued what Open Source offered before this. The one thing that led me to FreeBSD over linux was the .NET rotor project would run on BSD. Also many of the internet/DMZ type projects I’ve been involved with, the underlying os was based on BSD. Not to say BSD is newbie friendly and coming from a Windows Server background didn’t help.

The one thing that helped doing admin type work for years "if you don’t know the answer go look for it". One thing I also liked about the BSD community is its technology, not a religion per say. there are a few zealots in every technology including M$. Without starting a flame war, the RTFM perception tends to prevent people from getting started. I struggled at first but found places like FreeBSD.org/handbook, freebsddiary.org, http://www.google.com, groups.google.com, http://lantech.geekvenue.net/chucktips/ and yes, even IRC useful. IRC tends to be a bit useful but useless at the same time, make sure you ask your questions appropriately and they tend to pound you if don’t understand the concept of what your doing. Make sure you have thick skin! 🙂

Its a bit overwhelming at first how to get started. No assumption is too small like the fact if you expect a person to drink out of a fountain yet never even seen one, they have no idea what to do. Getting started was the hardest part for me, like when I first needed to do an ASP project in windows. I wanted to learn how to setup Windows NT 4.0/IIS 4.0. I grabbed a totally newbie book and got started. Once you have a basic conception of how the internet works, getting things to work lead to some confidence to venture further in. I bought a couple of books (Absolute BSD), FreeBSD Unleashed to help me with my BSD experience. The books were very helpful for getting started in setting up my server. The text based installer used in FreeBSD is terse, you HAVE to know your hardware also especially your NIC and video card. The one way I learned was just to do it over and over. One weekend and now i’m comfortable using the installer. the worst part about install BSD is getting X-Windows to work. (Probably 20 times installing is a bit excessive but that is how it worked for me!) Now I know how to install stuff from /stand/sysinstall, using packages, ports or downloading and compiling. The one thing that i’ve still not grasped but getting is totally controlling how packages, ports get installed on the filesystem. the ports are dropdead simple to install items and get working. I rebuilt my server in less than an hour from scratch installing Apache2, qmail, webmin, php, mysql. Become one with the command line and webmin doesn’t hurt either (Just lock it down and use SSL)!

IPFILTER firewall setup is still overwhelming. I spent a one whole week just searching for information and examples. I understand what firewalls perform but the rules are another story. Many of the examples i ran accross assume you have a real in-depth knowledge of layer 2, layer 3 along with how network packets work. That is my perception. the basic design of the firewall I settled on is have all your allow rules first then at the end block all. This hasn’t totally been a 100% perfect when testing applications, the firewall was preventing things. But when i scan the box it shows what ports i’d expect to be open. The greatest thing is BSD is setup closed.

After I got my backup mail server going, I ventured into installing PHP, mySQL, phpBB2 forums to have me a hobby site dedicated to share my experiences (http://bgeek.com). This isn’t intended to compete with any of the established sites nor would I expect it. Its just plain fun to setup up a website not involving MS technology for once. I still use XP/Win2k for my desktop. My experience using *nix on the desktop is it has a ways to go (its not far off though). For a business using task based workers, *nix could be a viable solution but for now i’m sticking with MS on the desktop.

I supposed I could go with OS/X but I have XP.. Anyway before I put anyone to sleep babbling about my BSD experience, to those readying this and still feel a bit overwhelmed. Your not alone, the best thing an impatient person can have is persistance! Keep it up, look and really try before asking for help. If your looking for someone to hold your hand, that won’t happen but the information is available. Visit the vendor’s website, search google.com and above all try things a few times before asking. Don’t be afraid to fail and deal with the errors as you go along. You’ll know when you its time to venture out and ask for help. Document during your travels of looking for information, never know when it will come in handy! Keep geekin!

I started using BSD back in 97′. Best resource is the search engine and /usr/share/doc the book.txt is good.
Also noticed the guru’s in the FreeBSD channels are easing up. They seem to answer more questions than they did.

I can completly agree on the subject of a task being easy after you learned it. Professor back in high school mentioned that once about professors in college. Same applies to intellectuals in the community. Yet alot has changed since 1997. There is a wealth of information on the; that is, examples. I learn faster through seeing a well documented example. Thank goodness for Google.com and places like this.