A problem with the Linux Community: the direction we need to go
In my recent activities with the FLPC program and discussion with one of its members, a problem in the Linux community has become clear to me. It is a problem that I first noticed when I first started to learn about Linux, not just Ubuntu, but Linux. I, like many, tried a great many different distros to see which worked best on my hardware, which one has most everything I want in a distro by default, and when you really get into it, you learn more about packages and about the distros' inner workings. You learn about Gnome, or KDE, you are able to choose between rpm's or .debs, and so on to make your decision as to which one to settle with.
What is lacking in my opinion is not necessarily good explanations of what these things are, but an easy to understand, concise explanation of why you need them and how to get it, but that is really only part of the problem. What I did when learning about what Linux is, I used the internet a great deal to research the multitudes of new things that I was being barraged with. I read, researched, wrote things down so I could remember them and be able to reference them, and after a while I no longer needed my notes, BUT, when I learned windows, I largely didn't need such things. Yes, I used the internet to learn what certain very technical things are, but no where near to the degree as I did with Linux, and I think that this presents a problem that we all need to address. Why? Because we all love it, and we want to make it better, and because our mission is to spread it.
You see, when you have a new user that has either never used a computer before, or is their first time under Linux, they have no clue as to what to do. The new user knows that you can use the mouse to click on things on the desktop to launch programs. You can get on the internet if the computer is connected, and you can open the right program and type stuff, and in my opinion this is where we always need to start.
With so many things you can use Linux for, we need to approach it from the absolute novice level when we write tutorials, documentation, and even programs, and too many times this is overlooked by us, the writers, programmers, and even the users who are helping others. For example: I find a program that says it does what I want to accomplish, so I decide to install it. With windows you hold the cursor over the link to the download, and you can choose to save it to disk, or you can just run it from there. When installing it, all you have to do is pretty much click on next, next, click on "Yes, I agree", then next, and finally "Finish" you then go to the desktop, or the start menu, and find the new icon for the program you just installed, then off you go! Under Linux however, the experience is not always as simple. If you find a program on the internet that says it does what you want, you have to make sure that there is a Linux version, then, is there one that will work with your Distro, if not you may have to compile it and install it from the source. If you have to do that you then have to worry about dependencies, and even the experience of installing from the source can be overwhelming for the novice user. They look it up and find directions as to how to do it, but it may or may not work, and you are telling me to sudo chown yourusername /usr/local/src? what the heck is that? Why?
What we need is to make our software as easy as possible for the novice user to install and to operate. We need to explain every little detail, as to the process, and we need to explain why. This is a daunting task for us because we are technical people. We think in technical ways, and we feel that we don't need to educate people on every little detail, but I disagree. the process, should be a simple as it is under other operating systems, but in our documentation, the explanations need to be explicit for those that do want to know more, but easy enough for your 9 year old to use and understand.
Ubuntu has a good approach to installing software and using it. All you really have to do is open Synaptic Package manager, find the program you want using the search function, then choose to install it. You can also find .debs around the web for a program that may not be in the repositories, and installing these are about as simple as using .exe's under windows. However, for the novice user repositories are a mystery, and adding repositories, can be a real task for the novice, so should we not, by default, make adding repositories as simple as possible. Wouldn't it be easier for the novice user to see informational pop ups for doing these tasks? When you first install Ubuntu shouldn't there be a pop up or some other message asking you if you want to add extra repositories to broaden your choices? Why should I have to add repositories to listen to an mp3? We, as experienced users understand these things, but to the prospective convert, or totally new user, they have to work at it to understand this, and in a recent case, I was tasked with using a new (to me) distro in which there were no icons on the desktop I was using. I actually had to work at it to find the launchers to use anything. I think that most new users would just give up. I think we all can do a better job, and the outcome will be better for all.
We need to write explanations in the steps used to accomplish things, so the end user will understand what and why we are taking these steps, and after a while it will become "old hat" to the user, and they will no longer need the pop ups and they can eventually turn off such information, and most importantly, you will end up with an educated, experienced user, that will be able to pay it forward and help others, and broaden the community even further.