همهچيز درباره برنامهنويسشدن: ماجراجويي در دنياي كدها
بهطور خلاصه، يك برنامهنويس عهدهدار فرايند كدنويسي، اشكالزدايي و تطبيق با نتايج مورد انتظار، و نگهداري از كد منبع است. جايگاه امروز برنامهنويسي حاصل گامهاي متعددي در طول تاريخ است. گرچه بهظاهر برنامهنويسي ابداعي جديد بهشمار ميرود، اما رويدادهاي بسياري از گوشههاي مختلف دنيا روند توسعهي كامپيوتر و برنامهنويسي را پيش بردهاند.
قديميترين نمونهي عملي از برنامهنويسي به سال ۱۸۰۱ در كشور فرانسه برميگردد. در اين سال، شخصي بهنام ژاكارد يك دستگاه بافندگي طراحي كرده بود كه قادر بود تعدادي از فرآيندهاي بافندگي را ازطريق كارتهاي پانچ شده بهصورت خودكار و به ترتيب انجام دهد. فناوري جديد علاوهبر كمك به توليد پارچههاي باكيفيتتر و پيچيدهتر موجب شد كه بهجاي تعداد زيادي نيروي ساده، كل فرايند تنها توسط يك اپراتور مديريت شود. اين روند در خلال انقلاب صنعتي و در ديگر كشورهاي اروپايي ادامه يافت كه بهدنبال آن و در نتيجهي كاهش نياز به نيروي انساني جنبشهاي ضدفناوري نظير لوديتها شكل گرفتند كه براي حفظ جايگاه شغليشان مبارزه ميكردند.
يكي ديگر از ابتداييترين ايدههاي طراحي يك ماشين قابل برنامهريزي كه توانايي انجام يك سري دستورها خاص را داشت، به بيش از يك قرن پيش برميگردد. چارلز بابج در سال ۱۸۳۴ پيشنهاد ساخت ماشين بخاري را داد كه قادر بود برخلاف سيستمهاي تككارهي همعصر خود مجموعهاي از كارها را بهصورت مكانيكي انجام دهد. دستگاه محاسباتي آقاي بابج كه تحت عنوان موتور تحليلگر شناخته ميشد، توانايي انجام چندين كار همزمان را داشت. طي اين دوره ماشينهاي جديد ديگري نيز ساخته شدند كه ساختار تازهتري نسبت به قبل داشتند. در سال ۱۸۴۷ جرج بول، رياضيدان انگليسي، ارتباط ميان علم رياضيات و منطق را با ارائهي جبر منطقي اثبات كرد.
اولين كامپيوتر الكترونيكي به نام ENIAC در دههي ۱۹۴۰ توسط ارتش ايالات متحده ساخته شد
يافتههاي او پس از حدود يك قرن در محاسبات كامپيوتري به كار گرفته شد و به اين ترتيب، اولين كامپيوتر الكترونيكي به نام ENIAC در دههي ۱۹۴۰ توسط ارتش ايالات متحده ساخته شد. اين كامپيوترهاي جديد بسيار حجيم و داراي حافظه بسيار ناچيزي بودند و دستور دادن به آنها مستلزم جابجايي و تنظيم هزاران كابل و كليد توسط برنامهنويساني بود كه در آن سالها عمدتا از ميان زنان بودند. آنها ازطريق اين جابجاييها به كامپيوتر ميگفتند چه كاري را (What)، به چه صورت (How) و در چه زماني (When) انجام دهد. برنامهنويسي به شكل امروزي آن، حاصل تفكر و اقدامات اين اشخاص است.
چطور يك برنامهنويس شوم: راهنماي گامبهگام
برنامهنويسي را نه با نگاه درآمدزايي بلكه بايد با دل وجان و از سر علاقه شروع كنيد. در اين مسير، با سوالات بسياري روبهرو خواهيد شد؛ از جمله آنكه بهترين زبان برنامهنويسي چيست؟ چقدر طول ميكشد تا يه برنامهنويس خوب بشويم؟ و چقدر از اين حرفه درآمد خواهيم داشت؟
يادگيري برنامهنويسي كار چندان آساني نيست؛ اين اولين حقيقتي است كه بايد با آن روبهرو شويد. بااينحال، هنگامي كه برنامهنويسي را با ديگر مهارتها و مسيرهاي شغلي مقايسه ميكنيد، اين حرفه بهدليل مزاياي فراوان خود ميتواند انتخاب مناسبي برايتان باشد:
- برنامهنويسها در حوزهاي بسيار هيجانانگيز كار ميكنند كه هر روزه چالشهاي تازه و دانش جديد را به ارمغان ميآورد.
- برنامهنويسها فرصت دارند تا در هر ساعت از شبانهروز و در هر كجا كه مايلند كار كنند.
- آموختن برنامهنويسي در مقايسه با ديگر مهارتهايي كه ممكن است يادگيريشان در دانشگاه سه يا چند سال به طول بينجامد، آسانتر است. مطمئنا، ميتوانيد چند سالي از زندگيتان را وقف يادگيري برنامهنويسي در دانشگاه كنيد، اما وقتي كه امكان يادگيري اين حرفه بهصورت الكترونيك و آن هم ظرف چند ماه وجود داشته باشد، چنين كاري منطقي بهانديشه متخصصين نميرسد. يادگيري برنامهنويسي بسته به نوع زبان و استعداد شما ميتواند بين ۳ تا ۶ ماه به طول بينجامد، هرچند كه مسير يادگيري در برنامهنويسي هرگز متوقف نميشود و يك برنامهنويس موفق همواره در حال يادگيري و مطالعهي مباحث جديد است.
مقالهمرتبط:با برنامهنويسي، كسبوكار رؤياهاي خود را بسازيد
برنامهنويسي رشتهاي خوشآتيه است. براساس آمار سرويس ايران سلري، متخصصان گروه «تحقيق و توسعه محصول»، «برنامهريزي استراتژيك» و «توسعه نرمافزار و وب» به ترتيب بيشترين دريافتي را در رده سازماني «متخصص كارشناس» در سال ۹۷ داشتهاند. تقاضا، معياري براي تشخيص رشتههاي خوشآتيه است. به انديشه متخصصين ميرسد رشته «مهندسي كامپيوتر گرايش نرمافزار و طراحي وب» يكي از معدود نقاط اشتراك فهرست مشاغل پرتقاضا و مشاغل پردرآمد باشد كه اين امر، تابع روندي جهاني است.
مهندسي نرمافزار دومين شغل پرتقاضا و نيز در رده سوم پردرآمدترين گروههاي شغلي قرار دارد
مهندسي نرمافزار دومين شغل پرتقاضا در ۵ سال گذشته بوده و نيز در ردهي سوم پردرآمدترين گروههاي شغلي سال ۹۷ قرار دارد و به انديشه متخصصين ميرسد با توسعه زيرساختهاي اينترنتي، استارتاپها و كسبوكارهاي ديجيتال، گروه شغلي برنامهنويس تقاضاي بالايي پيدا كرده است. در ايران نيز طي سالهاي گذشته، ميزان استخدام برنامهنويسان كامپيوتر، مخصوصا آن گروهي كه به زبانهاي برنامهنويسي تحت وب تسلط بيشتري داشتهاند، با نرخ قابل قبولي در حال افزايش بوده است و بهدليل توسعهي صنعت نرمافزار در داخل كشور پيشبيني ميشود اين روند همچنان ادامه يابد.
همانطور كه ميبينيد، دلايل زيادي براي يادگيري برنامهنويسي وجود دارد. در اين مقاله به شما نشان ميدهيم كه چطور ميتوانيد اين حرفه را در هفت مرحلهي بهنسبت ساده بياموزيد.
گام ۱: به اين فكر كنيد كه چرا ميخواهيد وارد اين حرفه شويد
اولين و قطعا يكي از مهمترين مراحل براي تبديل شدن به يك برنامهنويس ماهر، شناسايي دلايلي است كه قصد داريد وارد اين حرفه شويد. كمي با خود خلوت كنيد و در مورد سوالات زير حسابي فكر كنيد، چرا كه پاسخ اصولي به اين پرسشها به شما كمك خواهد كرد كه انتخاب درستي داشته باشيد:
چرا ميخواهيد برنامهنويسي ياد بگيريد؟
پيش از هر اقدامي بايد اين سؤال را از خودتان بپرسيد كه آيا هدفتان از يادگيري برنامهنويسي اين است كه صرفا از جانبش پول درآوريد؟ آيا ايده يا مفهومي در گوشهي ذهنتان داريد كه قصد داريد خودتان آن را به واقعيت تبديل كنيد؟ يا شايد هم فقط ميخواهيد در اين زمينه مطالبي ياد بگيريد، زيرا به انديشه متخصصين ميرسد رشتهاي است كه اين روزها روي بورس است؟ صادقانه به اين سوالات پاسخ دهيد، زيرا آيندهي شغليتان به پاسخ شما به اين سؤالها بستگي دارد.
ميخواهيد كه با دانش جديد خود چه كارهايي انجام دهيد؟
بايد دقيقا بدانيد كه ميخواهيد با آموختههاي تازهي خود در زمينهي برنامهنويسي به كجا برسيد و چه اقداماتي صورت دهيد. بهعنوان مثال، دورههاي يادگيريي و زبانهاي برنامهنويسي مورد نياز براي توسعهدهندگان نرمافزار يا مهندسان سيستم كاملا متفاوت از مهارتهاي يك مهندس شبكه است.
آيا در مورد يادگيري برنامهنويسي جدي هستيد؟
پاسخ به اين سؤال نيز اهميت زيادي دارد. آيا واقعا دلتان ميخواهد كه برنامهنويس قابلي شويد و در اين رشته كار كنيد؟ اگر در تصميمتان جدي هستيد، همين حالا دست به كار شويد و يادگيري برنامهنويسي را آغاز كنيد.
گام ۲: در مورد تخصص خود تصميمگيري كنيد
برنامهنويسي شامل تخصصها و انواع مختلفي است. پس از آنكه در مورد يادگيري برنامهنويسي مصمم شديد، بايد به دقت دربارهي تخصص مورد انديشه متخصصينتان در زمينهي برنامهنويسي تصميمگيري كنيد. برخي از محبوبترين تخصصهاي برنامهنويسي عبارتاند از:
توسعهدهندگان وب
در دنياي طراحي وب، واژههايي مثل Front End يا Back End ممكن است زياد به گوش شما بخورد. توسعهدهندگان وب را ميتوان در اين دو دستهبندي آورد. برنامهنويسان فرانت مسئول نوشتن كدهايي هستند كه شكل و شمايل يك وبسايت و شيوهي نمايش محتواي آن را مشخص ميكند. بكاندها نيز عهدهدار ايجاد اسكلت و زيربناي يك وبسايت و طراحي هستهي ديتا و منطق سرور هستند. درواقع فرانتكارها در حكم بازيگران صحنه نمايش بوده و بكاندها نيز شبيه به عوامل پشت صحنهاي هستند كه بهصورت مستقيم روي صحنه نميآيند، ولي تاثير كارشان در اجراي نمايش مؤثر است.
فرانتكارها در حكم بازيگران صحنه نمايش و بكاندها نيز شبيه به عوامل پشت صحنه هستند
برنامهنويسان نرمافزار
برنامهنويسان نرمافزار (همانطور كه احتمالا ميتوانيد خودتان حدس بزنيد) مسئول ايجاد و توسعهي نرمافزار هستند. آنها معمولا طرح يا مفهومي را كه ايدهي آن توسط خود يا شخص ديگري ارائه شده است، در قالب كد درميآورند و آن را به محصولي عملياتي تبديل ميكنند.
دانشمندان داده
دانشمندان داده عموما نقشهاي متفاوتي ايفا ميكنند. دانشمندان داده علاقه زيادي به حل مسئله با رويكرد دادهمحور داشته و وظيفهي پيشبيني فرآيندها، متنكاوي، تحليل سري زماني، و تحليل شبكههاي اجتماعي را برعهده دارند. آنها مهارت خود در تحليل آماري و مدلسازي يادگيري ماشيني را در جهت پيشبيني و پاسخ به سوالات مهم بنگاههاي اقتصادي بهكار ميبرند. دانشمندان ميتوانند در مراكز تحقيقاتي يا دانشگاهها كار كنند. آنها در زمينهي تحقيقات مهارت دارند و براي سادهسازي كارشان از كدنويسي بهره ميگيرند.
مدير پايگاه داده
مديران پايگاه داده نيز وظايف متفاوتي را بر دوش دارند. آنها عمدتا مسئول گردآوري مقادير زيادي اطلاعات و تأمين، سازماندهي و تحليل آن هستند. اگر به آمار و تجزيه و تحليل داده علاقمند هستيد، ميتوانيد در اين شغل خوش بدرخشيد. يك متخصص ديتابيس وظايف ديگري نيز بر عهده دارد؛ از جمله سازماندهي و نگهداري دادههايي مثل اطلاعات مالي، اطلاعات مشتريان، اطلاعات انبار و كليهي اطلاعاتي كه ارزش حفظ و طبقهبندي را دارند. اين متخصصان داراي تخصص و دانش بالايي در كار با نرمافزارهاي ساخت و توسعهي بانكهاي اطلاعاتي مثل اوراكل، SQL و اكسس هستند.
توسعهدهندهي برنامههاي موبايل
با افزايش روزافزون متخصصان موبايلهاي هوشمند، تقاضا براي برنامههاي جديد و هيجانانگيز موبايل نيز بالا رفته است. توسعهي برنامههاي موبايل بهسرعت تبديل به يكي از پرطرفدارترين زمينههاي برنامهنويسي ميشود. برنامهنويسان تلفن همراه فرصتهاي بسيار زيادي نيز در زمينه فريلنسينگ دارند.
ساير تخصصها
آنچه در بالا خوانديد، تنها اشارهاي گذرا به برخي از رايجترين مشاغل برنامهنويسي بود. اگر هيچكدام از اين حوزهها مورد اقبالتان نبود، تحقيقات بيشتري انجام دهيد و تخصصهاي ديگر در زمينهي برنامهنويسي را نيز مطالعه كنيد. پيشرفت فزايندهي فناوري موجب شده تا هر روزه عناوين و نقشهاي جديد شغلي بهوجود بيايند، بنابراين لازم است كه آخرين اخبار و روندهاي صنعت را دنبال كنيد و با شبكهاي از برنامهنويسان همكاري كنيد تا از فرصتهاي تازه غافل نشويد.
گام ۳: حداقل در يك زبان برنامهنويسي متخصص شويد و قبل از آن، زبان انگليسيتان را تقويت كنيد
هنگامي كه زمينهي تخصصي خود در برنامهنويسي را انتخاب كرديد، بايد به زبانهايي كه مربوطبه آن زمينه هستند تسلط پيدا كنيد. بهعنوان مثال، يك مدير پايگاه داده بايد به SQL اشراف داشته باشد، فرانتكارها نيز بايد در زمينهي CSS و جاوا اسكريپت متخصص باشند و اگر قصد داريد كه براي موبايلهاي هوشمند برنامه بسازيد، بايد به زبان Java يا Swift مسلط باشيد.
رويهمرفته، باتوجه به عدم تشابه مباني زبانهاي برنامهنويسي، بهتر است كه يك زبان را ياد بگيريد و وقتي كه به جايگاه درستي در آن رسيديد، وارد برنامهنويسي به زبان ديگري شويد. يادگيري زبان برنامهنويسي پيشنيازهايي هم دارد و موفقيت در آن در گرو آشنايي با ساختمان دادهها، الگوريتمها، زبان انگليسي، و كار كردن با نرمافزارهاي مرتبط است.
در ادامه، برخي از محبوبترين زبانهاي برنامهنويسي و متخصصدهاي آنها را مشاهده ميكنيد. يكي از مهمترين دغدغههاي كساني كه قصد ورود به حوزهي برنامهنويسي را دارند، اين است كه بدانند بهترين زبان براي يادگيري كدام است. اما پاسخ به اين سؤال وابسته به عوامل بسياري بوده و به اين سادگيها نيست. نكتهي قابلتوجه اين است كه باتوجهبه سرعت چشمگير پيشرفت فناوري و ظهور و تكامل انواع زبانهاي برنامهنويسي، پيشرفت در اين حوزه در گرو روزآمدي و يادگيري مستمر مباحث تازه است. بنابراين انتخاب زبان برنامهنويسي مناسب وابسته به مطالعه اطلاعات بهروز و مطالعه قابليتها، متخصصدها و محدوديتهاي هر زبان است. پس از شناخت متخصصد هر زبان، ميتوانيد خود را آمادهي يك ماجراجويي مهيج در دنياي پرهيجان برنامهنويسي كنيد. نكتهي ديگري كه بايد مدانديشه متخصصين داشته باشيد، اين است كه پردرآمدترين زبان برنامهنويسي در ايران، زباني است كه برنامهنويس به آن كاملا مسلط بوده و حرفهاي زيادي براي گفتن داشته باشد.
پردرآمدترين زبان برنامهنويسي در ايران، زباني است كه برنامهنويس به آن كاملا مسلط باشد
پايتون
پايتون يكي از زبانهاي برنامهنويسي متنوع و گسترده در دنياي هيجانانگيز برنامهنويسي است. پايتون يك انتخاب عالي براي افرادي است كه مايل به كار در علوم داده، توسعه نرمافزار يا تقريبا هر زمينهي ديگر از برنامهنويسي هستند. پايتون در تعدادي از فناوريهاي نوظهور مانند يادگيري ماشيني و هوش مصنوعي نيز متخصصد دارد. پايتون بستري بسيار امن بوده و به همين سبب مورد استفادهي سايتها و سرويسهايي نظير يوتيوب و دراپباكس قرار گرفته است. سادگي و آساني يادگيري اين زبان و ارزش بالاي آموز آن، پايتون را به يك زبان برنامهنويسي محبوب تبديل كرده است.
CSS / HTML
اگر قصد داريد كه بهعنوان يك فرانتاند كار كنيد، در اينصورت يادگيري HTML و CSS ضروري خواهد بود. اگرچه آنها دو زبان مجزا هستند، اما عموما براي ايجاد صفحات وب جذاب و هوشمندانه از هر دوي اين زبانها دركنار يكديگر استفاده ميشود. در يك جملهي ساده ميتوانيم بگوييم كه CSS آمده تا دنياي وب و صفحات وب را براي ما زيباتر كند. و اين كار را با كمك و ياري HTML انجام ميدهد.
JavaScript
جاوا اسكريپت يك زبان برنامهنويسي چند منظوره است كه متخصصدهاي متعددي دارد. جاوااسكريپت زباني قانونمند و با ساختاري استاندارد است كه بهلحاظ كارايي و استفاده از پرامتيازترين زبانهاي برنامهنويسي در سراسر دنيا است. اين زبان ارزش يادگيري بسيار بالايي داشته و نقطهي شروع خوبي براي ورود به دنياي برنامهنويسي است. اين زبان در طراحي وبسايتهاي تعاملي، طراحي فرانت، طراحي اپليكيشنهاي موبايل، توسعهي بازي و حتي در علم رباتيك استفاده ميشود!
جاوا
جاوا بهعنوان يكي از متنوعترين زبانهاي برنامهنويسي در جهان شناخته ميشود. جاوا ارزش يادگيري بسيار بالايي دارد، هرچند كه يادگيري آن دشوارهاي خود را دارد. بهرهمندي اين زبان از ماشين مجازي موجب ميشود تا جاوا با هر پلتفرمي سازگار باشد و انتخابي مطمئن براي توسعهدهندههاي بكاند، برنامهنويسان اپلكيشنهاي اندرويدي و مديران داده باشد.
PHP
پياچپي يكي از زبانهاي محبوب برنامهنويسي است كه با هدف طراحي صفحات پوياي وب توسعه داده شده است. متن باز و رايگان بودن اين زبان، همراهي خوب و فريموركهاي قدرتمندي مثل لاراول، موجب محبوبيت فراوان اين زبان شده است. عمده سايتهاي ايراني محبوب از زبان برنامهنويسي پياچپي استفاده ميكنند و لذا يادگيري و تسلط بر اين زبان ميتواند آيندهي شغلي خوبي را برايتان رقم بزند.
Swift
سوئيفت يكي ديگر از زبانهاي برنامهنويسي است كه توسط اپل و به منظور توسعهي برنامههاي متكي بر سيستمعامل انحصاري شركت اپل نظير IOS و MacOS ارائه شده است. اين زبان با هدف تسهيل برنامهنويسي و افزايش سطح امنيت آن و جلوگيري از خطاهاي برنامهنويسي، توسط اپل توسعه داده شده است و اجازه ميدهد تا مبتديان هم بتوانند با استفاده از آن اقدام به طراحي اپليكيشنهاي iOS كنند.
solidity
ساليديتي احتمالا ناشناختهترين زبان برنامهنويسي در اين فهرست است. ساليديتي يك زبان برنامهنويسي سطح بالا است كه براي كار با فناوري جديد بلاك و توسعهي قراردادهاي هوشمند روي بلاكچين اتريوم طراحي شده است. ظهور ارزهاي رمزنگاريشده و فناوري بلاكچين باعث افزايش تقاضا براي جذب توسعهدهندگان ساليديتي شده است.
روبي
آخرين زبان در فهرست ما، روبي است. اولينبار مهندسان ژاپني اين زبان را براي ساخت بازيها توسعه دادند. اين زبان كه از جمله كارآمدترين زبانها براي توسعهي وباپليكيشنها و وبسرويسها و بازيها شناخته ميشود، به آساني قابل يادگيري است؛ هرچند كه در مقايسه با ساير زبانهاي برنامهنويسي در حوزهي توسعهي وب چندان وسيع نيست و فرصتهاي شغلي كمتري هم دارد. ماهيت روبي شبيه پايتون است و براي طراحي شبكههاي اجتماعي و بسترهاي تجارت الكترونيك نيز كارايي دارد.
گام ۴: تمرين، تمرين و باز تمرين
حالا كه قصد داريد به يك برنامهنويس تبديل شويد، كافي است اين راز را به ذهنتان بسپاريد:
شما بايد تمرين كنيد! شما بايد زياد تمرين كنيد!
تمرين و ممارست كليد موفقيت در حرفهي برنامهنويسي است. دست به كار شويد، كد بنويسيد و به كمك يك ويرايشگر در مرورگرتان به اصلاح اشتباهات خود بپردازيد. آنها را به اشتراك بگذاريد و نقد و انديشه متخصصين ديگران را جويا شويد. هر روز موضوع جديدي ياد بگيريد و تا زمان اشراف بر جنههاي مختلف آن به تمرين ادامه دهيد. ميتوانيد تمرين خود را در سايتهايي نظير codingame.com انجام دهيد كه شامل مسائل و سوالات دستهبنديشدهاي است كه ميتوانيد باتوجهبه سطح مهارت خود درجهي سختي آن را پيدا كنيد.
گام ۵: نمونه كار داشته باشيد
امروزه بسياري از شركتها بدون توجه به مدرك تحصيليتان، نمونه كارهايي از شما مطالبه ميكنند تا ميزان مهارتتان را مشخص كنند. هر چند داشتن مدرك تا حدودي موجب اعتبار بيشتر برايتان ميشود، اما در دست داشتن نمونه كارهاي عالي و قابل قبول كليد استخدام شما توسط كارفرمايان خواهد بود. در حال حاضر وبسايتهاي يادگيريي متعددي در زمينهي برنامهنويسي وجود دارد كه w3schools.com و bloc.ioc سادهترين و كاملترين آن است. بهعلاوه جزوه رايگانهاي خودآموز متعددي هم وجود دارد كه در صورت بهروز بودن و يادگيري كارگاهي ميتواند كمك فراواني به پيشرفتتان كند. اما شايد يكي از بهترين روشهاي يادگيري اصولي برنامهنويسي، كارآموزي در شركتها و يادگيري مباني برنامهنويسي از زبان حرفهايهاي اين رشته است.
كارآموزي دركنار مزاياي بسيار ميتواند به تقويت پورتفوليوي كاريتان نيز كمك كند. بهعلاوه ميتوانيد در برنامههاي توسعهدادهشده توسط ديگران نيز مشاركت كنيد. بهطور مثال، «گيتهاب» يكي از وبسايتهاي بسيار معروف در اين زمينه است كه برنامهنويسان حرفهاي در آن به انتشار كدهاي خود ميپردازند و شما ميتوانيد با جستوجو در آن به پروژههاي انجام شده توسط ساير برنامهنويسان دسترسي پيدا كنيد. ضمن آنكه ميتوانيد اشكالات خود در مسير يادگيري را در انجمنهاي الكترونيك برنامهنويسي مطرح كنيد و انديشه متخصصين سايرين را در خصوص آن بدانيد.
گام ۶: وارد بازار كار شويد
حالا شما شناخت مناسبي از رشتهي خود داريد. تخصصتان در زمينهي برنامهنويسي را انتخاب كردهايد، مهارتها و زبانهاي برنامهنويسي مرتبط با آن حوزه را كسب كردهايد و شروع به تمرين كدنويسي كرده ايد. حالا كافي است مجموعهاي از نمونه كارهايتان را براي كارفرمايان ارسال كنيد و منتظر پاسخشان بمانيد. البته يكي از مزاياي بزرگ برنامهنويسي اين است كه اگر حتي به استخدام جايي هم درنياييد، ميتوانيد شخصا از آن پول در بياوريد و بهصورت فريلنسري كار كنيد.
گام ۷: هيچگاه دست از يادگيري نكشيد!
روشن است كه برنامهنويسي زمينهاي به سرعت در حال توسعه است. شايد امروز مهارتهاي زيادي در اين حرفه داشته باشيد، اما مهارتهاي امروزتان پاسخگوي نيازهاي فردا نخواهد بود. بنابراين بايد مهارتها و زبانهاي جديد را ياد بگيريد. اولين برنامهاي كه بيشتر برنامهنويسان به نوشتناش پرداختند، برنامهي «سلام جهان» (Hello world) بوده است كه تنها يك پيغام كوتاه روي نمايشگر نمايش ميدهد. آنها با تمرين و يادگيري مستمر توانستهاند پايهگذار برنامههاي پيچيده و پركاربرد كنوني شوند.
تيپ شخصيتي خود را بشناسيد
به كمك آزمون تيپنماي شخصيت مايرزـ بريگز (MBTI)، ميتوان نوع و فراواني تيپ شخصيتي خبرنگاران را مورد كنكاش قرار داد. تيپ هاي شخصيتي MBTI توسط ايزابل مايرز و كاترين بريگز براي دستهبندي افراد براساس نحوهي رفتار و فكر كردن آنها ساخته شد، كه به ۱۶ دسته تقسيم ميشوند. هر تيپ شخصيتي توسط ۴ حرف (مانند INTJ و ESTJ ) كدگذاري ميشود كه هر حرف نشاندهندهي بُعدي خاص از شخصيت است.
براساس تحقيقات جهاني از برنامهنويسان، در مطالعه ويژگيهاي شخصيتي كدنويسها براساس تيپنماي مايرز ـ بريگز، ۴ محور ويژگي شخصيتي برونگرايي- درونگرايي، حسي- شهودي، تفكري- احساسي و ادراككننده- قضاوتكننده سنجيده ميشود.
در آيتم برونگرايي- درونگرايي (اينكه افراد انرژيشان را از كجا ميگيرند و آن را به كجا هدايت ميكنند؛ دنياي بيروني يا دروني؟)، برنامهنويسان عمدتا و درمجموع، درونگرا هستند. در آيتم حسي- شهودي (بهاين معنا كه ما معمولا چه نوع اطّلاعاتي را متوجه ميشويم) نيز برنامهنويسان بيشتر شهودي هستند و كسب اطلاعات آنان ازطريق شم آنان و نه حواس پنجگانه صورت ميگيرد. در بعد تفكري- احساسي، برنامهنويسها بيشتر تفكري هستند؛ يعني براساس تفكر تصميم ميگيرند. بهعلاوه بيشتر برنامهنويسها قضاوتكننده هستند؛ يعني معمولا سازماندهيشده، ساختارمند و منظم هستند.
برنامهنويسها چقدر درآمد دارند؟
ميزان درآمد برنامهنويسها به عوامل متعددي از جمله سابقهي كار، تجربه، پست سازماني پيشين، ميزان تخصص و تسلط بر زبان برنامهنويسي و نيز محل كار برنامهنويس بستگي دارد. رويهمرفته توسعهدهندگان وب و برنامهنويسان كاميپوتر در ميان پردرآمدترين مشاغل جهان بهشمار ميروند. متوسط درآمد سالانهي برنامهنويسان در سال ۲۰۱۸ و مطابق دادههاي سامانه حقوق و دستمزد PAyScale معادل ۶۱.۸۳۳ دلار است:
متوسطي پرداخت سالانهي شركتهاي مشهور به برنامهنويسان نيز به قرار زير است:
بازار كار برنامهنويسي اين روزها در ايران نيز حسابي جديد است و سازمانهاي داخلي تلاش ميكنند تا برنامهنويسهاي برتر را به خود جذب كنند. در اين بين تعداد زيادي از برنامهنويساني كه قصد تغيير شغل دارند، تخمين درستي از حقوق منصفانه خود در اين بازار ندارند و نميدانند بايد چه عددي را بهعنوان حقوق درخواستي خود ذكر كنند. بر همين اساس جاب ويژن تصميم گرفت تا يك انديشه متخصصينسنجي سراسري و بزرگ را براي محاسبهي ميانگين دستمزدها در اين حوزه برگزار كند و براساس دادههاي واقعي، گزارش تحليلي و جامعي از سطح حقوق و مزاياي برنامهنويسان منتشر كند.
در اين انديشه متخصصين سنجي، ۱۳۰۷ نفر شركت داشتهاند كه نتايج آن در زير قابل مشاهده است.
آيا برنامهنويسي نياز به مدرك تحصيلي دارد؟
يادگيري برنامهنويسي در سطوح مختلفي از كلاسهاي يادگيريي الكترونيك گرفته تا تحصيلات دانشگاهي با اين وجود، كارفرمايان بيشتر به ميزان دانش و تجربهي فرد در زبانهاي برنامهنويسي توجه دارند تا مدارك تحصيلي. هرچند كه قديميترها همواره مدرك دانشگاهي را بهعنوان بهترين مسير دستيابي به شغلي پردرآمد و آيندهدار در انديشه متخصصين ميگرفتند. اما بسياري از توسعهدهندگان نامآور هرگز مدركي از دانشگاه نگرفتهاند يا حتي در مقطعي ترك تحصيل كردهاند. طبق گزارشي كه در سال ۲۰۱۶ منتشر شده است، بيش از نيمي از برنامهنويسان فعال مدركي در حوزهي علوم رايانهاي ندارند. كساني كه به برنامهنويسي بهعنوان حرفهي آيندهي خود نگاه ميكنند، ميكوشند تا بهصورت خودآموز به يادگيري تازهترين مباحث روز دنياي برنامهنويسي بپردازند. بااينحال، ممباحثه برنامهنويسي در سطوح مختلفي در مراكز يادگيريي دولتي، خصوصي و مجازي ارائه ميشود. در مجموع فارغالتحصيلان رشتههاي علوم كامپيوتر، مهندسي نرمافزار، مهندسي فناوري اطلاعات يا متخصص كارشناسي ارشد در يكي از گرايشهاي ارشد مهندسي كامپيوتر و گرايشهاي ارشد مهندسي فناوري اطلاعات، به ظاهر آمادگي بيشتري براي ورود به اين شغل دارند.
بااينحال، طبق آمار انديشه متخصصينسنجي مراكزي چون StackOverflow (معتبرترين وبسايت پرسش و پاسخ برنامهنويسان) نيز بيشترين درصد برنامهنويسان داراي مدرك ليسانس بودند و ۱۲ درصد هم محصل يا دانشجو بودند. جالب است بدانيد كه نيمي از برنامهنويسان شركتكننده در اين انديشه متخصصينسنجي، مدرك دانشگاهي مرتبط با رشته كامپيوتر نداشتند.
مقطع هنرستان
در سالهاي گذشته علاقمندان به تحصيل در زمينه علوم كامپيوتر در رشتهاي با عنوان كامپيوتر در هنرستانها مشغول به تحصيل ميشدند كه با تغيير نظام يادگيريي از سال ۹۵، اين رشته با عنوان جديد شبكه و نرمافزار رايانه به هنرجويان ارائه شد. بهطور كلي رشتههاي هنرستان در ايران در چهار زمينهي اصلي صنعت، كشاورزي، هنر وخدمات ارائه ميشود كه رشتهي شبكه و نرمافزار رايانه در دستهي صنعت قرار ميگيرد. مهمترين درس براي اين رشته در سه ساله اول متوسطه، درس كار و فناوري است. هنرجويان طي اين دوره مباحث متعددي از جمله رياضيات، زبان انگليسي، نصب و راهاندازي سيستمهاي رايانهاي، توليد محتواي الكترونيك، دانش متخصص پايه، توسعه برنامهسازي و پايگاه داده، پيادهسازي سيستمهاي اطلاعاتي و طراحي وب، تجارت الكترونيك و امنيت شبكه را فرا ميگيرند.
كارداني كامپيوتر
دانشآموختگان هنرستان، كاردانش و متخصص حرفهاي كه پيشدانشگاهي را نگذراندهاند، براي ورود به دانشگاه ابتدا وارد مقطع كارداني ميشوند و سپس در صورت تمايل تحصيلاتشان را در مقاطع بالاتر ادامه ميدهند. بااينوجود دانشآموزاني كه مقطع پيشدانشگاهي را گذرانده باشند نيز ميتوانند كارداني كامپيوتر را انتخاب كنند. هدف اين دوره، تربيت برنامه نويساني است كه در زمينههاي مختلف برنامهنويسي جهت راهاندازي و استفاده سيستمهاي سختافزاري جديد يا موجود فعاليت كنند. دانشآموختگان اين دوره ميتوانند بهصورت فردي يا در قالب گروهي نسبت به برنامهنويسي و توليد نرمافزارهاي مختلف براي شركتهاي خصوصي، سازمانهاي دولتي و ساير كارفرمايان اقدام كنند. كارداني كامپيوتر در تمام دانشگاههاي شبانه و روزانه، آزاد، غيرانتفاعي، علمي متخصصدي و متخصص حرفهاي پذيرش دانشجو دارد. درصورتيكه شما نيز داوطلب كارداني كامپيوتر هستيد، ميتوانيد در زمان ثبتنام دانشگاه دفترچه راهنما را از سايت سازمان سنجش يا سايت دانشگاه آزاد (براي ثبتنام بدون كنكور آزاد) دريافت و نسبت به ثبتنام اقدام كنيد. مدت مجاز تحصيل در مقطع كارداني تا دو سالونيم است، اما معمولاً دانشجويان ميتوانند طي دو سال آن را به پايان برسانند.
دانشجويان كارداني كامپيوتر بايد بين ۶۸ تا ۷۳ واحد درسي را بگذرانند.
مباني رايانه | مهارتهايي كه در قالب اين دورهي يادگيريي كسب ميكنيد |
---|---|
هنرجويان در اين ممباحثه يادگيريي بهصورت اجمالي با سيستمهاي مختلف رايانه از نرمافزار و تا سيستمهاي عامل آشنا ميشوند. | شناخت پيشينهي روشهاي محاسباتي و رايانش استفاده از نرمافزار براي امور متني و ديتابيس توانايي بهكارگيري رايانه در محيطهاي يادگيريي و تجاري |
مباني برنامهنويسي | مهارتهايي كه در قالب اين دورهي يادگيريي كسب ميكنيد |
---|---|
هنرجويان در قالب اين دورهي يادگيريي به يادگيري منطق برنامهنويسي ميپردازند كه پايهاي براي زبانهاي برنامهنويسي در آينده خواهد بود. | استفاده از دستورها به منظور مديريت فايلهاي سيستمعاملي طراحي و اجراي الگوريتمهاي پايه با استفاده از زبان برنامهنويسي |
جاوا/ساختاربندي ديتا | مهارتهايي كه در قالب اين دورهي يادگيريي كسب ميكنيد |
---|---|
در اين ممباحثه يادگيريي با زبان برنامهنويسي شيگراي جاوا بهعنوان يكي از روشهاي پركاربرد و گستردهي ساختاربندي نرمافزار آشنا ميشويد. | ساخت برنامههاي مبتني بر جاوا تست و ديباگ برنامههاي مبتني بر جاوا به منظور اطمينان از صحت عملكرد |
زبان برنامهنويسي c++ | مهارتهايي كه در قالب اين دورهي يادگيريي كسب ميكنيد |
---|---|
هنرجويان طي اين دوره با مفاهيم زبان برنامهنويسي سيپلاسپلاس آشنا ميشوند. | مباني طراحي برنامه با استفاده از C++ |
مقطع متخصص كارشناسي
گرايشهاي رشتهي كامپيوتر در مقطع متخصص كارشناسي داراي دو گرايش سختافزار و نرمافزار است كه دانشجو ميتواند باتوجهبه علاقه نسبت به انتخاب هر كدام اقدام كند. دانشجو در طول مدت تحصيل رشته متخصص كارشناسي نرمافزار با انواع برنامهها و نحوهي كار كردن با آنها آشنا ميشود و علاوهبر آن اصول برنامهنويسي كه يكي از مهمترين مباحث رشتهي كامپيوتر محسوب ميشود را يادگيري ميبينيد.
الگوريتمها | مهارتهايي كه در قالب اين دورهي يادگيريي كسب ميكنيد |
---|---|
هنرجويان طي اين ممباحثه با چگونگي طراحي و تحليل بهينهي الگوريتمها آشنا ميشوند | مباني طراحي الگوريتمهاي جستوجوگر در پايگاه داده براساس پارامترهاي خاص استفاده از الگوريتمها در جهت واشكافي مسائل ايجاد گراف ازطريق الگوريتم ساختاردهي كارآمد داده |
رياضيات گسسته | مهارتهايي كه در قالب اين دورهي يادگيريي كسب ميكنيد |
---|---|
مفاهيم و نشانههاي رياضيات گسسته براي مطالعهي «الگوريتمهاي رايانه» و «زبانهاي برنامهنويسي» مورد استفاده قرار ميگيرد | بهكارگيري رياضيات و استدلال استقرايي در جهت حل مسائل تعيين مقياس مفاهيم و اشياء پيچيده ازطريق محاسبات پيشرفته رياضياتي استفاده از الگوريتمها در حل مسائل |
رايانه | مهارتهايي كه در قالب اين دورهي يادگيريي كسب ميكنيد |
---|---|
كسب دانش طراحي و شناخت اجزاي كامپيوتر و نحوهي تعامل آنها و چگونگي عملكرد سختافزار و نرمافزار كامپيوتر در ارتباط با يكديگر | يادگيري منطق ديجيتال شناخت ساختار دروني و سازوكار عملكرد كامپيوتر |
شبكههاي كامپيوتري | مهارتهايي كه در قالب اين دورهي يادگيريي كسب ميكنيد |
---|---|
هنرجويان طي اين دوره با مباحث ارتباطات آشنا ميشوند و شيوهي حل مسايل مرتبط با شبكه و ايمني و دسترسي به آن را فراميگيرند. | مباني طراحي پروتكلهاي شبكه طراحي و تأمين امنيت ارتباطات شبكه |
مقطع متخصص كارشناسي ارشد و دكتري
گرايشهاي رشته كامپيوتر در مقطع متخصص كارشناسي ارشد داراي چهار گرايش نرمافزار، معماري كامپيوتر، هوش مصنوعي و الگوريتم و محاسبات است.
دورههاي الكترونيك يادگيري برنامهنويسي
در دنياي مجازي، وبسايتهايي وجود دارد كه به شما كمك ميكند از صفر بتوانيد برنامهنويسي را ياد بگيريد. استفادهي صحيح از اين وبسايتها مستلزم تسلط نسبي به زبان انگليسي (براي سايتهاي خارجي)، حوصله و علاقه فراوان، اختصاص زمان كافي و برنامهريزي دقيق است.
در ادامه، تعدادي از منابع فارسي و انگليسي الكترونيك براي يادگيري برنامهنويسي را مشاهده ميكنيد:
- وبسايت انگليسي coursera
- w3schools.com (بهترين و كاملترين و سادهترين سايت يادگيري برنامهنويسي با امكان تمرين و تست)
- bloc.io (وبسايتي براي يادگيري الكترونيك برنامهنويسي)
- continuinged.uml.edu (وبسايتي براي يادگيري الكترونيك برنامهنويسي با ارائه مدرك)
- codeavengers.com (بستر الكترونيك و رايگان براي شروع يادگيري برنامهنويسي)
- html.ir (وبسايتي براي اموزش ساده و قدم به قدم html از صفر)
- lynda.com
- وبسايت انگليسي Code Academy
- وبسايت انگليسي udemy
- وبسايت انگليسي tutorialspoint
- وبسايت w3schools
- وبسايت انگليسي udacity
و وبسايتهاي فارسي:
- اخبار تخصصي، علمي، تكنولوژيكي، فناوري مرجع متخصصين ايران
- فرانش
- فرادرس
- مكتب خونه
- كد فرند
- سكان آكادم
هم انديشي ها