Tại sao một bằng cấp khoa học máy tính quan trọng đối với một lập trình viên chuyên nghiệp? [đóng cửa]


63

Tôi có bằng về khoa học máy tính. Nó đã được tuyệt vời để mở cửa, nhận được một công việc. Theo như giúp tôi trong lĩnh vực lập trình C # .NET chuyên nghiệp (nền tảng và ngôn ngữ phổ biến nhất trong khu vực tôi làm việc nếu không phải là toàn bộ các quốc gia thống nhất trên tay hệ điều hành phổ biến nhất trên thế giới) thì hầu như không hữu ích. Tại sao bạn nghĩ rằng nó giúp bạn như một lập trình viên trong sự nghiệp chuyên nghiệp của bạn (bên ngoài phun ra thuật toán prims để gây ấn tượng với một số người phỏng vấn)?

Trong thế giới thích ứng ngày nay, một bộ óc nhanh nhạy, giao tiếp mạnh mẽ, OO và các kỹ năng thiết kế cơ bản cho phép nhà phát triển viết phần mềm mà khách hàng sẽ chấp nhận. Những kỹ năng này chỉ được lướt qua trong chương trình cs. Trong tâm trí của tôi, đọc một cuốn sách C # 500 trang của Classicalx cung cấp một bộ kỹ năng có thể sử dụng hơn rất nhiều so với 4 năm của các khóa học blaster comp sci math. Nhiều người không đồng ý. Vì vậy, tại sao một mức độ khoa học máy tính quan trọng?


59
"Khoa học máy tính không hơn gì máy tính so với thiên văn học là về kính viễn vọng." - Edsger Dijkstra
Eric Lippert 17/03/2016

4
Ghi nhớ là không đủ. Cần có sự giáo dục để biết cách sử dụng Reg Ex và kinh nghiệm để biết khi nào nên sử dụng nó. Tôi sẽ bao gồm đọc sách như là một phần của giáo dục. Kinh nghiệm liên quan đến công việc hiếm khi khuyến khích bạn làm mọi thứ đúng cách.
Zachary Scott

10
Nó quan trọng khi bạn không có
Aditya P

2
Tôi đã có một 2,8 quá, trung bình khá. Nhưng chúng tôi chủ yếu được dạy C / Java và một số công cụ web, Không có công cụ C #. Dù sao, tôi nghĩ rằng CS là "điều tốt nhất tiếp theo", bởi vì các chương trình 4 năm của CS không thực sự dễ dàng và điều đó cho thấy bạn có thể làm việc chăm chỉ để có được bằng cấp. Tại sao nó không quan trọng? nó giúp bạn có được công việc!

1
@ luis.espinal Tôi đặt câu hỏi về những thống kê đó. Tôi nghi ngờ 70% tất cả các mã là bằng C (nghĩ về tất cả các Fortran, COBOL, PL1 và Rexx im lặng vui vẻ đi xa). Một số nhiều, chắc chắn, nhưng đại đa số, tôi hoài nghi. Có rất nhiều thiết bị nhúng, nhưng số lượng thiết bị nhúng không nói lên điều gì về nguồn gốc. Khi nó được viết cho thiết bị cụ thể đầu tiên, nó thường tốt cho tất cả các thiết bị tiếp theo giống nhau; và có lẽ, rất nhiều được sử dụng lại cho các công cụ phái sinh gần gũi, cho dù trong cùng một dòng sửa đổi sau này, hoặc trong một dòng khác từ cùng một họ sản phẩm.
JustinC

Câu trả lời:


133

Tại sao có bằng khoa học máy tính?:

  • Tôi đã làm việc với một nhà phát triển đã lưu trữ hàng ngàn mục trong HashTable và sau đó chỉ lặp qua các giá trị. Ông không bao giờ truy cập thông qua một hàm băm. Rõ ràng anh ta không biết HashTable hoạt động như thế nào hoặc tại sao bạn sẽ sử dụng một - bằng cấp CS có thể giúp với điều đó.
  • Khi làm việc với các biểu thức thông thường, những người tiếp xúc với lý thuyết tự động cơ bản và ngôn ngữ chính thức có vẻ dễ dàng hơn để giải thích về những gì đang diễn ra và khắc phục sự cố biểu hiện của họ - bằng cấp CS có thể giúp ích cho điều đó.
  • Một nhà phát triển mới từ trường học có thể phân tách các vấn đề trong các tư duy mô hình khác nhau (OO, chức năng, logic) ngay lập tức, trong khi một nhà phát triển không bằng cấp mới cần kinh nghiệm trước khi họ có thể làm điều tương tự.
  • Các trường dạy phức tạp tính toán. Các nhà phát triển không bằng cấp có thể cảm thấy những gì tốt nhất nhưng một sự hiểu biết chính thức đôi khi rất tốt, đặc biệt là khi giải thích kết quả cho đồng nghiệp.
  • Một văn bằng giới thiệu về nhiều mô hình của máy - phần cứng, HĐH, cấu trúc dữ liệu chung, mạng, VM. Với những mô hình này ở phía sau tâm trí của bạn, việc phát triển linh cảm sẽ gặp vấn đề khi có sự cố xảy ra. Một lần nữa, các nhà phát triển không bằng cấp xây dựng các mô hình tương tự nhưng cần có thời gian.
  • Hướng dẫn chuyên môn thông qua bất kỳ kỷ luật nào có thể giúp người học tránh các chủ đề bị bỏ lỡ và bỏ lỡ. Đọc là tuyệt vời nhưng nó không thay thế cho một giáo viên tuyệt vời.

Điều này không có nghĩa là bằng cấp CS là cần thiết để trở thành một nhà phát triển tuyệt vời. Khó khăn. Một số nhà phát triển tốt nhất tôi từng làm việc không có bằng cấp. Một mức độ cung cấp cho bạn một khởi đầu chạy. Vào thời điểm bạn tốt nghiệp, bạn (hy vọng) đã viết một số lượng mã hợp lý bằng nhiều ngôn ngữ và môi trường khác nhau để giải quyết nhiều loại vấn đề. Điều này giúp bạn đạt được 10.000 giờ cần thiết để trở thành một chuyên gia.

Lợi ích thứ hai là nó cho thấy nhà tuyển dụng bạn có thể cam kết thực hiện mục tiêu dài hạn và thành công. Ở nhiều công ty, tôi tin rằng điều đó quan trọng hơn những gì bạn đã học.


4
+1 - Điều này có ý nghĩa. Hướng dẫn chuyên môn có thể đã giúp tôi theo những cách tôi không nhận ra. Tôi vẫn tự hỏi nếu 4 năm giáo dục phổ thông vượt qua 4 năm kinh nghiệm trong ngành, giả sử cả hai nhà phát triển đều có động lực học tập như nhau. Có một mức độ kỷ luật nhất định mà tôi cảm thấy mình không có trước khi có bằng cấp, điều đó chắc chắn được tính cho một cái gì đó.
P.Brian.Mackey 17/03/2016

4
Học thuật ngữ thích hợp và dành nhiều thời gian với những người khác học cùng một tài liệu cũng là những lợi ích đi cùng với mảnh giấy đắt tiền đó.
sal 17/03

65
Mặt khác, tôi đã thấy những người có bằng cấp vẫn thất bại ở hầu hết danh sách này :)
Joel Gauvreau 17/03/2016

1
Gee họ có thể đã nghe nói về lý thuyết đồ thị quá. Điều đó có thể làm cho phân vùng ứng dụng vào máy khách và máy chủ, mạng, DAG và cây đơn giản hơn một chút.
Tim Williscroft

3
@JustinC - Khẳng định của bạn "những người có bằng cấp có xu hướng bảo vệ họ vì bất kỳ lý do gì vì họ có chúng" là một trong những lý do cơ bản mà tôi đặt câu hỏi. Tôi đã nhìn thấy bàn tay phòng thủ vô lý mù quáng này. Điều ngược lại cũng đúng.
P.Brian.Mackey

87

Trong 40 năm, tôi hy vọng .NET và C # sẽ không là gì ngoài một đống mã kế thừa khủng khiếp trên các hệ điều hành lỗi thời.

Nhưng các khái niệm khoa học máy tính cơ bản sẽ sống động như khi Shannon, von Neumann, Knuth, Dijkstra, Hoare, và những người khác đào chúng ra khỏi nền tảng của logic và toán học chính thức ... hơn 40 năm trước.


28
+1 - rất đúng, nhưng trong 40 năm tôi sẽ không chết tiệt.
P.Brian.Mackey 17/03/2016

3
@ P.Brian.Mackey: Tôi đoán rằng sau 10 năm nữa C # sẽ xuất hiện và trong 20 năm nữa, nó sẽ trở thành ký ức và trong 30 năm nữa, nó sẽ yêu cầu các nhà khảo cổ học mã tóc bạc . Những người tự trói mình vào một bộ công cụ nhất định sẽ tự khắc phục chính mình. Tôi đã có may mắn được đọc các bài báo cũ trên phần mềm hệ thống từ cuối những năm 1970 và đầu những năm 1980. Trong số các hệ thống phần mềm đó, rất ít trong radar ngày nay. Có thể 1 hoặc 2 (Unix và Lisp). Mặc dù cơ sở cài đặt ngày nay lớn hơn, tôi hy vọng điều tương tự sẽ xảy ra.
Paul Nathan

4
@ P.Brian.Mackey Hãy nói những gì bạn sẽ làm, nhưng tôi dự định vẫn sẽ đá trong 40 năm nữa và 80 năm nữa nếu tôi có tiếng nói trong vấn đề này.
Matthew Scharley 17/03/2016

2
@Paul Nathan: Để biết thêm quan điểm của bạn, một số nền tảng cơ bản của mưa đá lập trình từ những năm 1930 (ví dụ: en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis ). Tôi tự hỏi nếu / làm thế nào chúng ta sẽ viết mã 80 năm kể từ bây giờ :)
phooji

3
@phooji (tải "legacy-c-sharp-Routines" ...): P
Mark C

37

Tôi sử dụng gần như tất cả các CS tôi đã học ở trường (*) mỗi ngày trong công việc của tôi. Nếu bạn muốn làm việc trong thiết kế ngôn ngữ lập trình, tối ưu hóa công cụ tìm kiếm, phân tích định lượng hoặc bất kỳ lĩnh vực tương tự nào, tôi cho rằng bạn có thể làm điều đó mà không cần bằng cấp liên quan, nhưng có vẻ như rất nhiều thứ phải học trong công việc. Tôi không được giáo dục đặc biệt cho dòng công việc của tôi; nhiều đồng nghiệp của tôi có bằng tiến sĩ về khoa học máy tính và một vài người trong số họ đã từng là giáo sư của CS.

Nhận được bằng cấp của tôi là rất đáng giá cho tôi; nó đã trả cho chính nó rất nhiều lần so với cả bằng đô la và sự hài lòng.

Điều đó nói rằng, tôi hiểu thấu đáo quan điểm của bạn. Hầu hết những người lập trình máy tính đều có công việc không yêu cầu bằng CS; họ yêu cầu, một nền tảng cấp đại học cộng đồng vững chắc trong lập trình thực tế cộng với việc theo kịp các xu hướng công nghiệp hiện tại. Và điều đó tốt. Bạn không cần bằng cấp về sinh học biển để điều hành một cửa hàng cá cảnh thành công và tôi nghĩ rằng các cửa hàng cá cảnh là tuyệt vời. Nhưng thật khó để có một công việc tại Woods Hole nếu tất cả những gì bạn biết làm là nuôi cá vàng.


(*) Tôi có bằng Cử nhân về Toán ứng dụng và Khoa học Máy tính từ Waterloo.


4
Tôi nhớ một trong những giáo sư CS của tôi đã nói điều gì đó với kết quả là chỉ có 2% trong số bạn thực sự có được một công việc mà bạn có thể giải quyết các nguyên tắc khoa học máy tính một cách thường xuyên .
bụi đỏ

15
@el fuser: Thật vậy; Bây giờ, một câu hỏi thú vị mà có lẽ là nguyên nhân của cuộc thảo luận này là mục đích của giáo dục đại học chỉ đơn thuần là đào tạo cho một công việc cụ thể? Tôi không tin rằng nó là. Các trường đại học không phải là trường dạy nghề; chức năng của họ là tạo ra kiến ​​thức thông qua nghiên cứu và đưa sinh viên đến vũ trụ tri thức đó. Rằng điều này có thể cung cấp cho sinh viên các kỹ năng công việc đối với tôi dường như là một tác dụng phụ hơn là một mục tiêu. Tại Waterloo, chúng tôi được thông báo rõ ràng rằng chúng tôi sẽ được dạy lý thuyết, không phải thực hành.
Eric Lippert

1
Mặc dù, việc tạo ra nghiên cứu ban đầu trong môi trường đại học, nói chung và bất kể chương trình nào, hiếm khi xảy ra trước khi vượt quá thời gian đào tạo được gọi là chương trình cử nhân. Nghiên cứu xảy ra trước đó, nhưng nói chung nghiên cứu về vật liệu thực sự mới được dành riêng cho những người trong chương trình thạc sĩ hoặc tiến sĩ. Nói cách khác, bạn thường tránh xa sự khám phá, nhưng hướng tới một số củng cố cho những gì đã biết. Nghiên cứu của trường đại học là về quá trình nghiên cứu hơn là sự phát triển của bất kỳ nhóm kiến ​​thức cụ thể nào. Nghiên cứu tư nhân có một mục tiêu khác nhau.
JustinC

1
Ngày mà các công việc tốt nhất không còn cần bằng cấp là ngày các trường đại học không còn sinh viên để hỗ trợ các chương trình của họ.
P.Brian.Mackey

Làm thế nào thường xuyên sử dụng Anders;)
Matthew Whited

22

Nó quan trọng bởi vì công nghệ không còn tĩnh. Khoa học máy tính là nền tảng cho tất cả các công nghệ kỹ thuật số. Hầu hết các lập trình viên tự học kéo dài chính xác một chu kỳ công nghệ vì họ thiếu các nguyên tắc cơ bản để tồn tại trong một sự thay đổi mô hình chính. Chắc chắn, có những trường hợp ngoại lệ cho quy tắc, nhưng một nền tảng vững chắc trong khoa học máy tính làm tăng đáng kể tỷ lệ sống sót sau một sự thay đổi mô hình chính.


4
Tôi không biết twiddler là gì cho đến khi tôi đọc Coders At Work . Tôi đoán bạn đã sống sót sau một hoặc hai lần thay đổi mô hình và đang nói về kinh nghiệm. :)
Dave Neeley 17/03/2016

3
Tôi không đồng ý. Thật dễ dàng để truy cập các tài nguyên dạy các khái niệm cơ bản trực tuyến (và rất bổ ích để có thể tự mình tìm thấy chúng). Ví dụ, acadearth.org/subjects/computer-science là một nơi tốt để bắt đầu. Thông tin chi tiết về các mẫu kiến ​​trúc mới hơn có sẵn để nghiên cứu, xem chromium.org/developers/design-document/ . Thông thường, các tài liệu trực tuyến miễn phí tốt hơn và cập nhật hơn nhiều so với những gì bạn mong đợi từ một trường đại học địa phương.
Evan Plaice

13
Tôi nghĩ rằng bạn đã có nó chính xác ngược. Một lập trình viên không bao giờ được học. Các lập trình viên tự học đã thể hiện khả năng tiếp thu kiến ​​thức mà không cần thiết lập chính thức, thời hạn áp đặt bên ngoài, v.v ... đó chính xác là những gì người ta cần để tồn tại thay đổi trên thị trường.
Bùn

2
(tiếp) Nếu bạn đang nói về sự thay đổi mô hình phần mềm ... Sự thay đổi mô hình nào? OOP không chính xác mới, cũng không phải là lập trình chức năng. Cơ sở dữ liệu đã có từ rất lâu. Số dấu phẩy động đã được chuẩn hóa từ năm 1985 (IEEE 754). Sự thay đổi lớn duy nhất tôi thấy là sự chuyển đổi sang các hệ thống xử lý phân phối (các hệ thống được kết nối mạnh mẽ mở rộng so với các chương trình và tận dụng nhiều nền tảng phần cứng cốt lõi) và chuyển sang bộ ký tự quốc tế được tiêu chuẩn hóa (UTF-8); cả hai điều đó không thực sự được đề cập trong compsci.
Evan Plaice

2
@Mud và Evan: Tôi đoán rằng bạn đã bỏ lỡ phần "Chắc chắn, có ngoại lệ cho quy tắc" trong bài đăng của tôi. Tôi giả sử rằng cả hai bạn đều trẻ và không bị cản trở. Sự năng động đó sẽ thay đổi khi bạn già đi. Tôi đã ở trong lĩnh vực này trong hơn ba mươi năm. Tôi đã chứng kiến ​​rất nhiều lập trình viên tự học bùng cháy sau khi căng thẳng gia đình rơi vào bức tranh, và lượng thời gian mà người ta phải học các nguyên tắc cơ bản theo cách tiếp cận của chính mình. Tôi rất thích có cuộc trò chuyện tương tự này khi cả hai bạn đều ở tuổi 40.
bit-twiddler 18/03

14

Nó phụ thuộc vào những gì bạn muốn làm. Nếu mục tiêu của bạn chủ yếu là lập trình phần mềm kinh doanh lớn, trong đó vấn đề kinh doanh và vấn đề quản lý phức tạp thực tế là phần khó, thì vâng, bằng cấp CS sẽ không giúp được gì nhiều. Tuy nhiên, nếu mục tiêu của bạn là lập trình các công cụ trong đó khó khăn chính là về mặt kỹ thuật, thì bằng cấp CS sẽ hữu ích hơn. (Mặc dù tôi không có bằng CS, vì vậy tôi cảm thấy mình là một kẻ đạo đức giả lớn khi nói điều đó, vì vậy hãy thoải mái thêm "hoặc tự dạy trong các môn học CS".)

Tôi chắc chắn có rất nhiều lập trình viên ngoài kia, những người rất giỏi trong việc quản lý sự phức tạp, lập trình lớn và giải quyết các vấn đề kinh doanh phổ biến, nhưng sẽ hoàn toàn bị mất nếu bạn yêu cầu họ viết bộ cấp phát bộ nhớ, hoặc thư viện song song hoặc thư viện bộ sưu tập, hoặc một hệ điều hành, hoặc một trình biên dịch, v.v ... Tôi chắc chắn điều ngược lại cũng tồn tại ở một mức độ tốt. Cả hai đều có vị trí của họ và xứng đáng được tôn trọng, nhưng bằng cấp CS giúp nhiều hơn về mặt kỹ thuật.


Tại sao? CS là tất cả về việc giải quyết các vấn đề phức tạp, bất kể bản chất của vấn đề là gì. CS sẽ hữu ích ngay cả khi bạn không lập trình gì cả - nó là hậu duệ của một điều khiển học bị lãng quên nhưng vẫn cần thiết.
SK-logic

12

Tôi không nghĩ bằng cấp CS là một chỉ số tuyệt đối cho thấy một người là nhà phát triển phần mềm giỏi. Trên thực tế, tôi bắt đầu sự nghiệp với tư cách là một lập trình viên có bằng toán học, nhưng với khuynh hướng CS mạnh mẽ (toán học và CS được tích hợp trong chương trình học của tôi). Tôi nghĩ rằng có hai lý do tại sao nó quan trọng, nói chung.

1 - Bởi vì các Kỹ sư không phải là Front End cho Tuyển dụng

Nhân sự là người. Và trong khi tôi hình dung nhiều người tròn mắt, tôi nói "cảm ơn trời!" Điều quan trọng hơn - là bạn để các kỹ sư tạo ra các công cụ (hoặc phá vỡ công cụ) hoặc bạn sắp xếp chúng qua 1000 hồ sơ xin việc và thực hiện 1000 cuộc phỏng vấn?

Vì vậy, chúng tôi có nhân sự và nhân sự sàng lọc các ứng viên cho đến khi chúng tôi đến một nhóm quan trọng có thể được các kỹ sư sàng lọc. Người nhân sự đã học theo thời gian rằng có bằng CS là một chỉ số khá mạnh cho thấy ứng viên biết điều gì đó về việc phát triển phần mềm. Hy vọng họ cũng biết rằng viết phần mềm trong 20 năm là một chỉ số tốt để ứng viên có thể viết phần mềm.

2 - Bởi vì có một số loại hệ thống về học về CS thì tốt hơn là không có

CS là một lĩnh vực rộng lớn với rất nhiều điều cần biết. Và nó luôn thay đổi. Những ngày này, tôi có thể nói một cách an toàn rằng 75% các khóa học trong chương trình đại học của tôi đã trở nên không liên quan đến sự nghiệp của tôi. Và rằng khóa học thạc sĩ của tôi từ 5 năm trước đang mất giá nhanh chóng. Nhưng khi tôi bắt đầu, tôi rất vui vì tôi đã trả tiền cho một tổ chức lớn để dạy cho tôi một vài thứ về tổ chức máy tính, mạng, quy trình kỹ thuật phần mềm tốt, thiết kế hướng đối tượng, trình biên dịch và cú pháp / ngữ nghĩa của ngôn ngữ lập trình chính hiện có thể bán được.

Và tôi rất vui vì đó là một môi trường nơi ai đó được trả tiền để giải thích cho tôi khi dự án sách / trang web / lap không rõ ràng.

Và tôi rất vui vì tôi đã truy cập vào một phòng thí nghiệm nơi sức khỏe máy tính và SDE không phải là vấn đề của tôi - tôi ít nhiều có thể khóa và tập trung vào một phần nhỏ của vấn đề thay vì phải sửa tất cả các công cụ cần thiết để giải quyết vấn đề.

Và trong khi các khóa học không dạy rõ ràng giao tiếp tốt, tôi nghĩ cách duy nhất bạn thực sự có thể học đó là làm việc theo nhóm - vốn là một phần chính của nhiều tổ chức hàng đầu cung cấp bằng cấp CS.

Và một lịch trình với phản hồi thường xuyên (ví dụ, điểm và bài kiểm tra) cho tôi biết liệu tôi có thực sự hiểu những gì tôi đã được dạy hay không.

Những điều đó kết hợp trong tâm trí tôi có giá trị hơn bất kỳ cuốn sách nào về chủ đề này, nhưng chắc chắn nó không phải là tất cả, kết thúc tất cả. Chắc chắn có những điều tôi không bận tâm khi thấy các tổ chức học tập cao hơn được cải thiện và tôi nghĩ rằng khoảng 10 năm sau khi bạn tốt nghiệp, bằng cấp ban đầu bạn nhận được ít quan trọng hơn công việc bạn đã làm kể từ đó.


12

Đối với tôi, lý do là tôi biết họ đã trải qua một số khóa học khó khăn và không bỏ cuộc. Một số khóa học như Trình biên dịch, Cấu trúc dữ liệu, Toán rời rạc (và các khóa khác) có xu hướng rửa rất nhiều người khỏi các chương trình CS. Có bằng CS có nghĩa là bạn làm việc chăm chỉ và trả giá (đêm dài để các chương trình hoạt động), thay vì ra ngoài để vui chơi.


+1 - lol, tôi không thể tranh luận nhiều về điều này. Mặc dù, tôi yêu toán học rời rạc. Có một giáo sư tuyệt vời, người đã làm rất nhiều ấn tượng về Yoda.
P.Brian.Mackey

10

Đối với tôi đó là một câu hỏi về tư duy .

Tư duy của bạn xác định cách bạn sẽ tiếp cận một vấn đề nhất định và cho phép bạn xem xét một loạt các cơ hội hơn so với những người không được học trong các khái niệm.

Một ví dụ điển hình là vấn đề "Nhân viên bán hàng du lịch" trong đó bạn biết rằng nó 1) đã hoàn thành NP cho phiên bản chung, vì vậy bạn phải thử tất cả các khả năng trừ 2) nếu bạn biết thêm về vấn đề bạn có thể ước chừng trong một giới hạn nhất định hoặc nói rằng bạn biết rằng AC luôn dài hơn AB + BC (đúng với khoảng cách nhưng không đúng với giá) cho phép bạn giải quyết nó trong thời gian ngắn hơn.

Một ví dụ khác là Phân tích số, trong đó bạn cần biết rằng để giảm thiểu sự thiếu chính xác về số, bạn phải tiếp cận các tính toán của mình khác với cách tiến thẳng về mặt toán học. Điều này đòi hỏi kiến ​​thức lý thuyết và không có khả năng được chọn trên đường trừ khi bạn bị nó cắn một cách rõ ràng.


9

Có thật không? Ồ

Vì vậy, bạn đang nói với tôi rằng các kỹ năng C # và OOP là đủ và bạn có thể nghĩ ra thuật toán của riêng mình để sắp xếp ngẫu nhiên và giải mã các sắc thái tốt hơn về cách xử lý các vấn đề hoàn chỉnh của NP trong cuộc sống thực?

C # và OOP đều ổn, nhưng nếu bạn đang cố gắng làm bất cứ điều gì là thiết kế logic không tầm thường thì bạn cần có các nguyên tắc cơ bản của khoa học máy tính.

Anh bạn, thậm chí bạn sẽ không biết nên sử dụng bộ chứa C # nào nếu các kỹ năng cấu trúc dữ liệu hoặc thuật toán của bạn không đạt được yêu cầu.

Hãy lớn lên, bây giờ.


23
Dễ đấy, hổ.
whatsisname 17/03

23
"nghĩ ra thuật toán của riêng bạn để sắp xếp ngẫu nhiên và giải mã các sắc thái tốt hơn về cách xử lý các vấn đề hoàn chỉnh của NP trong cuộc sống thực" ya Tôi không thể nhấn mạnh đủ bao nhiêu công việc thực tế hàng ngày của tôi bao gồm các hoạt động này .... / mỉa mai
quentin-starin 17/03/2016

4
Điều tôi đang nói là 95% những người tôi làm việc cùng và đã làm việc trong quá khứ dành gần 0 thời gian để nghĩ ra thuật toán. Tôi dành phần lớn thời gian của mình để làm cho mã ngắn gọn và dễ đọc hơn. Rất ít thời gian dành cho "sắc thái tốt hơn". Trên thực tế, tôi sẽ thấy thú vị khi dành một ít thời gian ít nhất là sắp xếp một quy trình làm việc trên bảng trắng ... điều mà tôi chỉ tự làm. Bạn có thường xuyên thảo luận về NP hoàn chỉnh với đồng nghiệp của mình không? Dòng công việc nào bạn đang ở nơi bạn cần viết các loại tùy chỉnh thay vì thực hiện các ngôn ngữ lập trình chức năng?
P.Brian.Mackey 17/03/2016

3
@ P.Brian.Mackey: Phát triển phần mềm là một nghề nghiệp vượt trội. Có bao nhiêu nhà phát triển phần mềm làm việc cho tổ chức của bạn trên 50 tuổi? Là một nhà phát triển phần mềm lâu năm, bằng cấp CS có thể có nghĩa là sự khác biệt giữa có việc làm và thất nghiệp. Trong khi tôi hiện có bằng đại học và sau đại học về khoa học máy tính, tôi đã được đào tạo ban đầu về lĩnh vực này từ các trường kỹ thuật Hải quân và DoD vào cuối những năm bảy mươi. Tất cả những người mà tôi phục vụ không bận tâm để hoàn thành bằng cấp CS sau khi rời quân đội không còn ở trong lĩnh vực này nữa.
bit-twiddler 17/03

7
Tại sao mọi người dường như mù quáng chấp nhận giả định rằng một chương trình giảng dạy CS đại học chính thức là bắt buộc để có bất kỳ kiến ​​thức nào về các khái niệm CS? Có lẽ đó là một thất bại trong lý luận suy diễn của họ. Tôi đoán họ cần nhiều khóa học CS hơn.
quentin-starin

6

Tôi cho rằng bạn thực sự không liên quan đến bằng cấp sau đó, chỉ cần lấy những gì bạn cần và ra ngoài, hoặc đến một trường học xem chuyên ngành CS là "lập trình viên" chứ không phải "lập trình viên". Ngoài ra, một số lớp "CS" tốt nhất / yêu thích của tôi là những lớp - ít nhất là trong trường Đại học của tôi - thuộc khoa Kỹ thuật Điện. Việc tôi tiếp xúc với các kiến ​​trúc và phong cách khác nhau đã từng rất quan trọng và bằng cấp của tôi đã tạo điều kiện cho điều đó trong một môi trường "được kiểm soát".

Các lớp không chỉ là thuật toán và lông tơ dễ thương:

  • Trình biên dịch
  • Các hệ điều hành
  • VHDL / Hệ thống nhúng
  • Lắp ráp và vi điều khiển
  • Kỹ thuật phần mềm

Và cuối cùng, một lớp học đã đánh bại tôi, đó chỉ là thuật toán và cấu trúc dữ liệu - Trí tuệ nhân tạo. Có những thứ đi qua hệ thống Đại học sẽ thúc đẩy rất nhiều trong quá trình học tập, và tôi sẽ xem xét những gì đã được học là vô giá khi săn việc sau này.


Định nghĩa của bạn về "lập trình viên" và "lập trình viên" là gì? Đối với tôi, những thứ này có thể giống nhau và trái ngược với "nhà khoa học máy tính".
Đánh dấu C

Bộ giải mã chỉ viết mã, không nhất thiết phải nghĩ về các mô hình thiết kế khác nhau hoặc quy trình suy nghĩ có thể áp dụng để tạo mã tốt hơn. Các lập trình viên thực sự nghĩ về mã mà họ viết và tiếp cận nó từ góc nhìn từ trên xuống thay vì quan điểm đầu tiên về mã từ dưới lên.
Jeff Langemeier

Định nghĩa của bạn về "khỉ mã" và "lập trình viên" là gì? Lập trình viên có thể nghĩ ra các cách để giải quyết vấn đề mà tiền mã hóa không thể ...
Coyote21

Đam mê không được trao bằng. Nó chỉ là một phần của bạn là ai.
P.Brian.Mackey

@ P.Brian Đôi khi điều đó xảy ra mặc dù niềm đam mê của bạn trao bằng cấp, và được thúc đẩy hơn nữa bởi sự đạt được bằng cấp nói trên.
Jeff Langemeier

4

Ý kiến ​​của tôi là trừ khi bạn đang ứng tuyển vào các vị trí "Máy tính", bất kỳ mức độ nào bao hàm sự tập trung vào các kỹ năng máy tính là tương đương nhau.

Trong thực tế, nhiều lập trình viên mà tôi biết có bằng cấp về một chuyên ngành hoàn toàn khác. Những lập trình viên giỏi nhất mà tôi biết có bằng Kỹ sư Xây dựng, Ngôn ngữ học, Kinh tế và Tài chính.

Cuối cùng, một khi bạn có một số kinh nghiệm, bằng cấp của bạn sẽ trở thành một bài kiểm tra thất bại cho nhà tuyển dụng. Đó là, trừ khi bạn có được nó từ một trường học ấn tượng hoặc bằng cấp sau đại học, điều đó không quan trọng lắm với chuyên ngành của bạn là gì.


Một trong những lập trình viên giỏi nhất là một nhà kinh tế chỉ làm việc trong Excel / VBA và R. Ông đã làm một số điều tuyệt vời trong excel.
sal 17/03

@sal Viết những thứ trong Excel và R không yêu cầu bằng CS. Viết Excel hoặc R rất có thể sẽ.
Alnitak

@alnitak - Viết Excel hoặc R cũng không yêu cầu bằng CS. Đó là loại quan điểm của câu trả lời của tôi và sal
JohnFx 17/03/2016

@ John Tôi khởi nghiệp trong lĩnh vực này với tư cách là một nhà điều hành máy tính và lập trình viên nhập ngũ ngay từ khi còn học trung học. Tôi đã nhận được đào tạo phát triển phần mềm và hệ thống máy tính ban đầu từ Hải quân Hoa Kỳ và Cơ quan An ninh Quốc gia; do đó, tôi đã làm việc trong lĩnh vực không có BSCS trong một số năm. Tất cả những gì tôi có thể nói là nó giống như thiên đàng chia tay khi tôi hoàn thành BSCS của mình.
bit-twiddler

@ bit-twiddler - điều đó có nghĩa là để hỗ trợ hoặc bác bỏ câu trả lời của tôi? Có vẻ như nó hỗ trợ khẳng định cuối cùng của tôi rằng nó quan trọng nếu bạn có bằng cấp sau đại học hoặc tên tuổi lớn.
JohnFx

4

đối với tôi và nhiều đồng nghiệp thì không (không ai trong chúng tôi có bằng CS)


3

Được rồi vậy còn

Nếu bạn đã trải qua các môn học sau:

a. Kiến trúc và tổ chức máy tính

Kỹ thuật phần mềm

c.DBMS

d.Basic Điện tử

e. Mạch điện tử kỹ thuật số cơ bản

f.Micro Processor

Thiết kế g.Compiler

Bạn có nghĩ rằng tất cả những điều trên chỉ là về hình thức .. Hãy nhớ những điểm trên làm cho "lập trình viên giỏi" trở thành "lập trình viên tuyệt vời".

Đi qua phần này để đọc về tầm quan trọng của các môn học điện và điện tử


3

Tôi có bằng về khoa học máy tính. Nó đã được tuyệt vời để mở cửa, nhận được một công việc. Theo như giúp tôi trong lĩnh vực lập trình C # .NET chuyên nghiệp (nền tảng và ngôn ngữ phổ biến nhất trong khu vực tôi làm việc nếu không phải là toàn bộ các quốc gia thống nhất trên tay hệ điều hành phổ biến nhất trên thế giới ) thì hầu như không hữu ích.

70% + mã được viết bằng C (vì có nhiều thiết bị nhúng hơn các ứng dụng cấp cao). Theo các tìm kiếm công việc phổ biến như xúc xắc hoặc chỉ số TIOBE, Java là ngôn ngữ lập trình phổ biến nhất cho doanh nghiệp (vì có nhiều máy chủ hỗ trợ Unix / Linux hơn máy chủ Windows.) Có nhiều điện thoại thông minh và máy tính bảng (nền tảng điện toán của tương lai) chạy một số biến thể của Linux hoặc Mac OS so với Windows, được lập trình trên mọi thứ trừ C # hoặc .NET.

Nhìn vào bộ định tuyến của bạn ở nhà, nhìn vào điện thoại di động của bạn, nhìn vào máy tính bên trong xe của bạn, nhìn vào lò vi sóng kỳ dị ở nhà, tại các bộ điều khiển bên trong hệ thống A / C của bạn, bên trong điện thoại của bạn và fax và máy in / máy quét. Nhìn vào số lượng thiết bị máy tính (vượt trội so với các hệ thống cửa sổ.)

Bạn có nghĩ rằng chúng được lập trình trong C #?

Nếu bạn thực sự tin rằng .NET hoặc C # là những nền tảng phổ biến nhất trên thế giới, bạn có thể muốn quay lại trường CS của mình và yêu cầu hoàn lại tiền.

Tại sao bạn nghĩ rằng nó giúp bạn như một lập trình viên trong sự nghiệp chuyên nghiệp của bạn (bên ngoài phun ra thuật toán prims để gây ấn tượng với một số người phỏng vấn)?

Có lẽ bởi vì có rất nhiều về lập trình hơn là làm các trang web động và phát triển ứng dụng doanh nghiệp cơ bản? Vì bạn thậm chí không cần bằng BS, bằng AA - Tôi biết vì tôi đã bắt đầu sự nghiệp lập trình của mình với bằng AA và chậm nhưng chắc chắn làm việc với CS và sau đó làm việc ở trường tốt nghiệp trong khi làm việc toàn thời gian với tư cách là nhà phát triển .

Có phát triển nhúng, có phát triển trình điều khiển thiết bị, có phát triển hệ điều hành, có phát triển thuật toán, tín hiệu, truyền thông, giao thức mạng, phát triển công cụ cơ sở dữ liệu, phát triển hệ thống tệp, tính toán phân tán, trình biên dịch. Không nghiên cứu, nhưng thực tế làm việc trong các tổ chức vì lợi nhuận. Không có năng khiếu tự nhiên, người ta thường không thể hack nó trong bất kỳ lĩnh vực công nghiệp nào mà không có bằng CS (đôi khi thậm chí không có bằng BS.)

Một người có bằng CS và chú ý đến nó biết điều này. Sao bạn không có?

Trong thế giới thích ứng ngày nay, một bộ óc nhanh nhạy, giao tiếp mạnh mẽ, OO và các kỹ năng thiết kế cơ bản cho phép nhà phát triển viết phần mềm mà khách hàng sẽ chấp nhận.

OO ra đời vì CS. Và hầu hết những người nghĩ rằng họ làm OO thậm chí không thể làm tốt công việc. Chỉ cần nhìn ra bên ngoài và nhìn vào trạng thái tẻ nhạt của phần mềm (đặc biệt là Java và .NET, không đề cập đến PHP.) Một nền tảng CS vững chắc (hoặc bằng tốt nghiệp về một loại kỹ thuật nào đó) không đảm bảo hiểu biết tốt về OO 100% và kỹ năng phân tích, nhưng nó thường giúp. OTH, không có nền tảng CS cơ bản thường là cờ đỏ khi nói đến OO và các kỹ năng phân tích. Chúng tôi có đủ bằng chứng thực nghiệm trong ngành để ủng hộ tuyên bố này.

Những kỹ năng này chỉ được lướt qua trong chương trình cs.

Tùy thuộc vào chương trình CS và tùy thuộc vào học sinh. Ít nhất là đối với tôi, tôi đã thấy rất nhiều khóa học tốt về thiết kế, phân tích OO, các công cụ và thực tiễn thương mại, chúng tôi đã có các khóa học hợp tác với các công ty địa phương và thực tập, các dự án do công ty tài trợ và nghiên cứu, viết kỹ thuật, bạn đặt tên cho nó. Xin lỗi, tôi không thể liên quan hoặc hiểu tuyên bố này.

Trong tâm trí của tôi, đọc một cuốn sách C # 500 trang của Classicalx cung cấp một bộ kỹ năng có thể sử dụng hơn rất nhiều so với 4 năm của các khóa học blaster comp sci math.

Một lần nữa, tùy thuộc vào công việc bạn làm. Ngay cả trong doanh nghiệp, tôi đã sử dụng CS của mình để thực sự sửa chữa mọi thứ hoặc cải thiện. Tất cả những gì liên quan đến mô hình hóa, kiến ​​trúc, điện toán phân tán, bảo mật và hiệu suất cao, tính sẵn sàng cao và khả năng chịu lỗi. Tôi đã học tất cả những thứ đó trong CS.

Không có gì sai với việc sử dụng một cuốn sách Wrox để có được một là bối cảnh cụ thể , công nghệ cụ thể bộ kỹ năng. Tôi tự làm như vậy. Nhưng nền tảng CS của tôi cho tôi bối cảnh để làm việc. Không có nền tảng CS của tôi, tất cả những gì tôi có thể làm là lập trình, viết mã (đó là tất cả những gì tôi có thể làm khi tôi chỉ có bằng cấp AA khi bắt đầu sự nghiệp.)

Nhiều người không đồng ý.

Đáng ngạc nhiên, không.

Vì vậy, tại sao một mức độ khoa học máy tính quan trọng?

Bạn nghĩ ai đến với google, hadoop, cassandra hoặc các công cụ cơ sở dữ liệu hiệu suất cao? Bạn nghĩ ai viết kernel hệ điều hành Windows? Bạn nghĩ ai sẽ lập trình các công cụ yêu thích mà bạn sử dụng để thực hiện phát triển C # của mình.

Một điều tôi chắc chắn là các công cụ bạn sử dụng để phát triển C #, có một anh chàng CS đằng sau nó.

Việc bạn có cần bằng cấp CS hay không phụ thuộc vào loại công việc bạn làm, loại công việc bạn muốn làm, loại công việc bạn có khả năng làm.

Có rất nhiều công việc trong phát triển doanh nghiệp và web không yêu cầu bằng cấp CS. Tôi cấp điều đó. Tôi cũng biết rằng thế giới lập trình rộng hơn rất nhiều so với chỉ hai lĩnh vực đó, với nhiều lĩnh vực (hầu hết trong số chúng thực sự) yêu cầu bằng CS trở lên.

Bạn có bằng CS, làm sao bạn không biết đó là một bí ẩn.


TIOBE là crap để xác định bao nhiêu ngôn ngữ lập trình được sử dụng. Đó là thước đo mức độ phổ biến của một ngôn ngữ nhất định trên internet (về số lượng tài liệu tham khảo), chứ không phải về các dòng mã được viết.
Billy ONeal

Do tính khả dụng của ngôn ngữ cụ thể, LỘC không liên quan đến các ngôn ngữ lập trình và do đó không thể được sử dụng để đo lường mức độ sử dụng ngôn ngữ lập trình trong các ngành. Và sự phổ biến của các tìm kiếm ngôn ngữ trên internet đóng vai trò như một phần ủy nhiệm cho độ sâu và sự quan tâm của việc sử dụng (hoặc thiếu chúng) ... nếu bạn nhận thức được sự thiên vị không thể tránh khỏi. Chính nó, ** chỉ số TIOBE không có nghĩa gì - chỉ có một kẻ ngốc mới nghĩ khác; và chỉ có một kẻ ngốc mới nghĩ rằng đó là những gì tôi nói.
luis.espinal 21/03

Khi được thực hiện ngoài các chỉ số khác (như tìm kiếm công việc và phát triển loại sản phẩm), nó giúp ước tính xu hướng sử dụng công nghệ. Nói cách khác, nó hữu ích hoặc vô dụng tùy thuộc vào việc bạn sử dụng nó vào mục đích gì, bạn sử dụng nó như thế nào và với những chỉ số khác mà nó được kết hợp với.
luis.espinal 21/03

Quan điểm của tôi là bạn dường như đang sử dụng chỉ mục đó để đưa ra tuyên bố về việc sử dụng ngôn ngữ lập trình, đây không phải là điều mà chỉ số đó đo lường. Tôi đã sai chính tả khi tôi nói LoC viết - nhưng không có cách nào tốt để nói "số lượng mã được viết" đó là những gì tôi muốn nói. TIOBE là một cuộc thi phổ biến và trong cuộc đua đó, Java sẽ thổi bay mọi người khác miễn là đó là linqua franca của các khóa học lập trình giới thiệu. (Không phải vì điều đó có nghĩa là những sinh viên đó không biết gì khác, mà bởi vì sinh viên thường to hơn các chuyên gia. (Tức là bạn thực sự)
Billy ONeal

1

Có một số điều cơ bản mà tôi nhớ đã thấy trong các khóa học CS của mình đôi khi khá hữu ích. Quá trình Thác nước và các bước của nó là điều mà tôi đã sử dụng nhiều lần trong sự nghiệp của mình với một số biến thể cho Agile khi nó không hoàn toàn cứng nhắc trong các bước nhưng các bước tương tự cũng có.

Đôi khi kỹ năng giải quyết vấn đề và các thuật toán thuật toán khác nhau cũng có thể hữu ích. Có một điều gì đó để nói về lợi ích gián tiếp của bằng cấp CS. Ví dụ, học cách biện minh cho câu trả lời để chỉ ra lý do tại sao điều gì đó đúng chỉ là một trong một vài kỹ năng tôi đã trau chuốt ở trường đại học nhưng tôi không chắc rằng đây là một lợi ích rõ ràng khi kết thúc chương trình.


1

Tôi đồng ý với quan điểm của Thorbjørn Ravn Andersen về tư duy. Đó là điều chính bạn phát triển với một chương trình giảng dạy CS tốt.

Về cơ bản, nó hiểu được những thứ như cấu trúc dữ liệu và thuật toán. Không phải là bạn không thể tự học điều này, nhưng một chương trình giảng dạy CS tốt sẽ mang lại khả năng tiếp xúc tốt hơn.


Có những môn học khác mà chỉ có CS và chuyên ngành kỹ thuật máy tính có xu hướng học như tổ chức máy tính và kiến ​​trúc máy tính. Học cách xây dựng máy tính từ logic tuần tự và tổ hợp làm cho người ta trở thành một nhà phát triển phần mềm tốt hơn bởi vì nó cung cấp cho người ta cái nhìn sâu sắc về những gì đang thực sự xảy ra bên trong máy tính. Hơn nữa, các lập trình viên đầu tiên làm việc với bộ xử lý mới cần hiểu các khái niệm như bộ nhớ phân cấp và I / O, đường ống, bộ đệm kết hợp khối, đơn vị điều khiển (được mã hóa và cứng) và sự khác biệt giữa xử lý vô hướng và vectơ.
bit-twiddler

Làm thế nào nghiên cứu trường đại học về CS cung cấp tiếp xúc tốt hơn trong phòng thí nghiệm nơi nó thực sự quan trọng với một người cố vấn có trình độ, người không chỉ biết cách nó được cho là hoạt động và cách nó thực sự hoạt động?
JustinC

@bit Đồng ý. Vâng, câu trả lời của tôi là khá hả hê. Nó được dự định là như vậy vì một lý do.
George Marian

@justin Tôi không chắc bạn đang nói gì. Có bao nhiêu lập trình viên làm việc trong phòng thí nghiệm, nói gì đến những người cố vấn có trình độ?
George Marian

@JustinC: Người ta học cách mọi thứ hoạt động trong phòng thí nghiệm (trình độ kỹ thuật viên). Người ta tìm hiểu lý do tại sao mọi thứ hoạt động trong các khóa học kiến ​​trúc và tổ chức máy tính cấp trên (cấp độ kỹ sư). Nếu bạn mua một vài cuốn sách giáo khoa đại học cấp cao về kiến ​​trúc máy tính và tổ chức máy tính, bạn sẽ thấy những gì tôi muốn nói.
bit-twiddler

1

Viết

Trong phát triển phần mềm doanh nghiệp, điều quan trọng là có thể viết mã và viết . Ý tôi là: viết email, báo cáo lỗi, tài liệu kỹ thuật, v.v ... Cả viết và mã hóa đều đòi hỏi sự rõ ràng về tư duy và nền kinh tế biểu đạt phù hợp.

Giữa 2 nhà phát triển phần mềm, tôi cá là một người có bằng CS từ một trường đại học vững chắc (chương trình CS mạnh và các môn tự chọn bắt buộc trong nhân văn) có cả hai kỹ năng. .

Đọc

Một người cố vấn của tôi tuyên bố rằng ông có thể đánh giá các nhà phát triển bằng những gì họ đọc. Bài viết gốc đề cập đến sách WROX. Theo tôi, một người có bằng CS có nhiều khả năng tìm kiếm những cuốn sách CNTT chuyên nghiệp như vậy và có thể sử dụng chúng một cách hiệu quả. Nếu một người có thể xử lý CLR , thì người ta có thể xử lý "Professional C #".

môn Toán

Toán học phát triển logic, bằng chứng, nghiêm ngặt, v.v., và tác dụng phụ là nó hỗ trợ viết. Mặc dù hầu hết CNTT kinh doanh không yêu cầu các kỹ năng toán học cường độ cao, nhưng người có bằng CS sẽ có nó khi cần thiết. Đây là một cách tốt hơn để trải qua cuộc sống hơn là sống mà không có nó, và tự hỏi những gì bạn đã bỏ lỡ ở trường.


1

Tôi đoán nó thực sự phụ thuộc vào chất lượng của chương trình CS mà bạn đã trải qua. Tôi biết ý của bạn là gì, hầu hết các mã tôi viết hàng ngày chỉ là VB.Net tiêu chuẩn, lấy dữ liệu từ SQL Server, đưa nó vào biểu mẫu, lưu lại vào cơ sở dữ liệu, tạo một số báo cáo. Rửa sạch, rửa sạch, lặp lại. (Đôi khi rất nhàm chán) Chương trình CS tôi đã trải qua, ngoài việc bao quát lý thuyết và kiến ​​thức cơ bản, đã dạy rất nhiều thứ thực tế. Chúng tôi bao gồm các lĩnh vực như thiết kế phần mềm, thiết kế cơ sở dữ liệu và quản lý dự án. Học ngôn ngữ lập trình là phần dễ dàng, thiết kế và phương pháp tạo hệ thống phần mềm là điều tôi rút ra từ kinh nghiệm học đại học của mình. Chúng tôi đã được trao các dự án dựa trên vấn đề trong thế giới thực, đôi khi thậm chí còn thiết kế hệ thống phần mềm cho các phòng ban khác trong khuôn viên trường.

Là lập trình viên, rõ ràng chúng ta có khả năng tự học, đó là một điều cần thiết trong lĩnh vực của chúng ta. Tôi phải nói rằng tôi rất vui vì đã trải qua chương trình CS. Các giáo sư của tôi đã rất tuyệt vời và dạy tôi khá nhiều. Các bạn cùng lớp của tôi là những người vui vẻ tuyệt vời và chúng tôi đã có rất nhiều đêm vui vẻ trong phòng thí nghiệm máy tính. Nói thật, tôi rất nhớ những ngày đó ......


1

Đó là tất cả trong khả năng sống gián tiếp.

Nếu bạn bỏ qua bằng cấp, có lẽ bạn sẽ phải học các bài học theo cách rất riêng (hay còn gọi là cách khó). Thiếu bằng cấp không có nghĩa là bạn sẽ đi theo con đường học tập khó hơn bằng thử và sai; tuy nhiên, bằng cấp đảm bảo cho bạn tiếp xúc với kho tàng kiến ​​thức thu được trước đây mà những người khác phải kiếm được vào đêm khuya, các phiên lập trình bực bội và nói chung là "làm điều đó một cách khó khăn".

Người thực sự xuất sắc sẽ không loại bỏ những gì người khác thấy là đúng, mà thay vào đó sẽ thách thức nó cho đến khi họ biết những hạn chế của kiến ​​thức, và sau đó chơi với "hệ thống" các ý tưởng mới đạt được cho đến khi họ biến nó thành ý tưởng của riêng mình. Nó đứng trên vai những người đến trước và tìm ra giải pháp của nhiều năm trôi qua mà không phải khám phá lại chúng.

Tất nhiên, một người có bằng khoa học máy tính không phải lúc nào cũng là ứng cử viên tốt hơn. Có những cá nhân độc nhất đã được dẫn đến suối nhưng (vì một lý do kỳ lạ) từ chối uống từ đó.


0

Tôi là một người 21 tuổi vừa học xong đại học CS. Tôi cảm thấy rằng bạn rất giỏi trong lập trình, nếu bạn là người tốt nghiệp CS, bạn sẽ được tiếp xúc với nhiều lĩnh vực khác nhau. Vì vậy, nếu bạn muốn tìm hiểu những thứ mới, bạn không ngại khám phá ngay cả khi nó không liên quan . Nếu bạn là một chuyên gia về ngôn ngữ công nghệ hoặc lập trình, tốt. Nhưng tôi không nghĩ bạn sẽ thích phiêu lưu và sẵn sàng xem xét các công nghệ khác. Đó là cách bạn làm cho mình bẩn (và nhanh chóng quá). Bạn sẽ không nghiền ngẫm rằng những gì bạn khám phá sẽ không liên quan vì nó sẽ không giúp bạn kiếm được tiền. (Bạn đã nghiên cứu rất nhiều điều không liên quan trong CS UG của bạn;)).
Đó là niềm đam mê trong CS mà bạn có sau khi tốt nghiệp giúp bạn trở thành Chuyên gia phần mềm.
Có ai đồng ý không?


1
Bạn không thể đưa ra giả định rằng ai đó sẽ không hứng thú 'nhìn vào các công nghệ khác' chỉ vì họ không có bằng CS. Đây là một ngụy biện.
Steven Striga

0

Khi tôi vào CS, tôi đã nghĩ rằng wow, tôi thực sự giỏi vì tôi và tôi sẽ không học được gì ở đây ... Sau 5 năm, tôi chỉ học cách làm việc theo nhóm và một số điều từ kỹ thuật tách tôi ra khỏi một người chỉ có thể viết mã và ai đó có thể nghĩ về những gì anh ta làm trước khi anh ta viết mã, nói ngắn gọn, nó đã dạy tôi suy nghĩ trước khi tôi thậm chí gõ một chữ cái trong trình soạn thảo văn bản hoặc ide.


0

Để có được một công việc sử dụng ngôn ngữ nguồn mở, điều đó không có nghĩa là ngồi xổm. Hầu hết các công ty tuyển dụng dựa trên khả năng thay vì bằng cấp và ngôn ngữ như PHP có tiếng tăm về sở thích mà mọi người có thể có tài năng mà không cần phải học CS. Lần duy nhất có ích nếu bạn nhận được công việc bằng ngôn ngữ .Net vì hầu hết những người có sở thích sẽ không muốn bỏ ra hàng ngàn giấy phép chỉ để loay hoay vào cuối tuần, do đó ai đó đang tìm việc đầu tiên trong C # có lẽ sẽ chỉ có 2-3 năm kinh nghiệm.

Tất nhiên kinh nghiệm thương mại là thứ thực sự có giá trị vì nó thể hiện khả năng của bạn trong việc cung cấp mã chất lượng đến thời hạn.

Tóm lại, nó giúp bạn phỏng vấn để làm việc với các ngôn ngữ không có nguồn mở.


0

Bằng cấp của Collegue hoặc Đại học, có nghĩa là bạn đã học và có một số kiến ​​thức về CS, một số nội dung cơ bản cần thiết cho công việc trong thế giới thực, ngay cả khi bạn phải tự học những thứ khác.

Bên cạnh đó, khi một nhà tuyển dụng CNTT phải tìm một Soft. Dev., Và 500 ứng viên gửi hồ sơ của họ, và phải phỏng vấn 50 người trong số họ, có bằng cấp trong hồ sơ của bạn, giúp cả nhà tuyển dụng và cơ hội được tuyển dụng của bạn.

(từ Nhà phát triển phần mềm đã nghiên cứu một số HHRR)


0

Có lẽ điều này không giúp được gì nhiều, nhưng bây giờ tôi đã học được cách lắp ráp và tất cả các kiến ​​thức liên quan, tôi cảm thấy một lập trình viên hoàn thiện hơn và tôi chắc chắn điều này sẽ xảy ra một lần nữa khi tôi đến trường. Ý tôi là, tôi chủ yếu sử dụng C hoặc VB, tôi không cần biết trạng thái chờ đợi để thực hiện chương trình của mình là gì, nhưng chỉ cần biết những gì đang diễn ra đằng sau mã của tôi là tuyệt vời! Và kiến ​​thức giúp bạn viết mã tốt hơn, nhanh hơn và dễ bảo trì hơn. Một văn bằng khoa học máy tính cung cấp chính xác kiến ​​thức cần thiết để viết mã tuyệt vời theo ý kiến ​​của tôi.


0

kỹ thuật phần mềm ngày nay là một khoa học thực nghiệm không áp dụng toán học.

Bằng cấp khoa học máy tính nhấn mạnh các thuật toán, bao nhiêu công việc trong ngày của bạn liên quan đến việc thực hiện hoặc thậm chí sử dụng các thuật toán mới và cấu trúc dữ liệu?

Bao nhiêu liên quan đến việc xử lý các lớp khung và trừu tượng bị rò rỉ? Bao nhiêu là cố gắng xác định những gì một số API thực sự làm - hơn là những gì tài liệu ngụ ý? Bao nhiêu là kiểm tra và quyết định làm thế nào để kiểm tra?

Đối với tất cả những gì một mức độ vật lý hoặc hóa học được đào tạo tốt hơn nhiều so với việc ghi nhớ Knuth


0

Điều này quan trọng bởi vì nhà tuyển dụng có một chỉ báo rằng bạn không hoàn toàn không biết gì về những gì bạn phải làm, nhưng nó không nhất thiết ngụ ý rằng bạn thực sự biết những gì bạn đang làm hoặc bạn đang làm theo cách thuận tiện về mặt kỹ thuật.

Có những người thông minh với bằng cấp yêu thích những gì họ đang làm và là những lập trình viên thực sự giỏi và cũng có những kẻ ngốc với bằng cấp là những lập trình viên thực sự tồi và thậm chí không biết một số nguyên tắc cơ bản. Có những người tài giỏi không có bằng cấp có thể phát triển bất cứ thứ gì (phần mềm kinh doanh / trình biên dịch / hệ điều hành) và có những kẻ ngốc không có bằng cấp không biết cách sử dụng hashtable đúng cách.


0

Hoàn toàn chính xác, bằng cấp khoa học máy tính không quan trọng lắm; đó là lý do tại sao sự lựa chọn duy nhất của bạn là lấy bằng kỹ sư thay thế.

Khi phỏng vấn các ứng viên có nhiều nền tảng khác nhau, một đặc điểm nổi bật đối với những ứng viên không có bằng cấp này là: thiếu kỹ năng giao tiếp kỹ thuật và thiếu kỷ luật. Đây là những đặc điểm cơ bản được học khi nhận được bất kỳ bằng cấp khoa học nào (tôi thậm chí còn nói nhiều hơn với bằng kỹ sư).

Với hầu hết mọi thứ đều bình đẳng (và một vòng phỏng vấn thường xuất hiện với các ứng viên "về bằng nhau"), tôi sẽ thuê người có bằng kỹ sư trước, bằng khoa học máy tính thứ hai và thứ ba không có bằng cấp. Tuy nhiên, có nhiều cách để làm cho mọi thứ trở nên rất bất bình đẳng khi so sánh, để bất kỳ ai cũng có thể đánh bại ngay cả những người có bằng cấp phả hệ - nhưng đó là một câu hỏi riêng biệt phải không?


-1

Đối với một lập trình viên ... nó không nhiều (ngoài việc có thể mở ra các cuộc phỏng vấn, như bạn đã nói).

Đối với một công việc CS (nghiên cứu, phân tích thuật toán, thoery ngôn ngữ chính thức và thiết kế). Bạn không thể học những điều này trong bất kỳ chương trình phi toán học nào khác.

// Tuyên bố miễn trừ trách nhiệm: bằng cấp của tôi về CNTT nên tôi phải quay lại để tất cả các khóa học khác thực hiện trong công việc của mình.


-1

Tôi có bằng cấp liên quan đến máy tính. Điều giúp tôi có được vai trò máy tính đầu tiên của mình là thực tế rằng năm 3 là một vị trí công việc với tư cách là Quản trị viên CNTT. Tôi đề nghị các chương trình vị trí làm việc trong giáo dục.

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.