Bài viết được sự cho phép của tác giả Nguyễn Hoàng Phú Thịnh Đã bao giờ anh em thắc mắc: Product trong ngành công nghệ là gì? Nó khác gì với các “software” thông thường? Và ranh giới giữa một thứ được xem là “product” và một thứ “chỉ-được-xem-là-software” là gì 🙂 ? Chả hiểu bằng một ma lực nào đó mà thời gian qua, các câu hỏi này cứ liên tục trôi nổi trong đầu mình. Nay mình note ra vài thứ (có thể xem là) trải nghiệm cá nhân về 2 khái niệm: product và software này. Hi vọng có dịp cùng anh em chém gió, đàm đạo sôi nổi về topic này 😎 Product vs Software Nói theo ngôn ngữ marketing thì “Product is anything that can be offered to the market that satisfied a want or need“. Anything ở đây có thể là vô hình hoặc hữu hình. Hữu hình như cái chén, cái muỗng, cái dĩa. Đến những thứ vô hình như: tour du lịch, excel, bữa ăn tối tại nhà hàng, hay dịch vụ sử [...]
Read more →Trong bối cảnh thế giới ngày càng chú trọng đến sự bền vững và giảm thiểu tác động môi trường, các yếu tố chất lượng của kiến trúc phần mềm cũng đang dần thay đổi để thích ứng với yêu cầu này. Bài viết này sẽ trình bày chi tiết về tính bền vững như một yếu tố chất lượng mới trong kiến trúc phần mềm và những bước cần thiết để đạt được điều này. Các thuộc tính chất lượng Các yêu cầu không chức năng (non-functional requirements) là các tiêu chí quan trọng để đánh giá mức độ hoàn thiện của một hệ thống phần mềm. Chúng bao gồm hơn 80 thuộc tính đáng chú ý như tính sẵn sàng, độ tin cậy, khả năng mở rộng, bảo mật và bảo trì. Dưới đây là một số bộ thuộc tính chất lượng chính: Bảo mật (Security): Bảo mật thông tin, tính toàn [...]
Read more →Bài viết được sự cho phép bởi tác giả Vũ Thành Nam Đây là bài viết tiếp tục chặng đường trở thành SA của mình mà mình có đề cập đến trong bài viết “Software Architect – Con đường chẳng hề dễ dàng“. Đúng là một con đường chẳng hề dễ dàng. Bài viết này mình đã tổng hợp được những kỹ năng cụ thể cần phải đạt được khi dấn thân vào con đường đầy chông gai này, có thể sau này mình có vững tâm rẽ theo con đường này hay không thì bài viết này mình cũng xin chia sẻ những kỹ năng này tại đây để các bạn cũng có thể nắm được như mình tại thời điểm hiện tại. Cùng đi tiếp nghiệp Architect sẽ gồm 3 level cơ bản sau: Application Level: Đây là level thấp nhất, nó tập trung vào một ứng dụng riêng lẻ, thiết kế kiến trúc chi tiết nhưng ở mức thấp, sẽ phải làm việc chủ yếu với [...]
Read more →Bài viết được sự cho phép bởi tác giả Vũ Thành Nam Bài viết sau đây chỉ ra những kỹ năng mà mình cần hướng tới để có thể tiếp tục trên con đường trở thành một Software Architect (SA) của bản thân mình, có thể nó đúng, có thể nó sai, có thể rằng một ngày nào đó mình dừng chân ở một vị trí nào đó khác với vị trí này, nhưng mình vẫn muốn viết lại để có thể lưu lại và chia sẻ những giai đoạn mà mình lựa chọn nó. Sau này đọc lại chắc sẽ vui lắm đây! Đầu tiên phải nói là với vị trí này thì mình nhận ra được rằng phong cách việc mỗi người mỗi vẻ, chẳng ai giống ai trong quá trình quan sát các anh chị đi trước, và cũng đã từng làm việc cùng với rất nhiều các anh SA. Giống như việc một kỹ sư thiết kế, không nói đến việc những tiêu [...]
Read more →Lập trình nhúng hiện nay đang tạo một xu hướng nghề nghiệp tiềm năng trên thị trường lao động nói chung và nghề lập trình nói riêng. Mức lương dành cho Embedded Software Engineer khoảng bao nhiêu là một câu hỏi mà nhiều bạn mới vào nghề đặt ra; bài viết hôm nay chúng ta cùng nhau tìm hiểu về ngành này và trả lời cho câu hỏi trên nhé. Công việc của một Embedded Software Engineer Embedded Software Engineer hay kỹ sư phần mềm nhúng là những người sẽ làm việc với các hệ thống nhúng Embedded System – một hệ thống có thể tự vận hành và thiết kế tích hợp vào các hệ thống lớn hơn tùy theo mục đích sử dụng. Hệ thống nhúng bao gồm cả phần mềm (software) và phần cứng (hardware), vì vậy công việc của kỹ sư nhúng liên quan đến cả việc xây dựng phần mềm nhúng và đồng thời [...]
Read more →Software Engineer là gì? Software Engineer làm gì? Cơ hội nào để trở thành Sofware Engineer trong năm 2023. Những câu hỏi được liệt kê trên đây đã được trả lời từ khoảng 4,5 năm về trước. Nhưng mỗi năm một khác, yêu cầu về kinh nghiệm và kĩ năng của người kỹ sư phần mềm đang dần thay đổi. Đặc biệt với sự xuất hiện và phát triển mạnh mẽ của AI, Software Engineer vẫn được dự báo là nghề hót hòn họt trong 10 năm tới. Cùng tìm hiểu chi tiết hơn về nghề Software Engineer nhé! [caption id="attachment_56473" align="aligncenter" width="640"] Sắp tới còn vào nhiều meet lắm anh em đừng lo[/caption] 1. Software Engineer là gì? Theo như định nghĩa khá là phổ biến và thông dụng cho Software Engineer thì Software engineer is the branch of computer science that deals with the design, development, testing, and maintenance of software applications. Software engineers apply engineering principles and knowledge of programming languages to build software solutions for end users. Software Engineer (kỹ sư phần mềm) là một nhánh của khoa học máy tính, làm [...]
Read more →Bài viết đến từ anh Nguyễn Ngọc Hải - Quản lý cao cấp Kiến trúc Giải pháp Enterprise Architect team @Techcombank Tổng quan Trong quy trình phát triển phần mềm, các nguyên tắc về thiết kế component là không thể thiếu để có một hệ thống được tổ chức quy củ, dễ mở rộng và dễ quản lý. Components trong bài dùng để chỉ đến các thành phần nhỏ nhất, thuộc về một hệ thống, có thể triển khai được một cách tương đối độc lập với các component khác, có thể là micro-service, hoặc library, package, v.v.. Các nguyên tắc thiết kế dưới đây giúp hướng dẫn developer và kiến trúc sư đặt class nào vào component nào (component cohesion), và những component đó liên quan gì đến nhau (component coupling). Việc có các nguyên tắc thiết kế đặc biệt quan trở nên quan trọng khi các hệ thống phần mềm phát triển ngày một lớn và phức tạp. Lúc này chỉ riêng việc quyết định đặ [...]
Read more →Software Architect, chức vụ chỉ nghe thôi đã thấy to, vậy phỏng vấn Software Architect có gì đặc biệt? Những câu hỏi và nội dung kiến thức nào thường được đề cập khi phỏng vấn Software Architect? Trách nhiệm của Solution Architect là làm sao đặt business logic vào không bể nha anh em. Là một người chịu trách nhiệm lớn cho sự thành công hay thất bại của dự án phần mềm. SA là công việc stress. Nhưng trách nhiệm lớn đồng nghĩa với lương cao. Tất nhiên lượng kiến thức nằm trong đầu cũng thuộc dạng khủng khiếp. Thử lướt xem mấy câu hỏi phỏng vấn SA thì có gì nào? Rồi, bắt đầu thôi anh em! Dạo qua vài ba câu định nghĩa chưa có gì khó. Phần sau sẽ là những câu hỏi khó hơn. 1. Software Architect là gì? Câu hỏi đầu tiên phỏng vấn Software Architect chưa đi ngay vào các khái niệm kiến thức mà đi và [...]
Read more →Trong một công ty hay một dự án phần mềm có rất nhiều vị trí chức danh tương ứng với vai trò khác nhau. Software Manager hay Quản lý phần mềm là một chức danh mà không phải ở công ty nào cũng có, mặc dù công việc và trách nhiệm của họ rất quan trọng và có nhiều điểm giống với một vài vị trí khác. Trong bài viết hôm nay chúng ta cùng tìm hiểu về công việc của một Software Manager cũng như những kỹ năng cần thiết để trở thành quản lý phần mềm nhé. Software Manager là gì? Người quản lý phần mềm là vị trí trong công ty, tổ chức có nhiệm vụ giám sát sự phát triển, việc cài đặt và bảo trì một phần mềm mới và những phiên bản cập nhật mở rộng (upgraded) của nó. Với tư cách là một Software Manager, bạn sẽ phải phối hợp với các thành viê [...]
Read more →Lại là chuỗi bài câu hỏi phỏng vấn và lần này là bộ câu hỏi phỏng vấn Software Developer. Ở chuỗi bài viết này, xin phép anh em được tách ra thành 4 phần. Nguyên nhân là vì Software Developer là vị trí đòi hỏi cực nhiều kiến thức, không chỉ đơn giản 1 phần mà đã nêu ra được hết toàn bộ kiến thức cần có. Ngoài kiến thức về mặt kỹ thuật, vị trí Software Developer còn đòi hỏi một lượng kiến thức khổng lồ về quy trình phát triển phần mềm, kinh nghiệm làm việc thực tế. Vân vân và mây mây. Ở bài viết phần 1 này xin mạn phép viết trước cho anh em về mặt kỹ thuật. Tuy số lượng câu hỏi không nhiều, nhưng với các câu hỏi được nêu, mong rằng anh em sẽ hệ thống lại được kiến thức. Từ câu hỏi được nêu xem lại các phần kiến thức liê [...]
Read more →Trong thời đại công nghệ “bùng nổ” như hiện nay, ngành công nghiệp phần mềm đang trở thành một trong những ngành có tốc độ phát triển nhanh nhất. Trong lĩnh vực này, Software Developer đóng vai trò rất quan trọng trong việc tạo ra các sản phẩm phần mềm với những chức năng mới phục vụ nhu cầu người dùng. Vậy Software Developer là gì? Những cơ hội và thách thức của công việc này như thế nào? Hãy cùng TopDev đi tìm câu trả lời dưới bài viết này nhé! Software Developer là gì? (Kỹ sư phần mềm) Software Developer là hay còn gọi là kỹ sư phần mềm, họ là những người chịu trách nhiệm thiết kế, xây dựng và duy trì các ứng dụng phần mềm. Những ứng dụng họ tạo ra có thể là ứng dụng di động, phần mềm máy tính, hoặc bất kỳ sản phẩm phần mềm nào khác để giải quyết [...]
Read more →Bài viết được sự cho phép của tác giả Edward Thien Hoang Và điều đầu tiên đề cập đến trong bài viết này tôi gọi là “lược sử (timeline) về kiến trúc phần mềm” nơi tác giả liệt kê các mốc chính về các mô hình lập trình, các kiểu thiết kế nổi bật từ thuở sơ khai đến hiện tại, có thể kể đến như: [irp posts="6630" name="10 Công cụ Go-To Tech dành riêng cho các Software Developer"] [irp posts="19795" name="Biến Git và GitHub trở thành công cụ đắc lực cho Software Engineer"] 1950S Non-structured Programming ~1951 – Assembly 1960S Structured Programming Layering: 1 tier with the UI, Business Logic and Data Storage ~1958 – Algol 1970S Procedural / Functional Programming ~1970 – Pascal ~1972 – C 1979 – Model-View-Controller 1980S Object Oriented Programming (first thoughts were in the late 1960s, though) Layering: 2 tier, the 1st tier with the UI, the 2nd tier with Business Logic and Data Storage ~1980 – C++ CORBA – Common Object Request Broker Architecture (though the first stable version was only out in 1991, the first usages were during the 1980s) ~1986 – Erlang ~1987 – Perl 1987 – PAC aka Hierarchical Model-View-Controller 1988 – LSP (~SOLID) 1990S Layering: 3 tier, the 1st tier with the UI, the 2nd tier Business Logic (and the UI presentation logic in case of a browser as client), the 3rd [...]
Read more →Bài viết được sự cho phép của tác giả Kiên Nguyễn Chúc mừng nha, đã tìm kiếm tới Layers Pattern tức là có quan tâm tới Architecture của phần mềm. Lúc này trình đã lên một tầm cao mới. Hầu hết những ông đã mang danh kĩ sử (Engineer) đều biết về kiến trúc của chuyên nghành mà mình đang theo. Nghề CNTT cũng vậy, người kĩ sư phần mềm (Software Engineer) cần phải có cái nhìn sâu sắc, hiểu biết am tường về kiến trúc phần mềm. Yên tâm, series architecture ở Kieblog có đủ cả, chỉ mất công đọc thôi [irp posts="13003" name="Mô hình 3 lớp (three-layer) có gì hay?"] 1. Cực kì phổ biến Layers Pattern là một trong những mẫu thiết kế phổ biến nhất trong giới tinh hoa phần mềm (Architecture Pattern). Còn được biết tới với cái tên n-tier Architecture Pattern, tier ở đây cũng được hiểu là một lớp. Gọi là n-tier vì có thể có nhiều lớp. Hầu như các program hay application [...]
Read more →Bài viết được sự cho phép của tác giả Tino Phạm Một developer trẻ nói với Chú của mình về việc cậu ta muốn trở thành một Software Architecture trong tương lai. Sau đây là cuộc nói chuyện giữa hai chú cháu. Con muốn sau này trở thành một Software Architecture (kiến trúc sư phần mềm). Con có định hướng cho mục tiêu nghề nghiệp vậy là tốt lắm đó. [irp posts="6630" name="10 Công cụ Go-To Tech dành riêng cho các Software Developer"] [irp posts="19795" name="Biến Git và GitHub trở thành công cụ đắc lực cho Software Engineer"] Con muốn được dẫn đầu một nhóm và đưa ra các quyết định quan trọng như chọn loại Database nào, Framework nào, Web API thế nào và dùng những công nghệ nào cho dự án. Khá đó chứ. Nhưng nghe có vẻ như con không phải muốn trở thành Software Architecture nữa. Tất nhiên là con muốn chứ. Con muốn trở thành một người quyết định tất cả những thứ quan trọng. Chú biết [...]
Read more →Tác giả: Simon Holdorf Giới thiệu Bắt đầu một dự án mới, một kế hoạch mới với các Software Developers luôn là việc thú vị và hấp dẫn. Tuy nhiên khi overload cũng là lúc chúng ta cảm thấy mệt mỏi và không thể hoàn thành công việc một cách tốt nhất. Chính vì thế, biết thêm một số mẹo hay ho khi làm việc giúp công việc mỗi ngày của các Software Developers trơn tru hơn. [caption id="attachment_35768" align="aligncenter" width="626"] Nắm bắt những cách làm việc hợp lí để nâng cao hiệu quả công việc[/caption] Những mẹo hay ho cho các Software Developers Tìm cho mình một cố vấn phù hợp cho bản thân Một trong những mẹo cho Software Developer hay ho nhất. Đây được xem là điều tốt nhất bạn có thể làm để trở thành một dev giỏi nhất là tìm cho mình một người cố vấn xuất sắc và phù hợp với bả [...]
Read more →