string(8) "category"

Góc nhìn về nghề Tester

Tester đóng vai trò quan trọng trong việc đảm bảo chất lượng phần mềm. Đồng thời, đáp ứng yêu  cầu của khách hàng hoặc mang lại trải nghiệm tốt nhất cho người dùng. Một khi mà đã qua khâu kiểm thử mà phần mềm vẫn lỗi thì hãy nhìn về phía Tester. Nói như vậy để biết vai trò quan trọng của một Tester trong một dự án phát triển phần mềm và nghề Tester luôn được coi trọng. Để có góc nhìn tổng quan về nghề Tester, hãy cùng lắng nghe những chia sẻ của người trong ngành về công việc này nhé! Lý do chọn nghề Tester Mình tốt nghiệp ngành CNTT, khởi đầu bằng công việc PQA.  Sau đó bén duyên sang Tester do yêu thích làm việc teamwork, phân tích nghiệp vụ dự án và mỗi lần tìm được bug là cảm thấy thích thú. Đối với những người chưa có base IT nhưng có tiếng Nhật tốt cũng đang chuyển hướng sang nghề này. Các bạn có thể tham khảo khóa học đào tạo Tester từ con số 0 tại AMELA hoàn toàn miễn phí tại đây Công việc của một Tester Tester có thể lựa chọn làm việc trong môi trường outsource hoặc product. Với AMELA là công ty outsource thị trường Nhật Bản, tester sẽ có các đầu việc gần giống như các công ty outsource khác. Phân tích nghiệp vụ, tìm hiểu requirement: Requirment là gì? Requirement là tất cả các yêu cầu về phần mềm do người dùng nêu ra. Nó bao gồm các chức năng của phần mềm, hiệu năng của phần mềm,  giao diện của phần mềm và một số các yêu cầu khác. Thông thường các yêu cầu phần mềm được phân loại dựa trên 4 thành phần của phần mềm như sau: · Các yêu cầu về phần mềm · Các yêu cầu về phần cứng · Các yêu cầu về dữ liệu · Các yêu cầu về con người Mục tiêu quan trọng nhất đối với chất lượng phần mềm là phần mềm phải thỏa mãn được các yêu cầu và mong muốn của người dùng. Phân tích nghiệp vụ, tìm hiểu requirement Người dùng thường chỉ đưa ra những ý tưởng, nhiều khi rất mơ hồ về phần mềm mà họ mong muốn xây dựng. Việc của đội dự án đó là phải giúp họ đưa những ý tưởng mơ hồ đó thành hiện thực. Xây dựng được một phần mềm có đầy đủ các tính năng cần thiết thỏa mãn yêu cầu của người dùng. Hơn thế nữa, ý tưởng của người dùng thường xuyên thay đổi và việc của nhà phát triển là phải nắm bắt và đáp ứng được các yêu cầu thay đổi đó một cách hợp lý. · Đọc và cố gắng hiểu mục đích của ứng dụng đang mong muốn là gì? · Vừa đọc và hình dung, tưởng tượng xem phần mềm /màn hình đó sẽ chạy như…

Talk with Business Analyst: Kinh nghiệm quý giá

