آموزش بازتعریف اپراتورها در ++C

بازتعریف مجدد اپراتورها(Operator overloading) یکی از ویژگیهای قدرتمند و جذاب و پر کاربرد به خصوص در ریاضیات است. در این ویژگی زبان ++C به برنامه نویس اجازه تعریف مجدد اپراتورهای موجود در زبان مانند(+ و – و * و …) را روی کلاسهای عمدتاً محاسباتی هستند را بدون تغییر کتابخانه های استاندارد می دهد.
در این کلیپ با یک مثال ساده تعریف اپراتورهای درج (Insertion)(>>) و استخراج(Extraction)<< را می آموزیم.

تعریف تابع دوست برای یک کلاس

تابع دوست یکی از امکانات یا ویژگی هایی است که در زبان ++C به برنامه نویس اجازه می دهد که توابعی خارج از محدوده (Scope) کلاس تعریف کند و اجازه دسترسی به عناصر خصوصی (Private) کلاس را به توابع با کلمه کلیدی friend(به معنای دوست) بدهد.
دلیل این کار، افزایش کارایی یا به زبان ساده تر افزایش سرعت اجرای برنامه ها به خصوص زمانی که تعداد فراخوانی این نوع توابع در برنامه با نرخ بالایی انجام میشود.
البته نقدهایی هم به وجود چنین ویژگی هایی در زبان ++C وجود دارد که از طرف گروه طراحان مباحث شی گرایی به لحاظ فلسفی و یا اصول مهندسی نرم افزار مطرح می کنند. به جهت اینکه ما اصول طراحی شی گرا را با این ویژگی friend به نوعی تضعیف و یا زیر پا می گذاریم. مثل این است که شما یک گاو صندوق بخرید و یک کپی از کلید این گاو صندوق را به بعضی از دوستانتان بدهید. به دلایلی مثل این که این دوستان با بقیه فرق می کنند و  شما آنها را به دلایلی که برای شما موجه است مستثنی کرده اید. اما از دید پلیس یا مراجع قضایی این کار شما یکجور بی احتیاطی تلقی می شود. دیگر این اسناد و اطلاعات موجود در گاوصندوق جنبه محرمانگی (Private) را نخواهند داشت.
بنابراین توصیه میشود که یا از این ویژگی friend در طراحی کلاسها استفاده نکنید یا اینکه با رعایت تمامی اصول طراحی حفظ اطلاعات در کلاسها از این ویژگی بصورت محدود استفاده کنید.

آموزش ++C- آشنایی با اشاره گر (Pointer)

اشاره گر (Pointer) یکی از ویژگی های قدرتمند زبان ++C است. کار کردن با آن نیاز به دقت و فهم دقیق این مفهوم داد. به زبان ساده نوعی داده (Data type) است که محتوای آن برخلاف بقیه انواع داده ای بجای اینکه اطلاعات باشد، آدرس مکان اطلاعات است.

در این کلیپ کوتاه با یک مثال ساده تعریف و بکار گیری اشاره گر نشان داده شده است.

این کلیپ تنها آشنایی با اشاره گر است و کاربردهای بیشتر را در پستهای بعدی خواهیم دید

آموزش برنامه نویسی جاوا

سلام خدمت تمام دوستان

قصد دارم با شیوه جدیدی زبان برنامه نویسی جاوا را بعد از سالها تدریس در دانشگاه در اینجا خدمتتان ارائه دهم.

خیلی از دانشجویان را دیده ام که برنامه نویسی برایشان مثل یک کابوس می ماند و خیلی از آنها امیدی ندارند که روزی بتوانند برنامه نویس شوند.

دوست دارم نگرش نادرستی که در آموزش برنامه نویسی وجود دارد را اصلاح کنم.

اگر با طرز فکر درستی به زبان برنامه نویسی و خود برنامه  نویسی نگاه کنیم، برنامه نویسی یک کار بسیار لذت بخش برای ما خواهد شد.

خیلی از ایرادهایی که افراد در شروع برنامه نویسی دارند، انتظار و تلقی غلطی از برنامه نویسی در ذهنشان شکل گرفته است.

به هر حال ما در اینجا به زودی آموزش های گام به گام را برای کسانی که هیچی چیزی از برنامه نویسی نمی دانند قرار خواهیم داد.

 

شفای خلاقیت با تشویق دیگران

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

پس هر روز تمرین میکنم حداقل ده نفر را بابت کارشان و یا رفتارشان ولو کوچک باشد تشویق کنم.
بعد از چند روز بیایید تجربیات خود را در همینجا به اشتراک بگذاریم.
افرادی که موافق هستند با هشتگ
#تشویق_دیگران اعلام کنند.

 

چطور کتاب خوانی را ترویج دهیم؟

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

چگونه محتوای با کیفیت تولید کنیم؟

 

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

