Thứ Sáu, 2 tháng 10, 2015

Tổng quan về lập trình ứng dụng di động

Trong khoảng thời gian gần đây, lập trình di động đang là một ngành hot. Các mẩu tin tuyển dụng gần nhất mình đọc thường tuyển Android developer, iOS developer, … với mức lương khá cao, không thua kém gì lập trình web hay lập trình hệ thống nhúng. Ngoài ra, nếu biết cách lập trình ứng dụng, bạn cũng có thể làm freelance, hoặc tự phát triển ứng dụng và kiếm tiền thông qua ứng dụng của mình.
Bài viết này sẽ giúp các bạn có cái nhìn tổng quan về thị trường ứng dụng di động hiện nay, cũng như giới thiệu một số ngôn ngữ/công nghệ các bạn cần biết nếu muốn đi theo con đường này.
mobile-app-developer
Thế chân vạc trong trận chiến Mobile
Trên thị trường ứng dụng di động hiện nay, 3 hệ điều hành chiếm thị phần cao nhất là : Android, iOS và Window phone, tiếp sau là 1 số hệ điều hành khác như BlackBerry… Trong phạm vi bài viết, mình chỉ phân tích về 3 OS đứng đầu là Android, iOS Windows Phone nhé.
chart-ww-smartphone-os-market-share
Thị phần trong thị trường di động của các hệ điều hành

Android – Kẻ chiếm miếng bánh lớn nhất

Theo biểu đồ, ta dễ nhận ra Android luôn chiếm hơn 70% thị phần của mảng di động. Ứng dụng Android được viết bằng ngôn ngữ Java, do đó các bạn lập trình viên Java có thể dễ dàng chuyển hướng qua mảng này.
Lập trình viên Android cũng đang là mục tiêu được các công ty săn đón. Các mẩu tin tuyển dụng Android developer chiếm tỉ trọng lớn nhất trong số các tin tuyển dụng của mảng mobile. Thuở còn làm đồ án tốt nghiệp, có 1 ông trong nhóm mình chưa biết gì về Android. Mình và ổng tự học và làm 2 tháng thực hiện đồ án, vừa xong đồ án thì ổng đi PV lập trình Android trong 1 công ty và được nhận luôn.
Android có quá nhiều device với đủ kích cỡ màn hình, cùng với vô số phiên bản (Từ 2.0 cho tới 4.4). Điều này gây khá nhiều khó khăn cho lập trình viên khi viết app : Cần phải test đủ thứ, đảm bảo ứng dụng tương thích với nhiều device, không bị lỗi giao diện, v…v.
Nếu bạn muốn đi theo con đường viết ứng dụng kiếm tiền, đưa ứng dụng lên Google Store, bạn sẽ phải mua 1 tài khoản Android Developer. Phí tài khoản này là 25$/nă.
android

iOS – Vị vua không ngai

Theo biểu đồ, iOS chỉ chiếm 20% thị phần, bằng 1/4 so với Android. Tuy nhiên nghe đồn là doanh thu của Apple Store lại cao hơn Google Play Store. Nguyên nhân là do người dùng iOS chơi sang hơn, chịu khó bỏ tiền mua ứng dụng hơn so với người dùng Android.
Số lượng tuyển dụng iOS ít hơn Android, tuy nhiên lương cho lập trình viên iOS lạinhỉnh hơn bên Android chút đỉnh. Lý do không phải vì iOS tốt hơn Android, mà chỉ đơn thuần là qui luật cung cầu: Lập trình viên iOS hiếm hơn lập trình viên Android nên họ có giá cao hơn.
Để tiếp cận iOS, bạn cần máy ảo hoặc máy Mac để cài hệ điều hành MacOS. Ứng dụng iOS được viết bằng ngôn ngữ Objective-C (Giống C nhưng có thêm OOP) hoặc Swift. Việc code và debug trên iOS phức tạp hơn Android. Bạn phải cài đặt Xcode, mua tài khoản Apple Developer mới có thể test ứng dụng và đưa ứng dụng lên Apple Store. Bộ phận kiểm duyệt của Apple Store cũng khắt khe hơn Google Play Store, nhiều khi bạn phải chờ khá lâu để ứng dụng của mình được duyệt.
Nếu làm ở công ty, bạn sẽ được cũng cấp tài khoản Apple Developer cũng như device để test. Nếu muốn tự viết, bạn sẽ phải tự trả 100$/năm cho tài khoản Apple Developer, và mất thêm 1 khoản kha khá để mua thiết bị (iPhone, iPad) về test.
ios

Windows Phone – Kẻ sinh sau đẻ muộn

Windows Phone đã chậm chân khi gia nhập thị trường di động, nơi Android và iOS đã làm mưa làm gió khá lâu. Mặc dù Microsoft đã có một số chính sách hỗ trợ devloper, hệ thống ứng dụng trên Window App Store vẫn còn khá nghèo nàn và nhàm chán(Mình tìm app Google Map mà còn không có).
Thú thật, mình chả thấy công ty nào tuyển lập trình viên Windows Phone cả. Hầu như các công ty đều o bế cho ứng dụng trên Android, iOS trước rồi mới đến Windows Phone. Vì Windows Phone được viết bằng ngôn ngữ C# kết hợp với XAML, các lập trình viên C# có thể thử sức ở mảng này.
Cá nhân mình từng code cả Android lẫn Windows Phone thì thấy Windows Phone dễ code hơn, debug nhanh và tiện hơn. Với Android, nếu không có device, ta phải debug trên máy ảo, chạy rất chậm… máy ảo của Window Phone lại rất mượt và nhanh.
Nếu muốn viết app kiếm tiền, mình nghỉ các bạn nên chọn Window Phone, vì những lý do sau:
  • Apple Store và Play Store đã có rất nhiều ứng dụng, tính cạnh tranh rất cao. Ngược lại, bạn ít khi gặp phải sự cạnh tranh trên Window Store.
  • Microsoft đưa ra khá nhiều chính sách hỗ trợ Windows Phone, có thể trong tương lai sẽ thu hút nhiều người dùng hơn.
  • Account Window Phone Developer có giá rất rẻ, chỉ có 19$ và dùng mãi mãi. 
original



Chủ Nhật, 21 tháng 6, 2015

C++ là gì?

C++ là một ngôn ngữ lập trình đa dụng ,ta có thể dùng C++ để lập trình cho các hệ thống lớn,  hệ điều hành, ứng dụng và game.
C++ là ngôn ngữ biên dịch:  tùy thuộc vào các hệ thống khác nhau mà ta có thể có các trình biên dịch tương ứng.
Phiên bản tiêu chuẩn mới nhất được công bố vào năm 2011 được biết đến với tên C++11.
Một số công cụ có thể dùng để lập trình C++ có thể kể đến đó là DevC++, Code::Block, Visual Studio.

Spring là gì?


Spring là gì?

Spring Framework, hay ngắn hơn là Spring, là một cấu trúc dùng để xây dựng chương trình ứng dụng mã nguồn mở dành cho ngôn ngữ lập trình Java.
Spring có thể dùng để lập trình Java cho Desktop Application và Web Application. Trong loạt bài viết này, chúng ta chỉ tìm hiểu về Spring cho lập trình web (Web Application) và framework này gọi tên đầy đủ là là Spring Web MVC. Trong bài viết này, để đơn giản mình gọi tắt Spring Web MVC là Spring.
Spring sẽ giúp chúng ta lập trình các ứng dụng web theo mô hình 3 lớp MVC : Models – Views- Control.

Những yêu cầu cơ bản để sử dụng Spring:

Để có thể sử dụng tốt Spring, các bạn cần thực hiện:
  • Thiết lập môi trường Java.
  • Cài đặt IDE: Netbean hoặc Esclipe. Ở đây mình khuyên các bạn nên dùng Netbean vì Spring được tích hợp sẵn trong Netbean, do đó ta không cần download thêm gói thư viện Spring như đối với Esclipe.
Ngoài ra về kiến thức, để tìm hiều về Spring được hiệu quả, các bạn cần biết các kiến thức cơ bản về lập trình bao gồm:
  • HTML.
  • JSP.
  • Java.

Thứ Bảy, 20 tháng 6, 2015

Giới thiệu về HTML

HTML là gì?

HTML là thứ đầu tiên các bạn cần học để tạo ra một trang web.
HTML viết tắt của từ Hyper Text Markup Language được dùng để mô tả một trang web để trình duyệt có thể hiểu và hiện thị đúng.
Do đó, HTML không phải là ngôn ngữ lập trình, HTML là ngôn ngữ đánh dấu (markup language) bao gồm một nhóm các thẻ đánh dấu (tag) để mô tả trang web.

Dùng gì để viết HTML?

Để viết HTML cực kì đơn giản, ta có thể dùng công cụ có sẵn là notepad viết và lưu lại dưới dạng file HTML.

Kết luận:

Trên đây mình đã hướng dẫn các tạo một trang HTML đơn giản.  Trong các bài tiếp theo, chúng ta sẽ tìm hiểu cặn kẽ ý nghĩa của các thẻ HTML .
Ở ví dụ trên, mình dùng notepad để viết các mã lệnh HTML . Tuy nhiên, mình không khuyến khích các bạn dùng notepad vì dùng notepad không có hỗ trợ tốt thiết kế các mã lệnh HTML .
Do đó, các bạn nên dùng notepad++ hoặc sublime text 3. Đây là 2 text editor hỗ trợ gõi mã lệnh HTML rất tốt.

Bài 1: Giới thiệu ngôn ngữ lập trình C/C++ và cài đặt công cụ lập trình C/C++


Ngôn ngữ lập trình C được phát triển từ những năm 1970 và hiện  nay trở thành một trong những ngôn ngữ lập trình thông dụng nhất.
C là ngôn ngữ rất mạnh mẽ trong việc viết các phần mềm hệ thống.  Ngoài ra,  C là ngôn ngữ lập trình được dùng làm phương tiện dạy thuật toán, cấu trúc dữ liệu và sử dụng trong các kì thi lập trình về học thuật như ACM/ICPC.

DevC++ :

Lập trình C với DevC++
DevC++ có thể là công cụ lập trình C thường được dùng nhất bởi DevC++ có các ưu điểm sau :
  • Gọn nhẹ.
  • Hỗ trợ chạy các file có đuôi định dạng *.c hoặc *.cpp riêng lẽ  mà không cần tạo Project ( đây là ưu điểm so với công cụ Code::Block – công cụ  lập trình C sẽ trình bày phía  dưới).
Lưu ý: các file có đuôi định dạng *.c  là  file được bằng ngôn ngữ  C và đuôi đđịnh dạng à *.cpp là file viết bằng ngôn ngữ C++

Code::Block:

Lập trình C với Code::Block
Code::Block có thể nói là công cụ lập trình C ổn định nhất và hiện tại  là công cụ lập trình C yêu cầu trong kì thi lập trình quốc tế ACM/ICPC.  Code::Block hỗ trợ gõ tắt rất tốt.
Khác với DevC++, muốn chạy một file *.c hay *.cpp bạn phải tạo một Project.

Visual Studio 2013:

Visual studio
Visual Studio 2013 được phát hành bởi Microsoft. Visual Studio 2013 ngoài hỗ trợ viết ngôn ngữ C# thì  Visual Studio 2013 có khả năng hỗ trợ rất tốt cho lập trình C/C++. 
Visual Studio 2013 có các phiên bản khác nhau như: Ultimate, Predium , Professional. Hiện tại, mình đang dùng bàng Ultimate cho lập trình C++ và lập trình ứng dụng Windows Phone 8.1 và thấy nó rất ổn định.
Các bạn có thể tải về các phiên bản của Visual Studio 2013 ở phía dưới, bao gồm bản có phí và miễn phí. 
Lưu ý rằng, nếu bạn cài đặt Visual Studio 2013 bằng file có đuôi mở rộng là exe thì bạn cần kết nối mạng internet hoặc cài đặt bằng file *iso với kích thước tương đối lớn.