What's the difference between a novice and a professional? One word summation...training. There is a classic line that I love in the Denzel Washington movie Man on Fire when he is training Dakota Fanning's character on improving her swimming times:
"There is no such thing as tough. There is trained and untrained. Now which are you?"
It is a good statement and an excellent question. Which are you in the world of Linux? Training is defined by Webster's as:
- the act, process, or method of one that trains.
- the skill, knowledge, or experience acquired by one that trains.
- the state of being trained.
The other day I wrote about Linux certifications. In that article I gave my opinion that although a certification was not a necessity nor requirement, it was not a bad idea for someone who wanted to gain a good foundation in what Linux was all about. However, my primary point was that "Linux affords you the level of "certification" you desire to achieve just by being Linux. You essentially gain your certification by being involved with Linux and using it".
The keyword is involved. Without being involved and actively using Linux you will never gain any aptitude. You are left being untrained. I watch forums and read questions from people who's only desire is to have someone do their work for them. They are not gaining any useful skills or knowledge because they just click and configure based on someone else who spoon fed them the answer. In a sense they are stuck in "Windows" mode, meaning they just want to double click and have the machine install and be done. There is not anything wrong with that per se, but training in Linux means doing. The act of doing equates to experience. One cannot be hesitant to try things and fail in Linux. If doing leads to experience, then the experience will lead to judgment, which will make you a more effective system administrator, engineer or developer. Putting it another way, good judgment comes from experience and experience comes from bad judgement. But ultimately that experience comes from you training yourself.
Gaining the experience takes time in training. You have to consistently be willing to explore the file system and do things over and over. There is a saying in the Army that was drilled into us that slow is smooth and smooth is fast. What that means is if you put the time in your training to do it right, to learn from your actions and your failures, your experience grows and makes you ultimately faster. Developers don't just learn C and write out the next latest and greatest kernel overnight. They hone and sharpen their skills by doing and gaining the experience. They train in their art of C.
Just remember, training never stops. I learn new things and techniques almost daily. My advice to those new to Linux is never be afraid to fail. It takes time and effort to train, but remember that the penguin rewards your training. There is nothing more satisfying than installing and configuring a system that is reliable, flexible and rock solid...and knowing that it was your experience and training that made it possible.
If you are serious about the Linux craft here are some great links that will help you train yourself (the links will open in a new browser, check your pop-up blocker if it does not work):
- Easiest Linux Guide You'll Ever Read / htttp://www.linux-books.us/suse_0002.php / Designed especially for those who are in an early transition from Windows to Linux. Specifically written from the SUSE distribution use.
- Linux Professional Institute LPI 101 and 102 course instruction materials / http://www.ledge.co.za/software/lpinotes / Licensed under the GNU documentation license, these are professionally developed study guides that are distribution neutral. They were developed for those wishing to sit for the LPI entry level certification and an excellent reference.
- The Cathedral and the Bazaar / http://www.catb.org/~esr/writings/cathedral-bazaar/ / If you want to understand what open source is all about and what Linux means from the open source perspective this is a must read. There are multiple translations if English is not your mother tongue.
- IBM Linux Library / http://www.ibm.com/developerworks/views/linux/libraryview.jsp / Big Blue has an extensive collection of great Linux articles and howtos that are great references. E.g want to know about the proc directories? -> http://www.ibm.com/developerworks/linux/library/l-adfly.html
- Linux Device Drivers / http://lwn.net/Kernel/LDD3/ / Are you a developer and want to know everything about Linux Device Drivers and such? This is an excellent starting point.
- Debian Administration / http://www.debian-administration.org/ / If you are a fan of the Debian distribution, such as myself, then this is a great training portal.
- Loads of Linux Links / http://loll.sourceforge.net/linux/links/ / A central repository of over 5000 links that are specifically related to Linux and all the aspects of the environment (system administration, engineering, developing, security, magazines etc).
So the challenge question to you is which are you...trained or untrained? I challenge you to keep training and don't get discouraged about how quickly you might or might not pick things up. Remember...slow is smooth and smooth is fast.
Cheers - Kryptikos