آیا می دانستید با یادگیری برنامه نویسی، راه برای یادگیری سایر مهارت ها هموارتر می گردد؟

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

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

در ماه می سال 2007، یک گروه تحقیقاتی در MIT Media Lab (آزمایشگاه تحقیقاتی میان رشته ای در ماساچوست) زبان برنامه نویسی Scratch و وب سایت آنلاین آن (به آدرس scratch.mit.edu) را راه اندازی کردند تا برنامه نویسی را برای تمامی افراد در دسترس و جذاب کنند. از آن زمان، جوانان (سنین 8 سال به بالا) بیش از 4.5 میلیون پروژه را در وب سایت Scratch به اشتراک گذاشته اند و هر روزه هزاران پروژه نیز به این مجموعه افزوده می شود. Scratch در مکان های مختلفی (خانه، مدرسه، آزمایشگاه، مراکز اجتماعی)، توسط افرادی در سطوح مختلف سنی (از مدارس ابتدایی تا دانشگاه)، و در رشته های بسیاری (ریاضی، علوم کامپیوتر، زبان، مطالعات اجتماعی و …) مورد استفاده قرار می گیرد.

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

یکی از پروژه هایی که توسط دختر 12 ساله ای در Scratch انجام شده بود، یک کارت کریسمس با تصاویر کارتونی بابانوئل و گوزن های شمالی او بود. هر گوزن یک آلت موسیقی داشت که موقع کلیک بر روی آنها، هر کدام قسمتی از آهنگ “کریسمس مبارک” را می خواندند. این دختر جوان که با نام BlueSaturn در این سایت معروف است، برای تمام دوستانش لینکی از این پروژه را به عنوان هدیه روز کریسمس فرستاد.

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

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

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

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

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

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

نوشته آیا می دانستید با یادگیری برنامه نویسی، راه برای یادگیری سایر مهارت ها هموارتر می گردد؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

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

خوب این اولین پست و متنیه که مینویسم. سعی میکنم کوتاه باشه که حوصله خوندشو داشته باشی.

خوب ما برنامه نویس ها به سلامت جسم و روانمون با توجه به این که مدتی در روز (بستگی به فرد داره ) مشغول کد زدن هستیم اهمیت میدیم ؟

ایا برنامه نویسی که ذاتش پشت سیستم نشستن(به مدت مدید) هست باعث تاثیر منفی روی روابط اجتماعیتون نشده ؟

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

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

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

برنامه نویسی شغل خطرناکی نیست اما هستن برنامه نویسایی(و مشاغل دیگری که پشت کامپیوتر هستن) که به مرور زمان دچار مشکلات جسمی شدن . و جالبه که اغلب نگران کدها هستیم تا سلامتیمون.خوب دیگه بریم سره اصل مطلب :

نامبر 1 : (روابط اجتماعی ) (اگه بیش از حد درونگرایی نمیخواد این قسمت و بخونی )

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

/*******************************************************************************/

نامبر 2 🙁 به خودت استراحت بده ) :

وقفه کوتاه و استراحت در حین کار بسیار مهمه . نوشتن یک برنامه در طول روز (روی کاغذ) قطعا فرصتی رو ایجاد میکنه که هر یک ساعت تا 75 دقیقه استراحتی ده یا پانزده دقیقه ای رو به خودت بدی . این جوری هم به چشم ها استراحت میدیم و هم مغز ریکاوری میشه برای راند بعدی .حالا اگه 3 4 ساعت پشت سیستم بکوب بشینیم چی میشه ؟

جریان خون محدود به قسمت های خاصی از بدن در اون بازه زمانی میشه ،چاقی ، فشار خون بالا و از همه بدتر =>

(bad body posture)

/****************************************************************************/

نامبر 3 : (اعتیاد به کافیین ):

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

حالا مصرف بیش از حدش چیکار میکنه با بدن :

—باعث تغییر تو الگوی خواب میشه .

–اضطراب و بی قراری

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

/******************************************************************************************/

نامبر 4 : درد کمر و گردن :

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

—–کشش در فواصل منظم

—–از داشتن ویتامین D و کلسیم در رژیم خودتون اطمینان داشته باشید .

—–نحوه نشستن .

/**********************************************************************************************/

نامبر 5 : (مدیریت استرس )

خوب یه استرس هست بهش میگن استرس کامپیوتری که برای برنامه نویسا یه اتفاق ثابته .

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

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

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

حالا بنظرتون چه چیزای دیگه میتونه برنامه نویسیو خطرناک کنه برای هر فرد ؟ 😉

نوشته برنامه نویسی شغل خطرناکیه ؟ . تاحالا بهش فکر کردی؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

چطوری خدای پایتون بشم؟ خوان اول

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

خوان اول: آشنایی

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

بهترین منابع برای یادگیری پایتون:

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

منابع انگلیسی:

کتاب Learn Python The Hard Way یکی از بهترین کتابهاست. از اسمش نترسید. درواقع اصلن هم سخت نیست. آموزش بر اساس مثال پیش می‌ره و خیلی دلنشین هم هست.

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

دوره‌ی ویدیویی Python Essential Training از سایت معروف لیندا هم یکی از گزینه‌های خوبه. نزدیک ۵ ساعت ویدیوئه که کلیت ماجرا رو خوب پوشش می‌ده.

رویکرد پیشنهادی: برای دست گرمی، دوره‌ی Sololearn رو بخونید یا کورس لیندا رو ببینید که با برنامه‌نویسی به صورت کلی آشنا بشید. بعد برید سراغ Learn Python The Hard Way و شروع کنید به یادگیری. حتمن هم تمرین ها رو همراه باهاش پیش برید. توی برنامه نویس شدن تمرین خیلی خیلی از مطالعه کردن مهمه تره.

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

منابع فارسی:

آموزش پایتون فرادرس تدریس شده توسط میترا تجربه کار. ۱۸ ساعت آموزشه و توی سرفصل‌هاش چیزای مهم پوشش داده شده. هزینه‌ش هم ۴۰ هزار تومنه.

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

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

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

توی هر جای کار هم نیاز به کمک داشتید، یا سوالی براتون پیش اومد، زیر همین مطلب بپرسید و من تلاش می‌کنم که زود جواب بدم. 🙂

اگر این مرحله رو تموم کردید، برید سراغ خوان دوم —-> به زودی.

اگر براتون مفید بود مطلب، با حمایت کردن ازش من رو دلگرم کنید برای تهیه کردن محتوا‌های بعدی. برای این کار می‌تونید از لایک کردن و کامنت کردن نظر و پیشنهاداتون شروع کنید و بعدش هم من رو توی توییتر دنبال کنید. شناسه‌ی من در توییتر: https://twitter.com/re_ke_mo

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

نوشته چطوری خدای پایتون بشم؟ خوان اول اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

چرا بیشتر پروژه های بزرگ همواره بر روی کاغذ می مانند؟

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

در هنگام پیاده سازی پروژه تیم برنامه نویسی سعی می کنند با یک بررسی دیگر شروع به کار کنند و تمام قابلیت ها و ویژگی های برنامه را پیاده سازی کنند و این شروع مرگ تدریجی پروژه است!

پروژههای بسیاری بودند که با داشتن هزار و یک ویژگی فوق العاده هیچگاه به جز روی کاغذ و یا هارد کامپیوتر به جایی نرسیدند و آن هم فقط و فقط به یک دلیل . کمال گرایی !!

قاعده KISS  در ده ۷۰ میلادی توسط نیروی دریایی ایالات متحده مطرح شد. این قاعد می گویید :


ساده انجام بده احمق!!


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

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

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

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

نوشته چرا بیشتر پروژه های بزرگ همواره بر روی کاغذ می مانند؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

سوالات بی جواب!

سوالاتی بی جواب از برنامه نویسی

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

  • w3schools.com ( بهترین و کامل ترین و ساده ترین سایت آموزش برنامه نویسی با امکان تمرین و تست )
  • bloc.io ( وب سایتی برای آموزش آنلاین برنامه نویسی )
  • continuinged.uml.edu ( وب سایتی برای آموزش آنلاین برنامه نویسی با ارائه مدرک )
  • codeavengers.com ( بستر آنلاین و رایگان برای شروع آموزش برنامه نویسی )
  • html.ir ( وب سایتی برای آموزش ساده و قدم به قدم html از صفر )
  • lynda.com ( وب سایتی برای آموزش اس کیو ال سرور )

____________________________________________________________________________________________

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

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

  1. مدت زمان فراگیری زبان
  2. استعداد و هوش شما

معمولا 3 تا 6 ماه این زبان ها فرا می گیرید، مگر این که خیلی خل باشید که اونم به نظرم برید تو معدن کار کنید..

____________________________________________________________________________________________

مدرک لازم است؟

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

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

__________________________________________________________________________________________

برای خودمان کار کنیم یا استخدام شویم؟

خیلی ها بعد از یادگیری و شروع کردن به شرکت ها می روند و انتظار دارند که حقوق خوب بگیرند ولی حیف که حقوق خوبی در کار نیست و تصمیم می گیرند که برای خودشان کار کنند…

_________________________________________________________________________________________

چند زبان با هم یادگرفتن

در اول کار اصلا توصیه نمیشه چون از برنامه نویسی زده می شوید، از این کار محروم، پس اول روی یک زبان(که اصولاً زبان C از همه بهتر است) ولی همه پایه هایی که برنامه نویسی است پس بهتر است اول از زبان C و بعد از آن هر زبانی را که دوست داشتید ببینید

_________________________________________________________________________________________

دنبال بودن برنامه روی چند پلتفرم باشیم

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

________________________________________________________________________________________–

نیاز های برنامه نویسی

  1. ساختمان داده
  2. الگوریتم و فلوچارت

این موارد کاملا نیاز است، یعنی اگه بلد نباشید تقریباً هیچی بلد نیستید، روی ساختمان داده نیز زیاد تمرکز نکیید چون زیاد به کار سما نمیاد و فقط کسایی که مثل بنده می خواد بره فناوری اطلاعات(IT) این ها رو کمی یاد می گیره


نوشته سوالات بی جواب! اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

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

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

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

فعالیت هایی که میتوانید از همین امروز شروع کنید

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

۱. چالش های کدنویسی الگوریتم ها

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

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

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

۲. در پروژه‌های منبع باز مشارکت کنید

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

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

  • پروژه First Contributions با هدف ارائه راهنمایی به مبتدیانی که می خواهند اولین مشارکت خود را انجام دهند، ایجاد شده است.
  • GitHub Help Wanted برنامه ای است که به شما امکان می دهد تا پروژه ها را براساس میزان دشواری فیلتر کنید تا به پروژه مورد نظر دست پیدا کنید. معمولا پروژه هایی که برای افراد مبتدی آسان تر است با برچسب های easy نشان گذاری میشوند.

۳. یک پکیج ایجاد کنید

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

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

کار دیگری که انجام دادم تهیه مستندات برای هر خط کدی بود که نوشته بودم. این کار مشارکت دیگران در بهینه کردن کدهای مرا آسان تر کرد. من از میزان دانلودی که این بسته داشته ام بسیار راضی ام و امیدوارم بتوانم پروژهای بیشتری را به اشتراک بگذارم.

۴. محصول خود را راه‌اندازی کنید

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

  • محصول شما باید چه ویژگی هایی داشته باشد و شما باید چطور آنها را توسعه دهید؟
  • چطور باید محصول خود را بازاریابی کنید و برای آن مشتری پیدا کنید؟

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

۵. سعی کنید دانش خود را با نوشتن مقالات در اختیار دیگران قرار دهد

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

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

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

منبع : لرن سورس

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

گردآوری توسط ایده طلایی

حمله Arp Cache Poisoning با استفاده Python

شرح و پیاده سازی حمله Arp Cache Poisoning با استفاده از زبان برنامه نویسی Python

  • این حمله با استفاده از ماژول Scapy در پایتون انجام می شود

نحوه نصب Scapy:

sudo pip install scapy 