یکی از ویژگی های نامطلوب در تولید محتوا و به قول شاهین کلانتری قاتل محتوا، کلی گویی در تولید محتواست. بنابراین می خواهم در واکنش به این پست باکیفیت ایشان، موضوع “محتوای با کیفیت” را که از اشکال کلی گویی مبرا کرده ام، ارائه کنم. شاید بتوان گفت این پست من، در ادامه پست ایشان باشد.  

یکی از ویژگیهای مهم  پست های با کیفیت:

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

 به عنوان مثال نمونه های زیر را با هم مرور می کینم تا بهتر این ویژگی را درک کنیم.

  • پستی با ارزش است که بعد از خواندن آن شما دوست دارید دست به کار شوید. واکنش نشان بدهید، مثلاً کامنت بگذارید، مثلاً من در مورد نوشته های وبلاگ شاهین کلانتری یا سایت متمم، بیشترین کامنت را گذاشته ام.
  • در شما عطش دانستن بیشتر ایجاد کند. مثلاً وادار میشوید در گوگل جستجو کنید، حتی شاید به دنبال یافتن کتابهای مربوط به موضوع پست باشید، مثلاً من با ایده صفحات صبحگاهی جولیا کامرون در اینجا بود که آشنا شدم. اولین بار من وقتی این ایده را از لابه لای تجربیات وبلاگ شخصی شاهین کلانتری دیدم، به ذوق آمدم که کتاب راه هنرمند و حق نوشتن را بخرم. در عرض ۴ روز یک دور کتاب راه هنرمند را خواندم. دیدگاه من نسبت به نوشتن به کلی تغییر کرد. طوری که هنوز هم این تغییر بخشی از سبک و طرز فکر من را تشکیل می دهد. ایجاد این وبلاگ از تاثیر چنین پستی بوده است.
  • پست با ارزش باید با افراد مطرح و تراز اول در حوزه کاری خود آشنا کند. به عنوان مثال شما در سایت متمم می توانید، در حوزه های کسب و کار، تولید محتوا با نویسندگان معروف و اثر گذار مانند نسیم طالب، کریستینا هالورسون آشنا شوید.
  • حتی ممکن است یک محتوا، شما را عاشق کند و سرنوشت کاری یا سبک زندگی شما را تغییر دهد. به عنوان نمونه با کتاب سووشون سیمین دانشور، رضا امیرخانی عاشق رمان و نویسندگی میشود و الان یک نویسنده موفق کتابهای داستانی است.
  • انتظار و توقع شما را در حل یک مساله و دغدغه متعادل میکند. به عنوان مثال برای تولید محتوای در قالب متن و عمدتاً پست، این پست تولید آشغال می تواند در شما انگیزه زیادی برای شروع نوشتن ایجاد کند.
  • برای حل مساله و دغدغه ذهنی مخاطب یک راه حل دقیق و عملی و با جزییات ارائه می دهد: به عنوان مثال این پست معیارهای خوبی برای پست مفید بصورت چک لیست ارائه کرده است: ارزیابی یک پست مفید بصورت گام به گام(البته به انگلیسی است)

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

فروتنی تولید محتوا

بعضی از وبلاگ ها را که می خوانم حس می کنم کسی در مقام استاد و معلم و فرزانه ای نشسته و به دیگران پند می دهد.
از رازها چنان می گوید که فکر می کند تنها خودش به ایده هایی دست یافته و دیگران از آن بی نصیبند.
یکی از پست های شاهین کلانتری را می خواندم در رابطه با تکرار کردن چیزهایی که یادگرفته ایم یا خوانده ایم. این بهانه ای شد برای نوشتن این پست.
من پسری دارم سه ساله، هر روز که از خواب بیدار میشود کارهایش را که زیر نظر می گیرم، می بینم بخشی از آنها تقلیدی از کارهای افراد خانه است. حرفهایی که می زند همان حرفهایی است که تازه شنیده است. معنی خیلی از آنها را هم نمی فهمد. تلفظش هم اشتباه است. بماند که این تلفظ های نادرست برای بزرگترها شیرین است. مثلاً دوچرخه را دوخچه می گوید.
ما بزرگترها می خندیم و او همچنان با همان اشتباهات تکرار می کند ولی دست از یادگیری برنمی دارد. به راهش ادامه میدهد. بلاخره هم روزی تلفظ هایش درست خواهد شد.
گاهی گوشی موبایل را در سبد سیب زمیی می گذارد و نقش فروشنده را بازی میکند. برایش مهم نیست که بگویند سیب زمینی و موبایل از یک جنس نیست.او کارهایش را تکرار میکند.
بدون این که کسی به او آموزش مستقیمی بدهد، خودش در حال یادگیری است.
جار و جنجال هم راه نمی اندازد و قدقد هم نمی کند که بگوید آهای دنیا بیایید ببینید من در حال یادگیری هستم.
پس آیا او در حال تولید محتوا برای خودش نیست. آنهم با فروتنی. بدون ادعا. صادقانه. بدون چشم داشت تشویق و کامنتی! او واقعاً تولید محتوا می کند! بدون هیاهو! او مدام در حال یادگیری است و زندگی می کند با یادگیری. نگران مطرح شدن هم نیست.
ما یک روزی بچه بودیم و تولید محتوا می کردیم، جار و جنجال هم راه نمی انداختیم. میزان یادگیری ما در سالهای اول زندگی گفته میشود سرسام آور است. بچه ای که در عرض دو سال اول زندگی خود یک زبان را بدون اینکه کلاسی برود و گرامری بداند و تجربه ای را داشته باشد، یاد می گیرد. کاری که ما در سن ۲۰ تا ۳۵ هم با این ها منابع و کتاب و کلاس و تجربه و تئوریهای یادگیری و فرمولهای گرامری برایمان سخت است انجامش.
پس ما زمانی در بچگی در حال تولید محتوا بوده ایم و به مرور تنبل شده ایم.
روش بچه گانه را که بر اساس همان تکرار است را به تمسخر گرفته ایم.
درس خوانده ایم که فرمولهایی یادبگیریم که تکرار نکنیم صاف بزنیم توی خال.
پس دیگر راه یادگیری طبیعی را به روی خود بسته ایم. این نعمت خدادادی که به همه داده شده است. جایش ذهنمان پر شده از کلماتی که توهم فهم انها را داریم.
مثل همین تولید محتوا.
باید برگردیم به هما روزهای تکرار بی ادعای صادقانه و فروتنی صادقانه دوران بچگی خود در تولید محتوا بدون اینکه از تولید محتوا بگوید.
هر بار خواستم محتوایی تولید کنم، خودم را همان بچه ای بدانم که با تکرار و یادگیری کودکانه چیزی را یاد میگیرد و با اشتباهات چیزی را تولید می کند به امید روزهای بهتر تولید.
این میشود فروتنی تولید محتوا
انتهایی هم ندارد.
تازه نگران کامنتها هم نیست.
برای خودش دارد بازی می کند.
زندگی صادقانه ای هم پیش گرفته.

