هر متخصصی که بخواهد در رشته ای بهترین باشد، باید دانش و مهارت های خود را افزایش دهد. این موضوع برای همه رشته ها از جمله کدنویسی صادق است. زبان های برنامه نویسی روز به روز رشد میکنند و تقاضا برای تولید برنامه های جدید رو به افزایش است، امروزه دانستن تنها یک زبان برنامهنویسی کافی نیست. حتی برخی رهبران برنامه نویسی جهان گفتهاند که برای تبدیل شدن به یک توسعه دهنده موفق باید حداقل به ۴ زبان برنامه نویسی مسلط باشید.
این زبان ها عبارتند از سی شارپ، جاوا، پی اچ پی و پایتون. بنابراین یادگیری آنها می تواند شما را نسبت به رقبایتان در یک مرحله جلوتر نگه دارد. اما مزایای دانستن چند زبان برنامه نویسی چیست> چه نکاتی در رابطه با جابجایی بین زبان های برنامه نویسی وجود دارد؟ برای دانستن پاسخ این سوال ها مطالب زیر را دنبال کنید :
برخی برنامه نویسان ممکن است فکر کنند که جابجایی بین زبان های مختلف برنامه نویسی کاری غیر معمول است. این افراد معتقدند که بهتر است به یک زبان مسلط شد و از آن برای همه کارها استفاده کرد، اما در حقیقت بسیاری از برنامه نویسان از زبان های مختلف برنامه نویسی برای انجام کارهای خود استفاده می کنند. این کار به چند دلیل زیر انجام می شود :
جابجایی و استفاده از زبانهای جدید یک عمل معمول است و تقریبا هر توسعه دهنده ای در این مورد تجربه دارد، اما با تجزیه و تحلیل موارد مختلف به یک قاعده کلی خواهیم رسید. شما باید بدانید دلیل تغییر زبان برنامه نویسی چیست؟ در این صورت میتوانید زبانی درست را انتخاب کنید.
اولین چیزی که مردم همیشه باید در زمان انتخاب یک زبان برنامه نویسی مورد توجه قرار دهند، مرتبط بودن زبان به اهداف آنها و انعطاف پذیری آن است. بنابراین قبل از انتخاب و شروع یادگیری یک زبان برنامه نویسی جدید موارد زیر را انجام دهید : در ابتدا گرایشهای بازار را تحلیل کنید برای مثال گرایشاتی مانند تقاضا، خلا ها ، نقایص و موانع ورود.
و ثانیاً هدف خود را از یادگیری تعیین کنید :
هدف نهایی شما مشخص می کند که باید بر چه زبانی تمرکز کنید و در نهایت هم چنان در نظر گرفتن زبانهای برنامه نویسی قبلی ارزشمند است، زیرا وقتی به سمت زبان برنامه نویسی جدیدی حرکت می کنید آنها در بسیاری از موارد مانند الگوها و الگوریتم ها مشترک هستند. در این صورت یادگیری زبان جدید کار سختی نیست.
در حالی که از یک زبان برنامه نویسی به سمت زبان دیگری حرکت می کنید، نمیخواهید وقت خود را برای تسلط بر اصول جدید کد نویسی صرف کنید. به منظور تسهیل در فرآیند یادگیری می توانید زبان جدید را از همان خانواده زبان قبلی انتخاب کنید و یا در ابتدا مبانی زبان جدید را بررسی کنید.
برخی کارشناسان به شما توصیه می کنند که با زبان C شروع کنید. این زبان به شما کمک می کند تمام قوانین پایه و الگوهای کد نویسی را درک کنید. پس از درک مبانی، یادگیری هر زبان برنامه نویسی دیگری برای شما بسیار ساده تر خواهد شد.
علاوه بر این بسیاری از زبانهای برنامهنویسی وجود دارند که متعلق به خانواده C هستند مانند C++ ، Objective-C ، Go و جاوا. حتی زبان های برنامه نویسی مانند پایتون، پرل php و رابی هم دارای اصول پایهای مشابهی با زبان C هستند، اگرچه این زبان ها متعلق به این خانواده نیستند
زبان های برنامه نویسی که در یک خانواده قرار دارند، دارای الگوها، قواعد و کتابخانههای مشترک هستند، بنابراین نیاز نیست رویکردی متفاوت در کد نویسی را دنبال کنیم. اگر از قبل به زبانی از خانواده C مسلط باشید، جابجایی به زبانهایی مانند ++C یا جاوا برای شما مشکلی ایجاد نخواهد کرد.
با این حال سایر توسعهدهندگان رویکرد قبلی (جابجایی بین زبان های یک خانواده) را بیش از حد قدیمی و حتی محافظه کارانه می دانند. آنها حتی توصیه می کنند که با پایتون شروع کنید. پایتون در انعطافپذیری مشابه با زبان جاوا اسکریپت است. پایتون از الگوهای مختلف برنامه نویسی پشتیبانی می کند. این زبان از کتابخانه استاندارد و وسیعی برخوردار است و نحو آن برای یادگیری بسیار آسان است.
با استفاده از پایتون می توانید هر چیزی از نرمافزارهای وب ساده گرفته تا شبکه های عصبی را ایجاد کنید.
با این حال اغلب اوقات یادگیری زبان جدید کار آسانی نیست و پیشرفت شما می تواند به دلیل عوامل مختلفی مانند سرعت پایین یادگیری، نداشتن انگیزه و یا اهداف مبهم کند شود. اما این کندی بیشتر ناشی از پیچیدگیهای یک زبان است. برای مثال اگر برای مدتی طولانی از جاوااسکریپت استفاده کرده اید به سرعت می توانید به سمت سی شارپ حرکت کنید. الگوهای زبانی مختلف نیازمند تفکرات متفاوتی هستند.
اما نترسید، فقط باید عادت کنید در ابتدای کار، برایتان کمی مشکل است اما به زودی برای شما همه چیز ساده تر خواهد شد.
اکثر متخصصان بر روی یک چیز اتفاق نظر دارند : ابتدا باید به یک زبان بنیادی مسلط شوید. در میان زبان ها آنهایی که به نظر میرسد برای یادگیری اهمیت دارند عبارتند از :
در زمان کنونی زبانهای فوق مشهورترین و پر استفاده ترین زبان های برنامه نویسی هستند. البته مجبور نیستید همه این زبان ها را بلافاصله یاد بگیرید. اما یادگیری ترجیحی آنها برای شما اهمیت خواهد داشت.
اگر واقعا می خواهید یک زبان برنامهنویسی جدید را انتخاب کنید به یاد داشته باشید که باید صبور و ثابت قدم باشید و سعی کنید این نکات ساده را در نظر بگیرید :
اگر بدانید که چرا میخواهید یک زبان برنامه نویسی خاص را یاد بگیرید و کجاها می خواهید از آن استفاده کنید بر روی آن بیشتر تمرکز خواهید کرد و انگیزه بیشتری برای یادگیری خواهید داشت. به طور کلی دو دلیل مشترک برای یادگیری زبان های برنامه نویسی جدید وجود دارد :
اولی نیازمندی های پروژه جدید است که برخی از زبان ها برای انجام پروژههای خاص مناسبترند و دلیل دیگر افزایش مهارت های شما برای به دست آوردن شغلی بهتر است.
از آموزش های باکیفیت و حرفه ای برای یادگیری خود استفاده کنید. خوشبختانه منابع بسیاری برای یادگیری در اینترنت موجود است.
برای یادگیری هر چیزی نیاز به تمرین خواهید داشت. همین مسئله برای زبان های برنامه نویسی هم صادق است. برای یادگیری زبان های جدید با برنامه ریزی شروع کرده و تمرینتان را بالا ببرید.
بسیاری تبدیل کدهای نوشته شده در یک زبان به زبانی دیگر را توصیه می کنند. اگرچه این کار میتواند بسیار و وقت گیر باشد اما می تواند برای برنامه نویسان بسیار مفید باشد. با این کار می توانید چالشهای کدنویسی مختلفی را کشف کرده و آنها را آزمایش کنیم.
منبع:
در این مطلب از وبسایت راکت قصد داریم در ارتباط با موضوعی صحبت کنیم که تقریبا تمام کاربران اینترنت با آن سر و کار دارند: مرورگر. البته بحث در ارتباط با این موضوع میتواند به مقالات بسیار زیادی منجر شود به همین خاطر من قصد دارم در ارتباط با یکی از سناریوها در کار با مرورگر صحبت کنم.
قبل از آنکه وارد بحث اصلی شوم نیاز است تا ابتدا به درک مشترکی از URL برسیم. منظورمان از URL چیست؟
Uniform Resource Locator را در فارسی میتوان با عبارت مکان یکنواخت منبع» ترجمه کرد که ظاهرا چندان عبارت جذابی نیست. با این حال اگر کمی با انگلیسی آشنایی داشته باشید میتوانید از طریق خود عبارت انگلیسی متوجه شوید که URL دقیقا چیست. URL آدرس جاییست که شما قصد مراجعه به آن از طریق مرورگر برای دریافت اطلاعات و برقراری یکسری ارتباطات و تعاملات را دارید. چنین سناریویی در دنیای واقعی نیز اتفاق میافتد. برای مثال اگر شما قصد مراجعه به یک دوست را داشته باشید نیاز دارید که آدرس خانه وی را بدانید، اگر بخواهید از طریق رومه به یکسری اطلاعات دسترسی پیدا کنید باید آدرس رومهفروشیهای شهر را بدانید. دقیقا این حالت در دنیای وب نیز وجود دارد با این تفاوت که مکانها به صورت مجازی تعریف شدهاند. در چنین ساختاری وبسایتها مانند خانههای افراد و URLها مانند آدرس این خانهها هستند.
حال که با خود URL آشنا شدیم بیایید با بخشهای مختلف آن نیز به صورت کاملتر آشنا شویم.
آدرس URL زیر را در نظر بگیرید:
https://www.example.com/page1
اولین قسمت این آدرس https است. این قسمت به مرورگر میگوید که باید از چه پروتکلی استفاده کند. این پروتکل میتواند http، https، ftp و… باشد. یک پروتکل در حقیقت مجموعهای از قواعد است که مرورگر برای ارتباط برقرار کردن با شبکه از آن استفاده میکند. https را میتوان به صورتهایی یک نسخه امن از http دانست که در آن دادهها رمزنگاری میشوند.
قسمت بعدی www.example.com است که با نام domain یا دامنه شناخته میشود. در واقع این قسمت آدرس واقعی وبسایت مورد نظر (خانه مورد نظر) است. با استفاده از این آدرس میتوانید به سروری که دادههای وبسایت در آن قرار گرفته دسترسی پیدا کنید. این موضوع را در نظر بگیرید که دامنه و URL هر دو آدرس وبسایت هستند با این تفاوت که URL نسخهای کاملتر از دامنه را ارائه میکند. دامنه نیز خود بخشی از یک URL است.
دامنه نامی منحصر به فرد برای هر وبسایت است. در واقع این منحصر به فرد بودن باعث میشود که در دنیای بزرگ وب، وبسایتها از همدیگر جدا باشند. اما یک مسئله بسیار مهم وجود دارد و آن این است که مرورگر مانند ما با وبسایتها تعامل ندارد. برای مثال زمانی که ما قصد وارد شدن به وبسایت گوگل را داریم تنها کاری که باید بکنیم وارد کردن آدرس google.com و زدن کلید Enter است. اما مرورگر برای دسترسی به این وبسایت از نام آن استفاده نمیکند بلکه سراغ آدرس IP آن میرود. منظور آدرس IP کامپیوتری است که اطلاعات مربوط به وبسایت در آن ذخیره شده است. حال شاید بپرسید که ما چه نیازی به نام دامنه داریم؟ چرا از همان آدرس IP استفاده نمیکنیم؟ واقعیت آن است که آدرس IP یک عدد نسبتا طولانی بوده و برای هر وبسایتی متغیر است. در حقیقت برخی از وبسایتها نیز چندین آدرس IP دارند. به همین خاطر به خاطر سپردن این آدرسها میتواند کار بسیار سختی باشد. نام دامنه بدین دلیل تعریف شده است.
میتوانید این مسئله را مانند لیست مخاطبین موبایلتان در نظر بگیرید. شما نمیتوانید شماره تک تک افراد را در ذهنتان نگهدارید به همین خاطر با استفاده از یکسری کلمات روی شمارههای آنها، نامهایی را قرار میدهید.
حال شاید بپرسید که چگونه این آدرسهای IP ذخیره میشوند؟ چگونه آدرسهای IP با نام دامنهها منطبق میشوند؟ این کار از طریق یک دیتابیس بزرگ انجام میشود که به ازای هر آدرس IP یک نام دامنه را در نظر گرفته است. چنین سیستمی که بتواند نامها و آدرسها را با همدیگر تطبیق دهد DNS یا Domain Name System نامیده میشود.
حال که با موارد مقدماتی آشنا شدیم بیایید با مسئله اصلی مطلب یعنی وارد کردن یک آدرس در مرورگر ادامه دهیم. بعد از آنکه یک آدرس را در مرورگر وارد کرده و کلید Enter را فشار دادید اولین کاری که باید انجام شود پیدا کردن آدرس IP مربوط به صفحهایست که شما آدرس آن را وارد کردهاید. DNS به شما در انجام این کار کمک میکند. میتوان DNS را درست مانند یک دفترچه تلفن در نظر گرفت که به ما در پیدا کردن شماره تلفن یک شخص خاص کمک میکند.
در تصویر بالا میتوانید یک کلیت سادهای در ارتباط با شیوه کار مرورگر و DNS را مشاهده کنید. اما بیایید این روند را به صورتی عمیقتر بررسی کنیم.
۱. بعد از وارد کردن آدرس صفحه و انتخاب دکمه Enter، کش مرورگر ابتدا بررسی میشود. مرورگر همواره نسخهای از رکوردهای DNS را برای خود نگه میدارد. دادههای مربوط به این رکوردها، وبسایتهایی هستند که قبلا به آنها مراجعه کردهاید. در این حالت DNS به سرعت آدرس IP را پیدا کرده و نتیجه را برمیگرداند.
۲. اگر آدرس IP در مرحله اول پیدا نشد، DNS در کش سیستم عامل با استفاده از router cache به دنبال وبسایت مورد نظر خواهد بود.
۳. اگر دو مرحله قبلی چاره کار نبودند، DNS سراغ سرور اصلی برای DNSها میرود. سروری که تحت عنوان Resolver Server شناخته میشود. این سرور چیزی نیز جز سرویسدهنده اینترنت یا همان ISP شما.
۴. اگر در مراحل قبلی چیزی پیدا نشد، درخواست به سرور ریشه سلسله DNS میرود. اینجا قسمتی است که به ما کمک میکند تا اطلاعات مورد نظرمان را پیدا کنیم. اگر آدرس IP ما مربوط به دامنه سطح بالا یا TLD باشد، ISP یا همان سرور Resolver میتواند از اطلاعات سرور TLD استفاده کند.
۵. در این مرحله Resolver از TLD میخواهد که آدرس IP مربوط به وبسایت را برگرداند. TLD نیز Resolver را به Authoritative Name server ارجاع میدهد که در واقع مکان اصلی ذخیره اطلاعات مربوط به دامنههاست.
۶. در نهایت پس از یافتن اطلاعات ISP اطلاعات مورد نظر را به مرورگر برمیگرداند.
بعد از دریافت آدرس IP، سرور ISP اطلاعات مربوط به آن را در کش خود قرار میدهد. در این حالت دیگر نیازی به طی کردن مراحل ۴-۵-۶ نخواهد بود. از طریق تصویر زیر میتوانید آیتمهایی که بررسی کردیم را نیز مشاهده نمایید:
بعد از آنکه آدرس IP مورد نظر پیدا شد، یک ارتباط جدید شکل میگیرد. این ارتباط بین کلاینت و سرور ایجاد میشود. برای برقراری چنین ارتباطی نیاز است تا از پروتکل اینترنت استفاده شود که TCP/IP شناختهشدهترین مورد در بین پروتکلهاست. این ارتباط با استفاده از یک فرایند جدید با نام TCP ۳-way handshake ایجاد خواهد شد. برای درک بهتر بیایید به صورت قدم به قدم آن را بررسی کنیم:
۱. کامپیوتر کلاینت یعنی کامپیوتر شما یک پیغام SYN را ارسال میکند. اینکار برای بررسی آماده بودن کامپیوتر دوم جهت ایجاد یک ارتباط جدید انجام خواهد شد.
۲. بعد از آن اگر کامپیوتر دوم برای این ارتباط آمادگی داشت یک پیغام acknowledge را ارسال میکند.
۳. بعد از اینکه کامپیوتر اول پیغام را دریافت کرد یک پیغام ACK را برای سرور یا همان کامپیوتر دوم نیز ارسال میکند.
از طریق تصویر زیر میتوانید این سه مرحله را مشاهده کنید:
در نهایت یک ارتباط جدید بین دو کامپیوتر اول و دوم ایجاد خواهد شد. حال هر دو کامپیوتر میتوانند با همدیگر ارتباط برقرار کرده و اطلاعات را به اشتراک بگذارند. بعد از ایجاد یک ارتباط موفق مرورگر که روی کامپیوتر کلاینت قرار گرفته یک درخواست را برای سرور در جهت دریافت اطلاعات ارسال میکند. سرور نیز براساس این درخواست پاسخ مرتبطی را ارائه میدهد. این پاسخ میتواند شامل اطلاعاتی مانند متن، کد وضعیت، کنترل کش و… باشد.
در پایان
در این مطلب از وبسایت راکت به صورتی بسیار ساده در ارتباط با شیوه کارکرد مرورگر و اتفاقاتی که بعد از وارد کردن یک آدرس در آن میافتد توضیح دادیم.
یک برنامه نویس خوب دارای مهارت های فنی و همینطور مهارت های نرم و محکم است. متاسفانه برنامه نویس بعد هیچکدام از این مهارت ها را به خوبی در خود تقویت نکرده است.
میتوان مهارت های فنی برنامه نویسان را سنجید و البته این کار چندان سخت هم نیست. می توانید به کارهای قبلی، نمونه کد ها و نتایج چالش های برنامه نویسی آنان نگاه کنید و در مورد مهارت های فنی آنها در طول مصاحبه با آنها بحث کنید. از طرف دیگر مهارتهای نرم کمی عمیق تر هستند. اندازه گیری توانایی شخصی آنها برای کار در یک تیم ، مسئولیت پذیری یا یادگیری شخصی دشوار است.
با این حال اینها همه ویژگی هایی هستند که باعث می شوند بین یک برنامه نویس خوب و بد تفاوت ایجاد شود. پس از بررسی و کار با بیش از ۱۰۰۰ برنامه نویس توانستیم ۷ ویژگی را که برنامه نویسان خوب را از بد جدا میکند، جمع آوری کنیم. پس تا انتهای مقاله همراه ما باشید.
یک برنامه نویس خوب به محصول شما اهمیت زیادی می دهد و همیشه دارای نگرشی مثبت است. زمانی که می خواهید محصولی را به بازار عرضه کنید یا ویژگی های خاصی را از یک محصول در موعد مقرر به بازار ارائه دهید ، برنامه نویس خوب کسی است که در اینجا شما را تنها نمیگذارد. یک توسعه دهنده بزرگ متواضع است و همیشه بازخورد های مختلف از کارش را در نظر میگیرد.
به عنوان مشتری ، می توانید با فراهم آوردن پروژه های جالب برای کار روی آنها و تمجید از کاری که یک برنامه نویس برای شما انجام میدهد ، فرهنگ مثبتی را به وجود آورده و به تقویت نگرش مثبت کمک کنید. شرکت های نوپا می توانند با ارائه گزینه هایی مانند سهام ، پرداخت اضافه کاری ، مرخصی و . در این راه به تقویت برنامه نویسان خوب کمک کنند. اگر به دنبال برنامه نویسانی هستید که دارای نگرش مثبت باشند، میتوانید سوالات زیر را در مصاحبه از آنها بپرسید :
مهارت های ارتباطی خوب به طور مستقیم با مهارت های توسعه خوب ارتباط دارد. یک توسعه دهنده بزرگ و خوب قادر است مشکلات را به وضوح درک کند ، آنها را به فرضیه های کوچکتر تجزیه کند و راه حل هایی را به روشی منسجم پیشنهاد کند.
آنها مفاهیم را به سرعت درک می کنند ، یا سوالات صحیحی برای درک آنها می پرسند. توسعه دهندگان خوب معمولاً با چندین زبان به طور منسجم صحبت می کنند و به زبان انگلیسی بسیار مسلط هستند. در دنیای فناوری ، انگلیسی زبان بسیاری از برنامه ها و آموزش هاست.
نحوه آزمایش مهارت ارتباطی :
توسعه دهندگان خوب بسیار قابل اعتماد هستند. آنها یک اخلاق کاری قوی دارند و در جلسات به موقع حاضر می شوند. یک مهارت مهم، توانایی تخمین زمان لازم برای انجام یک کار و تحویل به موقع آن است که خوشبختانه توسعه دهندگان خوب از آن برخوردار هستند. یک برنامه نویس خوب به جای آنکه شما او را مدیریت کنید، به خوبی میتواند بر روی شما تاثیر گذار باشد.
نحوه آزمایش این مهارت:
اگر یک توسعه دهنده دیر در جلسه مصاحبه حاضر میشود، این اولین نکته منفی اوست. می توانید از یک توسعه دهنده بپرسید که از چه ابزار ها و سیستمهایی بطور روزانه برای ارتباط با مشتریان و یا اعضای تیم استفاده می کند.
یک راه خوب برای آزمایش هر توسعه دهنده در مورد این خصوصیت ، ورود به یک قرارداد کوتاه مدت و داشتن یک دوره ارزیابی برای اوست، از این طریق میتوانید به همه چیزی که از او نیاز دارید برسید. نکته اصلی این است که نقاط قوت و ضعف تیم خود را زود تشخیص دهید و تیم را بر اساس عملکرد مورد نظر خود توسعه دهید.
توسعه دهندگان خوب معمولاً در خودآموزی شگفت انگیز هستند. آنها توانایی یادگیری فن آوری های نوین را دارند و توسط فن آوری های جدید مرعوب نمی شوند. هر برنامه نویس موقعیتی را تجربه می کند که جواب آن را نمی داند. برنامه نویسان خوب منابع مختلفی را پیدا می کنند ، با افراد مناسب گفتگو می کنند و مهم نیست با چه مشکلی رو به رو هستند، آنها پاسخ را بدست می آورند. بهترین مهارتی که هرکس میتواند داشته باشد، توانایی یادگیری سریع است.
توسعه دهندگان خوب به اندازه کافی کار کرده اند که متخصص باشند. البته پیدا کردن یک برنامه نویس که روی محصولی مشابه محصول شما کار کرده باشد یا از همان فناوری های مد نظر شما استفاده کند نیز اهمیت دارد. برنامه نویسان مناسب برای پروژه شما آنهایی هستند که درک درست و عمیقی از تکنولوژی دارند.
آنها از استانداردهای کد نویسی پیروی می کنند و کدی را می نویسند که در صورت وم قابل درک و اظهار نظر باشد و می تواند به راحتی به شخص دیگری منتقل شود. آنها با ترکیب توانایی های شناختی و تجربه متنوع صنعت ، می توانند به سرعت به راه حل های بهینه برسند. یک توسعه دهنده خوب علاوه بر مهارت های کد نویسی بر روی معماری های مختلف نیز تسلط دارد.
نکته مثبت توسعه دهندگان خوب ، توانایی آنها برای کمک به سایر توسعه دهندگان برای بهتر شدن است. آنها به هم تیمی خود کمک می کنند و همیشه دوست دارند چیز هایی که یاد گرفته اند را به دیگران یاد دهند. همیشه مستنداتی مینوسیند که نه تنها به هم تیمی های خود کمک میکند بلکه به افراد دیگری که بعد ها ممکن است روی پروژه های آنها کار کنند یاری می رساند.
یک برنامه نویس بد آنچه را که از آنها خواسته می شود انجام می دهد در حالی که یک برنامه نویس خوب به کاربر نهایی نرم افزار فکر می کند و برای حل مشکلات آنها تلاش میکند. همیشه باید سعی کنید برنامه را کاملا مطابق با نیاز های کاربران نهایی توسعه دهید.
درباره این سایت