چگونه‌ برنامه‌نویس شویم؟

۷۰ دیدگاه‌ها

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

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

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

من استعداد برنامه نویسی ندارم.

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

چرا باید برنامه‌نویسی یاد بگیریم؟

بایدی وجود ندارد. قرار نیست همه برنامه نویس شوند، دنیا به جراح و خلبان هم نیاز دارد:). اما اگر نمیدانید با زندگی‌تان چکار کنید اینجا لیستی از دلایل را داریم که برنامه‌نویسی را روی میز گزینه‌هامان قرار بدهد:
  • به این نمودار از نظرسنجی برنامه‌نویسان سایت استک اور فلو دقت کنید: بخش خوبی از برنامه‌نویسان در جهان بین سه تا پنج سال سابقه دارند. یعنی متولد دهه ۹۰ میلادی هستند. مثل نگارنده این مطلب. و این چه معنایی میدهد؟ این که درخواست بازار برای نیروی فنی برنامه‌نویس رو به افزایش است. اگر عقب بودن بین پنج تا ده سال بازار ایران از بازار جهانی را هم در نظر بگیرید، میتوانید متوجه شوید در حال حاضر حداقل تقاضای نیروی کاربلد از عرضه کمتر است و این نیروها را احتمالا گرانترین کارمندان ایران میکند(بعد از آقازاده‌ها). نتیجتا میشود حداقل تا ده سال آینده را با اطمینان بالایی تضمین کرد که شغل با درآمد خوب برای برنامه‌نویس خوب وجود خواهد داشت. در کشوری با ضریب بیکاری ۲۵ درصد چنین فرصتی شکل طلاست.

چگونه برنامه نویسی یاد بگیریم؟

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

 

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

چگونه برنامه‌نویسی یاد بگیریم؟

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

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

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

برنامه نویس‌ها هم به داکیومنتشن به عنوان منبع اصلی یادگیری نگاه میکنند.

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

 

 

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

این پست شماره یک از مجموعه‌ی چگونه برنامه نویس شویم؟ بود. در قسمت‌های بعدی احتمالا میرویم سراغ این که چگونه شغل پیدا کنیم؟ مهارت های نرممان را بهتر کنیم و … . اگر حس میکنیم، ممکن است بدرد کسی بخورد، لینک این پست را با او به اشتراک بگذارید. اشتراک گذاری متون در توییتر و تلگرام هم من را عمیقا خوشحال میکند:) ممنون.



برچسب‌ها:

  1. علی گفت:

    صدرا جان،

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

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

    1. صدرا مدیر گفت:

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

  2. افشین گفت:

    سلام.
    پست خوبی بود ولی برای من یه جورایی ناراحت کننده بود. یاد خودم و دوستم (دوران دانشجویی) افتادم. میخواستیم برنامه نویس شیم. چون اون موقع ها بخش مفید شبکه های اجتماعی و بخش مفید اینترنت (به زبان فارسی حداقل) به شکل امروز در دسترس نبود یا شایدم ما بلد نبودیم(علی رغم اینکه انگلیسیمون خوب بود)… ، شروع کردیم پرسیدن از این و اون که چه جوری برنامه‌نویس بشیم. از استاد دانشگاهش گرفته تا کسی که برنامه نویس حرفه ای بود سوال کردیم ولی خوب واضحه که جوابی نگرفتیم.
    https://www.wiley.com/en-us/Professional+Visual+Basic+2008-p-9780470191361
    این اولین کتابی بود که رفتیم دادیم خیابان انقلاب برامون صحافی کردن. شروع کردیم مفاهیم inheritance , override و کلی مفاهیم چرت و پرت دیگه رو خوندیم. حتی هنوزم که ده سال از ماجرا میگذره با تئوری این مسائل آشنام. ولی دریغ از یک خط کد. گفتیم کتاب اشتباهی شروع کردیم
    بعد رفتیم این کتاب https://www.wiley.com/en-us/Beginning+Visual+Basic+2005-p-9780764574016 رو صحافی کردیم و شروع کردیم خوندن و دوباره داستان قبلی…
    فرترن، HTML، متلب ، جاوااسکریپت و الی ماشالله مطالب که کاملن بی ربط بودن خوندیم…
    ولی همچنان دریغ از یه برنامه ی کوچیک به درد بخور…
    چه قدر هزینه که مهمترینش زمان طلایی و جوانی و انرژی بود از دست دادیم.
    لینوکس نصب کردیم، beginning unix خوندیم، هی از این نشست های اپن سورس و دنیای نرم افزارهای آزاد و… شرکت کردیم. ولی هیچی نشدیم. چرا یه چیزی شدیم همون جنرالیستی که هنوزم هستیم. برای شغل دوم من که معلمی هست یه خوبی داره البته، با زبان آموزم که سنگ فروش بازاره میتونم تعامل نسبتا تخصصی برقرار کنم تا شاگردم که ادمین تو شرکت پارس آنلاینه 🙂 ) اما خوب اینا برات نون و آب نمیشه.و البته از یه جایی سعی کردیم متوقفش کنیم این جنرالیست بودن رو. فکر کنم تنها برنامه کاربردی که تو زندگیم نوشتم یه خط کد بود که فلش دو تا از استادامون رو کپی کرد تو کامپیوتر کلاس. آخه دو تا استاد بودن جزوه هاشون رو نمیدادن مجبور میکردن مارو بنویسم. منم یه برنامه یه خطی تو استارتاپ کامپیوتر کلاس گذاشتم با آیکون Adobe reader کل فلشش رو کپی کرد. نکته ی باحالش این بود که امتحان پایان ترم مونم تو فلش بود و خوب کپی شد :). خاطره بسه.
    من تو طلافروش شدن هم تجربه ای نه مشابه ولی با همین آنالوژی داشتم و خوب چیزی نشدم. با اینکه خیلی تلاش کردم براش.
    داستان کوتاه حرفم برای دوستانی هست که هنوز تخصص خودشون رو انتخاب نکردن و در حال آنالیز هستن :
    قدر پست هایی مثل این پست کسری و کامنت هایی مثل این کامنت من رو بدونید، چرا؟ چون این ها عمر نرفته‌ و زمان تلف نشده ی شماست که توسط عده‌ی دیگه ای به جای شما تلف شده و رفته…
    قبل از شروع به سمت یه هدف (هرچی که هست) اول راه درستش رو پیدا کنید. خیلی عجله به شروع حرکت به سمت هدف نداشته باشید. تجربه به من و خیلی های دیگه ثابت کرده که هرچه قدرم زور بزنی اگه راه درست رو نری هیچ چی نمیشی و برعکس اگه راهت درست باشه با زور کم هم بهش میرسی. هرچند شیخ اجل میگه به راه بادیه رفتن به از نشستن باطل/ که گر مراد نیابم به قدر وسع بکوشم. شیخ منظورش چیز دیگه س که به بحث ما ربطی نداره.
    دیگه پایین پست کسری رو خیلی شلوغ نکنم 🙂 .
    موفق باشید.

  3. افشین گفت:

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

    1. صدرا مدیر گفت:

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

  4. جواد گفت:

    منظورتون از استرانگ تایپ چیه؟

    1. صدرا مدیر گفت:

      خوندن این مقاله‌ی امیررضا قادری رو در زمینه‌ی تایپ‌ها به همه جانداران کره زمین توصیه میکنم:
      https://amirrezaghaderi.ir/post/types/

  5. سعید گفت:

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

    – اسلاح نه، اصلاح (اینو میتونی حذف کنی از کامنت)
    🙂

    1. صدرا مدیر گفت:

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

      1. میترا گفت:

        ممنون از پست خوبت، من ۱۲-۱۳ سال پیش یه سری دوره #C، ASP.NET و … رفتم توی کلاس ها هم خوب بودم و برنامه های ساده نوشتم اما به دلایلی متوقف شد کارم و بعدها هم شبکه خوندم اما الان دوباره می خوام برنامه نویسی بخونم و کار کنم من جایی متوقف می شم که پروژه های خیلی ساده مثلا Hello , to do list و … تموم می شن. نمی دونم پروژه بزرگ تر و جدی تر رو از کجا باید شروع کنم و کجا تموم کنم. چه پیشنهادی داری؟ و چون متن خوبت شیر می شه می گم اصلاح…

  6. امین گفت:

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

    1. صدرا مدیر گفت:

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

  7. پریسا گفت:

    سلام . نه کاریت ندارم 🙂
    خودمم میدونم کار ما چیز جدیدی به دنیا اضافه نمیکنه و شدیدا درگیر این سوالم که مثلا ۳۰ سال دندونای مردمو درست کردی آخرش که چی؟ و خلاصه اینکه حرفت درسته .

    1. صدرا مدیر گفت:

      نظر و راه حل واقعیم رو بهت گفتم دیگه :))

  8. مرجان گفت:

    عالی و گویا
    موفق و پیروز باشید ?

    1. صدرا مدیر گفت:

      ممنون مرجان. یه ایمیل به من بده فرصت کردی، کارت دارم.

  9. یاور گفت:

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

    در ضمن منم خیلی طرفدارشم و البته چون این شش ماه اخیر دارم فرانت اند کار میکنم، بیشتر جذبش شدم.

    با مهر
    یاور

    1. صدرا مدیر گفت:

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

  10. عادل گفت:

    سلام آقا صدرای عزیز.
    خیلی عالی بود. از این به بعد اگر کسی ازم پرسید چجوری برنامه نویسی رو یاد بگیرم حتما بهش میگم این مطلب رو بخونه.
    من نمیتونم به خودم بگم برنامه نویس چون فقط اصول برنامه نویسی رو بلدم و یکم پایتون کار کردم و فقط در این حدم که بتونم بعضی از سوال های برنامه نویسی سایت کیوئرا رو حل کنم ولی خب دارم سعی میکنم بیشتر یاد بگیرم.
    اگر اجازه بدید من هم تجربم رو توی این دو سالی که میخواستم از یک کسی که درباره کامپیوتر هیچی نمیدونست تا الان بگم:
    – زبان انگلیسی: بدترین اشتباهی که کردم اینکه اون موقع به حرف آقای بهزاد مرادی(شاید بشناسید در سکان آکادمی) گوش نکردم و بدون دانش زبان انگلیسی شروع کردم به یادگیری مبانی کامپیوتر و برنامه نویسی که الان توی گل موندم و دارم روی زبانم کار میکنم تا بهتر بشم. چون دیگه هیچ منبع فارسی برای یادگیری نیست.
    – پله پله پیشرفت کنیم: بهتره که از اول مطالب رو از پایه یاد بگیریم. یعنی اول مبانی کامپیوتر رو یاد بگیریم و بعد سیستم عامل و بعد برنامه نویسی و .. در کل باید یک نقشه راه تایین کرد و طبق اون یاد بگیریم. و خب من این کار رو کردم.
    – لینوکس یاد بگیریم: لینوکس خیلی خوبی ها داره و بدی. همه این سیستم عامل ها و زبان های برنامه نویسی و .. یک ابزارن و خب هر کدوم که کار آدم رو راه بندازن خیلی خوبه. خوبی هایی که لینوکس داره اینکه جامعه فعالی داره و امکانات خوبی که برای برنامه نویس ها قرار داده و چیزایی که داخل ویندوز نیست.(من خودم از دو سال پیش از ویندوز استفاده نکردم 🙂 )
    – خود گیک پندار یا خود خفن پندار نباشیم: اینجا دربارش نوشتم: داخل سکان آکادمی به این موضوع پرداخته شده: https://goo.gl/mM6rM3 و من هم دربارش نوشتم: http://vrgl.ir/kKAvx
    – مثل یک برنامه نویس اسطوره ای فکر کنیم: اینجا دربارش نوشتم: http://vrgl.ir/KxTlv
    – از بقیه بت نسازیم: هر کاری که بقیه میکنن خوب نیست، حالا میخواد استیوجابز باشه یا … مثلا اگر یک برنامه نویسی که خیلی قبولش داری، روابط اجتماعی بدی داره حتما لازم نیست که مثل اون باشی.
    یک ساعت دیگه هم فکر کنم سال نو میشه.
    دوباره سال نو مبارک 🙂

    1. صدرا مدیر گفت:

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

  11. رضا گفت:

    بابا حلالت

    1. صدرا مدیر گفت:

      مخلص 🙂

  12. مهدی گفت:

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

    یک مطلب نوشتم درباره تجربه خودم درباره برنامه نویسی اندروید. اگر کسی دوست داشت یا خودت تونستی یک سر بزن.
    http://vrgl.ir/NaFBs

  13. محمد گفت:

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

    ممنون

  14. محمد گفت:

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

    ممنون

  15. مرتضی گفت:

    سلام
    منم ازون عشقای برنامه نویسی ام که هیچوقت درست حسابی دنبالش نرفتم.
    مطالبت واقعا درست بود. راضی ام ازت 😉
    البته به جز تعداد بیمارای دندوپزشک 🙂
    تعداد بیمارای دندونپزشک رو اشبتاه حساب کردی، سی سال ضرب در روزی ۱۰ تا مریض میشه حدود ۱۰۰هزار، نه ۱۰ هزار 🙂

    1. صدرا مدیر گفت:

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

      1. مرتضی گفت:

        نه، تو اصل مطلب هیچ فرقی نمیکنه 😉

  16. محمد احسان گفت:

    سلام،به نظر شما فلوچارتو الگوریتم چقد یادگرفتنش تو برنامه نویسی تاثیر داره!؟؟

    1. صدرا مدیر گفت:

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

  17. فطمه زهرا پاکزاد گفت:

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

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

    1. صدرا مدیر گفت:

      شما استاد مایی آقا مجتبی:) :*

  19. Anonymous گفت:

    خیلی خوب و مختصر و مفید . دمت قیژ

  20. نیما گفت:

    سلام
    سپاس صدرا جان، بسیار مفید و کمک کننده بود
    این جمله را میشه واضح تر توضیح بدی؟
    “به نظر من اولین منبع یادگیری یک فریم‌ورک یا زبان داکیومنتیشن‌های خود آن پروژه است”

    1. صدرا مدیر گفت:

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

  21. زکیه گفت:

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

    1. صدرا مدیر گفت:

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

      1. زکیه گفت:

        ممنون بابت وقتی که میذاری

  22. میترا گفت:

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

    1. میترا گفت:

      ببخشید میشه سوالو جواب بدین

      1. صدرا مدیر گفت:

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

  23. Aida گفت:

    Salam man taze emroz ba weblog shoma ashna shodam o mitonam begam ke nesfe bishtare matalebo khondam va bayad beheton tabrik begam vaghan alieee,man chand ta soal ya shayad behtare begam rahnamai az shoma mikhastam ke fekonam inja yekam tolani she emkanesh hast be man miletono bedid ta age mishe emile bezanam beheton??

  24. فريد گفت:

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

  25. حسین گفت:

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

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

  26. ابراهیم گفت:

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

  27. مملی گفت:

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

  28. arash گفت:

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

  29. FF گفت:

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

  30. arash گفت:

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

  31. معین گفت:

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

  32. یونس گفت:

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

  33. بهروزم گفت:

    پست بسیار عالی بود صدرا جان ، داشتم بک لینک های وبلاگم رو چک میکردم که به این پست ارزشمند تو رسیدم ، راستیتش من با وجود اینکه هر روز کد میزنم و هر روز در حال یادگیری هستم خودم رو برنامه نویس نمیدونم چون مفاهیم طراحی و توسعه نرم افزار و متودولوژی ها به نظرم اونجوری که باید استفاده نمیشه و از واژه کدر به نظرم استفاده کردن بهتره البته الان با وجود متودولوژی های مثل اجایل که هدفشون رو روی توسعه سریع نرم افزار گذاشتن دیگه اون مفاهیم سنتی توسعه نرم افزار مثل طراحی دیاگرام و یوزکیس و یو ام ال و طراحی فیزیکی دیتابیس یه مقداری قدیمی شده و کسی اشاره نمیکنه ولی به نظرم لازمه دوستایی که میخوان برنامه نویس ( به معنای واقعی کلمه ) باشن حداقل آشنایی رو با مفاهیمی مثل software life cycle داشته باشن . البته هیچ اجباری نیست که اول از کار سخت ترین کارو انتخاب کنی و فکر میکنم دوستایی که به این مسیر علاقه دارن کم کم بعد از یه مدت مفاهیم تو ذهنشون جا میفته ، اول با خوندن و کپی کردن سینتکس زبان های برنامه نویسی ، کپی کردن و دیدن فانکشن های فریمورک ها ، شاید اول فانکشنال شروع کنن به برنامه نویسی ( همون طوری که خودم شروع کردم و هنوزم استفاده میکنم ) و بعد ها به مفاهیم شی گرایی علاقه مند شدن . تنها نکته برای شروع اینه که یه انگیزه یا محصول واقعی تو ذهن کسی باشه که میخواد شروع کنه . وقتی ۱۲ یا ۱۳ سالم بود و با طراحی وب و دستکاری کردن قالب های آماده شروع کردم تو ذهنم ساختن یه وبسایت برای دانلود رایگان کتاب بود ، این هدف اون موقع محقق شد و من انگیزه پیدا کردم برای ادامه و ابن مسیر تا به امروز با منه ، نکته بعدی اینه که هیچوقت متوجه نمیشی عاشق برنامه نویسی بودی که شروعش کردی یا چون شروعش کردی عاشقش شدی بعد از یه مدتی روی تمام جنبه های زندگیت تاثیر میزاره .
    برای دوستایی که میان اینجا و کامنت هارو هم میخونم توصیه میکنم از یه جایی که دوست دارین شروع کنین برای مثال برای من قشنگ ترین و کاربردی ترین بخش یه زبان جدید که بخوام یادبگیرم text manipulation یعنی تغییر تو ورودی متن و خروجی ، کار کردن با آرایه ها و لیست ها تو اون زبان ، شما هم بگردین و ببینید میخواین چیکار کنید ،‌برای مثال برای اضافه کردن یه نقشه به سایتتون سرچ کنید باور کنید هیچ استادی بهتر از کلمه how to وجود نداه

  34. امید گفت:

    آقا صداری عزیز.
    با سلام و تشکر از مقاله خوبت…
    این لینکی که در بخش نظرات آدرس دادی(مربوط به مقاله آقای امیر رضا قادری) کار نمیکنه
    https://amirrezaghaderi.ir/post/types/
    در صورت امکان اصلاح بفرمایید.
    ممنون.

  35. پژمان گفت:

    سلام وقتتون بخیر جناب صداری عزیز نمیدونم هنوز هم این پیج رو چک میکنید یا نه ولی اگر چک کردین من به شدت به کمکتون نیازمندم
    لطف شما هر کسی که در برنامه نویسی حرفه ایه به عنوان یه استاد یا برادر بزرگتر من کمک کنه من خیلی خیلی خیلی شدید برنامه نویسیو دوسدارم و واقعا برنامه نویسا و هکرا قهرمانای منن
    این ایمیل من هستش خوشحال میشم کمکم کنید Mr.khazaeli@outlook.com
    ایدی تلگرام pmn_kali_ragnar@

  36. مهدی گفت:

    سلام
    ممنون برای نوت برداریتون و انتشارش.
    من پی دی اف کتاب
    https://www.amazon.com/Complete-Software-Developers-Career-Guide-ebook/dp/B073X6GNJ1
    رو میخواستم اما پیداش نمیکنم.
    شما میتونید برام بفرستید؟

  37. حسین گفت:

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

  38. ashkan گفت:

    مرسی از مطالب خوبتون

  39. فاطمه گفت:

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

  40. امیر گفت:

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

  41. پریسا گفت:

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

  42. عارف گفت:

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

  43. مجتبی گفت:

    سلام. مرسی ازپست خیلیییی مفیدت.
    میخوام برنامه نویسی اندرید یاد بگیرم .پیشنیازش چیا هس ؟ sql واجبه ؟

  44. سعید برنامه نویس گفت:

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

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

  46. مریم گفت:

    سلام. میشه چنتا کتاب و سایت و ننبع برای شروع معرفی کنین ؟ ممنون

  47. مطلب بسیار مفیدی بود
    ممنون بابت اشتراک گذاری

پاسخ دادن به Anonymous لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *