0966.867.186

Tại sao nên học lập trình Android?

Các chuyên gia tại Strategy Analatics cho biết, với lượng thiết bị smartphone android được tiêu thụ trong quí 3 của năm 2013, Android đang chiếm hơn 81% thị phần điện thoại kích hoạt toàn cầu. Một con số kỷ lục và áp đảo hoàn toàn so với các nền tảng khác. Trong số 230 triệu chiếc điện thoại thông minh được bán ra thì có tới 183 triệu chiếc là thiết bị chạy nền tảng android, trong khi đó iOS bán được 31 triệu (13,6% phần) và Windows Phone bán được 9 triệu (3.9% thị phần). Thị phần của máy tính bảng cũng chứng kiến sự thống trị tuyệt đối của nền tảng android với 52 triệu thiết bị được bán ra, chiếm 67% thị phần, trong khi đó iOS đứng thứ 2 với 28% thị phần.

Bạn cứ thử tưởng tượng với 1 app như Flappy bird, được cài đặt trên 1% số điện thoại android được kích hoạt trong quí thì chúng ta đã có gần 2 triệu thiết bị chạy game này. Bạn thử nhân con số này với lượt quảng cáo trong ngày và trong tháng sẽ ra được 1 số tiền khổng lồ cho Đông_Nguyễn (chưa kể tới tablet)

Tại sao nên học lập trình Android?

Học Android thế nào?

Thế giới của những nhà phát triển app cũng giống như thế giới của gamer, với vô số dạng người, trở ngại và các giai tầng. Vậy làm thế nào để chúng ta build (xây) kỹ năng đúng đắn nhất trong một thời gian ngắn nhất để đạt được kết quả kỳ vọng cao nhất. Cũng giống như bất kỳ một thế giới nào, bạn bước vào android world với vị thế là một newbie (người bắt đầu). Có 6 giai tầng bạn có thể đạt tới: newbie (người bắt đầu), coder (những người viết app đơn giản hoặc chuyển ngôn ngữ pseudo sang android), programmer (những người có khả năng độc lập viết module), senior programmer (lập trình viên cao cấp, chuyên giải quyết các bài toán phức tạp), architect (kiến trúc sư, người có thể phối hợp nhiều giải pháp ở các ngôn ngữ khác nhau), guru (thánh code) và dictator (gọi là các idol, đầu tầu của ngành).

Newbie: (khoảng 3-6 tháng) đây là giai đoạn bạn bắt đầu bỡ ngỡ làm quen với việc phát triển app android. Mọi thứ đều mới mẻ, lạ lẫm và dường như quá nhiều thứ để học. Học là cả một quá trình dài và “Thành Rome không được xây trong 1 ngày”, vì vậy bạn nên xác định mục tiêu dài hạn và có cái nhìn bao quát về thế giới android/smartphone.

Tại sao nên học lập trình Android?

Bạn nên đặt câu hỏi: mình nên tự học hay tới các trung tâm học nghề, mục tiêu học là làm việc hay thi lấy bằng cấp, tìm hiểu các cuốn sách hay ở đâu?. Giống như chơi cờ, phải có chiến lược ngay từ đầu, thế trận bình phong mã hay pháo đầu, tập trung cánh trái hay cánh phải, để từ đó đề ra chiến thuật áp dụng cho từng trận đánh nhỏ như tập trung nghi binh, kéo quân chủ lực ra mặt trận chính.

Tự học là một kỹ năng rất quan trọng. Không một trung tâm nào có thể dạy cho các bạn toàn bộ các kiến thức của android cả. Bạn sẽ phải học cách đọc tài liệu, tra cứu trên google, stackoverflow, … Tiếng Anh là một yêu cầu bắt buộc và bạn nên trau dồi vì rất nhiều công ty ở Việt Nam là công ty nước ngoài, đa quốc gia hay gia công cho EU/US. Bạn cũng có thể tham gia các forum về android ở viêt nam như vietandroid.com,android.vn, … và các forum/nhóm quốc tế để học hỏi. Kiên trì là tính cách cần rèn luyện khi tự học vì với biển kiến thức trên Internet như vậy, bạn rất dễ lạc hướng và ngại dần đều dẫn tới từ bỏ.

