پرسش‌های نابخردانه نپرسیم

تازگی‌ها خیلی غر می‌زنم که نشانه پیری است. ولی باور کنید آدم چیزهایی می‌بیند که گزیری جز گفتن نمی‌بیند.

0- شما نام این نوشته را بخوانید «پرسش‌های احمقانه نپرسیم»

1- پیشگفتار

اریک ریموند مقاله‌ای پرآوازه دارد به نام «چگونه هوشمندانه بپرسیم» (How To Ask Questions The Smart Way) بدبختانه این مقاله بسیار سودمند هنوز به فارسی برگردانده نشده است (به جز خلاصه‌ای بسیار کوتاه). چندی است که در دیدگاه‌های بلاگ‌ها (کامنت) و انجمن‌های اینترنتی (فروم‌ها) پرسش‌هایی می‌بینیم که نه تنها هوشمندانه نیستند، بلکه بسیار هم احمقانه هستند. نمونه این‌ها بسیار است و نمی‌دانم برای آن‌ها چه باید کرد.

بدبختی بزرگ‌تر اینکه – تا آنجا که به ما مربوط است و در فروم‌های کامپیوتری می‌بینیم- بسیاری از این پرسش‌ها را کامپیوتری‌ها (IT را هم بیفزایید) می‌پرسند که زمانی نشانه و نماد بودند برای به‌روز بودن، منطقی بودن و آگاه بودن. (گرچه این بلا گریبانگیر دیگر رشته‌ها نیز هست ولی ما به رشته‌های مرتبط خودمان کار داریم)

جدا از اینکه بسیاری از پرسش‌هایی که پرسیده می‌شود را می‌توان با اندک جستجویی در همان انجمن یا اینترنت بدست آورد، چندی از این پرسش‌ها بسیار نابخردانه هستند. در بخش پسین اندکی از این پرسش‌ها که نمونه خروار آن‌هاست را می‌آورم.

2- درآمد: این چند سناریو را ببینید، این چند سناریوها از انجمن (فروم) های فارسی بدست آمده‌اند. فقط هرچه فکر می‌کنم یادم نمی‌آید یکمی را در کدام فروم دیده‌ام.

سناریو 0 (الگو):

چگونه می‌توانم در مسابقه‌های اتومبیل‌رانی رالی شرکت کنم. البته من هنوز رانندگی بلد نیستم.

سناریو 1:

فرد الف: میخواهم لینوکس سرور نصب کنم که کارهای y،x و z  را انجام دهد.

فرد ب در پاسخ: کارهای 1و 2 و 3 را انجام می‌دهی سپس در ترمینال فلان چیز را می‌نویسی.

الف: ترمینال! ترمینال در لینوکس چیست و چگونه می‌توان به آن دسترسی پیدا کنم.

سناریو 2:

الف: می‌خواهم در  C++ فلان کار را بکنم. «من خیلی C++ بلد نیستم.»

ب: «برای اعداد خیلی بزرگ باید از آرایه استفاده کنی و یه کلاس جدید برای کار با اون بنویسی …. »

الف: «میشه بیشتر توضیح بدید. من چیزی از کلاس نمی دونم . همین طور میشه بگید.»

سناریو 3:

الف: «من میخوام برای یک اداره دولتی سایت طراحی کنم. اما تقریبا اولین کارم در این زمینه هست.
میخواستم بدونم سایتهای ادارات دولتی مثل شهرداریها و وزارت و غیره که میبینیم چطور طراحی میشه و چه امکاناتی داره
آیا بیشترش با CMS های اپن سورس انجام میشه و لطفا بهم معرفی کنید
آیا کسی این سایت ها رو بطور سفارشی و با کدنویسی طراحی میکنه و یا با دریم ویور …»

ب: «دوست عزیز در حال حاضر تقریبا هیج سایتی … نیست که بدون استفاده از سامانه‌های مدیریت محتوی (cms) پیاده‌سازی شده باشد. …»

الف: «… متاسفانه من با این سامانه ها تاحالا کار نکردم و نمیدونم یادگیری اونها چقدر زمان میبره.
هنوز اطلاعات کامل دقیق و رسمی از خصوصیات و محتوای سایت پیدا نکردم و احتمالا در جریان کار متوجه میشم. فعلا خواستم پیشاپیش آماده بشم و اطلاعاتی هم داشته باشم و بدونم اینکار رو قبول بکنم یا نه و بهتره چطور و با چه سیستمی شروع بکنم. … »

سناریو 4:

الف: خوشحالم که با شما آشنا شدم. من همه‌ی نوشته‌های بلاگ شما را بادقت خوانده‌ام. اما سوالی دارم. چگونه می‌توانم کار X را انجام دهم.

ب: نوشته‌ی Y من را با دقت بخوان.

الف: خوانده‌ام. اما جواب پرسش من در آن نیست.

ب: پاراگراف دوم خط سوم …

الف: آها. راست میگید. حالا چطور می‌تونم کار Z را انجام بدم.

ب: همان نوشته پاراگراف سوم.

الف: آها. یه سوال دیگه….

و این داستان ادامه دارد

————–

چیزی که برای من جالب است این است که بسیاری افرادی که پرسش‌های هوشمندانه ندارند این سه صفت را دارند. (به ویژه دوستان جوان‌تر و دانشجو)

  • کم صبر هستند
  • نوشته‌ها را بادقت، درست و کامل نمی‌خوانند
  • جستجو نمی‌کنند

با کمی کار روی این‌ها می‌توان پرسش‌های هوشمندانه‌تری پرسید. چیزی که نمی‌دانم این است این است که با افرادی که پرسش‌های احمقانه می‌پرسند چه باید کرد. به ویژه برای سناریوهای 2،1 و 3.

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید. «فهرست همه نوشته‌ها»ی من را اینجا ببینید.

کپی بکنیم یا نکنیم: چگونه نوشته‌های دیگران را نقل کنیم

راستش این نوشته را باید بسیار پیشتر می‌نوشتم.

بارها شده که دوستان محبت کرده! و نوشته‌های من را درسته در بلاگ، انجمن و … خود «کپی-پیست» کرده‌اند، دستشان درد نکند.

این البته مساله بلاگ من نیست. مساله‌ی به گفته دوستان «بلاگستان فارسی» است. چندی‌شان منبع را می‌نویسند، چندی‌شان به گونه‌ای می‌نویسند که ننویسند بهتر است و گروهی نیز نمی‌نویسند.

جدا از این اینکه مجوز/لایسنس نوشته چه باشد، این کار نادرست است حتا اگر منبع را بنویسند و پیوند درست را نیز بگذارند.

گفتم که بارها خواسته‌ام در این باره بنویسم. خوشبختانه چندی پیش دوست خوبم سجاد بارودکو (موسوی) نوشته‌ای خوب و مفید در این باره نوشت که- دست کم در این روزها که بیشتر بی‌حوصله هستم- بار نوشتن را از دوش من برداشت.

البته فکر نمی‌کنم اگر من خودم می‌نوشتم، می‌توانستم به این خوبی بنویسم. پس بروید و نوشته‌اش را بخوانید:

چگونه نوشته‌های دیگران را نقل کرده و لینک دهیم

البته من کار دیگری هم کرده‌ام. برای اینکه فرهنگ درست لینک دادن در بلاگستان و سایت‌های فارسی جا بیفتد در نوار کناری بنر آن نوشته را گذاشته‌ام و به نوشته اصلی پیوند داده‌ام. فکر می‌کنم شما نیز می‌توانید چنین کاری بکنید. بنر در سه اندازه موجود است. بنر زیرین اندازه متوسط و بنری که در نوار کناری وجود دارد اندازه کوچک است.

How to Quote

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید.

سرگذشت یک واژه «فناوری»

راستش خسته شدم از بس که این واژه را در شکل نادرست خود دیدم:

فن‌آوری، فنآوری، فنّاوری، فنّآوری، فنّ‌آوری

همه شکل‌های نادرست فناوری هستند. ولی آنچنان بسیار بکار می‌روند که کمتر کسی می‌پذیرد و باور می‌کند که نادرستند.

بسیاری از جاهای «فرهنگی» نیز این واژه را نادرست بکار می‌برند.

دلیلش نیز روشن است: همانگونه که همه می‌دانیم فناوری برابرنهاد واژه «تکنولوژی» است.

چیزی که همه آن‌ها، به نادرست، باور دارند این است که این واژه ترکیبی است از «فن + آوری» بر این اساس چندی آن‌را «فنآوری» و آن‌هایی که به جدانویسی پایبند‌ هستند آن‌را «فن آوری» می‌نویسند. که این از پایه نادرست است. آن‌هایی هم که تشدید می‌گذارند اینگونه دلیل می‌آورند که «فن» در عربی تشدید دارد، اما برادر ما فارسی سخن می‌گوییم نه عربی.

فناوری ترکیبی است از «فن + وری». از آنجا که خوانش آن سخت است «ا»ی به میان می‌آید که «صورت‌ساز» (formative) گفته می‌شود.

در فارسی از اینگونه ساخت کم نداریم، از آن گونه‌اند :  «جنگ + وری -> جنگاوری»، «زن + شویی->زناشویی» و فکر می‌کنم «دل + وری-> دلاوری».

کاربرد نادرست این واژه آن‌چنان است که دور نمی‌بینم کسی که «فناوری» را بکار برد و دیگران به او خرده بگیرند.

فناوری هنوز هم واژه‌ای با خوانش سخت است. ولی اگر آن‌را بدین‌گونه خواند آن نیز حل می‌شود. فنا-وری. فنا را همان‌گونه بخوانید که فنا در معنی فناشدن/ نیست شدن را می‌خوانید.

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید.

اهمیت روش‌مند بودن استخدام برنامه‌ نویس در شرکت‌ نوپا

پیشگفتار: من برنامه‌نویس را به‌جای  Programmer و برنامه‌ساز را برابر Developer بکار می‌برم. برای بیشتر دانستن، نوشته «در شرکتتان برنامه‌ساز نیاز دارید، نه برنامه‌نویس» را بخوانید. اما این نوشته هر دو آن‌ها را در بر می‌گیرد.
اگر دانشجو هستید، بهتر است نوشته دیگر من «پندهایی به دانشجویان کامپیوتر: چشمان خود را باز کنید» را بخوانید.

درآمد: بکارگیری (استخدام) نیرو (برنامه‌ساز یا برنامه‌نویس) یکی از مهمترین و سخت‌ترین کارهای یک شرکت نرم‌افزاری است. از آنجا که از میان انبوه دانش‌آموختگان کامپیوتر و فناوری اطلاعات درصد بسیار کمی توانمند هستند، شرکت‌ها باید این کار را روشمند انجام دهند. تا آنجا که من می‌دانم این کار در اینجا روشمند انجام نمی‌شود. شرکت‌های نوپا که هیچ روشی برای بکارگیری ندارند. شرکت‌های بزرگ‌تر نیز روش‌هایی بدست‌ آمده از «آزمون و خطا» دارند که چندان کارآمد نیست. چندی از آن‌ها هم روش‌هایی بکار می‌گیرند که بیشتر مبنای «کلاس گذاشتن» دارد تا شناخت سره از ناسره.

این روشمند نبودن باعث گردیده است که دانشجویان بی‌انگیزه‌تر شوند و کمتر روی یادگیری و توان‌افزایی خود کار کنند.

چرا فرآیند بگارگیری برای شرکت‌های نوپا مهم‌تر است:
یک اینکه شرکت های نوپا منابع محدودتری دارند، بنابراین باید چابک رفتار کنند و کاراتر باشند برای این کار نیز به نیروهای کارآمدتر نیاز دارند.
دو اثر یک نیروی ناکارامد در شرکت‌های نوپا هویداتر است. اگر شرکت شما ۱۰۰ نیرو داشته باشد و یکی از آن‌ها توانمندی‌های لازم را نداشته باشد، یک درصد از نیروهای شما ناکارامد هستند (گرچه این هم درصد کمی نیست) ولی اگر شما پنج نیرو داشته باشید که یکی از آنها خوب نباشد بیست درصد نیروهای شما خوب نیستند. هرچه شرکتی کوچک‌تر باشد آسیب‌پذیرتر می‌شود.
پس شرکت‌های نوپا باید در این کار سخت‌گیرانه‌ و هوشمندانه‌تر رفتار کنند.

همانگونه که می‌بینید هرچه شرکت بزرگتر شود یک فرد درصد کمتری از نیروهای آن را شکل می‌دهد. برخی می‌گویند حالا که اینگونه است پس حتما شرکت‌های بزرگ به فرآیند استخدام اهمیت کمتری می‌دهند. اینگونه نیست درست برعکس، آن‌ها در این کار سخت‌گیری بیشتری می‌کنند. امروزه استخدام نیروهای تواناتر نقش حیاتی و رقابتی برای شرکت‌های بزرگ دارد. فرایند آن‌ها چندین مرحله دارد و زمان‌بر است. برای نمونه می‌توان به فرآیند پیچیده برای شرکت‌هایی چون گوگل و مایکروسافت اشاره کرد که می‌توان با جستجو در اینترنت در این‌باره بیشتر دانست.

برآن نیستم که این نوشته را به درازا بکشانم. در نوشته‌ای دیگر درباره چگونگی این فرآیند سخن خواهم گفت. اما برای آغاز دو کتاب بسیار خوب را معرفی می‌کنم:

How Would You Move Mount Fuji?

این کتاب چگونگی بکارگیری نیروها در یک شرکت نرم افزاری را بیان می کند البته تمرکز آن روی مایکروسافت است.

Smart and Gets Things Done

این کتاب نوشته جول اسپالسکی است. پیشتر هم درباره آن نوشته‌ام. کتاب کوچک و بسیار مفیدی است که حتما باید خوانده شود. سه-چهار روزه می‌توان خواندش. باردیگر برای خواندن این کتاب پافشاری می‌کنم. اینجا می‌توانید از محتوای کتاب آگاهی بیشتری بیابید.

چند نکته پایانی

  • در آگهی استخدام نکته کلیدی شناخت گروه هدف است که برنامه‌نویس هستند. باید تا آنجا که می‌توانید هدفمندانه آگهی بدهید. آن هم در جاهایی که برنامه‌نویسان ببینند نه مردم عادی. اگر می‌‌ خواهید یک نفر را بکار بگیرید باید دست‌کم ۳۰-۴۰ رزومه دریافت کنید.
  • رزومه‌ها را بخوانید. بدون توجه به اینکه کار شما چیست، برای کسانی که در پروژه‌های آزاد/بازمتن همکاری داشته‌اند امتیاز در نظر بگیرید. کُدهای آن‌ها را بخوانید.
  • در اینجا یک نمودار جالب برای اینکه به چه چیزهایی باید امتیاز داد وجود دارد. گرچه نمودار کمیک است ولی  آگاهی دهنده و سودمند است.
  • فرآیند می‌تواند با یکی-دو آزمون هوش «لو نرفته» آغاز شود.
  • بهتر است پیش از مصاحبه برنامه‌مصاحبه داشته باشید. حدود ۴۵ دقیقه تا یک ساعت را برای مصاحبه در نظر بگیرید.
  • در این مدت ۱۰-۱۲ پرسش از ۳-۴ زمینه بپرسید که حتما دو زمینه از آن «ساختمان داده‌ها» و «طراحی الگوریتم‌ها» باشد. اگر پرسش‌های استخدامی شرکت‌های بزرگ را ببینید در می‌یابید که بیشتر آن‌ را همین دو زمینه در بر گرفته است.
  • در اینترنت به دنبال فرآیندها و پرسش‌ها جستجو کنید (به انگلیسی.)

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید. «فهرست همه نوشته‌ها»ی من را اینجا ببینید.

