Tôi muốn bình luận về điều này bởi vì tôi nghĩ rằng mặc dù câu hỏi này có thể đã được hỏi rất nhiều trên các diễn đàn này, nhưng điều đó không quan trọng, bạn có những quan điểm khác nhau mỗi khi nó được hỏi.
Với điều đó, đây là kinh nghiệm của tôi và tôi đoán "khôn ngoan hay thấu hiểu" trong nghề nghiệp của chúng tôi. Một số điều này sẽ trùng lặp với những gì người khác đã nêu nhưng tôi liệt kê kinh nghiệm của tôi và sau đó là triết lý / ý kiến / đề xuất của tôi cho bạn cho từng
1) Có, như những người khác đã nêu, bạn cần phải có một mức độ nào đó để bạn có thể tiêu hóa các ý tưởng phức tạp, xử lý và có thể giải quyết và đưa ra các giải pháp của riêng mình cho các vấn đề. Mặt khác: Bạn có thể học cách trở thành người giải quyết vấn đề tốt hơn theo thời gian nếu bạn có nhiều động lực tích cực để tiếp tục gắn bó với nó, làm việc chăm chỉ và đặt nhiều câu hỏi. Hầu hết các nhà phát triển nói rằng họ biết tất cả mọi thứ hoặc cố gắng tỏ ra như họ chỉ đơn giản là che giấu sự thật rằng họ đã hỏi rất nhiều câu hỏi, làm việc hết mình trong mã, v.v. để đến nơi họ đang ở và để có được sự tốt như họ có vẻ là
2) Trong ngành của chúng tôi, một lần nữa theo ý kiến của tôi, có rất nhiều bản ngã bạn phải đối phó với điều không may. Tôi không thấy đây là một điều tốt và nó đặc biệt là một đặc điểm của rất nhiều nhà phát triển ngoài kia.
Những gì bạn sẽ tìm thấy trong kinh nghiệm của tôi là một trong những loại đội sau:
Các đội "Code & Run". Điều này có nghĩa là tất cả những gì họ quan tâm là nhanh chóng thoát ra khỏi cửa, họ có thể quan tâm ít hơn về chất lượng mã (mã sạch) hoặc mã có thể duy trì sau này. Tránh xa những cửa hàng này nếu bạn có thể. Thật khó vì ngay cả khi bạn khoan một công ty trong một cuộc phỏng vấn, bạn sẽ không thực sự biết cách nhóm hoạt động cho đến khi bạn nhận được công việc và mất khoảng 4 - 6 tháng để xem họ thực sự viết mã như thế nào hoặc nếu họ thực sự thúc đẩy làm việc theo nhóm và hợp tác thúc đẩy (ý tưởng, v.v.)
Cửa hàng dev trung bình đó là "ok". Điều này có nghĩa là họ quan tâm một chút về chất lượng mã. Họ có thể có một vài nhà phát triển tốt trong nhóm làm việc tốt trong nhóm và có thái độ tích cực và sau đó là sự kết hợp của một số nhà phát triển có thể có những đặc điểm khác như ích kỷ, lười biếng, v.v ... Vì vậy, ý tôi là đó là một cửa hàng quần áo nhưng nơi mã không phải là lớn nhất nhưng có thể chấp nhận được
Cửa hàng tuyệt vời. Cửa hàng này cố gắng hết sức để thực sự làm theo các mẫu thiết kế tốt. Họ có thể không phải là chuyên gia về các mẫu thiết kế nhưng họ biết về các thực hành tốt như DRY, RẮN, bất cứ điều gì khác. Họ không nhất thiết mong đợi các siêu sao gia nhập đội của họ nhưng họ đang tìm kiếm các nhà phát triển ít nhất là mã hóa phần nào sạch và có nhiều kinh nghiệm trước tiên. Đây là những đội bạn muốn sải bước ... nhưng bạn có thể phải đi qua một vài cửa hàng để tìm những đội tốt
Cửa hàng siêu sao. Đây là một cửa hàng chỉ tìm kiếm các lập trình viên tuyệt đối tốt nhất nhưng cũng có nghĩa là các lập trình viên tốt nhất có tất cả. Họ giao tiếp tốt và làm việc tốt với tư cách là một nhóm (tích cực với những người khác vì sự tốt hơn của tema). Hãy nhớ rằng mỗi cửa hàng sẽ nói với bạn, chúng tôi chỉ tìm kiếm tốt nhất. Hầu hết điều đó là vô nghĩa ... họ có ý định tốt nhưng rất nhiều lần đó chỉ là tiếp thị. Nhưng có một% cửa hàng thực sự đang tìm kiếm tài năng hàng đầu. Và bạn sẽ biết rằng khi bạn tham gia vào cuộc phỏng vấn và họ sẽ đặt câu hỏi về luồng, các mẫu thiết kế nâng cao, v.v. Vì vậy, hãy đến cấp độ đó và nếu bạn muốn làm việc trong một nhóm có loại kỳ vọng này , bạn có thể mất vài năm để đến đó
Cửa hàng siêu sao với sự rung cảm / bản ngã tiêu cực. Có những cửa hàng ngoài đó thuê các nhà phát triển hàng đầu nhưng nơi mà phần lớn các cửa hàng đó có thể có một loạt các pricks là siêu sao. Vì vậy, có những đội không chấp nhận mã xấu nhưng họ là những người thực sự thích nó. Đó không phải là một cuộc tranh luận nhóm và bạn muốn tránh xa những thứ nhảm nhí này. Ngành công nghiệp của chúng tôi không cần nó và bạn cũng không
và một trong những loại nhà phát triển sau đây:
a) Cái tôi to lớn, biết tất cả mọi thứ, luôn muốn giữ khoảng cách với tất cả mọi người, tiết lộ ít, có thái độ ... về cơ bản không phải là một người chơi nhóm và không phải là người mà bạn muốn làm việc cùng hoặc có trong nhóm của bạn
b) Các nhà phát triển ở đó chỉ để làm một công việc tầm thường và hoàn thành công việc và về nhà. Cá nhân tôi đoán không có gì sai với quan điểm ban đầu nhưng đồng thời tôi nghĩ rằng nghề nghiệp của chúng tôi cần các nhà phát triển đam mê và sẵn sàng hy sinh và tận hưởng nghề của họ để cuối cùng cung cấp giá trị mà còn cải thiện như một nhà phát triển trong thời gian dài lôi vì họ quan tâm đến việc trở nên tốt hơn
c) Những người có lẽ có thể tạo ra nó nhưng quá lười biếng, tiêu cực hoặc bất kỳ đặc điểm nào khác mà họ sở hữu chỉ gây ra địa ngục cho tất cả mọi người nhưng chủ yếu là do yếu tố lười biếng. Không muốn những người lười biếng trong nhóm của tôi ... những kỹ sư lười biếng không phải là những gì chúng ta cần trong nghề nghiệp
d) Những người giỏi đối với các nhà phát triển vĩ đại, quan tâm đến tinh thần đồng đội, những người sẵn sàng hạ mình, dạy người khác, giao tiếp và cởi mở với những lời chỉ trích mang tính xây dựng về quy trình hoặc mã (đánh giá mã, v.v.) và chỉ đơn giản quan tâm đến việc tích cực trong công việc trong khi làm việc như một nhà phát triển với tất cả các trường đại học. Bạn muốn làm việc với những loại người này, một môi trường phát triển hỗ trợ tích cực. Bây giờ tôi không nói rằng một đội nên tìm kiếm người truyền tin ... bạn cần có khả năng giữ trọng lượng của riêng mình nhưng bạn không muốn kết thúc với các đội nơi họ mong đợi bạn trở thành nhà phát triển "ngôi sao" và không bao giờ đặt câu hỏi ... đó là một môi trường xấu. Tránh xa điều đó ... thật khó để tìm thấy môi trường này theo ý kiến của tôi trong nghề nghiệp nói chung theo kinh nghiệm của tôi và người bạn khác trong suốt sự nghiệp của chúng tôi. Bạn có thể tìm thấy những đội tốt nhưng họ khó tìm hơn là hạ cánh trong các cửa hàng hỗn loạn với thái độ xấu. Vì vậy, hãy biết những gì bạn đang tham gia, cỏ không phải lúc nào cũng xanh hơn chỉ vì các nhà phát triển được gọi là "chuyên gia". Tôi chắc chắn rằng điều này có thể liên quan đến bất kỳ công việc nào có thể nhưng tôi nghĩ nhiều hơn với nghề nghiệp của chúng tôi hơn hầu hết những người khác ngoài kia.
3) Một điều tôi học được một cách khó khăn là nếu bạn là người cầu toàn và quan tâm quá nhiều đến quy trình tốt và mã hoàn hảo, một ngày nào đó bạn sẽ gặp rắc rối. Tìm sự cân bằng đó. Bạn không muốn mã cẩu thả thuần túy và bạn không muốn lãng phí quá nhiều thời gian đến mức chủ nhân của bạn bực mình vì bạn phải mất 2 tuần để hoàn thành một nhiệm vụ có kích thước tương đối thường phải làm trong khi nói 3-4 ngày vì bạn muốn nó quá sạch sẽ. Một cuốn sách hay để đọc và người tốt để theo dõi trong ngành của chúng tôi là "Chú Bob". Tôi là một fan hâm mộ lớn của anh ấy cũng như nhiều nhà phát triển ngoài kia. Đọc bài viết trên blog của anh ấy về mã và mua sách của anh ấy. Tôi không thể nói anh ấy có bao nhiêu sự khôn ngoan và kinh nghiệm để cung cấp cho mọi người bao gồm cả bản thân bạn, người vừa mới ra khỏi trường đại học về nghề nghiệp của chúng tôi về những thái độ, thái độ tốt nhất,
blog công ty của anh ấy: http://blog.objectmentor.com/articles/carget/clean-code (và xem http://blog.objectmentor.com/articles/2009/02/03/speed-kills )
một trong nhiều cuốn sách hay của anh ấy mà tôi cảm thấy mọi nhà phát triển nên đọc hoặc đã đọc và có trên kệ của bạn: http://www.amazon.com/Clean-Code-Handbook-Software-Ccraft Skill / dp / 0132350882
Blog cá nhân của anh ấy: http://cleancoder.posterous.com/retarded-arch architecture
Và một video hay về anh ấy tại một cuộc hội thảo, anh ấy đã nói: http://www.viddler.com/explore/oredev/video/
4) Đừng căng thẳng về việc cạnh tranh với tất cả các nhà phát triển mà bạn làm việc cùng. Bạn cần nhận ra rằng bạn sẽ mất vài năm để thậm chí nắm vững những điều cơ bản trong nghề nghiệp của chúng tôi ngay cả khi bạn đã làm tốt trong CS. Mất nhiều thời gian, làm việc chăm chỉ, đặt câu hỏi, nghiên cứu, kiên nhẫn ... và đặc biệt là vì ngành công nghiệp của chúng ta hiện đang trong tình trạng khó khăn như vậy, đừng nản lòng nếu bạn không biết tất cả mọi thứ. Tập trung vào những điều cơ bản trước ... biết rõ về chúng trong vài năm đầu. Đừng quá phức tạp hóa những lo lắng của bạn, bạn là một Nhà phát triển Jr. đang cố gắng trở nên tốt hơn và điều đó sẽ xảy ra nếu bạn làm việc chăm chỉ và giỏi OOP cơ bản trước. Rất nhiều nhà phát triển trong ngành của chúng tôi vẫn không biết các nguyên tắc cơ bản vì họ đã không nỗ lực để cố gắng biết họ và đó là một điều tiêu cực. Bạn muốn biết rõ các nguyên tắc cơ bản trước tiên (Đa hình, Đóng gói, yada yada). Nếu bạn không có nhiều cơ hội để thực hiện nhiều OOP trong vài công việc đầu tiên của mình, hãy nỗ lực hết sức để nghiên cứu và thực hành nó tại nhà bằng cách chơi xung quanh với mã với một dự án thú cưng nào đó mà bạn thích.
Tôi có thể làm bài này lâu hơn nhưng tôi sẽ dừng ở đây. Nếu bạn có thêm câu hỏi cho mỗi bài viết của tôi, chỉ cần trả lời trong các bình luận và chúng tôi có thể tiếp tục thảo luận.
Cuối cùng, nếu bạn là một thiên tài, siêu thông minh, thông minh, tầm thường, hay mút tay, bất kể bạn ở cấp độ nào, nếu bạn muốn làm việc đó trong nghề của chúng tôi, bạn sẽ luôn phải làm việc cực kỳ chăm chỉ và tiếp tục cố gắng học hỏi và cải thiện bản thân và hướng tới điều tốt nhất bạn có thể (mã, giao tiếp, v.v.). Nghề nghiệp của chúng tôi không phải là một để xem nhẹ.