"Cái gã punk trẻ tuổi sẽ quét sạch chúng ta khỏi mặt đất ở đâu?"

Câu hỏi tồn tại được đặt trong tiêu đề trong công thức của Grebenshchikov, tôi đã tự hỏi mình sau vòng thảo luận tiếp theo tại một trong các cộng đồng về chủ đề liệu một nhà phát triển phụ trợ web mới làm quen có cần kiến ​​​​thức về SQL hay ORM sẽ làm mọi thứ hay không. Tôi quyết định tìm kiếm câu trả lời rộng hơn một chút chứ không chỉ về ORM và SQL, và về nguyên tắc, cố gắng hệ thống hóa những người hiện đang phỏng vấn cho các vị trí phát triển cấp trung và cấp cơ sở, lịch sử của họ là gì và họ sống ở thế giới nào . Nói chung, tôi đã có một ý kiến, nhưng nó được hình thành từ kinh nghiệm thuê mướn cá nhân và được điều chỉnh rõ ràng cho thị trường địa phương. Nói chung, nó trở nên tò mò. Đây là những gì chúng tôi tìm thấy.

Dân số nhà phát triển toàn cầu

Để phần nào tiếp cận vấn đề, tôi quyết định bắt đầu bằng cách tìm kiếm dữ liệu về nguyên tắc có bao nhiêu nhà phát triển trên thế giới và dân số này thay đổi như thế nào theo thời gian.
Các ước tính từ nhiều nguồn khác nhau đưa ra con số trong ngã ba từ 12 đến 30 triệu người. Quyết định dừng lại dữ liệu từ SlashData, bởi vì phương pháp của họ đối với tôi có vẻ khá cân bằng và phù hợp với nhu cầu của tôi. Trong đánh giá của mình, họ đã tính đến số lượng tài khoản và kho lưu trữ trên Github, số lượng tài khoản trên StackOverflow, tài khoản npm và dữ liệu việc làm chính thức ở Hoa Kỳ và Châu Âu. Họ cũng sửa các con số thu được bằng cách sử dụng 16 nghiên cứu của riêng họ, bao gồm khoảng 20 người cho mỗi cuộc khảo sát.

Theo SlashData, trong quý 2018 năm 18.9, có khoảng 12.9 triệu nhà phát triển trên thế giới, 6 triệu trong số đó là chuyên nghiệp, tức là họ kiếm sống bằng nghề lập trình. Những người hiện không phải là nhà phát triển chuyên nghiệp là những người coi lập trình là sở thích cộng với những người hiện đang học nghề (nhiều sinh viên và tự học). Chà, đó là, đây là một gợi ý về quy mô của nhóm mà tôi quan tâm - XNUMX triệu người. Thành thật mà nói, nó nhiều hơn tôi mong đợi.

Điều ngạc nhiên thứ hai đối với tôi là tốc độ tăng trưởng của số lượng lập trình viên: từ quý 2017 năm 2018 đến quý 14.7 năm 18.9, con số này đã tăng từ 21 lên 2018 triệu đã đề cập, tức là tăng 5% trong năm 20! Nếu tôi được yêu cầu ước tính tốc độ tăng trưởng số lượng lập trình viên, thì tôi sẽ nói rằng đó là khoảng XNUMX% mỗi năm với tốc độ tăng nhẹ hàng năm. Và ở đây hóa ra là XNUMX%.

Ngoài ra, SlashData ước tính rằng dân số sẽ đạt 2030 triệu người vào năm 45. Không khó để tính toán rằng điều này ngụ ý mức tăng trưởng chỉ hơn 8% hàng năm chứ không phải 20% chút nào, nhưng chúng đề cập đến sự điều chỉnh đối với mức độ thâm nhập của Internet (hiện tại là khoảng 57% trên toàn cầu bởi theo thống kê) và một số yếu tố khác, chẳng hạn như số lượng nhà phát triển trên đầu người. Về mặt địa lý, Ấn Độ và Trung Quốc là những nhà phát triển phát triển nhanh nhất, với Ấn Độ dự kiến ​​sẽ vượt Mỹ về số lượng nhà phát triển vào năm 2023 (điều này đã Dữ liệu góc C#).

Nói chung, sẽ có rất nhiều lập trình viên, bất kể người ta có thể nói gì, bởi vì nhu cầu ngày càng tăng. Nhân tiện, về nhu cầu.

Nhu cầu là gì?

Để ước tính nhu cầu, tôi đã sử dụng dữ liệu HackerRank cho 2018 и 2019 năm.

Về ngôn ngữ lập trình, nhu cầu lớn nhất đối với JavaScript, Python và Java là trong hầu hết các ngành, ngoại trừ Phần cứng máy tính. Sau này, C/C++ có nhu cầu lớn nhất, điều này có thể hiểu được; trong các dự án phần cứng, vẫn có những yêu cầu về cường độ tài nguyên và hiệu suất của phần mềm tương ứng.

"Cái gã punk trẻ tuổi sẽ quét sạch chúng ta khỏi mặt đất ở đâu?"

Về các khung, AngularJS, Node.js và React là những thứ có nhu cầu cao nhất, với khoảng cách cung-cầu lớn nhất, điều này dường như được giải thích là do tốc độ thay đổi của hệ sinh thái JavaScript, ví dụ như trong ExpressJS , cung đã vượt cầu.

"Cái gã punk trẻ tuổi sẽ quét sạch chúng ta khỏi mặt đất ở đâu?"

Về năng lực, nhà tuyển dụng mong đợi ở ứng viên trước hết là kỹ năng Giải quyết vấn đề. Khoảng 95% nhà tuyển dụng đề cập đến những kỹ năng này là quan trọng. Trình độ thông thạo ngôn ngữ lập trình ở vị trí thứ hai với 56%. Nhân tiện, không có dòng nào có kiến ​​​​thức cơ bản về thuật toán, cấu trúc dữ liệu và Khoa học máy tính khác, hoặc nó không có trong bảng câu hỏi hoặc kiến ​​​​thức hàn lâm không còn cần thiết trên quy mô lớn.

Thiết kế cơ sở dữ liệu là cần thiết bởi 23.2% công ty dưới 100 người và 18.8% công ty trên 1000 người. Aha, ở đây nó tương tự về ORM và SQL! IMHO, lời giải thích hợp lý là trong các công ty lớn, vai trò DBA chuyên dụng xuất hiện, chịu trách nhiệm về khía cạnh này và do đó có thể làm dịu các yêu cầu đối với nhà phát triển và tuyển dụng nhanh hơn. Nhưng với Thiết kế hệ thống thì ngược lại: 37.0% ở cái nhỏ, 44.1% ở cái lớn. Có vẻ như nên có những kiến ​​​​trúc sư tận tâm trong những công trình lớn, nhưng có lẽ đơn giản là họ không thể bao quát hết số lượng hệ thống được tạo ra. Hoặc, đồng thời, những thuật toán và cấu trúc dữ liệu rất cơ bản đó được đầu tư vào Thiết kế hệ thống, sau đó nó sẽ trở nên rõ ràng hơn một chút.

Các công ty nhỏ ngày càng cần đến Trình độ thành thạo khung Thiết kế hệ thống đã nói ở trên, từ đó chúng ta có thể rút ra kết luận của thuyền trưởng rằng điều quan trọng đối với các công ty khởi nghiệp là tung ra một sản phẩm hoạt động bằng cách nào đó càng sớm càng tốt, và ngày mai sẽ là ngày mai.

"Cái gã punk trẻ tuổi sẽ quét sạch chúng ta khỏi mặt đất ở đâu?"

Học sinh đang học gì?

Ở đây tôi dựa vào dữ liệu của người khác Nghiên cứu HackerRank.
Điều quan trọng cần lưu ý là mặc dù lập trình dưới hình thức này hay hình thức khác được dạy tại các trường đại học (ý tôi là chuyên ngành Khoa học máy tính), hơn một nửa số người được hỏi nói rằng họ cũng đang tự học.

Sinh viên ngày nay thích học từ YouTube, trong khi các nhà phát triển lớn tuổi hơn hướng tới các hướng dẫn và sách. Cả hai đều tích cực sử dụng StackOverflow. Tôi cho rằng điều này là do video là kênh truyền thông quen thuộc của thế hệ Z, trong khi đại diện của thế hệ Y vẫn tìm thấy một kỷ nguyên không có blogger.

Họ học những gì nhà tuyển dụng yêu cầu: JavaScript, Java, Python. Họ cho biết rằng họ biết C/C++, nhưng điều này có thể là do những ngôn ngữ này được sử dụng để giảng dạy trong các trường đại học. Họ dạy các khung JS, nhưng nhu cầu cao hơn nhiều so với nguồn cung, vì vậy rõ ràng họ đã tích cực dạy khi đã tìm được công việc đầu tiên.

"Cái gã punk trẻ tuổi sẽ quét sạch chúng ta khỏi mặt đất ở đâu?"

Nói chung, người ta mong đợi rằng họ dạy những gì được yêu cầu.

Sinh viên mong đợi sự phát triển nghề nghiệp từ công việc đầu tiên của họ, sự cân bằng giữa công việc và cuộc sống đứng thứ hai (ở một số quốc gia, thứ nhất) và các nhiệm vụ thú vị đứng thứ ba.

Động lực dân số nhà phát triển theo ngôn ngữ lập trình và loại phần mềm

"Cái gã punk trẻ tuổi sẽ quét sạch chúng ta khỏi mặt đất ở đâu?"

Các ứng dụng web đứng đầu với ước tính có khoảng 16.9 triệu nhà phát triển. Đây lại là dữ liệu SlashData. Dịch vụ phụ trợ khác (13.6 triệu), ứng dụng di động (13.1 triệu) và máy tính để bàn (12.3 triệu). Các lĩnh vực AR/VR và IoT đang dần trở nên phổ biến, AI/ML/Khoa học dữ liệu đã tăng trưởng đáng kể trong hai năm qua.

Javascript đang phát triển nhanh nhất, cộng đồng của nó đã lớn nhất, tăng 2018 triệu chỉ trong năm 2.5. Họ cố gắng viết về nó ngay cả trong lĩnh vực IoT và ML.
Python đã tăng 2018 triệu vào năm 2.2 do sự gia tăng mức độ phổ biến của ML, nơi nó có truyền thống mạnh mẽ, cũng như do tính dễ học và tiện lợi của ngôn ngữ này.

Java, C/C++ và C# đang phát triển với tốc độ chậm hơn so với dân số nhà phát triển nói chung. Bây giờ chúng hiếm khi là ngôn ngữ lập trình mà mọi người chọn để bắt đầu. Nhu cầu đối với các nhà phát triển ở đây ít nhiều cân bằng với nguồn cung. Tôi nghĩ rằng Java sẽ còn phát triển chậm hơn nữa nếu không có Android.

PHP là ngôn ngữ lập trình ứng dụng web phổ biến thứ hai và nó cũng đang tăng trưởng đáng kể (32% vào năm 2018). Cộng đồng của nó ước tính khoảng 5.9 triệu nhà phát triển. Bất chấp ý kiến ​​trái chiều về danh tiếng của PHP, nó khá dễ học và được sử dụng rộng rãi.

Các ứng viên trẻ ngày nay học như thế nào so với các thế hệ trước

dữ liệu HackerRank một lần nữa. Những người hiện đang ở độ tuổi từ 38 đến 53 cho biết trò chơi là dự án đầu tiên của họ.

Nhân tiện, tôi xác nhận rằng dự án hoạt động ít nhiều đầu tiên của tôi là trò cờ ca-rô lên đến năm liên tiếp với một trường không giới hạn, dự án thứ hai là trò chơi 15 người. Tôi đã viết tất cả những điều này trên 010-01 trước Công Nguyên, có vilnius cơ bản, hay còn gọi là BASIC-86 và tiêu điểm. Hở.

Các lập trình viên mới vào nghề hiện đại (dưới 21 tuổi) viết máy tính và trang web như những dự án đầu tiên của họ.

Trong số Gen Xers, gần một nửa bắt đầu viết mã trước 16 tuổi, nhiều người từ 5 đến 10 tuổi (hầu hết những người hiện nay từ 35 đến 45 tuổi). Lý do ít nhiều rõ ràng: có rất ít nguồn thông tin và để trở thành một lập trình viên, bạn thực sự phải thực sự muốn nó, và những người thực sự muốn nó đã bắt đầu lập trình từ rất sớm. Những người không muốn nhiều như vậy, rất có thể bây giờ đã có một nghề khác, vì vậy bức tranh trong xã hội học chính xác như thế này.

"Cái gã punk trẻ tuổi sẽ quét sạch chúng ta khỏi mặt đất ở đâu?"

Các ứng viên trẻ ngày nay chỉ có 20% thời gian bắt đầu lập trình trước 16 tuổi, hầu hết ở độ tuổi từ 16 đến 20. Nhưng họ học dễ dàng hơn nhiều, bây giờ nó dễ tiếp cận hơn nhiều.

Những phát hiện

Tôi chưa tìm thấy câu trả lời cụ thể cho câu hỏi liệu một nhà phát triển phụ trợ web mới làm quen có cần SQL ngày nay hay không, nhưng tôi đã sửa lại hiểu biết của mình về dân số lập trình viên hiện đại.

Thế hệ tiếp theo của các nhà phát triển là những người bình thường, phần nào gợi nhớ đến những người trước đó, vấn đề nhà ở chỉ làm hỏng họ. Họ đáp ứng nhu cầu được tạo ra bởi các nhà tuyển dụng. Ngưỡng để vào nghề đã trở nên thấp hơn do các công cụ và khuôn khổ thuận tiện hơn cho phép bạn nhanh chóng đạt được kết quả. Ngày càng có nhiều người trở thành lập trình viên, thế hệ kỹ thuật số (thế hệ Z) đã sống trong công nghệ từ khi mới sinh ra, đối với họ đây là một nghề phổ thông, không thua kém những nghề khác.

Những người biết rằng độ trễ của bộ đệm L1 là ~ 4 chu kỳ và tốt hơn là không loại bỏ các dòng bộ đệm một cách không cần thiết, sẽ trở nên nhỏ hơn theo tỷ lệ phần trăm của tổng kích thước dân số. Tuy nhiên, họ không nên lo lắng về việc kiếm được việc làm, sau tất cả, ai đó phải viết những thứ cấp thấp ở những nơi vẫn cần thiết. Cũng như những người có kiến ​​​​thức cơ bản sâu sắc về thiết kế hệ thống và có được nó trong các trận chiến thực tế đẫm máu, và không chỉ tuân theo sự sùng bái hàng hóa, cũng không nên lo lắng. Bởi vì sẽ có nhiều người hơn có thể “chỉ viết mã” và “chỉ” sử dụng các khung trong nhóm và để “không đau đớn tột cùng trong những năm tháng sống vô mục đích” (c), họ sẽ cần được cân bằng bởi những điều như vậy mọi người.

Các kỹ năng mềm từ danh mục mong muốn dần chuyển sang yêu cầu (tôi không có dữ liệu khách quan để xác nhận điều này, chỉ là một quan sát thực tế). Số lượng lập trình viên ngày càng tăng và tất cả họ đều cần được hướng dẫn để đạt được kết quả, bằng cách kiểm soát trực tiếp hoặc gián tiếp, và đây chính xác là những kỹ năng mềm cần thiết.

Đối với tôi, “gia nhập CNTT” dường như là một lịch sử khu vực địa phương, điển hình cho những địa điểm mà thu nhập của một lập trình viên khác biệt đáng kể so với thu nhập của một chuyên gia có thể so sánh được về trình độ “không phải CNTT”. Ở Minsk, nơi tôi sống, đây thường là một phong trào quần chúng, hàng ngày tôi thấy quảng cáo cho các khóa học tiếp theo về cách vào ngành CNTT được thèm muốn và các công ty dọn dẹp nhắm mục tiêu đến các lập trình viên với thông điệp “Bạn có hiểu đoạn mã trong bức tranh này không? Vì vậy, bạn có thể không dọn dẹp căn hộ, chúng tôi sẽ làm mọi thứ cho bạn. Điều tương tự dường như đang xảy ra ở một số Ấn Độ. Tôi cũng không có bất kỳ dữ liệu nào để chứng minh điều này.

Nói chung, theo ý kiến ​​​​của tôi, không có gì đe dọa dân số lập trình viên. Thật không đáng để nói về việc bạn không thể tìm thấy những lập trình viên thực thụ trong một buổi chiều, và các ứng viên thì luôn “chẳng biết gì”. Họ thông minh và có năng lực, thậm chí có thể thông minh hơn và có năng lực hơn cả những “lập trình viên thực thụ”, họ chỉ đơn giản là tiếp thu kiến ​​​​thức mà một thị trường đang phát triển nhanh chóng đòi hỏi ở họ và bỏ qua những gì họ chưa cần và sẽ không mang lại lợi ích sau này. Hiện nay. Họ sẽ học khi họ cần, bởi vì họ vẫn muốn học. Có lẽ, không phải ai cũng có thể làm được điều này, nhưng không phải ai cũng cần đến nó, thị trường chắc chắn trong tương lai dự đoán sẽ dễ dàng chấp nhận những người có thể nhanh chóng lắp ráp một khái niệm ứng dụng khác trên một số khung.

Chỉ những người dùng đã đăng ký mới có thể tham gia khảo sát. Đăng nhập, xin vui lòng.

Bạn có yêu cầu kiến ​​​​thức về SQL cho các cuộc phỏng vấn phụ trợ web không?

  • Có, tôi có, vì tôi cần nó ở nơi làm việc

  • Có, tôi có, mặc dù nó hiếm khi cần thiết tại nơi làm việc.

  • Không, tôi không, chúng tôi có NoSQL

  • Không, tôi không, ORM sẽ làm mọi thứ

320 người dùng bình chọn. 230 người dùng bỏ phiếu trắng.

Nguồn: www.habr.com

Thêm một lời nhận xét