Những nền văn hóa phụ lập trình / phần mềm tồn tại? Điều gì định nghĩa chúng? Bạn thuộc về ai? [đóng cửa]


13

Đối với thế giới bên ngoài, các lập trình viên, nhà khoa học máy tính, kỹ sư phần mềm và nhà phát triển có thể giống nhau, nhưng điều đó khác xa với những người tạo ra phần mềm để kiếm sống. Bất kỳ khả năng và kiến ​​thức của bất kỳ lập trình viên nào cũng có thể bao quát rất rộng rãi, cũng như các công cụ của họ (HĐH, ngôn ngữ và vâng, trình soạn thảo ưa thích) và sự đa dạng đó tạo ra nhiều nền văn hóa phụ trong phần mềm - như các lập trình viên tích cực sử dụng Stack Overflow và trang web này, so với nhiều người không.

Tôi tò mò muốn nghe từ những người khác những nền văn hóa phụ mà họ đã gặp, thuộc về, ngưỡng mộ, không thích hoặc thậm chí được tạo ra. Để bắt đầu, tôi đã gặp:

  • Các công ty và nhà phát triển do Microsoft điều hành : toàn bộ ngăn xếp của họ là từ Redmond, WA. E-mail là Outlook là e-mail. Web là IE và IIS. Họ có các ràng buộc lớn của thuê bao MS Developer Network có đầy đủ nhiều phiên bản VB, .net, Visual Studio, v.v. Tránh làm việc với shell / dòng lệnh. Đừng xem những gì ồn ào với nguồn mở và tất cả là như vậy. Các công ty trung tâm MS có xu hướng 9-5 và khá đoàn thể (được điều hành bởi các nhà quản lý doanh nghiệp, không phải người làm phần mềm). Ngày nay (với sự sẵn có rộng rãi của các công cụ không phải MS), đây là phản đề của văn hóa hacker.
  • Những người CS trường học cũ : họ thường biết rất rõ về Lisp và Unix; đôi khi, họ có thể đã tự viết một Lisp bán phổ biến hoặc một tiện ích hệ thống. Rất ít, nếu có, những thứ "công nghệ phần mềm" là mới đối với họ, và họ cũng không bị ấn tượng bởi điều đó. Biết các tài liệu tham khảo, lịch sử và ý nghĩa cấp cao hơn của các ngôn ngữ lập trình như Lisp, C, Prolog và Smalltalk. Có thể cay đắng về kết quả AI của thập niên 80 và 90. Có xu hướng là người dùng Emacs. Có thể gõ các lệnh shell nhiều dòng mà không chớp mắt. Lời khuyên của họ có thể bằng mật mã, nhưng chứa vàng một khi đã hiểu.
  • Các nhà phát triển web trường học mới : chơi với máy tính và trò chơi video lớn lên, nhưng thường chỉ thực sự bắt đầu lập trình vào cuối thập niên 90 hoặc đầu '00. Thoải mái với 1 đến 1,5 kịch bản / ngôn ngữ động; nghĩ rằng C và các ngôn ngữ bên ngoài Ruby / Perl / Python là không cần thiết / ma thuật. Có thể đã coi HTML là lập trình ban đầu. Có xu hướng lấy Mac và cuồng tín / phi lý về nó. Sử dụng các khung nhiều hơn là xây dựng chúng. Thường quá nhiệt tình về NoQuery và / hoặc Ruby On Rails.
  • CS trường học mới : rất nhiều khóa đào tạo về thống kê, mô hình Bayes và suy luận; đừng nói "AI", hãy nói "học máy." Nhiều Java hơn Lisp, nhưng cũng có thể là chuyên gia lập trình Haskell. Nhìn thấy những thành công lớn trong thế giới thực của các chuyên gia trong lĩnh vực của họ (Google, tài chính / người thuê) thường khiến họ (hơn) tự tin. Nhưng dữ liệu lớn, và việc xử lý phân tán như vậy, thực sự đang thay đổi thế giới.

Các ví dụ trên không có nghĩa là hoàn thành, chính xác, trực giao hoặc khách quan. :) Chỉ là những gì tôi đã nhìn thấy cá nhân, và cung cấp để châm ngòi cho một số cuộc thảo luận và phác thảo của câu hỏi rộng hơn. Hãy đồng ý!


1
'Lil' mơ hồ, nhưng nghe có vẻ thú vị.
Rook

6
Tôi nghĩ rằng các câu trả lời cho thấy một điều: câu hỏi đang cố gắng vẽ các đường phân chia rõ ràng, nơi thực sự không có. Chúng tôi đang xử lý khoảng 5 khái niệm trực giao, mỗi khái niệm liên tục và cố gắng phân chia siêu phẳng đó thành các nhóm riêng biệt dễ nhận biết. IMO, đó là một nỗ lực vô vọng.
Jerry Coffin

3
@Jerry Coffin - vâng, đồng ý. Chưa kể rằng một số câu trả lời đang gây khó chịu cho một số "nền văn hóa", IMHO. Tuy nhiên, những câu trả lời này rất hay theo cách mà họ thể hiện những gì ngày nay (lập trình viên? Hoặc ít nhất là cộng đồng này) nghĩ về các cộng đồng khác, tạo thành một phần của cộng đồng này (với một tỷ lệ nhỏ).
Rook

@JerryCoffin Vâng, thưa ông, có những người muốn sử dụng từ "trực giao" và những người không chỉ vì nó phổ biến trên stack trong những thập kỷ gần đây ...
Erik Reppen

Câu trả lời:


12

Tôi tự coi mình là một phần của nhóm Hệ thống thời gian thực . Có một số đặc điểm của 'Trường học cũ' nhưng ít tập trung vào CS, nhiều hơn về phần cứng.

Các nguyên mẫu:

  • Có kiến ​​thức chuyên môn về 'C'
    • Có bản gốc của K & R
    • Viết bằng các ngôn ngữ khác như thể chúng chỉ là một cú pháp thay thế cho 'C'
  • Có thể dự đoán đầu ra của trình biên dịch mã từ mã của họ.
  • Có thể đọc sơ đồ mạch
  • Không biết cách viết mã mà không thực hiện 'tối ưu hóa sớm'.
  • Khá thoải mái với dòng lệnh.

Hấp dẫn, cảm ơn bạn. Tôi đã gặp một số người hệ thống thời gian thực, nhưng không làm việc ở một nơi như vậy nên đã không cố gắng để mô tả văn hóa. Tôi nghĩ rằng nhiều người trong số chúng tôi lập trình viên sẽ gọi các bạn là "những người khó tính". :)
limist

1
Tôi nghĩ nó giống như bất kỳ môn học nào khác - có những "ngôi sao nhạc rock" cốt lõi, và có những tảng đá cũ đơn giản. (Tôi hy vọng tôi ở đâu đó giữa chừng)
AShelly

2
Tôi cũng thuộc nhóm này. Hầu hết các đồng nghiệp của tôi đã "đến" nơi này từ một nền tảng kỹ thuật điện tử, nhưng tôi đã "xuống" từ đó là một nhà phát triển cơ sở dữ liệu / ứng dụng. Bây giờ tôi rất thoải mái trong nhóm này, và đôi khi nền tảng khác nhau của tôi có thể mang lại một quan điểm hữu ích khác.
Vicky

1
Ngoài ra, nó có thể là nhận thức của tôi, nhưng cảm giác như phụ nữ thậm chí còn hiếm hơn trong nhóm này so với một số nhóm khác.
Vicky

1
Wow - điều này mô tả tôi gần như hoàn hảo, ngoại trừ tôi không chỉ đọc sơ đồ mạch, tôi còn thiết kế các mạch. Hoạt động trên hệ thống nhúng đầu tiên của tôi (trong PL / M-86) vào cuối những năm 1970.
tcrosley

6

Đừng quên các lập trình viên máy tính lớn. Họ là một nền văn hóa phụ quá.


