Lời khuyên về nghề nghiệp: ở lại với PHP hoặc bắt đầu một sự nghiệp mới trong một cái gì đó khác (.Net?) [Đã đóng]


34

Tôi dự định chuyển đến NY trong 6-12 tháng tới, vì vậy tôi buộc phải tìm một công việc mới. Khi tôi dự định bắt đầu cuộc sống của mình ở một thành phố khác, đó có lẽ cũng là thời điểm tốt để suy nghĩ về những thay đổi nghề nghiệp.

Tôi đã tìm thấy rất nhiều ý kiến ​​khác nhau về PHP vs .Net vs Java và đây không phải là chủ đề ở đây. Tôi không muốn bắt đầu một cuộc chiến mới về ngôn ngữ nào tốt hơn. Biết một ngôn ngữ lập trình không phải là điều quan trọng nhất để trở thành một nhà phát triển phần mềm. Để trở thành một nhà phát triển thực sự giỏi, bạn cần biết OOP, thiết kế mẫu, thử nghiệm ... và một ngôn ngữ chỉ là một công cụ để khiến mọi thứ xảy ra.

Vì vậy, trở lại câu hỏi của tôi. Tôi có nhiều kinh nghiệm về CNTT - 1 năm với tư cách là một người hỗ trợ CNTT (quản trị và hỗ trợ Windows), khoảng 2 năm kinh nghiệm về lập trình nhúng (VB.Net 2005) và trong 2 năm qua tôi làm việc với PHP / MySQL. Tôi đã làm việc với cửa hàng web Magento, hỗ trợ một số dự án ở Symfony, đã sửa đổi một vài trang web Drupal.

Mối quan tâm chính của tôi là như sau:

  1. Tôi có tiếp tục cải thiện các kỹ năng của mình về PHP không, ví dụ như để bắt đầu học một số khung công tác PHP chính như Zend, Symfony có thể nhận được một số chứng chỉ PHP.
  2. Hoặc tôi bắt đầu học .NET hoặc Java. Tôi quen thuộc hơn với .NET nên có lẽ tôi sẽ chọn nó nếu sự lựa chọn nằm giữa .NET và Java (hoặc bạn có thể thuyết phục tôi chọn Java :).

Thông thái nghề nghiệp, tôi không biết đâu là lựa chọn tốt nhất. Học một khuôn khổ và ngôn ngữ mới tốn nhiều thời gian hơn sau đó cải thiện các kỹ năng hiện có của tôi về PHP. Nhưng với .NET, bạn có rất nhiều khả năng (phát triển Windows 7 Phone, Silverlight, WPF) và có thể có cơ hội lớn hơn để tìm việc làm tốt hơn.

Các công việc PHP được trả lương thấp hơn .NET, ít nhất, theo nghiên cứu của tôi (sửa tôi nếu tôi sai). Nhưng nếu bây giờ tôi bắt đầu với .NET thì tôi chỉ là người mới bắt đầu và mức lương của tôi sẽ thấp. Tôi cần ít nhất hơn 2 năm kinh nghiệm trong một số ngôn ngữ để thậm chí cố gắng tìm một số công việc được trả cao hơn $ 50-60k ở NY. Mục tiêu chính của tôi trong 2-3 năm tới là cố gắng tìm một công việc trong danh mục $ 60-80k. Đừng hiểu lầm tôi, tôi không chỉ theo đuổi tiền, mà tiền là yếu tố quan trọng khi bạn cố gắng bắt đầu một gia đình.

Tôi 27 tuổi và tôi cảm thấy không có nhiều chỗ cho những quyết định sai lầm liên quan đến sự nghiệp của mình, vì vậy mọi lời khuyên sẽ rất được hoan nghênh.

Cập nhật

Cảm ơn tất cả các bạn đã dành thời gian để giúp tôi với vấn đề của tôi. Tất cả các câu trả lời và ý kiến ​​đã rất hữu ích. Tôi đã quyết định gắn bó với PHP nhưng cũng để học C # và Silverlight 4. Chúng ta sẽ thấy cuộc sống sẽ đưa tôi đến đâu.


Học cả hai. Bắt đầu một dự án trong mỗi. nó không mất nhiều thời gian
systemovich

Hãy thử mã đánh lửa. Nó là siêu dễ dàng để tìm hiểu và tài liệu tốt.
B Bảy

2
Không có hại để học 2-3 ngôn ngữ.
Rudy

Vì điều này đã bị va chạm bởi một người nào đó tôi phải hỏi: nhúng VB.NET? ..
Simon Whitehead

@SimonWhitehead nó không được nhúng chính xác nhưng tôi không thể tìm thấy từ nào tốt hơn để giải thích nó. Đó là một ứng dụng được viết trong VB.NET cho một phần cứng công nghiệp (được tạo bởi đồng nghiệp của tôi và tôi) đang liên lạc với hai bộ xử lý tín hiệu (thẻ thu thập dữ liệu).
Christian P

Câu trả lời:


64

Tôi 51 tuổi và đã sử dụng ít nhất 15 ngôn ngữ và / hoặc khung kể từ khi tôi nhận được hợp đồng thanh toán đầu tiên sau khi tốt nghiệp vào năm 1987.

Ban phước cho bạn

Tôi chưa bao giờ tham gia quản lý vì tôi không muốn, nhưng tôi biết cách lập trình và tôi biết cách giữ cho các nhóm có động lực và cung cấp mã tốt. Bạn cần phải làm việc trên các kỹ năng của mọi người và tìm kiếm công việc thú vị kéo dài bạn. Tôi chưa bao giờ ngừng học hỏi hoặc vui chơi, nhưng có những lúc tôi đi trên con đường mà tôi có thể làm với việc dừng lại - nhưng không viết mã, đi du lịch.

Miễn là bạn có thể kiếm sống và đáp ứng các cam kết cá nhân mà không ảnh hưởng đến các nguyên tắc của bạn, miễn là bạn thích những gì bạn làm (một thứ xa xỉ mà thế hệ cha mẹ tôi không có) cứ tiếp tục.

.Net và Java nói chung là hợp tác (vì chúng rất tốn kém để làm những việc hữu ích, nhưng quy mô thực sự tốt), PHP nói chung là khởi nghiệp, tôi làm Ruby (thường là các công ty khởi nghiệp xuất phát từ các studio thiết kế vì nhiều lý do) như một độc lập. Nếu bạn gắn bó với PHP, hãy học các công cụ OO, bởi vì tôi nghĩ rằng cuối cùng nó sẽ bắt đầu theo cách mọi người làm, mặc dù đó là sự tái hiện tốt hơn một chút về những gì bạn có với Java và họ có thể khiến nó trở nên năng động hơn nhiều. Những người làm Python và muốn đi du lịch có thể sẽ làm tất cả các loại trò chơi khoa học và trò chơi thú vị trên toàn thế giới. Perl vẫn là một người chạy quá và có một hồ sơ tương tự.

Quên ngôn ngữ, chọn và ngành công nghiệp bạn thích, chọn một công ty được quản lý bởi con người và có một số niềm vui mang lại giá trị cho những người đánh giá cao nó. Bạn sẽ không hối tiếc.


9
PHP rất yếu về OO. Nó bắt đầu như một ngôn ngữ mẫu và nó hiển thị.
Keyo

5
@Keyou, không có nghĩa là bạn không nên đẩy việc sử dụng các tính năng php OO vì nó đưa ngôn ngữ lên một cấp độ khác :)
jonathan

@Keyo Ai bảo rằng PHP yếu về OO vì thông tin của bạn PHP OO bây giờ rất gần với Java Xem PHP5.5 và nó tiếp tục được cải thiện
Hmmm

120

Điều gì trên trái đất sự lựa chọn của ngôn ngữ lập trình có liên quan đến sự nghiệp của bạn?

Câu hỏi này giống như hỏi, "Tôi có hai lựa chọn cho một nơi làm việc. Tôi nên làm việc tại một nơi mà ông chủ có giọng Na Uy, hay một nơi mà ông chủ có giọng Tây Ban Nha?"

Có rất nhiều quan trọng hơn cân nhắc sự nghiệp.

  1. Khởi nghiệp hay thành lập công ty?
  2. Công ty sản phẩm hay công ty mà CNTT là chức năng hỗ trợ?
  3. Bạn sẽ học những điều mới hay luyện lại cái cũ?
  4. 9 đến 5 hoặc "làm việc bất kỳ 80 giờ bạn muốn?"
  5. Đồng nghiệp tốt hay đồng nghiệp có nghĩa là gì?
  6. Đồng nghiệp thông minh hay đồng nghiệp ngu ngốc?
  7. Suit và cà vạt hay áo thun?

Danh sách này có thể tiếp tục trong nhiều giờ. Sự lựa chọn ngôn ngữ lập trình chỉ liên quan đến sự nghiệp của lập trình viên là lựa chọn nên chải tóc sang trái hay sang phải. Đó là tất cả sự phát triển phần mềm cho dù bạn đang nói ngôn ngữ lập trình nào.


19
Bạn có một điểm. Nhưng loại ngôn ngữ lập trình trong hầu hết các trường hợp gắn chặt với hồ sơ công ty. Theo hiểu biết của tôi, PHP chủ yếu được sử dụng trong các công ty khởi nghiệp và các công ty lớn được thành lập sử dụng .NET để phát triển.
Christian P

29
câu trả lời thực sự: dành vài tháng để kiếm được danh tiếng Stack Overflow năm chữ số và bạn sẽ nhận được lời mời làm việc trong phạm vi $ 100K + mà không cần phỏng vấn.
Joel Spolsky

37
@Joel: nhiều như tôi yêu StackOverflow (và chỉ còn vài tuần nữa là đạt được danh tiếng năm chữ số chỉ để giải trí), nếu tôi nhận được lời mời làm việc 100 nghìn vì điều đó, tôi sẽ mua cho bạn một cốc bia :-)
Diego Mijelshon

25
Đối với một số người, ngôn ngữ có mọi thứ để làm với sự nghiệp của bạn. Tôi thích làm việc cho nhiều công ty lớn, nhưng không phải trả giá bằng việc viết một ngôn ngữ sẽ làm tôi thất vọng / giảm năng suất. Tôi không nói rằng tôi chỉ vui khi viết một ngôn ngữ, nhưng chắc chắn có những ngôn ngữ tôi không muốn viết mã toàn thời gian, và thật ngu ngốc khi tôi chấp nhận một công việc, ví dụ, với mục tiêu viết linh hoạt- C trên 9-5 công việc viết C #. Bạn có thể không chia sẻ ý kiến ​​này, điều đó tốt. Nhưng đừng cho rằng các lập trình viên là những kẻ ngốc. Danh sách các cân nhắc quan trọng của bạncủa bạn .
Daniel Tuppeny

39
@Jelel. Tôi có thể có một công việc 100K không? Tôi có một đại diện gồm 5 chữ số và hiện đang thất nghiệp.
aaronasterling

23

Học càng nhiều ngôn ngữ càng tốt, tốt nhất là ít nhất một ngôn ngữ từ mỗi lĩnh vực phát triển chính.

  • Ngôn ngữ lập trình theo kịch bản (bạn đã có PHP, hãy thử Ruby, Python hoặc thứ gì khác)
  • Được biên dịch sang các ngôn ngữ máy ảo với các khung phong phú: .Net, Mono, Java
  • Được biên dịch thành kim loại trần: C / C ++
  • Ngôn ngữ chức năng: Lisp, F #, Haskell

Mỗi một trong số này sẽ dạy cho bạn một vài điều về các nguyên tắc cơ bản của phát triển phần mềm. Tất nhiên, trên hết, bạn sẽ cần trải nghiệm các phương pháp thiết kế khác nhau (OO, chức năng, dựa trên dữ liệu), các phương pháp làm việc nhóm khác nhau (nhanh, tdd, so với các loại cứng hơn), các nền tảng khác nhau, cơ chế triển khai khác nhau (bản địa , dựa trên khung, web). Danh sách cứ kéo dài. Sự lưu loát ngôn ngữ chỉ là một phần nhỏ của toàn bộ.

Đối với tất cả những điều này, bạn cần phải tạo ra ít nhất một sản phẩm thực sự sử dụng chúng để thành thạo.

Một số người sẽ cho bạn biết bạn cần chuyên về một công nghệ (PHP, .Net, Java) và xây dựng sự nghiệp chủ yếu xung quanh công nghệ đó để đạt được tiến bộ. Tôi không đồng ý với điều này cả. Tôi sẽ đưa một nhà phát triển đã ở quanh khối một vài lần với các nền tảng và công nghệ khác nhau trên một nền tảng đã dành 10 năm để làm một việc vào bất kỳ ngày nào trong tuần. Lý do là công nghệ thay đổi hàng năm và nhà phát triển có khả năng chọn công nghệ mới, đọc API và áp dụng kinh nghiệm của họ theo những cách tổng quát hơn là chỉ cần biết các chức năng của thư viện sẽ hiệu quả hơn trong lâu dài Ok, do đó, cựu chiến binh .Net 10 năm sẽ tắt các khối bắt đầu trong .Net nhanh hơn, nhưng sự dẫn đầu đó bị mất trong khoảng một tháng. Nó '


3
Tôi cũng sẽ thêm vào danh sách của bạn, ngôn ngữ logic (Prolog), ngôn ngữ toán học (là một tập hợp con của chức năng như một quy tắc) (Mathicala, R), ngôn ngữ tiền tố / hậu tố (PS, Forth), trình biên dịch và dựa trên phần cứng (cho FPGA và tương tự).
Orble

8
Tôi đồng ý ... thật vui khi học các ngôn ngữ mới. Nhưng khi bạn đang cố gắng cải thiện kiến ​​thức phát triển phần mềm chung trong khi học khung PHP mới và ngôn ngữ bổ sung (C #) mà bạn muốn sử dụng trong tương lai, học ngôn ngữ mới để giải trí không phải là một lựa chọn hoặc ít nhất không phải là một tùy chọn mà không có hy sinh lớn trong những phần khác của cuộc sống của bạn.
Christian P

4
Tôi đồng ý Christian, câu trả lời này là một chút cực đoan. Nhưng có lẽ câu trả lời từ câu trả lời này không nên là "Học một ngôn ngữ mới ngay bây giờ hoặc bạn có thể hôn tạm biệt giấc mơ của mình." Thay vào đó, "Vâng, bạn nên cố gắng tìm một công việc bằng ngôn ngữ mà bạn không quen thuộc, bởi vì đó là một sự đầu tư nghề nghiệp tốt hơn trong dài hạn." Thêm vào đó là cách tốt nhất để thực sự thành thạo ngôn ngữ.
Neil Traft

1
@ Tổ chức: bạn nói đúng, danh sách chưa hoàn thành, tôi chỉ chọn những 'nghề nghiệp' chính để tránh việc danh sách trở nên quá khó khăn;)
Steve Streeting

3
Về phần cực kỳ - Tôi đã không đề nghị bạn học tất cả các ngôn ngữ này trong một năm :) Vì câu hỏi nằm trong bối cảnh của sự nghiệp, tôi không nghĩ rằng điều này là không thực tế. Tất cả chúng ta phải chịu trách nhiệm cho sự phát triển chuyên nghiệp của chính mình và ngay cả khi bạn thực hiện một dự án sở thích trong một năm bằng cách sử dụng công nghệ mà bạn chưa từng sử dụng trước đây, nó sẽ giúp bạn rất nhiều. Nguồn mở cũng là một cách tuyệt vời để làm điều này, bởi vì điều đó có nghĩa là bạn có thể tham gia vào một dự án thực sự mà không phải bắt đầu từ đầu và nhận được sự giúp đỡ từ các đồng nghiệp trong cộng đồng.
Steve Streeting

7

Tôi sẽ đề nghị tìm kiếm một công việc PHP bởi vì đó là những gì bạn làm tốt nhất.

Tôi cũng đề nghị bạn nên bắt đầu tự học về các công nghệ mới mà bạn muốn học để cuối cùng bạn có thể bắt đầu tìm kiếm việc làm bằng cách sử dụng chúng, nhưng đừng thực hiện nó trong thời hạn quá ngắn vì bạn sẽ thấy rằng những điều này rất lớn và nhà tuyển dụng mong đợi bạn biết đủ những người khổng lồ này để làm việc hiệu quả. Điều đó đòi hỏi thời gianthực hành . Đừng đánh giá thấp thời gian và lượng thực hành bạn sẽ phải làm.

Để cung cấp cho bạn một ước tính về những gì "Tôi có thể lập trình trong Java" nhân viên tiềm năng phải có khả năng, bạn có thể có một cái nhìn tại Sun Java Tutorial . Tôi hy vọng bạn sẽ quen thuộc với ít nhất một nửa các khái niệm được liệt kê, trong đó quen thuộc có nghĩa là có thể sử dụng nó trong một chương trình do bạn viết và sử dụng nó một cách chính xác . Tôi hy vọng sẽ mất nhiều hơn 6 tháng thời gian rảnh để học để đạt đến cấp độ đó.


7
6 tháng? có thật không? Loại lập trình viên tôi thuê học ngôn ngữ và nền tảng trong tuần đầu tiên đi làm, đó là lý do tại sao tôi KHÔNG BAO GIỜ quan tâm đến ngôn ngữ mà ai đó biết khi họ xin việc tại Stack Overflow hoặc Fog Creek.
Joel Spolsky

4
@Joel, xin lưu ý tôi đang nói về việc nhặt đồ trong thời gian rảnh của bạn . Một mình, không có một người cố vấn xung quanh. Đây có thể không phải là cách hiệu quả để học những thứ mới như thể chất trong văn phòng của bạn với bạn và nhân viên của bạn xung quanh ... Có lẽ bạn sẽ muốn thuê christian.p để chứng minh tôi sai?

3
@Joel Khi ứng dụng của bạn được viết bằng ngôn ngữ được tạo tùy chỉnh của riêng bạn, bạn không có nhiều sự lựa chọn, eh! ;-)
Darrel Miller

3
@ HOÀN TOÀN. Đó không phải là một chút dễ dàng trên chúng? Tại sao không phải là một cái gì đó như "vui lòng tìm và sửa lỗi trong mã sản xuất BrainF * ck này! Tôi và 5 đồng nghiệp của tôi sẽ theo dõi bạn và thời gian bạn mất bao lâu"?

5
@Joel - Tôi nghi ngờ rằng khi Christian đang tìm kiếm một công việc mới ở một thành phố mới, anh ta sẽ thấy rằng không phải tất cả các nhà tuyển dụng đều không biết ngôn ngữ như bạn đang ở Stack Overflow / Fog Creek. Quả thực tôi sẽ mạo hiểm đoán rằng không quan tâm đến những ngôn ngữ mà anh ta biết, 95% + sẽ ném lý lịch của anh ta vào thùng ngay lập tức nếu nó không khớp với các từ khóa ngôn ngữ chính xác.
Carson63000

6

Tôi ghét có vẻ như là một kẻ troll, nhưng ngôn ngữ bạn nên học là tiếng Anh. Có một loạt lỗi trong bài viết của bạn và điều đó trông có vẻ cẩu thả. Nếu tôi đang tuyển dụng và đó là sơ yếu lý lịch của bạn, tôi sẽ không quan tâm những ngôn ngữ lập trình mà bạn nói bạn biết, tôi sẽ cho rằng sự chậm chạp của bạn với ngôn ngữ tiếng Anh sẽ chuyển sang công việc lập trình của bạn.

Có vẻ như bạn không biết tiếng Anh là ngôn ngữ thứ hai (dĩ nhiên tôi có thể sai) nhưng có đủ lỗi ngữ pháp và chính tả để khiến hầu hết các nhà quản lý tuyển dụng tạm dừng. Vì họ sẽ chỉ nhìn thấy từ viết của bạn lúc đầu, bạn cần phải sửa nó.


6
Đó là chủ đề, nhưng cảm ơn cho những người đứng đầu. Tiếng Anh trong thực tế là ngôn ngữ thứ hai của tôi. Dù bạn có tin hay không (hoặc có thể điều đó rõ ràng với bạn) nhưng tôi đã tự học cách nói / nói tiếng Anh (không cần các khóa học ngôn ngữ).
Christian P

3
Vì nó là ngôn ngữ thứ hai của bạn nên bạn đang làm tốt. Rõ ràng là có ai đó kiểm tra sơ yếu lý lịch của bạn để chắc chắn, nhưng tôi biết rằng nếu tôi phải thực hiện ý kiến ​​của mình bằng tiếng Pháp, nói, nó sẽ không sáng suốt và diễn đạt tốt như của bạn bằng tiếng Anh. Không phải là ngớ ngẩn, chỉ cố gắng để có ích. Có bất kỳ số lượng người Mỹ nào không bận tâm đến chính tả và ngữ pháp của họ và điều đó làm tổn thương họ trên thị trường.
Doug Johnson-Cookloose

1
Tôi biết tiếng Anh của mình cần cải thiện và tôi đang cố gắng hết sức để cải thiện nó. Nhưng tôi rất biết ơn về ý kiến ​​của bạn bởi vì tôi biết khi tôi đang xin việc, đó là ấn tượng chung. Vì vậy, nếu văn bản của tôi cẩu thả, nó sẽ làm tổn thương cơ hội tổng thể của tôi để có được một công việc.
Christian P

1
Ngày xưa, nếu bạn nộp đơn xin việc thông qua nhà tuyển dụng, họ sẽ dành thời gian để đánh bóng sơ yếu lý lịch của bạn và đảm bảo chính tả, ngữ pháp và phong cách tổng thể là chính xác. Nhưng gần đây tôi đã phỏng vấn một số ứng viên và dường như các nhà tuyển dụng không làm phiền nữa, họ chỉ dán logo của họ ở góc trên bên phải và gửi sơ yếu lý lịch. Vì vậy, tôi khuyên bạn nên nhờ một người bạn mà bạn tin tưởng để xem qua sơ yếu lý lịch và thư / email ứng dụng của bạn.
Carson63000

1
@ Carson63000 Kinh nghiệm của tôi về việc tuyển dụng thông qua các nhà tuyển dụng là khi họ cố gắng 'giúp đỡ', họ thường tạo ra một mớ hỗn độn về lý lịch của ứng viên. Kết quả là, tôi đã phải cho các ứng viên có CV cẩu thả lợi ích của sự nghi ngờ. Đưa ra lựa chọn tôi đã loại bỏ các nhà tuyển dụng ngu ngốc ra khỏi phương trình hoàn toàn.
Daniel Cassidy

5

Câu trả lời dài hạn cho câu hỏi này về cơ bản là những gì chủ nhà đáng kính của chúng tôi (Joel Spolsky) và Steve Streeting nói. Lập trình cốt lõi không phải là về ngôn ngữ mà là sử dụng máy tính để giải quyết vấn đề, và là một nghề phải được học và làm việc và suy nghĩ theo thời gian. Biết cách viết mã không làm cho một lập trình viên.

Nhưng bạn đã hỏi một chủ đề thực tế và nhạy cảm với thời gian .. bạn nên làm gì NGAY BÂY GIỜ?

Tôi đề nghị bạn đào sâu vào PHP cho đến khi di chuyển. Đi sâu vào nó, vất vả, thực sự vất vả, 20 giờ một tuần ngoài công việc vất vả. Với PHP khá dễ dàng .. có được một tài khoản lưu trữ và một tên miền và bắt đầu xây dựng các ứng dụng. Với nỗ lực tập trung, 6 tháng là một sự vĩnh cửu. Trong thời gian đó, hãy thực sự giỏi về nó. Điều này sẽ giúp bạn tìm được một công việc tốt một lần ở New York, và rất có thể sẽ khiến bạn trở thành một lập trình viên tốt hơn để khởi động.

BTW .. nếu bạn chưa biết, có một trang web việc làm CNTT trong gia đình StackExchange.

THEN, khi quá trình chuyển đổi cuộc sống đã ổn định một chút, hãy bắt đầu theo dõi vở kịch của ông Streeting và tự học về nghề lập trình thay vì buôn bán tiền mã hóa. Sử dụng một số thời gian ngoài công việc để đọc và làm mọi thứ trên các nền tảng khác và với các công cụ khác.


1

Tôi nghĩ vấn đề chính là, cuối cùng, một kỹ sư phần mềm nên đến trạng thái mà ngôn ngữ chủ yếu là không quan trọng đối với nhiệm vụ trong tay, ngoại trừ những hạn chế của nó.

Cho dù bạn có biết ngôn ngữ hay không cũng không nên tạo ra sự khác biệt, cung cấp cho bạn một hướng dẫn sử dụng, chỉ để tăng tốc cho ngày đầu tiên hoặc lâu hơn trong khi bạn tìm thấy vòng bi của mình.

Phải nói rằng, các ngôn ngữ độc quyền có xu hướng có ít tài liệu và ví dụ lan truyền trên web hơn và do đó khó làm quen hơn và gây ra vấn đề nếu bạn muốn mang công việc về nhà.


3
Ngôn ngữ hiếm khi khó. Học hệ sinh thái và thực hành tốt nhất tôi mất khá nhiều thời gian ...

@ Thorbjørn Rất đúng, có thể mất một thời gian để có được thực tiễn tốt nhất trong một ngôn ngữ. Mặc dù điều đó phụ thuộc rất nhiều vào cách bạn học nó, một số ngôn ngữ khó hơn rất nhiều so với những ngôn ngữ khác để tìm thông tin.
Orble

1

Lời khuyên của tôi là tìm một công việc làm những gì bạn quan tâm và thích làm. Nếu bạn thích PHP, tại sao không tiếp tục phát triển các kỹ năng PHP của bạn. Sẽ dễ dàng hơn nhiều để học và phát triển các kỹ năng làm điều gì đó mà bạn quan tâm.

Bạn đã bao giờ nhìn vào .NET hay Java chưa? Nếu không, điều đó có thể gợi ý rằng bạn không quan tâm đến những ngôn ngữ đó, nhưng có lẽ bạn có thể dành một tuần hoặc lâu hơn để xem từng ngôn ngữ và tự mình xem liệu bạn có hứng thú với một trong hai ngôn ngữ đó không.


Tôi quen thuộc với Silverlight 4 và C # (tôi cũng có 2 năm trong VB.NET 2005), đó là lý do chính khiến tôi nghĩ về việc chuyển đổi.
Christian P

1

Thời gian ngắn; Tôi không biết các hoạt động tuyển dụng ở Mỹ là gì, nhưng khi xem xét bạn sẽ chuyển đi trong 6 ~ 12 tháng, hiện tại, tôi sẽ cân nhắc việc gắn bó với PHP vì bạn có hai năm kinh nghiệm với nó.

Kinh nghiệm của tôi ở đây (ở Hà Lan) là các công ty có xu hướng tập trung rất ngắn hạn vào công nghệ và kinh nghiệm khung. Ngôn ngữ thực sự không - ngay cả khi họ hỏi " 3 năm kinh nghiệm C # ", họ có nghĩa là nói " 3 năm kinh nghiệm với các thư viện khung / lớp và các công cụ bạn sẽ sử dụng với C # ".

(Mặt khác, tại sao họ muốn thuê bất cứ ai cần 3 năm để học cú pháp C # và các tính năng ngôn ngữ nằm ngoài tôi. Nghe có vẻ như ai đó tôi sẽ không muốn thuê.)

Học ngôn ngữ mới; tĩnh, động, chức năng, có giá trị lớn khi nói đến việc mở rộng quan điểm của bạn. Tuy nhiên, học các thư viện lớp có liên quan và cách làm việc trong ngôn ngữ đó sẽ đòi hỏi kinh nghiệm.

Tôi khuyên bạn nên đi đến quyết định chọn một chồng công nghệ và tìm hiểu sâu về nó. Sử dụng các môi trường khác cho cảm hứng.

Tất nhiên sở thích cá nhân cũng đi vào chơi. Ví dụ, trong khi có rất nhiều thị trường cho nó, tôi sẽ không bao giờ chấp nhận một công việc PHP: -PI chọn một ngăn xếp và tôi tìm việc dựa trên đó.

Về việc tạo dựng sự nghiệp, về lâu dài, tôi nghĩ bạn nên nhìn xa hơn về mã hóa (cuối cùng tất cả chỉ là học và có thể đọc và / hoặc đọc lướt tài liệu) và công nghệ trong ngày và nhìn sâu hơn vào các kỹ năng mềm và như vậy. Công nghệ đến và đi khá nhanh. Tất nhiên có rất nhiều điều để học khi nói đến các thực tiễn tốt và bí quyết tổng quát hơn, thật không may, chúng hiếm khi được tìm kiếm trên thị trường việc làm theo kinh nghiệm của tôi.


1

Tôi nghĩ rằng mọi người thường trộn lẫn các ngôn ngữ lập trình và khung / khung công nghệ. Học ngôn ngữ mới tương đối dễ, nhưng khó hơn nhiều với các công nghệ lớn. Tôi đồng ý với một số câu trả lời rằng điều quan trọng nhất là kinh nghiệm giải quyết vấn đề / lập trình tổng thể của bạn, nhưng tôi không tin rằng bất kỳ ai cũng có thể HIỂU một công nghệ hoàn toàn mới trong 1 tuần.

Chắc chắn, một phần lớn các nhà phát triển chưa bao giờ đọc một cuốn sách kỹ thuật nào và không hiểu chính các khối công nghệ mà họ đang sử dụng. Họ chỉ tìm cách thoát khỏi những vấn đề và rất "thành công". Tôi đã tự mình bắt đầu sự nghiệp trong PHP mà không hề hiểu HTTP hoạt động như thế nào. Nhưng một số nhà tuyển dụng, mà tôi tôn trọng nhất, đang mong đợi một sự hiểu biết sâu sắc về "cách mọi thứ hoạt động", đơn giản vì điều này có xu hướng tăng cơ hội thành công cho các dự án của họ.

Điều tối thiểu bạn cần làm để đạt được sự hiểu biết này là đọc một vài cuốn sách TỐT với đủ thời gian để giải quyết nguyên mẫu cho các vấn đề phổ biến trong môi trường phát triển mới lạ. Có thể làm trong một tuần? Tôi rất thích làm việc với những người có khả năng này, nhưng tôi không hy vọng sớm gặp lại những người như vậy.

Một số nhà tuyển dụng thực sự sẵn sàng cung cấp cho bạn đủ thời gian để có được sự hiểu biết này, tôn trọng kinh nghiệm kỹ thuật sâu sắc tổng thể của bạn trong các ngăn xếp công nghệ khác (nếu bạn có), nhưng tiếc là hầu hết là không.

Ngoài ra, khi bạn thay đổi công nghệ, điều quan trọng nhất là tính cách của bạn - bạn khiêm tốn và tò mò như thế nào để dành đủ thời gian để hiểu cách mọi thứ hoạt động và cách mọi thứ được thực hiện trong khu vực mới của bạn.

Vì vậy, để tóm tắt, câu trả lời của tôi sẽ là như sau. Chọn một công nghệ, có đủ tiềm năng và điều đó (quan trọng nhất) sẽ khiến bạn hài lòng trong công việc. Chuyên về công nghệ này, thị trường việc làm sẽ coi trọng điều này và vài năm cần thiết để có được mức lương mục tiêu của bạn sẽ có giá trị. Nhưng đừng bao giờ quá nhiệt tình, hãy dành thời gian cho các công nghệ khác, nó sẽ giúp bạn có một CHUYÊN NGHIỆP tốt hơn nhiều.


1

Tôi phải đồng ý với Joel. Nhưng câu trả lời của ông vượt xa các kỹ năng và sở thích kỹ thuật.

Theo kinh nghiệm của tôi, thông thường các yêu cầu công việc của bạn hướng bạn đến một công nghệ hoặc ngôn ngữ lập trình cụ thể, chứ không phải những gì bạn muốn sử dụng; trừ khi đó là một startup chưa xác định những gì họ sẽ sử dụng. Và không ai có thể đảm bảo rằng bạn sẽ tìm thấy một công việc / công ty sử dụng chính xác những gì bạn đang tìm kiếm.

Vì vậy, câu hỏi thực sự là: bạn có giỏi trong việc học hỏi những thứ mới không? bạn có thể giải quyết một vấn đề và giải quyết nó kịp thời bất kể ngôn ngữ lập trình không?

Một lập trình viên giỏi nên nhận thức rõ về các khái niệm xây dựng phần mềm và kỹ thuật phần mềm. Câu hỏi của bạn khiến tôi tin rằng bạn đã không đầu tư đủ thời gian vào việc học những điều đó, điều này có thể khiến bạn không chắc chắn về kỹ năng của mình và tiềm năng thực sự của bạn là gì. Và thành thật mà nói, nếu bạn chưa làm được thì đó là khoảng thời gian bạn làm, bởi vì không có những người đó có lẽ bạn sẽ không đi xa được.

Có một điều khác mà hầu hết các lập trình viên của chúng ta có xu hướng không chú ý đến trước khi chúng ta già hơn 30: Kỹ năng lập trình chỉ là một nửa trong số các kỹ năng tạo nên một lập trình viên giỏi. Bạn có phải là một người chơi nhóm tốt? Bạn có sẵn sàng truyền đạt kiến ​​thức cho đồng nghiệp một cách tự nguyện như bạn (hoặc nên) nhận kiến ​​thức từ người khác không? Kỹ năng con người được nhiều người trong chúng ta đánh giá thấp, trong khi chúng thực sự rất quan trọng.


1

Tôi không đồng ý với hầu hết các ý kiến ​​được liệt kê trên diễn đàn này.

Ngoài việc học các nguyên tắc và lý thuyết kỹ thuật phần mềm, ngôn ngữ bạn chọn để thành thạo là một lựa chọn nghề nghiệp. Đó là lý do tại sao có lập trình viên Java và lập trình viên PHP. Các lập trình viên PHP có thể sẽ không làm việc cho NASA và các lập trình viên Java có thể sẽ không làm việc cho một cửa hàng web.

Nếu bạn muốn có một công việc ở công ty Mỹ, tốt hơn hết bạn nên sử dụng Java / .Net. Thu nhập tốt trong bạn có thể nhận được nhưng hãy chuẩn bị để hiến tặng cuộc sống của bạn cho họ (thời gian khôn ngoan).

Nếu bạn muốn trở thành một freelancer độc lập và sống trong làn đường nhanh với công nghệ web, bạn nên làm tốt hơn với PHP. Rất nhiều công việc ở đây nhưng mức lương khác nhau rất nhiều và độc lập là công việc với mỗi Tom, Dick và Harry với ý tưởng cố gắng thuê bạn làm đồng xu.

Có một số trùng lặp với PHP và Java nhưng chỉ thấy trong các công việc Công ty (Java REST Services với PHP front-end) tuy nhiên bạn sẽ không tìm thấy các cửa hàng web hoặc công việc tự do độc lập ở bất cứ đâu gần Java.

Cả hai đòi hỏi rất nhiều thời gian và sự cống hiến nếu bạn muốn có ích trong bất kỳ tình huống nào.

Để trở thành một nhà phát triển PHP có năng lực và được tìm kiếm, bạn cần một túi đầy đủ các bộ kỹ năng. Có thể bạn sẽ biết CSS, HTML4 / 5 và chắc chắn nhất là DOM DOM / Ajax / Jquery cộng với ít nhất một khung khả thi như Zend (lựa chọn của người khai thác tại Mỹ), Codeignitor, cakePHP, v.v. Sẽ cần phải biết "ba" lớn của CMS: Drupal, Wordpress và Magento. Có được các bộ kỹ năng này trong vành đai của bạn và bạn sẽ trở thành một chuyên gia PHP với khả năng hạ cánh công việc ở bất cứ đâu bạn đến. Như bạn có thể nói, sử dụng tất cả những thứ này là một sự tận tâm với ngôn ngữ và đó là công cụ vì việc học Perl sẽ không giúp bạn trở thành một chuyên gia phát triển Drupal hoặc Zend.

Điều tương tự cũng xảy ra với Java: OOP, J2EE, REST / SOAP, Spring / Struts, v.v. và đó là đội ngũ các công cụ khác phải mất nhiều năm để làm chủ.

Có ai ở đây đã thử mã hóa Java trong một năm và sau đó quay lại PHP (hoặc bất kỳ ngôn ngữ kịch bản lệnh nào). Thật khó. Nó cảm thấy khó xử.

Tôi làm việc cho một công ty may mắn 500 và các nhà phát triển Java sẽ không thể làm những gì các nhà phát triển PHP làm và các nhà phát triển PHP sẽ không thể làm những gì các nhà phát triển Java làm. Nhưng cả hai đều làm tốt về tài chính vì họ là chuyên gia trong lĩnh vực của họ, ngôn ngữ họ chọn và các công cụ đi kèm với nó.


0

Ngôn ngữ và nền tảng không quan trọng. Tìm hiểu người rắn và kỹ năng comp sci. Rất nhiều người đã nói điều này nhưng chưa đưa ra chi tiết cụ thể vì vậy hãy để tôi làm điều đó. Dưới đây là một số điều cần học

  • thuật toán và cấu trúc dữ liệu.
  • đồng thời
  • học máy
  • lập trình cấp hệ thống
  • công cụ tìm kiếm và tìm kiếm thông tin
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.