Chào tất cả ace trên diễn đàn, chả là em có học php ở một trung tâm và không được qua trường lớp chuyên ngành CNTT hẳn hoi. Việc học đối với em vẫn ổn và rất thú vị , nhưng bắt đầu đến phần cơ sở dữ liệu mysql em đã thấy sự khác biệt khi em không thể tự mình nghĩ ra được cấu trúc các bảng chỉ dùng sẵn của giáo viên được thội. Em nhận ra là mình còn thiếu nhiều kiến thức về chuyên ngành khi không học trong môi trường đh. Các anh chị có kinh nghiệm về php có thể cho em lời khuyên nên học những gì để đi làm và bù đắp những phần còn thiếu để phát triển lâu dài về sau được không ạ? Em cảm ơn nhiều ạ!
Học php ở trung tâm không qua các trường ĐH CNTT thì cần học thêm những gì để phát triển?
Giả sử bạn cũng học đại học, xong mai mốt gặp một cái kiến thức gì đó khó học bạn lại nói là “em còn thiếu nhiều về kiến thức chuyên ngành khi không học thạc sĩ (tiến sĩ)” ư?
học đại học cũng là học + làm nhiều mới biết, mình không biết thì mình học + làm nhiều thì cũng sẽ biết thôi, đại học thôi mà. Có chăng cái đại học là nó có bài bản và định hướng tốt hơn so với mình tự học thôi (mà cũng tùy trường).
Google is your friend. Còn nếu cảm thấy chưa quen google thì nhờ mấy thằng học chung nhờ nó kèm cho, chi phí có thể là vài li coffee.
Why so serious?
cấu trúc dữ liệu nó không còn thuộc về riêng php nữa rồi
php chỉ là 1 công cụ, một ngôn ngữ để thực hiện, giải quyết vấn đề thôi
giống như đói thì có thể ăn cơm, phở hay thứ gì đó khác miễn no là được nên đừng có quá xoắn vào php
@Manh_do_cong: Theo kinh nghiệm của tôi, bạn đừng đặt nặng quá vấn đề về PHP hay bất cứ một ngôn ngữ lập trình nào. Bạn nên tăng cường các khả năng sau đây:
- Tiếng Anh: Tôi không rõ lắm về tình hình hiện tại, nhưng thế hệ của tôi không để ý lắm về ngoại ngữ. Và kết quả là chúng tôi gặp nhiều bất lợi khi hoc chuyên sâu. Các tài liệu về công nghệ thông tin rất đa dạng và phong phú, nhưng phần lớn các tài liệu hay đều viết bằng tiếng Anh. Vì vậy, biết tiêng Anh, sẽ rất hữu ích để bạn có thể tự học một cách kết quả trong bất kỳ hình thức nào (thảo luận nhóm, đọc sách và các tài liệu chuyên ngành, xem tutorial từ YouTube).
- Học cách tìm kiếm một cách hiệu quả bằng Google hoặc các công cụ tương tự. Như @thanhtrung2314 đã nói, các công cụ tìm kiếm sẽ là bạn tốt của bạn. Ngày nay, phần lớn các vấn đề về IT đều có sẵn đâu đó trên Internet và rất phong phú, vấn đề là bạn có tìm ra hay không thôi. Ngày xưa, chúng tôi học rất vất vả, phải tìm tài liệu (rất hạn chế), photo ra và chuyền tay nhau mà đọc. Ngày nay, nếu tôi muốn học cái gì, lên YouTube tìm và xem vài clip, và thế là xong. Đơn giản quá, phải không bạn?
- Kiên nhẫn: đây là tính chất cơ bản của người làm IT, nhất là lập trình viên. Bạn phải học từ nhiều nguồn khác nhau Nếu bạn đọc và thấy một vấn đề nào đó khó hiểu, chịu khó tìm các nguồn khác nhau, hỏi thầy cô, bạn bè cho đến khi bạn nắm được vấn đề một cách thấu triệt. Theo kinh nghiệm cá nhân của tôi, một vấn đề khó hiểu có thể được giải quyết dễ dàng nếu chúng ta tìm được đúng nguồn tài liệu. Khi viết mã cũng vậy, đừng nản nếu chương trình của bạn chạy không đúng hoặc không chạy được. Tôi đã từng lay hoay với chương trình Java Hello World không chạy được mất vài ngày, và sau cùng tìm ra vấn đề là không phải do mã nguồn mà bởi vì trình biên dịch tôi dùng khi đó … bị hư.
- Không ngại khó: Đừng bao giờ nản lòng nếu bạn gặp một vấn đề hóc búa. Nếu bạn không giải quyết được, tìm tòi xem thử có ai đã giải quyết vấn đề này chưa. Như tôi đã nói ở trên, phần lớn các vấn đề cơ bản đều đã được giải quyết và câu trả lời đã có đâu đó rồi, chúng ta chỉ việc bỏ công để tìm ra và cố gắng hiểu vấn đề thôi.
- Có kế hoạch cho nghề nghiệp để định hướng cho việc học của mình: IT thay đổi rất nhanh và rất nhiều, bạn sẽ không thể nào học hết mọi công nghệ. Vì vậy, bạn nên biết rõ mình muốn trở thành gì (ví dụ như lập trình viên, Dev Ops, quản trị cơ sở dữ liệu, quản lý dự án, v.v) ,lập kế hoạch học phù hợp và tập trung vào đó thay vì học hết mọi thứ một cách sơ sài.
- Tò mò: Khi bạn tìm hiểu về một vấn đề nào, hãy cố gắng tìm hiểu từ gốc đến ngọn bằng cách hỏi câu hỏi tại sao thay vì làm thế nào. Ngày nay, rất dễ tìm giải pháp cho các vấn đề khác nhau nhưng phần lớn chỉ cung cấp lời giải mà không cho biết lý do (Điều này cũng hợp lý vì trong phần lớn trường hợp, kiến thức nền tảng rất nhiều nhưng lời giải thì lại rất ngắn. Vì thế, sẽ mất công hơn rất nhiều để giải thích cặn kẽ). Đừng bao giờ thỏa mãn với giải pháp mà không biết lý do (dù rằng bạn sẽ phải đầu tư kha khá thời gian và công sức). Tuy nhiên, nếu bạn đi theo hướng này lâu dài, bạn sẽ tích lũy nhiều kinh nghiệm và ít mất thời gian để học cái mới.
Học ở Đại Học thì bạn có một lợi thế là bạn sẽ được đào tạo một cách bài bản và bạn cũng sẽ được học các kiến thức căn bản và nhờ đó bạn sẽ dễ tự học sau này. Tuy nhiên điều đó không có nghĩa là bạn không có khả năng trở thành một lập trình viên giỏi nếu bạn không được đào tạo từ ĐH. Rất nhiều người giỏi trong giới IT là những người chưa bao giờ tốt nghiệp ĐH.
Riêng về vấn đề bạn đề cập về cách thiết kế các bảng trong cơ sở dữ liệu, nó không liên quan đến MySQL mà có thể sử dụng cho nhiều hệ cơ sở dữ liệu khác nhau. Để học về cơ sở dữ liều, tôi đề nghị bạn nên tìm đọc quyển sách này " Beginning Database Design: From Novice to Professional" của tác giả Clare Churcher. Đây là một quyển sách hay và giới thiệu một cách khá chi tiết các vấn đề về cơ sở dữ liệu nói chung.