برنامه نویسی را از کجا آغاز کنیم؟

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

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

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

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

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

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

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

آموزش های پایه مورد نیاز برای شروع

در زیر مواردی را ذکر کرده ام که برای یادگیری پایه های اصلی برنامه نویسی به آن نیاز دارید:

  • یادگیری الگوریتم نویسی پایه
  • یادگیری مبانی برنامه نویسی (این مباحث بستگی به زبان خاصی ندارند و ۹۰ درصد آن در همه زبان ها شکلی یکسان دارند)
  • شی گرایی یا برنامه نویسی OOP (در دانشگاه در درس برنامه سازی پیشرفته تدریس میشود)
  • انتخاب یک تخصص و یادگیری مباحث مورد نیاز برای آن

در زیر تعریف کوتاهی از هر یک از موارد بالا را آورده ام.

الگوریتم نویسی پایه. الگوریتم در واقع نوشتن دستورالعمل و بخش های مورد نیاز برای پیاده سازی برنامه به زبان ساده است. برای مثال:

۱- شروع 
۲- عدد a را بگیر 
۳- عدد b را بگیر 
۴-  نتیجه a+b را چاپ کن
۵- پایان

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

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

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

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

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

با تشکر از وقت شما

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

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

کمپانی AMD برای پشتیبانی از تکنولوژی Ray tracing چه برنامه ای دارد؟

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

نوشته کمپانی AMD برای پشتیبانی از تکنولوژی Ray tracing چه برنامه ای دارد؟ اولین بار در دیجیاتو پدیدار شد.

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

مقایسه کارت‌های گرافیک RX 5700 XT و RTX 2060 Super

تابستان امسال برای عاشقان سخت افزار و گیمرها پر حرارت‌تر از همیشه دنبال می شود چرا که شاهد رقابتی سخت میان انویدیا و AMD هستیم. دو سرباز اصلی این نبرد کارت‌های گرافیک رادئون RX 5700 XT و RTX 2060 سوپر هستند که …

نوشته مقایسه کارت‌های گرافیک RX 5700 XT و RTX 2060 Super اولین بار در دیجیاتو پدیدار شد.

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

آیا یادگیری برنامه نویسی واقعا سخت و طاقت فرسا است ؟

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

Clive Thompson – برنامه نویسان (coders) کتاب

نویسنده کتاب وارد دنیا و زندگی برنامه نویسان می شود و حتی شروع به یادگیری برنامه نویسی می کند تا به این پرسش پاسخ دهد که واقعا انقدر که برنامه نویسان پز می دهند ، برنامه نویسی کاری جادویی و سخت است و هر کسی از آن سر در نمی آورد ؟ بعد از آن تجربه خود را با خوانندگان کتابش این گونه به اشتراک می گذارد :

” برنامه نویسان می گویند فلان برنامه باگ دارد ! نگو منظورشان همان علامت : است که بعد از دستور if یادشان رفته بگذارند ! “

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

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

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

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

فرمول موفقیت در برنامه نویسی این است : علاقه + یادگیری + تمرین + تمرین

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

۱۴ سالم بود (سال ۱۳۸۷) . به خانواده ام گفتم به کامپیوتر علاقه دارم و باید وارد این رشته شوم . سال تحصیلی شروع شد. یک معلم ریشی و لاغر اندام آمد سر کلاس برنامه نویسی . شروع کرد از برنامه نویسی گفتن و این که باید ریاضیات تان قوی باشد و قدرت تحلیل بالایی داشته باشید و گرنه موفق نمی شوید و سریع رفت روی تخته و شروع به نوشتن یک مسئله ریاضی کرد و آن را با شیوه ای به نام “فلوچارت” حل کرد !

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

روزها گذشت و معلم جدیدی برای کتاب دیگرمان که آن موقع نامش ” برنامه سازی ۳ ” بود انتخاب شد . مردی آمد سر کلاس … به جای این که ما را از برنامه نویسی بترساند نمونه کار های خودش را نشان ما داد . با زبان سی شارپ برای یک قرض الحسنه برنامه ای نوشته بود که دکمه start ویندوز را از جا کنده بود و دکمه خودش را به جای آن گذاشته بود (هنوز هم ایده اش شگفت انگیز است) … شخصیت متین و باوقاری داشت . از او سوال کردیم برنامه نویسی به چه چیز نیاز دارد ؟ گفت علاقه و تمرین و کمی کار روی قدرت تحلیل مسئله !

گفتیم ضریب هوشی مهم نیست ؟ گفت علاقه جای همه چیز را می گیرد . به ما یاد داد در دنیای برنامه نویسی برای هر آدمی جا هست ! حتی برای هنرمندان !…

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

آدم های هنری و نازک نارنجی در طراحی رابط کاربری برنامه بی نظیر بودند و هیچکس به گرد پایشان نمی رسید.

و آدم های درون گرا و کم حرف به درد حل مسائل پیچیده میخوردند !

برای همه جا بود …

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

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

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

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

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

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

ماجراجویی در دنیای Stranger Things با اپ ویندوز ۱.۱۱؛ یک سفر نوستالژیک

طرفداران سریال Stranger Things (چیزهای عجیب) خوشحال باشید، چرا که مایکروسافت به تازگی اپلیکیشنی با محوریت این مجموعه پرطرفدار منتشر کرده که شما را به سفری عجیب و در عین حال نوستالژیک به خط زمانی این سریال، یعنی سال ۱۹۸۵ می‌برد. …

نوشته ماجراجویی در دنیای Stranger Things با اپ ویندوز ۱.۱۱؛ یک سفر نوستالژیک اولین بار در دیجیاتو پدیدار شد.

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

کوالکام چیپست اسنپدراگون ۲۱۵ را معرفی کرد؛ قابلیت‌های مدرن در گوشی‌های ۷۰ دلاری

چیپست اسنپدراگون ۲۱۵ آمده تا قابلیت های پیشرفته را با خود به گوشی های ارزان‌قیمت بیاورد. به گفته کوالکام گوشی های دارای این چیپست قیمتی بین ۷۵ تا ۱۲۰ دلار خواهند داشت اما برخی امیدوارند این نرخ تا ۶۰ دلار …

نوشته کوالکام چیپست اسنپدراگون ۲۱۵ را معرفی کرد؛ قابلیت‌های مدرن در گوشی‌های ۷۰ دلاری اولین بار در دیجیاتو پدیدار شد.

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

جهرمی: راه‌هایی برای ترغیب شرکت‌های خارجی جهت همکاری با اندروید ایرانی داریم

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

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

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

بررسی چالش‌های اکوسیستم استارت‌آپی ایران از سوی انجمن کسب‌وکارهای اینترنتی

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

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

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

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

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

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

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

خداحافظی با قبض‌های کاغذی تلفن ثابت از اول مهر ماه

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

نوشته خداحافظی با قبض‌های کاغذی تلفن ثابت از اول مهر ماه اولین بار در دیجیاتو پدیدار شد.

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