Bạn nên học ngôn ngữ lập trình nào đầu tiên vào năm 2020? ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

Hành trình học lập trình của hầu hết mọi người bắt đầu bằng một tìm kiếm Google vào đêm khuya.

Thông thường nó giống như “Học ______”

Nhưng làm thế nào để họ quyết định ngôn ngữ nào để tìm kiếm?

“Họ luôn nói đùa về Java trên Thung lũng Silicon. Tôi đoán tôi nên học điều đó ”.

Hoặc là:

“Haskell. Nóng quá. Haskell. ”

Hoặc là:

“Con gopher Go thật đáng yêu quá.”

Và sau đó là phần còn lại của chúng tôi. Chúng tôi có thể sẽ tìm kiếm một cái gì đó như:

“Tôi nên học ngôn ngữ lập trình nào trước?”

Rất ít câu hỏi thường được đặt ra để họ nhận được đầy đủ thông tin về đồ họa. Nhưng đây là một trong số chúng:

Quyết định ngôn ngữ lập trình đầu tiên của bạn có thể là một quá trình thú vị - giống như một trong những câu “Bạn là nhân vật Quentin Tarantino nào?” câu đố về tính cách.

Nhưng trước khi bạn bắt đầu học Ruby vì bạn rất thích chơi Play-Doh khi còn nhỏ, hãy để tôi nhắc bạn: tiền đặt cược ở đây khá cao.

Bạn sẽ mất hàng trăm giờ thực hành để trở nên thành thạo thậm chí từ xa với ngôn ngữ lập trình đầu tiên của mình.

Vì vậy, bạn nên xem xét các yếu tố sau:

  • thị trường việc làm cho ngôn ngữ
  • triển vọng dài hạn cho ngôn ngữ
  • ngôn ngữ dễ học như thế nào
  • những dự án bạn có thể xây dựng trong khi đang học (và chia sẻ với bạn bè để bạn có thể duy trì động lực)

Mỗi năm đều mang đến những ngôn ngữ lập trình mới và cùng với đó là những bài báo học thuật mới. Và truyện tranh web mới.

Nghiêm túc. Kiểm tra đá quý này từ tháng trước:

Khi nói đến việc chọn một ngôn ngữ lập trình đầu tiên, không thiếu các lựa chọn. Để thu hẹp nó lại một chút, đây là những tìm kiếm phổ biến nhất trên Google liên quan đến việc học lập trình, trong 12 năm qua:

Java đã có những bước thăng trầm.

Python đã dần vươn lên trở thành sự lựa chọn phổ biến nhất.

Nhưng ẩn bên dưới những điều này là Công cụ nhỏ có thể, đang dần trở nên phổ biến trong vài năm qua. Và công cụ đó là JavaScript.

Trước khi nói về các ngôn ngữ lập trình này, hãy để tôi làm rõ:

  • Tôi không tranh luận rằng bất kỳ ngôn ngữ nào về mặt khách quan tốt hơn bất kỳ ngôn ngữ nào khác
  • Tôi đồng ý rằng các nhà phát triển cuối cùng nên học nhiều hơn một ngôn ngữ
  • Tôi lập luận rằng trước tiên họ nên học tốt một ngôn ngữ. Và - như bạn có thể đoán từ văn bản lộn ngược trong tiêu đề của tôi - ngôn ngữ đó phải là JavaScript.

Hãy bắt đầu mọi thứ bằng cách khám phá cách lập trình hiện được dạy trong trường học.

Khoa học máy tính 101

Các trường đại học theo truyền thống dạy lập trình dưới sự bảo trợ của khoa học máy tính, bản thân nó thường được coi là một phần mở rộng của toán học, hoặc gắn liền với một bằng kỹ sư điện.

Tất nhiên, như bạn có thể đã nghe bây giờ:

“Giáo dục khoa học máy tính không thể biến ai đó trở thành lập trình viên chuyên nghiệp hơn việc nghiên cứu cọ vẽ và bột màu có thể khiến ai đó trở thành họa sĩ chuyên nghiệp”. - Eric S. Raymond

Tính đến năm 2016, nhiều trường đại học vẫn coi lập trình như khoa học máy tính và khoa học máy tính giống như toán học.

Do đó, nhiều khóa học lập trình nhập môn tập trung vào các ngôn ngữ cấp độ trừu tượng thấp như C hoặc các ngôn ngữ tập trung vào toán học như MATLAB.