فهرست بهترین کتاب‌های مدیریتی فارسی

– نخست اینکه این فهرست هنوز بسیار خام است. پس ممنون می‌شوم تا کتاب‌های پیشنهادی خود را بگویید تا به این فهرست افزوده گردد و این فهرست کم‌کم بهتر و کامل‌تر شود.

– دوم من این فهرست را بر اساس دو فهرست از اینجا و اینجا ساخته‌ام. ولی آن‌هایی را که می‌دانسته‌ام که به فارسی برگردانده شده یا خودم خوانده‌ام را فهرست کرده‌ام. روشن است که ممکن است کتاب‌هایی از این دو فهرست به فارسی برگردانده شده باشد ولی من از آن‌ها آگاهی نداشته‌باشم. پس فهرست‌ها را ببنید و اگر کتابی در ‌آن‌ها هست که به فارسی برگردانده شده ولی من ننوشته‌آم مرا یادآور شوید.

– سوم همانگونه که می‌بینید این، فهرستِ کتاب‌های برگردانده شده به فارسی است به بیان دیگر هنوز هیچ کتابی که نویسنده، و نه مترجم، آن ایرانی باشد نیاورده‌ام. خودم چند کتابی را می‌شناسم ولی اگر کتاب‌هایی از این دست را می‌شناسید باز هم لطف کرده مرا یادآور شوید.

خوب است یادآور شوم کتاب‌هایی در فهرست هست که نام مترجم و ناشر ندارد، چندتایی از آن‌ها چندین ترجمه دارند و من نمی‌دانم کدامین یک بهتر است، بنابراین تنها نام کتاب را آورده‌ام. ولی آن‌هایی را که بهتر ‌دانسته‌ام، فهرست کرده‌ام.

یادآور می‌شوم این فهرست دربرگیرنده‌ی کتاب‌هایی درباره رهبری و توان‌افزایی نیز هست که از نیازهایی اساسی مدیر است.

نام کتاب/نویسنده/مترجم/ناشر ایرانی

  • چگونه می توان دوست یافت و در مردم نفوذ کرد/دیل کارنگی/*/*
  • ساختن برای ماندن/جیم کالینز، جری پوراس/فضل اله امینی/فرا
  • رهبری تحول/جان کاتر/مهدی ایران نژاد پاریزی، مینو سلسله /موسسه تحقیقات و آموزش مدیریت
  • هدف/الیاهو گلدرت، جف کاکس/داریوش نقشینه/پیک آوین
  • بهتر از خوب/جیم کالینز/فضل اله امینی/فرا
  • پنج دشمن کار تیمی/پاتریک لنچونی/فضل اله امینی/فرا
  • هفت عادت مردمان موثر/استیون کاوی/*/*
  • گام نخست، رهیدن از قانون های کهنه/مارکوس باکینگهام، کورت کافمن/عبدالرضا رضایی نژاد/فرا
  • راه تویوتا/جفری کی لایکر/سعید خرقانی، مهدی ایران نژادپاریزی، مینو سلسله/موسسه تحقیقات و آموزش مدیریت
  • پنجمین فرمان/پیتر سنگه/حافظ کمال هدایت، محمد روشن/سازمان مدیریت صنعتی
  • برد/جک ولش، سوزی ولش/عبدالرضا رضایی نژاد/فرا
  • اقتصاد ناهنجاری های پنهان اجتماعی/استيون لویت، استیون دابنر/سعید مشیری/نشر نی
  • گاو بنفش/ست گادین/سید بهشاد یاسینی/فرا
  • سیستم تولید تویوتا: گذار از تولید انبوه به تولید ناب/تائی چی اوهنو/کاظم موتابیان /آموزه
  • جهان مسطح است/
  • 21 قانون انکارناپذیر رهبری/جان ماکسول/مهدی قراچه داغی، ارمغان جزایری/پیکان
  • قورباغه را قورت بده!:21 روش عالی غلبه بر تنبلی و انجام بیشترین کار در کمترین زمان/برایان تریسی/اشرف رحمانی، کورش طارمی/راشین (ویرایش سوم)
  • نیروی بیکران تفکر مثبت/نورمن وینسنت پیل/شهناز مجیدی/کتابدرمانی
  • مدیر یک دقیقه ای/کن بلانچارد، اسپنسر جانسون/*/*
  • گام دوم، کشف توانمندی ها/مارکوس باکینگهام، دونالد کلیفتون/عبدالرضا رضایی نژاد/فرا
  • چه کسی پنیر مرا جابجا کرد؟/اسپنسر جانسون/شمسی بهبهانی/اختران
  • کوه یخ ما دارد آب می شود: تغییر و موفقیت تحت هر شرایطی/جان کاتر،هولگر راتگبر/شایسته مهدی/آرامش
  • ماهی!/استفان لاندین، هری پل، جان کریستنسن/سحر کیانی/فرا
  • هوش هیجانی/دانیل گلمن/
  • جایگاه‌ سازی: نبردی در ذهن/ آل ریس، جک تروت/ ترانه قطب/ سیته
  • بازی‌های استراتژیک بازاریابی/ جان زاگولا، ریچارد تانگ/ علی عیاری/ فرا
  • استراتژی اقیانوس آبی/ چان کیم، رنه مابورن/*/*
  • انتخاب‌های هوشمندانه/رایفا، کینی، هاموند/سیاوش ملکی‌فر/موسسه فرهنگی انتشارات کرانه علم
  • استراتژی رقابتی/ مایکل پورتر/ جهانگیر مجیدی، عباس مهرپویا/ رسا
  • تفکر ناب/ جيم ووماک، دان جونز/آزاده رادنژاد/ آموزه

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید. «فهرست همه نوشته‌ها»ی من را اینجا ببینید.

