it-swarm-vi.com

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?

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 trí ó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. tâm trí của tôi, đọc một cuốn sách C # 500 trang của Graffitix 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 toán học khoa học. Nhiều người không đồng ý. Vậy, tại sao bằng cấp khoa học máy tính lại quan trọng?

63
P.Brian.Mackey

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ó thể 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 sự hiểu biết chính thức đôi khi rất hay, đặ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 của chuyên gia 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ế tắc 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 đưa bạn đến với cần 10.000 giờ để 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.

133
Corbin March

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.

87
Paul Nathan

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ó được một công việc tại Woods Hole nếu tất cả bạn biết cách 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.

37
Eric Lippert

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 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.

22
bit-twiddler

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.

14
dsimcha

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, nhưng với khuynh hướng CS mạnh mẽ (toán 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 - Vì Kỹ sư không phải là Giao diện 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 - Vì có một số loại hệ thống về học về CS 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 - mà IS 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 số 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
bethlakshmi

Đố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.

12
Chris L

Đố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) là NP-đầy đủ 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 phải về 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.

10
user1249

Có thật không? Ồ.

Vì vậy, bạn đang nói với tôi rằng C # và OOP kỹ năng 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ý NP = vấn đề hoàn chỉnh 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 thuật toán hoặc cấu trúc dữ liệu của bạn không đạt được yêu cầu.

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

9
Fanatic23

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 thuận lợi trong 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.

6
Jeff Langemeier

đố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)

4
Shawn

Ý 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 có trách nhiệm", bất kỳ bằng cấp nào tập trung vào các kỹ năng máy tính đều 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ì.

4
JohnFx

Đượ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 điện và điện tử

3
Radheshyam Nayak

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) nó 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ư súc sắc hoặc chỉ mục 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.) 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à, ở 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ó nhiều thứ 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à từ từ nhưng chắc chắn làm việc với CS và sau đó làm việc ở trường lớp trong khi làm việc đầy đủ- thời gian 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 trí ó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 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 100% về OO và các 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à 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ế, 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 và nghiên cứu do công ty tài trợ, 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 khi sử dụng một cuốn sách Graffitix để có được cụ thể theo ngữ cảnh, cụ thể về công nghệ 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 sẽ viết kernel Windows OS? 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.

3
luis.espinal

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.

1
George Marian

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à write. Ý 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 thích 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. (Đúng, đây không phải là một sự đảm bảo: mọi người từ nhân văn có thể là những lập trình viên vĩ đại và những nhà văn hàng đầu; rất nhiều sinh viên tốt nghiệp CS là những cỗ máy mã hóa không thể viết, v.v.)

Đọ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 #".

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
Michael Easter

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 được 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
Kratz

Đó 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ừ đó.

1
Edwin Buck

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à một thứ gì đó 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 quá 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
JB King

Đ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 nó một 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 thông minh 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
Falcon

Có lẽ điều này không giúp được gì nhiều, nhưng bây giờ tôi đã học được hội và tất 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 các 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. Bằng cấp về khoa học máy tính cung cấp chính xác kiến ​​thức cần thiết để viết tuyệt vời mã theo ý kiến ​​của tôi.

0
BlackBear

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
Martin Beckett

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 học những thứ mới, bạn không ngại khám phá thậm chí nếu nó là 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;)).
[.___.] Chính 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?

0
Ranjanmano

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 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 không đồng đều 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?

0
Jonathan Cline IEEE

Để 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 học CS. sử dụ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ỉ để gây rối vào cuối tuần, do đó ai đó đang tìm kiếm công việc đầu tiên trong C # có thể 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
Adam Pointer

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ề C.S., 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.

Vả lại, khi một I.T. nhà tuyển dụng 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ố H.H.R.R.)

0
umlcat

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ỉ 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
Coyote21