Làm thế nào để trở thành ninja ninja? [đóng cửa]


8

Tôi muốn chọn JavaScript làm lĩnh vực phát triển chính của mình, cùng với HTML và CSS để trở thành nhà phát triển thường được gọi là nhà phát triển giao diện người dùng . Nhưng tôi không biết làm thế nào để trở thành một chuyên gia JavaScript. Tôi đã đọc nhiều sách và học các phần bao gồm các loại dữ liệu, cú pháp, cách sử dụng công cụ (như IDE, Trình gỡ lỗi, v.v.), jQuery, v.v. Nhưng khi tôi nhìn vào một số mã JavaScript tinh vi bao gồm các thư viện nổi tiếng, tôi thích " Tôi không bao giờ có thể viết mã đó ". Có chuyện gì ở đây vậy? Tôi nên làm bước nào mà tôi đã không làm? Tôi cảm thấy mình đang thiếu một cái gì đó ở đây để trở thành một nhà phát triển JavaScript chuyên nghiệp. Tôi cũng đã xem các bộ phim đào tạo, bao gồm các bộ phim của Douglas Crockford tại Nhà hát Yahoo.


23
Chúng tôi có thể cho rằng bạn đã có trang phục?
JeffO

Thật là một quyết định khó khăn ... đầu óc
ThomasX

1
DOM Scripting, cuốn sách. Sau đó bắt đầu đọc nội dung của John Resig và tìm hiểu nó đủ tốt để thấy quan điểm của những gì họ đã làm với kiến ​​trúc của jQuery. Về cơ bản, đây là chức năng của nhà sản xuất bộ chuyển đổi / trang trí cho DOM, tận dụng lợi thế lớn của việc đóng chức năng để giữ cho các đối tượng jquery càng nhẹ (trong bộ nhớ) càng tốt. Thỉnh thoảng quay lại và đọc câu đó khi bạn học những thứ mới cho đến khi nó có ý nghĩa. Ồ, và đừng sử dụng IDE. Không phải cho đến khi bạn có thẩm quyền mà không có ai và có thể đưa ra quyết định sáng suốt.
Erik Reppen

Câu trả lời:


19

Câu trả lời của bạn là kinh nghiệm. Tôi sợ không có cách nào khác để trở nên giỏi về nó mà không cần thực hành. Hãy thử và tạo các thư viện tương tự như các thư viện mà bạn đã xem như một bài tập. Hãy đọc nhưng thực hành, thực hành, thực hành!


3
+1 cho trải nghiệm, tôi sợ. Thật sự không còn cách nào khác. Nếu bạn không thể có được nó tại nơi làm việc, hãy thực hiện một số dự án thú cưng ở nhà hoặc tham gia vào phần mềm nguồn mở. Ngay cả việc sửa các lỗi nhỏ trong thư viện JS mà bạn ngưỡng mộ cũng sẽ là một trải nghiệm học tập lớn.
Tom Morgan

1
Cảm ơn @Gary. Tôi chỉ tự hỏi có lẽ có một số kỹ thuật để làm cho quá trình thực hành đó nhanh hơn. Hoặc có thể có một số phím tắt, như một số khái niệm JavaScript mà nhiều nhà phát triển không quen thuộc.
Saeed Neamati

2
@SaeedNeamati có một số cuốn sách, như Phần tốt. Tôi cũng sẽ đề nghị sự tham gia stackoverflow. Tôi đã học được rất nhiều từ việc trả lời các câu hỏi javascript
Raynos

1
@Saeed Neamati - Hãy thử một cái gì đó mà bạn có thể nghĩ là vượt quá giới hạn hiện tại của bạn. Bạn có thể ngạc nhiên khi bạn nhận được bao xa. Những trải nghiệm học tập tốt nhất tôi có được là khi tôi hơi sâu sắc và phải thực hiện một số nghiên cứu và học hỏi để tiếp tục với dự án.
Gary Willoughby

Trung úy Aldo Raine: "Bạn biết làm thế nào bạn đến Carnegie Hall, phải không? Thực hành."
MattyD

19

"Tôi không bao giờ có thể viết mã đó"

Có thật không? Hãy thử nó trước.


2
Đây là một lời khuyên rất hữu ích! Hãy dùng thử và tìm hiểu các bit bạn chưa biết. Đó là cách bạn phát triển.
Gary Willoughby

Họ không thể viết mã cho đến khi họ làm điều đó.
Yatrix

Và 6 hoặc 12 tháng vào Javascript, bạn sẽ nhìn lại những bước đầu tiên của mình và nghĩ rằng 'anh bạn, thật là nghiệp dư'. Thực hành.
Alan B

5

Buồn cười bạn nên diễn đạt câu hỏi của bạn theo cách này. Hầu hết các sách về javascript cơ bản không giúp bạn hiểu lý do và cách sử dụng các khía cạnh nhất định của JavaScript để đạt được mã tuyệt vời. Điều thực sự THỰC SỰ đã giúp tôi hiểu được khía cạnh nâng cao hơn của JavaScript cũng như các thực tiễn mã hóa tốt nhất là các bài viết của John Resig, kỹ sư chính của JQuery.

http://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=John+Resig

Đặc biệt:

Kỹ thuật JavaScript chuyên nghiệp

Bí mật của Ninja JavaScript

Những điều này giúp bạn hiểu cách sử dụng các tính năng JavaScript nâng cao và tại sao. Bạn cũng có thể muốn đọc các Nguyên tắc về Mô hình và Nhanh nhẹn, và đặc biệt là các bài viết của Martin Fowler để có những suy nghĩ khái quát hơn về thực tiễn mã hóa tốt nhất.


1
Tôi nghĩ rằng bạn thực sự đã trả lời câu hỏi và cung cấp lời khuyên tốt hơn nhiều so với "chỉ làm điều đó". Cảm ơn bạn đã cung cấp các tài nguyên này.
Ryan Rodemoyer

4

Bạn phải lập trình ... rất nhiều.
Nghiên cứu mã nguồn của các dự án như jQuery, Node.js. Thêm CoffeScript hoặc ClojureScript vào kho vũ khí của bạn.
Hãy xem JavaScript MVC hoặc Backbone.js.

Kiểm tra những gì Google Clos mang đến cho bảng.
Và tất nhiên, đánh dấu Mozilla Developer Network.


4
CoffeeScript và ClojureScript có vị trí của chúng nhưng chúng không giúp bạn học javascript.
Raynos

1
Vâng tôi biết, đó là lý do tại sao tôi nói: Thêm CoffeScript hoặc ClojureScript vào kho vũ khí của bạn. Thật tuyệt khi biết về hai công nghệ này.
Chiron

4

Nếu bạn chọn lĩnh vực này, hãy chuẩn bị để được trả ít hơn và được coi là kém chuyên nghiệp / tốt hơn so với c / c ++ / c # / java / etc.

Đây thường là trường hợp, đặc biệt là về tiền lương. Rất dễ dàng để tìm thấy các lập trình viên js + html + css thực sự tốt, nhưng thật khó để tìm thấy các lập trình viên c / c ++ / c # thực sự tốt. Đây là vấn đề mà công ty tôi làm việc (khoảng 300 nhân viên) hiện đang phải đối mặt. Ngay cả các sinh viên nắm vững các ngôn ngữ được đề cập cũng được trả tiền cao hơn các nhà phát triển JS dày dạn.

Hầu hết các nhà phát triển JS học hỏi từ các hướng dẫn từ internet và tham gia vào các dự án nguồn mở, một điều khá tốt - có thể tìm thấy một số dự án FOSS sử dụng JS rất nhiều (phát triển front-end cho gnome 3, để cho bạn một ví dụ) và đóng góp cho nó Bằng cách này bạn có thể có được một số kinh nghiệm với các công cụ và ngôn ngữ.

Bên cạnh đó, tìm một số cuốn sách được đánh giá tốt trên Amazon và đọc chúng. Nhưng hãy nhớ rằng, CODING là cách bạn học, vì vậy hãy bắt đầu phát triển, bên cạnh việc đọc;)


1
Đối với tôi, có vẻ như rất dễ tìm thấy các nhà phát triển js / html / css xấu, những người có thể hack cùng nhau một mớ hỗn độn không thể nhầm lẫn một cách nhanh chóng. Các nhà phát triển giỏi vẫn khó tìm.
Sean McMillan

1
Một anh chàng mặt trước tốt có lẽ còn đáng yêu hơn những người ở phía sau - thực sự có rất nhiều voodoo đang diễn ra ở đó và thế giới đó đang thay đổi tải nhanh hơn so với back-end.
Wyatt Barnett

3

Tôi đồng ý với những gì đã nói ở trên, bạn chỉ cần thực hành. Điều quan trọng là phải hiểu các mẫu thiết kế được sử dụng trong mã javascript cao cấp. Tôi nghĩ rằng một khi bạn hiểu các mẫu được sử dụng và tại sao họ sử dụng chúng, nó có thể trở nên rõ ràng hơn rất nhiều. Các mẫu thiết kế JavaScript chuyên nghiệp của Harmes và Diaz là một khởi đầu tốt. Ngoài ra, hãy xem các mẫu thiết kế JavaScript cần thiết cho người mới bắt đầu của Osmani .


3

Ninja thường chỉ là nông dân hoặc nông dân mặc trang phục đơn giản nhưng lén lút cải trang. Nhưng những gì làm cho một người đơn giản trở thành một ninja thực thụ là một mục tiêu có ý nghĩa, kéo nó đi và sau đó không bị giết. Vì vậy, với suy nghĩ đó, tại sao bạn không tìm thấy một con quỷ samurai javascript, mài giũa bạn mã hóa katana và xem liệu bạn có thể hạ gục badboy mà không tự sát. Nếu bạn thành công, bạn sẽ biến thế giới thành một nơi tốt hơn cho những người nông dân mã khác và thấy rằng bạn đã trở thành một ninja trong quá trình này. Điều đó hoặc bạn sẽ chết.

Chúc may mắn!


cũng vậy - hầu hết các ninja hút và bị giết khá nhanh - nhưng những người sống sót - trở thành những huyền thoại sống;)
c69

2

Tôi sẽ không gọi tôi là bậc thầy về javascript, nhưng dù sao thì cũng khá tốt. Đọc, hiểu và mã từ như những cuốn sách này:

http://www.amazon.com/Pro-JavaScript-T kỹ thuật-John-Reves / dp / 1590597273 / ref = sr_1_2? s = books & ie =

http://www.amazon.com/JavaScript-ood-Parts-Doumund-Crockford/dp/0596517742/ref=pd_sim_b_1

Điều đó sẽ bao gồm những điều cơ bản. Sau đó khám phá toàn bộ lĩnh vực. Cố gắng học càng nhiều càng tốt. Tìm hiểu để gỡ lỗi mã trong Fireorms. Tìm hiểu một vài khung javascript (hơi khó hiểu) - Jquery là dễ nhất. Có thể bộ công cụ Dojo, Mootools và Prototype. Cố gắng đọc và hiểu mã nguồn của các khung javascript. Xây dựng một plugin trong jQuery. Tìm hiểu mô hình mô-đun. Có rất nhiều thứ để học ..

Nhưng quy tắc quan trọng nhất của tất cả chúng là:

Code và cố gắng để cải thiện bản thân mỗi ngày!

Và đừng trở thành một người nghiện khung, người cần plugin hoặc khung mới nhất để làm mọi thứ tốt. Cố gắng thành thạo ngôn ngữ cốt lõi và tự mình thực hiện các plugin hoặc widget. Nếu bạn không thể làm điều đó, thì bạn vẫn chưa tuyệt vời.


2

Chắc chắn thực hành - nhưng, IMHO, tốt hơn hết là không chỉ làm công việc bận rộn để thực hành; tìm một vấn đề thực sự để giải quyết Hãy nghĩ về một cái gì đó tuyệt vời để hoàn thành, và đi viết nó. Tìm ai đó muốn một số công việc javascript được thực hiện miễn phí (như từ thiện hoặc phi lợi nhuận) hoặc cách rẻ tiền, và viết mã cho họ. Nói cách khác, năng lực tốt nhất của bạn sẽ xảy ra khi làm điều gì đó có ý nghĩa.

Ngoài ra - Tôi nghĩ javascript là một ngôn ngữ thực sự thú vị và thực sự rất mạnh mẽ - nhưng tôi đã học được nhiều hơn về lập trình nói chung trong lớp C đại học mà tôi đã mất nhiều năm trước so với bất kỳ nguồn nào trước hoặc kể từ đó. Học C đi kèm với việc học về cách máy tính nghĩ, về bộ nhớ theo bit, và tôi có một giáo viên khá giỏi, người đã nhấn mạnh một số thực hành lập trình nền tảng thực sự vững chắc. Anh chàng nói học một ngôn ngữ khác không hoàn toàn sai - học một ngôn ngữ khác thay đổi quan điểm lập trình của bạn một chút và khiến bạn đánh giá cao những điểm tương đồng và khác biệt.


1

Mã javascript bạn tìm thấy trong một ứng dụng web thông thường khá dễ dàng, đặc biệt nếu bạn sử dụng một khung như jQuery. Viết plugin tùy chỉnh nâng cao hơn một chút, nhưng vẫn chỉ yêu cầu một vài khái niệm cơ bản. Điều này là đủ cho hầu hết các mục đích - trong môi trường doanh nghiệp, bạn thực sự có thể gây ấn tượng với khách hàng bằng một vài kỹ thuật đơn giản từ phát triển internet vì giao diện người dùng hiện tại thường khủng khiếp - nhưng không thực sự ở cấp độ ninja.

Nếu bạn muốn thực sự biết javascript, bạn cần một cái gì đó khó khăn hơn một chút, nơi bạn sẽ gặp phải những hạn chế của hệ thống và buộc phải áp dụng các kỹ thuật nâng cao hơn. Bạn có thể tìm thấy một số loại mã này trong các khung phải xử lý khả năng tương thích trình duyệt, nhưng đây phần lớn là một vấn đề được giải quyết, cũng như khá khó chịu khi làm việc. Có rất nhiều tùy chọn thú vị hơn xung quanh các ứng dụng html5 - hãy thử triển khai một cái gì đó thường không được thực hiện trong trình duyệt.

Ví dụ của riêng tôi về điều này là một khách hàng git. Javascript không xử lý dữ liệu nhị phân rất tốt và việc triển khai ngây thơ sẽ khóa UI trong vài phút và phân bổ các đối tượng mới đủ nhanh để hết bộ nhớ trước khi kích hoạt GC. Tối ưu hóa một cái gì đó như thế này dẫn đến việc học chính xác những gì xảy ra khi mã được chạy và vì việc hiểu này là không thể với mã có cấu trúc kém, bạn sẽ học cách viết javascript với cấu trúc rõ ràng cũng có thể áp dụng cho các ứng dụng điển hình hơn.


0

Thực hành trong lĩnh vực và JQuery. Đây là lời khuyên tốt nhất tôi có thể đưa ra.


-7

Đừng học JavaScript như ngôn ngữ đầu tiên của bạn và đừng cố gắng mô phỏng phong cách lập trình mà bạn tìm thấy trong các thư viện JavaScript. Hầu hết các lập trình viên JavaScript là những người hack đã cho tôi các ngôn ngữ lập trình thực như C ++, C, Java, v.v. Kết quả là mã JavaScript của họ là một mớ hỗn độn của mã spaghetti không bị lỗi, không thể mã hóa. Tôi biết, vì tôi đã làm việc như một kỹ sư phần mềm C ++ / Java / C # và hiện đang bước vào thế giới JavaScript.

Vì vậy, nếu bạn muốn trở thành một lập trình viên phần mềm JavaScript tuyệt vời, trước tiên hãy tìm hiểu một số ngôn ngữ lập trình khác và sau đó quay lại với JavaScript.


4
Hàm ý của bạn "C ++, C, Java" là ngôn ngữ tốt hơn JavaScript. Hàm ý của bạn rằng JavaScript là vấn đề . Đây là tất cả các tuyên bố sai.
Raynos

4
Tôi nghĩ rằng bạn đang thất bại khi thấy chức năng rộng lớn của javascript và ngôn ngữ đó có khả năng gì ...

@ stackoverflowuser2010 Điều đó sai. Tôi chắc chắn rằng C ++ và PHP cũng giống như nhiều lập trình viên không có kỹ năng hack đi mà không biết họ đang làm gì như JavaScript. Phải thừa nhận rằng rào cản gia nhập cho js thấp hơn. Tuy nhiên, giải pháp là học JavaScript không đi học một số ngôn ngữ ưu việt . Và trong khi chúng ta đang nói về các ngôn ngữ ưu việt, thay vào đó , chúng ta nên tự học . Điều đó sẽ hỗ trợ cho việc học JavaScript nhiều nhất
Raynos

2
Hầu hết các lập trình viên hút - trong bất kỳ ngôn ngữ. Sự khác biệt với JavaScript là bạn có thể xem nguồn và xem nó.
Sean McMillan

1
-1: Chỉ là một lời nói không được hỗ trợ.
kevin cline
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.