- تاریخ ارسال : سه شنبه 19 شهريور 1398
- بازدید : 98

از کجا باید شروع کنم و چه زبانی را به عنوان زبان اصلی خود انتخاب کنم. همه دوست دارند بدانند کار را باید از کجا آغاز کنند و همواره تمایل دارند یک جواب صریح و روشن را در این زمینه دریافت کنند، حتی بسیاری ترجیح میدهند گام اول را از همان ابتدا با سختترین زبان برنامهنویسی آغاز کنند به امید آنکه در دنیای حرفهای حرفی برای گفتن داشته باشند در صورتی که تجربه نشان داده است، این راهکار در بیشتر موارد به بنبست ختم میشود.
چه زبان برنامهنویسی را بهتر است یاد بگیریم؟
سایت Udacity.com اینفوگرافی جالبی را در ارتباط با انتخاب زبان برنامهنویسی، همراه با میزان تقاضای بازار و تفکیک الگوهای مختلف طراحی کرده است. اما به جای آنکه مستقیما این اینفوگرافی را به شما نشان دهیم، ابتدا بهتر است کمی درباره انتخاب زبان برنامهنویسی مناسب و معیارهایی که در این زمینه باید رعایت شوند نکاتی را مورد بررسی قرار دهیم. شیوهای که سایت یوداستی برای ساخت این اینفوگرافی مورد استفاده قرار داده در نوع خود جالب توجه به شمار میرود. اما برای آنکه توصیهها متمایز از یکدیگر باشند، آنها را در گروههای تفکیک شده از یکدیگر قرار دادیم. بهطور مثال، توصیههایی برای عاشقان سفر، طراحان وب، کاربران دنیای فناوریاطلاعات یا افرادی که در مسیرهای شغلی دیگر گام بر میدارند. برای آنکه بتوانیم پاسخ شما را به درستی دهیم، ابتدا باید مصاحبههای مختلفی را با متخصصان و افراد تازهکار انجام داده تا در نهایت علایق آنها را با نیاز شرکتهای حوزه فناوری مورد بررسی قرار دهیم. این مکانیزم باعث میشود بدانیم فناوری در چه بخشهایی متمرکز شده است و نیازهای روز دنیای فناوری چه هستند. بهطور مثال، شما ممکن است به زبان برنامهنویسی اسمبلی علاقمند باشید اما باید ببنید آیا بازار کار این زبان برنامهنویسی در ایران رایج است یا تنها شرکتهای بسیار محدودی به آن نیاز دارند.
چگونه در هر مکانی میتوانم کارم را انجام دهم؟
آیا عاشق مسافرت کردن هستید؟ اگر چنین است بهتر است زبانهای برنامهنویسی تحت وب را یاد بگیرید. پایتون گزینه خوبی در این زمینه به شمار میرود. البته اگر اندکی روی زبان برنامهنویسی سی سرمایهگذاری کنید کار عاقلانهای خواهد بود. ( شاید کمی تعجب کنید اما زبان برنامهنویسی سی در بعضی از کشورهای شرق آسیا بازار خوبی دارد.) همچنین به فکر یادگیری پلتفرمهای ابری همچون Heroku، BlueMix و Azure نیز باشید. Amazon AWS گزینه قابل تعمل دیگری در این زمینه به شمار میرود، اما منحنی یادگیری آن در مقایسه با دیگر پلتفرمها به زمان بیشتری نیاز دارد. البته به عنوان یک تازهکار، بهتر است به جای آنکه روی پیکربندی متمرکز شوید، تمرکز خود را روی مفاهیم پایه قرار دهید. برای این منظور سرفصلهای آموزشی مقدماتی و بسیار مفیدی در سایت Stack Overflow Careers و Angel.co وجود دارد.
چگونه میتوانم سختافزارهای قدرتمندی طراحی کنم؟
اگر در نظر دارید دستگاههای فیزیکی طراحی کنید، دو برد بسیار عالی برای این منظور وجود دارد، رزبری پای و آردوینو. ( برای اطلاعات کامل در مورد نحوه کار با برد رزپری پای به ویژهنامه اسفندماه شبکه مراجعه کنید.)
البته به عقیده شخصی نویسنده برد رزپری پای برای شروع گزینه مناسبی است به دلیل اینکه یادگیری پایتون در مقایسه با زبان برنامهنویسی سی سادهتر است. اما اگر در نظر دارید برنامهنویسیهایی را در سطح لایه نزدیک به سختافزار انجام دهید بدون شک به سی یا سی پلاس پلاس نیاز خواهید داشت. همچنین، اگر در نظر دارید روی پروژههای شخصی در ارتباط با اینترنت اشیا کار کنید، بهتر است یک آیفون یا آندروید ارزان قیمت یا حتی معیوب که صفحهنمایش آن شکسته شده است خریداری کنید. موقعیتیاب سه بعدی و حالت لرزشی آن بدون آنکه نیازی به برنامهنوسی وجود داشته باشد با ابزار IBM BlueMix IoT Demo در اختیارتان قرار خواهد داشت.
چگونه میتوانم سطح دستمزدی که دریافت میکنم را افزایش دهم؟
جدای از یادگیری یک زبان برنامهنویسی جدید، یک استراتژی خوب یادگیری مفاهیم مرتبط با سیستمهای سازمانی است. بهطور مثال، متمرکز شدن روی سیستمهای مرتبط با دادههای حجیم شبیه به Handoop یا Spark انتخاب عاقلانهای به شمار میرود. ( سایتها و منابع آنلاین زیادی وجود دارند که این مفهوم را بهطور رایگان به شما آموزش میدهند. سایت EdX.ORG نمونهای از این مکانهای یادگیری آنلاین به شمار میرود.)
اگر شغل انتخابی من برنامهنویسی نیست باید چه کنم؟
تا این قسمت توصیههایی که ارائه کردیم بهطور مستقیم در ارتباط با برنامهنویسی بود. اما در مورد صنایع دیگر چگونه میتوانیم عمل کنیم؟ جایی که دانش برنامهنویسی به میزان اندکی مورد نیاز خواهد بود. در ابتدا، اگر عبارت ()sumif معنای خاصی برای شما ندارد، در اولین گام به سراغ اکسل بروید. صفحات گسترده این روزها بیشتر از آن چه مردم تصور میکنند راهگشا خواهد بود. بیشتر برنامهنویسان قبل از آنکه به سراغ کدنویسی مستقیم بروند تا جایی که امکان دارد از مزایای صفحات گسترده در محاسبات خود استفاده میکنند. بهطور مثال، زمانی که برای دادههای خود به نمودار گرافیکی زیبا نیاز دارد و اکسل در عرض چند دقیقه چنین نموداری را در اختیارتان قرار میدهد چه لزومی دارد ساعتها یا بلکه روزها وقت خود را برای طراحی و پیادهسازی چنین چارتی در یک زبان برنامهنویسی هدر دهید؟ ( بویژه آنکه مایکروسافت در آفیس 2016 ویژگیها و امکانات شاخصی را در اکسل 2016 قرار داده است. ویژگیهایی که در گذشته تنها در نسخه تجاری اکسل و آفیس 365 در اختیار کاربران قرار داشت.) بعد از یادگیری اکسل شما نیازمند یادگیری مفاهیم زیر هستید:
1.HTML، هر سایتی توسط HTML ساخته شده است. (همراه با برنامههای جانبی دیگری). اگر تصور میکنید، HTML کمی ساده بوده و تمایل دارید فراتر از اصول اولیه گام بردارید، باید به سراغ وردپرس بروید، همچنین اگر موقعیت شغلی شما در ارتباط با ابزارهای بازاریابی دیجیتالی خواهد بود، توصیه میکنیم HTML را فراموش نکنید. HTML همراه با برچسبها، متادیتاها و مؤلفههایش کمک فراوانی در این زمینه ارائه میکند.
2. Cascading stylesheets یا به اختصار CSS یک قالببندی ویژه کدها بوده که توسط سایتها مورد استفاده قرار میگیرد. این ابزار برای قالببندی فونتها و رنگها در صفحات وب مورد استفاده قرار میگیرد.
3. جاوا اسکرپیت مقدماتی، اگر در نظر دارید سایتی که طراحی میکنید، رییستان را تحت تأثیر قرار دهد، دانستن کمی جاوا اسکرپیت در این زمینه کمک کننده خواهد بود.
4. PHP یا ASP.Net یا Visual Basic، یادگیری هر یک از این سه زبان بسیار ساده است. این زبانها مستقل از یکدیگر هستند. زبانهای اشاره شده به شما اجازه میدهند چیزهایی که به آنها نیاز دارید در سریعترین زمان ممکن در اختیارتان قرار بگیرد. ( در ایران تمرکز بیشتر روی زبان برنامهنویسی PHP است.)
این زبانهای برنامهنویسی در برنامهنویسیهای روزمره و کارهای مختلف و بویژه کار با اسکریپتها مورد استفاده قرار میگیرند. بهطور مثال، وردپرس به زبان PHP نوشته شده است. ویژوال بیسیک به شما اجازه میدهد نه تنها وب سایتها، بلکه برنامههای ویندوز را در سریعترین زمان ممکن سفارشی کنید. دانستن زبانهایی شبیه به پیتون یا جاوا در این زمینه چندان راهگشا نمیباشند به دلیل اینکه آنها به گونهای طراحی شدهاند که در مقیاس وسیع برای برنامهنویسی سرورها، توسعه برنامهها یا اسکرپیتهای سیستمی مورد استفاده قرار گیرند. اگر در نظر دارید پیتون یا زبانهایی در این رده را در آینده یاد بگیرید حرکت از جاوا اسکرپیت یا PHP به پیتون کار سادهای خواهد بود به دلیل اینکه اصول اولیه و پایه یکسان هستند.
اگر شغل من فناوری اطلاعات باشد چه زبانی برای من مناسب است؟
اگر کاربر پلتفرم ویندوز هستید، HTML و PowerShell برای شما مناسب است. اگر کاربر پلتفرم لینوکس هستید، یادگیری HTML و bash scripting برای شما مناسب خواهد بود.
برای آنکه در حوزه IT موفق باشید نیازی نیست برای یادگیری زبانهای برنامهنویسی هزینه زیادی کنید. مردان IT با گواهینامه یا تخصصی که در فناوریهای سازمانی دارند موفق خواهند بود. در این حوزه تخصص حرفهای برنامهنویسی توفیق زیادی برای شما به همراه نخواهد آورد. بهطور مثال در تجارت الکترونیک یا سیستمهای برنامهریزی منابع سازمانی(ERP) ابری و منبع باز به کارشناس خبره برنامهنویسی نیازی نیست. اما بهتر است اطلاعاتی در مورد اسکرپیتها داشته باشید.
اگر شغل من طراحی سایتها باشد، بهتر است چه زبان برنامهنویسی را یاد بگیرم ؟
یادگیری زبانهای برنامهنویسی CSS محور شبیه SASS یک آغاز و انتخاب هوشمندانه برای شروع راه خواهد بود. در ادامه باید تمرکز خود را روی جاوا اسکرپیت قرار دهید. در نهایت، یادگیری Node.JS که نسخه ویژه جاوااسکرپیت بوده و روی سرورها اجرا میشود ضروری است. بازار Node.Js این روزها بسیار داغ است و در طولانی مدت بازار کار آن به همین منوال خواهد بود. اما جاوا اسکرپیت را ترک نکنید و از آن غافل نشوید. . همچنین سعی کنید در Node.JS به تخصص خاصی رسیده و در عمق آن وارد شوید.
سرانجام چارت ضمیمه شده
در ادامه چارتی که توسط یوداسیتی طراحی شده است را مشاهده خواهید کرد. در این چارت سعی شده است، زبانهای برنامهنویسی به تفکیک حقوق دریافتی، انعطافپذیری کاری، تفکیک برنامههای کاربردی بهطور مثال برای طراحی بازیها، برنامههای موبایل، تحلیل دادهها، برنامهنویسی سیستمهای جایگذاری شده، توسعه برنامههای وب چه زبانهایی مناسب هستند و محبوبیت زبانهای برنامهنویسی، اطلاعاتی در اختیار کاربران قرار گیرد.
- تاریخ ارسال : سه شنبه 19 شهريور 1398
- بازدید : 90

How to Design Programs
نویسندگان : By Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
تعداد صفحات: 55 صفحه
ناشر: The MIT Press
لینک دانلود: How to Design Programs
چهارچوب کلی: این کتاب به زبانی ساده فرآیند طراحی برنامههای کامپیوتری که شامل طراحی برنامههای دسکتاپ، برنامههای موبایل و برنامههای وب میشود را آموزش میدهد.
97 Things Every Programmers Should Know
نویسندگان : جمعی از نویسندگان
تعداد صفحات: 98 صفحه
ناشر:O’Reilly media
لینک دانلود: 97 Things Every Programmers Should Know
چهارچوب کلی: این کتاب مجموعه مقالاتی گردآوری شده از سوی جمعی از برنامهنویسان خبره بوده که همچون گنجینهای ارزشمند به شمار میرود.
Foundations of Computer Science
نویسندگان : Jeffrey Ullman، Alfred Aho
تعداد صفحات: 775 صفحه
لینک دانلود: Foundations of Computer Science
چهارچوب کلی: این کتاب متنی در سال 1992 منتشر شده است و از آن زمان تاکنون مورد استفاده برنامهنویسان قرار دارد. نویسنده این کتاب در مقدمه این کتاب آورده است که این کتاب مقدمهای بر نظریه علوم کامپیوتر است، به نظر میرسد، گذشت زمان هیچگونه خدشهای به اعتبار این حرف وارد نکرده است.
Introduction to Computing
نویسندگان : David Evans
تعداد صفحات: 266 صفحه
لینک دانلود: Introduction to Computing
چهارچوب کلی: این کتاب مفاهیم ضروری علوم کامپیوتر را پوشش میدهد. برای این منظور و بیان دقیق این مفایهم نویسنده از زبانهای برنامهنویسی پیتون و Scheme استفاده کرده است، اما این کتاب مرجعی برای یادگیری این دو زبان برنامهنویسی نیست.
The Codeless Code
نویسنده : Qi
تعداد صفحات: 195 صفحه
لینک دانلود: The Codeless Code
چهارچوب کلی: این کتاب مجموعهای از 195 داستان افسانهگونه است که به بیان هنر اجرا و توسعه نرمافزارهای کاربردی میپردازد.
Producing Open Source Software
نویسنده : Karl Fogel
تعداد صفحات: 24 صفحه
لینک دانلود: Producing Open Source Software
چهارچوب کلی: کتاب ارزشمندی است که نحوه تولید نرمافزارهای متن باز و نحوه طراحی و توسعه آنها را آموزش میدهد. این کتاب به بیان این مطلب میپردازد که چگونه پروژههای موفق جنبه عملیاتی پیدا کردند و فرهنگ نرمافزار منبع باز چگونه توانست به نیازهای کاربران و توسعهدهندگان پاسخ دهد.
Patterns of Software
نویسنده : Richard P. Gabriel
تعداد صفحات: 239 صفحه
لینک دانلود Patterns of Software
چهارچوب کلی: این کتاب مجموعهای گردآوری شده از مقالات برنامهنویسی است. این کتاب با بیانی نافذ و سرگرم کننده شما را به دنیای برنامهنویسی وارد خواهد کرد.
The Architecture of Open Source Applications
نویسنده : جمعی از نویسندگان
تعداد صفحات: -----
لینک دانلود: The Architecture of Open Source Applications
چهارچوب کلی: این کتاب به بیان طراحی و معماری نرمافزارهای منبع باز میپردازد. در مقدمه این کتاب آمده است که اگر یک توسعهدهنده تازهکار هستید، و در نظر دارید نحوه تعامل و همفکری با همکاران خود را یاد بگیرید، این کتاب نقطه شروع مناسبی برای شما به شمار میرود.
Foundations of Programming
نویسنده : Karl Seguin
تعداد صفحات: 79 صفحه
لینک دانلود: Foundations of Programming
چهارچوب کلی: این کتاب بر اساس مجموعه مقالاتی که به قلم همین نویسنده به نام اصول پایه برنامهنویسی منتشر شدهاند نوشته شده است. این کتاب دورنمای دیدگاههای یک برنامهنویس داتنت است که درباره مفاهیم کلیدی برنامهنویسی همچون واحد تست، تخصیص حافظه صحبت میکند.
The Nature of Code
نویسنده : Daniel Shiffman
تعداد صفحات: 17 صفحه
لینک دانلود: The Nature of Code
چهارچوب کلی: این کتاب اکتشافی در موضوعات طبیعی زندگی ما همچون فیزیک، فرکتال و... دارد، بهطوری که سعی کرده است به شبیهسازی این مفاهیم بپردازد. نمونه کدهای این کتاب به زبان Processing هستند.
Learn Regex The Hard Way
نویسنده : Zed. A. Shaw
تعداد صفحات: 31 صفحه
لینک دانلود: Learn Regex The Hard Way
چهارچوب کلی: عبارات با قاعده (regx) تکنیک پر قدرتی در دنیای برنامهنویسی به شمار میروند، اما یادگیری این مفهوم بهطور ذاتی مشکل است. تاریخچه Regex به سال 1950 میلادی باز میگردد، اما همچنان به عنوان یکی از تکنیکهای قدرتمند دنیای برنامهنویسی مدرن مورد استفاده قرار میگیرد.
The Little Introduction To Programming
نویسنده : Karl Seguin
تعداد صفحات: 7 صفحه
لینک دانلود: The Little Introduction To Programming
چهارچوب کلی: این کتاب مفاهیم پایه برنامهنویسی از قبلی نوعهای دادهای و دستورات شرطی را به زبان سادهای آموزش میدهد.
How to Think Like a Computer Scientist
نویسندگان : Peter Wentworth, Jeffrey Elkner, Allen B. Downey, Chris Meyers
تعداد صفحات: 39 صفحه
لینک دانلود: How to Think Like a Computer Scientist
چهارچوب کلی: مهمترین مهارتی که یک دانشمند کامپیوتر به آن نیاز دارد حل مشکلات است. حل مشکل به معنای فرموله کردن مشکل، فکر کردن درباره حل مشکل و در نهایت بیان راه حلی واضح و روشن برای حل مشکل است. این کتاب با ارائه چنین تفکری در اختیار برنامهنویسان قرار گرفته است.
Essential Coding Theory
نویسندگان : Venkatesan Guruswami, Atri Rudra, Madhu Sudan
تعداد صفحات: 226 صفحه
لینک دانلود: Essential Coding Theory
چهارچوب کلی: این کتاب به گونهای نوشته شده است که شما را به عمق مفاهیم ریاضی، الگوریتمها و الگوهای وابسته به کدها ببرد. هر چند خواندن این کتاب در مقایسه با کتابهایی که معرفی کردم کمی دشوار است اما در مقابل یک منبع ارزشمند در این زمینه به شمار میرود.
Building Skills in Programming
نویسندگان : Steven F. Lott
تعداد صفحات: 491 صفحه
لینک دانلود: Building Skills in Programming
چهارچوب کلی: این کتاب بر مبنای زبان برنامهنویسی پیتون مفاهیمی از قبیل توابع, نوعهای دادهای، اشیا، دستورات شرطی و نکات پایهای که در برنامهنویسی به آنها نیاز دارید را به شما آموزش میدهد.