Tương lai của nghề phát triển ứng dụng trên di động

Chúng ta đang sống trong thời kỳ mà mọi thứ gần như chuyển lên điện thoại di động thông minh (Smartphone - trong bài viết này, tôi chỉ đề cập đến điện thoại thông minh mà thôi. Các loại điện thoại chỉ phục vụ việc nghe, gọi và nhắn tin không nằm trong sự phân tích của bài này). Chúng ta dễ dàng bắt gặp hình ảnh con người cắm cuối nhìn vào chiếc smartphone của mình trên đường phố, trên phương tiện giao thông, hay trong quán cafe, những nơi công cộng. Chiếc điện thoại đã trở thành một phương tiện không thể thiếu trong đời sống cá nhân của con người hiện đại.


Bài viết này tập trung phân tích một số khía cạnh quan trọng trong thời đại "mobile computing" ngày nay và góp phần định hướng nghề nghiệp cho sinh viên để các bạn có thể chuẩn bị cho mình hành trang trong tương lai. Đối với các nhà quản lý, những bạn làm trong lĩnh vực kinh doanh, cũng có thể tìm thấy đâu đó những cơ hội để có thể phát triển thêm doanh nghiệp của mình trên lĩnh vực di động.


Tại sao nghề phát triển ứng dụng di động đang HOT ? 

Một trong những lý do đó là thị trường di động đang phát triển rất nóng. Người dùng di động hầu như không rời chiếc điện thoại của mình bao giờ. Nó luôn luôn online, luôn luôn bật và luôn bên cạnh người dùng. Do đó, trước nhu cầu của thị trường, người ta luôn muốn có những ứng dụng thú vị để có thể chạm tới ngay bất cứ nơi đâu, bất cứ khi nào.

Ghi chú: Một số các bạn thắc mắc mobile app là gì ? Không hiểu từ app? Từ app đây là viết tắt của application, có nghĩa là ứng dụng. Mobile app là ứng dụng trên mobile, trên di động.


Những con số thống kê nói lên nhiều điều!


Theo IDG, thị trường smartphone toàn cầu tăng 13% sau một năm (2015), với 341.5 triệu chiếc được bán ra. Trong đó, Android chiếm 82.8% thị phần. Samsung vẫn là nhà sản xuất smartphone dẫn đầu thế giới ở phân khúc tầm trung và cao cấp.




Thị phần của hệ điều hành cho smartphone




Mức lương trung bình của lập trình viên di động theo thống kê của Payscale [3]


Điện thoại của thế kỷ 21


Điểm khác biệt lớn nhất của chiếc smartphone so với các thiết bị di động khác đó là nó "smart"-thông minh. Đó là nó có một hệ điều hành mạnh mẽ, trên đó, người dùng có thể cài vô số ứng dụng tùy thích cho nó. Các ứng dụng có thể chỉ là các trò chơi đơn giản, đến các ứng dụng phục vụ công việc hằng ngày, hay những ứng dụng chuyên dụng phục vụ cho nghề nghiệp chuyên môn. Với cấu hình phần cứng mạnh mẽ, chiếc điện thoại di động có năng lực mạnh hơn những máy tính để bàn hay laptop cách đây vài năm. Nói một cách ngắn gọn, dễ hiểu là người dùng có trong tay một chiếc máy tính mạnh mẽ trên tay, có thể mang đi khắp mọi nơi.


Điểm đặc biệt thứ 2 của smartphone đó là nó có thể kết nối mạng không dây bất cứ nơi đâu qua các công nghệ Wifi, 3G, hay thậm chí 4G. Chính điều này đã làm cho người dùng sử dụng smartphone có thể kết nối vào Internet mọi lúc, mọi nơi. Họ có thể cập nhật tin tức cũng như đóng góp chia sẻ thông tin với bạn bè ở khắp mọi nơi.


Điểm đặc biệt thứ 3 đó là chiếc điện thoại bây giờ nó là "cửa ngõ" của chúng ta bước vào không gian số! Mỗi người chúng ta ngoài 1 thực thể bằng xương bằng thịt tồn tại ngoài đời thường, còn tồn tại nhiều "thực thể số" tồn tại trên không gian mạng: một hình ảnh bóng bẩy trên Facebook, một tài khoản Gmail/Yahoo/MSN/vân vân dùng để liên lạc, hay tài khoản Viber, Skype, WhatsUp dùng để gọi điện thoại miễn phí, hay thậm chí là 1 bang chủ võ lâm lãnh đạo hàng nghìn quân tướng trong một game online nào đó. Tất cả đều hội tụ trên chiếc điện thoại của chúng ta. Do đó, chiếc điện thoại trở nên vật bất ly thân của chúng ta bởi vì những tiện ích do chúng mang lại.

Ngoài ra, chiếc điện thoại di động ngày nay, nó được trang bị vô số cảm biến như GPS, cảm biến rung/gia tốc, cảm biến điện dung, Camera, cảm biến vân tay, cảm biến nhiệt độ, v.v. Đã làm cho các ứng dụng trên di động trở nên thông minh hơn, phù hợp với người dùng hơn là những ứng dụng trên máy tính để bàn. Điều này làm cho ứng dụng trên di động trở nên đầy màu sắc, thú vị hơn, tự nhiên hơn là trên máy để bàn.

Chắc hẳn trong chúng ta ai cũng đã một vài lần trải nghiệm việc bỏ quên điện thoại ở nhà, thì ngày đó đi làm, đi học sẽ đứng ngồi không yên. Cảm giác bị tách khỏi không gian số rất khó chịu :-)

Chúng ta cũng chợt nhận ra rằng, với những tính năng tuyệt vời mà chiếc smartphones mang lại đã làm cho tính năng "nghe/gọi/nhắn tin" của chiếc điện thoại truyền thống đã trở nên bị lu mờ. Tính năng đó gần như trở thành phụ !


Chúng ta làm được gì với chiếc điện thoại di động?


Trong phần này, tôi sẽ giới thiệu với các bạn những "điều kỳ diệu" mà chiếc điện thoại di động vượt trội lên tất cả. Một bức hình đáng giá bằng nghìn lời nói. Tôi giới thiệu đến các bạn 1 video clip quảng cáo mang tính "khoa học viễn tưởng" của hãng Corning, hãng chuyên sản xuất kính cao cấp cho các thiết bị di động. Clip này có tên là "A day made of Glass"




Trong clip này, nó nói lên viễn cảnh là trong tương lai, con người có thể sử dụng điện thoại di động tương tác với tất cả các đối tượng trong nhà, trao đổi thông tin, chia sẻ thông tin. Chiếc điện thoại di động kết nối với xe hơi, với trạm chờ xe buýt, tham gia hội nghị truyền hình từ xa nếu đến trễ. Chúng ta thoáng thấy đâu đó các ứng dụng trong clip này đã xuất hiện trong đời thường tuy chưa được mượt mà như trong phim.


Đến năm 2012, Corning cho ra đời thêm clip thứ 2 cũng với chủ đề A Day Made of Glass 2. Trong clip này, Corning nhấn mạnh đến khía cạnh giáo dục và y tế. Hai lĩnh vực này là liên quan mật thiết đến đời sống con người và trong đó, các ứng dụng "chạm" đến sức sáng tạo trong dạy học và y tế.



Học lập trình di động như thế nào? Bắt đầu từ đâu?

Chúc mừng các bạn đã đủ kiên nhẫn để đọc đến đây! Việc có kỹ năng lập trình trên di động mang lại rất nhiều lợi thế trong tìm việc và cả việc tự "khởi nghiệp". Cho nên sẽ rất tự nhiên khi các bạn thắc mắc chẳng hạn:


  • Em muốn học lập trình trên di động thì bắt nguồn từ đâu?
  • Có cần kiến thức nền tảng gì không? Ngôn ngữ nào là phù hợp?
  • Cần phải đầu tư thời gian và tiền bạc thế nào?
  • Đọc sách nào hay tham gia khóa học nào là phù hợp ?
  • Những kỹ năng nào là cần thiết cho một lập trình viên di động.
  • Và rất nhiều câu hỏi khác nữa.
Điều quan trọng nhất đối với việc lập trình đó là phát triển tư duy lập trình. Khi các bạn có được tư duy lập trình rồi, thì các bạn sẽ biết cách thể hiện suy nghĩ của mình cho chiếc di động hiểu và làm theo. Lúc đó là bạn đã lập trình được rồi.

Tôi đã tham khảo rất nhiều khóa học lập trình trên mạng, ở các trung tâm tin học, và cũng phỏng vấn nhiều bạn đã học ở các trung tâm thì nhận ra 1 điều đó là các bạn được đào tạo quá tập trung vào việc sử dụng "công cụ", xử lý tình huống và lạm dụng kỹ thuật nhiều quá. Trong khi việc phát triển tư duy lập trình, phương pháp giải quyết vấn đề lại chưa được chú trọng.




Hơn nữa, thực tế cũng có một số bạn học chuyên ngành CNTT, nhưng đến năm thứ 2 lại bắt đầu chán nản vì cảm thấy việc học lập trình khó quá nên kết quả học tập giảm sút. Điều này rất nguy hiểm cho tương lai học hành của các bạn vì các bạn càng sợ, càng ngán lập trình thì nó sẽ là rào cản lớn cho các bạn tiến xa hơn. Tôi đã từng giúp nhiều sinh viên lấy lại được niềm đam mê lập trình và vượt qua được khó khăn này để tiếp tục tiến xa hơn. Bởi vì đơn giản là trong cuộc sống, ai cũng phải lập trình cả, chỉ có điều là bạn chưa biết cách chuyển tư duy đó vào lập trình trên máy vi tính thôi.


Học ngôn ngữ nào để lập trình trên di động?