Business Analyst đang là một trong những ngành nghề hot hiện nay và được nhiều bạn trẻ hướng đến. Bạn bắt đầu với công việc này là một tờ giấy trắng và hoang mang không biết bắt đầu như thế nào. Lúc này việc lắng nghe những kinh nghiệm của các tiền bối sẽ giúp các bạn có cái nhìn rõ nét hơn về nghề và tìm được hướng đi để bắt đầu công việc. Cùng lắng nghe chia sẻ của chàng BA nhiều hoài bão, cầu tiến nhà A với những kinh nghiệm làm Business Analyst của mình nhé! Cơ duyên đến với business analyst Mình là du học sinh Nhật, đại học Kinh tế Luật Osaka, chuyên ngành kinh tế quốc tế. Do dịch covid nên mình phải về Việt Nam sớm sau 3 năm rưỡi học tập tại Nhật và bắt đầu con đường lập nghiệp. Lúc đầu thì mình cũng chưa biết sẽ làm công việc như thế nào, ngành nghề nào. Mình đã thử đi thực tập ở một công ty vận tải biển của Nhật Bản, có văn phòng ở VN, sau đấy là đi làm ở 1 nhà máy sản xuất nhựa cũng của Nhật rồi chờ cơ hội quay lại Nhật. Mặc dù đãi ngộ ở 2 nơi cũng khá tốt, nhưng mình không thấy hài lòng về công việc của mình lắm. Mình đã xin nghỉ sau 1 tháng rưỡi làm việc ở nhà máy. Trong thời gian mình đi làm thực tập ở công ty vận tải, mình có được anh chị tư vấn cho nghề Business Analyst(BA) là ngành nghề hot hiện nay, mà cũng phù hợp vs chuyên ngành kinh tế mình theo học. Đó là lần đầu tiên mình nghe đến nghề Business Analyst. Lang thang tìm việc trên facebook, linkedin,  thì tình cờ mình đọc được bài tuyển dụng intern BA ở Amela và mình đã thử ứng tuyển. May mắn mình đã pass phỏng vấn và bắt đầu công việc tại đây. Khó khăn ban đầu và cách giải quyết?     Khó khăn lúc đầu vào nghề: Mình gặp rất nhiều khó khăn, vì ngoài chút ít kiến thức về ngoại ngữ, mình là dân ngoại đạo hoàn toàn. Không biết về tech: Mình mù tịt về khoản này. Máy tính mình chỉ để xem youtube và đọc truyện, chơi game. Khi bắt đầu thực tập, mình đã phải tìm hiểu rất nhiều các trang web tương tự những dự án mình làm, đọc thêm tài liệu về IT, học thêm từ vựng tiếng anh để có thể hiểu các bạn Developer, Tester đang nói về điều gì. Học về figma, biết những thao tác cơ bản nhất. Mình cũng đang học thêm về C++, SQL,... Khó khăn khi bước vào một công ty trẻ nhưng đầy áp lực, công việc nhiều: Giai đoạn đầu mình khá vất vả với điều này, nhận nhiều dự án, chưa biết được hết công việc mình phải…

Con đường sự nghiệp của Business Analyst

Con đường sự nghiệp của Business Analyst ( Business Analyst Career Path) là một hành trình với rất nhiều ngã rẽ, bạn sẽ làm chủ lựa chọn của mình dựa trên kiến thức, kỹ năng và kinh nghiệm của bạn. Tham khảo bài viết dưới đây có thể giải quyết giúp bạn bài toán lớn về định hướng công việc của một Business Analyst.   Hành trình bắt đầu từ Fresher BA Giai đoạn này thường dành cho các bạn bắt đầu tiếp cận với các đầu việc của BA. Bạn sẽ được training, hỗ trợ từ các bạn BA có level cao hơn để hiểu cách làm dự án, cách làm document, được giới thiệu hệ thống, các tool sử dụng,... Ở level này bạn cần tích lũy thêm kiến thức nền tảng về BA, tranh thủ học hỏi, tận dụng các cơ hội trải nghiệm thực tế nhiều nhất có thể. Đối với các tập đoàn, công ty lớn với quy trình rõ ràng, nhiều lợi ích có thể là lựa chọn tốt cho người bắt đầu. Với các công ty startup, ngược lại bạn sẽ được làm nhiều  hơn, khả năng tự học cao hơn và có thể trưởng thành nhanh hơn. Lời khuyên cho bạn: nên tập trung vào việc xác định mục tiêu và định hướng công việc ngay giai đoạn này, tránh lan man và tốn thời gian vô ích. Tìm kiếm cơ hội cho vị trí BA tại AMELA. Giai đoạn thứ 2 Junior Sau một thời gian làm việc, tích lũy kinh nghiệm, bạn có thể phân tích và viết tài liệu ở mức thành thạo hơn, có thể làm việc độc lập ở một số đầu việc trong dự án. Bạn vẫn được hỗ trợ từ các Senior BA ở các dự án lớn, phức tạp. Thời điểm này, bạn nên học hỏi thêm những kỹ năng mềm cần thiết và các kỹ năng phân tích để đưa ra các giải pháp trong dự án. Đối với các bạn chuyển việc từ các vị trí khác sang làm BA thường bắt đầu từ Junior phát triển lên. Những xuất thân nào sẽ phù hợp cho vị trí BA? Tháo lớp Junior, hướng tới Senior BA   BA chính hiệu là gì? Khi bạn đã đạt level BA thì sự chủ động và quản lý task là điều cực kỳ quan trọng. Hiểu đơn giản, bạn phải hoàn thành task đúng deadline và chất lượng, không có người cầm tay chỉ việc cho bạn nữa. Giai đoạn này, hãy thể hiện bản thân và chứng minh năng lực của bạn sau khoảng thời gian đủ dài để tích lũy kinh nghiệm và kỹ năng. Chứng minh năng lực qua các task ‘’xịn’’, đòi hỏi chuyên môn cao và thể hiện bản thân khi biết quản lý task hiệu quả, biết say no đúng lúc, tránh ôm đồm quá nhiều các task support.   Đạt tới level Senior BA Ở senior BA, phạm…

