Category Archives: Kiến thức cần thiết

Một developer giỏi cần biết nhiều thứ hơn là code.

Series Phản Phác Quy Chân – Lý thuyết hay thực hành quan trọng hơn?

Gần đây, mình có thấy một cuộc tranh cãi, lộn,… tranh luận khá thú vị giữa các bạn sinh viên về chuyện “Lý thuyết hay thực hành quan trọng hơn?”.

Có bạn bảo “Phải vững lý thuyết thì mới giỏi được”, có bạn đáp lại “Code nhiều là giỏi chứ cần vẹo gì lý thuyết”, có người quăng gạch “anh tự học code, tự làm theo tutorial chứ có cần học lý thuyết gì đâu, vẫn có lương nghìn đô!!”.

Vì nhiều bạn cũng email cho mình hỏi vấn đề tương tự, mình viết bài này để chia sẻ cái nhìn của bản thân. Rốt cuộc lý thuyết hay thực hành quan trọng hơn?? Đọc hết bài sẽ biết!

Continue reading Series Phản Phác Quy Chân – Lý thuyết hay thực hành quan trọng hơn?

Advertisements

Series Nhập Môn Lập Trình – Công việc thường ngày của một lập trình viên

Đây là bài viết đầu tiên trong series Nhập Môn Lập Trình Không Code. Như mình đã nói ở bài viết trước, đây là series mang tính định hướng, giúp các bạn sinh viên hoặc các em lớp 12 có cái nhìn tổng quát hơn về ngành phần mềm trước khi quyết định theo đuổi nó.

Bài viết này sẽ trả lời câu hỏi “Làm lập trình viên là làm gì?” và giới thiệu những công việc hằng ngày của mỗi lập trình viên.

Continue reading Series Nhập Môn Lập Trình – Công việc thường ngày của một lập trình viên

Series Nhận diện Idol: Phần cuối – Từ Demo tới Deploy – Hoàn chỉnh ứng dụng

Kết thúc phần trước, chúng ta đã Oauth WebTask để viết xong RestAPI của ứng dụng theo kiến trúc Serverless. Ở phần cuối này, chúng ta sẽ sử dụng AngularJS để tạo một ứng dụng Web đơn giản.

Nếu chưa sử dụng AngularJS bao giờ, hãy đọc bài viết này để có đủ kiến thức cơ bản AngularJS để làm theo hướng dẫn nhé: http://sangplus.com/angular-js-101-gioi-thieu-ve-angularjs.html

Viết code HTML

Mở IDE ưa thích của bạn lên để bắt đầu code nào. Ta tạo 3 file index.html, script.jsstyle.css cùng thư mục nhé.

screen-shot-2017-01-17-at-2-25-34-pm

Continue reading Series Nhận diện Idol: Phần cuối – Từ Demo tới Deploy – Hoàn chỉnh ứng dụng

Giới thiệu series “Nhập Môn Lập Trình Không Code”

Từ câu hỏi của nhiều bạn trẻ

Hiện nay, ngành lập trình đang là một ngành hot, nhận được sự chú ý của nhiều bạn trẻ.

Từ lúc viết blog đến này mình vẫn thường nhận được câu hỏi “Làm sao để trở thành một lập trình viên”, hoặc “Em đi học rồi nhưng vẫn còn đang mù mờ không biết ngành này thế nào, nên học những gì ?”.

Những câu hỏi này thường đến từ các bạn học sinh sắp thi Đại Học, sinh viên năm nhất năm hai, hoặc những bạn đã tốt nghiệp, đã đi làm nhưng có hứng thú muốn tìm hiểu về ngành IT.

Số lượng câu hỏi mình nhận được không hề ít, cho thấy có rất nhiều bạn quan tâm đến ngành IT và muốn theo đuổi nó.

Continue reading Giới thiệu series “Nhập Môn Lập Trình Không Code”

Series Nhận diện Idol: Phần 6.2 – Từ Demo tới Deploy, viết RestAPI cho ứng dụng với WebTask

Sau khi đọc phần trước, bạn đã hiểu được khái niệm serverless. Ở phần này, chúng ta sẽ biến hàm recognize đã viết ở phần 5 thành một RestAPI. Với cách thông thường, ta sẽ dùng NodeJS để viết một ứng dụng rồi deploy nó lên 1 server nào đó (Xem ví dụ phần 3 bài deploy chatbot).

Tuy nhiên, lần này chúng ta sẽ dùng kiến trúc Serverless, chỉ viết code và để bên thứ 3 lo các phần server và deploy. Sau khi đã có RestAPI này, ta viết 1 ứng dụng web nho nhỏ, dùng API này để nhận diện VAV idol. Sản phẩm cuối cùng: http://jav-idol.toidicodedao.com/vav/

Continue reading Series Nhận diện Idol: Phần 6.2 – Từ Demo tới Deploy, viết RestAPI cho ứng dụng với WebTask

Series Chuyện Code Chuyện Đời – Từ cốc nước đầy đến chuyện học công nghệ và phương cách sống

Chúng ta bắt đầu bài viết hôm nay bằng câu chuyện hư cấu về một chàng coder điển trai tài năng tên H.H.N.

N. là một coder tài năng, tốt nghiệp đại học F. danh tiếng. Ngay sau khi ra trường, N. đã được một công ty lớn F. mời vào làm việc với mức lương ngàn đô. Trong công ty lớn, N được học bài bản về các quy trình làm việc, qui tắc viết code sạch. Chứng tỏ được khả năng của bản thân, sự nghiệp của N đi lên như diều gặp chó, nhầm, gặp gió.

Tuy nhiên, do chán bộ máy làm việc cồng kềnh phức tạp,  N xin nghỉ việc, chuyển sang công ty K. nhỏ hơn làm product để có thể làm những điều mình thích. Qua công ty mới, N vẫn cứng rắn áp dụng các qui trinh, cách code mình đã làm việc ở công ty cũ. Khi nghe đồng đội phàn nàn, N vẫn cứng đầu bảo thủ không thay đổi, cho rằng cách của mình là đúng nhất. Dần đà, dù có tài nhưng N nói ko ai nghe, còn bị team xa lánh.

Continue reading Series Chuyện Code Chuyện Đời – Từ cốc nước đầy đến chuyện học công nghệ và phương cách sống

Series Nhận diện Idol: Phần 6.1 – Luận về Serverless – Vô Thai Kiếm

Như đã nói trong bài đầu của series, mình áp dụng kiến trúc serverless trong thiết kế hệ thống. Kiến trúc này giúp ứng dụng có thể đáp ứng hàng triệu người truy cập với giá thành vô cùng rẻ. Trước khi bắt tay vào code, ta hãy cùng tìm hiểu khái niệm và kiến trúc Serverless nhé.

Serverless là cái chi chi?

Serverless được dùng để chỉ 2 khái niệm khác nhau (nhưng lại khá liên quan với nhau):

  1. Một số ứng dụng chuyển phần lớn logic về front-end, không có server để làm back-end (serverless)  mà chỉ sử dụng các API của bên thứ 3 để thay thế. Ví dụ trong Nhận diện Idol, mình không viết code trên server mà dùng API của Cloudinary upload ảnh và Firebase để hiển thị realtime. Nhiều ứng dụng di động cũng dùng kiến trúc này (Backend as a Service – BaaS).
  2. Một số trường hợp khác, lập trình viên phải tự viết code để làm back-end. Với mô hình client-server thông thường, ta phải thuê server rồi deploy ứng dụng lên server. Với mô hình serverless, thay vì deploy code này lên server, ta deploy nó đưới dạng một Function (Function as a Service – FaaS). Funtion này có thể được gọi dưới dạng RestAPI hoặc chạy theo lịch đã sắp sẵn.

Continue reading Series Nhận diện Idol: Phần 6.1 – Luận về Serverless – Vô Thai Kiếm

Series Chuyện bên Khựa – Các bạn Khựa sống sót thế nào khi không có Google, Youtube và Facebook?

Hẳn là bạn nào cũng biết chính quyền Trung Quốc vô cùng “dân chủ”rất quan tâm đến giới trẻ. Để đảm bảo giới trẻ có những nhận thức đúng đắn về chính quyền, không bị đầu đọc bởi những “phần tử phản động chống phá”,  Trung Quốc cấm hoàn toàn những dịch vụ tìm kiếm và mạng xã hội quốc tế như Google (Cấm luôn cả Youtube, Gmail), Facebook, Twitter (Chả hiểu sao Medium thần thánh cũng bị cấm nốt).

Điều này gây khá nhiều phiền phức cho mình khi muốn lên Google và Facebook cập nhật tin tức (Phải dùng VPN). May mắn là QuoraStackoverflow không bị chặn, không thì móm.

Tuy nhiên, nhờ vậy mình phát hiện ra một điều: Không có Google, Youtube hay Facebook, giới trẻ Trung Quốc vẫn sống khoẻ sống tốt, vẫn có nơi ăn chơi đập phá trên mạng. Cùng tìm hiểu lý do vì sao nhé!

Continue reading Series Chuyện bên Khựa – Các bạn Khựa sống sót thế nào khi không có Google, Youtube và Facebook?

Series Nhận diện Idol: Phần 5 – Kiểm tra độ chính xác của thuật toán

Ở bài trước, chúng ta đã submit dữ liệu để huấn luyện cho API. Bài này sẽ hướng dẫn các bạn cách sử dụng API này để viết một method nhận diện hoàn chỉnh.

Sử dụng API như thế nào?

Chúng ta sẽ viết một method như sau:

  • Đầu vào (Input): URL của một ảnh bất kì
  • Đầu ra (Output): Vị trí các khuôn mặt trong ảnh (để hiển thị) và tên của chủ nhân khuôn mặt

Trong phần 4 mình đã nói về cơ chế nhận diện khuôn mặt gồm 2 quá trình: Face Detection và Face Recognition. Hai quá trình này tương ứng với 2 API của Microsoft Cognitive API:

  • Detect: Phát hiện khuôn mặt trong ảnh và vị trí các khuôn mặt này.
  • Identity: Đầu vào là id của khuôn mặtid của Person Group. Đầu ra là id của Person giống nhất.

Bắt đầu viết code thôi nào, nếu các bạn đã download project của mình ở bài trước thì sẽ thấy code đã có sẵn trong file test.js. Tuy vậy, mình sẽ giải thích một số hàm để các bạn dễ hiểu.

Continue reading Series Nhận diện Idol: Phần 5 – Kiểm tra độ chính xác của thuật toán

Microservice có gì hot? Chuyện về cái bồn cầu và microservice

Thời gian gần đây, đi liền với sự nổi dậy của cloud computing, microservice cũng đang dần trở thành một từ khóa hot. Bài viết này sẽ giới thiệu tổng quan về microservice một cách đơn giản, dễ hiểu cho bà con gần xa.

Micro là rất nhỏ, service là dịch vụ, vậy microservice nghĩa là… dịch vụ vô cùng nhỏ. Nói đơn giản, microservice là một kiếu kiến trúc phần mềm. Các module trong phần mềm này được chia thành các service rất nhỏ (microservice).

Có vẻ phức tạp ha? Ủa mà vậy thì liên quan gì đến cái bồn cầu nhỉ?? Đọc hết bài rồi sẽ hiểu ngay thôi!

Continue reading Microservice có gì hot? Chuyện về cái bồn cầu và microservice