نحوه اجرای آن به این صورت است که کافیست در Terminal خود کلمه scapy را وارد کنید تا مفسر آن اجرا شود

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

git clone https://github.com/secdev/scapy
cd scapy
sudo ./run_scapy

ویدیو این آموزش در آپارات از طریق لینک زیرقابل تماشا می‌باشد

http://www.aparat.com/v/qT21b

نوشته حمله Arp Cache Poisoning با استفاده Python اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

سرعت و قدرت در سیستم جدید یونیتی DOTS

اگر به سیر تکاملی پردازش در کامیپوتر ها و بازی های رایانه ای در دهه ی اخیر نگاهی بیندازیم، متوجه تغییرات اساسی در این ده سال خواهیم شد. اما یکی از بزرگترین تحولات، گذار از دنیایی است که در آن 90 درصد کدها بر روی یک رشته یا یک هسته اجرا می شد به سمت دنیایی که در آن سخت افزار هایی در اختیار همگان قرار دارد که چندین هسته گرافیکی و محاسباتی دارند. در نتیجه در این دنیا ما باید کدهای بهینه ای طراحی کنیم که به شکل موازی اجرا شوند و از پتانسیل سخت افزار، حداکثر استفاده را ببرند. درنتیجه یونیتی این ضرورت را احساس کرد که با این الگوی جدید خود را وفق دهد. سیستم های پایه ای Unity در دوره ای متفاوت طراحی شده اند و اکنون زمان آن فرا رسیده است که با آینده سازگار شوند. پشته ی تکنولوژی داده محور (Data-Oriented Technology Stack) که به اختصار DOTS نامیده می شود، نام سیستمی است که برایندِ تلاش تیم توسعه دهنده ی یونیتی برای باز سازی معماری داخلی ش است به گونه ای که سریع تر، سبک تر و از همه مهم تر به بهینه ترین شکل در تعامل با دنیای عظیمِ چند رشته ای کنونی عمل کند.

در این مقاله نگاهی به سه مولفه ی اصلی DOTS خواهیم انداخت و این موضوع را مورد بررسی قرار میدهیم که چگونه به کمک آن می توانیم بازی های نسل آینده را تولید کنیم.

پشته ی تکنولوژی داده محور (DOTS)

سه عنصر اصلی DOTS :

  1. سیستم کامپوننت موجودیت (ECS)
  2. سیستم کاری سی شارپ (C# Job System)
  3. کامپایلر انفجاری (Burst Compiler)

اکنون میخواهیم نگاهی به این بخش ها بیندازیم:

1. سیستم کامپوننت موجودیت (ECS)

اگر با یونیتی آشنا باشید، میدانید که دو ساختار اساسی که در تمام بخش های بازی وجود دارند عبارت است از: GameObject و MonoBehavior . تمامی GameObject ها شامل یک یا چندین MonoBehavior می باشند که داده ها (آنچه این شیء میداند) و رفتار هایِ هر عنصر (کاری که این شیء انجام میدهد) در یک Scene را توصیف میکنند.

پیش از هر چیزی بهتر است بدانید که GameObject یک ساختمان داده بسیار سنگین و چاق است ! در تئوری، GameObject باید فقط محفظه ای برای نگهداری از نمونه یِ MonoBehavior باشد اما در عمل به این شکل پیش نمیرود و مشکلات قابل توجهی وجود دارد، برای مثال:

  1. هر GameObject یک اسم و شناسه دارد.
  2. هر GameObject یک شیء بسته بندی شده #C دارد که به کد نیتیو ++C اشاره میکند.
  3. ساختن و حذف کردن یک GameObject نیازمند قفل کردن و ویرایش یک لیست گلوبال است (و این به این معنا است که این عملیات ها به طور موازی قابل اجرا نیستند).

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

برای حل تمامی این مشکلات، یونیتی سیستم کامپوننت موجودیت (ECS) را پیشنهاد و معرفی میکند و آن را به عنوان پارادایمِ جدیدی برای جایگزینی سیستم قدیمیِ GameObject / MonoBehavior مطرح میکند.

همانطور که از اسمِ این سیستم مشخص است، از سه بخش تشکیل شده است:

  1. کامپوننت ها: که از لحاظ مفهومی شبیه به MonoBehavior هستند، اما با این تفاوت که فقط شامل داده خواهند بود. برای مثال یک کامپوننت پوزیشن فقط شامل یک وکتور 3 بعدی خواهد بود، یا یک کامپوننت LinearVelocity فقط اطلاعاتِ سرعت آن شئ را نگه میدارد و به همین ترتیب. کامپوننت ها فقط داده های ساده هستند.
  2. موجودیت ها (Entities): آنها فقط مجموعه ای از کامپوننت ها هستند. برای مثال اگر یک پارتیکل در فضا داشته باشید، میتوانید آن را با لیستی از کامپوننت ها نمایش دهید، برای مثال کامپوننت های Position و LinearVelocity .
  3. سیستم: سیستم جایی است که رفتارها رو در آن مدیریت میکنیم. هر سیستم لیستی از کامپوننت ها را دریافت میکند و تابعی را روی تمامی موجودیت هایِ ایجاد شده توسط کامپوننت ها، اجرا میکند.

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

به کمک این سیستم میتوانیم کامپوننت ها را در آرایه های پیوسته ذخیره کنیم و سپس از موجودیت کمک بگیریم، موجودیتی که فقط یک پوینتر به نمونه اولیه است. همچنین یک تابع برای هر سیستم میتواند رفتار هزاران موجودیتِ مشابه را تعیین کند. این رفتار بسیار بهینه تر از اجرا شدن Update بر روی هر MonoBehavior در هر GameObject است.

به همین دلیل در ECS میتوانیم بدون هرگونه کند شدن یا سرباری برای سیستم از موجودیت ها استفاده کنیم که در نمونه های GameObject این موضوع غیرممکن بود. برای مثال میتوان تنها از یک موجودیت برای تمام پارتیکل هایِ پارتیکل سیستم استفاده کرد.

2. سیستم کاری سی شارپ (C# Job System)

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

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

اما خوشبختانه یونیتی مولفه ای را درون DOTS تعبیه کرده که هدفش ساده سازی برنامه نویسی چند هسته ای در یونیتی از طریق زبان #C است: سیستم کار.

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

3. کامپایلر انفجاری (Burst Compiler)

آیا حرف من را باور میکنید اگر به شما بگویم که این امکان وجود دارد که با نوشتن کد به زبان #C به جای ++C، به راندمان بالاتری دست پیدا کنید؟ آیا فکر میکنید عقلم را از دست داده ام؟ اما هنوز عقلم سر جایش است ! و این موضوع ، هدفِ آخرین کامپوننت DOTS است: کامپایلر انفجاری.

کامپایلر انفجاری یک تولید کننده ی تخصصی کد است که یک نوع زیرمجموعه از زبان #C (که High-Performance C# یا به اختصار #HPC نامیده می شود) را به کد های ماشین کامپایل میکند که اغلب اوقات کوچک تر و سریع تر از کدهای معادلش در ++C است.

کامپایلر انفجاری در حالت آزمایشی است اما شما میتوانید از طریق Package Manager یونیتی آن را به پروژه تان اضافه کنید و مورد بررسی و استفاده قرار دهید. مطمئنا هنگامی که این کامپایلر را با دو مولفه ی دیگر DOTS ترکیب کنید، به حداکثر راندمان و قدرت این سیستم دست پیدا خواهید کرد.


منبع: Packt

ترجمه شده در شماره 30 بازینامه

نوشته سرعت و قدرت در سیستم جدید یونیتی DOTS اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

راهنمای گام به گام حرفه ای شدن، البته در برنامه نویسی!

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

این مطلب قسمتی از آموزش برنامه نویس حرفه ای شدن است. برای تبدیل شدن به یک برنامه نویس حرفه ای عموما باید ۸ مرحله‌ی زیر را انجام دهید و از آن‌ها پیروی کنید:

  1. مشخص کردن هدف کلی خودتون از برنامه نویسی
  2. ایجاد یک برنامه‌ی منظم برای یادگیری مهارت‌های مورد نیازتون
  3. انتخاب زبان برنامه نویسی
  4. ایجاد و حل پروژه‌های کوچک
  5. یادگیری مفاهیم پایه کامپیوتر
  6. شروع یادگیری برنامه نویسی
  7. جستجو در مورد فرصت‌های شغلی و آشنایی با شرکت‌های خواهان
  8. انجام دادن یک کار فردی یا گروهی

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


گام اول: مشخص کردن هدف کلی از برنامه نویسی

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

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

اکثر افرادی که به یادگیری برنامه نویسی مشغولند دو هدف عمده را پیگیری می‌کنند:

  1. یادگیری فن‌آوری و برنامه نویسی برای به دست آوردن پول
  2. صرفا علاقمندی به یادگیری برنامه نویسی

۱- یادگیری فن‌آوری و برنامه نویسی برای به دست آوردن پول

امروزه در سرتاسر جهان برنامه نویسی یکی از رشته‌هایی است که تقاضای کار در آن زیاد است و همچنین تعداد بالایی از افراد در این زمینه مشغولند و درآمد مناسبی از این کار دارند، لذا منطقی است که افراد زیادی صرفا از جهت مالی به این رشته روی آورده باشند.

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

۲- صرفا علاقمندی به یادگیری برنامه نویسی

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

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


گام دوم: ایجاد یک برنامه‌ی محکم و استوار برای یادگیری مهارت‌های موردنیاز

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

شما می‌توانید با پاسخ به سوالات زیر کار خود را آغاز کنید و به مهارت‌های موردنیاز خود پی ببرید و سپس یک برنامه‌ی مشخص بچینید:

  • آیا به ساخت وب سایت علاقه دارید؟
  • یا ترجیح می‌دهید برنامه‌های موبایل بسازید؟
  • در مورد تجزیه و تحلیل داده‌ها و تصویرسازی چطور؟
  • یا توسعه بازی‌ها و نرم‌افزار؟

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


گام سوم: انتخاب زبان برنامه نویسی

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

مطالعه‌ی پست های زیر خالی از لطف نیست.

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

بهترین زبان های برنامه نویسی وب در سال 2020

بهترین زبان های برنامه نویسی موبایل


گام چهارم: ایجاد و حل پروژه‌های کوچک

در ابتدای شروع به برنامه نویسی، لازم است با خودتان مهربان باشید. بهتر است اهداف واقع‌گرایانه‌ای در گام‌های نخست داشته باشید؛ زیرا اگر در همان ابتدا به دنبال بهترین برنامه نویس شدن باشید احساس سرخوردگی دیر یا زود به سراغ شما خواهد آمد.

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

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

نوشته راهنمای گام به گام حرفه ای شدن، البته در برنامه نویسی! اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

خلاصه کتاب clean code – بخش هشتم

وزش سنت در گیسوی مدرنیته

جوگیرساختن مخاطب برای خواندن تا ته

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

فصل دهم – Classes

Encapsulation

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

Classes Should be Small

شاهد کول بازیای نویسنده هستیم همچنان:

قانون اول: کلاس ها باید کوچولو باشن

قانون دوم: کلاس ها باید کوچولوتر از قانون اول باشن حتی !

The Single Responsibility Principle

هر کلاس باید یک مسئولیت داشته باشه دلیلش هم اینه که فقط یک دلیل باید باعث بشه که کد کلاس عوض بشه

Cohesion

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

Maintaining Cohesion Results in Many Small Classes

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

Organizing for change

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

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


وبسایت: https://mrbug.ir

اینستاگرام: https://www.instagram.com/mrbug_ir

توییتر: https://www.twitter.com/mrbug_ir

تلگرام: https://www.t.me/mrbug_ir


https://virgool.io/@mrbug_ir/%D8%AE%D9%84%D8%A7%D8%B5%D9%87-%DA%A9%D8%AA%D8%A7%D8%A8-clean-code-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-l47w7ybbafgw

نوشته خلاصه کتاب clean code – بخش هشتم اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی