بایگانی برای فروردین, ۱۳۸۸

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

۸ نظر

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

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

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

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

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

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

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

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

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

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

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


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

۲ نظر

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

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

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

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

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

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

How Would You Move Mount Fuji?

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

Smart and Gets Things Done

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

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

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

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


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

۲۲ نظر

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

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

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

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

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

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

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

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


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

۲۸ نظر

۰- درآمد:

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

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

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

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

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

sudo apt-get install build-essential codeblocks

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

۲- اجرا:

به

File -> New -> Projet…

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

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

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

Build ->Build

و سپس

Build->Run

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

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

۳- بیشتر:

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

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

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