tthe-hard-way.txt - monochromatic - monochromatic blog: http://blog.z3bra.org
 (HTM) git clone git://z3bra.org/monochromatic
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       tthe-hard-way.txt (4683B)
       ---
            1 # The Hard way
            2 
            3 9 August, 2013
            4 
            5 As you will notice, I am fond of learning things "The Hard Way".  
            6 I'm going to tell you why, but before that, here is my background, so that you'll understand
            7 how I came to that opinion:
            8 
            9 * **2011, september** — First attempt at linux, dual-booting Ubuntu 10.10
           10 * **2012, february** — Upgrading to Archlinux, single booting
           11 * **2012, june** — Obtaining an old computer, and setting it up as a home server
           12 * **2012, december** — Switching to Archlinux at work, single booting
           13 * **2013, july** — Installing CRUX on my notebook
           14 
           15 I have alway tried to put myself in difficulties, to challenge myself and learn
           16 new things.  During this period, I have searched plenty of tools matching the
           17 Unix Philosophy, by <cite>Ken Thompson</cite>:
           18 
           19 > Write programs that do one thing and do it well. Write programs to work together.
           20 > Write programs to handle text streams, because that is a universal interface.
           21 
           22 This is the reason why I prefer using CLI based tools rather than GUI based
           23 ones. I've come to the point where grabbing the mouse to click on a button is a
           24 _real_ pain.  
           25 But let's go back to **the hard way**.
           26 
           27 ## What is that ? Can I eat it ?
           28 
           29 Learning stuff the hard way is (talking about computers), starting using tools
           30 or learning stuff, without a formation, any piece of help, or any hack to make
           31 it more simple to use/learn.  
           32 Being put in front of a difficulty will force you to search how something
           33 works, how do this or that, and you will know what not to do after you did it.  
           34 Basically, by learning tstuff his way **you will learn from your mistakes, and
           35 understand what you are doing**.  
           36 
           37 To illustrate this, I will use my own experience with a hard to master tool:
           38 Vim.  
           39 
           40 Vim, is an extremly powerful modal text editor. Modal means here that there are
           41 multiple modes, each one made to do different tasks. We see here that it is
           42 totally different from the standard text editor everyone knows (I'm looking at
           43 you notepad...).  
           44 Vim is hard to approach, and difficult to master, because of your good ol'
           45 reflexes. So it is an excellent tool to learn how to learn the hard way!  
           46 Here are the basic steps:
           47 
           48 1. Use it as your _main editor_, stop using every other alternatives
           49 2. Use it _before_ starting to configure it
           50 3. Do not use any plugin _at all_
           51 4. Don't give up !
           52 
           53 Using Vim this way (at least, at the beginning), will help you mastering the
           54 tool faster than learning progressively.  Of course, you could still use the
           55 mouse, until you are ready to stop using it, use the arrow keys to move within
           56 the buffer, delete by selecting your text in visual mode, and pressing
           57 `<SUPPR>`.  
           58 But, WHEN will you be ready ? WHEN will you force yourself not to do that ? WHY
           59 not doing this now?  
           60 
           61 I forced myself to use it this way, and after a week or two, I was putting
           62 ":wqjk{wB" in every other text editor, because I were finally comfortable with,
           63 and used to Vim.
           64 
           65 ## Drawbacks
           66 
           67 I see you raising the <q>I can't have a productivity loss at my work</q> card,
           68 and you are right.  This method is not shipped with only advantages, and
           69 sometimes, you should avoid it. If you think that you can't handle a
           70 productivity loss, postpone the learning for when you will have the time. But
           71 don't do that to much, because you have to be aware that **you will have a
           72 productivity loss**. So I will ask a single question:  
           73 <q>Before being ultra-productive, would you rather be totally unproductive for
           74 one week, or almost productive for one month ?</q>  
           75 Actually, I have never suffered from that 'bad productivity' the hard way
           76 implies. And believe me, it's worth the pain!
           77 
           78 This is all about choice. Everybody has his learning curve, find yours!  
           79 If you're not convinced about this. Please try it. You will, at least, have
           80 your own opinion, which is great.  
           81 After that, you will be more pleased to tell if the tool is made for you or
           82 not, and if you want to make your life easier. (Show me one Vim user that has
           83 choosen to enable the mouse because it enhance his productivity... I dare you
           84 ;) ).
           85 
           86 ## Homeworks
           87 
           88 There are a lot of place in the UNIX domain where the hard way can be applied,
           89 here are a few examples:
           90 
           91 * Write shell script that uses multiple tools to reproduce the behavior of
           92   another tool (eg, [irc it](http://tools.suckless.org/ii))
           93 * Switch from a desktop environnement to a standalone window manager, like
           94   [evilwm](http://www.6809.org.uk/evilwm/)
           95 * When you master a tool, search for another one, less featured
           96 * Put yourself in difficulties. Don't be affraid to break things
           97 * **Break things!**
           98 * ...
           99 
          100 I hope I conviced you, at least, to try it. It might be hard at first, But
          101 that's the point.