یکشنبه، اردیبهشت ۰۵، ۱۳۸۹

Curb your enthusiasm

This is the first time in the last two and half years that I'm not waiting for the next Ubuntu release! I believe the next Ubuntu would be just like the old ones. So this time I will curb my enthusiasm and suppress such geeky and idiotic tendencies to install the newest shit. I'm going to stick to my lovely Windows 7 for a long long time...

چهارشنبه، اردیبهشت ۰۱، ۱۳۸۹

Hands of Fate

Now I'm sitting here and constantly checking the status of my applications for next winter semester. I'm wondering where I'll be in next September: Stockholm, Aachen, Dresden, Helsinki, Eindhoven or maybe again Tehran? Here I am, on the road again... Here I go...

سه‌شنبه، فروردین ۳۱، ۱۳۸۹

Rediscovering what you have

Currently I'm reading "Effective Java" and it feels like going deeper into the language I thought I knew well. I see things I couldn't see before. Also I have bought a new pair of AKG headphones. Though not very expensive, the music sounds far better than before, Almost unbelievable! It has the same impact as Effective Java. It helps me to experience the hidden details and it feels very good. I'm listening to my Metallica collection and boy I love it, how could I be that ignorant all these years? I was always in search of new exotic metal music, new languages and frameworks, but the real thing was already here. I just needed to be able to see it! So it's time to stop searching and rediscovering what I've already got. They are the best...

جمعه، فروردین ۱۳، ۱۳۸۹

Book Review: The Passionate Programmer

سال گذشته در تعطیلات سال نو کتاب The Pragmatic Programmer را خواندم و بدون شک یکی از بهترین کتاب هایی است که تا کنون خوانده ام. امسال دنبال یک کتاب خوب دیگر می گشتم که به کتاب The Passionate Programmer از سری Pragmatic Bookshelf برخوردم و تصمیم گرفتم این کتاب را در تعطیلات مطالعه کنم. تصمیم داشتم این کتاب را روی iPod Touch بخوانم تا ببینم واقعا تجربه خواندن روی آیپاد چگونه است و دوم اینکه مستقیما فرمت ePub این کتاب خریدم و خودم را از دردسرهای تبدیل فرمت PDF به ePub راحت کردم و در کمال ناباوری پی بردم که iPod touch وسیله خیلی خوبی برای خواندن است. بسیار بهتر از ریدر سونی!

بطور کلی کتاب خوبی بود اما نه چیزی در اندازه The Pragmatic Programmer. نویسنده این کتاب Chad Fowler که نام خانوادگیش مثل Martin Fowler است یک نوازنده ساکسیفون بوده که به توسعه نرم افزار علاقه مند شده و وارد این حرفه می شود. یکی از نکات جالب این کتاب مقایسه تفاوت ها و تشابه های موفق شدن در حرفه موسیقی و نرم افزار است. اما هسته اصلی کتاب این جمله است: Creating a remarkable career in software development. نویسنده معتقد است که بیشتر وقت ما در زندگی صرف کار می شود و برای اینکه زندگی خوبی داشته باشیم باید از کار خود لذت ببیریم و یک remarkable career برای خود بسازیم.
اکثر نکات مطرح شده در این کتاب خیلی خوب هستند که در آخر این پست به صورت لیست می آیند ولی این نکته که اکثر پروژه ها به کشور هند outsource می شوند و ممکن است شغل خود را به یک برنامه نویس در آن طرف دنیا از دست دهیم (اگر در حرفه خود سرمایه گذاری نکنیم) مربوط به کشور ایالات متحده است و با وضعیت کنونی ما در ایران هیچ سنخیتی ندارد. تقریبا در ایران همه برنامه نویسان خوبی که من دیده ام از ایران رفته اند و یا در فکر رفتن هستند. این طرز فکر باعث می شود تمرکز زیادی روی حرفه جاری خود نداشته باشند و همه چیز را به آینده و رسیدن به بهشت موعود به تعویق بیندازند. البته به نظر من اوضاع این مملکت واقعا تخمیست و نمی توان از کسی توقع زیادی داشت.
بهترین قسمت این کتاب به نظر من بخش Path with No Destination بود. چند پاراگراف از این بخش را اینجا می آورم:
If you think about it, the focus on outcomes is logically the reverse of what we should be spending our time on. You typically spend all your time doing things and little of your time actually reaching goals...
This is true of your career as well. The real meat of your career is not the promotions and salary advances. It’s the time you spend working toward those advances. Or, more important, it’s the time you spend working regardless of the advances...
Returning to the software development example, it’s easy to get wrapped up in the delivery of the code you are creating. Your customer needs a web application up, and you focus on finishing that application. But, a living application is never “done.” One release leads to the next...
Focusing on the ending makes you forget to make the process good. And, bad processes create bad products. The product might meet its minimum requirements, but its insides will be ugly. You’ve optimized for the short-term end goal—not for the inevitable, ongoing future of the product’s development.
در حین خواندن این کتاب نکات مهم را یادداشت کردم و الان یادداشت های خود را این جا می آورم. برای توضیحات در مورد این نکات کتاب را بخوانید!
1. Learn more about business, financial issues and money.
2. Join an open source project and try to contribute.
3. Start learning Ruby.
4. Learn about internals of Java Virtual Machine and class loading.
5. Read the book ten-day MBA to better understand how a business operates.
6. Teach one topic you know well.
7. Learn each week one aspect of Java you haven't explore yet.
8. Read code.
9. Maintain a todo list. Have a log about your daily progress.
10. 8 hours work scheme seems awesome! Never work more than 8 hours a day from now on.
11. Maintain a log about your commitments and review them. What is your hit-rate of success?
12. Invest more on your social skills. Context and perception matters. So find out who you are dealing with and answer accordingly.
13. Invest more in your English, writing abilities and generally clear communication.
14. The path is the end! Read more about mindfulness and the Buddhism philosophy!
15. Having a road map for your product is what keeps you moving forward.