In our first lecture we looked at the user interface. We looked at how users go about entering data into, and retrieving data from a computer system. This data has to be stored somewhere, however, so in this lecture we followed on to look at how file systems work. While an end user doesn’t usually need to concern themselves with the particulars of the file system their computer is using, an IT professional should. An understanding of how filesystems work can be important to developing software that works efficiently, it can also help sometimes in terms of troubleshooting. Even if you don’t use it for any of these, having a good understanding is still beneficial from a mindset point of view.It’s not uncommon for people to pay little attention to the filesystem that they use for their system. If you’re using Windows or OSX this is the case more because you don’t have a choice really. If you are running a Unix flavor of OS however then you do have a choice. Up until recently I would have said that the different types of filesystems are much of a muchness and you won’t notice much difference between them. Go with whatever the default is for the distro you are installing. This looks like it’ll change in the near future however. Many areas of computing are now going from an era of adding features to an era of optimisation. File systems are part of this. Reiser 4 and ext4 are starting to make noticable differences (with a quick search on Google you can find more examples). Very soon your choice in filesystem will have an impact on the overall performance of your system.
Understanding the filesystem and how it works can also be important to properly understanding why certain parts of the system behave the way they do. For instance. If you work on a Unix system sooner or later you are going to come across a situation where you have to deal with links. Without an understanding of the i-node mechanism and how it works it will be hard to understand the differences between hard and soft links and why you would use one over the other.
The next point I want to talk about is mindset. This is a concept that a lot of students don’t quite get when they’re at uni. It’s not uncommon for students to make the following comment:
“Why are we learning this? I can’t see how I’m going to ever use this. It’s also boring. Surely you can teach us something more interesting that we’re actually going to use.”
The answer has to do with what I am going to call mindset. Or, the patterns your mind will use in approaching and solving problems. The difference between an average IT professional and an awesome IT professional is largely to do with mindset. What we are doing is expanding your mind to all the different situations that occur in the world of computers, the characteristics, the problems, the wider implications and then the different ways they have been solved. We also take the solutions and look at their advantages and disadvantages.
You don’t even realise it but in learning and thinking about these things you’re changing the way you think. Well you’re not really changing so much as adding. You are becoming a better problem solver. When you think about it, and really focus in on what the essence of an IT professional is, they are nothing more than problem solvers, really good problem solvers.
At the end of the day, all this stuff is really useful, it’s all adding to your repertoire of situations and problems and ways to go about solving them. There are 2 quotes that lend themselves nicely to this point:
“Those who don’t understand UNIX are doomed to reinvent it, poorly” – Henry Spencer
“An IT professional is not someone who knows everything, it’s someone who can learn anything” – Unknown (If you know whom I should credit for this quote leave me a comment and I’ll update it)