Để vượt qua giai đoạn đầu này, bạn nên đến các trung tâm dạy nghề và học hỏi từ đội ngũ giảng viên ở đây. So với tự học, bạn sẽ được giảng viên tận tình dẫn dắt vào thế giới android (tốc độ mình nghĩ gấp 20 lần so với tự học) và đồng thời có một người “trên đe dưới búa” bắt ép bạn kiên trì, và  cũng là một người anh/người bạn bên cạnh động viên/giải đáp những câu hỏi ngây ngô/ dìu bạn những bước chập chững đầu tiên. Tại techmaster, bạn sẽ bị ép để học giỏi, chăm chỉ và lành nghề. Các bài tập cũng chính là các dự án thật, funny (vui vẻ) và crazy (điên rồ). Hãy học với tâm thế “Stay hungry, stay foolish”. Bạn như một tờ giấy trắng, hãy hỏi những điều ngây ngô nhất, những điều giản đơn nhất. “Tại sao lại có Intent và gọi nó như thế?” “AsyncTask viết tắt của chữ gì?”. Đừng sợ hỏi, đừng sợ sai, đừng sợ thất bại … “Newbie ơi, đừng sợ”. Đây là giai đoạn bạn thử nghiệm các đoạn code, dùng Intent hay dùng db khi chuyển dữ liệu, dùng thử RelativeLayout xem thế nào, có thể cài MySQL server lên android không nhỉ, xử lý XML bằng DOM hay SAX, thế còn JSON có thư viện hỗ trợ chưa khi các webservice hiện nay chuyển sang JSON rất nhiều … Bạn sẽ học được rất nhiều từ việc hỏi các câu hỏi ngây ngô đấy, từ việc sai và thử. Giai đoạn này mình cũng khuyên các bạn nên học từ tổng quan trước, xem android làm được những gì, sau đó mới đi vào từng thành phần của nó. Cứ đi sâu dần dần, từ từ, bạn sẽ có khái niệm đầy đủ và hoàn thiện nhất. Hãy nhìn android như cách một vi tướng chỉ huy chiến trường, đầu tiên là tổng quát trên cả chiến trường, rồi chi tiết từng cánh quân, và cuối cùng mới là từng trận đánh.

Nếu bạn có ý tưởng, hãy mạnh dạn thực hiện nó? Flappybird cũng rất đơn giản và được tạo ra trong 3 ngày mà thu về 500.000$ 1 ngày đó sao. Truffy jump đồ họa cực xấu, cách chơi điên rồ nhưng luôn là top trên AppStore hay GooglePlay. Noteplus đơn giản, bán 10$ mà vẫn bán cực chạy. Chúng ta là newbie và tạo ra các app cho newbie sử dụng. Có phải ai cũng rành công nghệ, thích sử dụng các app rối rắm, lắm chức năng và phức tạp đâu.

Coder: giai đoạn bạn bắt đầu trải nghiệm thế giới nhiều mầu sắc của android, biết cách tra cứu tài liệu trên developer.android.com và tự tin sử dụng các API của android. Thường ở giai đoạn này, bạn sẽ gia nhập vào một nhóm làm hoặc tham gia vào các dự án của công ty. Lúc này bạn sẽ làm những công việc đơn giản trước như tạo giao diện, viết các module nhỏ và đơn giản. Hãy học cách làm việc nhóm, học cách thỏa hiệp và tranh luận. Hãy nhân cơ hội kết hợp học và hành, học để dẫn đường đúng đắn cho tư duy và hành để kiểm định, làm sâu sắc thêm kiến thức.

Programmer: giai đoạn bạn đã có thể tự mình phát triển một module riêng lẻ, hoặc tự viết các app tương đối phức tạp. Bạn có thể đọc, hiểu và sử dụng các thư viện ngoài/ các opensource cho việc phát triển dự án nhanh hơn. Ví dụ như bộ thư viện SherlockActionBar dành cho support với các app chạy trên các version android cũ, sử dụng thư viện FlatUIKit để làm phẳng app của mình, … Rất nhiều thư viện sẽ qua tay bạn. Bạn sẽ phải học cách nghĩ của người khác để hiểu họ thiết kế thư viện thế nào, học cách đo performance của lib để sử dụng cái này mà không sử dụng cái kia, học về làm game, về openGL, về sprite và cực nhiều thứ hay ho khác. Lúc này, bạn có thể tự tin làm việc độc lập, nhận dự án bên ngoài như một indie developer. Bạn kiểm nghiệm rất nhiều thứ, chiêm nghiệm thế giới và mất ăn mất ngủ khi không kết nối được lib, hay bực mình quá mà phải viết một lib từ scratch. Các ứng dụng của bạn ổn định, đẹp hơn cả về UI và kiến trúc, performance tốt (app của mobile cần chạy tốn ít RAM/CPU và ít pin nhất có thể). Lúc này làm app chính là cơ hội để bạn học và nâng cao kiến thức.

Senior programmer lúc này bạn hiểu khá rõ mọi ngóc ngách của android rồi. Bạn sẽ tham gia các buổi hội thảo chia sẻ kinh nghiệm từ các expert trong ngành. Bạn tìm đọc các bài báo về android, tham gia tranh luận trong các hội thảo lớn, viết các bài chia sẻ kiến thức. Lúc này cái quan tâm nhiều hơn của bạn là tìm cách cải tiến UI/ xử lý về performance, bạn biết sử dụng monkey/monkey runner để test app. Đây là giai đoạn bạn chiêm nghiệm mọi thứ mà bạn đã làm, refactor lại các đoạn code, quan tâm nhiều tới design pattern (tổ chức sao cho khoa học, tối ưu, dễ code, dễ bảo trì). Thường phải mất 2 năm để bạn trở thành senior/techlead của dự án. Ở đó, bạn là người ra quyết định app này nên triển khai thế nào khi có hàng triệu người sử dụng, server nên dùng công nghệ gì, android_client nên đảm nhiệm nhiệm vụ gì cho nhẹ, nhanh và hướng dẫn programmer code theo một design pattern mà bạn quyết định.

Architecture: giờ bạn đã có thể tự tin nói mình hiểu hầu hết mọi thứ của android, có thể thiết kế, kiến trúc một app sao cho chạy tốt nhất và tốn ít tài nguyên nhất. Bạn có đủ kinh nghiệm triển khai các dự án cực lớn và hiểu biết mọi thứ phục vụ cho android.

Guru: những idol lớn trong ngành. Mình sẽ có những bài viết chia sẻ các bài phỏng vấn của những vị thánh này. Họ thực sự hiểu biết sâu sắc mọi vấn đề và những kinh nghiệm của họ luôn là vốn quí cho bất kỳ ai, từ những newbie cho tới những architecture.

Dictator: bạn có thể lãnh đạo cộng đồng android, thay đổi bộ mặt của android. Tại sao lại không phải là bạn, vị trí số 1 trong cộng đồng android mã nguồn mở.

Kết luận: hãy học hàng ngày vì ngành CNTT thay đổi nhanh chóng, kiến thức một vài năm trước có thể đã không còn sử dụng được nữa. Tất cả mọi người, kể cả dictator ngành lại quay về con số 0 tròn trĩnh như bạn mà thôi. Hãy luôn tâm niệm “Khao khát nhất để học, ngây ngô nhất để học.” Và bạn sẽ ở vị trí top trong một tương lai không xa đâu.

Một vài cuốn sách android mình nghĩ khá cool cho người bắt đầu.

  • Sams Teach Yourself Android Application Development in 24 Hours.
  • Beginning Android 4 Application Development
  • Head First Android Development