Tạm biệt ASWIG – Đôi dòng tâm sự của chàng junior developer – Phần 2

Đầu tháng 6/2015 – Một tháng đầy biến động

Tiếp theo phần 1. Thiếu người, mình bị “ép” phải dựng toàn bộ wireframe, giao diện cho dự án Claimbook. Đúng là làm super junior nó khổ thế. Một lần nữa, anh H. lại tỏa sáng với khả năng ngoại giao của mình. Anh đã “lôi kéo” được một bác Technical Lead và 2 developer mới vào team. Anh còn dụ dỗ được team designer tham gia vào quá trình thiết kế cho dự án. Leader Team Designer là anh Sơn Đoàn – người yêu của Adrian Anh Tuấn. Trông anh Sơn đẹp trai và manly hơn ông Team Leader của mình cả chục lần.

Suốt 2 tháng trời, cả nhóm dồn tâm sức làm prototype cho dự án Claimbook. Team cũng tổn thất khá nhiều. Anh technical lead do thái độ làm việc không ok, không phù hợp với văn hóa công ty, vào team mình được 1 tháng đã phải chuyển qua team khác, rồi nghỉ việc ngay sau đó vài tuần. Design của dự án cũng bị thay đổi xoành xoạch theo yêu cầu của khách hàng, team mình cũng ngại không dám liên hệ lại với team designer vì sợ bị chửi do tự ý sửa lung tung design của họ.

Thay mặt anh H., xin gửi lời cảm ơn đến anh Sơn Đoàn đẹp trai, cùng toàn thể các bạn trong team designer đã góp phần vào thành công của dự án. Thấy team em được khen nhiều mà không nhắc đến các đóng góp của team anh nên cũng hơi cắn rứt.

Anh Sơn Đoàn - Giám đốc sáng tạo của ASWIG. Đẹp trai nam tính hơn ông team leader của mình nhiều T_T
Anh Sơn Đoàn – Giám đốc sáng tạo của ASWIG. Đẹp trai nam tính hơn ông team leader của mình nhiều T_T

Continue reading Tạm biệt ASWIG – Đôi dòng tâm sự của chàng junior developer – Phần 2

Tạm biệt ASWIG – Đôi dòng tâm sự của chàng junior developer – Phần 1

Ngày 4 tháng 9 năm 2015, mình chính thức nghỉ việc tại Aswig Solutions để bước trên một con đường mới – du học 2 năm ở UK tại Đại Học Lancaster. Bài viết này là đôi dòng tâm sự kể về một năm làm việc của mình ở đây: Buồn ít, Vui nhiều, học được vô số điều bổ ích về technical và cách hành xử trong công việc.

Nghỉ việc rồi, không còn được vào phòng họp ngắm cảnh thế này nữa ~.~

Continue reading Tạm biệt ASWIG – Đôi dòng tâm sự của chàng junior developer – Phần 1

Tổng quan về lập trình ứng dụng di động – Phần 2

bài viết trước, mình đã giới thiệu tổng quát về các hệ điều hành di động nổi tiếng hiện nay. Trong bài viết này, mình sẽ đưa ra một số hướng phát triển ứng dụng, cùng với những ưu nhược điểm của nó.

Hiện nay, có 3 hướng chính để phát triển một ứng dụng di động, đó là: Web App, Native App và Hybrid App. Mỗi hướng sẽ cần những kĩ năng riêng, có những ưu nhược điểm riêng, sẽ được nói rõ hơn bên dưới.

appsillustrated_nativewebhybrid Continue reading Tổng quan về lập trình ứng dụng di động – Phần 2

Tổng quan về lập trình ứng dụng di động – Phần 1

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

Continue reading Tổng quan về lập trình ứng dụng di động – Phần 1

Giải thích đơn giản về CI – Continuous Integration (Tích hợp liên tục)

Với các bạn sinh viên, khái niệm Continuous Integration (Tích hợp liên tục) là một cái gì đó nghe rất cao siêu và hoành tráng. Mình sẽ nêu khái niệm, sau đó đưa ra một câu chuyện đơn giản để giải thích cho khái niệm này.

Tích hợp liên tục (CI) là phương pháp phát triển phần mềm đòi hỏi các thành viên trong nhóm tích hợp công việc thường xuyên. Mỗi ngày, các thành viên đều phải theo dõi và phát triển công việc của họ ít nhất một lần. Việc này sẽ được một nhóm khác kiểm tra tự động, nhóm này sẽ tiến hành kiểm thử truy hồi để phát hiện lỗi nhanh nhất có thể. Cả nhóm thấy rằng phương pháp tiếp cận này giúp giảm bớt vấn đề về tích hợp hơn và cho phép phát triển phần mềm gắn kết nhanh hơn. Trích từ: http://www.ibm.com/developerworks/vn/library/rational/201301/continuous-integration-agile-development/

Nếu không hiểu ảnh nói gì, hãy đọc câu chuyện nho nhỏ phía dưới
Nếu không hiểu ảnh nói gì, hãy đọc câu chuyện nho nhỏ phía dưới

Continue reading Giải thích đơn giản về CI – Continuous Integration (Tích hợp liên tục)

[Tutorial] Viết Unit Test trong C# với NUnit

Giới thiệu tổng quan về Unit Test

trường đại học chắc các bạn đã được học khái niệm về Unit Test trong môn “Kiểm thử chất lượng phần mềm”. Nói một cách dễ hiểu, unit test tức là code dùng để test code ta đã viết.

Một số đặc điểm của unit test:

  1. Code unit test phải ngắn gọn, dễ hiểu, dễ đọc.
  2. Mỗi unit test là 1 đơn vi riêng biệt, độc lập, không phụ thuộc vào unit khác.
  3. Mỗi unit test là 1 method trong test class, tên method cũng là tên UnitTest. Do đó ta nên đặt tên hàm rõ ràng, nói rõ unit test này test cái gì (Test_A_Do_B), tên method có thể rất dàiii cũng không sao.
  4. Unit Test phải nhanh, vì nó sẽ được chạy để kiểm định lỗi mỗi lần build. Do đó trong unit test nên hạn chế các task tốn thời gian như gọi I/O, database, network,…
  5.  Unit Test nên test từng đối tượng riêng biệt. Vd: Unit Test cho Business Class thì chỉnh test chính BusinessClass đó, không nên dụng tới các class móc nối với nó (DataAccess Class chẳng hạn).

Continue reading [Tutorial] Viết Unit Test trong C# với NUnit

Top 6 “trường dạy code” cho các developer

Là một developer, việc học 1 ngôn ngữ, công nghệ mới là “chuyện thường ở huyện”.

Mình đã từng chia sẻ một số hướng tiếp cận ngôn ngữ, công nghệ ở bài trước. Bài viết này sẽ giới thiệu 1 số “trường code” online. Các trường này cung cấp bài giảng online dưới dạng video (có hoặc không có phụ đề), cho phép ta code trực tiếp trên trình duyệt.

Bảng xếp hạng này dựa theo độ nổi tiếng của web trên google, cũng như trải nghiệm của mình khi sử dụng.

Các “trường code” này đều là tiếng Anh nhé, vì mình không có thói quen học hay tìm tài liệu bằng tiếng Việt. Không phải mình kì thị tiếng Việt hay đâu, vì trước giờ tiếng Việt không bao giờ cung cấp đủ tài liệu cho mình học cả. Không tin thì các bạn thử tìm tài liệu tiếng Việt đầy đủ về Ionic Framework hay Caliburn.Micro xem :'(.

Continue reading Top 6 “trường dạy code” cho các developer

Những kĩ năng cần có của một web developer

Hiện nay, một lập trình viên có thể lựa chọn cho mình nhiều hướng phát triển: Lập trình nhúng (Embeded System), lập trình web, lập trình ứng dụng di động, … Vì mình đi theo hướng lập trình web, mình sẽ chia sẻ một số kĩ năng mà các bạn cần chuẩn bị nếu muốn theo con đường web developer.

lap-trinh-web-full-stack

Continue reading Những kĩ năng cần có của một web developer

Sự khác biệt giữa Web Site và Web Application

Hiện nay một số bạn học ngành IT vẫn còn lẫn lộn giữa khái niệm website và web app, sẵn tiện có một bạn hỏi nên mình viết bài này nhân tiện giải thích luôn.

Đây là một câu hỏi “tưởng dễ mà không phải dễ”, bởi vì ranh giới giữa website và webapp khá mong manh. Mình phải tổng hợp khá nhiều câu trả lời từ stackoverflow và programmers.stackexchange mới đưa ra được một câu trả lời “gần đúng” nhất.

1. Khái niệm website

Ngày xưa ngày xưa, khi Internet còn thô sơ, web được viết bằng html đơn lẻ. Mỗi trang web đơn lẻ được viết bằng html gọi là Web Page. Tập hợp nhiều trang web đơn lẻ, thành một trang web lớn, có chung tên miền, được gọi là Website. VD đơn giản: Mỗi bài viết trên blog của mình chính là một web page, tập hợp toàn bộ các bài viết lại chính là một website, tên là toidicodedao.com.

Continue reading Sự khác biệt giữa Web Site và Web Application

Series C# hay ho: Giới thiệu Humanizer – Một thư viện khá thú vị của C#

Kì này, series C# hay ho sẽ giới thiệu với bạn một thư viện khá “hay ho”, đúng như tên gọi của series. Thư viện này có tên là Humanizer. Nó chỉ có một chức năng duy nhất: Chuyển string, ngày tháng, … thành chữ mà con người đọc được (Đúng như tên gọi Humanizer tức là “người hóa”). Nghe đơn giản vậy thôi, nhưng bạn sẽ ngạc nhiên trước những chức năng của nó.

Bài viết chỉ mang tính chất showcase, giới thiệu nên sẽ không có code nhiều. Nếu tò mò, các bạn có thể tạo 1 project mới, dùng nuger để cài đặt Humanizer và code thử nhé. Một số tính năng nổi bật của Humanizer

Continue reading Series C# hay ho: Giới thiệu Humanizer – Một thư viện khá thú vị của C#

Lập trình viên giỏi không phải chỉ biết code