Và các chủ tịch bộ phận thường ở lại khóa học, chỉ đến bảng xếp hạng ngôn ngữ lập trình hàng năm như TIOBE Index hoặc bảng xếp hạng này từ IEEE:

Hầu hết các bảng xếp hạng này trông gần như giống hệt với cách chúng ta đã có 10 năm trước.

Nhưng thay đổi vẫn xảy ra. Ngay cả trong học thuật.

Vào năm 2014, Python đã vượt qua Java để trở thành ngôn ngữ giảng dạy phổ biến nhất trong các chương trình Khoa học Máy tính hàng đầu của Hoa Kỳ.

Và một thay đổi khác chắc chắn sẽ… cuối cùng… xảy ra.

Bởi vì nếu bạn nhìn vào các ngôn ngữ thực sự được sử dụng bởi lực lượng lao động, nó sẽ vẽ nên một bức tranh rất khác:

Hơn một nửa số nhà phát triển sử dụng JavaScript. Nó rất quan trọng đối với việc phát triển web front-end và ngày càng phù hợp với phát triển back-end. Và nó nhanh chóng mở rộng sang các lĩnh vực như phát triển trò chơi và Internet of Things.

Các tin tuyển dụng cũng đề cập đến JavaScript nhiều hơn bất kỳ ngôn ngữ lập trình nào ngoài Java:

Không phải ngẫu nhiên mà chúng tôi đã xây dựng chương trình giảng dạy của cộng đồng nguồn mở về JavaScript. Trong hai năm qua, hơn 5.000 người đã sử dụng Free Code Camp để có được công việc nhà phát triển đầu tiên của họ.

Tôi không ủng hộ JavaScript vì tôi dạy nó. Tôi dạy JavaScript vì đó là con đường chắc chắn nhất dẫn đến công việc nhà phát triển đầu tiên.

Nhưng JavaScript có phù hợp với bạn không? Nó có xứng đáng là ngôn ngữ lập trình đầu tiên của bạn không? Hãy cùng khám phá những yếu tố tôi đã đề cập trước đó.

Yếu tố số 1: Thị trường việc làm

Nếu bạn đang học lập trình hoàn toàn vì trí tuệ tò mò, hãy bỏ qua yếu tố này. Nhưng nếu bạn - giống như đại đa số những người đang học lập trình - muốn sử dụng kỹ năng này để kiếm việc làm, thì đây là một cân nhắc quan trọng.

Như tôi đã đề cập trước đó, Java được đề cập trong các tin tuyển dụng hơn bất kỳ ngôn ngữ lập trình nào khác. JavaScript đứng thứ hai.

Nhưng đây là vấn đề về JavaScript: mặc dù nó đã tồn tại được 20 năm, nhưng gần đây nó mới trở thành một công cụ nghiêm túc mà các công ty như Netflix, Walmart và PayPal sẽ xây dựng toàn bộ ứng dụng xung quanh.

Do đó, rất nhiều công ty đang thuê các nhà phát triển JavaScript, nhưng không có nhiều công ty trên thị trường việc làm.

Có 2,7 nhà phát triển Java cạnh tranh cho mọi vị trí Java mở. Cạnh tranh cho việc làm PHP và iOS cũng khốc liệt tương tự.

Nhưng đối với mỗi vị trí JavaScript mở, chỉ có 0,6 nhà phát triển JavaScript. Đây là một thị trường dành cho các nhà phát triển có kỹ năng JavaScript.

Yếu tố số 2: Triển vọng dài hạn

Dự án JavaScript trung bình nhận được số lượng yêu cầu kéo nhiều gấp đôi so với dự án Java, Python hoặc Ruby trung bình. Và trên hết, JavaScript đang phát triển nhanh hơn bất kỳ ngôn ngữ phổ biến nào khác.

Hệ sinh thái của JavaScript cũng được hưởng lợi từ khoản đầu tư lớn về tiền bạc và tài năng kỹ thuật từ các công ty như Google, Microsoft, Facebook và Netflix.

Ví dụ: TypeScript (một tập hợp JavaScript được định kiểu tĩnh) có hơn 100 cộng tác viên mã nguồn mở, nhiều người trong số họ là nhân viên của Microsoft và Google được trả tiền để làm việc trên đó.

Kiểu hợp tác giữa các công ty này khó tìm thấy hơn với Java. Oracle - người sở hữu Java một cách hiệu quả thông qua việc mua lại Sun Microsystems - thường kiện các công ty cố gắng mở rộng nền tảng này.

Yếu tố thứ 3: Khó học

Hầu hết các lập trình viên sẽ đồng ý rằng các ngôn ngữ kịch bản cấp cao tương đối dễ học. JavaScript được xếp vào loại này, cùng với Python và Ruby.

Mặc dù các trường đại học vẫn dạy các ngôn ngữ như Java và C ++ làm ngôn ngữ đầu tiên, nhưng chúng khó học hơn đáng kể.

Yếu tố số 4: Các dự án bạn có thể xây dựng với nó

Đây là nơi JavaScript thực sự tỏa sáng. JavaScript chạy trên bất kỳ thiết bị nào có trình duyệt, ngay tại đó trong trình duyệt. Về cơ bản, bạn có thể xây dựng mọi thứ bằng JavaScript và chia sẻ nó ở bất cứ đâu.

Do sự phổ biến của JavaScript, người đồng sáng lập Stack Overflow, Jeff Atwood, đã đặt ra định luật nổi tiếng hiện nay của mình:

“Bất kỳ ứng dụng nào có thể được viết bằng JavaScript, cuối cùng sẽ được viết bằng JavaScript.”

Và với mỗi tháng trôi qua, Định luật Atwood vẫn tồn tại mạnh mẽ.

Java đã từng hứa hẹn sẽ chạy ở mọi nơi. Bạn có thể nhớ Java Applet. Oracle đã chính thức khai tử chúng vào đầu năm nay.

Python gặp phải nhiều vấn đề tương tự:

“Làm sao tôi có thể tặng trò chơi này mà tôi đã làm cho bạn tôi? Thậm chí tốt hơn, có cách nào tôi có thể cài đặt ứng dụng này trên điện thoại của mình để có thể cho trẻ em ở trường xem mà không cần chúng cài đặt không? Ừm. ” - James Hague về việc ngừng sử dụng Python như một ngôn ngữ giảng dạy

Ngược lại, đây là một số ứng dụng mà các thành viên của cộng đồng nguồn mở của chúng tôi đã xây dựng trong trình duyệt của họ trên CodePen. Bạn có thể nhấp qua và sử dụng chúng ngay trong trình duyệt của mình:

Học tốt một ngôn ngữ. Sau đó, học một thứ hai.

Nếu bạn tiếp tục nhảy từ ngôn ngữ này sang ngôn ngữ khác, bạn sẽ không tiến xa được.

Để vượt qua những điều cơ bản, bạn cần phải học tốt ngôn ngữ đầu tiên của mình. Sau đó, ngôn ngữ thứ hai của bạn sẽ dễ dàng hơn nhiều.

Từ đó, bạn có thể phân nhánh và trở thành một nhà phát triển toàn diện hơn bằng cách học nhiều ngôn ngữ:

  • C là một cách tuyệt vời để tìm hiểu cách máy tính thực sự hoạt động về mặt quản lý bộ nhớ và hữu ích trong tính toán hiệu suất cao
  • C ++ rất tốt để phát triển trò chơi.
  • Python tuyệt vời cho khoa học và thống kê.
  • Java rất quan trọng nếu bạn muốn làm việc tại các công ty công nghệ lớn.

Nhưng hãy học JavaScript trước.

OK, bây giờ tôi sẽ thử điều không thể - tôi sẽ thử và đoán trước sự phản đối từ phần bình luận.

Phản đối số 1: Nhưng JavaScript có chậm không?

JavaScript - cho hầu hết các mục đích thực tế - nhanh như các ngôn ngữ hiệu suất cao.

JavaScript (Node.js) là các đơn đặt hàng nhanh hơn Python, Ruby và PHP.

Nó cũng nhanh bằng các ngôn ngữ hiệu suất cao như C ++, Java và Go.

Dưới đây là kết quả của điểm chuẩn đa ngôn ngữ gần đây nhất:

Phản đối số 2: Nhưng JavaScript không được nhập tĩnh

Giống như Python và Ruby, JavaScript được nhập động, điều này rất tiện lợi. Nhưng bạn có thể gặp rắc rối. Ở đây tôi dự định exampleArraylà một mảng. Tôi đặt các giá trị của nó, sau đó kiểm tra độ dài của nó - nghĩa là số phần tử mà nó chứa.

exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2

Nhưng sau đó tôi vô tình gán nó thành một chuỗi.

exampleArray = “text” -> “text” exampleArray.length -> 4

Những loại lỗi này luôn xảy ra trong các ngôn ngữ được nhập động. Hầu hết các nhà phát triển chỉ cần đưa ra các kiểm tra để ngăn chặn chúng và viết các bài kiểm tra cho phù hợp.

Nếu bạn nhất thiết phải nhập tĩnh bằng ngôn ngữ lập trình đầu tiên của mình, thì tôi vẫn khuyên bạn nên học JavaScript trước. Sau đó, bạn có thể nhanh chóng chọn TypeScript.

“Typecript có một đường cong học tập, nhưng nếu bạn đã biết JavaScript, nó sẽ rất suôn sẻ.” - Alex Ewerlöf trên TypeScript

Phản đối số 3: Nhưng tôi thực sự muốn tạo một ứng dụng di động

Tôi vẫn khuyên bạn nên học JavaScript trước.

  1. JavaScript có một số công cụ để tạo ứng dụng di động gốc, chẳng hạn như Angular Cordova và React Native.
  2. Để ứng dụng dành cho thiết bị di động của bạn thực sự làm được bất kỳ điều gì thú vị, nó có thể sẽ cần một back end thích hợp, mà bạn sẽ muốn xây dựng với một khung phát triển web thích hợp, như Node.js + Express.js.

Ngoài ra, cần chỉ ra rằng những ngày tốt nhất của sự phát triển ứng dụng dành cho thiết bị di động rất có thể nằm sau nó.

Đối với người mới bắt đầu, càng nhiều người sử dụng ứng dụng di động, thì gần một nửa số công việc của nhà phát triển là phát triển web. So sánh điều này với chỉ 8% công việc liên quan đến phát triển ứng dụng di động.

Tầm nhìn lớn về “có một ứng dụng cho điều đó” đã không thành hiện thực. Thay vào đó, hầu hết chủ sở hữu điện thoại thông minh đã ngừng tải xuống các ứng dụng mới.

Chắc chắn - họ vẫn sử dụng ứng dụng. Chủ yếu là Facebook, Google Maps và một số người khác. Do đó, phần lớn nhu cầu về nhà phát triển ứng dụng dành cho thiết bị di động tập trung ở một số nhà tuyển dụng lớn.

Khó có thể dự báo triển vọng cho những công việc phát triển di động đó. Nhiều khía cạnh của việc phát triển, duy trì và phân phối ứng dụng dành cho thiết bị di động dễ dàng hơn với JavaScript. Vì vậy, các công ty như Facebook và Google đang đầu tư mạnh mẽ vào các công cụ tốt hơn để xây dựng các công cụ này bằng JavaScript.

Tính đến năm 2016, phần lớn sự phát triển là phát triển web. Mọi thứ đều chạm vào nền tảng lớn đó là “web”. Và làn sóng thiết bị tiếp theo mà bạn sẽ nói chuyện xung quanh nhà của mình và những chiếc ô tô đưa đón con bạn từ trường - tất cả chúng cũng sẽ được kết nối với nhau bằng cách sử dụng web.

Và điều đó có nghĩa là JavaScript.

Phản đối số 4: JavaScript không phải là ngôn ngữ đồ chơi được viết trong 10 ngày sao?

JavaScript có một lịch sử kỳ quặc.

Bạn chắc chắn sẽ nghe thấy mọi người pha trò cười với chi phí của nó.

Mọi người cũng thích ghét trên C ++. Và giống như JavaScript, C ++ đã thành công bất chấp sự ghét bỏ này, và bây giờ nó cũng xuất hiện ở khắp mọi nơi.

Vì vậy, nếu ai đó từng cho bạn một khoảng thời gian khó khăn để học JavaScript thay vì ngôn ngữ ưu tú của tuần, hãy nhớ những câu nói nổi tiếng của người đã tạo ra C ++:

"Chỉ có hai loại ngôn ngữ lập trình: những người luôn luôn chê bai và những ngôn ngữ không ai sử dụng." - Bjarne Stroustrup

Tôi chỉ viết về lập trình và công nghệ. Nếu bạn theo dõi tôi trên Twitter, tôi sẽ không lãng phí thời gian của bạn. ?