2008-08-20 33 views
8

Tôi là sinh viên nghiên cứu phát triển phần mềm và tôi cảm thấy lập trình nói chung quá rộng về một chủ đề để cố gắng biết mọi thứ. Để thành thạo, bạn phải quyết định những lĩnh vực nào cần tập trung vào việc học và hiểu của bạn. Một số kỹ năng nhất định đặt phối hợp với nhau, như phát triển web dựa trên dữ liệu và trải nghiệm SQL. Tuy nhiên, tất cả các kinh nghiệm API win32 trên thế giới có thể không trực tiếp áp dụng cho phát triển linux. Điều này khiến tôi tin rằng, là một lập trình viên bắt đầu, tôi nên bắt đầu quyết định nơi tôi muốn chuyên môn sau khi tôi có sự hiểu biết chung về các nguyên tắc cơ bản của phát triển phần mềm.Những lĩnh vực chuyên môn nào trong lập trình bạn sẽ giới thiệu cho người mới bắt đầu

Đây là một câu hỏi đa phần thực sự:

  1. các chuyên ngành phổ biến trong lập trình máy tính và phát triển phần mềm là gì?
  2. Chuyên môn nào trong số các chuyên môn này có giá trị lâu dài hơn, vừa là nền tảng cho các chuyên môn khác và/hoặc là kỹ năng có thể tiếp thị?
  3. Kỹ năng nào bổ sung cho nhau?
  4. Có bất kỳ lĩnh vực chuyên môn nào cản trở khả năng phát triển các lĩnh vực chuyên môn khác của bạn hay không.
+0

Xem thêm http://stackoverflow.com/questions/122493/is-it-better-working-on-a-single-technology-or-working-on-different-ones –

Trả lời

20

Ben, Hầu như tất cả các lập trình viên dày dạn vẫn là sinh viên lập trình. Bạn không bao giờ ngừng học bất cứ điều gì khi bạn là một nhà phát triển. Nhưng nếu bạn đang thực sự bắt đầu sự nghiệp của bạn thì bạn nên lo lắng về điều chuyên môn. Tất cả các API, khung công tác và kỹ năng mà bạn mong đợi mang lại cho bạn sự tồn tại lâu dài trong lĩnh vực này sẽ không xảy ra. Công nghệ dường như thay đổi rất nhiều và bạn nên linh hoạt và đủ linh hoạt để học bất cứ điều gì. Kiến thức bạn có được trên một nền tảng/api/framework không chết. Bạn có thể áp dụng các kỹ năng cho nền tảng/api/framework lớn nhất tiếp theo.

Điều đó đang được nói bạn nên dừng lại lo lắng về tương lai và tập trung vào những điều cơ bản. DataStructures, Phân tích và Thiết kế Thuật toán, Thiết kế Compiler, Thiết kế hệ điều hành là những thứ tối thiểu mà bạn cần. Và hơn nữa bạn nên sẵn sàng quay trở lại và đọc những cuốn sách tho trong lĩnh vực này bất cứ lúc nào trong sự nghiệp của bạn. Thats tất cả là bắt buộc. Chúc may mắn.

Xin lỗi nếu tôi có vẻ giống như một cố vấn viên giỏi; nhưng đó là những gì tôi nghĩ. :-)

+2

rptony, Không phải là thiết kế trình biên dịch , hệ điều hành thiết kế một chút trên đầu trang? Ngay cả phân tích thuật toán cũng có thể quá ít lý thuyết. Tôi đồng ý với phần còn lại của danh sách ... –

5

Không trực tiếp từ chối tiền đề của bạn nhưng tôi thực sự nghĩ là một người theo chủ nghĩa chung là một vị trí tốt trong lập trình. Bạn chắc chắn sẽ phát triển chuyên môn trong các lĩnh vực cụ thể nhưng nó có khả năng là một sản phẩm của một trong hai lợi ích cá nhân hoặc làm việc cần thiết. Theo thời gian, những thứ bạn có thể chuyển qua các ngôn ngữ và lĩnh vực có vấn đề là trung tâm của những gì làm cho các lập trình viên giỏi.

3

Tôi nghĩ câu hỏi quan trọng hơn là: Bạn quan tâm đến lĩnh vực chuyên môn nào nhất?

Khi bạn đã biết, hãy bắt đầu học trong khu vực đó!

3

Tôi nghĩ kỹ năng lớn nhất của tất cả sẽ là thích ứng với thời đại, bởi vì nếu chủ nhân của bạn có thể thấy tiềm năng này trong bạn thì họ sẽ khôn ngoan để giữ chặt.

Điều đó nói rằng, tôi khuyên bạn nên đi sâu vào khu vực mà bạn sẽ thích. Học tập được thúc đẩy bởi sự nhiệt tình.

Vì công việc hiện tại của tôi là với nhà cung cấp dịch vụ internet, tôi đã tìm thấy kiến ​​thức về mạng đặc biệt hữu ích. Nhưng một ngày nào đó tôi muốn chơi với đồ họa 3D (không nhất thiết là trò chơi).

1

Đi sâu như bạn có thể bắt đầu trong một môi trường, win32, .net, Java, Objective C ... bất cứ điều gì.

Điều quan trọng là xây dựng hiểu biết sâu sắc về cách X hoạt động ... để bạn có thể dịch cùng khái niệm sang các ngôn ngữ hoặc nền tảng/môi trường khác, nếu bạn muốn.

"Có bất kỳ lĩnh vực chuyên môn nào cản trở khả năng phát triển các lĩnh vực chuyên môn khác của bạn hay không". Phân loại, nhưng không có gì vĩnh viễn tôi nghĩ.

Vì bản thân tôi tương đối xanh (ít hơn 4 năm), tôi đến từ tư duy thực sự OOP. Tôi hiếm khi nhảy ra khỏi .NET, vì vậy tôi đã gặp khó khăn trong một công việc khi tiếp xúc với mã nhúng. Với các lập trình viên nhúng tạo ra sự sợ hãi đối tượng và mất hiệu suất thừa kế. Tôi phải học về môi trường, trí nhớ thấp và thời gian chạy chậm, chúng đến từ đó. Đó là thời gian để phát triển, tôi đã có một thời gian tốt hơn ở đó bởi vì tôi hiểu khu vực của tôi khá tốt.

Tôi sẽ nói nếu bạn chọn một cái gì đó để chuyên về thị trường và tiền bạc, bạn có thể sẽ ghi ra nhanh chóng. Nếu bạn bắt đầu chuyên chọn thứ gì đó bạn thích. Tôi thích giao diện lập trình GUI và các công cụ bên máy chủ ghét, bạn tôi là đối diện, nhưng cả hai chúng tôi đều yêu thích công việc của mình. Nếu anh ấy phải làm công việc của tôi, và tôi, anh ấy sẽ cả điên rồ vì chán nản.

1

Là sinh viên, tôi khuyên bạn nên quên đi những gì bạn đang lập trình và tập trung vào chính quy trình phần mềm. Hiểu cách phân tích vấn đề và đặt câu hỏi phù hợp; tìm hiểu mọi mẫu thiết kế mà bạn có thể và thực sự là áp dụng chúng tất cả để đạt được sự hiểu biết và đánh giá thực sự về thiết kế hướng đối tượng; viết các bài kiểm tra và sau đó chỉ viết mã nhiều như bạn cần để thực hiện các bài kiểm tra. Tôi nghĩ cách tốt nhất để thực sự học là chỉ viết mã nhiều nhất có thể - ngôn ngữ và tên miền không quan trọng, duyệt qua sourceforgefreshmeat cho bất kỳ dự án nghe thú vị nào và tham gia. Điều quan trọng là hiểu các nguyên tắc cơ bản của kỹ nghệ phần mềm.

Và có, điều này bao gồm C. Hoặc Assembler. Đây là cách dễ nhất để hiểu rõ về cách hoạt động của máy tính của bạn và mã thực sự của bạn đang hoạt động như thế nào.

Cuối cùng, không bao giờ ngừng học - Kiến trúc hướng dịch vụ, đảo ngược kiểm soát, ngôn ngữ cụ thể theo miền, quản lý quy trình nghiệp vụ đều thể hiện những lợi ích to lớn để chúng trở nên quan trọng. tham gia lực lượng lao động, những người biết điều lớn tiếp theo sẽ là gì?

Các vấn đề liên quan