چرا نباید عضوی از یک رویداد بود ؟

چرا نباید عضوی از یک رویداد بود ؟ احتمالا با دیدن این سوال از خودتون پرسیدین که یعنی چی ؟ بزارین بیشتر توضیح بدم :

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

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

جواب این سوال توی یک کلمه خلاصه میشه ؛

مدیریت :

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

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

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

نه در یک رویداد بلکه در هر کار حضور مدیر بالا دستی در کنار نیروی تحت امر باعث جذب بیشتر نیرو به مجموعه و در نتیجه باعث پیشرفت خود مجموعه و سود بیشتر میشه .

  • کار تیمی : کارتیمی چیزی که ما اصلا بلد نیستیم ، اصولا یک رویداد که داییه بهبود فرهنگ داره باید در جزئی ترین مسائل هم به دنبال تقویت فرهنگ باشه . تقویت فرهنگ کار تیمی میتونه نقطه خوبی برای شروع باشه .

برای فهمیدن بیت کوین من کارل مارکس میخونم

این روزا که حرف از بیت کوین و اهمیت بیت کوین زیاده مقاله ای منتشر شده با این عنوان: (برای فهمیدن بیت کوین من کارل مارکس میخونم ) که به مقایسه راجع به ساختار بیت کوین و تفکرات اقتصادی مارکس پرداخته ، این مقاله رو بدون تغییر باز نشر میکنم .


برای فهمیدن بیت کوین من کارل مارکس میخونم

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

وب ۳ در حال ظهور است و هیچ یک از صنایع ، دولت ها ، بهداشت عمومی ، مالی و یا خرده فروشی ها مانع آن نخواهد شد .

آنتونیو گارسیا مارتینز میگوید :

درمان بیماری‌های اجتماعی ما در یک آینده‌ی۰هنوز-رخ-نداده(اختراع نشده!!!) نهفته است، نه در یک گذشته‌ی فراموش شده!

چیزهای زیادی است که ما میتوانیم از تاریخ بیاموزیم –به حدی که میتوانیم تکنولوژی های جدید را از ان بیاموزیم.

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

مطالعه مستندات ساتوشی:

ماه پیش من نشسته بودم و مستندات  اصلی ساتوشی ناکوموتو درباره بیت کوین را مطالعه میکردم ،ذهنم واقعا متحیر شده است این یک کار قابل توجه است .

و من هنوز تعدادی سوالات بدون پاسخ دارم :

  • چه حوادثی بر ایده پشت بیت کوین تاثیر گذاشت ؟
  • چرا طراح بیت کوین سعی در مخفی نگه داشتن هویت خود دارد ؟
  • آیا بیت کوین چیزی است که ساتوشی واقعا می گوید ؟

همانطور که در سوالات بالا منعکس شد ، من به بینشی معتقد هستم که مرتبط با هردوی مارکس و ساتوشی است :

“نابغه خلاق است، اما پیش بینی نمی کند.”

به این ترتیب، هر دو مارکس و ساتوشی چشم انداز منطقی و خوبی از آینده را بیان می کنند. اما نه توانایی پیش بینی کردن اینکه چگونه ایده های آنها بر دیگران تاثیر می گذارد یا اجرا می شود. و همچنین نمی توانند خلاقیت خود را کنترل کنند.

نوابغ اکثرا مستبد هستند :

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

اصطلاح “Luddite” به یک گروه واقعی از زمان اشاره دارد که علیه تکنولوژی جدید هستند. این تغییرات و نابرابری های بزرگ بین کارگران ، مارکس را به انتقاد از سرمایه داری وادار کرد و به جای آن یک سیستم اجتماعی پیشنهاد ارائه میداد.

Bitcoin همچنین محصول محیط  است. اسناد Satoshi  که برای اولین بار در سال 2008، کمی بعد از رکود 2007، منتشر شد ، همین ایده را مطرح کرد . این رکود اقتصادی موجب کاهش اعتماد عمومی به نهادهای مالی شد که تا به امروز هنوز هم ادامه دارد. بنابراین، ایده برای دور زدن موسسات متولد شد.

از بین بردن مرکزیت :

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

بدیهی است، این حذف شدن در کشورهایی که کمونیست ها بر قدرت دست داشته اند اتفاق نیافتاده است – و در نتیجه مخالفتی شدیدی با این نظام صورت گرفت .

Satoshi به دنبال حذف واسطه های مالی – بانک ها و شرکت های کارت اعتباری بود که  جریان مالی جهان را کنترل می کند. در عوض، یک شبکه peer-to-peer ایجاد کرد، بدون اینکه دارای مرجع مرکزی باشد. شبکه با دقت ساخته شده تا هیچ یک از بازیگران نتوانند بر معاملات  تاثیر بگذارند.

شیطان در جزیيات :

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

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

این مسئله در حالی که لزوما اشتباه نیست اما به این معنی نیست که امروز بیت کوین با این روش مدیریت می شود .

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

موارد استفاده اصلی Bitcoin در حال حاضر به عنوان یک ابزار سوداگرانه (بسیاری از معامله گران با نوسان قیمت های بزرگ جذب می شوند) و به عنوان یک “طلا دیجیتال” است . اینطور نیست که ساتوشی از ابتدا این مسئله را پیش بینی می کرد.

همانطور که در بالا ذکر شد، مارکس نیز پیش بینی نمی کرد که چگونه از ایدئولوژی خود می تواند برای دستکاری و بهره برداری از جمعیت استفاده کند. ایده یک اقتصاد بی خانمان، در عمل، توتالیتاریسم شد. پوپولیست  که ادعا می کرد که بهترین منافع کارگران در دارد، به قدرت برسد .

میراث آنها:

با این حال، هر دو تفکر بیت کوین و مارکسیست در فرم های جدید، همچنان زندگی می کنند.

مارکسیسم چندین جنبش کارگری در ایالات متحده را تحت تاثیر قرار داد و انتقادات مارکس از سرمایه داری هنوز هم توسط اقتصاددانان و جنبش های مردمی مطرح شده است. اگرچه، چندین کشور، دموکراسی های اجتماعی را به وجود آورده اند که شکل کلی تری از سرمایه داری را تبلیغ می کند.

در مورد بیت کوین، آینده آن در حال حاضر در مقابل ما قرار دارد. این ممکن است که راه حل نهایی  برای پرداخت Peer – to – Peer  نباشد. اما به عنوان یک کالای دیجیتال، چیزی که مردم را ثروتمند می کند، انقلابی بزرگ کرده است .

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


پی نوشت :

  • نویسنده مقاله بالا تام گلدنبرگ که مدیرارشد قسمت فناوری اطلاعات در کمبریج است ، که درحال پژوهش برروی یک پلتفرم ترکیبی رمزنگاری و سهام برای سرمایه گذاران فعالیت میکند .
  • ترجمه بالا به دلیل عدم اطلاعات کافیم در رابطه با تئوری های اقتصادی ممکن دارای نقص باشه ، درصورتی که موردی مشاهده شده در کامنت ها برام بنویسید ، اصلاحشون میکنم .

دستورات لینوکس برای زندگی جنسی بهتر

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

look : نمایش خطوط داده ای که با رشته شروع میشود  
find : جستجو در یک یا چند دیرکتوری فایل سیستم
gawk : نسخه گنو از برنامه awk است
talk : انتقال پیام در یک کامپیوتر چند کاربره 
touch :برای به روز رسانی دسترسی و یا تاریخ تغییر یک فایل یا دایرکتوری مورد استفاده قرار می گیرد
grep : یک ابزار خط فرمان برای جستجوی داده های متنی ساده 
unzip : باز کردن بسته بندی
finger : برنامه ای که با کمک آن میتوان اطلاعاتی درباره کاربران کامپیوتر بدست آورد
mount : فرمانی برای اتصال ابزارهای جانبی به سیستم عامل
fsck : ابزاری برای بررسی ثبات فایل سیستم
gasp : استفاده به عنوان فیلتر
more : فرمانی برای نمایش بیشتر نه تغییر
eject : فرمان خروج امن ،در مقابل با unmount قرار میگیرد
umount : فرمانی برای قطع کردن اتصال ابزار های جانبی از سیستم عامل
makeclean : کاری است که قبل از کامپایل مجدد کد انجام میشود تا مطمئن شوید یک ساختار تمیز دارید
zip : فشرده سازی و بسته بندی 
done :فرمان اتمام انجام فرایند 
exit : برای خروج از یک فرایند بدون ذخیره سازی تغییرات

احتمالا الان میگید که با این تفسیر

لبنوکس حتما باید پسر باشه ؟

درسته که با توجه به دستورات بالا باید اینطوری باشه اما توزیع هایی هم داریم که بد نیست اینجا ازشون حرف بزنم مثلا لینوکس هانامونتانا که برای (لینوکسی بر اساس کوبونتو و با تم هانا مونتانا) دخترانی در رنج سنی ۷ تا ۱۲ ساخته شده .

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

و فلافی بانی که یک تم ( تم برای میز کار KDE) برای بچه های رده
سنی ۵ تا ۱۰ سال ارائه میکنه .


پی نوشت :

  • به ترتیب فرامین دقت کنید
  • تفسیر دستورات فقط برای آشنایی با دستور بوده و ربطی به اصل مطلب ندارد
  • با توجه به به ترتیب دستورات و موضوع بحث تفسیر بر عهده خود خواننده می باشد . (:

 

بیت کوین و چین

در رابطه با بیت کوین و بلاک چین ، این روزها مطالب مختلفی توی وب داره میچرخه و به تناسب قسمتی از این مطالب هم توی وب فارسی میاد

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

ماجرا از این قرار بوده که شخصی به نام آقای وانگ توی مبادلاتش مبلغ ۴۰۰۰۰۰ بیت کوین و از دست میده و به دادگاهی در چین شکایت میکنه که براساس تئوری اقتصادی کارل مارکس هر کالا باید دارای  دو عامل ،ارزش – استفاده و ارزش باشد به عبارتی دیگه  کالا باید ارزش و استفاده داشته باشد .

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

طبق قوانین و مقررات مربوطه چین، بیتکوین توسط مقامات پولی صادر نمی شود ، لذا  دارای ویژگی های قانونی و پولی نیست، “هیچ قانونی وجود ندارد که مانع از سرمایه گذاری و تجارت بیت کوین شود  “و” مردم حق دارند آزادانه در معاملات تجاری بیت کوین با ریسک خود شرکت کنند

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

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

در رابطه به بیت کوین و مسائلش میتونید در وبلاگ رضا بیشتر بخونید :

 

چرا من نمیتونم حتی یک کد ساده بنویسم؟

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

چرا من نمیتونم حتی یک کد ساده بنویسم؟

وقتی پای حرف بچه های کامپیوتری بشینید معمولا چنتا جمله رو زیاد میشنوید :

  • من اصول اولیه رو سرکلاس یاد گرفتم پس چرا نمیتونم  یه برنامه بنویسم ؟
  • من تئوری ها رو بلدم اما نمیتونم از اونها توی کد استفاده کنم ؟
  • من حلقه ها رو میشناسم اما نمیدونم کی باید از اونخا توی کد هام استفاده کنم ؟
  • ….

[در بین این سه تا ، سوال اول از همه بیشتر معروف شده ]

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

نتیجه راهنمایی بیش از حد این میشه که دانشجو سینتکس(syntax) برنامه رو بدون
یادگرفتن مفاهیم برنامه نویسی یاد میگیره.سینتکس متنیه که شما برای یک زبان
برنامه نویسی خاص اونو مینویسید و اینکه سینتکس برای هر زبان برنامه نویسی
متفاوته .چیزی که شما واقعا بهش نیاز دارید دونستن مفاهیمی مثل ، حلقه ها
تکرار ، ارث بری و … . مفاهیم به شما اجازه میدند که کد واقعی بنویسید . وقتی
کسی میگه که در مورد مثلا حلقه های بلده اما نمیدونه کی باید از اونها استفاده کنه
، به این معنی که سینتکس (نحو) بلده اما اصلا مفهوم تکرار و درک نمیکنه .

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

حرف های واقعی :

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

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

نکته: یک محیط برنامه نویسی واقعی ایجاد کنین :

حالا وقتش رسیده تا یه محیط برنامه نویسی واقعی نصب و پیکر بندی کنین.
هر زبان برنامه نویسی نیاز به یک محیط متفاوت داره.

اول، شما نیاز به یک ویرایشگر متن یا IDE (محیط توسعه یکپارچه) دارین.
محبوبترین ویرایشگر متن که ویژه زبان برنامه نویسی ایست که درحال یادگیری
اون هستید ، پیدا و نصب کنین .
در مرحله دوم، شما باید چگونگی اجرای یک فایل حاوی کد را یادبگیرین.

اگر از یک IDE به عنوان ویرایشگر متن خود مثل Visual Studio، Xcode یا Eclipse
استفاده می کنید، این قابلیت (مرحله دوم )در IDE وجود داره.

اگر شما از IDE استفاده نمی کنین، احتمالا باید یاد بگیرین چطور کد خودتونو رو از
خط فرمان اجرا کنین. به دنبال دستورالعمل “شروع به کار” برای زبان برنامه نویسی
خودتان برین و همچنین در YouTube برای فیلمهای آموزشی که می تونید اونها رو
دنبال کنین و بررسی کنین.

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

نکته: برنامه ها را از ابتدا بسازین:

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

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

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

نکته: از کم شروع کنین :

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

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

من می دونم، برنامه های مبتنی بر متن ، گرافیکی و سه بعدی نیستن. شما می دونید که چگونه همه می گند که ، شما نیازی به دونستن ریاضی برای برنامه  نویسی ندارین؟ خوب این برای برنامه نویسی گرافیک 3D درست نیست. شما نیاز به درک مفیدی از هندسه، جبر خطی، و کمی از حساب دیفرانسیل و انتگرال دارین.

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

توصیه من برای مبتدی ها اینکه که بازی های مبتنی بر متن را برای مدتی بنویسن. چند بازی مثل “حدس زدن شماره”، “مسابقه چند گزینه ای” و “تیک تاک” . سعی کنین ماجراجویی کنید.

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

نکته: زیاد برنامه نویسی کنین :

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

کمی شبیه نجاریه. شما می تونین همه چیزهایی را که دوست دارین در مورد نجاری بخونین، اما خوندن تنها به شما مهارت لازم برای ساخت یه میز رو نمیده. اگر واقعا می خواین یاد بگیرین که چطور یه میز  بسازی، باید چوب، یک اره و  چسب ها را اماده کنین و در واقع تلاش کنین تا یه میز  بسازین. اولین میز شما احتمالا وحشتناک میشه. بنابراین شما باید تئوری ها رو بخوانین یا مشاوره بگیرین از یه نجار واقعی . میز دوم هنوز شاهکار نیست، اما بهتر از اولین تلاش شماست. اگر میزهای خود را نگه دارید و بارها تلاش کنید در نهایت شما یک میز دلخواه خواهید داشت.

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

نکته : راهنمایی بخواید :

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

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

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

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

نکته : از راه درست درخواست کمک کنین :

مبتدی ها اغلب نمی خوان سؤالات خودشونو مطرح کنن، چراکه تجربیات اونها در مورد پرسش ها در جامعه برنامه نویسی بسیار دور از انتظارون بوده. اگر سوال خودتونرو به روش درست مطرح کنین، تجربه بهتری پیدا میکنین.

  1. پیام خطا دقیق خود را در جامعه قرار  بدین این مهم ترین عنصر اطلاعاته. اغلب مردم سعی نمی کنن به سؤال جواب بدن مگر اینکه پیام خطای دقیق را ببینن.
  2. اگر پیام خطایی وجود نداشته باشه، توضیح بدین که چه اتفاقی قرار بیفته  و چه اتفاقی افتاده . چیزی شبیه به “من انتظار داشتم که خروجی ۵ باشه، اما در واقع خروجی ۷ شد”. اغلب مشکل در کد شما نیست، در انتظار شماست. اگر شما چیزی را که انتظار نداشتین توضیح ندین، با جواب هایی مثل “کد به نظر میرسه درسته” اما “مشکل چیه؟” روبرو میشین.
  3. کد خراب خود را در جامعه قرار بدین. بدون دیدن کد جواب دادن خیلی سخت میشه.اونرو در اختیار دیگران قرار بدین، اگر اون خیلی بزرگ نیست، چرا که دیگران  کد شمارو برای بررسی مشکل اجرا خواهند کرد. اگر کد بیش از حد بزرگه  اون رو در ،  Github Gist یا Pastebin.com بگذارین، بعد لینک رو به سؤال خودتون اضافه کنین.
  4. کد خود را به درستی فرمت کنید ، کد خودتون رو مثل متن معمولی قرار ندین. یاد بگیرین چطور کد خودتون رو به سادگی فرمت کنین تا بتوانین اونرو بخونین.
  5. آنچه که قبلا سعی کرده اید را بگین. این به دیگران نشون میده که شما قبلا تلاش کردین.
  6. سعی کنید از اصطلاحات صحیح استفاده کنین. این همیشه امکان پذیر نیست، چرا که شما هنوز هم تمام اصطلاحات را یاد می گیرین، اما بهترین شات را به در جامعه قرار بدین. تلاش کنین که شرایط مشترک رو یاد بگیرین و از اونها به درستی استفاده کنین.

نتیجه :

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

یک محیط برنامه نویسی واقعی را با یک IDE یا یک ویرایشگر متن تنظیم کنین. قبل از رفتن به پروژه های بزرگتر و پیچیده، برنامه های مبتنی بر متن را بنویسین تا همه ویژگی های زبان برنامه نویسی انتخاب شده رو یاد بگیرین. خودتون تمام کدهای خودتون رو بنویسین. ابتدا کد رو بدون کپی کردن وکمک گرفتن از افراد دیگر بنویسین.

زیاد کد بنویسین روش های مختلف را بخونید، خواندن، کد کردن، خواندن، کد کردن، خواندن و غیره و در نهایت شما رو حرفه ای میکنه.

وقتی که گیر کردین، سعی کنین مشکل خودتونو حل کنین، اما اگر نتونستین نگران نباشین کمک بخواین. اگر سؤال کنین، سریع تر یاد میگیرین. برای یک تجربه لذت بخش تر، به یاد بیارین که چطور از راه های صحیح سوال بپرسین، چرا که جامعه برنامه نویسی دارای چند ویژگی وحشتناکه.

از همه مهمتر، از آن لذت ببرید و ادامه دهید!

پی نوشت :

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