راهنمای کوچک برنامه‌نویسی با codeblocks

0- درآمد:

اگر شتاب دارید، می‌توانید از این بخش گذر کنید.

در «پندهایی به دانشجویان کامپیوتر: چشمان خود را باز کنید» و چندین جای دیگر بارها گفته‌ام که دانشجویان باید بسیار کُد/برنامه بنویسند. اگر پیگیر بلاگ من باشید می‌دانید که من برنامه‌نویس یا گیک نیستم و رویکردم بیشتر مدیریتی است. آنچه مرا بر آن داشته تا این نوشته را بنویسم مساله‌ای که تازگی بسیار می‌بینم؛ چندی پیش دانشجویی که در پایان ترم 3 و درس برنامه‌سازی پیشرفته بود از من خواست تا به رسم همسایگی پروژه‌های پایان ترم این درس را برایش بنویسم، که البته ننوشتم. تلاش کردم تا این کار را با هم انجام دهیم. پس از آنکه- برای آموزش- برنامه‌ها را بر روی کاغذ نوشتیم، از او خواستم تا آنها را تایپ و اجرا کند. آنها را تایپ کرد ولی پس از آن چیزی گفت که برایم جالب بود: او تا آن روز حتا یک برنامه C/C++ را کامپایل/اجرا نکرده بود. به زودی دانستم که این مشکل بسیاری از دانشجویان است. جالب‌تر آنکه دانستم هنوز بسیاریTurbo C++ را برای این کار بکار می‌گیرند که البته بهتر است بگویم بکار نمی‌گیرند. ایرادی به این برنامه وارد نیست ولی دیگر زمان این برنامه گذشته است و محیطی دلچسب ندارد. ما هم زمان دانشجویی این برنامه را بکار می‌گرفتیم(ده-یازده سال پیش.) امروزه «محیط های یکپارچه برنامه‌سازی» (IDE) بسیار کاربر پسندتر به بازار آمده است. یکی از این محیط‌ها Code::Blocks است که زیبا، ساده، بازمتن و رایگان است. بسیاری از دانشجویان به بهانه محیط بد سراغ برنامه‌نویسی نمی‌روند. دوستانی برآنند که باید برنامه‌نویسی و کامپایل را،دست کم برای مدتی، از خط فرمان انجام داد. من همین همین عقیده را دارم اما برای عاشقان برنامه‌نویسی. امروز می‌گویم مهم لذت از  برنامه‌‌نویسی و ادامه آن است. اگر کسی لذت برنامه‌‌نویسی را حس کند، آنرا پی گرفته و در آن ژرف‌تر می‌شود. دلیل دیگری هم دارد: یکی از دغدغه‌های من به‌عنوان مدیر/مشاور، بکارگیری (استخدام) نیرو است و فکر می‌کنم بارها گفته‌ام که نیروی کاربلد بسیار کم است، این پست را نوشتم شاید تعداد بیشتری علاقه‌مند شده و سراغ برنامه‌نویسی روند.

1- آغاز: بارگیری و نصب

اگر کاربر ویندوز هستید به اینجا بروید. برای ویندوز دو نسخه موجود است که بهتر است شما نسخه همراه با کامپایلر MinGW را بگیرید. حجم این نسخه حدود 20 مگابایت است. پس از بارگیری بر روی آن کلیک کنید. اگر پیشتر کامپایلری روی سیستم شما نباشد، نیازی به هیچ تنظیمی نیست و برنامه به‌سادگی نصب می‌شود. پس از نصب می‌توانید برنامه را از منوی Start  اجرا کنید.

در لینوکس کار کمی آسان‌تر است. به طور کلی لینوکس بهشت برنامه‌نویسان است. بیشتر توزیع‌های لینوکس آن‌را در مخازن رسمی خود دارند. به‌راحتی می‌توانید برنامه را از مخازن نصب کنید. برای نمونه در اوبونتو کافی است در خط فرمان بنویسید:

sudo apt-get install build-essential codeblocks

یادتان باشد که کامپایلر را هم نصب کنید، که من این کار را با نصب build-essential انجام داده‌ام. در اوبونتو برنامه از نشانی زیر اجرا می‌شود.

2- اجرا:

به

File -> New -> Projet…