تکنیک ساده برای نوشتن پست های باارزش

یکی از دغدغه های هر کسی که وارد عرصه تولید محتوا میشود تصمیم گیری در مورد انتخاب موضوع مورد توجه مخاطبان است. در این جا می خواهم یک راه برای برون رفت از این سرگردانی ارائه دهم. 

یک فایل ورد باز کنید و یا روی یک کاغذ لیستی از تمام موضوعاتی را تهیه کنید که می توانید در آن قلمرو به دیگران کمک کنید تا از عهده انجام کاری برآیند.

برای نمونه لیست من بصورت زیر شده است:

  • چگونه برنامه نویسی را شروع کنیم؟
  • چه راهی برای درک بهتر مباحث مربوط به حد و مشتق وجود دارد؟
  • چه طور میتوان یک الگوریتم جدید برای یک مساله طراحی کرد؟
  • چطور می توان یک مقدمه برای یک مقاله نوشت؟
  • چطور می توان یک روش را ارزیابی کرد؟

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

به عنوان مثال من همان موضوع” چگونه برنامه نویسی را شروع کنیم” را انتخاب کرده ام و این موضوع را بیشتر توضیح می دهم. مثل این می ماند که به مشتری خود بگویید چه خدماتی به شما ارائه خواهد شد:

چگونه برنامه نویسی را شروع کنیم:

من می خواهم به افرادی که تازه می خواهند برنامه نویسی را شروع کنند از تجربیات خود و کتابهایی که مطالعه کرده ام، یک نگرشی بدهم که شروع برنامه نویسی با لذت و جذابیت همراه باشد. بیشتر وقتها در شروع با ذهنیت و انتظارات غلط کار برنامه نویسی برای خیلی ها دشوار می نماید. همین باعث سرخوردگی و ناامیدی خیلی ها شده است. در بسیاری از کتابهای معتبر آموزش زبان برنامه نویسی تنها روی تکنیک های برنامه نویسی متمرکز هستند و از ایجاد مدل ذهنی کارا و یا استراتژی یادگیری غفلت کرده اند. لذا تعداد زیادی از دانشجویان و یا افراد علاقمند در همان ابتدای راه یادگیری انگیزه خود را برای ادامه مسیر  از دست می دهند و به خودشان می گویند که برنامه نویسی کار من نیست، بهتر است به سراغ کار دیگری بروم. در صورتی که با داشتن مدل ذهنی واقعی و انجام یکسری تمرین های با استراتژی اثربخش می توانستند به سطح برنامه نویس حرفه ای در حوزه های متنوع در کسب و کار امروز برسند و متاسفانه این فرصت از دست آنها می رود. ……

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

امیدوارم با این تکنیک ساده بتوانید استراتژی محتوای وبلاگ و یا سازمان خود را راحتتر از قبل راه اندازی کنید. 

اگر ایده یا روش دیگری در این زمینه دارید، بسیار خوشحال می شوم آنرا با من هم در میان بگذارید تا در پست های بعدی بیشتر در مورد آن بنویسم.