The Artima Developer Community
Sponsored Link

Weblogs Forum
Self-Introduction and Declaration of Intents

3 replies on 1 page. Most recent reply: Jul 7, 2009 6:57 AM by Ishita Guha

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 3 replies on 1 page
Michele Simionato

Posts: 222
Nickname: micheles
Registered: Jun, 2008

Self-Introduction and Declaration of Intents (View in Weblogs)
Posted: Aug 4, 2008 12:20 AM
Reply to this message Reply
Summary
When starting a new blog it is customary to begin with a brief introduction to ourselves, with the reason why we are starting the blog, and with a note about the topics of the blog. Here it goes.
Advertisement

Self-introduction and declaration of intents

When starting a new blog it is customary to begin with a brief introduction to ourselves, with the reason why we are starting the blog, and with a note about the topics of the blog. Here it goes.

My name is Michele Simionato. I have started programming in 1985 and I work as a software developer now, but my cursus honorum has been somewhat excentric. I have begun working professionally as a developer only in 2004: for most of my professional life I have been doing Physics, first as a student and then as a postdoc researcher both in Europe and in the U.S. For that reason I am both an old-school programmer (started with Basic and Pascal) and a new one (a child of the Internet era) at the same time. I have basically lost a decade in the programming world. Losing the nineties is not as bad as it seems. For instance, I skipped the Windows era: I was an Amiga user in the old days, at the University I used VMS and then Unix, and when I bought my first laptop in 2002 I put Linux on it immediately so I never used Windows really; also, I skipped C++ and Java since I switched directly to Python; finally, I skipped the GUI era and I started directly with Web programming. On the other hand, I also skipped the Object Oriented era so I needed to spend some time to catch up. The result of my catching up are my first papers on the Python object model, which are relatively popular among Pythonistas: I mean the papers on meta-classes with David Mertz and the essay about the Python Method Resolution Order, written at the end of 2002. Since then I had the time to see the difference between the theory and the practice, I have worked with large object oriented frameworks (Zope/Plone/Twisted) and I have got a lot of opinions about software development and about how to keep things simple.

There are many reasons why I am starting this blog. For one, I like to write papers/essays and I have written a lot in the past years, publishing on IBM DeveloperWorks, O'Reilly, Pyzine and more recently on Stacktrace. I was looking for a centralized place where to publish my thoughts without constraints of time, size, language and with the potential to reach a large public of technically-inclined readers. Artima fits perfectly my needs, so here I am. The reason why I want to publish my thoughts (apart from glory) is that I think they may be helpful to others, since I am in a particularly good position to write, i.e. I am ignorant enough. There is an interesting little story about this point. In an interview Isaac Asimov was asked why he did write so little about Biophysics, his own field of research, when he wrote about just everything (Mathematics, Physics, Astronomy, History, even Bible Studies). He answered: "I cannot write about Biophysics, since I know too much about it". The same goes for me: I have the motivation to write when I learn a new thing, I see the mistakes a beginners can make and I want to warn others about them. If there is a subject where I am a long time expert, I have forgotten about the mistakes I did and I am on a level too far away from the beginner to be of interest to her. I think this argument generalizes: to write something useful for the others, you must be ignorant enough. This does not means that you have to be clueless, of course, but there is a right degree of ignorance which is needed. Fortunately I do have the right degree of ignorance, since I (re)started programming in 2002, so I have more or less the same level of expertise of a smart teenager who started at the same time: smart teenagers are actually the primary target of my blog, they are the future of programming and the ones we of the older generation should write for.

My own personal problem is that I tend to become an expert of a subject very quickly, so I have to keep changing subject often in order to stay sufficiently ignorant ;) This is why I am interested in many topics and many languages. For instance I have written a long series for Stacktrace about Scheme which I would like to translate in English and publish here, if I can find the time. I have also started a crusade against inheritance in Python which I would like to continue here, discussing examples of how you can refactor code using inheritance without need, and explaining the virtues of object composition. Other likely subjects for my blog could be a panoramic of the new features of Python (Python 2.6/3.0 are coming out in October!) together with a discussion of why you may want to use them. Last year I have been studying for a bit the functional language SML and I liked it, so it may well be that I will write something about functional programming too. Notice that you can use a functional mindset even if you are using a language which is not functional, as I have discussed at lenght in a series of papers about the new namedtuple construct in Python 2.6/3.0 which I would like to translate here. Finally, I would like to post in this blog some hacks and recipes that I use in my own code and that I think could be of interest to others. For instance the literate programming-inspired technology that I use to write my own papers or the library from implementing command line interface that I have written.

Now it is time to say something about the title of this blog, The Explorer. There are many (good and bad) books on software development that talk about patterns, best practices, proven methodologies and all that. This is not my goal. These books are about the past, whereas I am more interested in the future: I want to explore new techniques, new methodologies, the ones that will hopefully become the patterns of the future, as well as the ones that will become the anti-patterns of the future. I do a great deal of experimentation in my own code because I am always unsatisfied with the current situation and I want to try new routes. Therefore I am not afraid of breaking established traditions and I can occasionally become an heretic. I also think that the only way to learn is to make mistakes. So if something which is considered bad is not so obviously bad in my personal opinion, I tried it and I see where it goes. I also experiments with hacks and tricks, since they have their place in a programmer's education. On the other hand, I never use exploratory code in production, since I am not masochist. There is a barrier between exploratory code and production and one should be very careful not to cross the barrier. Most of my exploratory codes sits silently in my hard disk and nobody will see it ever; some of it appears under the form of a newsgroup post or a recipe; a much smaller portion of it appears as an open source library. After a few years, if the open source library is well received and many people are using it (i.e. it becomes somewhat a shared community knowledge) I may start using it in my own production code. This is happening with my decorator module which is now more than three years old and is being used in many Python frameworks: it is only at this point that I am taking in consideration the idea of using it in my own production code. Notice that I am not worried about bugs (in three years I never had a single bug report) it is just that it involves a different way of working with Python decorators than the standard one and I am not yet 100% convinced that that way is the best one.

There is always a big gap between technical competence, which is shortly gained, and practical experience, which takes years to form. There is also the problem that things change continuously in the programming world, so once you get expertise in a technology the technology has become obsolete. Here I am using the word "technology" is an large sense: even a language is a technology and can become obsolete. There are for instance many new books about software development with C++ which nevertheless I consider obsolete since C++ is nowadays an obsolete language. Here I am speaking in the same sense Paul Graham was in his essay Microsoft is dead. I know that C++ will still be around for years, especially in the corporate IT world. But C++ is no longer innovating and I am sure most of my smart teenagers readers think it is boring: they want to use Ruby or Python or even Scala instead. A few months ago I was reading a book about refactoring in C++ (we had it in our library in the office and I had some spare time) and it was mostly of no value to me since the biggest part of it was about tricks and techniques to cope with peculiarities/warts of C++ that do not exist in Python, the main language we use at work. The other part of the book was about the fact that automatic tests and refactoring are good, but I was already convinced of it, so it was old news to me. In this blog you will not see much of mainstream technology and easy advocacy. On the contrary you will see many non-orthodox ways of doing new and old things as well. I will show solutions to design/programming issues and I will let you decide if they are good or bad (most of the time I don't know the answer myself). In this sense this site will be different than most Artima weblogs: it is not intended as a site for best practices, but as a site for exploration and ideally you will start from here to boldly go where no man has gone before ;)


Nicola Larosa

Posts: 9
Nickname: teknico
Registered: Jan, 2006

Re: Self-introduction and declaration of intents Posted: Aug 4, 2008 1:31 AM
Reply to this message Reply
Hi Michele, and welcome!

> I skipped the Windows era [...] so I never used Windows really;

To cite the Beatles, "You don't know how lucky you are, boy". Well, probably you do know how lucky you are, if indirectly. ;-)


> when I bought my first laptop in 2002 I put Linux on it immediately

I've been on Linux since 2000, so I feel you. Just don't defect to the proprietary Mac sirens, ok? ;-)


> also, I skipped C++ and Java since I switched directly to Python;
> finally, I skipped the GUI era and I started directly with Web programming.

On those two respects we are quite aligned too. ;-)

Welcome again, I look forward to your deep and insightful prose, as always.

Elizabeth Wiethoff

Posts: 89
Nickname: ewiethoff
Registered: Mar, 2005

Re: Self-Introduction and Declaration of Intents Posted: Aug 11, 2008 5:04 AM
Reply to this message Reply
Great! It's the MRO and metaclass guy! I knew your name looked familiar. I've always enjoyed the snake illustrations in your MRO paper :-) that and the fact that it's helpful. BTW, I miss Mertz's "Charming Python" series. Oh, well. Good to see you here.

Ishita Guha

Posts: 1
Nickname: ishita
Registered: Jul, 2009

Re: Self-Introduction and Declaration of Intents Posted: Jul 7, 2009 6:57 AM
Reply to this message Reply
I have written a self introduction letter.

Please improve the letter

LETTER
Dear sir/madam,

Please allow me to briefly introduce myself through this letter.

I always had keen interest in serving the society we live in. My grandfather used to practice homeopathy medicine and he served poor and needy people for more than 50 years without any charges. Neither he took the cost of the medicine.Now my mother has taken this up and she is also practicing medicine and serving the needy people for more than 10 years now.

I was born and brought up in Kolkata, India and after completing my education I joined Telecom Company in 2000. Since then I’m working with the same company which is now one of the world’s largest Telecom Company.

I’m 35 years old. Now I feel I should quit this job and serve the society around me to the best of my ability. Right now I’m stationed in Guwahati, Assam. I am ready to move anywhere in and outside India. I’ve no encumbrance.


The recent advertisement by Unicef in Times of India gives an opportunity to join such an esteemed company.

I have no preference of location or position.

Please allow me to join your organization so that I can serve the society to the best of my ability.

Flat View: This topic has 3 replies on 1 page
Topic: JavaOne 2009, Day 2: Clouds, Scala & JavaFX.COM Previous Topic   Next Topic Topic: Flex Questions, Struts, Mediator vs. Controller, and a Look at MXML


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us