monochromatic

monochromatic blog: http://blog.z3bra.org
git clone git://z3bra.org/monochromatic
Log | Files | Refs

the-hard-way.txt (4742B)


      1 
      2 # [The Hard way](#)
      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.
    102 
    103 <!-- vim: set ft=markdown ts=4 et: -->