Tập hợp các kỹ năng mà mọi lập trình viên tốt nghiệp đại học nên có là gì? [đóng cửa]


9

Chúng tôi có một giảng viên thỉnh giảng ở trường, anh ấy tiếp tục nói về những người tốt nghiệp và không đạt đến trình độ kỹ năng mà anh ấy mong đợi. kiến thức về một ngôn ngữ được biên dịch thời gian lớn như Java, C ++ hoặc C #, một ngôn ngữ kịch bản như Python hoặc Ruby, một khung web. Một số kỹ năng khác mà các bạn nghĩ nên cực kỳ quan trọng đối với sinh viên tốt nghiệp là gì?


Tôi giả sử bạn có nghĩa là tốt nghiệp từ một trường đại học?
Michael Shaw

1
@Ptolemy: Ở Hoa Kỳ thuật ngữ đại học là chính xác.
Macneil

1
Một ý chí để đá chính mình trong ass và không học nói tin nhắn văn bản, bạn trẻ chơi chữ! socializedpr.com/ Quảng cáo
Công việc

Câu trả lời:


27

Cho đến nay, tôi sẽ nói một sự háo hức để học hỏi. Đại học không thực sự có ý định cung cấp cho bạn những kỹ năng bạn cần để trở thành một lập trình viên. Nó nhằm dạy cho bạn những kỹ năng bạn cần để học những kỹ năng đó.


Không thể nói nó tốt hơn.
Chris

4

Sinh viên mới tốt nghiệp cần nhiều hơn là một khát khao học hỏi, họ cần một nỗi ám ảnh về việc học, một sự hiểu biết về cách học và một nền tảng vững chắc trong thực tế của phần mềm. Tôi thường không quan tâm những ngôn ngữ bạn biết, nhưng mọi học sinh đều phải:

  1. Hiểu lịch sử . Khoa học máy tính là một lĩnh vực được nghiên cứu kỹ lưỡng, với nhiều vấn đề được giải quyết. Biết được thực tế này mở ra cơ hội học hỏi từ những gì đến trước mắt bạn. Ngay cả khi biết rằng có một lịch sử phong phú để khai thác kiến ​​thức từ nhiều hơn sinh viên tốt nghiệp. Điều này bao gồm những thứ như ký hiệu big-O, lịch sử thuật toán, nguyên tắc của các nhà tiên tri (Knuth, K & R, Hofstdater, v.v.), và các thực tiễn và mô hình thường được chấp nhận.

  2. Biết rằng nó có thể được giải quyết . Tôi luôn ngạc nhiên khi một nhà phát triển bị cản trở bởi một vấn đề. Một phần của việc học để học là nguyên tắc đơn giản rằng các vấn đề luôn dễ dàng được giải quyết. Một khi bạn biết điều này, nó đóng khung suy nghĩ của bạn để tìm một câu trả lời lành mạnh.

  3. Hiểu được sự phân hủy . Không chỉ có thể giải quyết vấn đề, mà con đường để làm điều đó cũng đơn giản như chia rẽ và chinh phục. Giảm một vấn đề xuống các thành phần đơn giản hơn và câu trả lời của bạn sẽ luôn luôn xuất hiện.

  4. Biết cách đo lường . Ngoài việc có thể phân tách các vấn đề, các nhà phát triển mới cần biết cách thu thập thông tin về các vấn đề này. Bao lâu? Lớn bao nhiêu? Nhanh như thế nào? Bao nhiêu? Sự thật đơn giản là một bước để hiểu và suy nghĩ khách quan. Đưa ra các giả định mà không có sự thật là một cách dễ dàng để bị lạc trong không gian vấn đề.

  5. Hãy khách quan . Tất cả các vấn đề có thể được phân tách, đo lường và hiểu một cách đơn giản. Các vấn đề không thể hiểu chỉ đơn giản là yêu cầu phân tách, đo lường và hiểu thêm. Không có ích gì trong việc tức giận hoặc thất vọng, cũng không hữu ích để tranh luận về các lý thuyết hoặc đổ lỗi. Bất kỳ hành vi hoặc niềm tin phi lý nào liên quan đến quá trình giải quyết vấn đề đều là chất độc, khiến cho các giải pháp rất khó tìm thấy.

  6. Thích các mẫu và nguyên tắc . Bạn sẽ gặp hàng tá cách đúng đắn để làm mọi thứ, ngôn ngữ, mô hình lập trình, kiến ​​trúc máy tính và thậm chí cả phương pháp kỹ thuật. Không có cách duy nhất đúng, nhưng có những khái niệm cơ bản vững chắc mà bạn có thể áp dụng nhiều lần. Tìm hiểu để xem các mẫu này, vì chúng sẽ hướng dẫn việc học và suy nghĩ của bạn từng bước trên đường đi.


1
  1. Một niềm đam mê lập trình tốt
  2. Khiêm tốn
  3. Khả năng học hỏi những điều mới một cách nhanh chóng

0

Là một nhà tuyển dụng, tôi sẽ chỉ tuyển dụng những người làm lập trình viên:

  1. Có kinh nghiệm bước đơn thông qua mã.
  2. Có thể chọn một người cha thiết kế phù hợp để giải quyết một vấn đề cụ thể đơn giản.
  3. Có thể thực hiện mã phản ánh thiết kế cha đã chọn của họ.

Theo kinh nghiệm của tôi, ít hơn 5% sinh viên tốt nghiệp ngành khoa học máy tính xin việc lập trình thực sự có những kỹ năng này, ở mức độ cơ bản. Đây là những kỹ năng tối thiểu cần thiết để có ích về mặt thương mại và quan trọng là không phải ai cũng có khả năng học những kỹ năng này.

Những điều tốt đẹp khác là:

  • Kinh nghiệm làm việc trong một dự án nhóm
  • Sử dụng kiểm soát nguồn
  • Kinh nghiệm kiểm tra đơn vị

Những điều này làm cho sự tích hợp của họ với nhóm phát triển hiện tại dễ dàng hơn, nhưng là những môn học thường có thể được dạy trong công việc.


0

Tôi đã từng có một đội mà tôi "kế thừa" với các nhân viên mới tốt nghiệp và tôi có kinh nghiệm rằng những người đã lập trình thực sự "tiếp theo" đến đó để học (để kiếm thêm tiền) là những thành viên trong nhóm có khả năng nhất. Do đó kinh nghiệm là chìa khóa và nó không quan trọng bằng ngôn ngữ nào.

Tuy nhiên, nếu bạn tìm kiếm những gì nhà tuyển dụng đang tìm kiếm (tại tất cả các trang web tuyển dụng phổ biến như jobserver.com, v.v.), thật thú vị khi quan sát rằng có rất nhiều yêu cầu về C ++, C #, Java nhưng cũng có những người khác đang tìm kiếm và những thứ "kỳ lạ" như COBOL vẫn còn ở đây.


0
  1. Kỹ năng giao tiếp và giao tiếp
  2. Phương pháp thực dụng (không phải lý thuyết hàn lâm)
  3. Khả năng suy nghĩ như một khách hàng không thiên về kỹ thuật
  4. Khả năng đánh giá những gì quan trọng / và những gì có thể bị coi thường, về mặt chi phí / lợi ích
  5. Khả năng làm việc trong một đội
  6. Khả năng tư duy chiến lược: kiến ​​trúc, extensibiliy, khả năng mở rộng
  7. Cởi mở để chấp nhận rằng các giáo lý đại học ít liên quan đến thế giới thực (phụ thuộc vào đại học - một số giá vé tốt hơn về điều này).

Quá trình học tập trong nghề này không bao giờ kết thúc. Người ta phải không ngừng học hỏi và cải thiện bản thân, nếu không, anh ta "lột xác" khỏi trò chơi thật nhanh.


Đây là tất cả hữu ích. Tuy nhiên, hầu như không có sinh viên tốt nghiệp đại học nào có chúng, và chúng không quan trọng, vì hầu hết đều dễ dàng có được ở nơi làm việc. Tôi nghĩ rằng bạn đã trả lời một câu hỏi khác nhau.
dbkk

@dbkk - Tôi xin lỗi, nhưng câu hỏi không phải là "lập trình viên tốt nghiệp kỹ năng gì" mà là "những gì ... nên có". Ngoài ra, không, chúng không dễ dàng có được. Hoàn toàn ngược lại - thường xuyên hơn không, những người có nhiều năm kinh nghiệm vẫn còn thiếu hầu hết trong số họ.
Rook

1
Đây là những kỹ năng chung và nhiều thứ không thực sự phù hợp để học ở trường.
David Thornley

-1

Các câu trả lời khác là tốt, nhưng tôi muốn nói rằng kỹ năng bị bỏ qua số 1 trong trường đại học dường như là kỹ thuật phần mềm thực tế .

Các lớp cơ bản để dạy OOP và một ngôn ngữ như Java là tuyệt vời, nhưng trong năm thứ 3 và thứ 4 tại sao sinh viên (ít nhất là tại trường đại học địa phương của tôi) viết trình biên dịch và hệ điều hành thay vì học cách xác định và tạo ra một kiến ​​trúc tốt, làm thế nào để phân tích các yêu cầu và tạo từ đó một danh sách các thông số kỹ thuật và có lẽ quan trọng nhất là sự khác biệt giữa mã tốt hoạt động và mã xấu hoạt động.

Nó giống như các trường đại học của chúng tôi gần như muốn tạo ra các lập trình viên thay vì các kỹ sư phần mềm . Tôi sẽ không bao giờ thuê ai đó không thể hiện một số kỹ năng / tài năng trong kỹ thuật.


4
Bởi vì những gì mọi người được dạy là khoa học máy tính, không phải kỹ thuật phần mềm. Vấn đề này sẽ biến mất nếu các trường đại học và sinh viên nhận ra rằng khoa học máy tính! = Kỹ thuật phần mềm, khoa học máy tính là một khoa học, khoa học máy tính không phải là về lập trình, và công nghệ phần mềm không chỉ là lập trình.
Thomas Owens

-1. Tìm hiểu cách mọi thứ hoạt động dưới mui xe (trình biên dịch, hệ điều hành, ngôn ngữ lắp ráp, v.v.) rất quan trọng ngay cả khi bạn không bao giờ thực sự làm việc ở cấp độ này, bởi vì bạn sẽ phải đối mặt với sự trừu tượng bị rò rỉ tại một số điểm.
dsimcha

@dsimcha, nếu bạn tin điều đó, bạn có một cái nhìn rất hẹp về loại kỹ sư phần mềm nào đang được các công ty sử dụng ngay bây giờ trong thế giới thực. Không phải những thứ đó không thêm bất kỳ giá trị nào - đó là chi phí cơ hội của việc không dạy thứ gì đó thiết yếu hơn.
Nicole
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.