2009-07-18 32 views
12

Tôi hiện đang khá có kinh nghiệm tại PHP và đã viết nhiều ứng dụng trong đó. Tôi biết HTML, CSS, MySQL và Javascript cùng với PHP. Bước tiếp theo trong lập trình là gì?Tôi nên học gì sau PHP?

(Tôi biết rằng có những ngôn ngữ như Perl, C, Python, nhưng không biết chính xác nếu chúng được dựa trên Web, Desktop dựa, vv)

Cập nhật

Mục tiêu của tôi là để học lập trình đủ để tôi có thể làm chương trình một cách chuyên nghiệp. Hãy để tôi làm sáng tỏ rằng tôi 15 tuổi, và đã lập trình một vài ứng dụng phức tạp. Tôi đã xử lý lập trình hướng đối tượng, nhưng hầu như không chạm vào làm việc với các khung công tác. Có phải cái gì tôi nên đi tiếp theo không?

+5

Đó là một câu hỏi rất chủ quan. Mục tiêu của bạn là gì - chúng tôi không thể nói gì cho đến khi chúng tôi biết điều đó. –

+0

Những gì bạn gọi là "khá kinh nghiệm tại PHP"? Bạn đã từng làm việc với các khung công tác, lập trình hướng đối tượng, ...? –

+0

Thay vì học ngôn ngữ mới, hãy suy nghĩ để phát triển một cái gì đó mới thiếu ngôn ngữ hiện tại của bạn. Mọi người luôn chuyển sang những cái mới hơn khi họ tìm thấy cái hiện tại tốt hơn, nhưng hầu như không ai nghĩ đến việc thay đổi nó ở đây nữa. Ví dụ khác về khung sườn Rails gây ra sự bùng nổ trên thị trường với các mẫu thiết kế ... – Kevin

Trả lời

21

Không có "bước tiếp theo" trong lập trình; PHP, giống như các công nghệ khác mà bạn đề cập, là các công cụ chúng tôi sử dụng để giải quyết các vấn đề.

Một điều hữu ích bạn có thể làm là xem xét các vấn đề tương tự được giải quyết như thế nào bằng các công nghệ khác: bạn có vẻ quan tâm đến phát triển ứng dụng web, vì vậy các công cụ tương tự tồn tại như Java/JSP, Ruby/Rails, C#/ASP .NET, v.v. Sau khi chỉnh sửa của bạn, điều này có vẻ là con đường hợp lý nhất để thực hiện, như các nền tảng như Java và .NET dường như là cách tổ chức đang đi, và nơi các kỹ năng được sử dụng trong rất nhiều công việc trong lập trình.

Đã dành chút thời gian đi xuống các tuyến đường đó, bạn có thể quan tâm đến các hệ thống lớn hơn sử dụng các tính năng dành cho doanh nghiệp. Những thứ như JSF, Struts, hoặc tương lai - J2EE với EJB sử dụng công nghệ web, nhưng theo kiểu doanh nghiệp hơn.

Tôi cũng khuyên bạn nên xem một số ứng dụng web nguồn mở để xem cách các công cụ như những ứng dụng bạn đề cập được sử dụng trong các ứng dụng lớn hơn với nhiều người dùng hơn. Ai biết được, có lẽ bạn có thể tham gia và giúp đỡ một dự án được sử dụng rộng rãi!

+4

Tôi đồng ý. Nếu bạn chưa có, hãy xem các khung công tác MVC dựa trên PHP như CakePHP hoặc CodeIgniter – bobobobo

+0

+1 cho câu đầu tiên. –

4

Điều đó thực sự phụ thuộc vào những gì bạn cần làm, ví dụ, bạn có thể làm cho một giải pháp thương mại điện tử phức tạp từ đầu?

Vì vậy, bạn biết làm thế nào để bạn các lớp và các đối tượng php?

Có lẽ bạn có thể học cách sử dụng một khung javascript cho phép các hoạt ảnh ưa thích.

Lời khuyên của tôi là chọn một dự án mà bạn sẽ quan tâm đến việc tạo và lý tưởng để sử dụng và xem nơi bạn cần.

3

Một gợi ý cho "bước tiếp theo trong lập trình" theo ý kiến ​​của tôi có thể được tìm thấy bằng cách xem một số chương trình giảng dạy chương trình CS ở một số trường chính. Nếu tôi là bạn, tôi sẽ chọn một thứ hoàn toàn khác với lập trình web, chỉ để mở rộng tầm nhìn của tôi.

Nếu bạn 15 tuổi, tôi khuyên bạn nên học C# và cố gắng viết một trò chơi đơn giản như Tetris.

+0

Xin lỗi, tôi vừa nhận thấy câu trả lời đầu tiên của tôi trông rất đáng ngờ như của bạn! Hoàn toàn ngẫu nhiên mặc dù; những đầu óc vĩ đại! – Skilldrick

6

Nếu bạn muốn tiếp tục làm các trang web, tôi khuyên bạn nên ở lại với cùng một công nghệ, nhưng tìm hiểu thêm về chúng.

Bạn chưa thực sự xác định loại công việc bạn đã làm trong PHP/HTML/CSS/JavaScript/MySQL, vì vậy rất khó để cung cấp cho con trỏ.

Ở phía PHP, có một số khung công tác phù hợp mà bạn có thể xem xét, chẳng hạn như Zend Framework hoặc CakePHP.

Bạn cũng có thể muốn tìm hiểu về một số hệ thống CMS có sẵn, như Joomla hoặc Drupal. Có rất nhiều thứ phải trải qua - bản thân hệ thống, các tiện ích có sẵn và phát triển các addons của riêng bạn. Trừ khi tôi đang xây dựng một cái gì đó mà không có tính năng giống như CMS (mà là hiếm), tôi có xu hướng xây dựng hầu như tất cả mọi thứ trên đầu trang của Joomla.

Ngoài ra còn cải thiện kỹ năng PHP của bạn. Thật dễ dàng rơi vào cái bẫy viết mã spaghetti nhanh chóng, đơn giản và không thể duy trì được với PHP. Có tất cả các loại mô hình hữu ích và kỹ thuật thiết kế mà bạn có thể nhận (các khuôn khổ hoặc CMS nêu trên có thể cung cấp một số gợi ý về cách thực hiện và cách không thực hiện). Bạn có thể xem xét các thứ như lớp/đối tượng, lớp trừu tượng cơ sở dữ liệu thích hợp (PDO, hoặc thậm chí ADO), áp dụng các mẫu thiết kế cho các dự án PHP. Các thư viện chuẩn chứa rất nhiều chức năng tuyệt vời mà bạn có thể chưa sử dụng, và các thư viện PEAR chứa nhiều hơn.

Về phía JavaScript, bạn có thể muốn xem xét các khung như JQuery để bắt đầu, và sau đó một số trong số plugins đã được xây dựng trên đầu trang của nó, như JQuery UI. Thêm một số AJAX vào tiết mục của bạn.

4

Tôi đã học và phát triển rất nhiều với Java sau PHP và một chút Perl, và tôi khá hạnh phúc vì điều đó. Tôi nhận ra rằng trong các vòng tròn Java, có nhiều suy nghĩ và nhấn mạnh hơn vào việc xây dựng các kiến ​​trúc phần mềm thích hợp. Ở đây, tôi đã học được rất nhiều về các quy trình phát triển, kiến ​​trúc chất lượng phần mềm (nhanh nhẹn). Nó không giống như các cộng đồng ngôn ngữ năng động không có khả năng cung cấp các ứng dụng mạnh mẽ hoặc thiếu kiến ​​thức nói chung - tôi đến từ thế giới này bản thân mình, và tôi đã nhìn thấy rất nhiều mã nhảm nhí trong Java. Tuy nhiên, tôi đã học được rất nhiều ở đó.

Tôi cũng đã làm một số dự án nhỏ với ruby ​​/ rails và groovy/grails trong khi chờ đợi và chơi một chút với python/django - nhưng quay trở lại phương pháp dựa trên Java vào lúc này - nhưng bạn có thể thay đổi số dặm .

Cuối cùng, bạn nên biết nhiều ngôn ngữ và khuôn khổ để có thể chọn tùy chọn tốt nhất ở bất cứ đâu tùy thuộc vào yêu cầu và nhân viên. cũng là những cái chung chung hơn. Với những thứ như Perl (mặc dù nó thực sự mất nền tảng do sức mạnh và các tính năng của OO), Python và Ruby bạn có các ngôn ngữ chung dễ dàng có sẵn trên hầu hết các hệ thống, có thể được sử dụng cho các kịch bản shell, Web và các phát triển GUI độc lập giống nhau - cũng rất tốt!

Tôi vẫn có đồng bằng C, lược đồ/lisp và scala - và nhiều khung công tác thú vị - trên danh sách "cần tìm hiểu" của tôi.

9

Tất cả những gì tôi có thể nói với bạn là trải nghiệm của riêng tôi. Tôi đã học PHP/HTML/MySQL/Oracle trên UNIX khoảng 12 năm trước, và thích nó là dễ sử dụng và cách bạn có thể ném cùng các trang web rất dễ dàng (so với CGI và C). Tuy nhiên, khoảng 6 năm trước, tôi miễn cưỡng chuyển sang "mặt tối" và phải học lập trình Windows cho công việc của mình. Sau một thời gian học tập kinh khủng 'Classic ASP' và VB, tôi đã tham gia vào công nghệ .NET mới nổi, đặc biệt là ASP.NET và C#. Và tôi là thực sự là rất vui vì tôi đã làm.

Học ngôn ngữ OOP "đúng" được đánh máy mạnh như C# (hoặc Java) sẽ giúp cải thiện kỹ năng lập trình của bạn và giúp bạn trở thành một lập trình viên có kỷ luật hơn. Nếu bạn có thể tìm hiểu các khuôn khổ .NET bạn sẽ mở rộng tầm nhìn của bạn cũng như khả năng làm việc của bạn. Bạn cũng sẽ học được nhiều kỹ năng lập trình có thể di chuyển bạn vượt ra ngoài Web - vào phát triển ứng dụng, vv Bạn sẽ mở rộng triển vọng của mình và được làm giàu và khen thưởng trong quá trình này.

1

Điều duy nhất tôi đề nghị là bắt đầu tìm hiểu về kiến ​​trúc phần mềm, OOP và các mẫu thiết kế, mô hình đề xuất.

Bạn thậm chí có thể gắn bó với các công cụ bạn đã biết, chỉ cần nâng cấp cách bạn lập trình, tìm hiểu những cách mới và tốt hơn để giải quyết mọi thứ, xem những gì người khác và các khung chính khác đang làm.

4

Phát triển thứ gì đó có thể mang lại ánh đèn sân khấu cho ngôn ngữ lập trình. Thư viện hoặc tệp lớp học có thể giúp cộng đồng.

Bạn cũng có thể nghĩ đến điều gì đó mà bạn có thể làm mọi thứ đơn giản hơn nhiều so với quy trình hiện tại nếu bạn cảm thấy khó khăn.

6

Tại sao không tiếp tục với PHP?

Trở thành chuyên gia và sau đó là một chuyên gia trong đó. PHP là một chủ đề khá lớn và trong nhiều năm phát triển, tôi đã không sử dụng và biết tất cả các khía cạnh của nó, bất kể có bao nhiêu dự án lớn hơn hoặc nhỏ hơn tôi đã làm. Ngoài ra còn có các cách tiếp cận khác nhau trong mã hóa PHP, ngày nay các khuôn khổ nổi lên và chúng là một chủ đề của chính chúng.

Và không phải là điều cuối cùng, có lẽ vì sự phổ biến của nó, PHP là một ngôn ngữ sống và tiếp tục phát triển. Nội dung mới xuất hiện trên cơ sở hàng ngày, các mô-đun, phiên bản mới, ứng dụng mới, khung công tác mới, các vấn đề mới cần giải quyết với nó.

2

Suy nghĩ của bạn là chính xác: điều quan trọng là người lập trình phải học các ngôn ngữ khác nhau. Tôi sẽ đề nghị Ruby, và Ruby on Rails.

Ưu điểm lớn của Rails là giúp bạn dễ dàng thực hiện đúng cách - có thể chuyển mã của bạn cho một nhà phát triển khác mà không cần anh ta bỏ ra hàng tuần để hiểu mã của bạn là khá lớn.

Xu hướng hiện tại bằng nhiều ngôn ngữ là đặt chúng vào 'Rails', tức là triển khai môi trường MVC. Điều này đã được thực hiện cho Javascript, .NET và nhiều thứ khác.

1

Vì bạn đã sử dụng chức năng hướng đối tượng của PHP, tôi sẽ đề xuất Java tiếp theo. Chức năng OO của PHP phần lớn được lấy cảm hứng từ Java, ví dụ họ có cả lập trình "định hướng giao diện" được chính thức hóa thông qua một cấu trúc/từ khóa thực tế: "giao diện".

Trong mọi trường hợp, có Java làm ngôn ngữ phía máy chủ khác mà tôi thông thạo nhất đối với tôi. Số dặm của bạn có thể thay đổi.

0

Tôi nghĩ bạn nên thử một thay đổi lớn, để mở rộng tầm nhìn của bạn. Learn Python, nhận được pygame và lập trình một trò chơi, ví dụ Tetris, nhưng có thể là bất cứ điều gì. Tôi chắc chắn sẽ khuyên bạn nên làm một cái gì đó không dựa trên web, bởi vì nó sẽ giúp bạn nhìn thấy mọi thứ từ một góc độ khác.

0

đầu tiên biết rằng bạn không có bất kỳ hạn chế hơn exitus của riêng bạn;)

Nếu bạn có các chương trình viết thú vị, duyệt internet và tìm kiếm các ứng dụng mà bạn nghĩ về 'người đàn ông tôi có thể cải thiện điều này' hoặc ' công cụ tốt, nhưng tôi có một số ý tưởng khác '.

Sau đó, chỉ cần xem xét các ngôn ngữ trong đó các ứng dụng này được viết và thực hiện một số nghiên cứu nhanh về sự khó khăn trong việc tạo ứng dụng như vậy (ví dụ: trên stackoverflow.com).

Khi bạn đã tìm thấy một số dự án mà bạn thực sự muốn thiết lập và bạn đã chọn ngôn ngữ phù hợp nhất để viết ứng dụng này: Bắt đầu học ngôn ngữ này.

Không phải luôn luôn quan trọng để tìm kiếm một ngôn ngữ cụ thể, chỉ cần tìm một dự án và thiết lập nó.

4

Điều này rất chủ quan, nhưng ở đây đi.

  • Sẽ không có hại khi biết một ngôn ngữ rất công ty, như Java, để phát triển web.
  • Học một khuôn khổ cho nó, như Spring MVC, sẽ rất tiện dụng. Spring cũng có các khái niệm như AOP và IOC, đáng để biết.
  • Thêm vào Hibernate cho DAO/ORM sẽ hữu ích.
  • Ruby on Rails (Ruby là ngôn ngữ, Rails là khung công tác) là một ca khúc phát triển web khác.
  • Thỉnh thoảng trong một sự nghiệp lập trình, bạn sẽ cần biết một ngôn ngữ kịch bản; Python hoặc Perl.
  • Tìm hiểu các công cụ như Maven hoặc Ant, Subversion hoặc CVS và đảm bảo bạn biết cách sử dụng IDE, như Eclipse.
  • Nếu bạn không biết Linux, điều đó có thể thú vị khi chơi và hữu ích một cách chuyên nghiệp. Hãy thử Ubuntu.
  • Từ cấp độ lý thuyết, tìm hiểu về Cấu trúc dữ liệu và Mẫu thiết kế.

Data Structures thường là khóa học đại học thứ hai về khoa học máy tính và hầu như chắc chắn sẽ giúp bạn viết mã. Nếu bạn xây dựng các ví dụ để tự dạy mình điều này, hãy sử dụng một ngôn ngữ bạn chưa biết, để bạn có được cả kiến ​​thức về một ngôn ngữ mới và kiến ​​thức về lý thuyết mới cùng một lúc.

Có tài liệu tham khảo trực tuyến để tìm hiểu tài liệu. Bạn nên tìm hiểu về danh sách, cây và đồ thị được liên kết; phân tích, tìm kiếm và phân tích O (n).

Từ quan điểm của người quản lý tuyển dụng, tôi sẽ không phỏng vấn bất kỳ ai mà không có kiến ​​thức về cấu trúc dữ liệu.

Trong mọi trường hợp, Project Euler cũng có thể giúp bạn; đó là một nhóm các tác vụ lập trình được thiết kế để giúp bạn học các ngôn ngữ mới và có các nhiệm vụ để giúp bạn giải quyết các vấn đề mới.

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