Đây cũng là một câu hỏi khiến nhiều bạn băn khoăn bởi vì trên thị trường có quá nhiều loại di động, quá nhiều hệ điều hành cho di động. Tuy nhiên, tôi có thể chia thành 3 loại hệ điều hành chính:

  • Android: là một hệ điều hành mã nguồn mở dành cho di động được phát triển bởi Google [4]. Hiện nay Android chiếm gần 80% thị phần hệ điều hành cho di động. Để phát triển ứng dụng trên hệ điều hành này thì ngôn ngữ cần biết là Java. Bởi vì các ứng dụng trên Android, chủ yếu là chạy trên máy ảo Java Dalvik Virtual Machine.
  • iOS: là hệ điều hành mã nguồn đóng, được phát triển bởi cty Apple. Các sản phẩm iPhone, iPad chạy hệ điều hành này. Thị phần của iOS nhỏ hơn nhiều so với Android. Tuy nhiên, đây là thị phần chất lượng cao. Người dùng iOS có xu hướng trả tiền để mua ứng dụng cao hơn là người dùng Android. Cho nên đây cũng là một nền tảng được nhiều lập trình viên ưa chuộng. Để phát triển ứng dụng trên iOS, bạn cần phải biết ngôn ngữ Objective-C [5] hoặc Swift [6]
  • Windows Phone: đây là hệ điều hành của cty Microsoft. Microsoft là một công ty phần mềm nổi tiếng thế giới bởi hệ điều hành Windows. Và với cuộc cách mạng về thiết bị di động, Microsoft không thể đứng ngoài. Họ phát triển các hệ điều hành Winphone 7, Win phone 8. Đến thế hệ Windows 10, Microsoft tuyên bố là không còn phân biệt giữa windows phone và desktop OS. Tất cả có chung 1 kiến trúc và phần mềm sẽ tương thích giữa desktop, tablet và di động luôn. Điều này mang lại một sự thuận tiện to lớn cho lập trình viên trên Windows khi kế thừa được phần lớn kiến thức học được trên desktop để chuyển sang di động. Do đó, để phát triển app trên Windows phone, các bạn có thể dùng bất cứ ngôn ngữ nào được hỗ trợ bởi Bộ Visual Studio của Microsoft. Ngày nay, một lựa chọn được đa số bạn trẻ ưa thích đó là C-sharp (C#). 
Cuộc chiến ngôn ngữ --> Cross platform !

Đến đây có vẻ các bạn đã phát hoảng vì quá nhiều thứ phải học: Java, Objective-C, Swift, C#. Và để như giải tỏa được mối lo âu của các lập trình viên, người ta đưa ra một khái niệm nữa là lập trình "cross-platform" - tạm dịch là lập trình "xuyên nền tảng". Có nghĩa là chỉ cần học một thứ mà lập trình trên nền tảng nào cũng được. Nghe có vẻ hấp dẫn một cách kỳ diệu !

Vì sao lại làm được điều này? Cốt lõi của ứng dụng đa nền tảng trên di động đó là tận dụng công nghệ Web hiện đại được cấu thành bởi 3 thành tố chính: HTML5 + Javascript + CSS. Bởi vì hầu như thiết bị di động nào cũng hỗ trợ các thành phần cho việc hiển thị Web (HTML5+CSS), trình thông dịch Javascript. Các công cụ lập trình đa nền tảng sẽ cung cấp các thư viện đệm ở giữa để chương trình tương tác với thiết bị, với hệ điều hành mà ứng dụng chạy trên đó.

Ví dụ như PhoneGap (http://phonegap.com) cung cấp các API mà từ Javascript, các bạn có thể truy xuất được đến các sensors, GPS trong điện thoại di động chạy Android, iOS hay Windows phone đều được.

Chú gà trống choai Xamarin - https://www.xamarin.com

Gần đây, xuất hiện một framework tên là Xamarin, hiện đã được Microsoft mua lại, dung hòa được 3 trường phái phát triển ứng dụng cho Android, iOS và Windows đó là chỉ dùng ngôn ngữ C#. Lập trình viên sử dụng Xamarin sẽ chỉ cần học C# và từ đó bộ Xamarin sẽ biên dịch ra ứng dụng cho iOS, Android, hay Windows tùy theo ý của mình. Điều này làm giảm rất nhiều công sức để học các ngôn ngữ khác nhau mà vẫn có thể phát triển được ứng dụng cho nhiều hệ điều hành khác nhau. 


Thật ra, việc lập trình không cần phải dùng tới ngôn ngữ lập trình phức tạp. Chúng ta vẫn có thể dùng các khối logic để thể hiện ý tưởng và dùng các công cụ chuyển tải ý tưởng đó thành ứng dụng. MIT App Inventor là mội ví dụ tiêu biểu appinventor.mit.edu 






Thiết kế giao diện & đồ họa 

Ngoài việc rành rẽ về kỹ thuật lập trình, để thành công trong việc phát triển ứng dụng trên di động, bạn cần phải có kiến thức về đồ họa, màu sắc, thiết kế giao diện và trải nghiệm người dùng. Những kiến thức & kỹ năng này cũng cần phải trang bị và rèn luyện chứ không thể sớm có được.  Do đó, đối với những app thành công, thường thì có cả 1 đội ngũ vừa coder, vừa designer kết hợp thì mới có được nhiều người download. 

Những kỹ năng cần có của một lập trình viên di động  

Để có thể tồn tại được trong thời đại mà công nghệ liên tục phát triển, những lập trình viên ngoài kiến thức chuyên môn, cần có những kỹ năng sau: 

  • Có kinh nghiệm phát triển ứng dụng cho bất kỳ hệ điều hành nào (phổ biến là iOS, Android, Windows Phone) 
  • Có kinh nghiệm coding với các  Mobile Frameworks như Xcode, Android SDK, hoặc Windows Phone App Studio 
  • Có kinh nghiệm với các ngôn ngữ như Objective-C, Java for Android, hay C# 
  • Có kinh nghiệm với responsive design cho mobile-ready websites 
  • Có kinh nghiệm với các ngôn ngữ phát triển web như HTML 5, CSS 3, JavaScript frameworks (jQuery, BootStrap, EXT_JS)
  • Có kinh nghiệm về thiết kế UI, UX. 
  • Có kinh nghiệm mobile app frameworks chẳng hạn như  Sencha or PhoneGap
Ngoài các kỹ năng cứng, lập trình viên còn cần phải có các kỹ năng mềm sau: 
  • Khả năng làm việc nhóm
  • Kỹ năng giao tiếp, trình bày nói và viết tốt 
  • Có kinh nghiệm quản lý dự án. 
  • Có khả năng thích nghi với môi trường phát triển linh hoạt. 

Các mô hình kinh doanh trên di động 

Thị trường di động đã bùng nổ, trên chiếc di động đó lại cần nhiều phần mềm và kéo theo sự bùng nổ về ứng dụng. Người dùng di động sẵn sàng chi tiền để mua các ứng dụng nhằm đem lại sự tiện ích cho họ. Thế thì người biết lập trình trên di động có thể kiếm tiền được từ đâu? 

  • Làm thuê cho công ty phần mềm: đây là điều đầu tiên mà chúng ta có thể nghĩ đến. Việc làm thuê gần như là 1 lựa chọn đầu tiên cho đa số các bạn sinh viên khi tốt nghiệp. 
  • Nhà phát triển ứng dụng độc lập: một khi các bạn đã cứng cáp trong việc thể hiện ý tưởng thành app, các bạn có thể đứng ra tự kinh doanh bằng cách viết app và bán trên các app store. Mô hình app store, thực chất như là 1 siêu thị phần mềm. Lập trình viên có cơ hội tiếp xúc được hàng triệu khách hàng trên app store đó. Thực tế có khá nhiều bạn sinh viên của UIT thành công từ con đường này. 
  • Doanh nhân, khởi nghiệp, entrepreneur [8]: một bước phát triển cao hơn nữa đó là nhà khởi nghiệp. Các bạn có ý tưởng đột phá, duy nhất hoặc độc đáo và biến nó thành app để bán. Nếu may mắn, chẳng hạn như Angry Bird, bạn sẽ có hàng triệu khách hàng trên internet. Hoặc đôi khi bạn có 1 khách hàng "sộp" mua luôn cả công ty của bạn như trường hợp Facebook mua Instagram với giá 1 tỷ USD [9]. 

Đa số các app trên di động lại miễn phí, thế thì làm sao ra tiền ? 

Đây cũng là một câu hỏi thú vị và được rất nhiều người quan tâm. Lập trình viên đầu tư thời gian và công sức để viết app, họ không thu tiền trực tiếp từ người sử dụng, thế thì thu nhập họ đến từ đâu? 
  • Được tài trợ: bạn được 1 công ty, tổ chức nào đó thuê viết 1 app để cho người dùng download. Bạn không lo về việc bán app, vì đã có cty tài trợ rồi.  
  • Thu nhập từ quảng cáo trên app miễn phí: đây có thể nói là một trong những cách phổ biến nhất của các lập trình viên. App có số lượng download càng nhiều, thì lượng quảng cáo được xem càng tăng lên và nhà cung cấp dịch vụ quảng cáo sẽ trả tiền cho bạn vì có công đưa quảng cáo đó đến nhiều khách hàng. 
  • In-app purchases hay Premium upgrade: trò chơi miễn phí, nhưng những đồ vật ảo trên đó phải mua để tăng độ hứng thú, mạnh mẽ cho nhân vật. 
  • Subscription: các tờ báo điện tử lớn trên thế giới có hình thức này. Bạn muốn đọc tin tức hằng ngày, thay vì mua báo giấy thì bạn đăng ký 1 năm báo mạng và trả tiền. Tin tức sẽ đến thẳng vào app của bạn.  
  • Thu nhập từ việc bán thông tin người dùng, nghiên cứu thói quen người dùng: những thông tin về thời gian dùng điện thoại, vùng nào trên màn hình được chạm nhiều nhất, khách hàng dùng phone thời gian nào nhiều nhất, loại tin gì khách hàng thích xem, ...   Tất cả những thứ đó là vô cùng quý giá với nhà phát triển điện thoại, nhà quảng cáo. Các cty sẽ nghiên cứu kỹ khách hàng tiềm năng để tăng khả năng kiếm được tiền từ họ. 
Thay lời kết 


Thế kỷ 21 là thế kỷ của di động. Ở các nước phát triển, mỗi người có thể có nhiều hơn 1 chiếc điện thoại di động bên mình. Nó mở ra một cơ hội phát triển ứng dụng cho thị trường này là vô cùng to lớn.  Thị trường đó còn mở ra một mô hình kinh doanh mới đó là mảnh đất màu mỡ cho các nhà phát triển ứng dụng độc lập hay khởi nghiệp. 

Để có thể thành công được trong một môi trường cạnh tranh mang tính toàn cầu này, đòi hỏi các bạn phải có một sự chuẩn bị kỹ lưỡng về thời gian, tiền bạc và quan trọng nhất là sự quyết tâm học hỏi. Tất cả những công cụ, tài liệu đều sẵn có và gần như miễn phí trên mạng. Điều cần nhất của các bạn là một nguồn động lực và môi trường để các bạn học tập, trao đổi và nhận được sự hỗ trợ khi cần thiết.  

Việc phát triển tư duy lập trình có thể bắt đầu từ lứa tuổi cấp 2 trở đi. Bạn là học sinh phổ thông, hay công chức đi làm, hoặc một người đã về hưu muốn học lập trình đều có thể học được. Hoặc nếu các bạn là sinh viên cần củng cố thêm kiến thức về lập trình, hay cần nắm lại căn bản để tiến xa hơn thì phát triển tư duy lập trình là điểm mấu chốt để các bạn tìm lại đam mê trên con đường nghề nghiệp của mình. 

Với một niềm đam mê về kỹ thuật lập trình, tôi rất sẵn lòng chia sẻ và huấn luyện cho các bạn sáng tạo ứng dụng trên di động dựa trên nền tảng phát triển tư duy lập trìnhCác bạn nào muốn dấn thân vào học lập trình di động đầy chông gai thử thách nhưng cũng không kém phần hấp dẫn thì đừng ngại gửi mail ngay cho tôi tuanna@uit.edu.vn

Các bạn có nhu cầu học lập trình di động hoặc cần tư vấn nghề nghiệp có liên quan đến mobile thì hãy tham gia khảo sát nhé: [Click here].





Tài liệu tham khảo

[0] https://www.roberthalf.com/technology/blog/mobile-app-development-hot-skill-and-hard-to-find-candidates

[1] IDG Smartphone OS Market Share, 2015, Q2, http://www.idc.com/prodserv/smartphone-os-market-share.jsp

[2] Worldwide Smartphone Growth Goes Flat in the First Quarter as Chinese Vendors Churn the Top 5 Vendor List, According to IDC, http://www.idc.com/getdoc.jsp?containerId=prUS41216716

[3] Lương của lập trình viên di động, http://www.payscale.com/research/US/Job=Mobile_Applications_Developer/Salary

[4] Giới thiệu về Android, https://en.wikipedia.org/wiki/Android_(operating_system)

[5] Objective C, https://en.wikipedia.org/wiki/Objective-C

[6] Swift , https://en.wikipedia.org/wiki/Swift_(programming_language)

[7] Xamarin framework, https://www.quora.com/What-is-XAMARIN-Is-it-a-framework-Or-compiler-Or-is-it-a-just-a-code-translator

[8] Sự khác nhau giữa businessman và entreupreneur, https://www.linkedin.com/pulse/businessman-vs-entrepreneur-whats-difference-yorick-reintjens 

[9] Facebook buys Instagram, http://dealbook.nytimes.com/2012/04/09/facebook-buys-instagram-for-1-billion/?_r=0 

Nhận xét

  1. Cảm ơn vì bài viết rất tâm huyết của thầy. Em cũng có xây dựng một Website về học lập trình Android http://eitguide.com/. Hy vọng cũng giúp các bạn tiếp cận với Android một cách dễ dàng nhất.

    Trả lờiXóa
  2. Very good em!Cộng đồng cần có những người tâm huyết như vậy!

    Trả lờiXóa

Đăng nhận xét