Sự khác biệt giữa trình độ đại học và lập trình công ty là gì? [đóng cửa]


28

Tôi vừa hoàn thành bằng Cử nhân về lĩnh vực CNTT. Tôi có hứng thú sâu sắc với tiền mã hóa và thực sự muốn trở thành một chuyên gia trong đó. Bây giờ, ngoài các khóa học đại học, tôi đã tự học lập trình (C #) (lập trình cấp đại học quá cơ bản). Bây giờ tôi cảm thấy mình cần thêm một chút thời gian để gần gũi với lập trình viên chuyên nghiệp. Nhưng một số người cao niên của tôi nói rằng lập trình thế giới doanh nghiệp quá khác so với lập trình bookish, do đó không có gì để lãng phí thời gian. (Bản thân họ không phải là lập trình viên, đây có thể là những gì họ nghe thấy).

Tôi có được lợi bằng cách đạt đến cấp độ nâng cao của C # không? hoặc vì mức độ tầm thường là đủ để phá vỡ các cuộc phỏng vấn, cấp độ cao hơn không quan trọng đối với các công ty bởi vì họ dựa vào đào tạo của họ hoàn toàn để dạy cách mọi thứ hoạt động trong thế giới doanh nghiệp và học hỏi nhiều hơn sẽ không giúp tôi nhiều? Xin vui lòng nếu có một số lập trình viên chuyên nghiệp có thể giúp đỡ, tôi hứa đây là điều mà mọi sinh viên quan tâm đến lập trình muốn hỏi ở giai đoạn của tôi. "Làm thế nào để bạn thực sự thay đổi từ người học sang chuyên nghiệp trong lĩnh vực lập trình?" - tiếp tục học cho đến khi bạn hoàn hảo hoặc tham gia một công ty là phải một khi những điều cơ bản được đề cập?


24
Trường học chưa bao giờ cung cấp cho bạn các kỹ năng cần thiết để tìm việc làm. Đó là về việc cung cấp cho bạn các công cụ cần thiết để tìm việc làm. Không có gì thay thế cho trải nghiệm thực tế, nhưng bạn vẫn cần đến trường.
Robert Harvey

5
Tôi nghĩ rằng tiêu đề trình bày một câu hỏi hữu ích, nhưng nội dung của câu hỏi là yêu cầu tư vấn nghề nghiệp không có chủ đề trên trang web này.
Bryan Oakley

Bạn có thể thấy kênh trò chuyện dành cho Lập trình viên.SE (bảng trắng) là một nơi hữu ích để đặt câu hỏi như vậy - thường có những người ở đó với một loạt các kỹ năng từ thế giới doanh nghiệp.


3
Tạm dừng ??? Đây không phải là yêu cầu tư vấn nghề nghiệp. Có câu hỏi này là ít về thảo luận nhưng có thể trả lời. Có rất nhiều câu trả lời hay cho câu hỏi này, không có cách nào để loại bỏ câu hỏi này hoặc một cái gì đó trừ khi stackexchange hết bộ nhớ. Xem các câu trả lời được chấp nhận. Là nó cho một số lời khuyên nghề nghiệp ??
vish213

Câu trả lời:


32

Có nhiều sự khác biệt giữa lập trình ở trường và trong thế giới thực. Tôi không chắc chắn có một thứ như lập trình công ty .

Tùy thuộc vào nơi bạn thực sự làm việc, sẽ có sự khác biệt rất lớn. Cũng sẽ có sự khác biệt rất lớn tùy thuộc vào các nhiệm vụ trong tay.

Tuy nhiên vẫn còn một số vấn đề phổ biến.

  • vòng đời mã thực tế rất khác với bài tập về nhà của trường đại học. Trong lập trình thế giới thực, bạn thường làm việc trên một số cơ sở mã hiện có. Một trong những vấn đề lớn nhất là tránh phá vỡ tính tương thích với mã được sử dụng bởi khách hàng của bạn (có thể là khách hàng nội bộ hoặc khách hàng bên ngoài, tùy thuộc vào nơi làm việc và trường hợp thực tế của bạn). Mã bạn đang viết cũng có thể sẽ được sử dụng trong nhiều năm sau đó (điều này phụ thuộc: vấn đề không giống với trang web hoặc mã được nhúng trong một số thiết bị). Nếu bạn muốn sẵn sàng cho việc này, hãy tập thói quen viết các bài kiểm tra đơn vị và kiểm tra chức năng cho mỗi đoạn mã. Điều đó không phải lúc nào cũng được thực hiện với mã thế giới thực, nhưng nó sẽ làm cho cuộc sống của bạn đơn giản hơn cả ở trường đại học và trong thế giới doanh nghiệp.

  • thiết kế / yêu cầu thường mờ hơn trong thế giới thực so với trong bầu không khí trường đại học. Khi viết mã chuyên nghiệp, ai đó phải xác định mục đích của mã và bạn không chỉ đơn giản đưa ra các vấn đề về đồ chơi hoặc thậm chí các vấn đề nổi tiếng. Rất có khả năng sớm hay muộn bạn sẽ là người thực hiện thiết kế! Khách hàng thường không biết họ muốn gì (và ngay cả khi họ biết họ muốn gì có thể không phải là thứ họ cần) và các nhà quản lý thường chỉ mô tả bức tranh lớn, để lại nhiều chi tiết và lựa chọn cho các lập trình viên. Tùy thuộc vào các phương pháp được theo dõi ("nhanh nhẹn" -vs- "chu kỳ V", v.v.), các lựa chọn và định nghĩa vấn đề chi tiết có thể xảy ra sớm hay muộn, nhưng ít nhất bạn nên giữ một tâm trí cởi mở và tự hỏi nếu bạn thực sự đang làm gì bắt buộc. Bạn cũng có thể xem xét thay đổi yêu cầu nếu tác vụ đang diễn ra quá khó để viết mã hoặc không hiệu quả. Cuối cùng, bạn có thể viết một cái gì đó vô dụng hoặc quá phức tạp vì khách hàng hoặc người quản lý của bạn không hiểu ý của bạn hoặc họ không đồng ý với bạn. Tuy nhiên, bạn nên luôn luôn đặt câu hỏi (đó là một kỹ năng sinh tồn). Ngoài ra, hãy nhớ rằng các yêu cầu có thể thay đổi ở giữa một nhiệm vụ và bạn nên sẵn sàng cho việc đó.

  • ở trường đại học khi bạn nhận được một bài tập, bạn thường phải viết một số mã. Trong thế giới thực, bạn thường bắt đầu bằng cách kiểm tra xem bạn có thể sử dụng mã hiện có hay không: sử dụng lại hoặc thay đổi các phần của dự án, sử dụng hoặc mua thư viện, v.v. Nếu bạn tìm thấy mã hiện có phù hợp với nhiệm vụ, bạn có thể sẽ sử dụng nó hoặc không (có thể có vấn đề về bảo trì, vấn đề hiệu suất, vấn đề bản quyền hoặc thậm chí là vấn đề về giá), nhưng thường nên cân nhắc lựa chọn sử dụng lại mã hiện có.

Rõ ràng có nhiều vấn đề khác liên quan đến làm việc nhóm, quy mô dự án, v.v. Nhưng những điểm trên là những vấn đề bạn rất có thể thấy trong môi trường công ty nhưng không phải xem xét trong bài tập đại học của bạn.


Theo lập trình doanh nghiệp tôi có nghĩa là môi trường lập trình trong các công ty. Câu trả lời hay btw :-)
vish213

3
Câu trả lời hay @kriss. Tôi sẽ nói thêm rằng điều quan trọng là học nói bằng ngôn ngữ của khách hàng, không phải bằng "lập trình". Điều này sẽ giúp cả khách hàng và bạn.
Paddy Landau

38

Sự khác biệt chính giữa lập trình công ty và lập trình đại học là quy mô. Ở trường, bạn không bao giờ nhận được một bài tập mà một người không thể bắt đầu và kết thúc trong một học kỳ. Là một chuyên gia, bạn có thể làm việc với hàng tá lập trình viên khác trên phần mềm tồn tại trong nhiều năm mà không bị "kết thúc".

Ở cấp độ vi mô, công việc không có gì khác biệt. Rốt cuộc, nếu nó quá khác biệt, thì bằng đại học sẽ không có giá trị gì với các công ty. Nhưng nó giống như sự khác biệt giữa nướng 12 bánh quy và nướng 12.000 bánh quy. Bạn có thể thực sự giỏi ở cái trước và hoàn toàn không biết gì về cái sau.

Ở trường, bạn chủ yếu quan tâm đến việc lập một chương trình chính xác . Trong công việc, phần mềm của bạn là chính xác là không đủ. Nó phải được duy trì, có thể kiểm tra, hiệu quả và có thể được làm việc cùng lúc bởi nhiều người. Đó là điều mà các trường cố gắng dạy, nhưng bạn thực sự không thể học nó hoàn toàn ngoại trừ bằng cách thực hiện nó.


Theo kinh nghiệm của tôi, phần lớn "mã công ty" không nỗ lực để có thể duy trì, kiểm tra và hiệu quả, nhưng đủ tốt để giải quyết vấn đề trong tay trong một khoảng thời gian ngắn. Trong nhiều trường hợp, mã thậm chí không "chính xác", mà chỉ "đủ chính xác".
simon

26

Câu hỏi này dựa trên một giả định không hợp lệ:

"Làm thế nào để bạn thực sự thay đổi từ người học sang chuyên nghiệp trong lĩnh vực lập trình?"

Bạn trở thành một chuyên gia bằng cách được trả tiền để làm điều đó. Bạn không bao giờ ngừng là một người học. Nếu bạn làm, sự nghiệp của bạn đã kết thúc.

Đi ra ngoài thế giới và có được một công việc. Sự nhiệt tình của bạn cho việc học là một tài sản.


4
Đó là tất cả những lời khuyên tốt, nhưng nó không thực sự trả lời câu hỏi, phải không?
Bryan Oakley

6
Tôi đồng ý rằng một lập trình viên chuyên nghiệp không bao giờ ngừng là người học - nhưng không phải việc được trả tiền khiến bạn trở thành một người chuyên nghiệp. Tôi đã gặp nhiều người nghiệp dư được trả tiền để viết mã khủng khiếp. Chuyên nghiệp là về việc thực hiện đúng công việc - và thực hiện đúng công việc - không phải là được trả tiền để tạo ra mã.
Bevan

@Bevan Cũng có thể lập luận rằng đó là sự khác biệt giữa "lập trình viên" và "nhà phát triển". Không chắc chắn nơi tôi đứng trên đó, mặc dù.
Izkata

3
@Bevan: Từ "chuyên nghiệp" thực sự mơ hồ; các giác quan được liệt kê trong mục Wiktionary bao gồm cả "Của, liên quan hoặc theo các tiêu chuẩn (thường là cao) của một nghề" và "Điều đó được thực hiện để kiếm tiền, đặc biệt là sinh kế." Được trả tiền tự động làm cho bạn trở thành một lập trình viên chuyên nghiệp theo nghĩa sau, ngay cả khi nó không nói gì về cái trước.
ruakh

12

Câu trả lời ngắn gọn, vâng - thế giới doanh nghiệp khá khác biệt so với nhiều môi trường đại học.

Điều đó nói rằng, các công ty biết điều này. Chúng tôi hy vọng sinh viên tốt nghiệp đại học sẽ gần như vô dụng. Nếu bạn đã dành thời gian cho việc học lập trình của riêng mình, điều đó thật tuyệt. Bạn không cần phải cực kỳ tuyệt vời để áp dụng, nhưng hãy hiểu rằng ở lại tầm thường sẽ không cắt giảm.

Bạn sẽ không tự học được nhiều thứ bạn cần trong kinh doanh. Áp dụng càng sớm càng tốt trong khi tiếp tục tự học.


4

Tôi có được lợi bằng cách đạt đến cấp độ nâng cao của C # không?

Không. Chúng tôi hy vọng sinh viên sẽ vô dụng trong vài tháng trong khi chúng tôi phá vỡ chúng. Bằng cấp chỉ là cổ phần bảng. Sự nhiệt tình của bạn để tìm hiểu và làm theo hướng dẫn là tài sản tốt nhất của bạn. Khi phỏng vấn sinh viên tốt nghiệp đại học, tôi muốn một người chơi nhóm phù hợp với không phải là một hotshot làm gián đoạn nhóm.

... cấp độ cao hơn không quan trọng đối với các công ty bởi vì họ hoàn toàn dựa vào đào tạo của họ để dạy cách mọi thứ hoạt động trong thế giới doanh nghiệp và học hỏi nhiều hơn sẽ không giúp tôi nhiều?

Điều này khác nhau cho mọi công ty nhưng nói chung các công ty lớn hơn sẽ có một khóa đào tạo có cấu trúc hơn. Đây là quyết định lớn đầu tiên của bạn, bạn có thích đào tạo chính thức và mức độ cao về cấu trúc không? Nếu vậy, tìm kiếm công việc cung cấp đó.

Làm thế nào để bạn thực sự thay đổi từ người học sang chuyên nghiệp trong lĩnh vực lập trình?

Bạn thay đổi từ một sinh viên thành một chuyên gia bằng cách nhận một công việc. Tôi khuyên người cao niên nên hợp tác với một công ty thông qua trường học của bạn. Đây là cách tốt nhất để có được đôi chân ướt và vượt qua nỗi lo về một nghề mới.

Tiếp tục học cho đến khi bạn hoàn hảo hoặc tham gia một công ty là phải một khi những điều cơ bản được đề cập?

Nhận một công việc, đừng chờ đợi. Việc lo lắng là điều bình thường, nhưng hãy trung thực về các kỹ năng của bạn và đừng che giấu sự nhiệt tình của bạn để tìm hiểu thêm. Việc chuyển đổi công ty nhiều lần là điều thường gặp, đặc biệt là sớm trong sự nghiệp của bạn.

Chúc mừng bạn đã hoàn thành chương trình học và chúc may mắn trên hành trình lập trình chuyên nghiệp.


1

Tôi muốn nói rằng sự khác biệt cơ bản giữa lập trình cấp công ty và đại học là lập trình cấp công ty là quá trình hợp tác nhiều hơn so với những gì bạn sẽ gặp trong môi trường lớp học và sự nhấn mạnh nhiều hơn vào phát triển sản phẩm so với học tập sư phạm.


1

Nếu bạn thực sự mong đợi rằng lập trình thế giới doanh nghiệp sẽ là văn hóa lập trình cấp cao tiên tiến, tôi nghĩ bạn sẽ khá thất vọng. Lập trình trong thế giới doanh nghiệp liên quan nhiều hơn đến việc có thể chịu trách nhiệm về mã mà bạn viết và giữ nó có thể duy trì được.

Nhưng với câu hỏi của bạn

Làm thế nào để bạn thực sự thay đổi từ người học sang chuyên nghiệp trong lĩnh vực lập trình?

Điều này không liên quan gì đến lập trình cấp doanh nghiệp và đại học mà là lập trình nói chung. Nếu bạn thực sự muốn học bắt đầu xây dựng phần mềm của riêng mình, một cái gì đó bạn muốn xây dựng hoặc bắt đầu làm việc trong các dự án phần mềm nguồn mở. Đặt câu hỏi mà bạn phải đối mặt. Và đọc mã của người khác.


1

Câu trả lời của Karl về quy mô là tại chỗ. Bạn không được sắp xếp một mảng gồm 15 số, bạn sẽ phải sắp xếp tập dữ liệu của một triệu, giả sử, số tài khoản.

Một lớp cấu trúc dữ liệu và thuật toán có thể sẽ cho bạn biết hàng tá cách sắp xếp khác nhau. Trong một ứng dụng thực tế, bạn có khả năng ném theo thứ tự theo mệnh đề và để cơ sở dữ liệu tối ưu hóa nó.

Đối với việc chuẩn bị cho thế giới doanh nghiệp, có hai cách tôi muốn đề xuất a) Nhận thực tập ngay cả một người được trả lương thấp hoặc không trả lương sẽ cho phép bạn xem người khác làm việc. b) Với tất cả các cửa hàng ứng dụng xung quanh, bạn có thể thử viết và xuất bản ứng dụng lên các cửa hàng Apple / Google / MS. Điều này sẽ giúp bạn hiểu quy trình công việc tốt hơn, giá trị của kiểm tra, nhu cầu thiết lập môi trường và công cụ phù hợp và hơn thế nữa.


1
Chỉ muốn thêm vào ngoài cửa hàng ứng dụng, bạn có thể thử tình nguyện cho một dự án quy mô nhỏ. Nhiệm vụ đầu tiên của tôi là giúp nơi làm việc của mẹ tôi đưa ra các báo cáo về kỳ nghỉ và làm thêm giờ :)
SidJ

0

Điều chính bạn cần để làm tốt trong lập trình công ty là sự kiên nhẫn và khả năng giao tiếp với người dùng không hiểu về công nghệ. Đảm bảo bạn sử dụng kiểm tra đơn vị, kiểm soát phiên bản, gỡ lỗi cẩn thận và sử dụng theo dõi / ghi nhật ký thích hợp. Các ngôn ngữ có thể thay đổi, nhưng giữ bình tĩnh và cẩn thận tìm kiếm các vấn đề sẽ luôn hoạt động.


-1

bên cạnh câu trả lời xuất sắc được cung cấp "lập trình công ty" cũng là về các yêu cầu không rõ ràng hoặc thay đổi.

Bạn sẽ làm gì nếu giáo sư của bạn thay đổi các yêu cầu của bài tập về nhà lập trình của bạn hai ngày trước khi bạn phải giao nó?

Trong công nghiệp này khá phổ biế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.