Đường dẫn đến thành thạo JavaScript là gì? [đóng cửa]


18

Tôi biết cách chúng tôi bắt đầu với JavaScript, chúng tôi cắt và dán một đoạn trích để có được một chức năng hoặc xác thực phía máy khách.

Nhưng nếu bạn đi theo con đường này trong việc cố gắng thực hiện hành vi tương tác phong phú, sẽ không mất nhiều thời gian trước khi bạn nhận ra rằng bạn đang tạo ra một quả bóng lớn.

Vì vậy, con đường hướng tới chuyên môn trong lập trình lớp tương tác là gì? Những cuốn sách, hướng dẫn, bài tập và quy trình nào đóng góp cho khả năng lập trình JavaScript mạnh mẽ, có thể duy trì?

Chúng ta đều biết rằng thực hành là quan trọng trong bất kỳ nỗ lực nào, nhưng tôi đang tìm kiếm một con đường tương tự như câu trả lời ở đây: /programming/2573135/


"Lớp tương tác?"
Robert Harvey

1
Theo ý kiến ​​của tôi nên là một thẻ mới: P
Mike

1
Một câu hỏi khác trong đó câu trả lời là thực hành giống như bất kỳ lĩnh vực nào khác mà bạn muốn thành thạo. Thực hành, học hỏi từ các đồng nghiệp của bạn (những người có kỹ năng hơn) và tôi đã đề cập đến thực hành. Quá trình để thành thạo ngôn ngữ lập trình x cũng giống như đối với ngôn ngữ lập trình y, giống như làm chủ điêu khắc hoặc đan móc hoặc bất kỳ giao dịch nào khác.
Chris

1
@johnny: Khi bạn có thể lấy ngoại lệ từ dấu vết ngăn xếp ...
TMN

1
@Chris - nếu bạn theo liên kết tôi đưa vào, bạn sẽ thấy rằng một câu hỏi như vậy có thể được trả lời hữu ích. Nói "câu trả lời là thực hành" không hữu ích. Chỉ vào một số địa danh dọc theo một con đường hữu ích, đừng chỉ bảo tôi bắt đầu đi bộ.
Eric Wilson

Câu trả lời:


15

đọc mã người khác ( A RẤT ) và cố gắng hiểu được những gì họ đang làm và lý do tại sao họ làm điều đó. Viết mã của riêng bạn ( A RẤT ) thử các khái niệm và ý tưởng mới, trên hết là chơi và vui chơi. Cách tốt nhất để cải thiện điều gì đó là luyện tập, luyện tập và sau đó luyện tập thêm.

Đọc sách, hướng dẫn, bài viết, blog, nguồn cấp dữ liệu RSS, v.v.

Tạo một số dự án để làm việc trong thời gian rảnh rỗi của bạn. Nếu bạn không thể nghĩ ra điều gì đó, hãy tìm một dự án nguồn mở mà bạn có thể quan tâm để làm việc.

Ngoài ra, đừng nản lòng và trên hết, hãy nhớ rằng "làm chủ" không phải là một điểm đến, mà là một hành trình - hãy thực hiện theo tốc độ của riêng bạn, vui chơi và thưởng thức phong cảnh. Nếu bạn quá nghiêm túc, bạn sẽ bị bỏng và điều đó không có gì tốt cả.


7
Tôi ước điều này sẽ tự động trả lời khi ai đó hỏi "cách học / làm chủ X". Âm thanh rất giống như cách bạn thành thạo một bằng chứng toán học hoặc tinh chỉnh một cuốn tiểu thuyết. Xem những người khác làm việc với X, tự mình thực hành X, Rửa sạch, lặp lại -> Master in X.
Chris

@Chris, Yup. Đây là khá nhiều câu trả lời tiêu chuẩn của tôi.
Muad'Dib

Mặc dù tôi có thể nói các câu hỏi liên quan đến nơi để có được tài liệu tham khảo / sách / tài liệu tốt là những câu hỏi tôi thích. Gần đây mất trên python và câu hỏi chúng tôi đã có programmers.stackexchange.com/questions/12189/... tôi tìm thấy là sao để làm cho tôi lên khỏi mặt đất và chạy.
Chris

@Chris yeah, câu trả lời này là một lời khuyên chung chung và thiếu các bước cụ thể, theo tôi, rất khách quan. Tôi cũng vậy, muốn xem các liên kết. Nhưng, đó là những gì Google dành cho, phải không?
Muad'Dib

Phải nhưng google không thể cung cấp bất kỳ phản ứng / ấn tượng của tài liệu. Google làm tốt nhưng nó không làm tất cả. Đồng ý bất kể. t
Chris


3

Trước hết, bạn cần biết mục tiêu của bạn liên quan đến việc học JavaScript sẽ là gì. Nếu bạn chỉ muốn thực hiện một số xác thực đầu vào và làm cho UI dễ sử dụng hơn một chút thì bạn thực sự không cần phải hiểu sâu về ngôn ngữ nếu bạn đang sử dụng các khung như jQuery .

Điều đó nói rằng, nếu bạn muốn có được sự hiểu biết vững chắc về JavaScript, thì hãy thử và viết một phần mở rộng cho một khung công tác hiện có thực hiện một công cụ hữu ích.

Về sách và các tài nguyên khác, tôi chưa thực sự nghe nhiều về cách sử dụng sách hữu ích và nói chung tôi đã học ngôn ngữ mặc dù đang cố gắng giải quyết vấn đề và kiểm tra để đảm bảo mã của tôi sạch theo JSLint . Một sự kết hợp của một vấn đề thú vị (ví dụ: mở rộng khung), JSLint và đủ thời gian để có được một số thực hành vững chắc có thể sẽ là lựa chọn tốt nhất của bạn về việc học ngôn ngữ.


2

Trước khi bạn tìm hiểu bất kỳ chi tiết phát triển web nào (DOM, v.v.), hãy học ngôn ngữ cốt lõi. Bạn có thể học theo nhiều cách - sách, video , v.v ... Tất nhiên, bạn sẽ cần phải đọc và viết mã.

ECMAScript (đó là tên của tiêu chuẩn ngôn ngữ - javascript đề cập đến một số triển khai) là một ngôn ngữ rất thú vị. Đây là một ngôn ngữ hướng đối tượng dựa trên nguyên mẫu, năng động và nguyên mẫu, do đó, bạn nên dành thời gian để hiểu các nguyên tắc của các mô hình này.

Tìm hiểu bằng cách sử dụng bảng điều khiển tương tác trong trình duyệt của bạn (trong Chromium, bạn có thể truy cập trang này bằng cách nhấn Ctrl+ Shift+ J) tương tự như các công cụ như IRB và trình thông dịch Python tương tác. Điều này rất hữu ích để kiểm tra các tính năng ngôn ngữ và gỡ lỗi.

Sử dụng JSLint để kiểm tra chất lượng mã của bạn.

Khi bạn bắt đầu thực hiện phát triển 'thực' bằng cách sử dụng DHTML, hãy làm cho cuộc sống của bạn dễ dàng hơn bằng cách sử dụng một khung công tác, chẳng hạn như JQuery , để xử lý các sự cố trình duyệt chéo gây khó chịu.


1

Rất nhiều kỹ thuật làm cho một lập trình viên trở thành một chuyên gia trong một ngôn ngữ nhất định có thể được áp dụng ở đây, mặc dù javascript có một vài viên ngọc cho phép nó được sử dụng để mang lại hiệu quả phi thường. Có lẽ một trong những rào cản lớn nhất mà tôi đã phải vượt qua khi sử dụng javascript là để xóa bỏ tâm lý lập trình "C" của tôi, nghĩa là, một ngàn chức năng nhỏ được nhồi nhét vào một tệp js.

Một số lời khuyên chung là trừu tượng bất cứ khi nào bạn có thể, và cố gắng hình thành các lớp bất cứ khi nào bạn có thể để tổ chức hành vi chung. Tạo các tệp js mới cho bất kỳ chức năng nào có thể được sử dụng để có hiệu quả tốt trong các tệp js khác của bạn (theo lý do) và tránh các biến toàn cục nếu có thể. Tôi thực sự khuyên bạn nên học jQuery nếu bạn chưa có. Đó là một công cụ tôi đã yêu thích và bây giờ tôi sẽ không làm. Đây là một phần mở rộng cực kỳ linh hoạt của javascript, cho phép bạn đơn giản hóa mã của mình rất tốt, đơn giản và cũng có thể viết mã nhanh chóng và hiệu quả. jQuery đi kèm với một thư viện plugin lớn cho phép bạn thực hiện nhiều điều không thể ấn tượng hơn nếu bạn làm điều đó trong flash. Kiểm tra giao diện người dùng jQuerycho toàn bộ hệ thống chủ đề cho trang web của bạn, cho phép bạn sửa đổi hiệu quả toàn bộ bố cục trang web của mình mà không phải làm gì nhiều. Đi kèm với rất nhiều hiệu ứng hoạt hình và các điều khiển tiện dụng thường được sử dụng trên các trang web (bộ chọn ngày, nút, thanh tiến trình, v.v.), hầu hết có thể được kích hoạt bằng một dòng javascript.

Mong rằng sẽ giúp!


1

Phần lớn những gì bạn làm trong JavaScript về cơ bản được đan xen với khả năng tương thích của DOM, CSS và trình duyệt, vì vậy hiểu DOM là một trong những yêu cầu chính để làm chủ JavaScript.

Tìm hiểu các tính năng cốt lõi của ngôn ngữ, chẳng hạn như định hướng đối tượng dựa trên nguyên mẫu, hàm ẩn danh và các tính năng ngôn ngữ chung hơn như vòng lặp, điều kiện, v.v. là chìa khóa để hiểu bất kỳ mã nào bạn đọc không tương tác cụ thể với DOM / CSS .

Bạn cũng sẽ cần học thư viện chuẩn ngôn ngữ, ví dụ Chuỗi và Toán và các hàm đối tượng cốt lõi khác.

Bạn cũng nên nghiên cứu các thuật toán, nếu bạn muốn có được sự hiểu biết đúng đắn và đầy đủ về cách mọi thứ đang được thực hiện và cách thực hiện các giải pháp nâng cao hơn, kiến ​​thức này là cơ bản để hiểu lập trình nâng cao và vượt ra ngoài cú pháp cụ thể của ngôn ngữ.


1

Đọc mã của các thư viện bạn đang sử dụng. Đọc nguồn jQuery hoặc Prototype sẽ dạy cho bạn rất nhiều về những gì thực sự xảy ra trong javascript và trong dom. Nghiên cứu các kỹ thuật mà các thư viện sử dụng để bạn có thể hiểu chúng. Hãy bắt đầu bằng cách đọc các khung vi mô tại http://microjs.com/ . Hãy chắc chắn rằng bạn nhìn vào nguồn thực tế chứ không chỉ các tệp được phân phối. (jQuery có hàng tá tệp nguồn, nhưng chúng được tập hợp bởi một quy trình xây dựng.)


0

Javascript được áp dụng trong nhiều lĩnh vực phát triển ngay bây giờ.

  • Đó là ngôn ngữ duy nhất hiện diện trong trình duyệt hiện đại.
  • Nó có thể chạy trên máy chủ, nhờ vào node.js và động cơ V8.
  • Nó có thể chạy được nhúng trong các thiết bị di động thông qua PhoneGap hoặc các lựa chọn thay thế khác.
  • Nó có thể được sử dụng để tạo các ứng dụng windows 8.

Do đó, tôi tin rằng có nhiều kiệt tác javascript hơn. Nó phụ thuộc vào những gì bạn muốn bắt đầu, nhưng yên tâm, mỗi mục trong số 4 mục được đề cập ở trên sẽ cung cấp cho bạn một thử thách khác nhau - ok, có thể cửa sổ 8 và trường phonegap có thể giống nhau nhưng phần còn lại thì khác -.

Nếu chúng ta đang nói về môi trường trình duyệt, tìm hiểu cách sắp xếp mọi ứng dụng web có thể là một trong những con đường mà bạn có thể đi. Tôi đang đi theo con đường đó và thử nghiệm những ý tưởng của riêng mình, kiểm tra git repos của các thư viện tổ chức mã phổ biến như võ đường, xương sống, than hồng, v.v.

Nếu chúng ta đang nói về môi trường nút js, đó là một câu chuyện khác. Chúng tôi không quan tâm đến việc thu nhỏ và kích thước tệp. Tạo toàn bộ ứng dụng trong nút, xây dựng hệ thống, trang web, REST api, có rất nhiều điều để khám phá ở đó.

Nếu chúng ta đang nói về thế giới di động, tối ưu hóa sẽ xuất hiện trong tâm trí. CSS3 tăng tốc các thuộc tính, hình động, sự kiện chạm và cố gắng sử dụng kiến ​​trúc giống như web với các thành phần UI chuyên dụng hơn là những điều tuyệt vời để bắt đầu.

Nói chung, như những người khác đã trả lời, thử nghiệm mã của riêng bạn và với mã của người khác là cách tốt nhất để tham gia, theo kịp những gì mới, và ai biết, có thể đến với điều lớn tiếp theo.

Một điều nữa giúp làm việc trong một nhóm và hiểu được sự khác biệt giữa cách của bạn và cách viết mã của nhóm. Làm việc trong một nhóm các nhà phát triển javascript sẽ buộc bạn viết mã tốt hơn và viết tài liệu tốt. Tôi nghĩ không có cách nào tốt hơn để tìm hiểu về kiến ​​trúc của một ứng dụng hơn là viết wiki về những gì bạn định thực hiện hoặc đã thực hiện.


-1

Tôi ghét JavaScript cho đến khi tôi phát hiện ra jQuery. Bây giờ tôi yêu nó và sử dụng nó mọi lúc. Có lẽ là quá nhiều.


Bạn ghét sự tuân thủ DOM và trình duyệt chéo không phải EcmaScript.
Raynos

jQuery làm cho Javascript thú vị! +1
Động
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.