programming language

20
PROGRAMMING LANGUAGE Xu hướng ngôn ngữ lập trình năm 2014 http://fpt.aptech.edu.vn/ chitiet.php?id=4071 DUC DANG MARKETING INTERN Xu hướng của ngôn ngữ lập trình trong 2014 là gì? Đó là câu hỏi được nhiều developer quan tâm đến. Qua bài viết này, ITviec hy vọng sẽ giúp các bạn tìm được câu trả lời. Trước khi đi tìm ngôn ngữ lập trình hot nhất, chúng ta hãy dành một chút thời gian để ngó qua các số liệu sau đây.

Upload: tracdiadk52

Post on 12-Dec-2015

20 views

Category:

Documents


0 download

DESCRIPTION

programming language

TRANSCRIPT

Page 1: Programming Language

PROGRAMMING LANGUAGE

Xu hướng ngôn ngữ lập trình năm 2014

http://fpt.aptech.edu.vn/chitiet.php?id=4071

DUC DANG

MARKETING INTERN

Xu hướng của ngôn ngữ lập trình trong 2014 là gì? Đó là câu hỏi được nhiều developer

quan tâm đến. Qua bài viết này, ITviec hy vọng sẽ giúp các bạn tìm được câu trả lời.

Trước khi đi tìm ngôn ngữ lập trình hot nhất, chúng ta hãy dành một chút thời gian để ngó

qua các số liệu sau đây.

Page 2: Programming Language

Đầu tiên là biểu đồ của Job Tractor trong 2013:

Còn đây là biểu đồ trong Q1 2014

Page 3: Programming Language

So với năm 2013 thì:

Java và PHP đổi chỗ cho nhau nhưng đều là những ngôn ngữ được yêu cầu nhiều

nhất

Java cho Android đang gần đuổi kịp Objective – C

JavaScript vượt qua Ruby

Python lên 2 hạng

Còn dưới đây là 10 ngôn ngữ nên học dựa trên báo cáo mới nhất

của lynda.com và Redmonk.

 

Lynda.com Redmonk

1. Java

2. C

3. C++

4. C#

5. Objective-C

6. PHP

7. Python

8. Ruby

9. JavaScript

10. SQL

1. JavaScript

2. Java

3. PHP

4. C#

5. Python

6. C++

7. Ruby

8. C

9. Objective-C

10. CSS

Page 4: Programming Language

 

Tới đây nhiều bạn sẽ nghĩ đã tìm được câu trả lời qua những số liệu trên. Hãy để tôi làm rõ

với bạn một điều:

“Đừng bao giờ dùng số liệu thống kê để giải quyết vấn đề lựa chọn ngôn ngữ lập trình.“

Bạn có thể lựa một ngôn ngữ nổi tiếng để dễ dàng xin việc nhưng nó cũng sẽ đẩy bạn vào

cảnh đối chọi với hàng ngàn ứng viên khác. Bạn có thể học về Fortran không ai biết nhưng

cũng không ai … xài luôn. May thay, tôi có một số nhận xét bạn có thể tham khảo:

Công nghệ lúc lên lúc xuống

Page 5: Programming Language

Xu hướng ngôn ngữ lên xuống tùy vào nhu cầu của các nhà tuyển dụng nhưng thời gian

tồn tại của chúng thì khác nhau. Ví dụ Flash giờ đã xuống nhưng còn nhiều project sử dụng

đến nó. Điều này cũng tương tự với Pearl, COBOL … Nếu bạn ghét sự nguy hiểm, đừng

chọn những ngôn ngữ hỗ trợ nghèo nàn như VB6 hay ActionScript. Giờ thì…

Sự lựa chọn cho những bạn đang là developer

Nếu bạn đã “master” một hoặc hai ngôn ngữ thì lựa chọn cái kế tiếp sẽ đơn giản: hãy chọn

ngôn ngữ gây cảm hứng cho bạn. Học lập trình lúc này sẽ dễ dàng và nhanh hơn lúc đầu vì

bạn đã nắm được cốt lõi.

Đây là một số tip bạn có thể thấy thú vị:

Page 6: Programming Language

ActionScript dựa trên ECMAScript (được tích hợp nhiều trong các trình duyệt giống

như Java Script); Flash developer có nhiều quy trình liên quan đến HTML5

C++,C#, Objective-C, Java và thậm chí PHP có concept khá giống nhau, vì vậy bạn

có thể dễ dành chuyển đổi qua lại

Nếu bạn phát triển các ứng dụng trên Windows bằng cách sử dụng Visual Studio thì

kiến thức về .NET có thể ứng dụng lên Microsoft web server.

Quan trọng nhất, đừng ngại (sợ thì không nhưng ngại thì chắc có) học điều gì mới.

Sự lựa chọn cho những bạn mới

Nếu bạn muốn bắt tay vào làm việc ngay thì JavaScript là lựa chọn tốt nhất. Đây là ngôn

ngữ có mặt ở khắp mọi nơi, phát triển mạnh mẽ và có nhiều resources mà bạn có thể sử

dụng trên mạng. Sau khi “luyện” được JavaScript, bạn có thể chọn Ruby hoặc Python làm

điểm đến tiếp theo.

Page 7: Programming Language

Bạn có thể học được nhiều về lập trình từ các diễn đàn nơi mà các lập trình viên tài năng

luôn tụ họp (ví dụ: Proggit và Hacker News), đọc các bài viết nổi bật và đặt các câu hỏi của

bạn tại đây; bạn sẽ sẽ nhận được các câu trả lời chất lượng.

Lời kết

Cách duy nhất để bạn trở thành một lập trình viên giỏi — đó là lập trình thật nhiều. Hãy

luyện tập lập trình trong thời gian rảnh rỗi của mình. Thử giải bài toán Euler bằng ngôn ngữ

lập trình ưa thích của bạn, hoặc tự xây dựng một trang web cho riêng mình.

Những điều sau đây chỉ là một số kinh nghiệm mà tôi thấy thú vị. Chúng có thể đúng hoặc

không đúng trong trường hợp của bạn:

Phát triển phần mềm doanh nghiệp: Hãy học Java, nó được sử dụng trong nhiều

công ty phần mềm như tiếng mẹ đẻ. Java sẽ giúp bạn tiến xa hơn trong nhiều

trường hợp.

Phát triển Web: Tránh xa PHP. Nó là một ngôn ngữ được thiết kế tồi. Thay vì đó,

hãy học Django hoặc Ruby on Rails. Nếu bạn thích công nghệ của Microsoft thì hãy

học ASP.NET MVC.

Phát triển ứng dụng trên Windows: Học C# (và có thể đừng học Visual Basic). Nếu

muốn chạy các ứng dụng viết bằng C# trên môi trường Linux thì hãy sử dụng dự án

Mono.

Có nhiều công cụ lập trình tuyệt vời hoặc các IDE mà bạn nên sử dụng thành thạo.

Ví dụ như Eclipse hay Notepad++.

Bạn nên học thêm về các kỹ thuật như Regular Expressions, Unicode, Information

Security v.v…

Cố gắng cập nhật những công nghệ mới nhất. Bạn không phải học tất cả những

ngôn ngữ mới nhất, nhưng hãy có sự hiểu biết về những xu hướng mới nhất trong

lập trình. Ví dụ như lập trình Web, lập trình di động v.v… là những lĩnh vực có rất

nhiều sáng tạo đang diễn ra.

Page 8: Programming Language

Chỉ biết một ngôn ngữ lập trình không phải là một ý kiến hay. Học nhiều ngôn ngữ

cũng không phải cách tối ưu. Hãy cố gắng cân bằng giữa hai thái cực này và cố

gắng thật giỏi ít nhất 2 đến 3 ngôn ngữ lập trình trong các lĩnh vực khác nhau.

Những ngôn ngữ lập trình khác nhau được dùng để giải quyết các dạng vấn đề khác nhau.

Chúc bạn may mắn và chọn được ngôn ngữ lập trình phù hợp cho mình!

* Do có nhiều nhận xét xoay quanh về chủ đề PHP nên ITviec đã có phản hồi chung

tại đây. Các bạn còn có cơ hội nhận được áo “This guy can code” khi tham gia bình luận

tại bài phản hồicủa ITviec.

Thực tế, câu hỏi “Tôi nên học ngôn ngữ nào khi mới bắt đầu lập trình?”là một câu hỏi gây tranh cãi, ngay cả với

những kỹ sư, giảng viên kì cựu nhất. Nếu bạn hỏi 10 lập trình viên “Đâu là ngôn ngữ tốt nhất cho ‘lính mới’?”, bạn

hoàn toàn có thể nhận được 10 câu trả lời khác nhau.

Để tìm ra ngôn ngữ lập trình phù hợp nhất, bạn không chỉ cần đánh giá mức độ dễ học của mỗi ngôn ngữ, mà còn

cần xem xét xem bạn sẽ lập trình trong các dự án như thế nào, yếu tố bạn ưa thích nhất ở lập trình là gì và liệu xem

lập trình có trở thành nghề kiếm sống của bạn hay không.

Vì sao bạn muốn học lập trình?

Tùy vào lý do bạn muốn học lập trình, rất có thể câu trả lời đã được xác định sẵn cho bạn. Nếu bạn muốn thiết kế

website hoặc ứng dụng nền web, bạn cần học HTML, CSS, Javascript để tạo ra các trang web hoàn chỉnh, và có lẽ

là PHP để tạo ra hệ thống nền web hoàn chỉnh. Nếu bạn chủ yếu muốn phát triển ứng dụng di động hãy học

Objective-C để lập trình cho iOS và học Java để lập trình cho Android.

Nếu bạn xác định rằng mình sẽ lập trình phục vụ cho nhiều mục đích, nhiều dự án, hoặc muốn thử nghiệm nhiều

ngôn ngữ/công nghệ khác nhau, bạn cần phải học các khái niệm căn bản về lập trình một cách căn bản, và bắt đầu

Page 9: Programming Language

“học cách suy nghĩ như một lập trình viên đích thực”. Bằng cách tiếp cận này, bất kể là bạn bắt đầu học bằng ngôn

ngữ nào đầu tiên, bạn có thể dễ dàng tiếp cận các ngôn ngữ mới trong tương lai.

Các ngôn ngữ được sử dụng nhiều nhất

Phần lớn các ngôn ngữ lập trình “chính thống” (được nhiều người sử dụng) như C, Java, C#, Perl, Ruby và Python

đều có thể thực hiện các tác vụ giống nhau (hoặc gần giống nhau). Ví dụ Java là một ngôn ngữ lập trình hoạt động

đa nền tảng (không phụ thuộc vào hệ điều hành, bất kể là Windows, Linux hay Mac), song các ứng dụng Python

cũng có thể chạy trên Windows và Linux gần như tương đồng nhau. Bạn có thể dùng Java để viết các ứng dụng nền

web lớn và Ruby cũng có khả năng này.

Do nhiều ngôn ngữ lập trình được xây dựng dựa trên các ngôn ngữ lập trình khác (ví dụ, Microsoft bị chỉ trích là đã

“ăn cắp” từ Java để tạo ra C#), cấu trúc câu lệnh trên các ngôn ngữ này là gần như giống hệt nhau. Hãy thử xem ví

dụ dưới đây về bài toán kinh điển “Hello World” (khi học một ngôn ngữ/công nghệ mới, điều đầu tiên mà bạn cần làm

bao giờ cũng sẽ là tìm cách hiển thị dòng chữ “Hello World”): 

Như bạn có thể thấy, cách viết của C# và Java gần như giống hệt nhau; trong khi cách viết của Python và Perl cũng

không quá khác biệt.

Tuy vậy, giữa các ngôn ngữ có thể có sự khác biệt lớn về cách cài đặt, sử dụng… Tạp chí SOA World Magazine đưa

ra lời khuyên như sau:

“Nếu bạn nhìn rất kĩ vào các ví dụ, bạn có thể thấy một vài ví dụ khá đơn giản, một số khác khá phức tạp, một số

ngôn ngữ yêu cầu phải có dấu chấm phẩy (;) ở cuối câu lệnh, một số khác thì không. Nếu bạn mới bắt đầu lập trình,

đôi khi bạn nên chọn các ngôn ngữ không có quá nhiều qui luật về cú pháp và logic, bởi nhờ đó mà ngôn ngữ này

không thể “tự gây khó dễ cho chính mình”. Nếu bạn vừa thử một ngôn ngữ nào đó và cảm thấy không thoải mái, hãy

đổi sang ngôn ngữ khác!”.

Sau đây là tổng quan về một số ngôn ngữ phổ biến nhất:

C: Viết ra các đoạn mã nguồn có hiệu năng cao

Có thể nói rằng C là ngôn ngữ lập trình được sử dụng nhiều nhất. Việc các lập trình viên cần biết sử dụng C giống

như là các bác sĩ cần phải biết cấu tạo cơ thể con người vậy. C là một ngôn ngữ có bậc khá thấp (cách xa ngôn ngữ

Page 10: Programming Language

người, và gần với ngôn ngữ máy), do đó bạn sẽ học các nguyên tắc căn bản về cách tương tác với phần cứng. Bạn

cũng sẽ học cách debug (theo dõi chương trình để phát hiện, sửa lỗi), quản lý bộ nhớ, và học cả cách hoạt động của

phần cứng máy vi tính. Với các ngôn ngữ bậc cao hơn (như Java), bạn sẽ không có cơ hội học những kiến thức này,

và bởi vậy học C là một cách chuẩn bị rất tốt để bước lên các ngôn ngữ khác. C được coi là “ông tổ” của các ngôn

ngữ lập trình bậc cao như Java, JavaScript và C#. 

Tuy vậy, do C là một ngôn ngữ khá “bài bản”, việc học lập trình với C sẽ khó khăn hơn các ngôn ngữ khác. Nếu bạn

không cần viết các chương trình tương tác quá sâu với phần cứng (ví dụ như truy cập vào driver của thiết bị, hoặc

viết các phần mở rộng cho hệ điều hành…), học C sẽ gây lãng phí thời gian – có thể là vô ích. Nói tóm lại, trong khi

học C sẽ giúp bạn viết các chương trình tương tác sâu với hệ thống, bạn sẽ phải tốn rất, rất nhiều thời gian học

trước khi có thể tạo ra một sản phẩm có ý nghĩa. 

Java: Lựa chọn hợp lý, phù hợp với thực tiễn 

Java là ngôn ngữ lập trình phổ biến thứ 2 trên thế giới. Java áp dụng gần như triệt để các nguyên tắc Lập trình

Hướng đối tượng (OOP) – một mô hình được thực hiện trên hầu hết các ngôn ngữ hiện đại như C++, Perl, Python

và PHP. Khi đã học Java, bạn sẽ dễ dàng nắm bắt được các ngôn ngữ OOP khác. 

Java có thế mạnh là được sử dụng rất nhiều. Bạn có thể dễ dàng tìm được câu trả lời cho các bài toán căn bản trên

Java, cộng đồng sử dụng Java cũng rất lớn (và do vậy khả năng được trợ giúp của bạn cũng sẽ lớn hơn), và ngôn

ngữ Java được sử dụng cho rất nhiều mục đích (viết ứng dụng nền web, nền Windows, nền Android hoặc gần như là

bất cứ hệ điều hành nào khác), do đó lựa chọn học Java là một lựa chọn khá khôn ngoan. Trong khi bạn không thể

“chọc” sâu xuống hệ thống như C, Java vẫn cho phép bạn sử dụng các phần quan trọng như hệ thống tập tin, đồ

họa, âm thanh, mạng… trên các hệ điều hành khác nhau. 

Python: Dễ học và thú vị 

Nhiều lập trình viên sẽ khuyên bạn học Python đầu tiên, bởi ngôn ngữ này khá đơn giản song lại có rất nhiều khả

năng. Mã nguồn Python rất dễ đọc, và cũng đòi hỏi bạn phải làm theo các phong cách lập trình nên có (ví dụ như

sắp xếp mã nguồn cho dễ đọc) trong khi lại không quá đòi hỏi gắt gao về cú pháp (ví dụ như phải thêm dấu chấm

phẩy ở cuối câu lệnh). 

Theo Patrick Jordan, chuyên gia tại Ariel Computing, so với thời gian cần thiết để viết các mã nguồn đơn giản trong

các ngôn ngữ khác như C, Java và BASIC, Pythonn “đòi hỏi ít thời gian hơn, ít dòng code hơn, và đòi hỏi ít khái

niệm cần phải học để đạt được một mục đích xác định hơn. Cuối cùng, lập trình với Python khá thú vị. Sự thú vị và

khả năng thành công sẽ tạo ra sự tự tin và hứng thú cho học viên, và sau đó họ sẽ học lập trình dễ dàng hơn”. 

SOA World cho rằng Python là một lựa chọn bắt buộc đối với những người muốn làm việc với Linux (hoặc đã quen

với Linux từ trước). Nhờ được sử dụng trên các trang web nổi tiếng như Pinterest và Instagram, Python cũng đang

ngày một phổ biến hơn. 

JavaScript: Để lập trình web 

Dù được đặt tên theo Java (vì lý do thương mại), JavaScript rất khác biệt so với Java. JavaScript có thể được coi là

ngôn ngữ lập trình được hỗ trợ nhiều nhất, do tất cả các trình duyệt web đều hỗ trợ JavaScript. JavaScript được coi

là 1 trong 3 thành phần căn bản của web: HTML chứa nội dung, CSS chứa giao diện và JavaScript đảm nhiệm vai

trò tương tác động. JavaScript có cú pháp khá dễ sử dụng, bạn mất ít thời gian để viết và có thể dễ dàng đánh giá

Page 11: Programming Language

thành quả của mình khi lập trình JavaScript, và bạn cũng không cần tới quá nhiều công cụ pháp triển như các ngôn

ngữ khác. Nói tóm lại, nếu bạn muốn tạo ra các trang web hấp dẫn, JavaScript là lựa chọn bắt buộc.

 

Lựa chọn đường đi cho mình 

Nếu bạn muốn lựa chọn lập trình làm nghề nghiệp, hãy cân nhắc những lời khuyên sau đây từ Dev/Code/Hack: 

- Lập trình Back-end/Server-side: Python, Ruby, PHP, Java hoặc .NET. Bạn cần phải có kiến thức về cơ sở dữ liệu

và nên có kiến thức quản trị hệ thống. 

- Lập trình Front-end/Client-side: HTML, CSS và Javascript. Bạn nên có khả năng thiết kế tốt. 

[*] Thế nào là Front-end và Back-end? Ví dụ, khi bạn đọc bài trên VnReview, phần trang web được hiển thị trên trình

duyệt của bạn được coi là front-end. Các xử lý mang tính hệ thống mà người dùng cuối không biết tới (ví dụ, lấy nội

dung trang web từ cơ sở dữ liệu) sẽ được xử lý trong phần “back-end” của máy chủ. 

- Lập trình di động: Objective-C cho iOS và Java cho Android. Bạn nên có kiến thức HTML/CSS để lập trình web cho

thiết bị di động. Bạn cũng nên có kiến thức server-side. 

- Lập trình 3D/lập trình game: C/C++, OpenGL. Bạn nên có thẩm mỹ tốt và tư duy sáng tạo. 

- Lập trình cho các hệ thống đòi hỏi hiệu năng cao: C/C++ hoặc Java. Bạn nên có kỹ năng toán học và kỹ năng phân

tích lượng tốt. 

Nói tóm lại, học “code” là một con đường có rất nhiều xuất phát điểm. Điều quan trọng nhất là bạn phải biết mình cần

gì: cần giải quyết vấn đề gì hoặc xây dựng ra các ứng dụng dạng nào. Blog Programming is terrible đưa ra kết luận: 

“Ngôn ngữ đầu tiên mà bạn học được là ngôn ngữ khó nhất mà bạn sẽ học. Lựa chọn đường đi nhỏ bé hơn và dễ

dàng hơn biến trải nghiệm này thành một chuyến phiêu lưu, hơn là một thử thách. Xuất phát điểm không quan trọng,

miễn là bạn tiếp tục đi – tiếp tục viết code, tiếp tục đọc code. Cũng đừng quên test chúng. Một khi bạn đã lựa chọn

được một ngôn ngữ thực sự giúp bạn vừa lòng, việc học các ngôn ngữ mới sẽ ít khó khăn hơn, và bạn sẽ tiếp tục

thu về các kỹ năng mới”.

Page 12: Programming Language

Ngôn ngữ lập trình nào bạn nên học để kiếm tiền?Bài viết được dịch từ blog DevCodeHack.comTôi thường nghe thấy mọi người hay hỏi rằng, ngôn ngữ lập trình nào họ nên học trước tiên. Nhưng tôi nghĩ câu hỏi đó nên đổi lại thành: tại sao bạn lại muốn lập trình?, câu hỏi này nên đặt ra đầu tiên thì thích hợp hơn. Nếu bạn cảm thấy thích thú công việc lập trình bởi vì dường như nó tạo ra nhiều niềm vui, thì bất kỳ một ngôn ngữ lập trình nào cũng có thể làm được điều đó.Nhưng tôi biết rằng các bạn cũng như tôi đều có rất nhiều hóa đơn cần phải thanh toán mỗi ngày, và bạn đang nghĩ rằng sẽ không đến nỗi tệ nếu công việc lập trình có thể giúp ta thanh toán những hóa đơn đó.Bây giờ câu hỏi trở nên cụ thể hơn là: ngôn ngữ lập trình nào tôi nên học để kiếm tiền?Câu hỏi này rất thiết thực, nhưng tôi phải nói trước rằng, mỗi người sẽ có một câu trả lời khác nhau.

Học ngôn ngữ lập trình nào để kiếm việc dễ nhất?

Một tin tốt lành là tất cả các ngôn ngữ lập trình đều có mức lương nhận được khá tốt. Hiện nay mức lương trung bình của một lập trình viên tại Mỹ, người có khoảng 3 đến 5 năm kinh nghiệm thì dao động từ $60,000 đến $80,000 đô-la/năm, nhưng mức lương có thể khác nhau rất lớn, và có thể cao hơn rất nhiều, đặc biệt cho những người làm việc ở vùng bờ biển phía đông và tây nước Mỹ, hoặc các công việc liên quan đến tư vấn và YMMV.Những ngôn ngữ lập trình được sử dụng phổ biến hiện nay là: Ruby, Python, PHP, Objective-C, HTML, CSS, JavaScript, Java, .NET, C/C++. Bạn có thể tìm kiếm thêm thông tin trên Google về các ngôn ngữ này.

Page 13: Programming Language

Mỗi ngôn ngữ đều có một mức độ phổ biến của nó, và được sử dụng trong những lĩnh vực khác nhau:

Ngôn ngữ lập trình Môi trường sử dụng

Python/Ruby/PHP

Dùng để lập trình phía Server-side các ứng dụng cho mobile và website.

Objective-C Dùng lập trình ứng dụng cho iPhone

HTML Dùng để xây dựng website phía Client-side.

CSS Ngôn ngữ định dạng cho HTML phía Client-side

JavaScriptDùng để lập trình phía Client-side của website, sử dụng để thao tác với HTML/CSS. Bạn nên học thêm về jQuery.

Java/.NetLập trình cho Android. Server-side cho các website, và để xây dựng các phần mềm có logic nghiệp vụ phức tạp khác.

C/C++Do ưu điểm về tốc độ xử lý nhanh nên phù hợp viết phần mềm cho Thị trường Chứng khoán, hoặc các game đồ họa.

Vậy thì ngôn ngữ lập trình nào bạn nên học để kiếm tiền? Một tin xấu là có thể bạn phải học nhiều hơn một ngôn ngữ lập trình. Nhưng tin tốt đó là bạn không cần phải học tất cả mọi thứ về mọi ngôn ngữ lập trình, chỉ cần đủ để hoàn thành mục đích của bạn.Nhưng câu hỏi đặt ra là, ngôn ngữ lập trình nào bạn nên học đầu tiên? Như bạn cũng đã biết, điều đó thực ra còn tùy thuộc vào bạn muốn kiếm tiền như thế nào?Nếu bạn không quan tâm về việc mình sẽ kiếm tiền như thế nào, thì theo quan điểm của tôi, bạn nên học theo thứ tự như sau: Python, Objective-C, JavaScript, HTML, CSS. Bạn cũng sẽ cần một số kiến thức về database (MySQL, MongoDB), và học cách làm thế nào để lập trình cùng với chúng, mặc dù việc này cũng không khó lắm.Nếu bạn muốn lập trình các game đồ họa hoặc các ứng dụng trong lĩnh vực chứng khoán, thì C++ là ngôn ngữ dành cho bạn. Nếu bạn muốn làm website thì Python, Ruby và PHP là thích hợp nhất, đi kèm với một số kiến thức HTML/CSS/JavaScript. Còn nếu bạn muốn lập trình các ứng dụng trên iPhone thì Objective-C là ngôn ngữ của bạn.JavaScript, HTML và CSS thì thường được sử dụng kết hợp với nhau và làm cho website chạy mượt hơn trên trình duyệt của bạn. Chúng thì luôn phải sử dụng kết hợp với một ngôn ngữ kịch bản Server-side như là Python, Ruby hoặc PHP.Trong thị trường tuyển dụng, bạn sẽ không phải sử dụng tất cả các ngôn ngữ như tôi đã gợi ý, mà công việc thường yêu cầu một tập các kỹ năng khác nhau:

Page 14: Programming Language

Vị trí công việc Bộ kỹ năng cần thiết

Lập trình viên Back-end (Server-side)

Thường sử dụng một trong số các ngôn ngữ sau đây: Python, Ruby, PHP, Java hoặc .NET. Có kiến thức về database. Có thể cần thêm một số kiến thức về quản trị hệ thống.

Lập trình viên Front-end (Client-side)

Yêu cầu kiến thức về HTML, CSS, JavaScript và có thể cần thêm một số kỹ năng về thiết kế.

Lập trình viên mobile

Objective-C hoặc Java (cho Android). HTML/CSS cho các website mobile. Có thể cần thêm một số kiến thức về Server-side.

Lập trình viên về Games/3DC/C++, OpenGL, Animation. Có thể cần thêm năng khiếu về mỹ thuật.

Lập trình viên phát triển các phần mềm cần tốc độ xử lý cao High-Performance (phần mềm trong Thị trường Chứng khoán…)

C/C++, Java. Có thể cần thêm nền tảng về kiến thức toán học và khả năng phân tích định lượng tốt.

Thường thì, có một số người chuyên làm công việc back-end và một số người khác chuyên làm công việc front-end. Gần đây thì có thêm nhóm người chuyên làm ứng dụng trên mobile. Và thỉnh thoảng bạn cũng bắt gặp một vài người làm tất cả các công việc nói trên, nhưng nói chung khi bạn đi kiếm việc làm thì bạn chỉ ứng với một trong các vị trí đó mà thôi.Khi học những ngôn ngữ này, thì bạn nên bắt đầu nhỏ thôi. Đừng bắt đầu bằng một tham vọng xây dựng một Facebook thứ hai, điều đó có thể sẽ chẳng bao giờ xảy ra. Hãy bắt đầu với những dự án nhỏ và tìm kiếm những bài hướng dẫn thực hành. Bạn hãy tìm kiếm trên Google cụm từ như “hello world python” hay “hello world javascript” để tìm những bài hướng dẫn đơn giản để bắt đầu. Khi bạn đã có thể lập trình những dự án nhỏ cho mình hoặc bè bạn, thì lúc đó bạn đã có thể gom các dự án này lại vào một portfolio (hồ sơ) để xin một công việc, hoặc bắt đầu bằng một vài công việc freelancer để bổ sung cho portfolio của mình. Bạn hoàn toàn có thể làm được điều đó.

http://vinacode.net/2014/10/17/nen-hoc-ngon-ngu-lap-trinh-nao-de-phat-trien-phan-mem/

Ngôn ngữ lập trình nào bạn nên học để phát triển phần mềm?

Page 15: Programming Language

Bài viết được dịch từ MakeuseofKhi bắt đầu vào con đường phát triển phần mềm, điều quan trọng là bạn nên đầu tư thời gian một cách khôn ngoan trong việc lựa chọn học một công nghệ nào đó mà nó sẽ có cả lợi ích cho bạn trong ngắn hạn với những kết quả nhìn thấy được, cũng như là cho phép bạn thiết lập một nền tảng cho bất kỳ ngôn ngữ lập trình nào trong tương lai. Lựa chọn của bạn sẽ còn phụ thuộc vào một số các yếu tố, vì thế hãy xem qua những đặc thù của chúng, xem nó có dễ học và giúp bạn kiếm sống được hay không. Tôi sẽ cung cấp tới bạn một vài đoạn code hiển thị dòng chữ “hello world”, đó là ứng dụng đầu tiên mà nhiều người tập viết khi học một ngôn ngữ lập trình mới.Trong bài viết này, chúng ta sẽ xem xét những ngôn ngữ được sử dụng để phát triển phần mềm — là các ứng dụng chạy trên máy tính hoặc các thiết bị di động. Trong bài viết sau, chúng ta sẽ bàn về danh sách các ngôn ngữ lập trình web phổ biến, thường được sử dụng để tạo ra các trang web động và các giao diện tương tác người dùng thông qua trình duyệt.

Nên học ngôn ngữ lập trình nào để phát triển phần mềm?

1. Java

Java là một ngôn ngữ lập trình hoàn toàn hướng đối tượng, strongly typed, cùng với một tập đặc trưng mở rộng tập trung vào lập trình mạng và khả năng tương thích trên nhiều nền tảng. Các ứng dụng viết bằng Java thì gần như có thể chạy trên mọi hệ điều hành – mặc dù tốc độ sẽ không tốt được như ứng dụng được thiết kế chạy trên môi trường gốc.Nó là ngôn ngữ lập trình được lựa chọn cho hầu hết các khóa học về Khoa học Máy tính, và do đó hầu như mọi người đều có ít nhất là một chút kinh nghiệm lập trình Java. Các

Page 16: Programming Language

ứng dụng Android thì cũng được viết bằng Java, tuy vậy bạn không thể đơn giản chạy một ứng dụng Java thông thường trên thiết bị Android hoặc ngược lại.Tiềm năng kiếm tiền:Bạn có thể tạo ra các ứng dụng có giá trị để bán trên chợ ứng dụng Android; và cũng có rất nhiều công ty lớn tuyển dụng lập trình viên Java, nhưng tỷ lệ cạnh tranh khá lớn và mức lương hơi thấp.

[Chú ý: Đừng nhầm lẫn Java với JavaScript, vì JavaScript là một ngôn ngữ hoàn toàn khác được sử dụng cho lập trình web - chúng ta sẽ nói về nó trong bài viết sau].

2. C/C++

Mặc dù thực ra đó là hai ngôn ngữ riêng biệt, nhưng chúng lại thường được nhóm lại với nhau, C++ về cơ bản là một phiên bản mở rộng của C, bổ sung thêm đặc trưng hướng đối tượng. C++ là ngôn ngữ lập trình được lựa chọn bởi các lập trình viên chuyên nghiệp, hầu hết các game trên máy tính và các phần mềm cho Windows là được viết bằng nó. Nó có tốc độ thực thi rất nhanh, nhưng yêu cầu các lập trình viên phải quản lý bộ nhớ một cách chính xác, do đó để giỏi được ngôn ngữ này là rất khó. Người mới bắt đầu học lập trình thì chưa nên học ngôn ngữ này.Tiềm năng kiếm tiền:Có ít sự cạnh tranh hơn Java, các lập trình viên C++ có nhiều yêu cầu tuyển dụng và được trả lương rất cao, đặc biệt là trung lĩnh vực phát triển game.

3. C#

Bạn phát âm nó là C sharp, đây là một ngôn ngữ của Microsoft nhân bản từ Java (mặc dù chúng cũng có nhiều điểm khác nhau hoàn toàn) – là một ngôn ngữ hướng đối tượng, đa năng và strongly-type. Tốc độ thực thi khá tốt, mặc dù không nhanh được như C++. Phần mềm viết bằng C# thì yêu cầu phải có .Net Framework và chỉ chạy trên hệ điều hành Windows.

Page 17: Programming Language

Tiềm năng kiếm tiền:Có một số lượng khá lớn các công việc yêu cầu C# trong các dự án enterprise, nhưng bạn không có tiềm năng để kiếm tiền trên những dự án nhỏ. Tuy nhiên, nó là một ngôn ngữ thú vị và khá dễ học cho người mới bắt đầu, chắc chắn là tôi sẽ đề xuất nó nếu bạn muốn tập trung phát triển ứng dụng trên hệ điều hành Windows.Bạn có thể tải bản Visual Studio Express miễn phí của Microsoft, nó là công cụ tuyệt vời để bạn thiết kế giao diện GUI và viết code cho chương trình. Bạn cũng có thể sử dụng IDE này với ngôn ngữ Visual Basic và nhiều ngôn ngữ khác của Microsoft.

4. Visual Basic

Là một đóng góp khác của Microsoft, Visual Basic là một ngôn ngữ hướng sự kiện tập trung vào các ứng dụng có thiết kế giao diện đồ họa GUI đơn giản. Hướng sự kiện nghĩa là code bạn viết ra thì nói chung sẽ xảy ra theo hành động của người dùng – ví dụ nó xảy ra khi người dùng click chuột vào một cái button chẳng hạn. Ngôn ngữ này rất dễ dàng để học và xây dựng các ứng dụng đơn giản, nhưng nó không phải là ngôn ngữ tốt nhất để học về các khái niệm nền tảng trong lập trình.

5. Objective-C/ Cocoa

Đây là một ngôn ngữ dành cho Apple Mac, hầu hết các ứng dụng chạy trên hệ điều hành OSX và iOS đều được viết bằng ngôn ngữ này. Về mặt kỹ thuật, Objective-C là một phiên bản mở rộng của ngôn ngữ C với đặc trưng hướng đối tượng, giống như C++, nhưng nó gần như luôn kết hợp cùng với Cocoa framework để xây dựng các giao diện ứng dụng người dùng và các đặc trưng ở mức độ cao hơn trên nền tảng Mac. Bạn cũng phải cẩn thận trong việc quản lý bộ nhớ khi viết bằng ngôn ngữ này.Các cú pháp và khái niệm bạn cần học thì tương đối phức tạp khi so sánh với một ngôn ngữ như Java hoặc C#, nhưng mặt khác, Apple cung cấp một môi trường phát triển toàn diện và miễn phí (XCode) và các công cụ khác sẽ làm cho quá trình tạo ra các ứng dụng thực tế và có thể xài được thì khá dễ dàng. Ngoài ra cũng có nhiều bài hướng dẫn và các video trên mạng hướng dẫn cho bạn, vì thế nó cũng chắc chắn là dễ học hơn C++. Khi bạn chọn ngôn ngữ này thì cơ bản là bạn sẽ phát triển ứng dụng cho OSX và iOS, nhưng bạn cũng sẽ có khả năng để viết ứng dụng cho Apple desktop và môi trường di động với chỉ một ngôn ngữ duy nhất.

Page 18: Programming Language

Tiềm năng kiếm tiền:Chỉ với một tài khoản dành cho developer ($99 đô-la/năm), bạn có thể xây dựng ứng dụng và có cơ hội kiếm khá bộn tiền — Apple đã trả hơn $2 tỉ đô-la cho các nhà phát triển ứng dụng. Các nhà phát triển ứng dụng cho App Store thì có cơ hội tốt hơn các nhà phát triển cho Android để kiếm tiền với các ứng dụng có trả phí, trong khi các nhà phát triển cho Android có khuynh hướng kiếm thu nhập từ việc quảng cáo trên các ứng dụng miễn phí.Đó là tất cả các ngôn ngữ mà tôi muốn giới thiệu với bạn ngày hôm nay, và chúng là những ngôn ngữ phổ biến để phát triển phần mềm trong thế giới thực trên máy PC, Mac và môi trường di động. Trước khi tôi nhận được những bình luận của bạn, tôi đã quyết định đặt ngôn ngữ Python vào trong danh sách các ngôn ngữ dành cho phát triển web ở bài viết sau, bởi vì có vẻ như nó được sử dụng nhiều nhất ở mảng đó.Sự thực là một khi bạn đã có kiến thức khá cơ bản trong bất kỳ một ngôn ngữ nào, thì nó rất dễ để học thêm một ngôn ngữ khác; nó cũng giống như là nếu bạn biết tiếng Trung Quốc theo lối tượng hình thì việc học đọc và viết tiếng Nhật Bản cũng dễ hơn rất nhiều — các ngôn ngữ lập trình cũng thường kế thừa và vay mượn lẫn nhau, chúng chia sẻ cùng tập các cú pháp và đặc trưng cơ bản. Trong bài viết tới tôi sẽ giới thiệu các ngôn ngữ chuyên dành cho phát triển web như là JavaScript và PHP.Bạn đang sử dụng ngôn ngữ nào để phát triển phần mềm, điều gì mà bạn cảm thấy tâm đắc nhất? Hãy để lại vài dòng bình luận nhé!Các bài viết liên quan: