ترس از برنامهنویسی کامپیوتر چیزی مرسوم است. برای این ترس هم هیچ محدودیت سنی وجود ندارد. یک دانش آموز درست به همان میزانی که یک فرد بالغ از این حرفه هراس دارد، میترسد. اوایل، برنامهنویسی و نگاه کردن به آن به نظر جادویی و پیچیده میرسد. اگر شما نیز در چنین شرایطی قرار گرفتهاید، این مطلب به شما کمک میکند تا در راه درست به برنامهنویسی برسید و درکپذیری آن برایتان ساده شود.
دلایل مختلف و زیادی برای اینکه از برنامهنویسی بترسید وجود دارد. بگذارید تمام این ترسها را در کناری بگذاریم، به این خاطر که هیچکدام آن ها مهم نیستند. چیزی که مهم است این است که چگونه بر این ترس غلبه کنید و به برنامهنویس خوبی تبدیل شوید.
برنامهنویسی در مقابل کدنویسی
به صورت خیلی ساده :
هرکسی میتواند کدنویس خوبی شود؛
اما تبدیل شدن به یک برنامهنویس خوب، شور و اشتیاق زیاد میخواهد.
منظور از کدنویسی یادگیری و نوشتن برنامههاست، اما برنامهنویسی در رابطه با الگوریتمنویسی، داشتن ایدههای مختلف برای حل مسئله و چیزهای دیگر است. تنها فردی میتواند به یک برنامهنویس خوب تبدیل شود که شور و اشتیاق زیادی برای این کار داشته باشد.
یکی از چیزهای دیگری که دوست دارم به صورت سریع به آن اشاره کنم این است که:
اگر دوست دارید زندگیتان را با کار برای دیگران بگذارنید به یک کدنویس خوب تبدیل شوید. اما اگر قصد دارید برای خودتان کار کنید، باید به یک برنامهنویس تبدیل شوید.
این تمام نظرات و سردرگمیها در رابطه با تفاوت این دو مورد با همدیگر بود.
چه چیزی شما را هدایت میکند؟
آیا پول است؟ پس بدانید که شما خودتان را برای یک عمر نارضایتی و پشیمانی آماده میکنید. یک اندیشه میان مردم در رابطه با افراد برنامهنویس وجود دارد، آنها فکر میکنند که همه برنامهنویسها به صورت بسیار زیادی پول دریاف میکنند. اول از همه شما باید به جمله بهتر دقت کنید، از کلمه برنامهنویس استفاده شده نه کدنویس. پس بدانید که شما نمیتواند تنها با ذهنیت پولدار شدن به برنامهنویسی نگاه کنید. دلیلی که آنها پول زیادی میگیرند این است که تمرکزشان روی بهتر شدن و بهبود تواناییهایشان است نه پول درآوردن. به همین دلیل است که آنها ارزش زیادی دارند.
هیچوقت موفقیت را دنبال نکنید، کاری کنید که موفقیت دنبال شما باشد. - Rancho
از کجا شروع کنیم؟
اول از همه شما باید مشکلات را آنالیز و بررسی کنید. این چیزیست که بیشتر از همه شما را میترساند.
اگر با هیچ زبان برنامهنویسی آشنایی ندارید، پیشنهاد میکنم که کارتان را با پایتون یا سی/سیپلاسپلاس آغاز کنید. برای اینکه بفهمید با کدامشان بیشتر راحت هستید میتوانید هر دو را تا مدت کمی یاد بگیرید، چندین برنامه کوچک با آنها نیز بنویسید و در نهایت متوجه شوید که کدام برای شما راحتتر است. بعد از آن میتوانید روی آن تمرکز کنید و با استفاده از آموزشها و منابع آنلاین و حضوری تواناییتان را بهبود بخشید. همچنین یکی از راههای دیگر برای انتخاب مورد مناسب این است که به نظرات دیگران توجه کنید و آنها را با خودتان تجزیه و تحلیل کنید.
بعد از اینکه آموزشها و کتابهایتان را تمام کردید، حال نوبت آن است که وارد عمل شوید.
بهترین زبانی که با آن میتوانید خودتان را معرفی کنید، آن زبانی است که میدانید.
به این دلیل است که من پیشنهاد میکنم با یکی از زبانهای برنامهنویسی خودتان را آشنا کنید. این بهترین راه برای تبدیل کردن الگوریتمها به کدنویسی است. بهعلاوه شما همزمان با اینکه برنامهنویسیتان را بهتر میکنید، روی کدنویسی نیز تمرین دارید. در لیست زیر میتوانید چندین وبسایت برای بهتر کردن توانایی الگوریتم نویسی و برنامهنویسیتان را مشاهده کنید:
الگوریتم
ترس از الگوریتم چیزی است که برنامهنویسها را از کدنویسها جدا میکند. تعداد افراد زیادی هستند که به دلیل نداشتن توانایی تصمیم گیری و الگوریتم نویسی از صدا زدن خودشان به عنوان یک برنامهنویس میترسند. یک مشکل به تنهایی میتواند راهحلهای متفاوتی برای حل کردن داشته باشد اما همواره براساس زمان و فضا بهترین مورد را باید انتخاب و استفاده کرد.
الگوریتم مناسب تلاش دارد که چیزهای پیچیده را در زمان کم و در کوچکترین فضای ممکن حل کند. برخی از اوقات نیز باید یکی از این موارد را -زمان و فضا- برای دیگری قربانی کرد. پس برای اینکه تبدیل به یک برنامهنویس خوب شوید سعی کنید یک کتاب یا آموزش خوب مربوط به الگوریتم را دنبال کنید و از آن بهره بگیرید.
Introduction To Algorithms (Thomas H. Cormen) اگر دنبال یک آموزش جامع و کامل برای یادگیری الگوریتم هستید، این کتاب خوبی است. برای افرادی هم که دوست دارند الگوریتم و ساختمان داده را با استفاده از پایتون یاد بگیرند، Data Structure and Algorithmic Thinking with Python (Narasimha Karumanchi) کتاب خوبی است.
درست مانند ریاضی شما باید برای یادگیری بهتر الگوریتم، تمرینهای زیادی داشته باشید. اما برخلاف ریاضی، نیازی نیست که آن را از طریق راههای خسته کننده انجام دهید. شما یک راه ثابت را برنمیدارید، میتوانید الگوریتم خودتان را بنویسید و آن را نسبت به دیگر راهحلها بهتر نمایید. اگر چنین کاری بکنید، مطمئن شوید که تبدیل به یک برنامهنویس خوب خواهید شد.
ریاضی را چهکار کنیم؟
برنامهنویسی واقعا مرتبط با ریاضی است. مطمئن هیچکس بهتر از من در مورد درد و رنج ریاضی خبر ندارد. من هیچوقت آن را در مدرسه دوست نداشتم. اما دلیلی در پشت آن وجود داشت. وقتی آنها ریاضی را در دانشگاهها و مدارس درس میدادند بیشتر تمرکزشان روی فرمولها بود و هیچوقت ما را با قسمتی که بیشترین کاربردش را می توانیم در زندگی ببینیم آشنا نساختند.
وقتی وارد دنیای آیتی میشوید این واقعیت را بیشتر از هرکسی احساس میکنید.
ریاضی واقعی، نظمی از ایدههای منطقی است. -آلبرت انیشتین
اگر چنین حالتی با شما نیز وجود داشته، پس بدانید به یک فرد کاربردی تبدیل خواهید شد. این واقعا عالیست. این بدان معناست که شما یک شانس دیگر یادگیری برای اینکه چیزهای که در مدرسه از دست دادید را دارید. و در نهایت شما عملا نتیجه این کار را خواهید دید. این کار تقریبا فراموش نشدنی است به این خاطر که شما برای ساختن الگوریتمتان تمام قسمتهای مختلف را کنار هم قرار میدهید. این نقطهای است که نه فقط چرایی ماجرا را درک میکنید بلکه به چگونگی آن نیز پی میبرید.
دوراهی «کدام مورد برای من بهتر است؟»
به عنوان یک توسعهدهنده گزینههای زیادی وارند جریان کاری شما میشوند. زبانهای برنامهنویسی مختلف و کارهای متفاوت از همدیگر بری شما شکل میگیرند. اما نیازی نیست که در مورد اینها نگران باشید.
تمام جوابها به دو سوال برمیگردد: «میخواهید چکار کنید؟ میخواهید چه چیزی را بسازید؟»
میخواهید یک وبسایت را ایجاد کنید؟ آن را یاد بگیرید، بعد بسازید.
میخواهید یک اپلیکیشن موبایل را درست کنید؟ آن را یاد بگیرید، بعد بسازید.
میخواهید یک هوش مصنوعی را درست کنید؟ آن را یاد بگیرید، بعد بسازید.
به عنوان یک مبتدی، علاقهمندیهای شما بین موارد مختلف تغییر پیدا میکند. این موضوع شما را بهتر و منعطفتر میکند. وقتی چیزی را پیدا کردید که نسبت به دیگر موارد شما را به خود جذب کرد، پس آن را انتخاب کنید و در آن به حد کمال برسید. برای اینکار بعد از طی کردن مراحل ابتدایی و پایه، دورههای حرفهای را مشاهده کنید.
این شکل از انتخاب بهترین حالت ممکن است، سعی نکنید مانند مردمان دیگر براساس موجودیت شغل و بودن امکانات شغلی موردی را انتخاب کنید، همواره موردی که شما را جذب میکند در نظر داشته باشید.
این موضوع نیز درست است که در چرخه زندگیتان به عنوان یک توسعه دهنده نباید صرفا با یک تکنولوژی همراه باشید، مگر اینکه به آن بچسبید و در آن غوطهور شوید.
فریلنسری
بسیار خوب است که به این موضوع نیز اشاره کنم. اگر هنوز ایده بزرگی را ایجاد نکردهاید و یا دنبال موقعیتی برای استفاده از توانایی خودتان هستید پس من به شما دنیای فریلنسری را پیشنهاد میدهم. برای فریلنسر شدن پیشنهاد میکنم که وبسایت Fiverr یا Codementor.io را دنبال کنید. هرچند که جایگزینهای دیگری نیز وجود دارد که میتوان به موارد زیر اشاره کرد:
میتوانید این موارد را نیز بررسی کنید. دلیلی که وبسایت Fiverr را در ابتدا قرار دادم این است که در آنجا میتوانید پروژههای کوچک را مشاهده کنید، کار کردن در ابتدا با پروژههای کوچک همواره بهتر است و شما را بیشتر آماده پروژههای بزرگتر میکند.
الهامبخش و انگیزش
هر دوی این موارد برای اینکه بخواهید در آینده برای دنیای آیتی کاری انجام دهید و با آن همراه باشید، لازم هستند. هیچوقت خودتان را در محدودیت قرار ندهید و سعی کنید همواره الهام بخش کارهای دیگران باشید و انعطاف بیشتری در کارهایتان نشان دهید.
علوم کامپیوتر درست مانند علمهای دیگر پر از نوآوری، کشفیات، آزمایشات و اختراعات است. این علوم هیچوقت متوقف نمیشود و نخواهد شد. اما برای اینکه در این علم پیشرفت کنید باید نشان دهید که چگونه میتوانید منحصر به فرد باشید و چگونه میتوانید چیزی را خلق کنید که انقلابی در صنعت بوجود بیاورد. مشارکت شما خواه کوچک و یا بزرگ نقش بسیار تعیین کنندهای در آینده میگذارد.
لینوس توروالدز در سال ۱۹۹۱ هسته لینوکس را تنها به عنوان سرگرمی منتشر کرد. در حال حاضر، کامپیوترها، دستگاههای مختلف، ماشینها و… از این سیستم استفاده میکنند.
یک دستگاه شیردوشی که از لینوکس استفاده میکند.
او روی موضوعی کار کرد که به آن علاقه داشت و آن را میخواست. هیچکسی به وی بابت چنین کاری پولی پرداخت نکرد و در نهایت آن را نیز به صورت کامل رایگان و متنباز نیز عرضه کرد. درست مانند آن شما نیز باید ایدههایتان را اجرا کنید. هیچوقت در تواناییتان برای انجام کارها شک نکنید، سعی کنید هرچه زودتر دلیل اینکه اینگونه فکر میکنید را پیدا کنید و آن را درست نمایید. بعد از آن شروع به ساخت ایدههایتان بکنید.
تنها پلی که میان تصورات و واقعیات وجود دارد تمایل داشتن برای کار روی آن است. -Abhinav Dabral (نویسنده اصلی این مطلب)
داشتن توانایی برای پیادهسازی ایدهها به صورت موفق مهمترین چیزی نیست که ما در اینجا به آن اشاره میکنیم، چیزی که منظور اصلی ما را شامل میشود، چیزهایی است که میتوانید در انجام یک فرایند آنها را یاد بگیرید. این چیزی است که بیشترین ارزش را دارد. به این خاطر که دفعه بعدی که کاری را انجام دهید شما تجربه کاری را دارید و این موضوع بسیار مهمی است.
ایدهای ندارید؟
این بدان دلیل است که به دنبال ایدهها هستید. بجز در موارد بسیار کمی، این راهی نیست که به خوبی کار کند. ایدهها زمانی به سراغ شما میآیند که شما کمترین انتظار را در مورد آنها داشته باشید. این زمانی است که به صورت اتفاقی با آن اصابت میکنید و شما از آن خوشتان میآید. «چه جالب من میتوانم فلان چیز رو درست کنم!» و یا چیزی شبیه به این.
خیلی در رابطه با این موضوع نگران نباشید. فکری آزاد و باز در این رابطه داشته باشید. محیط اطرافتان را بررسی کنید، از هر اتفاقی که در اطراف شما -چه در اینترنت، مجله و...- میافتد آگاه باشید.
نکاتی برای افرادی که میخواهند شروع کنند
- هیچوقت به صورت پیچیده به چیزی فکر نکنید. همیشه راهی برای توسعه وجود دارد.
- همیشه پروژههایی برای کار کردن روی آنها را داشته باشید. نگذارید به سادگی ایدهها از کنار شما رد شوند، شروع به پیادهسازی آنها کنید. اگر نمیتوانید آنها را هم اکنون پیادهسازی کنید، پس در جایی آنها را یادداشت کنید تا از یادتان نروند.
- اپلیکیشنهایی مانند Google Note و OneNote را در موبایلهایتان داشته باشید، تا بتوانید ایدههایی که به سمتتان میآید را ذخیره کنید.
- سعی کنید همواره پروژههایتان را انجام دهید، میتوانید چیزهای زیادی را از آنها یاد بگیرید. حتی اگر ایدهای ندارید میتوانید چیزی را از دیگران کپی کنید و خودتان آن را انجام دهید، در چنین حالتی نیز، باز هم چیزهای زیادی را یاد می گیرید. اگر همواره به قصد یادگیری قدم بردارید، همواره افراد زیادی خواهند بود که از شما سوالات بسیاری را میپرسند.
- حتی اگر زندگی شلوغ و پر مشغلهای دارید هر روز حداقل ۱۵ دقیقه وقت بگذارید که کدهایتان را نگاه کنید. این کار به شما کمک میکند که با کدهایی که نوشتهاید همواره همراه بمانید. در غیر اینصورت بعد از یک هفته دیگر متوجه کدهایی که نوشتهاید نخواهید شد و نمیتوانید آنها را به خوبی تشخیص دهید.
- هیچوقت خودتان را برای هیچ پروژهای نبازید. هر اتفاقی بیافتد در نهایت چیزهای بزرگ برای شما خواهند بود و شما باید این را تایید کنید.
- اگر در چیزی غرق شدهاید و نمیتوانید هیچ راهحلی را پیدا کنید پس وقت آن است که کمی به عقب باز گردید، کمی استراحت کنید و بعد از آن مجددا سراغ آن بروید. با داشتن یک ذهن تازه بهتر میتوانید با مسائل کار کنید.
- به عنوان توسعه دهنده زمانهایی فرا میرسد که قسمتهایی از کارتان را به افراد مختلف نشان میدهید و به اندازه کافی مورد تقدیر قرار نمیگیرد، چنین حالتی طبیعی است به این خاطر که آنها هیچوقت از تلاشهایی که شما کردهاید آگاه نیستند. از این موضوع احساس بدی نداشته باشید به این دلیل که در ادامه زندگیتان همواره با چنین افرادی برخورد خواهید کرد. بجای آن از آنها اظهارنظرهایی را بخواهید که به شما کمک کند آن را بهتر کنید.
- در حالیکه برخی نظرات که ممکن است دریافت کنید ارزشمند هستند و برخی دیگر نه، اما شما باید تلاش کنید که همواره همه افراد را خوشحال و راضی نگه دارید. این چیزی است که میشود گفت روی تجربه کاربری تاثیر زیادی دارد.
- همواره به ایدههای دیگران گوش دهید، فرقی ندارد که آنها تکنسین باشند یا نه. هر موقع که ما چنین حالتی روبرو میشوید مطمئن باشید که ارزش توجه را دارد.
در پایان
درست مانند دکترها، وکیلها و حرفههای دیگر، در زمینه آیتی نباید هیچوقت دست از یادگیری بردارید. تکنولوژیهای جدیدی وارد دنیای آیتی میشوند و جایگزین چیزی خواهند شد که ما الان از آنها استفاده میکنیم، به همین خاطر باید خودمان را برای اینکه بیشتر پویا باشیم و بهتر بتوانیم با شرایط جدید تطبیق دهیم آماده سازیم. افرادی که میتوانند موارد جدید را یاد بگیرند و تواناییهای خودشان را تازه کنند، در این مسیر امتیاز بیشتری به دست میآورند.
ممکن است شما هم در مقطعی از زمان چیزی را بسازید که جایگزین موردی باشد که مردم در حال حاضر از آن استفاده میکنند. فقط نیاز دارید که تمرکز کنید و خودتان را برای پیشرفت به سوی هدفتان آماده کنید.
هیچوقت از هیچچیزی نترسید. برنامهنویسی یک خاصیت ژنتیکی نیست، توانایی است که هر کسی میتواند آن را به دست بیاورد. پس شما میتوانید تنها نیاز به داشتن شور و علاقه و تخصیص وقت دارید. وقتی خودتان را در آن غوطه ور کردید، دیگر دوست ندارید از آن بیرون بیایید.
از صبر کردن دست بردارید و کار را شروع کنید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید