Có những loại lập trình viên nào? Chuyên gia trong việc tạo ra và phát triển trò chơi máy tính. Tại sao nó được gọi như vậy?

Lập trình từ lâu đã trở thành một ngành công nghiệp lớn, hợp nhất nhiều ngành nghề khác nhau dưới một cái tên. Chỉ những người ở xa lĩnh vực CNTT mới tin rằng một lập trình viên có thể nhanh chóng cài đặt Windows hoặc “tạo nên một cửa hàng trực tuyến đơn giản”. Và họ rất ngạc nhiên nếu hóa ra một người chưa từng làm việc với các trang web hoặc biết ít về hệ thống Windows hơn nhiều người dùng. Nếu chỉ vì bản thân anh ấy sử dụng Linux hoặc Mac.

Nếu bạn cố gắng nghiên cứu danh sách các vị trí tuyển dụng của nhà phát triển CNTT, sự đa dạng của các chức danh và yêu cầu chuyên môn thậm chí có thể khiến bạn sợ hãi. Đặc biệt nếu bạn muốn tập hợp một đội ngũ tuyệt vời hoặc tìm thấy chính mình trong không gian chuyên nghiệp rộng lớn này. Nhưng yếu tố con người cũng phải được tính đến để dự án có thể diễn ra và xây dựng sự nghiệp.

Trên thực tế, mọi thứ không khó như bạn tưởng. Lập trình viên được chia thành 8 loại chính tùy theo lĩnh vực hoạt động của họ. Và trong khuôn khổ phẩm chất cá nhân, tốt nhất nên tập trung vào đặc điểm của động lực. Nhưng trước tiên, hãy nhìn vào các lĩnh vực hoạt động.

Nhà phát triển front-end

Những lập trình viên này chuyên về giao diện. Tất cả các nút trên màn hình mà bạn có thể nhấn, menu thả xuống và toàn bộ giao diện của trang web hoặc ứng dụng đều là miền của chúng. Những thứ kia. Front-end đang nghiên cứu tính năng động của các giao diện tương tác. Ngoài ra, trong trường hợp không có người thiết kế bố cục, nhà phát triển Front-end có thể phải làm việc với mã HTML (bố cục mẫu).

Chuyên ngành này đang được yêu cầu ở các studio web cỡ trung bình lớn và các loại công ty khác tham gia vào lĩnh vực xây dựng trang web và phát triển ứng dụng.

Những công nghệ bạn cần biết:

  • HTML và CSS;
  • Các khuôn khổ khác nhau;
  • bộ tiền xử lý (SASS/LESS);
  • JavaScript cùng với các thư viện;
  • Hệ thống gỡ lỗi và lắp ráp chương trình.

Điều quan trọng nữa là phải hiểu bố cục thích ứng và di động là gì, nghiên cứu hoạt động của các CMS phổ biến, hiểu công nghệ máy chủ và nguyên tắc phụ trợ, nghiên cứu các khái niệm cơ bản về tối ưu hóa SEO, làm việc với phông chữ web và có thể sử dụng Photoshop, Illustrator và các trình soạn thảo đồ họa khác.

Nhà phát triển back-end

Một lập trình viên back-end tham gia vào việc tạo ra phần mềm và phần quản trị của dự án - anh ta tạo ra kiến ​​trúc, suy nghĩ logic và viết mã thực thi.

Những chuyên gia như vậy làm việc trong một công ty CNTT lớn hoặc vừa. Nhìn chung việc tách biệt Front-end và Back-end là dấu hiệu của một dự án vững chắc.

Có thể sử dụng nhiều ngôn ngữ lập trình, framework và thư viện. Phổ biến nhất:

  • PHP;
  • Trăn;
  • Java;
  • Ruby.

Bạn chắc chắn cũng nên học JavaScript, MySQl, PostgreSQL và NoSQL.

Lập trình viên full stack

Kết hợp hai loại được mô tả ở trên, thường hoạt động trên các dự án WEB. Những thứ kia. Đây cũng chính là lập trình viên có thể tự mình tạo ra một trang web chìa khóa trao tay hoàn chỉnh.

Những chuyên gia này rất cần thiết cho các studio web nhỏ cũng như những người làm nghề tự do. Kết hợp các kỹ năng và kiến ​​thức được mô tả trong hai đoạn trước. Nhưng anh ta thường không hiểu biết sâu sắc về cả hai lĩnh vực như trong trường hợp chọn chuyên ngành hẹp. Tuy nhiên, anh ấy không cần nó. Vị trí thích hợp của anh ấy đơn giản và không phải là những dự án đắt tiền nhất.

Nhà phát triển game

Nhà phát triển ứng dụng trò chơi là một trong những khái niệm lớn. Thông thường, các nhà phát triển trò chơi được chia thành các chuyên ngành: phát triển trò chơi trên máy tính để bàn, trò chơi di động và MMORG.

Các studio trò chơi và công ty khởi nghiệp đang cần các chuyên gia trong lĩnh vực này. Chúng hoạt động từ đầu cũng như hỗ trợ, sửa lỗi và các bản cập nhật khác.

Các công nghệ cần thiết:

  • C/C++. C# hoặc ngôn ngữ lập trình khác cùng loại;
  • Java và thư viện;
  • Mở GL hoặc DirectX;
  • Unity, Unreal Engine, Torque hoặc các công cụ trò chơi khác.

Nhà phát triển Android

Hoạt động dưới hệ điều hành Android. Ở các công ty lớn, việc phát triển ở đây cũng được chia thành Back-end và Front-end. Nhưng trong hầu hết các trường hợp, toàn bộ chu trình tạo ứng dụng là sau đó họ có thể làm việc với bất kỳ phần nào của dự án.

Chuyên ngành đang có nhu cầu tại các studio game, công ty khởi nghiệp, công ty chuyên phát triển ứng dụng di động, v.v.

Kiến thức cần thiết:

  • Studio Android;
  • Java;
  • OpenGL;
  • SDK Android.

nhà phát triển iOS

Tạo nhiều loại (HĐH cho thiết bị Apple). Thực hiện các chức năng tương tự như chức năng được mô tả bởi một lập trình viên Android. Cũng có nhu cầu ở các công ty khởi nghiệp, công ty phát triển ứng dụng di động và các dự án tương tự khác.

Trước đó, chúng tôi đã viết về những ưu điểm và nhược điểm của hệ thống iOS và Android. Cả hai lĩnh vực đều quan trọng và có nhu cầu như nhau. Và với kinh nghiệm, nhiều lập trình viên học cách làm việc trên cả hai hệ điều hành di động.

Những điều nhà phát triển iOS cần biết:

  • Swift hoặc Objective-C;
  • Dữ liệu cốt lõi;
  • Mã X;
  • OpenGL;
  • Ca cao cảm ứng;
  • CoreGraphics.

lập trình viên 1C

Chuyên gia làm việc với các cấu hình phần mềm 1C khác nhau. Trong môi trường chuyên nghiệp, hạng mục này được nhìn nhận theo hai cách. Nhiều nhà phát triển hoàn toàn không coi ngôn ngữ 1C là ngôn ngữ lập trình và nhiều chuyên gia 1C không coi họ là lập trình viên. Nhưng, tuy nhiên, đây là tên của đặc sản này. Và ở Nga nó có nhu cầu rộng rãi.

Các lập trình viên 1C tham gia vào việc tạo các cấu hình dành riêng cho ngành dựa trên các cấu hình cơ bản (tiêu chuẩn), tinh chỉnh và tùy chỉnh các giải pháp phần mềm hiện có để phù hợp với đặc điểm hoạt động kinh doanh của khách hàng cũng như viết báo cáo và xử lý bên ngoài.

Vị trí tuyển dụng lập trình viên 1C có thể được thay mặt cho công ty đối tác 1C, công ty đang triển khai sản phẩm phần mềm này trong khu vực. Ngoài ra, lập trình viên 1C còn được các doanh nghiệp vừa và lớn cần bảo trì liên tục thuê.

Những điều lập trình viên 1C nên biết:

  • Ngôn ngữ cấu hình 1C;
  • Cấu hình điển hình (Kế toán, Doanh nghiệp, Quản lý thương mại, v.v.);
  • Cơ sở dữ liệu T-SQL.

Kỹ sư phần mềm

Hầu hết tất cả các loại lập trình đều có thể được học trong các khóa học hoặc tự học. Ngoại lệ là một kỹ sư phần mềm. Nghề này ngoài việc học ngôn ngữ lập trình còn đòi hỏi kiến ​​thức sâu về lĩnh vực toán học, vật lý và các ngành liên quan khác.

Một kỹ sư phần mềm biết rõ logic toán học và toán học rời rạc, đồng thời biết cách áp dụng tất cả những kiến ​​thức toán học này vào thực tế. Ngoài ra, mức độ đào tạo cho phép bạn nghiên cứu các quy trình công nghiệp và công nghệ khác nhau.

Vì vậy, các kỹ sư phần mềm thường được tuyển dụng nhiều nhất trong lĩnh vực phát triển phần mềm tự động hóa sản xuất: máy CNC, dây chuyền băng tải. Họ thường lập trình các thiết bị gia dụng - máy làm bánh mì, robot hút bụi, v.v. Trong các công ty chuyên tạo ra hệ thống phần mềm, các kỹ sư phần mềm thường trở thành nhà phát triển, vì không giống như các “lập trình viên” tự học, những chuyên gia này có kiến ​​thức sâu về thuật toán hóa.

Các công nghệ chính:

  • Ngôn ngữ lập trình C/C++, C#, Delphi và các ngôn ngữ khác;
  • Kiến thức về lập trình cấp thấp (Assembler);
  • Một lượng kiến ​​thức kỹ thuật đáng kể (chủ yếu liên quan đến ngành mà lập trình viên làm việc).

Các loại động lực

Và cuối cùng, như chúng tôi đã hứa, chúng tôi sẽ nói về đặc điểm tính cách và cách tiếp cận công việc của các lập trình viên khác nhau. Có nhiều cách phân loại khác nhau nhưng cách phân loại đơn giản và dễ hiểu nhất là theo loại động lực.

Nó có thể:

  • Động lực kinh doanh (thanh toán, lợi nhuận, danh tiếng);
  • Công nghệ (cơ hội thử và triển khai điều gì đó mới);
  • Giải quyết vấn đề (tìm kiếm giải pháp thú vị).

Hầu hết mọi lập trình viên đều có những động lực khác nhau. Và ở đây điều quan trọng là phải hiểu chính xác những gì chiếm ưu thế.

Động lực kinh doanh

Động lực kinh doanh “bao gồm” mong muốn đáp ứng mong muốn của khách hàng một cách hiệu quả nhất có thể. Trong trường hợp này, lập trình viên rất có thể sẽ nhanh chóng trở thành người được khách hàng và người quản lý yêu thích. Anh ta sẽ cố gắng triển khai bất kỳ chức năng nào một cách nhanh chóng, hiệu quả và không có những câu hỏi không cần thiết. Anh ta thậm chí còn sẵn sàng viết lại mã và làm việc theo cách gây tổn hại đến kiến ​​trúc của dự án, nếu đó là yêu cầu của khách hàng. Họ hiếm khi có trí tưởng tượng tốt; họ luôn suy nghĩ rất cụ thể trong bối cảnh code. Loại nhà phát triển này là “muối của trái đất”, họ cần thiết khi tạo ra bất kỳ sản phẩm nào.

Động lực công nghệ

Động lực này thường được tìm thấy nhiều nhất ở những người đam mê công nghệ, những người không ngừng quan tâm đến tất cả các sản phẩm mới và sẵn sàng học các ngôn ngữ, framework và công cụ mới ngay khi chúng xuất hiện. Những người như vậy biết mọi thứ về xu hướng thời trang, dành thời gian cá nhân để nghiên cứu chúng và luôn thử những món đồ mới “tận răng”. Trong các công ty khởi nghiệp mới và các dự án non trẻ, những người như vậy là không thể thay thế được. Đây là những người thực sự tạo ra các ý tưởng và các chuyên gia về các giải pháp đổi mới.

Nhưng nếu dự án đã trưởng thành, sắp hoàn thành hoặc có sẵn cho người dùng, thì tốt hơn hết những người đam mê công nghệ nên chuyển sang một thứ khác. Bởi vì anh ta sẽ cảm thấy nhàm chán hoặc bắt đầu viết lại mã một cách không cần thiết chỉ để triển khai một điều mới khác mà không còn nơi nào khác để thử.

Giải quyết vấn đề như một động lực

Thể loại này bao gồm những người hâm mộ các câu đố phức tạp trong thế giới lập trình. Họ bị thu hút bởi cơ hội giải quyết một vấn đề, và nó càng phức tạp thì càng thú vị. Bản thân các công nghệ mới không khiến họ quan tâm, nhưng... nếu cái gì đó được cần cho một dự án, họ sẽ nghiên cứu nó và sử dụng nó. Đối với những lập trình viên như vậy, chiến thắng là một giải pháp hợp lý, hài hòa và đẹp đẽ.

Nhược điểm của loại động lực này là sau khi tìm ra và thử nghiệm một giải pháp, sự quan tâm đến dự án giảm dần xuống gần như bằng không. Việc tìm ra các lỗi nhỏ, tạo các chức năng bổ sung theo yêu cầu của khách hàng và làm việc với các phiên bản mới thường gây ra sự nhàm chán. Một người rời khỏi dự án hoặc năng suất của anh ta giảm xuống mức gần bằng không.

Hệ thống phân loại này không còn lý tưởng nữa. Trong hầu hết các trường hợp, cả ba loại đều được trộn lẫn trong một người. Do đó, những người yêu thích giải quyết vấn đề có thể kiên nhẫn làm việc trên những “điểm thô” nhỏ trong mã, trong khi những người đánh giá cao động lực kinh doanh lại đưa ra những ý tưởng độc đáo. Trong phân loại được mô tả - cái mà các nhà tâm lý học gọi là "kiểu tâm lý thuần túy", tức là. những trường hợp rõ ràng nhất. Nhưng trên thực tế, sẽ rất hợp lý nếu cố gắng tập hợp các đại diện thuộc nhiều loại khác nhau vào một nhóm, nghiên cứu động lực nào mà lập trình viên hướng tới nhiều hơn và cố gắng giao cho anh ta những dự án phù hợp.

Bạn định vị bản thân như thế nào? Bạn là loại lập trình viên nào?

Nhiều học sinh sau khi tốt nghiệp trường cũ phải đối mặt với việc lựa chọn một nghề, trong khi những học sinh khác, đã có trình độ học vấn, chỉ đơn giản là không muốn làm việc trong chuyên ngành của mình. Hiện nay, trong thời đại hiện đại, khi công nghệ phát triển và nhiều thiết bị tiện ích khác nhau được sử dụng rộng rãi thì nghề lập trình viên đang có nhu cầu rất lớn. Vì vậy, trước khi đi học để trở thành “vua máy tính” hay tham gia các khóa học bổ sung, bạn cần tìm hiểu xem vấn đề là gì, nó có những ưu, nhược điểm gì.

Lập trình viên hoặc kỹ thuật viên CNTT là người phát triển tập lệnh cho các loại máy tính khác nhau, từ máy tính cá nhân đơn giản đến máy tính công nghiệp. Tóm lại, một lập trình viên đang tham gia lập trình các thiết bị khác nhau, làm việc theo nhóm hoặc cá nhân.

Không một công ty nào có thể làm được nếu không có kỹ thuật viên hoặc lập trình viên, đó là lý do tại sao những ngành nghề này rất có nhu cầu, tuy nhiên, giống như tất cả các lĩnh vực nỗ lực khác, nó cũng có những hạn chế. Một chuyên gia lập trình không chỉ phải biết mô tả các chương trình mới nhất để biến những giả định của người quản lý thành hiện thực mà còn phải là một người sáng tạo.

Đặc điểm của đào tạo

Điều cần biết là điều quan trọng đối với một chuyên gia tương lai là phải có kiến ​​​​thức tốt về toán học, cũng như hiểu biết về khoa học máy tính, vật lý và kiến ​​​​thức tốt về tiếng Nga. Ngoài ra, một số công ty yêu cầu kiến ​​​​thức về tiếng Anh. Nếu ở trường không có vấn đề gì với việc học ngoại ngữ thì nghề lập trình viên đã là một nửa của bạn rồi. Khi bạn gặp vấn đề với tiếng Anh nhưng vẫn muốn trở thành lập trình viên, bạn sẽ phải nhờ gia sư.

Ưu điểm chính của kỹ thuật viên CNTT là nghề này không chỉ có thể học được ở các trung tâm chuyên ngành mà còn có thể tự học tại nhà. Để làm được điều này, nhằm giúp đỡ những ai đang khao khát kiến ​​thức số, sẽ có những bài hướng dẫn mô tả rõ ràng các chương trình, các trang giáo dục trên Internet hoặc sách cũng phù hợp. Tuy nhiên, như thực tế cho thấy, thông tin được học tốt nhất thông qua các ví dụ. Thật tốt nếu có một người (bạn bè hoặc đồng nghiệp) có thể kể và dạy rõ ràng mọi thứ.

Công việc của một kỹ thuật viên CNTT có thể có nhiều hướng:

  1. Kỹ thuật viên ứng dụng. Chuyên gia này tham gia vào phần mềm, phát triển và cải tiến phần mềm để thuận tiện cho công việc trong các tổ chức. Thông thường đây là những chuyên gia của chương trình 1C, các kỹ thuật viên xử lý các cài đặt, mô tả chức năng và sửa đổi theo yêu cầu của một công ty cụ thể.
  2. Hướng hệ thống. Nhân viên tham gia vào việc phát triển và mô tả cơ sở dữ liệu và giao diện. Họ cũng là quản trị viên truyền thông xã hội.
  3. Chuyên gia TP (hỗ trợ kỹ thuật). Những người lao động không thể thiếu giúp loại bỏ các vấn đề và sai sót trong thời gian ngắn.
  4. Kiểm thử. Đặc biệt, họ đang tham gia vào việc hoàn thiện và thử nghiệm các chương trình làm sẵn.

Bất kể chọn hướng nào, bất kỳ lập trình viên nào cũng phát triển các mã và công cụ chương trình tiêu chuẩn hoặc chuyên môn cao.

Lập trình viên phải như thế nào?

Tất nhiên, để trở thành chuyên gia, bạn cần phải có những phẩm chất nhất định, điều này cũng áp dụng cho các lập trình viên. Để có được kiến ​​thức và sau đó là một công việc, một chuyên gia tương lai phải có những tài năng sau:

  • có tư duy không chuẩn mực, tốt nhất là kỹ thuật,
  • hiểu hệ thống thông tin và logarit,
  • hãy nhanh chóng và di động,
  • có trí nhớ tốt
  • có khả năng diễn đạt suy nghĩ một cách rõ ràng,
  • hãy siêng năng, thu thập và chú ý,
  • có thể giải quyết các vấn đề phức tạp với trọng tâm là kỹ thuật.

Ngoài ra, lập trình viên phải có thị lực tốt, nhưng trong những trường hợp như vậy, với kiến ​​​​thức tốt, bạn có thể đeo kính hoặc tròng kính.

Ưu và nhược điểm của nghề

Giống như bất kỳ ngành nghề nào, chuyên ngành lập trình đều có những ưu điểm và nhược điểm. Ưu điểm chính của nghề là nhu cầu cũng như thu nhập cao. Kỹ thuật viên CNTT là một vị trí rất được ưa chuộng, sự đa dạng của công việc cho phép nhân viên tương lai lựa chọn hướng đi cũng như nơi làm việc (trong hoặc ngoài nước).

Tuy nhiên, việc trở thành một lập trình viên vẫn có những nhược điểm sau:

  1. Cạnh tranh cao. Những vị trí tốt nhất sẽ được đảm nhiệm bởi những người hiểu rõ nghề nghiệp của mình.
  2. Cần có sự kiên trì và siêng năng. Không phải mọi người đều có thể ngồi hàng giờ liền để phát triển một chương trình hoặc giải một thuật toán.
  3. Bạn cần phải nghiên cứu rất nhiều và liên tục cập nhật nền tảng kiến ​​thức của mình, bởi thế giới công nghệ không đứng yên, và để trở thành người đi đầu trong lĩnh vực kinh doanh của mình, bạn cần không ngừng phát triển.

Hầu hết các nhà tuyển dụng đều yêu cầu bằng chứng về kiến ​​thức, vì vậy trong mọi trường hợp, việc đào tạo là cần thiết; ít nhất bạn có thể tham gia các khóa học ngắn hạn.

Bất chấp những nhược điểm hiện có, những lợi thế phần lớn lớn hơn. Bạn có thể thử liên hệ với các tổ chức khác nhau, đăng sơ yếu lý lịch của mình lên, sẽ có nhà tuyển dụng cho mọi lập trình viên.

Tìm việc ở đâu?

Kỹ thuật viên CNTT nói chung là một nghề đa ngành. Mặc dù thực tế là, theo thống kê, có 15 công nhân trên 1 nơi làm việc, nhưng bạn vẫn có thể có được một vị trí dưới ánh nắng mặt trời. Tất cả đều phụ thuộc vào kỹ năng và sự quyết tâm của mỗi người, bởi nếu ngồi không làm gì thì khó có thể đạt được chức vụ cao.

Mỗi chuyên gia tương lai trước tiên phải tự mình quyết định xem mình muốn gì. Rốt cuộc, bạn không chỉ có thể làm việc và đến văn phòng 5 lần một tuần mà còn có thể trở thành một lập trình viên tự do hoặc người làm việc tự do.

Nếu sự lựa chọn thuộc về một công ty, thì điều đầu tiên bạn cần làm là viết sơ yếu lý lịch. Nó sẽ chỉ ra:

  • các kỹ năng hiện có, ngay cả khi không có tài liệu hỗ trợ,
  • giáo dục,
  • kinh nghiệm,
  • kỹ năng bổ sung,
  • bản tính.

Nhiều nhà tuyển dụng khi nhìn thấy một nhân viên có triển vọng thậm chí có thể không quan tâm xem người đó có bằng cấp hay không. Ở đây không chỉ kiến ​​thức quan trọng mà một lập trình viên còn phải có nhiều phẩm chất đa năng, đó là lý do tại sao việc phát triển bản thân lại quan trọng đến vậy.

Nếu "bơi tự do" được chọn thì bạn cũng cần phải thử. Ưu điểm chính của người làm việc tự do là trong hầu hết các trường hợp, nhà tuyển dụng không yêu cầu tài liệu cũng như quyền tự do lựa chọn công việc. Bạn có thể độc lập tìm kiếm các dự án, thông số kỹ thuật và thực hiện chúng ở bất kỳ nơi nào thuận tiện. Nhưng vẫn còn một điểm trừ - công việc như vậy không ổn định và không đảm bảo. Chọn con đường nào là tùy mỗi người quyết định.

Lương lập trình viên

Như đã đề cập, lập trình viên là một nghề mang lại nhiều lợi nhuận. Tuy nhiên, nhiều người vẫn quan tâm đến câu hỏi lập trình viên kiếm được bao nhiêu? Mức lương phụ thuộc vào trình độ của chuyên gia, cũng như nơi anh ta làm việc. Ở các thành phố lớn, các chuyên gia làm việc trong những công ty tốt và luôn có chỗ cho tất cả mọi người. Đối với các thành phố nhỏ hơn, mức lương ở đây thấp hơn nhưng tương ứng với mức sống.

Khi chọn nơi làm việc, bạn cần chú ý đến tầm quan trọng của việc lập trình trong công ty, điều này ảnh hưởng đến mức lương mà lập trình viên sẽ nhận được trong tương lai.

Để trở thành một nhân viên CNTT, bạn cần phải có tính cách mạnh mẽ, có khả năng đưa ra các quyết định sáng suốt của riêng mình, bảo vệ chúng, đồng thời phải kiên nhẫn và có mục tiêu. Tất cả những phẩm chất này sẽ giúp bạn thăng tiến hơn nữa và trở thành một lập trình viên hạng nhất.

Lập trình viên là chuyên gia phát triển các thuật toán và chương trình máy tính dựa trên các mô hình toán học đặc biệt. Nghề này đầy hứa hẹn và có nhu cầu lớn trên toàn thế giới (giá trị trung bình). Bạn có thể trở thành lập trình viên ở mọi lứa tuổi. Nghề này phù hợp với nam và nữ có sở thích về lập trình, toán học, ngôn ngữ cũng như kỹ năng phân tích tốt và logic phát triển (bạn có thể vượt qua bài kiểm tra để xem mình có thể trở thành lập trình viên không). Cũng có những trường dạy lập trình, nhưng bạn có thể tự học; theo quy định, những lập trình viên có kỹ năng sẽ được đánh giá cao hơn. Hiện hữu . Nghề có cái riêng của nó. Nghề phù hợp với những người yêu thích khoa học máy tính (xem phần chọn nghề dựa trên sở thích các môn học ở trường).

Đẳng cấp

Trong lập trình, không chỉ kỹ năng thực hành được đặt lên hàng đầu mà còn cả ý tưởng của chuyên gia. Lập trình viên có thể được chia thành ba loại tùy thuộc vào chuyên môn của họ:

  1. Lập trình viên ứng dụng Họ chủ yếu tham gia vào việc phát triển phần mềm ứng dụng - trò chơi, chương trình kế toán, biên tập viên, tin nhắn tức thời, v.v. Lĩnh vực công việc của họ cũng bao gồm việc tạo ra phần mềm cho hệ thống giám sát video và âm thanh, hệ thống kiểm soát truy cập, hệ thống chữa cháy hoặc báo cháy, v.v. Trách nhiệm của họ cũng bao gồm việc điều chỉnh các chương trình hiện có cho phù hợp với nhu cầu của một tổ chức hoặc người dùng cụ thể.
  2. Các lập trình viên hệ thống phát triển hệ điều hành, làm việc với mạng và viết giao diện cho các cơ sở dữ liệu phân tán khác nhau. Các chuyên gia trong lĩnh vực này nằm trong số những người hiếm nhất và được trả lương cao nhất. Nhiệm vụ của họ là phát triển các hệ thống phần mềm (dịch vụ) để điều khiển hệ thống máy tính (bao gồm bộ xử lý, thông tin liên lạc và các thiết bị ngoại vi). Danh sách các nhiệm vụ cũng bao gồm việc đảm bảo chức năng và hoạt động của các hệ thống đã tạo (trình điều khiển thiết bị, bộ tải khởi động, v.v.).
  3. Các lập trình viên web cũng làm việc với mạng, nhưng trong hầu hết các trường hợp, với mạng toàn cầu - Internet. Họ viết các thành phần phần mềm của trang web, tạo các trang web động, giao diện web để làm việc với cơ sở dữ liệu.

Đặc điểm của nghề nghiệp

Dựa trên việc phân tích các mô hình toán học và thuật toán để giải các bài toán khoa học, kỹ thuật và sản xuất, lập trình viên phát triển các chương trình thực hiện công việc tính toán. Xây dựng sơ đồ tính toán các phương pháp giải bài toán, dịch các thuật toán giải sang ngôn ngữ máy hình thức hóa. Xác định thông tin được nhập vào máy, khối lượng của nó, phương pháp giám sát các hoạt động do máy thực hiện, hình thức và nội dung của tài liệu nguồn và kết quả tính toán. Phát triển các bố cục và sơ đồ để nhập, xử lý, lưu trữ và xuất thông tin, tiến hành kiểm tra các chương trình tại bàn.

Xác định một tập hợp dữ liệu cung cấp giải pháp cho số lượng điều kiện tối đa có trong một chương trình nhất định. Tiến hành gỡ lỗi các chương trình đã phát triển, xác định khả năng sử dụng các chương trình làm sẵn do các tổ chức khác phát triển. Phát triển và thực hiện các phương pháp tự động hóa lập trình, chương trình tiêu chuẩn và tiêu chuẩn, chương trình lập trình, trình dịch, ngôn ngữ thuật toán đầu vào.

Thực hiện công việc thống nhất và điển hình hóa các quy trình tính toán, tham gia tạo danh mục và thẻ của các chương trình tiêu chuẩn, phát triển các dạng tài liệu được xử lý bằng máy, trong công việc thiết kế để mở rộng phạm vi ứng dụng công nghệ máy tính.

Ưu và nhược điểm của nghề

Ưu điểm:

  • thanh toán lợi nhuận cao;
  • nhu cầu chuyên gia tương đối cao;
  • đôi khi bạn có thể kiếm được việc làm mà không cần có trình độ học vấn cao hơn;
  • chủ yếu là một nghề sáng tạo.

Nhược điểm:

  • bạn thường phải giải thích rất nhiều điều tương tự, vì những gì rõ ràng và hiển nhiên đối với người lập trình không phải lúc nào cũng rõ ràng và hiển nhiên đối với người dùng;
  • làm việc trong tình trạng khẩn cấp (đôi khi) trong tình huống căng thẳng;
  • Nghề này để lại dấu ấn riêng trong tính cách mà không phải ai xung quanh cũng thích.

Nơi làm việc

  • Các công ty CNTT và studio web;
  • Những trung tâm nghiên cứu;
  • các tổ chức bao gồm trong cơ cấu của họ một đơn vị nhân viên hoặc các bộ phận lập trình viên.

Những phẩm chất quan trọng

Lập trình là một lĩnh vực phát triển nhanh chóng, vì vậy lập trình viên phải có khả năng thích ứng nhanh với tình trạng công nghệ hiện tại và không ngừng học hỏi các công nghệ mới. Vì vậy, khả năng tự học là một trong những kỹ năng chính mà một lập trình viên phải có. Nếu không, trong một vài năm nữa, giá trị chuyên gia của anh ấy sẽ thấp hơn đáng kể.

Trình độ tiếng Anh ở mức độ đọc tài liệu kỹ thuật là một yêu cầu bắt buộc khác đối với người đại diện của nghề này. Đối với những chuyên gia như vậy, khả năng làm việc theo nhóm, trong các dự án lớn, với các công cụ phát triển tập thể và với hệ thống tài chính lớn (ngân sách, ngân hàng, kế toán quản trị) là rất quan trọng. Đối với những ứng viên cho vị trí lập trình viên trưởng, cần có kỹ năng quản lý dự án và nhóm, tính độc lập, chủ động cũng như khả năng chịu trách nhiệm cá nhân đối với nhiệm vụ được giao.

Đào tạo lập trình viên

Học viện máy tính STEP là một tổ chức giáo dục quốc tế giảng dạy . Hoạt động từ năm 1999. 42 chi nhánh tại 16 quốc gia. Trung tâm đào tạo ủy quyền lớn nhất của Microsoft, Cisco, Autodesk. Học sinh nhận được chứng chỉ quốc tế và bằng tốt nghiệp quốc tế. Mục tiêu chính là việc làm của mỗi sinh viên tốt nghiệp.

Trong khóa học này, bạn có thể đạt được nghề lập trình viên từ xa sau 1-3 tháng. Bằng tốt nghiệp bồi dưỡng chuyên môn do nhà nước cấp. Đào tạo theo hình thức học tập hoàn toàn từ xa. Cơ sở giáo dục lớn nhất về giáo dục chuyên nghiệp bổ sung. giáo dục ở Nga.

Lương

Lập trình viên là một trong những nghề phổ biến và được trả lương cao nhất ở Nga. Ngay cả những chuyên gia kém tiên tiến nhất cũng có thể tìm được một công việc phù hợp với trình độ hiểu biết của mình, sau đó dần dần học hỏi và tích lũy kinh nghiệm. Mức lương của thực tập sinh là khoảng 1000 USD. Một lập trình viên toàn thời gian ở một công ty cấp trung (không phải CNTT) kiếm được tới 1500-1800 USD, nhiều hơn một chút trong một tổ chức liên quan đến phát triển phần mềm đại chúng. Mức lương của lập trình viên chính là 2500-3000 USD. Người tiếp theo là trưởng phòng CNTT. Kiến thức cần thiết được bổ sung bằng kinh nghiệm làm việc bắt buộc, trình độ ngoại ngữ, kỹ năng quản lý nhân sự, v.v. và thu nhập có thể lên tới 4.000 USD. Một lập trình viên giỏi có thể trở thành người quản lý một dự án phát triển phần mềm lớn và ở đây mức thu nhập đạt từ 5.000 USD trở lên.

Mức lương tính đến ngày 07/03/2019

Nga 40000—120000 ₽

Matxcơva 50000—170000 ₽

Các bước phát triển sự nghiệp và triển vọng

Một khởi đầu tốt đẹp cho sự nghiệp của bạn có thể là tham gia vào một nhóm lập trình viên khi phát triển một dự án. Các dự án lớn thường thu hút sự chú ý của các công ty phương Tây, những công ty này “trả giá cao hơn” các lập trình viên Nga. Ví dụ: từng có một nhóm các nhà khoa học trẻ của chúng tôi phát triển bộ xử lý Elbrus cho Bộ Quốc phòng, nhưng cuối cùng họ đều được Tập đoàn Intel mua lại, và bây giờ các nhà khoa học và lập trình viên của chúng tôi đang làm việc ở nước ngoài, và bản thân dự án Elbrus cũng dần bị đóng cửa. . Vấn đề “chảy máu chất xám” trong nghề này là một trong những vấn đề gay gắt nhất.

Một lập trình viên có thể phát triển sự nghiệp lên đến trưởng nhóm lập trình viên (trưởng nhóm), giám đốc CNTT của doanh nghiệp, quản lý dự án CNTT, v.v. Trong quá trình làm việc, lập trình viên có thể phát triển trong chuyên môn của mình, nâng cao trình độ chuyên môn.

Lập trình viên nổi tiếng và vĩ đại

Knut Donald Erwin
Matsumoto Yukihiro
Tanenbaum Andrew
Raymond Eric Stephen
Fowler Martin
Hopper Grace
Người bán hàng Richard Matthew
Kay Alan
Meyer Sid
Stroustrup Bjorn

Sự xuất hiện của lập trình như một nghề nghiệp và đặc biệt là một hoạt động chuyên nghiệp khó có thể xác định niên đại một cách rõ ràng.

Thường được coi là thiết bị lập trình đầu tiên, máy dệt jacquard được Joseph Marie Jacquard chế tạo vào năm 1804, đã cách mạng hóa ngành dệt bằng cách cung cấp khả năng lập trình các mẫu trên vải bằng thẻ đục lỗ.

Thiết bị điện toán lập trình đầu tiên, Công cụ phân tích, được thiết kế bởi Charles Babbage (nhưng không thể chế tạo được nó). Vào ngày 19 tháng 7 năm 1843, nữ bá tước Ada Augusta Lovelace, con gái của nhà thơ vĩ đại người Anh George Byron, được cho là đã viết chương trình đầu tiên trong lịch sử loài người cho Công cụ phân tích. Chương trình này đã giải phương trình Bernoulli, biểu thị định luật bảo toàn năng lượng của một chất lỏng chuyển động.

Trong công trình khoa học đầu tiên và duy nhất của mình, Ada Lovelace đã xem xét rất nhiều vấn đề. Một số nguyên tắc chung được cô trình bày (nguyên tắc lưu các ô nhớ làm việc, kết nối các công thức truy hồi với các quy trình tính toán tuần hoàn) vẫn giữ được tầm quan trọng cơ bản của chúng đối với lập trình hiện đại. Tài liệu của Babbage và nhận xét của Lovelace đã phác thảo các khái niệm như thư viện chương trình con và chương trình con, sửa đổi lệnh và thanh ghi chỉ mục, những khái niệm này bắt đầu chỉ được sử dụng vào những năm 1950.

Tuy nhiên, không có chương trình nào do Ada Lovelace viết được tung ra thị trường.

Ada Augusta, Nữ bá tước Lovelace, thường được coi là lập trình viên danh dự đầu tiên (mặc dù, tất nhiên, viết một chương trình duy nhất không thể được coi là một nghề nghiệp hoặc hoạt động chuyên nghiệp theo tiêu chuẩn hiện đại). Lịch sử đã lưu giữ tên của cô dưới tên ngôn ngữ lập trình phổ quát “Ada”.

Máy tính lập trình đầu tiên hoạt động được (1941), các chương trình đầu tiên dành cho nó và cả (với một số hạn chế nhất định) ngôn ngữ lập trình cấp cao đầu tiên Plankalküll được tạo ra bởi kỹ sư người Đức Konrad Zuse.

Lịch sử đã không lưu giữ tên của những người đầu tiên bắt đầu thực hiện công việc lập trình một cách chuyên nghiệp (tách biệt với việc thiết lập thiết bị máy tính), vì lúc đầu lập trình được xem như một hoạt động thiết lập thứ cấp.

Định luật Murphy dành cho lập trình viên

1. Không có gì diễn ra như kế hoạch.

2. Không có gì được lập trình theo cách nó hoạt động.

3. Một lập trình viên giỏi có đặc điểm là có khả năng chứng minh tại sao một nhiệm vụ không thể hoàn thành khi anh ta quá lười để hoàn thành nó.

4. Để giải quyết một vấn đề cần ít thời gian hơn ba lần so với việc thảo luận về tất cả những ưu và nhược điểm của giải pháp đó.

5. Ngày giao hàng đã hứa là ngày hoàn thành dự án được tính toán cẩn thận cộng thêm sáu tháng.

6. Người lập trình luôn biết trình tự hành động mà người dùng có thể treo chương trình của mình, nhưng anh ta không bao giờ khắc phục vấn đề này, hy vọng rằng sẽ không có ai nghĩ đến việc thực hiện trình tự này.

7. Các lập trình viên thực sự yêu thích Windows - mọi sai lầm mắc phải do sự ngu ngốc của bản thân đều có thể đổ lỗi cho Microsoft.

8. Hậu quả - 99% vấn đề đổ lỗi cho Microsoft là hậu quả của sự ngu ngốc của chính các lập trình viên.

9. Trong cơn tức giận, vì lý do nào đó mà mọi người đều đập vào màn hình vô tội thay vì bộ phận hệ thống.

10. Trong trường hợp tuyệt thực, một lập trình viên thực sự sẽ có thể ăn thức ăn lấy ra từ dưới các nút bàn phím trong một tháng nữa.

11. Một lập trình viên thực thụ đã thay thế ít nhất ba bàn phím ướt đẫm bia.

12. Bất kỳ ai gặp vấn đề trong việc thiết lập mã hóa đều tự động được coi là người Neanderthal.

13. Những cuộc trò chuyện nghiệp dư về máy tính gây buồn nôn trầm trọng, thậm chí nôn mửa. Câu hỏi làm thế nào để thay đổi “hình nền” trong Windows khiến người hỏi muốn cắt cổ.

14. Đối với hầu hết những người cần sự giúp đỡ của bạn, nguyên nhân gây ra lỗi trong chương trình hoàn toàn là do di truyền.

15. HTML, HTTP, FTP, SMTP, TCP/IP, RTFM, v.v. Đây là những từ, không phải viết tắt.

16. Cụm từ “chuột-norushka” không có ý nghĩa gì cả.

17. Những vấn đề thần bí nhất, được thổi phồng và quảng cáo rộng rãi, cuối cùng lại trở thành những sai lầm ngu ngốc nhất của bạn.

18. Hệ quả - nếu chương trình của bạn thực hiện các hành động thần bí thì bạn đã làm một điều gì đó cực kỳ ngu ngốc.

19. Cảm giác tồi tệ nhất đối với một lập trình viên là khi có mười người đứng xung quanh bạn và mọi người đang cố gắng tìm ra nguyên nhân của một vấn đề trong chương trình của bạn, còn bạn thì đã hiểu vấn đề là gì nhưng lại ngại nói ra vì đó là một điều gì đó thật ngu ngốc...

20. Giải pháp cho mọi vấn đề trong cuộc sống đều có trên Internet. Bạn chỉ cần có khả năng tìm kiếm tốt.

21. Xung đột giữa các hướng dẫn logic trong cuộc sống gây ra lỗi nghiêm trọng trong công việc của bộ não lập trình viên - có thể xảy ra nhiệt độ tăng cao và chóng mặt nghiêm trọng, bao gồm nôn mửa hoặc mất ý thức.

22. Lập trình viên coi thường những người coi thường lập trình viên hơn những người coi thường lập trình viên coi thường những lập trình viên coi thường những người coi thường họ.

23. Nếu bạn hiểu được điều trước thì bạn là một lập trình viên.

Có 10 loại người trên thế giới này - những người hiểu hệ thống số nhị phân và những người không hiểu nó.

Video: bạn là lập trình viên

Ôi lần, ôi đạo đức. Hôm nay trên Toaster, tôi thấy một chủ đề trong đó một người thừa nhận rằng đang làm nhà phát triển Java, anh ấy biết đại số và hình học ở cấp lớp 6 và được yêu cầu giới thiệu sách giáo khoa. Yêu cầu này chắc chắn gợi lên sự tôn trọng - người đó muốn học hỏi.

Bắt đầu lại. Tôi học ở một trường vật lý và toán học tốt vào những năm 90. Đọc giữa dòng - theo chương trình của Liên Xô. Lẽ ra tôi đã kết thúc ở đó, bởi vì không phải ai cũng học ở một trường vật lý và toán học tốt theo chương trình của Liên Xô, điều đó có nghĩa là theo định nghĩa thì tôi cực kỳ mất liên lạc với mọi người. Và tôi chắc chắn không hiểu bất cứ điều gì trong cuộc sống.

Đúng vậy, chúng tôi bắt đầu viết mã từ năm lớp ba, và đó không phải là Hogwarts, không phải là phòng thí nghiệm để bơm những cái đầu trứng - tất cả chúng tôi đều là những chàng trai và cô gái bình thường trong vùng. Rất ít người có máu kỹ thuật và khoa học. Chúng tôi đã có môn toán tuyệt vời. Và cả công việc thú vị, giáo dục thể chất và lịch sử. Mọi thứ đều thấm nhuần tính hệ thống. Ở trường bạn có biết rằng lịch sử là một môn khoa học, được hệ thống hóa, chứa đầy logic nội tại, được trình bày dưới dạng bảng biểu và kết luận? Biết rằng điều này là đúng. Bạn có biết rằng tiếng Nga được mô tả chặt chẽ đến mức hầu hết mọi tình huống trong đó đều có thể được giải quyết bằng thuật toán không?

Ở trường trung học, chúng tôi học toán chăm chỉ đến mức có thể nghỉ học vài môn ở trường đại học. Nhân tiện, đó là nơi nhiều người bị bỏng. Và không, họ không phải là thiên tài, bộ não của họ hoạt động rất tốt, sự phân bổ điểm số cũng giống như mọi nơi khác - học sinh dở, học sinh kém, học sinh giỏi, mọt sách. Đúng vậy, những người mọt sách là những thiên tài. Các sinh viên của trường vật lý và toán học không thích những người mọt sách cũng như không phải nơi nào họ cũng được yêu thích. Điều đó một lần nữa chứng tỏ chúng tôi không hề đặc biệt. Điều này rất quan trọng cho cuộc thảo luận tiếp theo.

Trong các bài học khoa học máy tính, chúng tôi đã giải các bài toán tương tự từ matan - tìm ra gốc của phương trình, xây dựng đồ thị. Chúng tôi đã nghiên cứu cấu trúc cơ bản của ngôn ngữ - kiểu, cấu trúc dữ liệu, thuật toán, làm việc với bộ nhớ, có một chút Delphi và OOP. Tất nhiên, chủ yếu là Pascal. Để phát triển chung đã có C và Trình biên dịch mã. Cơ sở dữ liệu cuối cùng có chút choáng ngợp, tất nhiên là đã được chuẩn hóa. Chúng tôi học đại số nhị phân và làm những trò chơi vui nhộn.

Và không phải ai cũng trải qua điều này; lớp học được chia thành Lập trình viên và Người dùng. Người dùng đã học HTML và Photoshop và vượt qua trang web.

Và chúng tôi luôn biết rằng chúng tôi không phải là lập trình viên, chúng tôi là những cậu học sinh. Lập trình viên là những người viết sách. Đây là những người tạo ra hệ điều hành và phần mềm thực sự. Chúng tôi tin rằng để trở thành Lập trình viên, bạn phải dịch chuyển tức thời đến IBM hoặc Microsoft. Và bạn thậm chí không thể nghiên cứu hàm liên tục một cách chính xác - bạn đang đi đâu vậy?

Chuyện xảy ra là tôi bắt đầu tiếp xúc với lập trình hơn 10 năm sau khi tốt nghiệp ra trường. Mọi thứ đã thay đổi - trang web xuất hiện, một loạt các từ và tên lạ. Tôi biết chắc chắn rằng những thiên tài này - Những lập trình viên tạo ra sản phẩm thương mại, đã đi rất xa, đến một số thế giới vũ trụ song song, nơi mà tôi sẽ không bao giờ có được họ. Rằng tôi sẽ đến gặp họ và họ sẽ nói với tôi: “Anh ơi, anh muốn loại blog nào bằng PHP? Hãy để tôi tổ chức một mảng động thông qua đệ quy, sau đó chúng ta sẽ nói chuyện.”

Và nó công bằng. Suy cho cùng, tôi biết chắc rằng lập trình viên thậm chí không phải là một nghề. Đây là chuyên môn của kỹ sư.

Những nghi ngờ bắt đầu xuất hiện khi trên Toaster, tôi bắt đầu đọc các câu hỏi với tinh thần “Lập trình viên có cần toán học không?” Và câu trả lời theo tinh thần “giải các bài toán thông thường của Landos không cần đến toán học”.

Và bây giờ tôi thấy một nhà phát triển Java yêu cầu tôi giới thiệu một cuốn sách giáo khoa toán học ở trường.
Tôi hiểu rằng khu vực này đang thiếu nhân sự, phạm vi nhiệm vụ đã được đơn giản hóa, ngưỡng đầu vào thấp, v.v. Tôi đồng ý rằng nếu một người làm công việc đó thì anh ta thật tuyệt vời và hãy để anh ta làm việc đó với sức khỏe tốt. Mang lại lợi ích cho xã hội, nuôi sống gia đình, v.v. Tôi không có chút kiêu ngạo nào đối với những nhà phát triển không biết tính toán.

Tôi có một câu hỏi tu từ xì hơi cũ kỹ trong đầu: “Văn hóa thì sao?” Tôi tin rằng câu hỏi này nói chung là quan trọng nhất đối với một kỹ sư tỉnh táo, nhưng đây là một bài viết riêng. Phải chăng sự sáng tạo trong lập trình đã thực sự nhường chỗ cho nghề thủ công đến mức chỉ có thành quả là quan trọng và thậm chí không ai nhắc đến cội nguồn nuôi sống chúng? Làm thế nào mà câu hỏi “liệu ​​một lập trình viên có cần toán học” lại có thể xảy ra với một người? Và danh hiệu Lập trình viên đáng tự hào đã bị hạ thấp và hạ giá đến mức độ nào? Không ai nói về văn hóa lập trình viên à? Hay chúng ta đã đến mức không còn ai hiểu được điều này nữa? Vậy thì bạn sẽ lấy mã lý tưởng mong muốn này ở đâu, nếu không phải từ văn hóa tư tưởng?

Các bạn ơi, hãy nói với tôi rằng tôi là một ông già (ba mươi ba tuổi) già yếu. Hoặc xác nhận rằng thế giới sẽ rơi vào địa ngục nào đó. Tôi đề nghị bắt đầu một cuộc thảo luận sôi nổi trong phần bình luận. Và vẫn chưa có gì rõ ràng...

CẬP NHẬT
Vì vậy, sau chưa đầy một ngày liều mạng bẻ giáo, một bức tranh nào đó đã xuất hiện.
Đây hoàn toàn là kết luận của tôi.
Chúng ta hãy đi qua nó theo thứ tự.
Dành cho những ai đọc bài mà háo hức lao vào chiến đấu, đọc hơn 100 bình luận tất nhiên không phải là thú vui. Đoạn văn sau đây sẽ làm rõ một số điều.

Mục đích của bài viết đầu tiên
Hầu như mọi người đều hiểu sai mục đích của bài viết. Tôi chưa bao giờ tuyên bố rằng một lập trình viên không có toán học là không phù hợp với nghề và sẽ không thể làm việc được. Tôi không đổ lỗi, coi thường hay ném bùn vào bất kỳ ai vì sự thiếu hiểu biết về toán học của họ ở bất kỳ mức độ nào. Nhiệm vụ của tôi là tìm hiểu xem cộng đồng nghĩ gì về văn hóa nghề nghiệp của một lập trình viên theo hình thức mà tôi đã xây dựng nó. Tối thiểu các nhà bình luận đã thu hút sự chú ý đến thực tế này.
Từ đó tôi rút ra kết luận sau đây.

