Làm thế nào để bạn đối phó với bản chất năng động của phát triển phần mềm cấp cao? [đóng cửa]


25

Tôi coi mình là một nhà phát triển phần mềm cấp cao. Tôi thích đọc rất nhiều, và nó đã giúp tôi trong suốt sự nghiệp. Tôi nghĩ rằng tôi đang làm tốt.

Ngay bây giờ, tôi dành nhiều thời gian để học những điều mới. Tôi không mút tay khi viết mã ngay bây giờ, nhưng tôi sắp bắt đầu một gia đình và tôi thường xuyên thấy nhiều người cao niên có 14-15 năm kinh nghiệm, người vì họ cắt giảm việc học những điều mới. tại lập trình. Họ đã truyền cảm hứng cho những con số tại một số thời điểm, nhưng họ không còn nữa.

Bạn có thể lập luận rằng những điều cơ bản không bao giờ thay đổi, nhưng nó dường như tạo ra sự khác biệt khi bạn đang mã hóa trên Delphi trong 10 năm và đột nhiên mọi người đang sử dụng .NET framework. Đúng là một nhà phát triển có kinh nghiệm sẽ mất ít thời gian hơn khi học một khuôn khổ mới, nhưng nó vẫn không thời gian nhu cầu và công sức.

Làm thế nào để một nhà phát triển phần mềm quản lý các yêu cầu của công việc trong khi vẫn có thể tập trung vào những thứ cần thiết đưa bạn ra khỏi công việc, như bắt đầu một gia đình?


1
Cái gì, bạn không nghĩ rằng bạn có thể quản lý một Singularity? Bất kỳ nhà phát triển tốt có thể! - nói đùa, đừng nghe tôi ...
Klaim

Câu trả lời:


30

Một cái gì đó bạn nói nổi bật: "Tôi thường xuyên thấy nhiều người cao niên có kinh nghiệm 14-15 năm ... họ bây giờ rất thích lập trình". Đó là một nét cọ khá rộng mà bạn đang sử dụng để vẽ những người có kinh nghiệm. Tôi muốn chỉ ra một vài điều cần xem xét:

  • Các học viên trẻ / ít kinh nghiệm thích chỉ ra cách người cao niên của họ không làm X hoặc Y, khi họ không hiểu rằng kinh nghiệm đó đã cho thấy rằng đó là những ý tưởng tồi. Tuy nhiên, mỗi thế hệ mới của các học viên dường như muốn lặp lại những sai lầm đó. Hiện tượng đó là phổ biến cho tất cả các ngành nghề, không chỉ lập trình.
  • Không phải tất cả những người đã làm việc một số năm là kinh nghiệm, trưởng thành hoặc tốt. Nó cần nỗ lực để trở nên tốt hơn. Rất nhiều nỗ lực đưa vào khi bạn còn trẻ sẽ xây dựng một cơ thể tốt về kinh nghiệm mà bạn có thể rút ra sau này.

Có lẽ những người bạn đang đề cập đến không bao giờ tốt. Chỉ có thể là họ đang nhìn bạn suy nghĩ, tại sao bạn cứ khăng khăng làm mọi thứ một cách khó khăn?

Tuy nhiên, sự thật là khi bạn bắt đầu một gia đình, bạn có ít thời gian hơn để theo kịp các đồ chơi mới. Bạn thực sự có ít thời gian hơn khi con bạn già hơn bạn khi chúng còn nhỏ. Đồ chơi không làm cho bạn trở thành một lập trình viên tốt hơn. Không làm công cụ. Điều làm cho bạn tốt là khả năng phá vỡ các vấn đề và xây dựng một giải pháp làm việc. Điều làm cho bạn tuyệt vời là khả năng dạy người khác trở nên tốt. Đó là nơi kinh nghiệm bắt đầu tỏa sáng.


1
Quan tâm đến công phu trên downvote? Bạn có thể không thích những gì tôi nói, nhưng đó là sự thật.
Berin Loritsch

4
các nhận thức hắn chỉ còn là một phần quan trọng trong câu hỏi hóc búa của mình. Tất cả những gì tôi làm là đối phó trực tiếp với nhận thức đó. Nói tóm lại, tôi quan tâm đến công cụ theo đuổi hơn là khả năng của anh ấy để trở thành một nhà phát triển giỏi dày dạn . Anh ấy thậm chí có thể trở nên tuyệt vời . Điều đó sẽ không xảy ra nếu tất cả kinh nghiệm của anh ấy nói với anh ấy là các nhà phát triển lớn tuổi hơn. Đó là một người giải thích khủng khiếp để nỗ lực để đến nơi anh ta muốn.
Berin Loritsch

1
@Berin Loritsch: Đó là một điểm công bằng. Ý định của bạn là tốt // Ở Hoa Kỳ, có quá nhiều người vấp ngã để mắng chửi người khác vì đã khái quát hóa. Tôi đã ngoại lệ cho phản ứng của bạn bởi vì có vẻ như bạn đang làm điều này.
Jim G.

1
Hy vọng, những gì bạn sẽ học theo thời gian là khi nào nên đầu tư thời gian vào việc học các công nghệ mới và khi nào nên bỏ qua chúng. Điểm mấu chốt là thời gian là một nguồn tài nguyên quý giá. Khi SOAP / XML RPC lần đầu tiên xuất hiện, còn quá sớm để nói nó thực sự sẽ làm gì. Bây giờ với vài năm đeo thắt lưng, chúng tôi đã học được một số bài học đau đớn và sửa đổi cách tiếp cận với các dịch vụ dựa trên REST. Bên cạnh đó, những người già của chúng ta cần những chàng trai trẻ có năng lượng vô biên để tìm ra những gì đáng để dành thời gian vào việc học. Chúng tôi có thể chậm hơn một chút để bóp cò, nhưng chúng tôi không mất nhiều thời gian để tăng tốc.
Berin Loritsch

2
@Berin Loritsch: Có lẽ tôi hiểu rồi. Trong thực tế, tôi đã thấy một số người cao niên (bao gồm cả ông chủ hiện tại của tôi), người chỉ đơn giản là đá khi giải quyết vấn đề. Anh ấy không vui mừng khi tôi nói rằng bạn có thể dễ dàng sử dụng X khung này nhưng anh ấy không ngại sử dụng nó khi anh ấy thấy nó thực sự hữu ích. Vì vậy, có lẽ những người cao niên khác không tốt, không tốt bởi vì họ chưa bao giờ. Không phải vì họ mất liên lạc vì công nghệ mới. Bây giờ tôi cảm thấy tốt hơn nhiều rồi. (Tôi hy vọng những gì tôi đã viết có ý nghĩa)
Hemant

20

Thật khó để dự đoán tương lai. Nhưng một điều là có giá trị nhất cho chắc chắn bất kể công nghệ.

Đó là khả năng của nhà phát triển để giải quyết vấn đề .

Nhiều người trong số các nhà phát triển chất lượng là độc lập công nghệ. Ví dụ khả năng phân tích là chất lượng quan trọng nhất mà tôi biết. Nó giống như học toán. Nó đơn giản là vô tận.


1
Có, cộng với khả năng / trung thực để biết khi nào các công cụ / kỹ năng có sẵn của bạn không giải quyết được vấn đề. Vì vậy, bạn đi tìm hiểu một số công cụ mới và sau đó quay trở lại "khả năng giải quyết vấn đề."
Peter Rowell

1
eh ... Điều này hơi mơ hồ, và tbh, đó là một chút của một khoản đồng thanh toán. Nếu một nhà phát triển vẫn hoàn toàn vui vẻ "giải quyết vấn đề" trong vb6 ... tốt, tôi không thực sự muốn làm việc với mã của họ. Duy trì hiện tại không phải là dự đoán tương lai, đòi hỏi thời gian / công việc và sẽ có ít cơ hội hơn cho nó khi bạn có một gia đình.
Steven Evers

5

Tôi ước tôi có một suy nghĩ tích cực hoặc cụ thể - nhưng tôi nghĩ làm thế nào một lập trình viên luôn cập nhật và cân bằng công việc / gia đình thay đổi rất nhiều từ lập trình viên sang lập trình viên.

Suy nghĩ ngẫu nhiên:

  • Không phải mọi dự án hoặc công ty phần mềm đều cần công nghệ mới nhất tuyệt đối - ngay cả trong phần mềm. Sự thay đổi là mạnh mẽ nhất ở rìa chảy máu - các công ty chạy hơi chậm sau rìa chảy máu thường có rất nhiều cơ hội để phát triển và thay đổi, nhưng không phải là nhu cầu cấp bách phổ biến cho sự thay đổi liên tục ngay lập tức.
  • Một lập trình viên càng có nhiều kinh nghiệm, họ càng có thể tận dụng kinh nghiệm thay cho từ thông dụng mới nhất / lớn nhất. Tôi đã nhận thấy những người tôi ngưỡng mộ nhất trong hơn 20 năm trong ngành có vô số phép ẩn dụ cho việc điều C # mới nhất là câu trả lời hoàn hảo cho vấn đề họ gặp phải vào cuối những năm 80 với C. Bằng cách tận dụng các vấn đề và giải pháp trước đó, họ mang lại nhiều hiểu biết hơn cho bảng với ít nghiên cứu hơn.
  • Mỗi lần tôi phải đánh giá các lập trình viên trong nhóm, khả năng hoàn thành công việc và chơi tốt với những người khác đã vượt qua hàng loạt công nghệ mà lập trình viên đã làm việc. Mặc dù ngành công nghiệp sẽ phát triển nhiều, cạnh tranh, ngôn ngữ mới, API và công cụ, rất có thể dự án sẽ chỉ sử dụng đối thủ cạnh tranh tại một thời điểm. Nhưng hoàn thành công việc và giúp người khác làm điều tương tự không bao giờ lỗi thời và cách thức thực hiện chậm hơn nhiều - không phải IM, phương tiện truyền thông xã hội, điện thoại thông minh và mọi thứ khác trong thời đại kỹ thuật số không thay đổi khía cạnh lập trình đó , quá.

Nó cũng có thể thú vị để làm việc tại một công ty chạy một chút furthur đằng sau cạnh chảy máu, nói 3-4 năm. Bạn có thể thấy rõ hơn những sai lầm mà người khác đã mắc phải, và có lợi thế của các công cụ và triển khai trưởng thành hơn.
Michael K

Tôi đồng ý. Tôi thực sự làm việc một chút phía sau bản thân mình, và tôi muốn biết rằng những người khác đã đập đầu vào nó một chút trước khi tôi phải thử nó. :)
bethlakshmi

5

Đầu tiên, Microsoft kinh doanh bán các công cụ và nền tảng phát triển phần mềm để chạy phần mềm đó. Điều này khuyến khích họ thực hiện các thay đổi cho dù họ có cần thiết hay không. Điều đó không có nghĩa là tất cả những thay đổi của họ là vô ích, chỉ là có rất nhiều lĩnh vực trong nghề nghiệp của chúng tôi ổn định hơn nhiều. Với kinh nghiệm, bạn có thể nhận ra nhóm nhạc nào đáng để nhảy vào ngay lập tức và bạn có thể chờ đợi để trưởng thành hơn.

Thứ hai, kinh nghiệm chỉ cần thời gian. Hầu hết các nhà phát triển với 15 năm kinh nghiệm, những người xấu bây giờ đều xấu 15 năm trước. Đừng phân bổ sai cho tuổi những gì có thể được giải thích thỏa đáng bằng sự bất tài.

Thứ ba, đừng nhầm lẫn việc có kiến ​​thức lỗi thời với việc không thể sử dụng những kiến ​​thức mới nhất và lớn nhất khi có nhu cầu. Nó thường là đủ để biết những gì ngoài đó. Ví dụ, cho đến gần đây, kiến ​​thức lập trình web của tôi là cổ điển vào cuối những năm 90, nhưng khi tôi muốn xây dựng một trang web cho anh trai mình, tôi đã biết đủ để kiểm tra các công nghệ "mới lạ" như CSS, jQuery và các hệ thống quản lý nội dung, và khá lên đến tốc độ trong một vài tuần. Nói cách khác, nếu bạn không cần thứ gì đó trong 10 năm qua, bạn không có khả năng gặp trường hợp khẩn cấp, nơi bạn muốn bạn tăng tốc ngay bây giờ.

Cuối cùng, làm cha mẹ thực sự là một cam kết thời gian lớn, nhưng ít thời gian hơn rất nhiều người không có con dường như nghĩ. Phụ huynh vẫn có thể đọc sách, xem TV, chơi trò chơi, lướt web và thậm chí là tham gia các lớp học. Tôi sốc, tôi biết. Bạn chỉ cần làm điều đó trong các phần nhỏ hơn và thực hiện các ưu tiên. Về điều duy nhất tôi đã từ bỏ hoàn toàn là xem các trình chạy lại.


3

Tôi có thể đảm bảo với bạn rằng những người thể hiện các kỹ năng lập trình kém sau mười đến mười lăm năm không bao giờ thực sự phát triển phần mềm. Nắm vững một bộ công cụ không giống như làm chủ nghệ thuật phát triển phần mềm.

Tôi đã viết mã trong hơn ba mươi năm. Tôi đã trải qua một vài giai đoạn mà tôi phải đặt sự nghiệp của mình vào chế độ lái tự động do các nghĩa vụ và / hoặc lợi ích bên ngoài. Những gì người ta phải học để làm như một lứa tuổi là để tránh nhảy vào một nhóm công nghệ sớm. Hầu hết các công nghệ không thể sống theo sự cường điệu của họ. Là một học viên lớn tuổi có nghĩa vụ ngoài công việc, người ta phải keo kiệt với thời gian của một người. Một học viên có kinh nghiệm có thể chờ đợi một vài năm để công nghệ mới phát triển vì anh ấy / cô ấy đã thành thạo nghệ thuật phát triển phần mềm.


Vì vậy, bạn không thấy khó khăn khi duy trì cập nhật với các công nghệ mới khi chúng trưởng thành?
Hemant

1
Ngành công nghiệp này là theo chu kỳ. Hầu hết các công nghệ mới ít hơn nhiều so với các ý tưởng cũ được đóng gói lại. Nếu nguyên tắc cơ bản của một người mạnh mẽ, người ta sẽ không gặp vấn đề gì. Hãy nhớ rằng, người ta không cần phải đi đầu trong công nghệ để kiếm được một cuộc sống tốt như một kỹ sư phần mềm.
bit-twiddler

2

Qua nhiều năm kinh nghiệm:

  • Các ngôn ngữ đã thay đổi (thường là tương đối chậm).
  • Phạm vi các vấn đề có thể được giải quyết trên thực tế đã tăng lên (nhanh hơn một chút);
  • Kích thước và độ phức tạp của các giải pháp đã tăng (tương đối nhanh chóng);
  • Đã có một cái gì đó là flavor of the day(đôi khi tốt, thường là xấu).

Như đã lưu ý trong một cuộc thảo luận về các mẫu, nhóm bốn người không phát minh ra các mẫu. Họ đã đưa ra thuật ngữ và mẫu cho các giải pháp đã được áp dụng.

Không giống như nhiều lĩnh vực khác, vẫn còn rất nhiều điều không phổ biến. Tôi đã thấy rất nhiều thứ tiên tiến đến và đi. Nhiều trong số này đã được áp dụng lại các kỹ thuật đã có trong thực tế và những kỹ thuật này thường thành công ở một mức độ nào đó. Những người khác đã ít nhiều biến mất, và hầu hết nơi tiếp cận mới. (Có ai nhìn thấy một ngôn ngữ thế hệ thứ 5 gần đây không?)

Các lập trình viên mà tôi đã thấy là người hiệu quả nhất có thể chọn và lắp ráp các thành phần đã được chứng minh thành một giải pháp làm việc. Điều này hiếm khi liên quan đến bất cứ điều gì tiên tiến, thường sẽ làm tăng rủi ro dự án. Khả năng xây dựng trên công việc đã được thực hiện, cho phép chúng tôi tăng phạm vi của những gì có thể.

Ngôn ngữ lập trình có xu hướng rơi vào tương đối ít gia đình. Làm quen với một ngôn ngữ trong một gia đình giúp làm việc với các ngôn ngữ tương tự dễ dàng hơn. Hiểu các thư viện có sẵn trong ngôn ngữ và tận dụng chúng có thể làm tăng đáng kể năng suất và độ tin cậy. Nói chung, tôi sẽ chọn một ngôn ngữ cũ hơn với các thư viện phù hợp thay vì ngôn ngữ mới hơn mà không có các thư viện phù hợp.

Khi áp dụng các công nghệ mới là điều quan trọng để tránh Because We Can hội chứng. Thêm một công nghệ mới bởi vì nó là hương vị của năm, có xu hướng gây ra nhiều vấn đề hơn nó giải quyết. Biết khi nào công nghệ sẽ giải quyết một vấn đề thực sự, và khi nào nó sẽ thêm phức tạp là một kỹ năng hữu ích.

Một lập trình viên thực sự giỏi sẽ giải quyết các vấn đề mới và sử dụng các giải pháp hiện có cho phần còn lại. Rất ít công ty cần công nghệ cạnh chảy máu, tất cả đều cần giải pháp vững chắc.

Tôi thường hối hận khi trượt lưỡi dao cạo. Tôi không nhớ là đã từng hối hận khi sử dụng một công nghệ đã được chứng minh. Tuy nhiên, rất nhiều thứ được mô tả newlà đóng gói lại một cái gì đó hiện có. Thông thường, việc đóng gói lại này làm cho mọi thứ dễ hiểu hơn và áp dụng phù hợp.


2

Không ai có thể theo kịp mọi thứ. Có lẽ bạn đã khá bận rộn theo kịp với lời đề nghị của Microsoft. Bạn đã xem Ruby trên cơ sở dữ liệu RAILS và Python và NoQuery và tạo ứng dụng di động và Hadoop và CSS cũng như HTML5 và jQuery và ExtJS và ...?

Tôi đã ở trong phần mềm khá lâu. Tôi cố gắng theo kịp công nghệ thực sự mới, như những ý tưởng mới cho cơ sở dữ liệu song song ồ ạt và bỏ qua những thứ xấu xí (ví dụ MFC, WinForms, SOAP, XML, EJB) và tầm thường nhất có thể. Hầu hết chúng ta chỉ thấy những ý tưởng cũ tuyệt vời được đóng gói lại và cuối cùng được thông qua. Lập trình chức năng? Tôi đã sử dụng INTERLISP vào năm 1977. Ứng dụng điện thoại di động? Đó là cùng một giao diện người dùng và đồ họa 2D theo sự kiện mà chúng tôi đã làm trong ít nhất 30 năm. Chắc chắn, có một nghệ thuật để thiết kế một ứng dụng có thể sử dụng cho một màn hình cảm ứng nhỏ, nhưng lập trình hoàn toàn không mới.


1

Tôi đồng ý với @Amir rằng kỹ năng của bạn là giải quyết vấn đề không phải là miền lan truyền của bạn, nhưng tôi đánh giá cao sự quan tâm của bạn, vì vậy:

Nếu bạn có quyền tự do chọn bạn làn đường hiện tại thì hãy chọn một làn đường càng gần với các prinicples đầu tiên càng tốt (ví dụ như một làn đường kiểu C ++) để khi công việc của bạn chuyển sang một miền mới, đường cong học tập sẽ ít hơn - vì nó chỉ là trừu tượng ở trên bạn. Nếu bạn hiện chỉ đầu tư vào các ngôn ngữ cấp cao chuyển xuống một sự trừu tượng thì khó hơn nhiều (ngay cả khi chỉ trong nhận thức).

Nếu bạn không có nguồn cấp dữ liệu đó thì chỉ cần tận dụng hết 8 giờ làm việc của bạn .. nếu bạn đam mê cao, bạn sẽ không bị "mắc kẹt", và bạn sẽ luôn tìm thấy những vấn đề thú vị để giải quyết một cách tự nhiên sẽ dẫn bạn tìm hiểu thêm .


1

Nó sẽ phụ thuộc vào công việc của bạn và công việc bạn muốn. Có những vị trí mà các nhà phát triển vẫn đang sử dụng các công nghệ cũ hơn. Vẫn còn rất nhiều COBOL để tiếp tục (Tôi chắc chắn đã có điều gì đó thay đổi.).

Làm việc tại một công ty thực hiện một chuyển đổi lớn như bạn mô tả có thể khiến một số người mất việc. Đôi khi công ty đầu tư vào việc đào tạo thay vì yêu cầu bạn phải học nó vào thời gian riêng của bạn.

Có một gia đình có thể hạn chế lựa chọn công việc của bạn. Có thể làm cho bạn ít di động hơn. Bạn có thể đi làm khi bắt đầu với một nửa tiền lương của mình với hy vọng có một ngày lương lớn - có thể không phải với trẻ em và thế chấp.

Mới hơn không phải luôn luôn tốt hơn và nhiều người không kéo dài.


1

Tôi không làm trong lĩnh vực y tế, nhưng còn sự tương đồng giữa nhà phát triển và bác sĩ thì sao? Cả hai lĩnh vực đã chứng kiến ​​những thay đổi to lớn trong 20 năm qua và tốc độ thay đổi nhanh hơn bao giờ hết. Có phải tất cả các bác sĩ theo kịp? Không. Tất cả các nhà phát triển có theo kịp không? Không. Bạn có thể thực hiện bất kỳ khái quát nào về các nhà phát triển hoặc bác sĩ có 14-15 năm kinh nghiệm không? Nhiều kinh nghiệm hơn có nghĩa là bạn có một bộ câu trả lời lớn hơn cho các vấn đề tương tự. Có kinh nghiệm át chủ bài? Không lâu dài.

Hãy suy nghĩ như một con cá mập phải tiếp tục bơi hoặc chết. Tiếp tục học hoặc chết (hoặc chuyển sang quản lý, đó là nơi mà hầu hết các ngành nghề phát triển đạt đến đỉnh điểm vào khoảng 10-15 năm).


Tôi không chắc chắn về tình hình nơi bạn sống, nhưng ở Úc có yêu cầu các chuyên gia y tế tham gia vào giáo dục và kiểm tra liên tục để giữ lại đăng ký của họ (và do đó khả năng hành nghề y).
An thần người nước ngoài

0

Tôi có những mối quan tâm tương tự ở phía sau tâm trí của tôi, nhưng suy nghĩ gần đây của tôi về điều này là ngừng cố gắng dự đoán khả năng thích ứng của riêng bạn và chỉ thích nghi. Tôi thấy rằng nếu tôi cho rằng tôi có thể theo kịp, tôi thường chỉ làm. Nếu tôi băn khoăn về việc trở nên lỗi thời, điều đó có thể làm cho nó trở thành một lời tiên tri tự hoàn thành.

Như bạn đã nói, vẫn còn trên ngón chân của bạn. Và nếu bạn không thể theo kịp, đừng đổ mồ hôi quá nhiều. Công nghệ có một cách thú vị để đi vòng tròn đầy đủ, và bạn có thể thấy mình trở lại chính trong hoạt động chính thống một cách xuất sắ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.