بروید و  Console application را بزنید. در گام دیگر زبانتان را (C/C++) بگزینید. در گام دیگر به ترتیب نام پروژه، پوشه‌ای که می‌خواهید پروژه در آن ذخیره شده و نام فایل را بنویسید.(البته هنگام نوشتن نام پروژه، خودش نام فایل را می‌گزیند).

درگام دیگر نام کامپایلر را می‌خواهد که به‌صورت پیش فرض GNU GCC Compiler است، اگر نیست آن‌را انتخاب کنید. کار تمام است. پروژه ساخته می‌شود. زیر نام پروژه به زیر sources بروید و روی main.cpp کلیک نمایید. کد برنامه نمایش داده می‌شود. همانگونه که می بینید CodeBlocks خودش یک برنامه ساده برای شما نوشته است.

برای اجرای این برنامه کافی است دو کار انجام دهید. به منوی Build بروید و به ترتیب

Build ->Build

و سپس

Build->Run

را بزنید. یکمی برنامه را کامپایل می‌کند و دومی ،اگر در مرحله پیشین خطایی یافت نشود، برنامه را اجرا می‌کند. من متن را تغییر داده Build و Run را دوباره تکرار کردم. اینک می‌توانید  خروجی را ببینید.

حالا می‌توانید برنامه‌هایی را پیشتر نوشته‌اید یا در کتاب‌ها دیده‌اید را تایپ و اجرا کنید.

3- بیشتر:

تا همین حد برای یادگیری و اجرای برنامه‌ها کافی است. هرچه با این محیط بیشتر کار کنید، بیشتر با آن آشنا شده و ویژگی‌های آن دستتان می‌آید. codeblocks ویژگی‌های بسیار بیشتری دارد که با خواندن راهنمای آن با آن‌ها آشنا می‌شوید. از برنامه نویسی با codeblocks لذت ببرید و تا آنجا که می‌توانید برنامه بنویسید.

تبریک می‌گویم اکنون دیگر برنامه‌نویس شدید، پس وقت آن است که این نوشته را بخوانید.

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید. «فهرست همه نوشته‌ها»ی من را اینجا ببینید.

عیدانه فراوان شد، تا باد چنین بادا

این نوشته آمیخته‌ای است از چند کوته‌نوشت:

نخست فرا رسیدن سال 88 را خوش‌باش می‌گویم. امیدوارم که سالی نیکو، پربار و پرشور داشته باشید.
در این سال امیدوارم که «گفتار‌نیک، کردارنیک و اندیشه‌نیک» را گرامی بداریم، ایرانی باشیم و بمانیم.

سال پیشین در برابر سال پسین
سال 87 که در آخرین روزهای آن هستیم از دید بسیاری -و نیز من- سال چندان دل‌چسبی برای کسب و کارها نبود. رکود و بی‌پولی امان همه را برید.
در درونم چیزی است که می‌گوید سال پیش‌رو -88- سال خوبی خواهد بود. دست‌کم اگر کمی کهن فکر کنیم سال گاو است و پربار. از دیگر سو این سال روزهای تعطیل کمتری خواهد داشت، که من اینگونه را دوست‌تر دارم.

کامپیوتر کم بود، بازمتن هم افزون گردید.
رشته کامپیوتر (ونیز فناوری اطلاعات) به بیانی بدترین رشته دنیاست. در بسیاری از رشته‌ها -پس از دانش آموختگی- اگر کسی سالی/دوسالی یک کتاب در آن زمینه بخواند به‌روز به‌روز است. اما در این رشته اگر یک هفته چیزی نخوانید، همین که به خود آمدید می‌بینید که ای بابا چه‌ها که رخ نداده است.
مدیریت در رشته کامپیوتر از این سخت‌تر است: از سویی شما باید درباره آخرین فناوری‌ها و دست‌آوردها بدانید و از دیگر سو باید پیگیر مسایل مربوط به کسب و کار خود و دیگران باشید. همینطور باید پیوسته دانش مدیریتی خود را به‌روز نمایید.
همه این‌ها به کنار کسانی چون من که نیم نگاهی نیز به بازمتن (اپن سورس) دارند، نگرانی دیگری دارند این روزها شتاب کارهای بازمتن بسیار شده، یک امروز مرا ببینید:
صبح بیدار می‌شوم، کامپیوترم را روشن می‌کنم رایانامه (ایمیل) را بررسی می‌کنم، آخرین خبرها را از خوراک(فید)ها می‌خوانم و توییترم را پی می‌گیرم. به کار می‌روم. پس از نهار دوباره این‌ها را بررسی می‌کنم، می‌بینم که ای دل غافل چه‌ها که نشده در این اندک زمان.  IBM می‌خواهد SUN را بخرد و همه دارند در این‌باره سخن می‌گویند. به خانه می‌آیم و دوباره آن‌ها ر ا بازبینی می‌کنم می‌بینم که خبری نو در راه است «نیویورک تایمز» خبرداده که این خرید ارزشی برابر با 7 میلیارد دلار خواهد داشت.
زندگی چه سخت است برای مدیران شرکت‌های فناور.

از سال پیش رو بیشینه لذت را ببرید و خوش باشید.

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید.

هفته سمینار

راستش هفته آینده را باید هفته سمینار بنامم. دلیلش البته روشن است، در این هفته چهار سمینار خواهم داشت.

فکر می‌کنم در پایان هفته مرده‌ی مرا بتوان یافت. که البته خبر خوشی است برای دوستان و نزدیکانم.

همانگونه که احتمالا می‌دانید هفته آینده «اولین کنفرانس بین المللی لینوکس، متن باز و مدارک لینوکس» در روزهای شنبه، یکشنبه و دوشنبه و به ترتیب در دانشگاه صنعتی شریف، دانشگاه اصفهان و در «مرکز آموزش علمی کاربردی تعاونی پیام شهرکرد» برگزار خواهد شد. که در این سه روز من همچون همیشه درباره کسب و کار نرم‌افزارهای آزاد/بازمتن خواهم گفت، البته از آنجا که زمان اندکی دیده شده، کمتر از گذشته به ریزه‌کاری‌ها خواهم پرداخت. اسلایدها را می‌توان اینجا دید.

از هم‌اکنون بگویم اگر کسی می‌خواهد برای آینده برنامه‌ریزی کند و می‌خواهد من این سمینار را ارایه دهم، بهتر است نزدیک 2 ساعت را ببیند. گرچه می‌توان تا 3-4 ساعت در این باره سخن گفت.

روز چهارشنبه، 14 اسفند نیز در دانشگاه پیام نور اصفهان سمیناری 1 ساعته با نام «چگونه آینده‌ی شغلی خود در رشته‌ی کامپیوتر را تضمین کنیم» خواهم داشت. چند تن از دانشجویان فعال این دانشگاه که به لاگ می‌آیند، از من برای این سمینار دعوت کردند. این سمینار چهارشنبه صبح است، زمان سمینار من هم ساعت 10 است، البته برنامه‌های دیگری نیز دارند که از ساعت  9 آغاز خواهد شد.

پ.ن: اسلاید‌های این سمینار را نیز می‌توانید اینجا ببینید. می‌خواستم فایل را کمی تغییر داده سپس قرار دهم که فرصت نشد، به امید خدا در ارایه‌های دیگر آن‌را بهبود خواهم بخشید.

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید.

یک درس اجباری دیگر: کارآفرینی یا اقتصاد؟

نکته: می‌دانم همین حالا هم چندی می‌گویند درس‌ها زیادند و باید کم شوند، من در این باره هیچ دیدی ندارم و البته نمی‌خواهم صدای آنها را در بیاورم.

امروز صبح داشتم نوشته‌های یکی از ستون‌نویسان فوربس را می‌خواندم، وی پیش‌تر یادآور شده بود که گونه‌ای از فرار مغزها از رشته‌های فنی /مهندسی به رشته‌های مالی (اقتصاد/مدیریت) در حال شکل‌گیری است. اینک در نوشته‌ای او برآن است که درس «مبانی کارآفرینی» باید جزو درس‌های اجباری رشته‌های فنی/مهندسی شود. اما آنجا آمریکا است (گرچه وی از آنجا که در اصل هندی است، همیشه نیم‌نگاهی نیز به هند دارد).

من گونه دیگری می‌اندیشم، البته در اینکه «مبانی کارآفرینی»، درس مفیدی است هیچ‌گونه شکی ندارم. اما فکر می‌کنم اگر قرار است که تنها یک درس دیگر افزوده شود، بهتر است درس «مبانی اقتصاد» باشد. چون درسی است که به‌درد همه‌کس می‌خورد کما اینکه ما در ایران به شدت از نبود دید علمی اقتصادی در مردم رنج می‌بریم. افزودن چنین درسی افرون بر مفید بودن برای یک مهندس، اندک اندک دید اقتصادی جامعه را هم بالا می‌برد، چرا که درصد بسیار بالایی از دانشجویان ما اکنون دانشجوی رشته‌های فنی/مهندسی هستند. در «پندهایی به دانشجویان کامپیوتر»یادآور شدم که یکی از مهارت‌های بایسته برای یک دانشجوی کامپیوتر دانستن اقتصاد خرد است.

حالا که «مبانی اقتصاد» جزو درس‌ها نیست، چه کنیم؟

یک روش می‌تواند این باشد که با پیگیری و پشتکار فراوان به مدیران گروه بپذیرانیم که این درس را با استادی خوب، اقتصاد خوانده‌ و اقتصاد‌دان ارایه کنند. از آنجا که اقتصاد امروز بسیار بر پایه ریاضیات است، بهتر است که پیش‌نیاز این درس درسی‌هایی چون ریاضی 2 و آمار و احتمالات باشند. هم‌اکنون بهترین کتاب برای این درس ویرایش پنجم Principles of Economics است که به فارسی ترجمه نشده است. این کتاب محبوب‌ترین نوشته اقتصاددان بسیار معروف و استاد دانشگاه هاروارد «گریگوری منکیو» است. خوشبختانه کتاب دیگری از این نویسنده که برای این درس نیز مناسب است به فارسی برگردانده شده، که بهترین گزینه‌ی فارسی موجود است:

  • مبانی علم اقتصاد، گریگوری منکیو، حمیدرضا ارباب، نشر نی.

