بعد از یک دور دیگر بحث در یکی از جوامع در مورد اینکه آیا یک توسعهدهنده باطن وب مبتدی به دانش SQL نیاز دارد یا اینکه ORM به هر حال همه کارها را انجام میدهد، سؤال وجودی را از خود پرسیدم. تصمیم گرفتم پاسخ را کمی گسترده تر از فقط در مورد ORM و SQL جستجو کنم و اساساً سعی کردم افرادی را که اکنون برای مصاحبه برای پست های توسعه سطح پایین و متوسط می روند، سیستماتیک کنم، تاریخچه آنها چیست و در چه دنیایی هستند. زندگی در. به طور کلی، من یک نظر داشتم، اما با تجربه استخدام شخصی شکل گرفت و به وضوح با بازار محلی تنظیم شد. در کل جالب شد. این چیزی است که ما پیدا کردیم.
جمعیت توسعه دهندگان جهانی
برای اینکه به نوعی به این سوال نزدیک شوم، تصمیم گرفتم با جستجوی دادههایی در مورد تعداد توسعهدهندگان در جهان امروز و چگونگی تغییر این جمعیت در طول زمان شروع کنم.
برآوردها در منابع مختلف اعداد را بین 12 تا 30 میلیون نفر نشان می دهد. تصمیم گرفت در
طبق گزارش SlashData، در سه ماهه چهارم سال 2018 تقریباً 18.9 میلیون توسعهدهنده در جهان وجود داشت که 12.9 میلیون نفر از آنها توسعهدهندگان حرفهای بودند، یعنی با برنامهنویسی امرار معاش میکنند. کسانی که در حال حاضر توسعه دهندگان حرفه ای نیستند افرادی هستند که برنامه نویسی برای آنها یک سرگرمی است، به علاوه کسانی که در حال حاضر در حال تحصیل در یک حرفه هستند (دانشجویان مختلف و خودآموخته). خوب، یعنی، در اینجا اشاره ای به اندازه گروه مورد علاقه من است - 6 میلیون نفر. صادقانه بگویم، این بیشتر از چیزی است که انتظار داشتم.
سورپرایز دوم برای من نرخ رشد تعداد برنامه نویسان بود: از سه ماهه دوم سال 2017 تا سه ماهه چهارم 2018 از 14.7 به 18.9 میلیون ذکر شده افزایش یافت یا در سال 21 2018 درصد افزایش یافت! اگر از من بخواهند که نرخ رشد تعداد برنامه نویسان را تخمین بزنم، می گویم که حدود 5 درصد در سال با اندکی افزایش نرخ سالانه است. و در اینجا معلوم می شود که به اندازه 20٪ است.
علاوه بر این، SlashData تخمین می زند که جمعیت تا سال 2030 به 45 میلیون نفر خواهد رسید. به راحتی می توان فهمید که این به معنای رشد سالانه کمی بیش از 8٪ است، نه 20٪، اما آنها به تعدیل برای محاسبه نفوذ اینترنت (در حال حاضر حدود 57٪ در سراسر جهان) اشاره دارند.
به طور کلی، برنامه نویسان زیادی وجود خواهند داشت، مهم نیست که چگونه به آن نگاه کنید، زیرا تقاضا در حال افزایش است. به هر حال، در مورد تقاضا.
چه چیزی در تقاضا است؟
برای تخمین تقاضا، از داده های HackerRank استفاده کردم
از نظر زبان های برنامه نویسی، بیشترین تقاضا برای جاوا اسکریپت، پایتون و جاوا تقریباً در همه صنایع به استثنای سخت افزار کامپیوتر است. در مورد دوم، بیشترین تقاضا برای C/C++ است که قابل درک است؛ پروژه های سخت افزاری هنوز نیازمندی هایی برای شدت منابع و عملکرد نرم افزار مربوطه دارند.
از نظر چارچوبها، AngularJS، Node.js و React بیشترین تقاضا را دارند و بیشترین شکاف بین عرضه و تقاضا را دارند که به نظر میرسد با سرعت تغییر اکوسیستم جاوا اسکریپت توضیح داده میشود، زیرا برای مثال، برای ExpressJS ، عرضه از تقاضا بیشتر است.
از نظر شایستگی ها، کارفرمایان در درجه اول از کاندیداها انتظار مهارت های حل مسئله را دارند. حدود 95 درصد کارفرمایان از این مهارت ها به عنوان مهم یاد می کنند. مهارت زبان برنامه نویسی با 56 درصد در رتبه دوم قرار دارد. به هر حال، هیچ خطی با دانش بنیادی الگوریتم ها، ساختارهای داده و سایر علوم رایانه وجود ندارد، یا در پرسشنامه نبود، یا دانش آکادمیک دیگر در مقیاس بزرگ مورد نیاز نیست.
23.2 درصد از شرکت های زیر 100 نفر و 18.8 درصد شرکت های بالای 1000 نفر به طراحی پایگاه داده نیاز دارند. بله، به نظر می رسد در مورد ORM و SQL است! توضیح منطقی، IMHO، این است که در شرکت های بزرگ نقش اختصاصی DBA وجود دارد که مسئولیت این جنبه را بر عهده دارد و بنابراین می توان شرایط را برای توسعه دهندگان نرم کرد و سریعتر استخدام کرد. اما با طراحی سیستم برعکس است: 37.0٪ در کوچک، 44.1٪ در بزرگ. به نظر می رسد که بزرگ ها باید معماران اختصاصی داشته باشند، اما شاید آنها به سادگی قادر به پوشش تعداد سیستم های تولید شده نباشند. یا همان الگوریتم های اساسی و ساختارهای داده را در طراحی سیستم قرار می دهند، سپس کمی واضح تر می شود.
شرکتهای کوچک بیشتر و کمتر به طراحی سیستم فوقالذکر به مهارت چارچوب نیاز دارند، که از آن میتوان نتیجهگیری کاپیتان را گرفت که برای استارتآپها مهم است که محصولی به نحوی کارآمد را در سریعترین زمان ممکن راهاندازی کنند و فردا فردا خواهد بود.
دانش آموزان چه می آموزند؟
در اینجا من به داده های دیگری تکیه کردم
توجه به این نکته مهم است که علیرغم این واقعیت که برنامه نویسی به یک شکل در دانشگاه ها تدریس می شود (منظورم رشته های علوم کامپیوتر است)، بیش از نیمی از شرکت کنندگان در نظرسنجی گفتند که آنها نیز به خودآموزی مشغول هستند.
دانشآموزان مدرن ترجیح میدهند از YouTube یاد بگیرند، در حالی که توسعهدهندگان مسنتر به آموزشها و کتابها تمایل دارند. هر دوی آنها به طور فعال از StackOverflow استفاده می کنند. من این را به این واقعیت نسبت می دهم که ویدیو یک کانال رسانه ای آشنا برای نسل Z است، در حالی که نمایندگان نسل Y هنوز در عصری بدون وبلاگ نویس هستند.
آنها آنچه مورد تقاضای کارفرمایان است را آموزش می دهند: جاوا اسکریپت، جاوا، پایتون. آنها نشان می دهند که C/C++ را می دانند، اما این احتمالاً به این دلیل است که از این زبان ها برای تدریس در دانشگاه ها استفاده می شود. آنها چارچوب های JS را آموزش می دهند، اما تقاضا به طور قابل توجهی بالاتر از عرضه است، بنابراین ظاهراً آنها پس از یافتن اولین شغل خود به طور فعال در حال یادگیری هستند.
به طور کلی، همانطور که انتظار می رود، آنها آنچه را که تقاضا می شود آموزش می دهند.
دانشآموزان از شغل اول خود انتظار رشد حرفهای دارند، تعادل بین کار و زندگی در رتبه دوم قرار دارد (در برخی کشورها اول)، و وظایف جالب در رتبه سوم قرار میگیرد.
پویایی جمعیت توسعه دهندگان بر اساس زبان های برنامه نویسی و انواع نرم افزار
برنامه های کاربردی وب با حدود 16.9 میلیون توسعه دهنده در رتبه اول قرار دارند. این دوباره SlashData است. پس از آن خدمات Backend (13.6 میلیون)، برنامه های کاربردی تلفن همراه (13.1 میلیون) و دسکتاپ (12.3 میلیون) قرار دارند. بخشهای AR/VR و IoT به تدریج محبوبیت پیدا میکنند، AI/ML/Data Science در دو سال گذشته رشد چشمگیری داشته است.
جاوا اسکریپت سریعترین رشد را دارد؛ جامعه آن در حال حاضر بزرگترین است و تنها در سال 2018 2.5 میلیون نفر رشد کرده است. آنها حتی در حال تلاش برای نوشتن در آن در بخش IoT و ML هستند.
پایتون در سال 2018 به دلیل محبوبیت فزاینده ML، جایی که به طور سنتی قوی است، و همچنین به دلیل سهولت یادگیری و راحتی زبان، 2.2 میلیون رشد کرد.
جاوا، C/C++ و C# با سرعت کمتری نسبت به جمعیت کلی توسعه دهندگان در حال رشد هستند. آنها اکنون به ندرت زبان برنامه نویسی هستند که مردم برای شروع با آن انتخاب می کنند. تقاضا برای توسعه دهندگان در اینجا کم و بیش با عرضه متعادل است. فکر میکنم اگر اندروید نبود، جاوا حتی کندتر رشد میکرد.
PHP دومین زبان برنامه نویسی کاربردی وب است و همچنین رشد قابل توجهی دارد (32٪ در سال 2018). جامعه آن 5.9 میلیون توسعه دهنده تخمین زده می شود. با وجود شهرت قطبی PHP، یادگیری آن بسیار آسان است و به طور گسترده مورد استفاده قرار می گیرد.
کاندیداهای جوان امروزی نسبت به نسل های قبل چگونه درس می خوانند؟
داده های HackerRank دوباره. کسانی که الان بین 38 تا 53 هستند، بازی ها را به عنوان اولین پروژه های خود فهرست می کنند.
ضمناً من تأیید می کنم که اولین پروژه کم و بیش کاری من "تیک تاک" تا پنج پشت سر هم با میدان نامحدود بود ، دومی یک بازی 15 بود. همه اینها را در
برنامه نویسان مبتدی مدرن (تا 21 سال) ماشین حساب و وب سایت را به عنوان اولین پروژه خود می نویسند.
در میان نمایندگان نسل X، تقریباً نیمی از آنها قبل از 16 سالگی شروع به نوشتن کد کردند، بسیاری از 5 تا 10 سالگی این کار را انجام دادند (عمدتاً کسانی که اکنون بین 35 تا 45 سال دارند). کم و بیش روشن است که چرا: منابع اطلاعاتی کمی وجود داشت، و برای تبدیل شدن به یک برنامه نویس واقعاً باید به شدت آن را می خواستید، و کسانی که واقعاً آن را می خواستند برنامه نویسی را زود شروع کردند. کسانی که خیلی آن را نمی خواستند به احتمال زیاد اکنون حرفه دیگری دارند، بنابراین تصویر در جامعه شناسی دقیقاً اینگونه است.
کاندیداهای جوان امروزی فقط 20 درصد از مواقع برنامه نویسی را قبل از سن 16 سالگی شروع می کنند که اکثریت آنها بین 16 تا 20 سالگی است. اما یادگیری برای آنها نیز بسیار ساده تر است؛ اکنون بسیار در دسترس تر است.
یافته ها
من هنوز پاسخ مشخصی برای این سؤال پیدا نکردهام که آیا یک توسعهدهنده باطن وب مبتدی امروز به SQL نیاز دارد یا خیر، اما ایده خود را در مورد جمعیت مدرن برنامهنویسان اصلاح کردهام.
نسل بعدی توسعه دهندگان مردم عادی هستند، از جهاتی شبیه به قبلی ها هستند؛ مشکل مسکن فقط آنها را خراب کرد. آنها تقاضای ایجاد شده توسط کارفرمایان را برآورده می کنند. آستانه ورود به این حرفه به دلیل ابزارها و چارچوب های راحت تر که به شما امکان می دهد به سرعت به نتایج برسید پایین تر شده است. اکنون افراد بیشتری در حال تبدیل شدن به برنامه نویس هستند؛ نسل دیجیتال (نسل Z) از بدو تولد در فناوری زندگی می کنند؛ برای آنها این یک حرفه رایج است که بدتر از دیگران نیست.
کسانی که میدانند تأخیر حافظه نهان L1 4 سیکل است و بهتر است خطوط کش بیهوده خراب نشود، به عنوان درصدی از اندازه کل جمعیت کوچکتر میشوند. با این حال، آنها نباید نگران یافتن شغل باشند؛ بالاخره یک نفر باید چیزهای سطح پایین را در جایی که هنوز به آن نیاز است بنویسد. به همین ترتیب، کسانی که دانش بنیادی عمیقی در طراحی سیستم دارند و آن را در نبردهای عملی خونین به دست آوردهاند و صرفاً از یک فرقه بار پیروی نمیکنند، نگران نباشند. زیرا افراد بیشتری در تیمها وجود خواهند داشت که میتوانند «فقط کد بنویسند» و «فقط» از فریمورکها استفاده کنند، و برای «جلوگیری از درد طاقتفرسا سالهای زندگی بیهدف» (ج) باید با چنین افرادی تعادل برقرار کنند. .
مهارت های نرم به تدریج از مقوله مطلوب به اجباری مهاجرت می کنند (من هیچ داده عینی برای تأیید این موضوع ندارم، فقط مشاهده عملی). تعداد برنامه نویسان در حال افزایش است و همه آنها باید برای دستیابی به نتایج هدایت شوند، چه از طریق کنترل مستقیم یا غیرمستقیم، و این دقیقا همان چیزی است که مهارت های نرم برای آن مورد نیاز است.
به نظر من "Enter IT" یک داستان منطقه ای محلی است که برای مکان هایی که درآمد یک برنامه نویس به طور قابل توجهی با درآمد یک متخصص "غیر فناوری اطلاعات" قابل مقایسه است متفاوت است. در مینسک، جایی که من زندگی میکنم، این حرکت عموماً یک جنبش تودهای است، هر روز تبلیغاتی برای دورههای جدید در مورد نحوه ورود به فناوری اطلاعات مورد علاقه میبینم، و شرکتهای نظافتی برنامهنویسان را با این پیام هدف قرار میدهند: «آیا کد این تصویر را میدانید؟ این به این معنی است که شما می توانید آپارتمان خود را تمیز نکنید، ما همه چیز را برای شما انجام خواهیم داد. ظاهراً در برخی از هندوستان نیز همین اتفاق می افتد. من هم هیچ اطلاعاتی برای اثبات این موضوع ندارم.
در کل به نظر من چیزی جمعیت برنامه نویسان را تهدید نمی کند. هیچ فایده ای در مورد این که نمی توانید برنامه نویسان واقعی را در طول روز پیدا کنید و نامزدها اغلب "هیچ چیز نمی دانند" وجود ندارد. آنها به همان اندازه باهوش و توانا هستند، شاید حتی باهوشتر و توانمندتر از «برنامهنویسان واقعی»؛ آنها به سادگی دانشی را که بازار به سرعت در حال رشد از آنها میخواهد به دست میآورند و آنچه را که هنوز به آن نیاز نداشتهاند و به درستی سودی نخواهد داشت، به آینده موکول میکنند. اکنون. آنها زمانی که نیاز داشته باشند یاد خواهند گرفت، زیرا هنوز می خواهند یاد بگیرند. احتمالاً همه قادر به این کار نخواهند بود، اما همه نیز به آن نیاز نخواهند داشت؛ در آینده قابل پیشبینی، بازار به راحتی افرادی را میپذیرد که میتوانند به سرعت مفهوم برنامه دیگری را با استفاده از چارچوبی جمعآوری کنند.
فقط کاربران ثبت نام شده می توانند در نظرسنجی شرکت کنند.
آیا مصاحبه پشتیبان وب نیاز به دانش SQL دارد؟
-
بله تقاضا دارم چون برای کار به آن نیاز دارم
-
بله، من انجام می دهم، حتی اگر به ندرت در محل کار مورد نیاز است.
-
نه، من به آن نیاز ندارم، ما NoSQL داریم
-
نه، من به آن نیاز ندارم، ORM همه چیز را انجام خواهد داد
320 کاربر رای دادند. 230 کاربر رای ممتنع دادند.
منبع: www.habr.com