Văn hoá
Theo quan sát của tôi, một bộ phận rất nhỏ độc giả sẵn sàng nhìn nhận từ “văn hóa” như một khái niệm đầy ý nghĩa, đối với họ còn có ý nghĩa hơn việc đi xem kịch hay không khạc nhổ vào người hàng xóm. Điều này không nói lên điều gì xấu về con người, nó chỉ là lời tuyên bố của một số bộ lọc nhận thức. Nếu khái niệm “văn hóa” (giống như bất kỳ khái niệm nào khác) có nội dung phát triển trong tâm trí con người, thì anh ta sẽ phân tích văn bản trong mối liên hệ với toàn bộ khối lượng ý nghĩa mà khái niệm này mang theo và cũng được thảo luận ở cấp độ những ý nghĩa này. Đại đa số các nhà bình luận đã thảo luận với tôi ở mức độ phù hợp về mặt chuyên môn và giải quyết các vấn đề trong sản xuất, câu hỏi nằm trong văn bản gốc Ở TẤT CẢđã không đứng dậy. Nếu bạn đọc lại văn bản một lần nữa, tất cả đều dẫn đến đoạn cuối cùng với câu hỏi “Văn hóa thì sao?” Tiếp theo đoạn văn, các câu hỏi được đặt ra nhằm thể hiện ý nghĩa và nội dung của chủ đề. Cả một đoạn câu hỏi dành riêng cho văn hóa và không ai trả lời về văn hóa.
Tôi kết luận rằng phần lớn các nhà bình luận hoàn toàn không hiểu điều gì đang được thảo luận khi câu hỏi về văn hóa hoạt động nghề nghiệp được nêu ra.
Tại sao?
Tôi có phiên bản của riêng mình, tôi sẽ đưa nó vào cho đa dạng. Trong gần một thế kỷ, mọi người đã được dạy rằng họ là nhân viên sản xuất. Rằng cái riêng tư không đáng kể so với cái công cộng. Rằng vai trò xã hội của anh ấy là nội dung của anh ấy. Văn hóa đó là một bản in phổ biến và các quy tắc ứng xử. Điều gì sẽ xảy ra nếu anh ta thành công với tư cách là một công nhân, sau đó anh ta đã đạt đến đỉnh cao trong quá trình tiến hóa của loài người. Ma trận này sống cuộc sống riêng của nó trong xã hội và vẫn chưa đi đâu cả. Giờ đây, kết hợp với việc thiết lập mục tiêu thị trường trong giáo dục (tôi dạy không phải nhân danh khoa học mà nhân danh việc làm), được thúc đẩy bởi ý tưởng về sự thành công và hiệu quả của cá nhân, bất kỳ công dân có ý thức nào cũng hiểu rằng điều chính yếu là bối rối. trong chủ đề hẹp của bạn và không thấy gì khác. Tốt nhất là bạn nên bắt đầu viết mã sớm hơn khi đi bộ và loại bỏ hoàn toàn môn sinh học và địa lý, vì các giải pháp cấp cao như Google sẽ giải quyết được mọi vấn đề.
Và ở đây chúng ta chuyển sang một vấn đề khác.

Giáo dục
Giáo dục được các nhà bình luận coi là các khóa đào tạo nâng cao. Nếu phát triển ý tưởng đến mức giới hạn, chúng ta thấy rằng việc học ở trường không cần thiết chút nào. Bạn có thể học đọc và viết theo cách này. Và sau đó ngồi viết mã, bởi vì ngay cả các dự án HL++, như cuộc sống cho thấy, cũng có thể được thực hiện mà không cần phải là giáo sư. Google phần còn lại.

Hãy kết hợp những phát hiện để phát triển suy nghĩ của chúng ta.
Thái độ này đối với giáo dục là một thái độ vô văn hóa, như bất kỳ chuyên gia giáo dục nào cũng sẽ khẳng định. Nhưng vì từ văn hóa đối với hầu hết các nhà bình luận không có ý nghĩa gì khác ngoài một lời khen ngợi, và sự thiếu văn hóa không gì khác hơn là một sự xúc phạm, nên khó có thể hiểu chính xác luận điểm này.

Vấn đề thứ hai với giáo dục, và cũng là vấn đề rõ ràng hơn, là các nhà bình luận nhìn chung coi toán học chỉ là một lĩnh vực hoạt động khác. Điều này có nghĩa là, ở mức tối thiểu, toán học được dạy cho các em chủ yếu dưới dạng các phép tính đại số và các công thức phải nhồi nhét. Không giống như khoa học. Bạn có thể dạy toán như một môn khoa học ở lớp một. Nó chỉ có nghĩa là nhấn mạnh lý luận nhất quán hơn là nhồi nhét. Tôi muốn bạn chú ý đến thực tế là TẤT CẢ kiến ​​thức chính xác, bao gồm cả kiến ​​thức ứng dụng, đều dựa trên các công thức chặt chẽ về định nghĩa và mối quan hệ. Mọi lý do đều dựa trên cây if-else. Nếu không có thiết bị này thì thậm chí không thể viết được html. Nó được xây dựng trong tất cả chúng ta bởi vì chúng ta thuộc về một xã hội vận hành với một bộ máy như vậy. Toán học là người huấn luyện để làm chủ bộ máy này và là chìa khóa để làm việc hiệu quả với những điều trừu tượng ở mọi cấp độ. Xét rằng tất cả các ngành kỹ thuật, bao gồm cả lập trình, đều được xây dựng trên một bộ máy toán học, thật lạ khi gọi nó là một loại hoạt động riêng biệt. Điều này cho thấy sự thiếu hiểu biết đơn giản về vị trí của bạn. Điều này có thể không quan trọng từ góc độ nhiệm vụ công việc, nhưng nó rất quan trọng từ góc độ văn hóa.

Phần kết luận
Mỗi người tự quyết định nên dạy gì hay không dạy gì. Tôi chỉ nhấn mạnh rằng có một khái niệm về văn hóa và nó cũng mở rộng sang cả lập trình. Điều này rất phi lý vì nó cho rằng một người không thể không làm những gì anh ấy không thể làm. Đúng, bạn không thể làm mọi thứ, nhưng trong tình huống này ít nhất có một ý tưởng trong đầu bạn rằng bạn cần phải phấn đấu vì điều này. Từ quan điểm kinh tế của một doanh nghiệp, điều này là vô lý; từ quan điểm phát triển của một cá nhân, đó là một điều cần thiết.

Chỉ những người dùng đã đăng ký mới có thể tham gia khảo sát.

Igor Kotov, giám đốc sản xuất

Gần đây tôi đã đọc một bài báo trên hh rằng lĩnh vực CNTT hấp dẫn nhất trên thị trường Nga. Trong số những ưu điểm, tác giả nêu bật mức lương cao, cơ hội phát triển, khả năng làm việc từ xa và chất lượng công việc. Tuy nhiên, ở những điểm này có nhiều nguyên nhân gây ra nhiều rắc rối cho CNTT Nga. Thị trường CNTT đang rất nóng với những lời mời chào. Bạn thường có thể thấy mức lương cho các nhà phát triển thiết bị di động, giao diện người dùng và các nhà phát triển khác (ở Cộng hòa Tatarstan) vượt quá 100 nghìn rúp. Đồng thời, mức lương trung bình ở Tatarstan chỉ hơn 37 nghìn một chút. Việc tìm kiếm một vị trí thực sự xứng đáng cho một công ty không lớn có thể mất nhiều thời gian và bạn phải liên tục nâng cao mức lương, đưa ra càng nhiều “món quà” càng tốt và một lịch trình linh hoạt hơn. Nhưng ngay cả điều này không phải lúc nào cũng là lựa chọn 100% để tìm được một lập trình viên thực sự đáng giá (xem thêm ở phần bên dưới). Thật không may, việc theo đuổi nhân sự theo thị trường này chỉ được chứng minh trong một tỷ lệ nhỏ các trường hợp. Trong hầu hết các trường hợp, điều này dẫn đến thực tế là các công ty nhỏ không thể theo kịp thị trường và bị ảnh hưởng về mặt chất lượng, để nhân viên nhận được những lời đề nghị hấp dẫn hoặc đang dần chết dần.

Điều này có liên quan gì đến lập trình viên? Vấn đề là, theo tôi, có hai loại lập trình viên: lập trình viên thực thụ và lập trình viên thực thụ.

Trước tiên hãy nhìn vào các lập trình viên. Những người này thường là những người có thành tích xuất sắc, họ làm mọi việc mà các nhà phân tích, Thủ tướng hay các đồng chí cấp cao khác dặn dò hoặc giao nhiệm vụ cho họ. Như một quy luật, lợi thế của họ kết thúc ở đó. Người viết mã không phát triển. Anh ấy tin rằng anh ấy biết đủ để làm công việc của mình. Đồng thời, lập trình viên có thể tham gia vào làn sóng cường điệu và tham gia vào các cuộc thảo luận về công nghệ mới. Nhưng đừng nhầm lẫn một lập trình viên với trình độ cơ sở có điều kiện trong một công ty, điều này ngụ ý một lượng nhỏ kinh nghiệm và kiến ​​thức. Tôi đang xem xét chính xác loại lập trình viên. Một lập trình viên không thể phát triển trên mức trung bình (mức trung bình). Tất nhiên, ngay cả đối với điều này, anh ta cũng cần nhiều thời gian hơn và lực lượng bên ngoài (lãnh đạo kỹ thuật, đồng nghiệp, các khóa đào tạo). Một lập trình viên thường không quan tâm đến việc thử nghiệm sản phẩm của mình. Ông tin rằng một sản phẩm đang hoạt động không thể hỏng nếu nó đã hoạt động một lần. Thật không may, kiểm thử tự động không phải lúc nào cũng có thể “sửa chữa” được người lập trình. Nếu công ty lưu giữ ít nhất một số loại hồ sơ nhiệm vụ thì người lập trình có thể dễ dàng theo dõi số lượng nhiệm vụ được hoàn thành. Bắt đầu nhận ra ai đó? 🙂 Mọi người từ mọi ngành nghề và ở mọi lứa tuổi đều đến với lập trình viên (nhưng điều này không có nghĩa là trong số họ không có lập trình viên chuyên nghiệp, có trình độ học vấn). Điều này gợi nhớ đến người Ấn Độ không coi việc lập trình là thứ gì đó khó khăn và đòi hỏi những kỹ năng nhất định. Do đó, những người làm nghề tự do Ấn Độ giá rẻ nổi tiếng có thể làm bạn ngạc nhiên về “chất lượng” mã của họ. Thường rất khó để xác định một lập trình viên trong một cuộc phỏng vấn vì nó không thể xác định đầy đủ tất cả các kỹ năng và kiến ​​thức cần thiết cho một lập trình viên. Các lập trình viên đã làm rung chuyển thị trường này và không ngại thay đổi công việc N tháng một lần để theo đuổi mức lương cao hơn, lịch trình tự do hơn và nhiều “điều tốt đẹp” hơn. Tại sao chuyện này đang xảy ra? Bởi vì thực sự không có nhiều lập trình viên thực sự. Họ là ai?

Lập trình viên thực sự(NP), đối với tôi, đây là những người, với tâm lý và có lẽ cả tính cách, là những người lý tưởng cho công việc này. NP không bao giờ khoe khoang kiến ​​thức của mình. Họ không ngừng phát triển và nghiên cứu các công nghệ mới (và trong lĩnh vực CNTT, chúng thay đổi rất nhanh). Đặc điểm này của một người nhận thức được sự ngu ngốc của mình và khiến nó có thể thông minh hơn những người khác và không ngừng trưởng thành và phát triển. Một lập trình viên thực sự sử dụng tất cả kiến ​​​​thức của mình để giải quyết một vấn đề, tăng tốc, cải thiện nó chứ không phải để phô trương hay cường điệu. Đây có thể là đặc thù của NP. Đối với họ, việc giải quyết vấn đề tiếp theo không phải là công việc đơn điệu mà là một kiểu trò chơi nội tâm để tìm ra kết quả tối ưu, đẹp mắt và thiết thực. Đôi khi điều này có thể là một vấn đề đối với doanh nghiệp khi những người như vậy “đùa giỡn”, bởi vì bạn thường cần phải làm việc đó một cách nhanh chóng và hiệu quả (ngay cả khi đó là một chiếc nạng). Trong số các NP, bạn thường có thể tìm thấy những người quan tâm đến toán học cũng như các vấn đề Olympic, bởi vì chính trong những lĩnh vực này, người ta có thể tìm kiếm một giải pháp hấp dẫn đến vậy. Thật không may, hoặc may mắn thay, đây là một cách suy nghĩ, một cách sống. Bạn không thể trở thành NP (tôi không biết trường hợp nào như vậy cả). Tôi chỉ gặp hai loại NP: xã hội hoặc ngược lại, những người rất năng động. Những nhân viên này luôn là trụ cột kỹ thuật chính của công ty. Theo quy luật, người sau [hoạt động] trở thành trưởng nhóm, trưởng nhóm kỹ thuật, và một số, phát triển đến một cấp độ nhất định, sẽ đảm nhận vai trò quản lý, trở thành giám đốc kỹ thuật và giám đốc kỹ thuật. các phòng ban. Như tôi đã viết trước đó, nếu lập trình viên đạt trình độ trung cấp thì lập trình viên thực sự không có giới hạn. NP không viết bằng bất kỳ ngôn ngữ lập trình nào; cú pháp và phiên bản IDE không quan trọng đối với anh ta. Anh ấy biết các mô hình và cách tiếp cận sẽ hiệu quả ở hầu hết mọi nơi. Đối với anh ấy, chỉ cần xem xét một vài ví dụ và quy tắc cú pháp là đủ để bắt đầu hiểu và viết mã chương trình. NP không được yêu cầu giải quyết các vấn đề; họ tự đề xuất các giải pháp phù hợp và sửa lỗi.

Bây giờ bạn đã hiểu tôi phân biệt các lập trình viên như thế nào, bạn có thể hỏi vấn đề là gì? Có ít NP hơn nhiều so với lập trình viên, nhưng các công ty cần nhân sự. Điều này dẫn đến thực tế là ngày càng có nhiều người bắt đầu coi mình là lập trình viên, đáp lại mức lương tăng cao và điều kiện tốt. Thật không may, hầu hết các nhân sự không thể phân biệt được lập trình viên thực sự với lập trình viên. Có lẽ điều này chính là do lòng tự trọng khác nhau của các ứng viên được phỏng vấn. Kết quả là, thị trường vốn đã quá nóng đưa ra mức lương ngang nhau cho các lập trình viên và NP. Trình độ của các lập trình viên Nga ngày càng giảm sút. Có thể thấy điều này qua cách các chàng trai của chúng ta được đánh giá cao ở phương Tây. spoiler: thấp hơn trước. Nhiều ứng viên giỏi mơ ước được làm việc cho những gã khổng lồ trên thị trường lớn như Yandex, Google, Microsoft, v.v. và đến đó ngay khi họ phát triển đến mức yêu cầu.

Tất nhiên, chúng ta đang sống trong thế giới thực và không thể nuôi dưỡng hàng triệu Zuckerberg, Gates, Musk và các kỹ sư xuất sắc khác trong ống nghiệm. Tuy nhiên, thế giới hiện đại với tiến bộ công nghệ ngày càng phát triển đòi hỏi các trang web và ứng dụng di động hoạt động nhanh, robot không gặp sự cố, hệ thống lái tự động an toàn trên ô tô, v.v. Tôi khó chịu vì số lượng người ngẫu nhiên trong nghề và bong bóng thị trường CNTT tiếp tục phồng lên. Điều rất thú vị là anh ấy đang cố gắng bắt kịp mức lương của phương Tây, trong khi vẫn để các lĩnh vực khác của cuộc sống ở mức tương tự. Chúng ta sẽ chỉ biết điều gì sẽ xảy ra trong tương lai những năm sau đó. Tôi hy vọng rằng những lập trình viên thực thụ có thể làm cho thế giới trở nên tiên tiến hơn về mặt công nghệ.