این کتاب همچنین برای کسانی که می‌خواهند خودشان اقتصاد بخوانند، سودمند است. (درباره کتاب بیشتر بخوانید)

به شما قول می‌دهم پس از گرفتن این درس دید بسیار بهتری نسبت به بسیاری چیزها خواهید داشت و هیچگاه از گرفتن چنین درسی پشیمان نمی‌شوید. اما به یاد داشته باشید که نوشته‌ام «استادی خوب، اقتصاد خوانده‌ و اقتصاد‌دان» چرا که در اینجا هر اقتصاد خوانده‌ای اقتصاد دان نیست، راستش بسیاری از آنها اقتصاددان نیستند. اگر دانشگاه شما دانشکده اقتصاد ندارد و تهران هستید یک گزینه بسیار خوب برای این تدریس محمدرضا فرهای‌پور است. همین جا بگویم که او دوست من است، اما برای این او را معرفی نکرده‌ام، او اقتصاددان خوبی است.

همچنین می‌توانید دوره یا کلاس‌های فشرده برای این درس بگذارید، برای نمونه  به‌شکل 3 -4 هفته، یک روز در هفته (اگر کار می‌کنید: پنجشنبه یا جمعه) و روزی 8 ساعت.

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید. «فهرست همه نوشته‌ها»ی من را اینجا ببینید.

سلام مهندس، روزت مبارک

یادم است آن زمان که دانشجو بودیم این بیماری تنها گریبانگیر دانشجویان پزشکی بود، اکنون می‌بینم که به دانشجویان مهندسی نیز سرایت کرده!
یادم است آن هنگام، تنها دانشجویان پزشکی بودند که از ترم‌های آغازین همدیگر را «خانم دکتر/آقای دکتر» صدا می‌کردند. این بیماری در دانشجویان مهندسی دیده نمی‌شد. درست بخاطر دارم – من کمی زودتر از دیگر دوستان نزدیکم درسم تمام شد- پس از آنکه درسم تمام شد،  تا مدت‌ها دوستان برای اذیت من واژه مهندس را به کار می‌بردند، یا تا چند سال، من و نزدیک‌ترین دوستانم که آنها نیز مهندسند برای ناسزا گفتن به هم واژه مهندس را بکار می‌بردیم. برای نمونه اگر از هم دل‌آزده می‌شدیم، می‌گفتیم «چطوری مهندس، خوبی مهندس!» و باور کنید چندین سال طول کشید تا به این واژه، پیش از نام خود خو بگیرم. اکنون به شکلی فراگیر و جاهایی که فکر می‌کنم نیاز است آن‌را پیش از نام خود بکار می‌برم و از بکار بردن این واژه ابایی ندارم، اما این گونه جمله‌ها  را تازگی بسیار می‌شنوم «مهندس، ریاضی 2 را پاس کردی؟» یا «مهندس، برنامه‌سازی پیشرفته چند شدی؟»

من با آنها که مهندسی نخوانده‌اند و آن را بکار می‌برند کاری ندارم، نیز با آنها که حتا دانشگاه هم نرفته‌اند و خود را مهندس می‌خوانند کاری ندارم:
امروز روز مهندس است، روزتان مبارک.

اما براستی هرکسی «مهندسی» خواند،  مهندس می‌شود!؟
نگاهی به ویکی‌پدیا می‌اندازم (باور کنید هنوز دانشجویان/ مهندسان کامپیوتر بسیاری هستند که نمی‌دانند ویکی‌پدیا چیست) در ویکی‌پدیای فارسی آمده «مهندس کسی است که در یکی از رشته‌های مهندسی آموزش دیده‌باشد و یا به طور حرفه‌ای در آن رشته مشغول به کار باشد. مهندسان از فناوری، ریاضیات، و دانش برای حل مسائل کاربردی استفاده می‌کنند.»  من امروزه کمتر مهندسی را می‌بینم که بتواند مسایل را تحلیل و حل کند. راستش را بخواهید تقریبا قدرت تحلیل / آنالیز مساله دیده نمی‌شود. برگردیم به رشته خودمان، این نوشته خوب و بسیار گویا درباره مهارت‌های بایسته یک مهندس کامپیوتر را که از اینجا نقل آورده‌ام، بخوانید:

A computer engineer needs excellent problem solving skills, a good theoretical grounding in the fundamentals of engineering and the practical skills to put theory into practice. Computer engineers may design computer hardware, write computer programs, integrate the various subsystems together or do all three. Computer engineers need good management skills as they often get quickly promoted to project manager type positions. Furthermore, computer engineers need good people skills, as they have to sell their ideas to other engineers, other professionals and members of the public.

گاهی فکر می‌کنم هنوز برایم بسیار زود است که واژه مهندس را بکار برم. خوب است نگاهی به خودمان بیندازیم، کدامیک از این مهارت‌ها را داریم و چقدر!؟ همچنین تعریف‌های دیگری درباره مهندس نرم‌افزار را در ویکی‌پدیا و اینجا می‌توان دید، نیز فکر میکنم نوشته‌های ویکی‌پدیا درباره مهندسی نرم‌ افزار و تاریخچه مهندسی نرم افزار بسیار آگاهی بخش باشند.

اگر می خواهید بار دیگر که  مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید.