About Me

Thursday, June 09, 2005

Let's practice

Recently, I have been reading some books and articles in the field of software engineering.I have been reading Code Complete written by Steve McConnell and published by Microsoft press. This is an excellent book that can be classified as a book that touches software engineering. It mainly talks about the stage of code writing in the software process, but it tells you a lot of useful information about other stages too, such as requirements specification and design. In few words: This book is a must for software developers.Also I have read the famous article No Silver Bullet by Fred Brook. This article is a landmark in the field of software engineering.It explains why software industry is more difficult than other industries, and what solutions are proposed for such difficulties.The Author, Fred Brook, is a software engineering professor at North Carolina computer science faculty, and he was one of the first people to work in the development of IBM operating systems. He used his experience in such great project to write his famous book Mythical Man Month which I am looking forward to read. In this book, Brook talks about aspects of software engineering of big projects generally, such as the addition of new members to the team and how this affect would the time and cost of the whole project.A few days ago, I thought of a project to practice what I have learned and read recently. I thought of building a database engine - a small one, I am not going to compete with Oracle!The reasons for this are:1-Specifying requirements and design for such a big project is difficult.2-I am looking forward to make a difficult system where the developer handles completely most things (memory, threads, processes, etc).3-Although I have worked on two database systems (MySQL and SQL Server), my knowledge about the internals of database engines is very small. I have read some information about operating systems, but I have read nothing about database engines.

So the main goal I am expecting from such an experience is some practicing for what I have learnt and getting more knowledge in some fields of technology, I am not sure I will succeed in building a database engine in the end.

In the next blog, I am going to talk in detail about the project, specially the requirements specification of such a project. This may take a lot more than one blog to talk about!