1
Tôi thích nghe nhiều hơn về văn hóa coder máy tính lớn; Tôi đã gặp rất ít người thậm chí dành nhiều thời gian với máy tính lớn, chứ đừng nói đến việc viết mã cho họ thường xuyên.
limist

1
Đây là những người có mái tóc đáng kính và không thể phân biệt với những người khác mặc đồ công sở. Họ thích COBOL. Đối với họ, không có hệ thống nào ngoài hệ thống / 360.
oosterwal

5

Tôi đại diện cho đội ngũ cô đơn của Delphi Devs dưới 30. Caucus của chúng tôi nhỏ, nhưng trái tim của chúng tôi thì lớn.


Một số đồng nghiệp của tôi là <30.
Toon Krijthe

2
Chà, hãy nói để bắt đầu trao đổi ngăn xếp và chúng ta có thể nói về các tính năng mới, chúng tôi sẽ yêu cầu Johnny Borland cũ thực hiện sau khi bạn sẽ chết ;-)
Peter Turner

4

Tôi đoán rằng có tồn tại một số nền văn hóa bằng cách nào đó sống cùng với nhau sau đó chiến đấu và bằng cách nào đó siêu việt:

  • Hacker / Văn hóa mã nguồn mở : chia sẻ mã, sử dụng tên thật hay không. Tập trung có lẽ vào các công cụ nhỏ giải quyết một vấn đề. Cho phép hack trong chương trình. Ngôn ngữ: C , Lisp , C ++ , Python . Có lẽ trùng lặp với những người CS trường học cũ của bạn .
  • Học thuật : tập trung vào các thuật toán và làm mọi thứ theo cách đúng đắn. Tên thật là phải (dù sao nó cũng xuất hiện trên giấy). Ngôn ngữ: Java , Haskell , ( F # ?)
  • Corportate : tập trung vào các giải pháp (có thể là tất cả mọi thứ). Nếu nguồn mở mà đặt tên là không cần thiết . Ngôn ngữ: Java , C # , VB.net , Ruby .
  • " Trường trung học ": nó hàng hóa nếu nó hoạt động nhưng nó không phải. Tập trung vào các tên như "SuperProgram 1.0 cho Windows XP". (xin lỗi - tôi chưa tìm thấy tên hay nhưng ý tôi là các lập trình viên bắt đầu thành thạo CS và không giỏi về điều đó - ít nhất là chưa). Ngôn ngữ: PHP , VB , Ruby
  • Nhà phát triển web trường học mới : Như trên.

Xin lưu ý rằng:

  • có thể kết hợp các nền văn hóa trong các tổ chức và ở một người. Trong thực tế nó thường làm.
  • Các ngôn ngữ là VÍ DỤ và ví dụ như nhóm "tin tặc" hoạt động trên C # khá lớn. Đây là trò chơi của các hiệp hội, nghiên cứu thực tế, vì vậy xin đừng xúc phạm (vâng - tôi biết rằng có những chương trình tuyệt vời được viết bằng PHP với thực hành gắn kết tốt, v.v. nhưng nó có xu hướng là ngôn ngữ đầu tiên cho nhiều người không ' t biết ví dụ XSS là gì)
  • Tôi không muốn xúc phạm bất cứ ai bằng tên trường trung học. Tôi có nghĩa là nó thường là bước đầu tiên để lập trình thông qua văn hóa này (và hy vọng không kéo dài)
  • Chỉnh sửa: Academia không có nghĩa là người đó ở trong học viện cũng như ở trong học viện không có nghĩa là ai đó thuộc về học viện (mặc dù là nhà khoa học / nhà nghiên cứu sáng chói, v.v.). Nó biểu thị rằng anh ta thích các công cụ mang lại giải pháp rõ ràng, chính xác ngay cả khi nó thiếu hiệu suất / mất nhiều thời gian hơn / ...Văn hóa doanh nghiệp Similarykhông tương đương với các tập đoàn.

Tôi nghĩ hiện tại tôi chủ yếu là Nguồn mở với ảnh hưởng nhỏ của Academia (thụ động).


Tôi chỉ nghĩ về sự chồng chéo nặng nề của văn hóa nhóm CS / học viện hiện đại và các lập trình viên Haskell. Sau khi chơi xung quanh một chút với Haskell, tôi có thể thấy lý do tại sao nó hấp dẫn những người được đào tạo về khoa học chính thức (CS, toán học), và thực sự, tôi thấy Haskell giúp thấy lập trình từ cấp cao hơn.
limist

Chỉ có Java và Haskell trong Học viện? Thế còn Fortran, C, C ++, R, MATLAB, * sh + awk (vâng, tôi biết những người như vậy), Mathematica, Python, LabVIEW? Ngoài ra Haskell có lẽ nên được thay thế bằng "bất kỳ ngôn ngữ chức năng".
mbq

Đó là những ví dụ. Ví dụ BIASED . Như tôi đã lưu ý ngôn ngữ KHÔNG phải là văn hóa cụ thể. Cũng xin lưu ý rằng văn hóa hàn lâm không giới hạn ở học viện và không phải ai trong học viện cũng phải chấp nhận văn hóa học thuật. Mặc dù tôi đồng ý rằng Fotran / C / C ++ / R / Matlab / ... được sử dụng trong giới hàn lâm, chúng không hình thành mối liên hệ mạnh mẽ với nó trong tâm trí của tôi. * sh + awk chắc chắn không phải là học viện (vì văn hóa - người dùng có thể làm việc trong giới hàn lâm và là nhà khoa học sáng chói - đó là điều hoàn toàn khác0.
Maciej Piechotka

1
Tôi nghĩ rằng bạn đang hướng tới các học giả khoa học máy tính.
mbq

2

Tôi thuộc loại trong trại CS Alt.NET/old-school. Tôi làm việc với Microsoft tech (C #, v.v.), nhưng tôi biết rằng có cả thế giới xung quanh tôi, các ngôn ngữ khác, thuật toán, khung, "công cụ dưới mui xe", v.v. Không hoàn hảo, rõ ràng, nhưng đó là một công việc trong tiến trình.


1
Đám đông Alt.NET chắc chắn là một nhóm văn hóa lập trình, và hoàn toàn khác biệt với mô tả của giới hạn về văn hóa do Microsoft điều khiển (nghe có vẻ giống với văn hóa đó giống như một thập kỷ trước so với bây giờ, đối với tôi bây giờ).
Carson63000

2

Tôi hoàn toàn không đồng ý với tuyên bố này về văn hóa nhóm MS: "Đừng xem những gì ồn ào với nguồn mở và tất cả là như vậy - bên cạnh đó, ai cần biết một ngôn ngữ khác? Nói chung, tôi đã tìm thấy những nơi như vậy 9-5 và khá hợp tác (được thúc đẩy bởi các nhà quản lý doanh nghiệp, không phải người làm phần mềm). Phản đề luận về văn hóa hacker. ". Tôi đã làm việc tại hai cửa hàng .Net và môi trường thực sự rất giống hacker. Chúng tôi đã sử dụng nhiều dự án nguồn mở trong công việc của chúng tôi. Trong lựa chọn của tôi, tất cả phụ thuộc vào loại người mà một người làm việc cùng. Nếu họ là nhà phát triển thực sự, họ sẽ liên tục tìm cách cải thiện, phân nhánh. Những công nghệ họ sử dụng là không liên quan.

Đừng quên về văn hóa nhóm Phương pháp Agile kết hợp các nhà phát triển từ các nền tảng khác nhau.


Vâng, những người Agile là một nền văn hóa phụ vào chính họ. Điểm tốt lại. nhà phát triển so với công cụ và tất nhiên trải nghiệm của bạn có thể rất khác với tôi. Từ việc lấy mẫu hạn chế của tôi, tôi chỉ thấy rằng các công cụ định hình các nhà sản xuất khá nhiều.
limist

Tôi đã từng làm việc trong một cửa hàng MS (và thậm chí tôi có thể là một fanboy) nhưng tâm lý tôi đã trải nghiệm là "hãy tìm đến MS trước, nếu nó miễn phí thì hãy sử dụng nó. Nếu không, hãy tìm mọi thứ và mọi thứ có sẵn để đáp ứng nhu cầu . "
Steven Evers

2

Tôi nghĩ rằng sẽ có một số điểm trung gian giữa Old School CSNew School Web Developers .

Theo truyền thống, tôi sẽ coi mình là một "Nhà phát triển web." PHP và Java và các công dân hạng nhất đối với tôi, cùng với HTML / CSS hợp lệ , hợp lý , hợp lệ . Sử dụng SQL và bạn có một bộ kỹ năng mạnh mẽ, tròn trịa.

Chuyển trường học mới sang Script Kiddies và đổi thương hiệu cho Nhà phát triển web .

Script Kiddies - Những người có ít, nếu có, "hiểu biết" về ngôn ngữ. Có xu hướng google để xem hướng dẫn trước khi sao chép / dán mã một cách mù quáng vào vị trí. Thông thường không hiểu đầy đủ cú pháp của nhiều ngôn ngữ.


2

Các học giả thực hiện nghiên cứu sử dụng máy tính, không nghiên cứu về máy tính.

Họ:
- đang viết phần mềm có thể tiêu thụ một lượng không giới hạn của thời gian CPU, bộ nhớ và không gian đĩa để họ quan tâm (hoặc ít nhất là cố gắng để chăm sóc) về hiệu suất, hoặc bằng cách sử dụng công cụ như -O3, time, profilers, memcheck, và bỏ ra hàng giờ nhiều hơn hoặc ít hơn thay đổi ngẫu nhiên mã để thu thập một số tăng tốc hoặc vô thức áp dụng một số thủ thuật thần thoại cho các tập lệnh của họ.
- sử dụng các số thực và biết rằng nó đủ phức tạp để một khoa học riêng biệt có tên là "số" có thể tồn tại.
- thường sử dụng một số ngôn ngữ / thư viện / chương trình lập trình rất cụ thể và rất cuồng tín về nó; chiến tranh ngọn lửa là phổ biến, chủ yếu là về hiệu suất.
- gọi chương trình của họ là "mã" để làm nổi bật rằng họ có giao diện người dùng bị che khuất đến mức chỉ những người sáng tạo của họ biết cách sử dụng nó.
- thường hoạt động trên Linux hoặc ít nhất là sử dụng PuTTY để ssh tới một số máy trạm / cụm Linux.


1
Vâng, tôi cũng ở câu lạc bộ này. Danh sách này là một khởi đầu tốt cho một mô tả về nhà vật lý năng lượng cao điển hình (ý tôi là, nghiên cứu quark, không có quá nhiều cà phê) hoặc nhà thiên văn học làm việc với các công cụ lớn hiện nay.
DarenW

1
Và, vì văn hóa nhóm này quan tâm rất nhiều đến hiệu quả thực tế, có thể lặp lại và cực kỳ hiệu quả, họ thường quan tâm rất ít đến hầu hết mọi thứ đang diễn ra trong thế giới khoa học máy tính, trừ khi phải xử lý song song, các kế hoạch lưu trữ thông minh, HPC và như vậy .
DarenW

@DarenW: Ý bạn là họ quan tâm chút ít đến thế giới khoa học máy tính? Bạn có nghĩa là họ không quan tâm đến thực hành phần mềm tốt và tương tự? Bởi vì tôi sẽ không đồng ý. Quan tâm đến hiệu suất không cần bạn bỏ qua các nguyên tắc kỹ thuật phần mềm tốt.
n1ckp

1

Tôi có lẽ là sự kết hợp giữa những người CS trường học cũcác nhà phát triển web trường học mới : Tôi đã học lập trình bằng cách viết các trang web với PHP, Javascript và SQL, và hiện đang theo học tại trường đại học nơi mọi thứ được thực hiện trong các lệnh nhắc nhở và Emacs trong UNIX.


0

Hãy coi tôi là anh chàng 'trường học cũ'. Tôi chưa bao giờ làm LISP tốt, mặc dù. Emacs? Không, viset -o vitrong vỏ của tôi cho tôi cảm ơn bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.