پرونده ویژه
در شماره 250 ماهنامه شبکه خواهیم گفت که چگونه به دنیای برنامهنویسی وارد شوید، برنامهنویسی زنجیره بلوکی چیست و چرا آیندهدار است، برنامهنویسی سمت سرور چیست و چه زبانهایی در این حوزه پرکاربرد هستند، کدنویسی چگونه میتواند به کودکان در حل مسائل خلاقانه کمک کند، چرا یادگیری ساختمان دادهها برای هر برنامهنویسی ضروری است و چه تفاوتی میان دو چارچوب مهم توسعه وب با زبان PHP وجود دارد. امید است مطالب این شماره مورد توجه خوانندگان قرار گیرد. در عین حال سایر بخشهای مجله نیز مطالبی خواندنی دارند.
- هنر برنامهنویسی
- چگونه به دنیای برنامهنویسی وارد شویم؟
- کدنویسی چگونه میتواند به کودکان در حل مسائل خلاقانه کمک کند؟
- برنامهنویسی زنجیرهبلوکی چیست و چرا آیندهدار است؟
- برنامهنویسی سمت سرور چیست و زبانهای پرکاربرد آن کدامند؟
- لاراول در برابر کدایگنایتر؛ این دو چارچوب PHP چه قابلیتهایی ارائه میکنند؟
- چرا یادگیری ساختمان دادهها برای هر برنامهنویسی ضروری است؟
دیدگاه
-
کمبود نیروی کار متخصص؛ معضل، بحران یا سونامی
- درک احساسات و تواناییهای فردی، رمز موفقیت در زندگی شخصی و حرفهای
شاهراه اطلاعات
- تحقق رویای تسلا: ورود به عصر برق بیسیم
- آیا یادگیری ماشین میتواند به خوشمزهتر شدن میوهها و سبزیجات کمک کند؟
- دنیای دوربین: قالی جادویی و رازهای پنهایی
فناوری شبکه
- «شبکه فضای ذخیرهسازی» چه تفاوتی با «ذخیرهساز تحت شبکه» دارد؟
- شبکههای منطقه محلی از چه مولفههای زیربنایی تشکیل شدهاند؟
- چگونه عملکرد سامانه نام دامنه را بهتر و پایداری آنرا حفظ کنیم؟
امنیت
- کارشناسان امنیت در هنگام محافظت از دادهها به چه نکاتی باید دقت کنند؟
- راهحلهای امنیتی برای نظارت بر عملکرد سامانهها، سرورها و شبکهها
عصر شبکه
- الیزابت هولمز که بود و چرا تاریخ بهعنوان یک کلاهبردار بزرگ از او نام میبرد؟
- خطدهی هدفدار هوش مصنوعی، خطرناکتر از سرعت رشد این فناوری است
کارگاه
- نسخه 10 سـیشارپ چه قابلیتهایی در اختیار برنامهنویسان قرار داده است؟
- برنامهنویسان در هنگام طراحی نرمافزارها به چه نکات امنیتی باید دقت کنند؟
خرید و دانلود ماهنامه شبکه 250 از اینجا
هنر برنامهنویسی
امروزه، مشاغل مختلفی در دنیای فناوری اطلاعات وجود دارند که هر یک جذابیتها و سختیهای خاص خود را دارند؛ با اینحال، بخش عمدهای از مشاغل دنیای فناوری اطلاعات بهشکل مستقیم یا غیرمستقیم مرتبط با دنیای برنامهنویسی هستند. بهطور مثال، هنگامی که درباره مشاغل دنیای هوش مصنوعی میکنیم، بیشتر مشاغل این حوزه با برنامهنویسی در ارتباط هستند. به همین دلیل است که برنامهنویسی یکی از سودآورترین مشاغل دنیای فناوری است؛ البته همانند هر مهارتی، در ابتدای راه دستمزد دریافتی کم است، اما بهتدریج سطح دستمزدها افزایش پیدا میکند.
بهطور مثال، امروزه برنامهنویسان مجرب برای انجام پروژههای آزاد در حوزههای مختلف همچون وب، از ساعتی 90 هزار تومان به بالا دستمزد دریافت میکنند. از اینرو، جای تعجب نیست که همه مردم دوست دارند برنامهنویسی را یاد بگیرند و حتا خانوادهها از سنین کودکی بچههای خود را در کلاسهای آموزش برنامهنویسی ثبتنام میکنند. اندی هرتسفلد از مهندسان برجسته نرمافزار که نقش کلیدی در توسعه مکینتاش اپل داشت در توصیف برنامهنویسی میگوید: «تنها شغلی است که ترکیبی از مهندسی و هنر به بهترین شکل در آن موج میزند. یک مهارت فنی باورنکردنی، دقیق و فنی که رویکرد خلاقانهای دارد و مرزهای تخیل تنها محدودیت واقعی آن هستد.»
با اینحال، نقش توسعهدهندگان در همه سازمانها یکسان نیست. مهارتهایی که نیاز دارید و کاری که قرار است انجام دهید، به سازمان، واحد، محصول، محیط و زبان برنامهنویسی که قصد استفاده از آنرا دارید بستگی دارد.
برنامهنویس، توسعهدهنده، مهندس نرمافزار، سازنده برنامه، کدنویس یا هر عنوان دیگری که وجود دارد، همگی اشاره به هنری دارند که میگوید کامپیوترها بر مبنای چه منطقی باید کار کنند. با اینحال، اجازه دهید ابتدا تعریفی برای این عنوان شغلی داشته باشیم. آیا میخواهید برنامهنویس، توسعهدهنده، مهندس نرمافزار، سازنده برنامه یا کدنویس باشید؟ چرا این همه اصطلاح مختلف وجود دارد و تفاوت آنها چیست؟ بهتر است برای هر یک از این عناوین شغلی تعریف کوتاهی ارائه کنیم.
- برنامهنویس (Programmer). شخصی است که کامپیوترها را برنامهریزی میکند. بهطور کلی، واژه برنامهنویس اصطلاح کلی برای توصیف هر فردی است که به کامپیوترها اعلام میکند چه کاری انجام دهند. در واقع، تمام افرادی که مسئولیتهای شرح داده شده در ادامه را دارند، شایستگی آنرا دارند که بهعنوان برنامهنویس توصیف شوند.
- توسعهدهنده (Developer). شخصی است که برنامههایی را برای رایانهها یا تجهیزات دیگر توسعه میدهد. این نقش بهطور کلی وظایفی را علاوه بر نوشتن کد شامل میشود. بهعنوان مثال، یک توسعهدهنده ممکن است فرآیند طراحی و آزمایش کدها را انجام دهد و برای انجام کارها مهارتهای دیگری داشته باشد. در دنیای واقعی، واژه توسعهدهنده همراه با پسوندهای مختلف، مثل توسعهدهنده وب (شخصی که صفحات وب و برنامههای وبمحوری را ایجاد میکند که از طریق اینترنت در دسترس قرار دارند) ظاهر میشود.
- مهندس نرمافزار (Software Engineer). در ابتدا افرادی که کامپیوترها را برنامهنویسی یا برنامهریزی میکردند، برنامهنویس نامیده میشدند. مارگارت همیلتون که اصطلاح مهندسی نرمافزار را ابداع کرد، در این خصوص میگوید: «من از این اصطلاح برای فهماندن این واقعیت به مردم استفاده میکنم که برنامهنویسی یک مهارت در توسعه فناوری است». در حال حاضر، در برخی از شرکتها و حتا کشورها تفاوت بین اصطلاحات مهندس نرمافزار، برنامهنویس یا توسعهدهنده تنها در مدرک دانشگاهی افراد خلاصه میشود. مهندسان نرمافزار بهعنوان افرادی شناخته میشوند که نهتنها برنامهها را ایجاد میکنند، بلکه از فرآیندها و تکنیکهای رسمی برای انتخاب بهترین الگوی طراحی و توسعه نرمافزار استفاده میکنند.
- برنامهساز (App Builder). بهطور سنتی منابع و رسانهها از اصطلاح App برای توصیف برنامههایی استفاده میکنند که روی دستگاههای سیار مثل تلفنها، تبلتها و کامپیوترهای شخصی اجرا میشوند. سازندگان اپلیکیشن (یا توسعهدهندگان اپلیکیشن) افرادی هستند که این برنامهها را ایجاد میکنند.
- کدنویس (Coder). سادهترین عنوان این مطلب است و اشاره به فردی دارد که کدنویسی میکند. تمامی عناوین شغلی بالا کدنویسی میکنند، اما یک کدنویس فردی است که تنها کارهای محوله را انجام میدهد و نقشی در طراحی معماری یا انتخاب الگوها ندارد. این فرد تنها وظیفه دارد بر مبنای خطمشیهای تعیین شده ماژولها را طراحی کرده و در اختیار تیم توسعه قرار دهد. بنابراین، اگر برای یک آگهی استخدامی رزومهای ارسال کردید و در مصاحبه اعلام شد بهعنوان کدنویس استخدام میشوید، بدانید که دستمزد کمتری نسبت به مشاغلی که اشاره کردیم دریافت میکنید.
اکنون به پرسش مهم این مقدمه میرسیم؛ کدامیک از این عناوین شغلی بهتر هستند؟ پیدایش این اصطلاحات باعث بحثهای زیادی در حوزه فناوری شده است. شرکتها از واژه توسعهدهندگان بهجای برنامهنویسان استفاده میکنند؛ بهویژه در ارتباط با مفاهیم و مشاغلی مثل دوآپس (DevOps) که شرح وظایفی فراتر از کدنویسی را شامل میشوند.
با آنکه همه این نقشها را میتوان برنامهنویسی در نظر گرفت- زیرا در همه آنها کدهایی نوشته میشوند و انواع مختلفی از نرمافزارها مثل برنامههای کاربردی، برنامههای موبایل، بازیها یا صفحات وب ساخته میشوند- اما این اصطلاحات مهارتها، تجارب و شایستگیهای فردی که کدنویسی میکند و عمق مشارکت او در فرآیندهای کاری یک سازمان را نشان میدهند.
در اینجا مهم این است که چه کاری در تولید نرمافزار انجام میدهید، توانایی شما در استفاده از تکنیکها و شیوههای صحیح برای ایجاد کدهایی با طراحی خوب، کارآمد، قابل نگهداری و کارآمد به چه میزان است.
از آنجایی که نقش توسعهدهنده نرمافزار میتواند ساخت انواع مختلفی از نرمافزارهای کاربردی، مثل سیستمعاملها، توسعه بازیهایی که روی کنسولهای محبوب اجرا میشوند، توسعه یک سایت تجارت الکترونیک برای یک فروشگاه اینترنتی، نوشتن یک چارچوب مرجع و غیره را شامل شود، مهم است هنگام مذاکره برای عقد قرارداد با یک شرکت بهوضوح بهعنوان شغلی اشاره کنید. در حالت کلی، مهندسان نرمافزار و توسعهدهندگان بهدلیل اینکه کارهایی فراتر از کدنویسی انجام میدهند باید دستمزد بیشتری نسبت به کدنویسان دریافت کنند.
بهطور کلی مهندسان نرمافزار در برنامهریزی، طراحی، ایجاد، اصلاح، تایید، آزمایش و مستندسازی مولفههای نرمافزاری جدید و اصلاحشده برای ارائه ارزش مورد توافق به ذینفعان، شناسایی، ایجاد و بهکارگیری استانداردها و فرآیندهای توسعه نرمافزار کار بیشتری انجام میدهند. اتخاذ و تطبیق مدلهای چرخه عمر توسعه نرمافزار بر اساس زمینه کار و انتخاب متدولوژی مناسب برنامهمحور یا رویکردهای تطبیقی (تکرارشونده/چابک) از دیگر مسئولیتهای این افراد یا معماران نرمافزار است.
بهطور کلی، سازندگان نرمافزار (App Builders) بیشتر روی ساخت نرمافزارهای شخصی که قرار است از طریق فروشگاههای اینترنتی به سودآوری برسند، متمرکز هستند. با این مقدمه، بهسراغ پرونده ویژه اسفندماه مجله شبکه میرویم که اختصاص به برنامهنویسی دارد. در این شماره خواهیم گفت که چگونه به دنیای برنامهنویسی وارد شوید، برنامهنویسی زنجیره بلوکی چیست و چرا آیندهدار است، برنامهنویسی سمت سرور چیست و چه زبانهایی در این حوزه پرکاربرد هستند، کدنویسی چگونه میتواند به کودکان در حل مسائل خلاقانه کمک کند، چرا یادگیری ساختمان دادهها برای هر برنامهنویسی ضروری است و چه تفاوتی میان دو چارچوب مهم توسعه وب با زبان PHP وجود دارد. امید است مطالب این شماره مورد توجه خوانندگان قرار گیرد
نظر شما چیست؟