Hành trình từ Tester đến Business Analyst

Hiện nay, có rất nhiều Tester đang chuyển hướng sang làm Business analyst nhờ lợi thế chuyên môn về công nghệ thông tin, hệ thống cùng những sự tương đồng trong nghiệp vụ. Như vậy, hành trình chuyển hướng từ Tester sang Business Analyst liệu có phải là bài toán dễ dàng? Cùng AMELA tìm hiểu thật kỹ về vấn đề này nhé! Trước khi đọc tiếp, hãy thử tìm hiểu qua về nghề Business Analyst (BA) tại đây Từ bỏ nghề Tester để làm Business Analyst (BA). Liệu có đáng? Nền tảng của Tester tiệm cận với Business Analyst Kiến thức hệ thống chuyên sâu: Tester chú ý đến chi tiết và nắm rõ về hệ thống phần mềm được xây dựng, thậm chí còn tốt hơn các BA và chắc chắn là nhiều hơn Quản lý dự án. Tester thông qua công việc đảm bảo chất lượng của họ để biết lý do một kịch bản thất bại. Điều này làm cho một Tester một BA rất tốt. Tester giỏi phân tích: Tester được yêu cầu đọc, phân tích và xem xét các tài liệu đặc tả yêu cầu. Kỹ năng phân tích của Tester có thể giúp Business Analyst chỉ ra sự không rõ ràng trong các đặc tả yêu cầu nếu có. Tester có kỹ năng giao tiếp tốt Tester không chỉ ngồi trên máy tính xách tay chạy các kịch bản kiểm tra nhiều lần mà còn có khả năng giao tiếp cực tốt. Tester làm việc và trao đổi với các vị trí khác như Developer, BA, PM,... về những vấn đề trong quy trình mà họ nhìn thấy. Trao đổi về các vấn đề môi trường thử nghiệm và quy trình thủ công mà người dùng doanh nghiệp có. Tester cũng đảm bảo rằng các kết quả kiểm tra được ghi lại trong các công cụ kiểm tra để bất kỳ ai đọc nó cũng hiểu được những gì sai với hệ thống. Những cơ hội phát triển của nghề Business Analyst Business Analyst giỏi là sự tổng hòa của nhiều kỹ năng có tính chuyên môn cao để áp dụng thành công cho bất kỳ lĩnh vực nào. BA được tiếp xúc được nhiều khách hàng, thuộc nhiều lĩnh vực khác nhau. Từ việc trao đổi, giao tiếp với họ sẽ có thêm nhiều kỹ năng, hiểu rõ hơn về nghiệp vụ. Điều này cho phép các BA thay đổi ngành, công ty hoặc lĩnh vực khác một cách dễ dàng. Nghề BA thuộc mức thu nhập cao đang dần chiếm lợi thế trong thị trường tuyển dụng ngày nay. BA sẽ luôn nhận được mức lương lý tưởng khi là những chiếc “cầu nối” thông tin vững chắc mà họ xây dựng được từ khách hàng tới bộ phận phát triển dự án. Họ hiểu và tạo dựng các mối quan hệ kinh doanh bền chặt cho doanh nghiệp. Top kỹ năng đặc trưng của một Business Analyst khác với Tester…

Nhận diện về nghề Business Analyst (BA)

Business Analyst là gì?   Business Analyst (BA) chịu trách nhiệm lấy yêu cầu từ khách hàng, sau đó chuyển thông tin đến đội dự án( Developer, QC, PM). Đồng thời họ cũng trao đổi, đề xuất các giải pháp đối với các yêu cầu nhằm tối ưu các hoạt động kinh doanh của doanh nghiệp. Công việc của Business Analyst - Làm việc với khách hàng để lấy yêu cầu và chuyển đến đội dự án - Thảo luận và phân tích những yêu cầu, giải pháp đối với đội dự án. - Viết và quản lý document Xuất thân của Business Analyst BA xuất thân IT( developer, QC) Những người xuất thân IT họ có lợi thế nhờ kiến thức chuyên môn nhưng thiếu kỹ năng mềm và các kiến thức nghiệp vụ bổ sung như kế toán, nhân sự, tài chính… Nếu chuyển hướng sang BA, họ cần bổ sung, trau dồi các kiến thức về kinh doanh như nghiên cứu khách hàng, phân tích thị trường thông qua số liệu,...Ngoài ra, họ cũng phải nâng các kỹ năng mềm đặc biệt là kỹ năng giao tiếp.     BA xuất thân kinh doanh( tài chính, ngân hàng, bảo hiểm,...) So những BA xuất thân IT, họ có kỹ năng mềm tốt hơn và có sự hiểu biết sâu rộng trong các lĩnh vực. Tuy nhiên, họ có nền tảng về kinh tế nhưng cần học hỏi và nắm được hệ thống, công cụ liên quan đến IT. Việc hiểu rõ về những yêu cầu của khách hàng và các kiến thức về IT sẽ giúp họ kết nối dễ dàng giữa cả khách hàng và dự án. Sinh viên mới ra trường hướng đến vị trí BA Nếu bạn có kiến thức tổng quát về nhiều ngành nghề, thích giao tiếp, kỹ năng ngoại ngữ tốt thì có thể cân nhắc việc thử sức với vị trí này Các bạn có xuất thân IT hay có kiến thức về IT nếu chuyển hướng đến công việc của BA sẽ giúp các bạn phát triển rất nhiều kỹ năng và kiến thức về sau. Con đường của BA chuyển sang các vị trí công việc khác rất rộng. Nếu bạn có định hướng trở thành một BA, tham khảo ngay vị trí BA mà nhà A đang mở nhé!

Kỹ sư cầu nối (BrSE)- công việc của sự toàn năng

Kỹ sư cầu nối (BrSE) là gì? BrSE hay còn gọi kỹ sư cầu nối (Bridge system engineer) là người đóng vai trò kết nối giữa khách hàng và project team. Họ là người sử dụng tốt kỹ năng giao tiếp, nghiệp vụ về kỹ thuật của mình. Họ giúp cho quá trình trao đổi giữa bên khách hàng và project team được thực hiện một cách thuận lợi giúp bàn giao dự án thành công, đem lại sự hài lòng đến với khách hàng.   Công việc của một kỹ sư cầu nối ( BrSE) BrSE phải đảm nhận nhiều chức năng trong một dự án phần mềm. Bắt đầu từ việc lên kế hoạch phát triển dự án, quản lý đội nhóm đến việc giao tiếp giữa khách hàng với đội nhà…. Cụ thể công việc của một BrSE như sau:  Giai đoạn đầu dự án: - Tìm hiểu, nắm chắc nghiệp vụ và các yêu cầu liên quan đến dự án. - Truyền đạt rõ ràng và chi tiết những yêu cầu của khách hàng tới đội dự án - Đề xuất các ý tưởng và phương án giải quyết cho vấn đề của dự án. - Trong một số trường hợp phải viết tài liệu thiết kế hoặc chỉ cần hiểu tài liệu mà khách hàng đã làm. - Lập kế hoạch,  thời gian cũng như nhân lực cần thiết để phát triển. Giai đoạn phát triển dự án: - Trả lời Q&A liên quan đến nghiệp vụ và kỹ thuật của dự án. - Theo dõi và báo cáo tiến độ dự án cho khách hàng định kỳ. - Hỗ trợ vào quá trình code nếu cần. - Kiểm tra lại chất lượng sản phẩm trước khi release cho khách hàng. Giai đoạn kết thúc dự án: - Release sản phẩm đã hoàn thiện cho khách hàng. - Có thể tham gia vào giai đoạn deploy nếu khách hàng yêu cầu. - Nếu khách hàng phát hiện ra bug thì sẽ đối ứng các bug này cho khách hàng. - Tổng kết lại và hoàn tất dự án. Kỹ năng cần có của một kỹ sư cầu nối (BrSE)   Kỹ năng để trở thành một kỹ sư cầu nối (BrSE) sẽ tương ứng với yêu cầu công việc dành cho vị trí này: + Thành thạo ngoại ngữ để giao tiếp với khách hàng là điều tiên quyết cho các BrSE + Có kiến thức về Tech, hiểu và nắm rõ các nền tảng lập trình. Biết code là một lợi thếnhưng BrSE cũng cần đến khả năng về thiết kế. + Kỹ năng giao tiếp là một kỹ năng rất quan trọng khi bạn là một kỹ sư cầu nối. Bạn cần phải đảm bảo việc truyền tải thông tin giữa khách hàng và team dự án là chính xác, dễ hiểu. Ngoài ra, kỹ năng giải quyết những vấn đề xung đột trong dự án cũng cần thiết. + Kỹ năng quản…

Bạn đã hiểu hết về ReactJS chưa?

1. ReactJS là gì?  React được Facebook giới thiệu vào năm 2011, họ quảng bá đây là thư viện cho phép Developer tạo ra các dự án ứng dụng web lớn, có giao diện UI phức tạp từ một đoạn mã nguồn nhỏ và độc lập. ReactJS (đôi lúc cũng có thể gọi là React.JS hay React) là một thư viện Javascript giúp bạn nhanh chóng xây dựng giao diện ứng dụng (UI). ReactJS có thể xây dựng website hoàn toàn sử dụng Javascript (để thao tác với HTML), được tối ưu hiệu năng bởi kỹ thuật Virtual DOM. Cách cài đặt và bắt đầu làm việc với ReactJS tham khảo nguồn: https://viblo.asia/p/cai-dat-moi-truong-de-chay-reactjs-oOVlY1Pvl8W  2. ReactJS làm được những gì?    ReactJS giúp cho việc viết các đoạn code Javascript sẽ trở nên dễ dàng hơn vì nó sử dụng một cú pháp đặc biệt đó chính là cú pháp JSX. Thông qua JSX cho phép nhúng code HTML và Javascript. ReactJS cho phép Developer phá vỡ những cấu tạo UI phức tạp thành những component độc lập. Dev sẽ không phải lo lắng về tổng thể ứng dụng web, giờ đây Developer dễ dàng chia nhỏ các cấu trúc UI/UX phức tạp thành từng component đơn giản hơn.  Đi kèm với ReactJS là rất nhiều các công cụ phát triển giúp cho việc  debug code một cách dễ dàng hơn. Một trong những ưu điểm nữa của ReactJS đó là sự thân thiện với SEO. Hầu như các JS Framework không thân thiện với các tìm kiếm mặc dù đã được cải thiện nhiều nhưng dưới sự hỗ trợ của các render dữ liệu trả về dưới dạng web page giúp cho SEO chuẩn hơn.  3. Kiến thức nền tảng về ReactJS    React Components:  Components giúp phân chia các UI (giao diện người dùng) thành các phân nhỏ để dễ dàng quản lý và tái sử dụng. Giả sử mình có một website gồm nhiều phần bố cục khác nhau và mình muốn chia nhỏ các phần ra để dễ quản lý. Trong mỗi React App đều có thể chứa rất nhiều components, mỗi components trong đó thường nhận về các props và trả về React elements từ đó hiển thị ra cho UI. Components trong React thường được viết theo 2 loại chính đó là functional components và class components. Functional Components và Class (Stateful) Components  +  Functional Components là một function Javascript / ES6 function, phải trả về 1 React element và nhận props làm tham số nếu cần. +  Class (Stateful) Components là một class ES6, nó sẽ là một component khi nó "kế thừa" React component, có thể nhận props (trong hàm khởi tạo) nếu cần, có thể maintain data của nó với state và phải có 1 method render() trả về 1 React element (JSX), or null. Props và State:  + Props là viết tắt của Properties. Props có thể đến từ parent, hoặc có thể được thiết lập bởi chính component đó. +…

Agile và Waterfall- những mô hình phát triển phần mềm phổ biến

Agile và Waterfall là hai mô hình phát triển phần mềm rất phổ biến được sử dụng trong các tập đoàn, công ty công nghệ ngày nay. Vậy Agile và Waterfall cụ thể là gì? Sự khác biệt chính giữa hai mô hình này? Agile và Waterfall nên chọn cái nào? AMELA sẽ cùng bạn tìm hiểu về mô hình Agile và Waterfall trong bài viết này nhé! Mô hình Agile là gì? Mô hình Waterfall là gì? Mô hình Agile    Là phương pháp xây dựng và phát triển các dự án phần mềm. Phương pháp này rút ngắn đáng kể thời gian phát triển, lặp đi lặp lại các bài test trong một khoảng thời gian ngắn, từ đó phát triển dự án một cách nhanh chóng. Mô hình Waterfall Là phương pháp vòng tuần hoàn dạng vòng lặp. Phương pháp giúp triển khai dự án phần mềm theo tuần tự và do đó nhóm phát triển dự án chỉ chuyển sang giai đoạn phát triển hoặc thử nghiệm tiếp theo nếu bước trước đó hoàn thành thành công. Khác biệt giữa Agile và Waterfall   Agile và Waterfall là hai mô hình phát triển phần mềm có những đặc điểm rất khác nhau:  + Agile cho phép khách hàng có thể request thay đổi yêu cầu hoặc bổ sung specs bất kỳ lúc nào trong quá trình phát triển. Waterfall phải thực hiện thay đổi specs và các yêu cầu đặc tả khác trước khi bắt đầu phát triển.  + Agile có thể cung cấp dịch vụ ở mỗi lần lặp (Iteration) nên sẽ nhanh chóng. Còn đối với Waterfall chỉ cho phép cung cấp dịch vụ sau khi đã hoàn thành toàn bộ các quy trình, do vậy sẽ tốn thời gian hơn.  + Trong mô hình phát triển Agile không bắt buộc phải có tài liệu, tuy nhiên nếu đó là một phương thức truyền đạt thông tin hiệu quả thì vẫn nên tạo tài liệu. Ngược lại, với mô hình phát triển Waterfall, tài liệu cần được tạo cho mỗi quy trình và được kết nối với quy trình tiếp theo. Ngoài ra, tài liệu cũng là bằng chứng của dự án sau khi toàn bộ quá trình hoàn tất. + Agile yêu cầu việc test thường xuyên ứng với từng implement, Waterfall thì việc kiểm tra chỉ được thực hiện trong giai đoạn test. + Trong phát triển Agile, mỗi kỹ sư sẽ thực hiện công việc phát triển của mình mà không cần phải có một lĩnh vực chuyên môn cụ thể; nhưng với mô hình Waterfall, bắt buộc phải có một người phụ trách từng quy trình. + Phương pháp Agile giúp bạn học hỏi thực tế thông qua các phát triển lặp đi lặp lại. Vì phải chịu trách nhiệm đối với tất cả các vòng phát triển, bạn sẽ có nhiều kinh nghiệm cũng như dễ dàng thích ứng hơn trong nhiều lĩnh vực. Còn phát triển Waterfall thiên…

Tại sao Mongo DB nên được sử dụng trong ứng dụng của bạn

MongoDB là gì? Là cơ sở dữ liệu có tính mở rộng, hiệu năng cao, mã nguồn mở, có khuôn mẫu tự do và là database theo hướng document. Tại sao nên sử dụng MongoDB? MongoDB lưu trữ dữ liệu theo dạng documents hoặc objects. Ngày nay đa số các ngôn ngữ đều hỗ trợ làm việc với kiểu dữ liệu objects rất mạnh. Chúng ta thường cần lấy ra dữ liệu dạng object vậy tại sao không lưu chúng với kiểu object Không cần quan tâm đến  JOIN Nên sử dụng MongoDB khi nào? Real-time Analytics & High-speed Logging. Caching & High Scalability. Lưu trữ dữ liệu lớn và phi cấu trúc.       4. Cú pháp và các tính năng của MongoDB và SQL

Hiểu hết về Flutter chỉ trong một bài viết

Khi nhắc đến nền tảng để phát triển ứng dụng di động iOS và Android, chúng ta thường nhắc ngay đến React Native. Tuy nhiên hiện nay, các ứng dụng dành cho điện thoại đang không ngừng phát triển trong số đó có Flutter. Vậy Flutter là gì? So sánh Flutter và React Native? Tại sao Flutter sử dụng ngôn ngữ lâp trình Dart ? Tất cả sẽ được AMELA giải đáp trong bài viết hôm nay.  Flutter là gì? Là một bộ UI Framework hỗ trợ xây dựng platform app cho ios và android ngay trên 1 base coding Flutter gồm 2 thành phần quan trọng: SDK (Software Development Kit): Một bộ các công cụ giúp phát triển các ứng dụng, bao gồm các công cụ để biên dịch mã của bạn thành mã máy gốc (mã cho iOS và Android). Framework (UI Library based on widgets): Một tập hợp các thành phần UI có thể tái sử dụng (button, text inputs, slider,...) Cho phép bạn cá nhân hóa ứng dụng tùy theo nhu cầu. Flutter sử dụng Skia Graphics Library, UI sẽ được draw lại mỗi khi view thay đổi Phần lớn hoạt động trên GPU do đó Flutter UI mượt và mang lại tốc độ 60fps Flutter và React Native React native có 9.1k contributors trên github. Trong khi flutter có đến 13k contributors. Lượng search thống kê từ Google Trends thì trung bình 86, còn react native thì 56. Khảo sát từ stackoverflow số lập trình viên tiếp tục sử dụng ngôn ngữ để lập trình thì flutter là 68.8%, React native thì chỉ có 57.9% thoai. Điều này chứng tỏ những thế mạnh vượt trội của Flutter so với React Native  Flutter nó được biên dịch trực tiếp qua các thư viện gốc ARM, x86 React native thì đơn thuần chỉ ở dạng bao bọc các phương thức native vì vậy cần các bridge để dịch các lệnh gọi đến API native gốc. Chính vì thế sẽ bị bottleneck khi call đến native nhiều.  VD: Với animation thì bạn cần 60FPS để kéo thả animation nhưng RN không thể cung cấp ở mức này vì phải convert qua mã gốc Flutter thì không cần bridge nó tương tác với bất kỳ thành phần nào của hệ điều hành. Ngoài ra với sự kết hợp với Skia hỗ trợ đem lại sự tối ưu render app. Với Flutter thì không cần lo về vấn đề này. Flutter phù hợp với các dự án tập trung về animation, các layout phức tạp, với thế mạnh sử dụng bộ render tự làm, giao tiếp trực tiếp với GPU và một SDK để viết anim dễ dàng. Chọn Flutter nếu bạn muốn cross-platform, UI hấp dẫn, native performance tuyệt vời, time-to-market nhanh hơn và tận dụng lợi thế cạnh tranh của Dart trong môi trường lập trình của bạn. Dart là gì? Tại sao Flutter sử dụng ngôn ngữ lập trình Dart Dart là gì? Dart xuất hiện vào…

Mục tiêu quyết định ngôn ngữ lập trình bạn sẽ học

Mục tiêu quyết định ngôn ngữ lập trình bạn sẽ học ‘’Ngôn ngữ lập trình nào tôi nên học đầu tiên?’’ hay ‘’ Tôi nên ưu tiên ngôn ngữ lập trình nào hơn?’’. Đây chắc hẳn là một trong những câu hỏi thường thấy nhất của bất kỳ ai khi mới tiếp xúc với lập trình hoặc những sinh viên công nghệ thông tin đang tìm kiếm hướng đi cho bản thân khi ra trường. Thay vì để các bạn lựa chọn trong mơ hồ, bài viết này AMELA sẽ định hướng giúp mỗi người trong việc lựa chọn ngôn ngữ học dựa trên nguyên tắc: quyết định từ mục tiêu. Mỗi mục tiêu khác nhau sẽ có những lựa chọn ngôn ngữ lập trình phù hợp nhất.  Công nghệ thông tin nói chung hiện nay thường được chia thành các mảng, lĩnh vực chủ yếu như sau: Lập trình Web, Lập trình ứng dụng di động, Phân tích dữ liệu, Trí tuệ nhân tạo(AI), Robotic, IoT, Game. Tương ứng với mỗi lĩnh vực sẽ có các ngôn ngữ thường được dùng để lập trình.     1. Lập trình Web Lập trình web là công việc có nhiệm vụ nhận toàn bộ dữ liệu từ bộ phận thiết kế web để chuyển thành một hệ thống website hoàn chỉnh có tương tác với CSDL và tương tác với người dùng dựa trên ngôn ngữ máy tính. Ngôn ngữ phổ biến trong lập trình Web có thể kế đến:  Java được coi là ngôn ngữ lập trình nổi tiếng nhất, được coi là ngôn ngữ của tương lai trước bối cảnh bùng nổ của mạng toàn cầu Internet. Javascript là ngôn ngữ lập trình cho website và được hỗ trợ bởi hầu hết các trình duyệt web. Ngoài ra, trình duyệt di động cho điện thoại thông minh cũng hỗ trợ JavaScript. C# là ngôn ngữ gần gũi với các ngôn ngữ lập trình thông dụng như C++, Java hay Pascal. PHP là một trong những cách an toàn nhất để phát triển trang web và ứng dụng web động.    2. Lập trình ứng dụng di động Lập trình ứng dụng di động chính là viết ngôn ngữ lập trình (code) để xây dựng các tiện ích, chương trình, app, hệ điều hành trên mobile. Các ngôn ngữ thường thấy trong mảng này bao gồm:  Swift hoặc Objective - C là ngôn ngữ lập trình nên chọn nếu muốn làm Ứng dụng cho iOS. Java, Kotlin là ngôn ngữ nên chọn nếu muốn làm ứng dụng cho Android. Javascript hoặc lên cao là ReactNative để làm ứng dụng cho cả Android,  iOS.C, C++, C# hoặc Ruby cũng được sử dụng khi Lập trình ứng dụng di động. Các vị trí dành cho lập trình Web và App mà AMELA  đang tuyển gấp  các bạn có thể tham khảo Tại đây    3. Phân tích dữ liệu Phân tích dữ liệu là quá trình xử lý và phân tích các tập…

Developer nên ''đầu quân'' cho công ty Outsource hay Product?

Nhu cầu tuyển dụng vị trí Developer trong thời đại công nghệ 4.0 ngày càng lớn. Chính vì thế, Developer sẽ có đa dạng sự lựa chọn về cơ hội việc làm, hình thức công ty cho quá trình thăng tiến của Developer nên ‘’đầu quân’’ cho công ty Outsource hay gia nhập vào công ty công nghệ hoạt động theo hình thức làm Product.  Để có sự lựa chọn tốt nhất, Developer cần nắm rõ điểm khác biệt giữa công ty Outsource và công ty Product. Ưu điểm và khuyết điểm của loại công ty này là gì? Với bài viết này,  AMELA sẽ giúp các bạn trả lời cho những câu hỏi đó.  Công ty Outsource chính xác là gì? Công ty Outsource được thuê để làm sản phẩm công nghệ, phần mềm cho các công ty khác và được trả tiền theo dự án. Họ không sở hữu, kinh doanh trên sản phẩm mình làm ra.  Nói một cách nôm na, nhiệm vụ của công ty Outsource chính là làm theo yêu cầu của khách hàng, xong yêu cầu là xong nhiệm vụ. Công ty sẽ không quyết định được sản phẩm của mình làm ra thành hay bại.  ‘’Sự thành công của công ty Outsource được đo lường bằng mức độ hài lòng của khách hàng’’. Đương nhiên, công ty Outsource vẫn có thể góp ý để giúp trải nghiệm của người dùng tốt hơn. Tuy vậy, mục tiêu cuối cùng vẫn là sự hài lòng của khách hàng đã thuê mình. Trong quy trình làm sản phẩm, công ty Outsource chỉ làm việc trên một giai đoạn của sản phẩm chứ không phải trong suốt chu kỳ của nó.  Developer có biết sự khác nhau giữa công ty Product và công ty Outsource? Công ty Product Công ty Product không chỉ tạo ra sản phẩm mà còn quảng bá, bán sản phẩm đến tay người dùng. Sự thành công của công ty được đo lường bằng mức độ hài lòng của người dùng. Công ty chỉ tạo ra doanh thu, lợi nhuận dựa trên sự yêu thích của người dùng muốn mua sản phẩm của họ. Công ty Outsource Công ty Outsource không được quyết định sản phẩm cuối cùng đến tay người dùng nhưng với công ty Product họ có thể thay đổi, bảo trì, phát triển sản phẩm giúp tăng trải nghiệm người dùng. Việc hiểu rõ và mở rộng vòng đời sản phẩm sẽ giúp công ty Product có cảm giác ‘’sở hữu sản phẩm’’.   Developer nên làm việc ở công ty Product hay công ty Outsource Khi Developer đã nắm rõ sự khác biệt giữa công ty Product và công ty Outsource thì việc tiếp theo bạn nên quyết định bản thân phù hợp với loại công ty nào, định hướng phát triển ra sao.  Nếu bạn muốn làm việc trong nhiều dự án, nhiều sản phẩm trong các lĩnh vực khác nhau theo thời gian thì Outsource chính là…