Nhà quản lý hay sếp là một “đàn anh” có vai trò quan trọng đối với việc định hướng lộ trình sự nghiệp cho một nhân viên. Sếp không chỉ thực hiện tốt nhiệm vụ của mình mà còn phải có nghệ thuật giao việc hiệu quả. Điều này tạo điều kiện để nhân viên có thể phát triển toàn diện năng lực một cách tốt nhất. Vậy đâu là những yếu tố tạo ra nghệ thuật giao việc của một nhà quản lý. Cùng TopDev phân tích trong bài viết sau đây.
Những sai lầm trong cách giao việc của sếp
Như tiêu đề đã nói, giao việc không phải là một vấn đề đơn giản. Nó đòi hỏi một nhà quản lý/sếp phải thật sự hiểu rõ về nhân viên của mình. Do chưa nắm bắt chính xác, nhiều sai sót có thể xảy ra. Ví dụ như việc phân bố và quản lý công việc cho nhân viên. Điều này vô tình càng đẩy khoảng cách giữa sếp và nhân viên đi xa hơn. Đồng thời, ảnh hưởng trực tiếp sự phát triển của tổ chức nói chung và cá nhân mỗi nhân viên nói riêng.
Vậy nguyên nhân là do đâu?
Nhà quản lý ôm đồm quá nhiều công việc
Không khó để hiểu tại sao nhiều người sếp lại làm như vậy. Đơn giản vì họ cho rằng mình đủ khả năng để tự giải quyết được các công việc một cách nhanh chóng mà vẫn đảm bảo tốt hiệu quả công việc. Hoặc vẫn tồn tại nhiều lý do khác về sự cạnh tranh. Do vậy, sếp sẵn lòng chấp nhận thực hiện những nhiệm vụ dù nó có áp lực. Họ chưa muốn ủy quyền việc xử lý các đầu việc cho nhân viên. Đó cũng là lý do họ chưa thật sự là một người sếp tốt được. Họ thiếu đi sự nhìn nhận bao quát để có thể giao trách nhiệm cho đúng người – đúng việc.
Trường hợp này, sếp chỉ tập trung giao việc cho những nhân viên có quá nhiều kinh nghiệm. Thực tế, đây là một nước đi thông minh để đảm bảo rằng chất lượng công việc vẫn được duy trì tốt và không bị quá tải.
Thế nhưng, liệu rằng đó có phải là một chiến lược hoàn hảo hay không? Tất nhiên là không, dù đó là nhân viên quá dày dặn kinh nghiệm hay một nhân viên mới thì việc tạo ra những cơ hội trải nghiệm là điều cần thiết thực hiện.
Nhân viên mới họ không thiếu năng lực, cái họ thiếu chính là sự trải nghiệm. Nếu sếp không tạo điều kiện cho họ cọ xát thì làm sao họ có thể phát huy hết tài năng của mình. Đôi khi phải chấp nhận những rủi ro để tạo ra những bước ngoặt lớn hơn trong sự nghiệp.
Nhà quản lý giao việc không đúng người, đúng việc
Mỗi nhân viên đều sở hữu những đặc trưng riêng. Có thể họ khéo léo, tinh tế. Có những người lại quyết đoán. Và tất nhiên, cũng có những cá nhân thật sự nổi trội về mọi mặt. Không những thế. Nhà quản lý hay sếp là những thuyền trưởng. Họ có vai trò dẫn dắt, chỉ đạo tổ chức cho các các nhân viên tiềm năng của mình đi đúng hướng. Sự thận trọng trong quyết định chọn người của nhà quản lý thật sự rất quan trọng.
Việc chọn sai người thực hiện công việc sẽ tạo ra những lỗ hổng lớn. Giao việc không đúng khả năng của nhân viên, giao tiếp một cách mơ hồ, chưa thống nhất,.. tất cả sẽ làm ảnh hưởng đến giá trị chân chính của doanh nghiệp. Vì vậy, mỗi nhà quản lý hãy luôn sáng suốt khi giao việc nhé!
Kế hoạch giao việc hiệu quả cho nhân viên
Cụ thể, việc lập kế hoạch giao việc hiệu quả sẽ giúp hạn chế được những rủi ro. Nhà quản lý cần phải có một kế hoạch phù hợp nhất. Đi từ việc xác định các yếu tố về mục tiêu, đối tượng, kế hoạch thực hiện cho đến việc theo dõi, đánh giá kết quả đạt được:
Xác định đúng trọng tâm vấn đề (tức mục tiêu công việc): Ví dụ lượng traffic của doanh nghiệp trong tháng gần nhất cần đạt được là 950,000 lượt xem. Chúng ta cần xác định phải thực hiện như thế nào để đạt được mục tiêu đó trong một tháng.
Tổ chức phân công: Nhà quản lý cần xem xét tiến trình và sắp xếp các công việc theo mức độ quan trọng – khẩn cấp khác. Điều này tạo ra một hướng đi logic và đảm bảo tối ưu hiệu quả thực hiện.
Chọn đối tượng phụ ứng:Đây là thời điểm thích hợp để nhà tuyển dụng tìm kiếm những đối tượng phù hợp về khả năng và trình độ.
Thiết lập kế hoạch: Tập trung triển khai các bước gồm các nhiệm vụ chi tiết và tiến hành thực hiện công việc
Theo dõi và đánh giá quá trình thực hiện:Kiểm tra và thúc đẩy các nhân viên. Phản hồi, báo cáo để tìm ra những bất cập và điều chỉnh kịp thời. Đánh giá hiệu quả công việc và rút ra những kinh nghiệm.
Từ những lý do đó, ta nhận thấy các nhà quản lý như những người nghệ sĩ và việc chọn đúng người – đúng việc là cả một nghệ thuật.
Nghệ thuật giao việc của nhà quản lý
John Quincy Adams, một nhà chính khách nổi tiếng đã từng chia sẻ:
“Nếu hành động của bạn thôi thúc người khác ước mơ nhiều hơn, học tập nhiều hơn, hành động nhiều hơn, và trở nên tốt đẹp hơn, bạn chính là một nhà lãnh đạo thật sự”
Giao việc không chỉ đơn giản là sự chuyển giao lại quyền hạn và trách nhiệm cho nhân viên. Đối với họ, đó còn là sự tin tưởng từ tổ chức. Họ sẽ cảm nhận được sự động viên và được đóng góp tạo ra các giá trị chung cho doanh nghiệp. Đó là một hành động nên được thực hiện.
Hãy là một “đàn anh” đúng nghĩa
Mỗi nhà quản lý, lãnh đạo nhân sự hay sếp đều là những người đã từng trải nghiệm. Vì thế, bạn phải thể hiện mình là đàn anh đúng nghĩa. Hãy làm gương cho nhân viên của mình từ những hành động dù là nhỏ nhất.
Muốn nhân viên của mình đi đúng hướng, bạn nên có những mô tả cụ thể về các mục tiêu cần đạt được. Bên cạnh đól bạn cần phải là một hình mẫu xứng đáng để nhân viên học tập. Hãy là phiên bản tốt hơn ngày hôm qua vì đối với nhân viên. Vì tất nhiên, không gì hiệu quả hơn bằng hình mẫu trực tiếp.
Dấn thân và đồng hành cùng nhân viên
Đừng tạo ra khoảng cách quá xa giữa bạn và nhân viên. “Chỉ trỏ”, “ra lệnh” dường như không thể khiến một tập thể tốt hơn. Mỗi nhà quản lý hãy đơn giản chia sẻ và cùng nhân viên trải nghiệm công việc.
Họ cần thấy được sự nhiệt thành của nhà lãnh đạo, sếp,.. để có cho mình mong muốn được dấn thân. Chính điều này cũng quyết định đến khả năng đồng hành của một nhân viên. Vì vậy, hãy cố gắng tạo nên cảm giác đồng hành với nhân viên. Nhà lãnh đạo có thể ứng dụng lý thuyết tháp nhu cầu Maslow để hiểu thêm về những mong muốn của nhân viên mình. Nếu thấu hiểu nhân viên và tạo được sợi dây kết nối thì bạn là nhà lãnh đạo tài tình.
Là một người quản lý, một người sếp, bạn không nên chỉ giao việc cho xong. Nhân viên luôn có những thắc mắc cần bạn giải đáp. Nhân viên luôn mong muốn nhận được lời khuyên bạn. Nếu là một nhà quản lý giỏi, bạn nên giải thích vấn để để giúp họ có trải nghiệm tốt nhất với công việc.
Cung cấp những thông tin giúp nhân viên nắm rõ chi tiết vấn đề. Nó còn giúp giảm thiểu những rào cản phát sinh. Từ đó, họ thực hiện công việc theo đúng với định hướng đề ra. Cũng từ đó mà đảm bảo được hiệu suất công việc một cách tốt nhất. Ngoài ra, nếu nhân viên gặp những vấn đề khó khăn, nhà quản lý cần giúp đỡ họ. Nhà quản lý có thể chỉ ra những điều thú vị trong nhiệm vụ/công việc mà nhân viên đang đảm nhận. Đó là cách kích thích động lực làm việc của họ; hạn chế đi tình trạng chán nản có thể xảy ra.
Lời kết
Giao việc cho nhân viên là cả một nghệ thuật. Nghệ thuật được xây dựng trên cơ sở tính thần thấu hiểu. Nhà quản lý không chỉ quan tạm đến năng lực, trình độ mà còn kể đến sự phụ ứng. Giao việc còn có ý nghĩa quan trọng về mức độ đồng hành tại một công ty. Vì vậy, hãy là một nhà quản lý tải năng. Cho họ thấy rằng bạn luôn dõi theo họ, tạo những điều kiện tốt nhất để phát để phát huy toàn bộ năng lực.
Tuyển Dụng Nhân Tài IT Cùng TopDev Đăng ký nhận ưu đãi & tư vấn về các giải pháp Tuyển dụng IT & Xây dựng Thương hiệu tuyển dụng ngay!
Hotline: 028.6273.3496 – Email: contact@topdev.vn
Dịch vụ: https://topdev.vn/page/products
Deal lương được xem là một thách thức lớn nhất trong buổi interview. Vì việc deal lương như là một điểm nhấn quan trọng. Cùng với các hệ giá trị về năng lực như sự tin tưởng – ấn tượng ban đầu, bản lĩnh cá nhân,…deal lương sẽ là phần chốt lại quá trình phỏng vấn.
Chắc bạn sẽ không xa lạ gì với câu hỏi: “Bạn mong muốn mức lương bao nhiêu?” Đây là câu hỏi được nhà tuyển dụng dùng để đánh giá toàn diện hơn về một ứng viên. Liệu bạn đã có những kỹ năng deal lương cần thiết để đáp trả nhà tuyển dụng chưa? Qua bài viết sau đây, TopDev sẽ chia sẻ cho bạn bí quyết deal lương hiệu quả, giúp bạn “lật bài ngửa” những nhà tuyển dụng khó nhằn nhất.
Tổng quan về lương Gross – lương Net
Trước khi bắt đầu tìm hiểu những bí quyết đàm phán về lương bổng, bạn cần nắm những kiến thức cơ bản về 2 loại lương sau: Lương gross và lương net.
Lương Gross là phần tổng thu nhập của người lao động. Nó bao gồm cả các khoản đóng bảo hiểm và thuế. Mức lương thực nhận của người lao động sẽ phải trích ra một phần để đóng bảo hiểm và nộp thuế thu nhập cá nhân.
Lương Net là lương thực nhận của người lao động sau khi đã trừ hết các khoản chi phí bảo hiểm và thuế thu nhập cá nhân.
Xem xét thực tế, nhiều người nghĩ lương Net có lợi hơn. Tuy nhiên, khi nhìn vào thực tế khi chúng ta quy đổi lương Net sang Gross và ngược lại, số tiền người lao động nhận được không đổi. Dù bạn thỏa thuận với nhà tuyển dụng bằng cách nào, họ đều sẽ tính toán để lương Net và lương Gross ở mức tương đương với nhau.
Ví dụ: Mức lương Gross là 16,000,000 VND ~ Net 14,154,000 trong trường hợp đóng bảo hiểm trên lương chính thức.
Vậy nên khi nhà tuyển dụng quyết định trả bạn mức lương Gross là 16,000,000 VND, nếu bạn đàm phán mức lương Net thì lương của bạn sẽ là 14,154,000 và ngược lại. Về cơ bản lương bạn nhận được vẫn không đổi dù bạn đàm phán lương Net hay Gross.
Deal lương hiệu quả khi phụ ứng với từng trường hợp
Bạn không thể ngồi đó nở một nụ cười tươi để giải quyết cho câu hỏi mức lương mong muốn từ nhà tuyển dụng. Điều đó vô tình làm bạn mất đi thiện cảm. Đừng để sự bối rối, thiếu tự tin ảnh hưởng đến suy nghĩ và câu trả lời của bạn. TopDev sẽ chỉ ra cho bạn cách deal lương hiệu quả theo từng trường hợp thực tế.
Deal lương khi bạn là ứng viên nhảy việc, đã có kinh nghiệm
Nếu là người đi đã từng đi làm, bạn sẽ có nhiều lợi thế hơn trong việc deal lương.
Cụ thể, trong trường hợp nếu vị trí mới của bạn tương ứng với vị trí tại công ty cũ, hãy xem xét:
Khối lượng công việc bạn sẽ đảm nhận có tương ứng với bản mô tả chi tiết công việc (Job Description) ở doanh nghiệp cũ hay không?
Đánh giá mức độ, hiệu suất công việc mà mình từng thực hiện ở vị trí cũ.
Khi tủ tự tin với năng lực hiện tại, bạn có thể bắt đầu deal lương. Cụ thể, bạn hãy deal một mức lương mong muốn với mức độ gia tăng từ 15-20% so với mức lương cũ. Hãy tự tin nếu điều đó phù hợp với năng lực của bạn.
Ngược lại, nếu vị trí mới có nhiều điểm khác so với vị trí cũ, bạn nên có những chiến lược thông minh hơn. Có thể bạn e ngại vì bản thân chưa đủ tự tin để deal một mức lương cao hơn. Hãy bình tĩnh và đưa ra cách thức giải quyết phù hợp.
Cụ thể, bạn có thể deal một mức lương bằng hoặc cao hơn mức lương ban đầu. Tuy nhiên tỉ lệ gia tăng không quá 10%. Điều bạn cần quan tâm lúc này là thời gian trải nghiệm. Tại sao lại như thế?
Vì bạn cần thời gian để thích ứng với công việc mới. Chính điều này giúp bạn đánh giá được mức độ phù hợp với công việc. Sau một khoảng thời gian thử sức và học hỏi, bạn sẽ dễ dàng thương lượng về một mức lương mong muốn hơn.
Deal lương khi bạn chưa từng có trải nghiệm phỏng vấn
Đây được xem là trường hợp khá thách thức. Vì bạn là một ứng viên mới ra trường, chưa từng đi phỏng vấn. Kiến thức về lương bổng và sự chuẩn bị còn hạn chế.
Nếu nhà tuyển dụng không đề cập về lương bổng, bạn đừng nhắc đến nó. Trừ khi bạn rất tự tin về khả năng của mình. Nếu cho rằng bản thân đủ trải nghiệm, bạn có thể thỏa thuận ngay với nhà tuyển dụng.
Tuy vậy, bạn vẫn nên kiểm soát tốt mong muốn của mình. Nếu bạn là diện first job- first interview, mọi chuyện còn quá xa lạ. Điều quan trọng nhất lúc này là sự thấu hiểu về thị trường nhà tuyển dụng và những mong muốn của mình.
Khoảng cách giữa trường đại học và thị trường làm việc nó thật sự quá lớn. Và vấn đề nằm ở chỗ, bạn chưa hiểu được nhà tuyển dụng họ cần gì. Đó là rào cản khiến bạn mãi loay hoay, không biết thể hiện mình như thế nào? Có tốt hay chưa? Vì vậy nếu bạn vội vàng deal lương khi còn quá non nớt, đó là một nước đi sai lầm. Bạn nên nhớ, chưa đến lúc để bạn kỳ kèo nhà tuyển dụng về lương bổng.
Thời điểm tuyệt vời nhất đối với một bạn trẻ vừa ra trường để thảo luận về vấn đề lương bổng cũng là từ 3-6 tháng thử việc. Lúc này bạn sẽ có độ chín nhất định. Khoảng thời gian ấy đủ để bạn hiểu được những mong đợi từ doanh nghiệp. Đồng thời, thể hiện được năng lực của mình và sự cam kết về tính trách nhiệm.
Deal lương khi thách thức đạt đến giới hạn
Giới hạn chính là cách mà nhà tuyển dụng đặt ra để thử thách tính chân thật của bạn.
Họ cố hỏi bạn về mức lương với hai giả thuyết như sau:
Một là,bạn quá phô trương về bản thân. Hay đó là cách bạn đang phóng đại về khả năng của chính mình. Thực tế, năng lực của bạn không như thế. Nhà tuyển dụng đủ sự dày dặn để nhìn để nhìn thấu được cái bạn sở hữu. Họ cố tình hỏi vì đã đến lúc khép lại cuộc hội thoại thiếu chân thật này.
Hai là,bạn là ứng viên họ đánh giá cao. Có thể bạn có những tố chất và kỹ năng thích hợp cho vị trí của họ. Bạn có thể không giỏi nhưng bạn có những điểm đặc biệt. Họ hỏi bạn về lương để xem xét cách bạn đối mặt với nó như thế nào. Cách bạn trả lời và dám vượt qua thách thức sẽ thể hiện rõ bạn là ai. Đó là những gì họ cần thay vì một ứng viên chỉ mãi nói về những điều hay ho.
Bạn cần phải tự tìm hiểu và có sự chuẩn bị tốt nhất trước buổi phỏng vấn. Không một công thức deal lương nào hiệu quả bằng những trải nghiệm cá nhân. Những kỹ năng giao tiếp, điều tiết cảm xúc, các kiến thức về lương bổng,…sẽ giúp bạn hoàn thiện năng lực. Qua đó, bạn sẽ đủ sức dẫn dắt và thể hiện mình một cách trọn vẹn trong suốt buổi interview. Nếu nắm bắt được mục đích bản thân, hiểu rõ mong đợi của nhà tuyển dụng, bạn sẽ tự khắc có những phản hồi khôn ngoan.
Lời kết
Mức lương chính là cái phản ánh trực tiếp sự cống hiến và giá trị mà bạn mang lại cho doanh nghiệp. Hãy là người thật sự bản lĩnh, nghiêm túc và tâm huyết tạo ra các giá trị cho doanh nghiệp. Có như thế, chắc chắn rằng những đãi ngộ về mức lương sẽ không làm bạn phải thất vọng. Một lần nữa, đừng quên những trải nghiệm thực tế và rèn luyện các kiến thức để mình có đủ năng lực deal lương với nhà tuyển dụng.
Project Javascript – Một trong những quyết định quan trọng nhất mình rút ra được trong sự nghiệp làm dev đó chính là phải “vượt lên” việc chỉ dùng tool
Mình quyết định tạo ra tools của bản thân, không phải để bán hay với mục đích thương mại gì, mà chỉ để thực sự hiểu cách mà những thứ công nghệ này hoạt động và cải thiện kỹ năng mình thế nào. Và cùng xem tiếp câu chuyện ngắn mình đã lên trình bản thân với các project cá nhân cuả mình.
Mình luôn là một “CSS guy”. Năm 2015, được sử ủng hộ từ bạn bè, mình đã tham gia thử thách Write Code Every Day. Nói đơn giản là mình làm trong những project open source hàng ngày trong khoảng 1 năm.
Những ngày đầu coding thì kỹ năng Javascript của mình còn rất hạn chế. Và mọi thứ trở nên khá dần khi mình nhận lời mời để nói chuyện tại Front in Valle (một hội thảo về front-end khá lớn tại nuớc mình – Brazil) mà mình có thể nói về bất kỳ chủ đề nào. Mình đã có 1 ý tưởng khá độc đáo: đó chính là mình sẽ tìm hiểu về javascript để tạo ra một cái CSS preprocessor (Bộ tiền xử lý CSS) của bản thân.
Banana CSS
Thế là năm 2016 mình đã tạo ra một bộ tiền xử lý CSS được gọi là banana CSS, với mục đích là để học javascript, thế nhưng cuối cùng nó lại là Node.js, làm thế nào để viết CLI, lint, unit test, JSDocs, continuous integration,data structure (cấu trúc dữ liệu), AST, làm thế nào để tạo plugin gulp, …
Lúc này thì mình thật sự cần phải hiểu hơn javascript trong browser, nên mình đã cân nhắc về tool chính mà mình dùng hàng ngày và đ đến kết luận rằng nó chính là React.js
Cho nên…
millenium.js
Năm 2017 mình tạo ra project gọi là millenium.js, với dòng giới thiệu là:
Một thư viện dùng để tạo ra Functional Stateless Components và render với Virtual DOM. Thích hợp để tạo những app cực nhẹ và nhanh với Redux.
Hay ngắn gọn hơn:
🚀 Render your front-end in less than 12 parsecs (Render front-end với chưa tới 12 parsecs).
Với project này. mình đã tìm hiểu về performance, những ví dụ để tạo library front-end, thuật toán, JSX, … Đương nhiên mình cũng giữ lại những best practice của các project cũ.
Sau những projects này (và rất nhiều những project khác), năm 2019/2020 mình tập trung build sản phẩm cho doanh nghiệp, tạo ra những app Front-End phức tạp và lead một team full-stack.
Đúc kết lại, từ những năm cuối thực hiện các dự án open source, mình đã nâng trình technical lên rất nhiều và hầu như không gặp phải khó khăn gì khi thực hiện các kiến trúc phức tạp khi sử dụng React.JS, immutable.js, web components, flux, tests, PRPL pattern, back-end APIs (Node.JS/python), MongoDB, và rất nhiều những công cụ, tools cho web applications!
Kết thúc cái blog này mình sẽ nhắc lại câu nói từ đầu bài:
Một trong những quyết định quan trọng nhất mình rút ra được trong sự nghiệp làm dev đó chính là phải “vượt lên” việc chỉ dùng tool, mình đã tạo ra chúng!
Bạn viết code, chạy thử trên localhost, yeah mọi thứ super nhanh
Nhưng khi chạy trên production thì mọi thứ sẽ trở nên như thế này
Sẽ có rất nhiều giải pháp để xử lý vấn đề này.
Tại sao chúng ta phải load một component mà user chưa sử dụng đến, thậm chí có khi trong suốt quá trình làm việc, user sẽ không đụng đến một số màn hình?
Giải pháp
Nếu bạn làm web nhiều thì chắc có nghe đến lazy load image, để giảm bớt số lượng request gởi đi và dữ liệu trả về cho lần load đầu tiên. Trong React cũng có khái niệm tương tự như vậy.
Tất cả những việc đó thực hiện được là nhờ sự thần thánh của webpack
Thông thường chúng ta import component như sau
import ScreenComponent from'./ScreenComponent';
Vậy đã bao giờ bạn thử
import('./ScreenComponent');
Vâng, nó sẽ trả về 1 Promise!
Nếu import như thế, Webpack sẽ split file build ra và thực hiện việc load chỉ khi được gọi
Code ví dụ
import React,{ Component }from'react';import Todo from'./Todo';constructor(props){super(props);this.state ={
value:'',
todos:[]}}// ...render(){return(<div className="App"><header className="App-header">
Add todo
</header><input value={this.state.value}onChange={this.changeValue}/><button onClick={this.submitValue}>Add</button><hr /><Todotodos={this.state.todos}/></div>);}
Nếu ở màn hình này, user chưa có gì trong state.todos, chúng ta không thực sự cần import Todo from './Todo';, chỉ khi user nhấn add để thêm một item vào trong state.todos chúng ta mới cần load component <Todo />
Thêm state.LLTodo để kiểm tra việc load component todo chưa, chúng ta đưa việc load này vào componentDidUpdate()
import React,{ Component }from'react';//import Todo from './Todo'; // bỏ component import ở đâyconstructor(props){super(props);this.state ={
value:'',
todos:[],
LLTodo:null}}componentDidUpdate(prevProps, prevState){if(!this.state.LLTodo){this.lazyLoadTodo();}}lazyLoadTodo=()=>{const lazyLoad =import('./Todo');debugger;// để xem nó trả về gì}
Nó đã trả về cho chúng ta một Promise, sửa lại hàm này thành async
Để thực sự thấy được kết quả, chúng ta có thể build, hoặc trên mở tab network, khi nhập giá trị vào trong input, một file [tên].chunk.js sẽ được load thêm vào.
File 1.chunk.js được load khi component được update
Mở file này ra để check xem sau
Đúng là file component của chúng ta được được tách ra 😀
Lazy load react-router
Giờ xem xét phần chúng ta setup cho cái route, đại khái nó sẽ như thế này
import Home from'./Home'import Blog from'./Blog'<Switch><Routeexactpath="/"component={HomeComponent}/><Routepath="/blog"component={BlogComponent}/></Switch>
Áp dụng lazy load component với route, ở đây mình viết thêm một hàm asyncComponent, nó sẽ nhận vào hàm import('path/to/file') và return về component đó.
import React,{Component}from'react';exportdefaultfunctionasyncComponent(getComponent){classAsyncComponentextendsComponent{static Component =null;
state ={// chổ này hơi tricky, trỏ về chính nó
Component: AsyncComponent.Component
};componentDidMount(prevProps, prevState){// không re-load nếu đã có rồiif(!this.state.Component){getComponent().then(Component=>{
AsyncComponent.Component = Component;this.setState({ Component })})}}render(){const{ Component }=this.state;if(Component){return<Component{...this.props}/>}returnnull;}}return AsyncComponent;}
Hàm asyncComponent() này chúng ta sẽ truyền vào cho nó function là getComponent() (chính là hàm import)
Chỉnh lại cách chúng ta import component cho từng route
// Dynamically imported componentsconst Home =asyncComponent(()=>import('./Home').then(module=> module.default))const Blog =asyncComponent(()=>import('./Blog').then(module=> module.default))<Switch><Routeexactpath="/"component={Home}/><Routepath="/blog"component={Blog}/></Switch>
Tổng kết
Việc lazy load component không quá khó, không cần thêm bất kỳ thư viện, config gì cả nếu bạn đang init project bằng create-react-app, nhưng nó sẽ là giải pháp phải làm khi file bundle của bạn đã quá lớn và ngày càng lớn hơn.
Kambria Code Challenge là chuỗi cuộc thi và hackathon trực tuyến về lĩnh vực Trí tuệ nhân tạo được thiết kế để thu hút sự tham gia của các lập trình viên khắp nơi trên thế giới, kết nối họ trở thành một phần của cộng đồng các lập trình viên tại Kambria. Đây cũng là cơ hội để các bạn kiểm tra kiến thức về thuật toán AI, chứng minh các kỹ năng về lập trình của bạn, đồng thời nhận phần thưởng và phát triển cơ hội nghề nghiệp với các công ty công nghệ là đối tác của Kambria.
Kambria Code Challenge có tổng cộng 4 Quiz, trong đó Quiz 04 có giải thưởng lớn nhất với tổng trị giá $700. Mỗi Quiz sẽ xoay quanh từng chủ đề về AI, bao gồm:
4️⃣ Điền đầy đủ thông tin trên trang hồ sơ cá nhân
5️⃣ Nhận email xác nhận tham gia Quiz 04
6️⃣ Tham gia dự thi đúng giờ!
04 bao gồm 2 bounty với cấp độ & giải thưởng khác nhau
Quiz Bạn chỉ có thể tham gia 1 trong 2 bounty:
💎Standard Quiz 04 Bounty: tất cả mọi người đều có thể đăng ký tham gia. Bounty này có tổng cộng 15 câu hỏi với độ khó tương đương với các Quiz trước đây của Kambria Code Challenge.
💎Special Quiz 04 Bounty: chỉ những thí sinh đã tham gia ít nhất 2 Quiz của Kambria Code Challenge mới được tham gia Special Bounty. Special Bounty có tổng cộng 20 câu hỏi với độ khó cao hơn, cùng với giải thưởng lớn hơn.
Nếu bạn đủ điều kiện để tham gia Special Quiz 04 Bounty, hãy chú ý kiểm tra email thường xuyên. Kambria sẽ gửi email để hướng dẫn bạn tham gia vòng thi đặc biệt này.
Thị trường cung cấp dịch vụ SaaS 2020 trong nước ta còn khá trẻ. Tuy Việt Nam cũng là nước luôn cập nhật xu hướng công nghệ của thế giới nhưng xu hướng thị trường SaaS và thị trường Điện toán đám mây vẫn còn là một thị trường khá trẻ và chỉ mới nhận được sự đầu tư và chú ý trong 1 vài năm trở lại đây.
Hiện tại thị trường cung cấp dịch vụ SaaS 2020 đã nhận được nhiều sự chú ý và ưu tiên phát triển hơn nhiều năm về trước, rất nhiều công ty công nghệ phát triển SaaS đã bắt đầu “trở mình” và đạt được nhiều sự quan tâm hơn. Nhờ các công ty công nghệ phát triển SaaS và đưa SaaS đến tay người dùng (các doanh nghiệp) nên thị trường cung cấp dịch vụ SaaS 2020 không còn ảm đạm như vài năm trước mà đã bắt đầu nhộn nhịp hơn.
Trong báo cáo thị trường IT Landscape 2020 cũng đã đưa ra 1 vài số liệu của sự tăng trưởng trong thị trường này. Để có thể hiểu rõ tình hình cùng các số liệu trong báo cáo, trước tiên chúng ta cần có kiến thức tổng quát về thị trường SaaS.
Tổng quát Thị trường cung cấp dịch vụ SaaS 2020
Khái niệm SaaS
SaaS được sáng tạo và phát triển theo mô hình Điện toán đám mây, SaaS là từ viết tắt của “Software as a Service”, nó là một trong những hệ thống dịch vụ thuộc về phần mềm. Có thể hiểu những công ty SaaS là những công ty cung cấp dịch vụ chứ không phải buôn bán bất cứ sản phẩm nào liên quan đến phần mềm.
Hiểu theo cách đơn giản hơn, thì nó nghĩa là các công ty SaaS tự tạo hoặc phát triển phần mềm được vận hành trên nền tảng web. Dựa trên nhu cầu của người dùng, Sau đó họ bán lại dịch vụ theo hình thức khách hàng phải nạp tiền mỗi tháng trên tài khoản của khách để duy trì trạng thái hoạt động.
Ví dụ: khách hàng có nhu cầu tìm kiếm, phân tích thông tin, thứ hạng của đối thủ, SaaSu đó rất nhiều các công ty phát triển nền tảng cung cấp đủ theo các nhu cầu trên trên web của họ, bạn có thể tìm kiếm, phân tích thông tin, thứ hạng của bất kỳ đối thủ bạn muốn chỉ với điều kiện là bạn truy cập vào trang web của họ, đăng nhập vào tài khoản đã được thanh toán là bạn đã có thẻ sử dụng được những dịch vụ của họ.
Trong giới Công nghệ, SaaS được đánh giá là phần nổi trội, tiên tiến hơn so với các phần mềm on-premise cũ ( các phần mềm được mua lại từ các công ty phát triển phần mềm)
Tình hình thực tế
Có lẽ bạn sẽ không nhận ra rằng bạn đã từng sử dụng qua mô hình dịch vụ SaaS, đơn giản là vì bạn không phân biệt được đó là SaaS hay chỉ là một trang web bình thường. TopDev sẽ giới thiệu đến bạn 1 vài trang web SaaS trong các ngành nghề khác nhau như: trang vexere.com (hệ thống đặt vé xe khách), 1office.vn (nền tảng quản trị doanh nghiệp), videocv.vn (giải pháp phỏng vấn thông qua video), Amazon (trang mua sắm trực tuyến, Google (trang tìm kiếm), Adobe Creative Cloud (nền tảng Điện toán đám mây)… và còn nhiều nền tảng khác cho nhiều ngành nghề, nhu cầu khác nữa.
Có thể nói, SaaS hiện tại được phát triển với quy mô khá rộng, SaaS đã và đang phát triển rất mạnh tại thị trường nước ngoài. Chí nói đơn giản như sự phổ biến của Amazon và Google, có thể nói trên toàn thế giới rất ít ai không biết đến 2 ông lớn này. Thị trường SaaS tại Việt Nam tuy cũng đã có sự phát triển vượt bậc nhưng vẫn cần cố gắng rất nhiều mới có thể theo kịp thị trường thế giới.
Trong một bảng dự đoán thị trường SaaS 2022, các chuyên gia của BCC Research cho rằng thị trường công nghệ SaaS sẽ được định giá lên đến 94,9 tỷ USD vào năm 2022 (trước đó SaaS có giá 44,4 tỷ USD trong năm 2017).
Có thể thấy, chỉ trong vòng 5 năm mà tốc độ tăng trưởng và giá trị của thị trường SaaS đã tăng hơn gấp đôi, có nghĩa là CAGR (tốc độ tăng trưởng/năm) của thị trường SaaS rơi vào khoảng 16,4%/năm, đây thật sự là một số liệu tăng trưởng rất tuyệt vời của ngành.
Một trong những nguyên nhân chính có thể dẫn đến sự phát triển của SaaS có lẽ là do sự không giới hạn nhà cung cấp. Trong thị trường SaaS 2020, những ai có ý tưởng, tiềm năng, nguồn lực và tài nguyên điều có thể trở thành một công ty phần mềm dịch vụ SaaS.
Chính vì thế, SaaS có mặt trong rất nhiều ngành nghề là cho xu hướng của thị trường cung cấp dịch vụ SaaS 2020 sẽ đánh mạnh vào việc ưu tiên tích hợp giữa các dịch vụ SaaS với nhau thay vì độc lập phát triển. Việc tích hợp các dịch vụ SaaS với nhau giúp chúng có thể vận hành mượt mà, trơn tru hơn, tạo ra hiệu quả tốt hơn khi hoạt động độc lập chỉ với 1 dịch vụ SaaS.
Cũng chính vì lẽ đó nên thông thường 1 công ty SaaS thường phát triển rất nhiều dịch vụ SaaS khác nhau, có chức năng sử dụng độc lập và bổ trợ cho nhau. Theo báo cáo thống kê của BCC Research cứ trung bình 1 doanh nghiệp sẽ sở hữu 16 phần mềm (năm 2017).
Xu hướng thị trường cung cấp dịch vụ SaaS 2020 ở Việt Nam
Theo báo cáo thị trường IT Landscape 2020 cũng đã đưa ra 1 vài số liệu, mặc dù có những xu hướng sử dụng SaaS tại Việt Nam, song thị trường chưa thực sự hấp dẫn khi các công ty đất Việt còn khá cứng nhắc trong việc áp dụng thay đổi, chỉ 5-7% công ty đang ứng dụng SaaSaS. Tuy nhiên điều này cũng nói lên cơ hội cho các nhà cung cấp SaaS, họ cần đầu tư hơn về thời gian, về công sức và vốn trong quá trình giáo dục thị trường Việt Nam.
Nhìn qua bối cảnh hiện tại của các startup về B2B SaaS, phổ biến nhất là phần mềm quản lý bán lẻ và phần mềm chăm sóc khách hàng. Một số sản phẩm nổi bật khác thuộc các ngành HR, marketing, logistics, và cybersecurity.
Về dự án remote.vn: Trao đổi về dự án hỗ trợ doanh nghiệp trong giai đoạn dịch COVID-19 – Vietnam Remote Work, Bộ trưởng Thông tin và Truyền thông Nguyễn Mạnh Hùng cho biết: “Dịch Covid-19 lây lan là do tiếp xúc. Công nghệ số là không tiếp xúc.
Vì vậy, cơ hội lớn nhất lúc này là đẩy nhanh chuyển đổi số, là tạo ra các ứng dụng công nghệ số, là đưa mọi hoạt động sản xuất kinh doanh lên môi trường số.”
Ưu điểm
Với những lợi ích mà SaaS đem lại bằng việc tối ưu hóa sử dụng Internet, có thể thấy thị trường SaaS đang trở nên có tầm ảnh hưởng đối với ngành công nghệ. Trong đó có thể nói đếm một số ưu điểm như:
Tối ưu hóa chi phí cho doanh nghiệp
Ngoài việc hỗ trợ nghiệp vụ, thời gian, nhân sự cho doanh nghiệp mà SaaS còn hỗ trợ doanh nghiệp tiết kiệm rất nhiều chi phí cho các phần mềm hỗ trợ. Khi sử dụng SaaS doanh nghiệp không cần phải bỏ ra một khoản tiền lớn để mua các phần mềm.
Khi mua phần mềm, các doanh nghiệp sẽ phải thanh toán chi phí lắp đặt, đồng bộ hóa dữ liệu từ hệ thống với phần mềm, mua giấy phép sử dụng phần mềm…
Ví dụ, khi doanh nghiệp bạn muốn cài đặt phần mềm ERP, là phần mềm quản lý doanh nghiệp, bạn sẽ mất khoảng thời gian từ 1-4 ngày cho việc cài đặt, tích hợp phần mềm lên hệ thống của doanh nghiệp bạn, ngoài ra bạn còn phải tốn chi phí mua và chi phí bảo trì, nâng cấp…tổng các chi phí cho phần mềm quản lý ERP rơi vào khoảng 42 ngàn USD.
Trong khi đó nếu bạn sử dụng SaaS thì lại không như thế, cũng có cùng chung 1 chức năng nhưng người dùng chỉ cần đăng nhập trên nền tảng web là đã có thể sử dụng ngay mà không cần tốn thời gian cài đặt nhưng hiệu quả thì vẫn tốt
Đa số các mô hình chuẩn SaaS ngày nay đều có mục đích hướng người dùng đến 2 dạng: đó là dạng dùng thử (được tính theo lần hoặc ngày tùy công ty) hoàn toàn miễn phí, SaaSu thời gian dùng miễn phí bạn có thể nạp thêm tiền từng tháng để được sử dụng không giới hạn trong tháng và có thể unlock nhiều chức năng mở rộng hơn.
Dạng tiếp theo là dạng bán theo pack cho 1 hoặc nhiều tài khoản sử dụng chung trong 1 công ty, doanh nghiệp sử dụng có thể chọn gói mua theo tháng, quý hoặc năm tùy theo nhu cầu sử dụng có lâu dài hay không, vì thông thường để kích cầu doanh thu, các gói hạn mức 1 năm sẽ có giá và quyền lợi tốt hơn.
Các dịch vụ của SaaS còn có thể biến hóa dưới nhiều hình thức cung cấp các gói cơ bản, nâng cao và cao cấp để người dùng có thể lựa chọn. Khi bạn không còn nhu cầu sử dụng nữa bạn chỉ cần chọn ngưng sử dụng và ngưng thanh toán.
Điều đặc biệt khi sử dụng SaaS là bạn có thể chủ động đăng ký sử dụng và quyết định ngừng sử dụng chỉ trong “một nốt nhạc” mà không phải mất quá nhiều thời gian, qua nhiều loại thủ tục rườm rà.
Ví dụ: Kênh xem phim Netflix là một kênh xem phim chất lượng cao được cả thế giới biết đến với nhiều bộ phim độc quyền do chính Netflix sản xuất. Trong 1 vài năm trở lại đây Netflix đang dần chiếm lĩnh thị phần người xem phim tại Việt Nam và việc “share acc” trong Netflix là một điều không còn xa lạ nữa.
Netflix cho phép người xem đóng tiền hằng tháng cho 1 tài khoản, nhưng trong 1 tài khoản lại có thể truy cập được cùng lúc 4 thiết bị điện tử để xem phim trên đó. Vậy có nghĩa là chỉ với 1 khoản tiền hằng tháng mà cùng lúc có thể đến 4 người sử dụng. Đó là một trong những hướng đi thông minh của Netflix.
Như đã nói ở trên, ngoài việc tiết kiệm chi phí, doanh nghiệp cũng sẽ tiết kiệm được cả thời gian và nhân lực khi sử dụng mô hình SaaS. Đối với mô hình cũ on-premise, các doanh nghiệp thông thường mất trung khoảng 6 tháng để có thể vừa lên kế hoặc vừa triển khai và vừa cài đặt hoàn chỉnh hệ thống on-premise (đôi khi phải tạm dừng 1 vài bộ phần để cài đặt, mượn nhân lực của công ty để hỗ trợ cài đặt). Còn với mô hình SaaS thì chỉ mất thời gian từ 1-2 ngày để tạo, thiết lập tài khoản sử dụng cho các nhân viên và training nhân viên sử dụng hệ thống.
Cập nhật hệ thống, các tính năng công nghệ mới trong SaaS nhanh chóng
Trong quá trình sử dụng các tính năng từ bất kỳ hệ thống on-premise truyền thống hay SaaS thì đôi khi sẽ xảy ra một chút trục trặc trong việc vận hành. Đối với các doanh nghiệp lâu đời còn sử dụng các hệ thống on-premise thì chắc hẳn doanh nghiệp đó phải cần “nuôi dưỡng” bộ phận IT riêng trong công ty để giải quyết những trường hợp đó, hoặc trong trường hợp muốn nâng cấp phần mềm, tính năng mới, sửa lỗi bugs…
Ngược lại, đối với các doanh nghiệp sử dụng SaaS thì họ không cần phải tập trung và dành quá nhiều thời gian, nguồn vốn vào đó, vì đã có đội ngũ hỗ trợ từ các công ty cung cấp dịch vụ SaaS giúp họ làm điều này.
Điểm lợi nhất của SaaS đó là, các doanh nghiệp SaaS sẽ luôn muốn dịch vụ phần mềm của mình là tốt nhất nên sẽ luôn nâng cấp, cập nhật bản mới liên tục với nhiều tính năng mở rộng hơn để có thể thu hút thêm người dùng, họ thường xuyên tối ưu các tính năng cũ và bổ sung thêm nhiều tính năng mới.
Những doanh nghiệp sử dụng SaaS sẽ không cần phải mua hay cài đặt thêm bất kỳ phần mềm nào trên hệ thống nữa nhưng vẫn có thể sử dụng những tính năng mới đó chỉ nhờ vào việc update bản cũ lên bản mới thông qua đường truyền Internet.
Chính vì sự thuận tiện tiết kiệm ấy mà phần lớn các doanh nghiệp sử dụng SaaS điều là các doanh nghiệp vừa và nhỏ vừa mới startup.
Thuận tiện cho việc sử dụng, thao tác bất cứ nơi đâu
Khác với phần mềm on-premise, mỗi lần muốn sử dụng thì bạn phải thao tác trên đúng thiết bị đã được cài đặt trong hệ thống của công ty điển hình như máy tính để bàn tại công ty.
Hiện nay, các doanh nghiệp SaaS đều hỗ trợ người dùng truy cập bằng nhiều loại trình duyệt khác nhau như Google Chrome, Cốc Cốc, Firefox,… từ các thiết bị, hệ điều hành khác nhau như iOS, MacOS, Windows, Android
SaaS được phát triển dựa trên nền tảng sử dụng phần mềm trên web thông qua kết nối Internet. Khi bạn đăng ký sử dụng SaaS, các doanh nghiệp sẽ cấp cho tài khoản đăng ký của bạn (1 hoặc nhiều tài khoản tùy theo nhu cầu) quyền hạn để sử dụng, chính vì thế trong trường hợp người dùng muốn sử dụng SaaS thì chỉ cần bất kỳ thiết bị nào có chức năng online trên trình duyệt là sẽ sử dụng được SaaS.
Có khả năng tích hợp, kết hợp với các phần mềm SaaS khác
Điểm mạnh tiếp theo của SaaS đó chính là SaaS cho phép các phần mềm trao đổi dữ liệu qua lại với nhau (trong cùng hoặc khác ứng dụng/ nhà cung cấp miễn là được cấp phép) và cho phép đồng nhất dữ liệu thông qua hệ thống API.
Với điểm mạnh này của SaaS doanh nghiệp sẽ có cơ hội tiếp cận với các công nghệ mới, nhận được những dự đoán từ nhiều ứng dụng, khía cạnh và giá trị khác nhau, làm tăng năng suất, hiệu quả công việc gia tăng.
Đối với phần mềm truyền thống, nó được tạo ra dựa trên nền tảng vận hành độc lập, không liên kết với bất kỳ ứng dụng nào khác. Chính vì thế nó thiếu đi sự linh động, tính kết nối, mở rộng từ đó cho ra năng suất, hiệu quả thấp hơn so với SaaS. Đút kết từ những điểm yếu của hệ thống cũ nên khi phát triển SaaS các nhà cung cấp cũng đã cố gắng đẩy mạnh, lấy chức năng tích hợp là điều kiện kiên quyết để phát triển.
Mở rộng/thu hẹp quy mô sử dụng đơn giản
Một trong những ưu điểm phải kể đến của cả Điện toán đám mây và SaaS là cả 2 đều có thể dễ dàng mở rộng quy mô sử dụng lên gấp đôi, gấp 3 hoặc bất kể bao nhiêu bạn muốn, các tài khoản dùng để sử dụng SaaS cũng dễ dàng tạo mà không hề ảnh hưởng hay cắt ngang đến tiến trình hoạt động, cơ sở dữ liệu hoặc cơ sở hạ tầng…Điều này khá “hợp ý” với các doanh nghiệp không muốn mất quá nhiều thời gian vào việc chờ đợi hệ thống vận hành.
Nhược điểm
Trên thực tế, dù nền công nghệ trong và ngoài nước hiện nay phát triển rất mạnh, nhưng bất kỳ nền công nghệ nào cũng có điểm yếu của nó, thị trường mô hình SaaS cũng có những nhược điểm riêng của nó.
Tính bảo mật
Điểm yếu của SaaS là tính bảo mật kém hơn so với các phần mềm on-premise. Khi sử dụng SaaS thì máy chủ được đặt ở phía nhà cung cấp SaaS, các nhà cung cấp ấy sẽ lưu trữ và bảo toàn dữ liệu của các doanh nghiệp trên đám mây nên nhiều doanh nghiệp đã lo sợ dữ liệu của mình sẽ bị biến mất hoặc bị hack, rò rỉ thông tin của công ty.
Việc SaaS không bảo mật tốt bằng SaaS cũng dễ hiểu vì các phần mềm on-premise được cài đặt và lưu trữ trên chính hệ thống của doanh nghiệp sử dụng, nếu có vấn đề rò rỉ thông tin thì phần lớn nguyên do đến từ chính phía doanh nghiệp đó.
Việc sử dụng phần mềm on-premise hay SaaS vẫn còn làm các doanh nghiệp nhức đầu nhưng khi thị trường Điện toán đám mây 2020 có sự phát triển vượt bậc, công nghệ 4.0 của Điện toán đám mây đã phần nào giải quyết được sự phân vân của các doanh nghiệp.
Với công nghệ mã hóa dữ liệu hiện đại cùng các điều khoản cam kết bảo mật đính kèm (Cam kết SLA) khi sử dụng đã phần nào làm giảm bớt rủi ro cho việc mất dữ liệu, rò rỉ thông tin… phần mềm SaaS đã ngày càng có chỗ đứng trong lòng các doanh nghiệp.
Vì là phần mềm được tạo trên nền tảng web nên người dùng muốn sử dụng SaaS phải truy cập vào web có kết nối mạng để có thể đăng nhập vào tài khoản có SaaS. Trong quá trình sử dụng, nếu đột nhiên đường truyền bị gián đoạn thì bạn cũng sẽ không sử dụng được nữa, bạn cũng sẽ không sử dụng đc SaaS trong trường hợp đang ở trên máy bay hoặc đang ở nơi không có mạng.
Đó cũng là một điểm yếu khi sử dụng SaaS đang được các nhà cung cấp cố gắng khắc phục tại thời điểm hiện tại bằng cách cung cấp thêm chức năng hỗ trợ cho việc sử dụng phần mềm SaaS dù đang ở ngoại tuyến.
Cập nhật tính năng nhiều
Điểm mạnh của SaaS là thường xuyên cập nhật tính năng mới và miễn phí nhưng đó cũng chính là điểm yếu của SaaS. Chính vì quá thường xuyên nâng cấp nên đôi khi các nhân viên chỉ mới vừa làm quen với phần mềm thì đã được cập nhật bản mới và phải làm quen lại từ đầu. Đối với các công ty có tỷ lệ nhân viên cao tuổi chiếm phần lớn, khó khăn trong việc tiếp nhận công nghệ mới mỗi ngày thì nên cân nhắc khi sử dụng.
Ngày 29/07/2020 vừa qua, Korea IT Cooperation Center tại TP. HCM (KICC HCMC) đã ký kết biên bản ghi nhớ cùng TopDev – Nền tảng tuyển dụng chuyên về IT hàng đầu Việt Nam, để hỗ trợ, hợp tác và thúc đẩy tuyển dụng việc làm công nghệ thông tin cho các Công ty IT Hàn Quốc tại Việt Nam và tạo thêm nhiều cơ hội để các tài năng IT Việt Nam sở hữu những tấm vé gia nhập vào các doanh nghiệp công nghệ hàng đầu của Hàn Quốc hiện đang có mặt tại Việt Nam.
Tên thương hiệu ‘BrickMate’ thể hiện rõ giá trị của chúng tôi. Việc xây dựng một tòa nhà mang tính bước ngoặt bắt đầu bằng một ‘Brick’.
Trụ sở chính của chúng tôi có trụ sở tại Gangnam, Seoul, Hàn Quốc, một trong những trung tâm công nghệ tiên tiến nhất trên thế giới. Trung tâm xây dựng của chúng tôi được đặt tại Thành phố Hồ Chí Minh, Việt Nam – một trong những trung tâm gia công phần mềm CNTT mới nổi nhất thế giới
Chúng tôi có thể làm việc trong bất kỳ môi trường nào, nhưng chúng tôi thường đề xuất phương pháp nhanh nhẹn / scrum của phát triển cho một số khách hàng để triển khai nhanh chóng và phản ứng với những thay đổi.
Tham khảo ngay các vị trí đang tuyển dụng tại công ty BMG:
NAVER mong muốn trở thành một nền tảng công nghệ cho phép tiếp cận rộng rãi các công nghệ tiên tiến. Đầu tư sâu vào sự thành công của nhiều cá nhân và đối tác liên quan đến NAVER, chúng tôi sẽ tiếp tục nâng cao khả năng cạnh tranh của mình, hướng tới tương lai
NAVER Corp. là một công ty CNTT-TT toàn cầu, cung cấp cổng tìm kiếm số một Hàn Quốc “NAVER” và các công ty con và chi nhánh của nó cung cấp các dịch vụ, bao gồm LINE messenger, ứng dụng camera SNOW, nền tảng truyện tranh kỹ thuật số NAVER WEBTOON, nền tảng truyền thông xã hội nhóm, NAVER BAND, và nền tảng metaverse ZEPETO.
Việc liên tục nghiên cứu và phát triển AI, rô bốt, di động và các xu hướng công nghệ khác trong tương lai đang thúc đẩy NAVER tiến lên, theo đuổi sự chuyển đổi và đổi mới của các nền tảng công nghệ, đồng thời vẫn dành cho mô hình tăng trưởng chung, chung tay với người dùng từ cộng đồng toàn cầu cũng như một số lượng lớn các quan hệ đối tác. Năm 2018, NAVER được Forbes xếp hạng là công ty sáng tạo thứ 9 và top 50 công ty trong tương lai thứ 6 do tạp chí Fortune bình chọn.
MintPot Vina được thành lập vào nửa cuối năm 2019, có trụ sở chính tại Seoul, Hàn Quốc. Là công ty SI, chuyên gia công các dự án Web, App, VR.
Mintpot đã phát triển thông qua các dự án với nhiều công ty khác nhau như Samsung Electronics, Hanwha, SKT, KT và LG
Từ khâu lập kế hoạch đến phát triển, Mint Pot đều do các chuyên gia nội bộ thực hiện.
Một nhóm QA chịu trách nhiệm kiểm tra chất lượng của 3 nhóm phát triển, và nhóm
thiết kế, nhóm lập kế hoạch, nhóm PM và 2 nhóm phát triển đang làm việc cùng nhau trong dự án, vì vậy nó có tính hệ thống
Cái tên đầu tiên xuất hiện trong danh sách các công ty IT Hàn Quốc tại Việt Nam chính là LOTTE Data Communication Company Vietnam. Qua hơn 1 thập kỷ hoạt động, công ty tự hào cung cấp các giải pháp và Dịch vụ IT chất lượng cho các công ty con thuộc Tập đoàn LOTTE đang kinh doanh tại Việt Nam.
Với đội ngũ chuyên gia đến từ Hàn Quốc cùng với những Kỹ sư nhiều kinh nghiệm trong nước, LOTTE Data Communication Company Vietnam luôn được tin cậy bởi Đối tác và Khách hàng. Hiện công ty đã phát triển thành công nhiều dự án lớn thuộc nhiều lĩnh vực: Triển khai hệ thống ra vào cho cao ốc, An Ninh nhận diện khuôn mặt, Smart Parking, Thu phí tự động, Way finding, Retail, Core Banking, Giải pháp Chứng khoán T- Solution,…
Bên cạnh những dự án và công nghệ hàng đầu, LOTTE Data Communication Company Vietnam cũng là một trong những công ty IT Hàn Quốc tại VIệt Nam thu hút lượng lớn đội ngũ chuyên gia, kỹ sư tài năng gia nhập bởi chính sách đãi ngộ hấp dẫn.
>>> LOTTE Data Communication Company Vietnam luôn rộng mở, tạo điều kiện cho các nhân tài công nghệ gia nhập. Nếu bạn mong muốn LOTTE Data Communication Company Vietnam là “bến đỗ” cho sự nghiệp.
4. Woowa Brothers
Woowa Brothers là startup kỳ lân số 1 tại Hàn Quốc, chính thức gia nhập vào thị trường Việt Nam vào năm 2019 với sản phẩm đặc trưng – Ứng dụng giao nhận thức ăn BEAMIN. Dù mới ra mắt không lâu tại Việt Nam, sản phẩm BEAMIN đã thành công trong việc lấy được tình cảm người dùng Việt bằng hình ảnh thương hiệu và thông điệp truyền thông vô cùng “nội địa”.
Với bề dày kinh nghiệm nhiều năm hoạt động tại Hàn Quốc, hiện ứng dụng BEAMIN đã có hơn 1 triệu lượt tải xuống, hứa hẹn “phá đảo” thị trường giao thức ăn tại Việt Nam trong tương lai.
Và bạn đang mong muốn thử thách năng lực của bản thân qua các ứng dụng có lượng users lớn? Woowa Brothers chính là lựa chọn đúng đắn cho bạn!
DataStreams Asialà doanh nghiệp Hàn Quốc chuyên về quản lý dữ liệu, hiện đang dẫn đầu thị trường về tích hợp dữ liệu và quản lý chất lượng dữ liệu. Với công nghệ và đội ngũ chuyên môn có trình độ tốt, DataStreams Asia tự hào đã đưa ra các giải pháp với hiệu suất cao giúp xử lý và quản lý dữ liệu an toàn và hiệu quả.
Tính đến nay, Datastreams Asia đã thành lập nhiều chi nhánh ở Mỹ, Trung Quốc, Nhật Bản, Việt Nam…và đang dần dần mở rộng thị trường ra nước ngoài thông qua hợp tác với các đối tác toàn cầu như doanh nghiệp phát triển ứng dụng, công ty tư vấn công nghệ thông tin, đại lý…
Với nhu cầu mở rộng phát triển tại thị trường Việt Nam, DataStreams Asia đang chiêu mộ các nhân tài công nghệ gia nhập. Nếu bạn yêu thích lĩnh vực Dữ liệu hoặc đang tìm kiếm cơ hội tiếp xúc các công nghệ hot như ioT, big data,…thì DataStreams Asia chính là điểm đến phù hợp dành cho bạn.
>>> Nhiều cơ hội hấp dẫn như onsite, đào tạo kỹ thuật tại Hàn Quốc vẫn đang chờ, khám phá tại Datastreams Asia
6. POSCO ICT Vietnam
POSCO ICT Vietnam là thành viên của tập đoàn Thép POSCO Hàn Quốc. Với gần 10 năm hoạt động tại Việt Nam, công ty tự hào là đối tác tham gia nhiều dự án lớn như nhà máy thép POSCO VST, POSCO SS-VINA, Dự án nhà máy thép Formosa Hà Tĩnh, Dự án tàu điện ngầm Thành phố Hồ Chí Minh…
Không dừng lại ở đó, POSCO ICT Vietnam luôn tìm kiếm nhiều cơ hội đổi mới, hướng đến mục tiêu phát triển cao hơn. Điều đó được thể hiện thông qua sự hợp tác với các tập đoàn, viện nghiên cứu, doanh nghiệp trong nước và quốc tế, để nỗ lực tìm kiếm, phát triển và đổi mới nhằm mang lại giá trị tốt hơn cho khách hàng.
Để chinh phục được mục tiêu trong tương lai, POSCO ICT Vietnam luôn tìm kiếm những tài năng công nghệ gia nhập vào ngôi nhà chung.
>>> Bạn muốn là một trong những nhân tố quan trọng góp phần làm nên thành công của POSCP ICT Vietnam?
CyberLogitec Vietnam là một Offshore Development Center chuyên cung cấp các dịch vụ và giải pháp Công nghệ thông tin cho các doanh nghiệp thuộc lĩnh vực logistics business: vận tải biển, bến bãi, kho bãi, vận tải đường bộ và giao nhận. Với hơn 10 năm kinh nghiệm trong ngành, công ty tự hào đã mở rộng quy mô hoạt động tại hơn nhiều quốc gia trên thế giới: Hàn Quốc, Mỹ, Thái Lan, Trung Quốc, Ả Rập Xê Út, Thổ Nhĩ Kỳ, UAE, Malaysia, Ấn Độ, Nhật Bản, Brazil và Singapore.
Đến với CyberLogitec, bạn sẽ được hòa nhập vào môi trường quốc tế và được thử thách năng lực của bản thân khi chinh chiến với các dự án quốc tế. Ngoài ra, đây chính là cơ hội giúp bạn tiếp thu thêm nhiều kiến thức mới về Logistics và hệ thống quản lý chuyên nghiệp thông qua quá trình thực hiện dự án.
>>> Bùng nổ năng lực tại CyberLogitec ngay hôm nay
8. Lecle Vietnam
Lecle Vietnam – Công ty phần mềm toàn cầu có trụ sở tại Hàn Quốc và văn phòng tại 3 quốc gia khác trên thế giới: Mỹ, Singapore và Việt Nam. Với phương châm “We work and enjoy hard”, Lecle Vietnam luôn cố gắng tạo ra một môi trường làm việc đáng mơ ước, nơi mà mỗi thành viên trong công ty vừa có thể tích lũy kinh nghiệm giúp phát triển sự nghiệp và vừa có thể gắn kết cùng nhau thông qua các hoạt động vui chơi cùng nhau.
Bên cạnh đó, với những phúc lợi hấp dẫn như: lương cao, cấp macbook, cơ hội onsite tại Hàn Quốc, các chương trình training nâng cao tay nghề,…Lecle Vietnam được xem là điểm đến đáng mơ ước dành cho các lập trình viên Việt.
>>> Nếu bạn là một trong số lập trình viên Việt yêu thích môi trường làm việc tại Lecle Vietnam, đừng quên nắm bắt cơ hội gia nhập ngay hôm nay
9. Hanbiro
Hanbiro là công ty công nghệ với 100% nguồn vốn đầu tư từ công ty mẹ ở Hàn Quốc, chuyên cung cấp dịch vụ như Server Hosting, Email, Clouddisk, Groupware, CRM…cho các doanh nghiệp vừa và nhỏ. Hiện công ty đã có 5 chi nhánh trên thế giới: Hàn Quốc, Việt Nam, Nhật Bản, Mỹ và Trung Quốc.
Đến với Hanbiro, bạn có thể tận hưởng môi trường làm việc sáng tạo và năng động luôn khuyến khích tạo ra những suy nghĩ khác biệt và thử tạo ra những điều mới mẻ. Bên cạnh đó, bạn sẽ được làm việc, học hỏi các kinh nghiệm quý báu từ các chuyên gia cao cấp đến từ Hàn Quốc. Và đừng quên, Hanbiro luôn có cơ hội onsite tại nước ngoài cho lập trình viên tài năng mong muốn phát triển năng lực bản thân trong môi trường quốc tế.
>>> Hãy trở thành nhân tố mới của đại gia đình Hanbiro để “do what you love and love what you do”.
Cùng với sự xuất hiện đầu tiên của 7 công ty IT Hàn Quốc trên đường đua công nghệ tại Việt Nam, ” cái bắt tay chiến lược” của KICC HCMC X TopDev sẽ còn mang đến cho cộng đồng IT Việt Nam nhiều cơ hội mới. Đừng quên chờ đón những bài viết tiếp theo cùng những cơ hội mới hấp dẫn bạn nhé!
________________________________
Dự án được hỗ trợ bởi Korea IT Cooperation Center tại TP. HCM (KICC HCMC) – thuộc Cơ quan Xúc tiến CNTT Hàn Quốc (NIPA), phối hợp cùng TopDev – Nền tảng tuyển dụng CNTT hàng đầu tại Việt Nam với mục đích thúc đẩy tuyển dụng việc làm CNTT cũng như quảng bá cho các công ty IT Hàn Quốc trong cộng đồng lập trình viên lớn nhất tại Việt Nam.
Liên hệ: Korea IT Cooperation Center tại TP. HCM (KICC HCMC)
Nhiều người băn khoăn về mức lương lập trình viên, họ sẽ kiếm được là bao nhiêu? Đó là thắc mắc chung của nhiều người, điều gì sẽ ảnh hưởng tới mức lương của bạn kinh nghiệm? Tạo một chiếc CV đẹp và chất? Về bản chất, có thể xem nó như một vấn đề xã hội vì câu chuyên về lương bổng của dân lập trình đã thu hút sự quan tâm lớn. Những bí mật nào sẽ được bật mí. Cùng TopDev theo dõi bài viết sau để có nhiều góc nhìn hơn về vấn đề này.
Vấn đề về mức lương lập trình viên, hiểu thế nào cho đúng
Cái nhìn về mức lương lập trình viên hiện nay liệu đã chính xác?
Nếu được hỏi tại mức lương hiện tại của ngành lập trình có tương xứng với công sức bỏ ra hay không? Câu trả lời chắc chắn là không.
Đại đa số họ nghĩ lương của ngành lập trình cao, thậm chí rất cao (overpaid). Thế nhưng, thực tế không như vậy nếu phân tích nhiều khía cạnh.
Để có thể đánh giá chính xác giá trị lương, ngoài lương cứng, bạn nên quan tâm sâu sắc đến lương lậu và những công sức mà bạn đã bỏ ra.
Lương cứng: chính là lương bạn nhận được từ công việc. Điều này không có gì bàn cãi.
Lương lậu: được xem là mức lương bạn kiếm được từ bên ngoài. Lương này chính là lương nỗ lực thêm vì các mục tiêu khác mà bạn theo đuổi.
Những công sức bạn bỏ ra: Chính là mức hạn định phản ánh lại cách bạn vượt ra áp lực, đối mặt với những thách thức, tính cao độ và chuyên tâm trong hành trình thu nạp kiến thức ngành lập trình,…
Những nhầm tưởng của người ngoài cuộc
Từ cách phân tích lương chính như trên, nếu áp vào thực tế bạn có thể nhận thấy lương của ngành lập trình thật sự không cao. Tại sao lại như thế? Những lầm tưởng tạo ra sự so sánh chủ quan khiến chính những anh em lập trình càng thêm áp lực.
Người ngoài cuộc luôn bị thổi phồng bởi những định hướng của báo chí. Các bạn nên hiểu rằng, trong chính ngành lập trình lương cũng có những sự chênh lệch. Cụ thể, bạn tốn quá nhiều công sức nhưng mức lương chỉ bằng hoặc thấp hơn những vị trí công việc của các ngành khác.
Lấy một minh chứng cụ thể, bạn có thể thấy rõ khi các app di động nổi lên, trở thành một hiện tượng. Các hình thức Android, Java dường như dễ code hơn các Web Service. Điều này có nghĩa là lập trình viên mobile dễ hơn lập trình web. Tuy vậy, mức thu thập của lập trình viên mobile lại cao hơn hoặc ngang bằng lập trình web. Điều này tạo ra sự chênh lệch trong chính những phân nhánh nhỏ của ngành lập trình.
Bàn cân ngành lập trình: Lương – Giá trị từ những công sức?
Câu chuyện về lương sàn
Lương sàn, lương khởi điểm luôn của ngành lập trình đều được nhiều người quan tâm. Chúng ta cùng xem qua lương của một số vị trí.
Có thể thấy, mức lương cho 1 vị trí ngành lập trình sẽ dao động từ khoảng 8-12tr với người dưới 2 năm kinh nghiệm. Điều này đồng nghĩa một sinh viên mới ra trường hoàn toàn có thể đạt được mức lương như ý này.
Đến đây chúng ta sẽ nhận định 8-12tr là quá tốt cho một bạn trẻ vừa mới đi làm. Sự lý tưởng đó nhiều người phải thèm khát có được. Và chính điều này vô hình tạo ra một vẻ đẹp cho ngành lập trình. Từ đây các câu chuyện thổi phồng về lương bắt đầu lớn dần hơn.
Các vị trí có mức lương như thế nào?
TopDev đã tổng hợp các vị trí tương ứng với các mức lương để người đọc có cái nhìn cụ thể nhất về vấn đề lương.
Mức lượng hiện tại vẫn có thể sẽ biến động khi những yếu tố xã hội ảnh hưởng. Trên hết, đó là những mức đang ổn định. Tuy vậy, đằng sau những con số đáng mơ ước đấy là cả hành trình của những nỗ lực.
Hãy hiểu tin tường, đừng bị “dắt mũi” bởi dư luận
Chúng ta không chỉ xem xét một khía cạnh, hãy dùng con mắt tinh tường mà phán xét.
Nhiều người nghĩ nó là mức lương cao so với các ngành khác. Đúng, đó là sự thật không có gì phải tranh cãi.
Thế nhưng, đối với những người làm lập trình, mức lương ấy chỉ là cơ bản. Thỏa mãn tương xứng với những nỗ lực họ bỏ ra khi quyết tâm theo đuổi lĩnh vực này. Hãy nghĩ xem các ngành nghề khác, mặc bằng chung lương khởi điểm có thể là 5-8tr nhưng những áp lực họ trải qua liệu có thể so sánh với anh em trong ngành lập trình?
Hoàn toàn không thể so sánh như vậy được. Trước khi có được con số 8-12tr, người làm lập trình cần phải có kiến thức đủ giỏi và những trải nghiệm đủ dày dặn để có thể đáp ứng nhu cầu công việc. Họ cần cọ xát thực tế trước khi rơi vào guồng quay với những lăn xả đặc thù ngành.
Bạn có biết họ đã “sống sót” trong ngành lập trình như thế nào hay không? Biết bao áp lực. Mỗi ngày là một cơn stress khác nhau. Chưa kể họ phải luôn nâng cấp, cải tiến chính mình để không bị lạc hậu về chuyên môn lẫn tư duy lập trình. Nào là kiến thức chuyên môn, nào là các kỹ năng đánh giá hiệu suất, kỹ năng mềm,…
Sở hữu mức lương 8-12tr đối với họ không phải nhiều mà là cái tất nhiên được nhận. Vì thế, đừng đặt cho họ gánh nặng rằng lương 8-12tr là siêu cao.
Khía cạnh về lương lậu cần được quan tâm
Nhiều người thuộc các cấp cao nhất trong ngành lập trình với kinh nghiệm lâu năm, dường như không quá khó để có những mức lương lên đến hơn 50tr. Lại một lần nữa bạn tưởng rằng đó là con số quá cao chăng.
Báo cáo về các mức lương 2020 của ngành lập trình
Tuy nhiên, rất tiếc bạn lại sai lầm một lần nữa. Nhiều người thuộc các cấp cao của lĩnh vực khác ngành lập trình có thể sở hữu số giá trị lương lên đến hơn cả cả trăm triệu. Bạn có bất ngờ không, đừng quá ngạc nhiên vì đó là sự thật.
Điều này phụ thuộc vào một yếu tố đó chính là trải nghiệm đa ngành. Cùng một số năm kinh nghiệm nhưng tại sao lương của ngành lập trình lại bằng hoặc thấp hơn.
Sự thua thiệt về trải nghiệm đa ngành?
Nhiều người nghĩ rằng người làm lập trình dễ dàng tạo ra các sản phẩm cho mình. Đồng thời sử dụng để tạo ra lương lậu (mức lương về giá trị nỗ lực thêm). Thực tế, việc tạo ra sản phẩm là một chuyên đơn giản. Thế nhưng, mấu chốt ở chỗ làm sao để xây dựng kế hoạch marketing, kinh doanh nhằm mục đích vận hành, quảng bá và bán sản phẩm.
Đặc thù chung, các bạn ngành lập trình đều bị zero về vấn đề này. Nếu có biết cũng dừng ở mức cơ bản. Đây được xem là hệ quả nảy sinh từ những áp lực nảy sinh. Họ phải đối mặt với áp lực từ chính kiến thức chuyên môn của mình. Đó là lý do họ không có thời gian để học thêm những cái mới thuộc các nhóm ngành khác.
Ngược lại, những bạn ngành khác lại dễ dàng có nhiều cơ hội hơn. Thời gian là thứ quan trọng và là lợi thế lớn giúp họ trải nghiệm với cái mới. Họ tiếp thu được nhiều hơn những kiến thức đa ngành và mối liên quan giữa các ngành có liên quan. Tất cả đều hướng đến sự phát triển và thăng tiến toàn diện.
Lời kết
Đến đây, chúng ta có thể kết luận mức lương ngành lập trình so với các ngành khác chưa thật sự cao nếu xét về những giá trị về công sức. Họ bỏ ra công sức quá nhiều, đánh đổi nhiều thứ vì đam mê. Chúng ta hãy tôn trọng và đừng phán xét về mức lương của họ.
Nếu chúng ta cứ nhìn nhận một cách phóng đại, không chỉ tạo ra áp lực lên bản thân những người làm lập trình, mà còn làm giảm đi mức lương hiện tại một ngày không xa. Vì chính truyền thông đã tạo ra vẻ hào nhoáng về mức lương cho ngành lập trình. Dư luận đã rất thành công khi ngành này đã trở thành xu hướng. Nhưng liệu nó có tiếp tục được duy trì khi câu chuyện thật sự về ngành lập trình được vén màn? Không gì là không thể. TopDev hy vọng bài viết này sẽ giúp mọi người hiểu hơn về mức thu nhập của ngành lập trình chỉ nằm ở tầm trung và nỗ lực chính là cách để họ tự tạo giá trị cho bản thân mình.
Có một ông bạn nọ có cái blog ở trên mạng, cũng có dăm bảy người vào đọc. Tánh ổng không thích học sâu, chỉ thích học rộng, mà lẽ đời, học rộng mà không sâu thì viết bài nào cũng hỏng. Cho nên bài nào ổng viết ra cũng không sai chỗ này thì cũng lỗi chỗ kia. Cơ mà ổng đâu có biết.
Chỉ tội cho những người theo dõi blog của ổng, thấy bài sai be bét mà không làm gì được vì không có phương tiện gì để họ góp ý ngay trên blog. Cũng có mấy người quan tâm, ráng tìm cho bằng được cái địa chỉ email để mà góp ý (comment).
Thế rồi ổng cũng sắm cho blog một cái nút comment,
Thời đó người ta toàn xài Disqus, thế là ổng cũng xài Disqus.
Thế rồi theo phong trào, người ta bắt đầu nói nhiều đến những mặt trái của Disqus, ổng cũng học đòi, nghỉ chơi với Disqus, và tự build một cái chức năng comment riêng cho blog.
Ổng build cái chức năng comment này bằng Rust, mà thực ra nó chỉ là một cái REST API chỉ có 2 endpoints để list danh sách các comment và post comment mới.
Bài toán đặt ra
Để comment thì người ta cần phải login, vốn là một con người lười biếng, ổng xài luôn dịch vụ login của Google, đỡ phải build authentication system rồi đau đầu với việc lưu trữ thông tin người dùng. Phía frontend chỉ cần lấy ra tên hiển thị (display name) và hình ảnh đại diện (profile picture) của user đã đăng nhập, cho nó vào comment payload và gửi đi.
Và cũng vì là một con người lười biếng, ổng biết ai rồi cũng sẽ lười biếng. Nên rất có thể người ta sẽ chẳng thèm comment luôn, vì phải tốn thêm một bước login. Thế nên ổng quyết định, bên cạnh việc login, ổng sẽ cho phép người ta comment mà không cần login luôn. Trong trường hợp này, phía frontend sẽ gán display name thành “Không Tên”, và profile picture sẽ là ảnh con Vô Diện (Kaonashi) trong phim Spirited Away. Hợp lý quá chừng.
Nhưng cũng lại vì, vốn là một con người lười biếng, nên ổng code cái comment API mà không thèm áp dụng bất kì một hình thức bảo vệ nào cho cái API đó. Suy cho cùng, đó cũng không hẳn là lười biếng, chỉ là ổng đã quá tin tưởng vào các bạn độc giả.
Thế là từ đó, cứ dăm ba bữa, ổng lại phải ngồi hì hục xóa comment của các bạn độc giả dễ thương, vô tình view source của blog và phát hiện ra cái comment API hớ hênh, viết luôn script comment tự động với tốc độ ánh sáng.
Nói cho công bằng thì có đến 2 loại nghịch ngợm thường gặp từ khi có cái chức năng comment:
Loại mất công:
Là những comment không có nội dung gì, và các thanh niên thường kiên nhẫn tự mình spam vào ô comment rồi bấm submit.
Loại tự động hóa:
Phát huy tinh thần công nghệ bốn chấm không, các bạn thường viết script gửi request tự động submit comment với số lượng lớn và cường độ cao.
Loại thứ nhất thì ổng quan niệm là, vì người ta đã bỏ công ra spam một cách thủ công, thật là thất lễ nếu chúng ta không xử lý bằng một cách mất công tương tự:
Đối với các đối tượng sử dụng công nghệ 4.0, thì cũng phải dùng 4.0 để xử lý.
Thực ra thì cũng cần phải mạnh dạn tự kiểm điểm một tí, gốc rễ của vấn đề đến từ việc chủ nhà không chịu đưa ra các biện pháp để giữ nhà. Cho nên giải pháp khắc phục là, làm sao để hạn chế được khả năng spam nhưng phải bảo đảm rằng, chỉ cần việc comment thực sự được thực hiên bởi người đọc – không phải máy tính, thì vẫn sẽ ghi nhận đó là comment hợp lệ.
Có rất nhiều phương án khắc phục được đưa ra:
Sử dụng một token thay đổi sau mỗi lượt comment để xác minh tính hợp lý của việc comment
Giới hạn tần suất gọi API comment (rate limiting)
Cấu hình server để chỉ chấp nhận request từ thefullsnack.com
Đặt ra challenge để xác minh “tính người” mỗi khi comment
Sử dụng AI để ngăn chặn spam (Anonymous Indian, không phải Artificial Intelligence)
Năn nỉ user đừng có spam nữa
Gắn banner cảnh báo nếu spam thì sẽ bị báo công an
…
Sau khi cân nhắc ưu, nhược điểm giữa các phương án, ông blogger quyết định sẽ sử dụng phương pháp challenge, nhưng vốn là một người lười biếng, ổng biết nếu cứ bắt người ta gõ captcha mỗi lần comment thì họ sẽ chọn cách không thèm comment nữa.
Rất may, Google reCAPTCHA có một hình thức xác minh khá hay đó là captcha ẩn.
Với hình thức này, Google sẽ dựa trên nhiều yếu tố khác nhau để xác định request được gửi đi có xuất phát từ một hành động thực tế của một user không, hay là xảy ra tự động. Việc tích hợp invisible captcha vào hệ thống sẵn có cũng khá đơn giản:
Khi phía frontend chuẩn bị gửi comment request, thì phải gửi một request đến Google reCAPTCHA trước, nhận về một mã xác thực, rồi mới gửi mã xác thực này kèm với comment request.
Việc xử lý comment request ở phía server cũng phải thực hiện một bước xác minh với server của Google, trước khi chấp nhận request từ phía user.
VietAI xin hân hạnh giới thiệu khóa học Trực Tuyến (Online) đầu tiên: HỌC MÁY CƠ BẢN – FOUNDATION OF MACHINE LEARNING – Course #01.
Giới thiệu khóa học
Theo báo cáo mới nhất về những việc làm triển vọng của Linkedin năm 2020, kỹ sư Học Máy (Machine Learning – ML) và kỹ sư Trí Tuệ Nhân Tạo (Artificial Intelligence – AI) đứng đầu bảng với nhu cầu tuyển dụng tăng trưởng 74% mỗi năm trong 4 năm gần với mức lương cao mơ ước.
Tại Việt Nam, nguồn nhân lực làm việc trong lĩnh vực ML – AI chỉ đáp ứng được 10% nhu cầu thị trường Việt Nam.
Có rất nhiều bạn trẻ mong muốn được bắt đầu bước chân vào lĩnh vực mới mẻ và đầy tiềm năng này nhưng không biết bắt đầu từ đâu? Và bắt đầu học kiến thức gì?
Các bạn mong muốn kiến thức sau khi học có thể ứng dụng vào công việc và giúp cho các bạn tiếp tục học nâng cao và chuyên sâu trong những chuyên ngành: Thị Giác Máy Tính (Computer Vision) hay Xử Lý Ngôn Ngữ Tự Nhiên (Natural Language Processing) vv.
Học viên ở xa Hồ Chí Minh, Hà Nội và không có điều kiện tham gia học trên lớp?
Khóa học Online ra đời để các bạn có thể bắt đầu xây dựng nền tảng học máy vững chắc cho tương lai!
Tại sao các bạn nên tham gia khóa học này?
Khóa học này được thiết kế dựa trên những kiến thức toán và lập trình nền tảng mà mọi người từ sinh viên cho đến những kỹ sư ở các lĩnh vực khác nhau đều có thể học được.
Học trực tuyến, học viên có thể học ở bất cứ đâu và bất kỳ lúc nào. Không chỉ dừng lại ở việc học bằng cách xem những video được ghi hình sẵn, học viên còn được trực tiếp gặp gỡ, học hỏi và trao đổi với Giảng Viên, trợ giảng thông qua Webinar định kỳ trong suốt khóa học.
Giảng viên, Cố vấn giàu chuyên môn là các Phó giáo sư, Tiến sĩ, các chuyên gia hàng đầu trong ngành. Đặc biệt, khóa học còn đặc biệt nhận được sự tài trợ bởi Google và FPT AI.
Bạn học được gì từ khóa học này?
Những kiến thức toán và lập trình nền tảng của Học máy và Trí tuệ nhân tạo.
Hiểu và thực hành các bài toán điển hình trong Học máy: Hồi quy tuyến tính. Bài toán phân loại nhị phân. Mạng nơ-ron (Neural Network) cơ bản và những ứng dụng.
Áp dụng kiến thức ML vào để giải quyết những vấn đề gần gũi với cuộc sống hàng này sau mỗi bài giảng.
Kiến thức được cập nhật và giảng dạy chương trình mới nhất từ trung tâm Công nghệ Trí tuệ nhân tạo – thung lũng Silicon (Mỹ) – nhưng được chuẩn hóa theo bối cảnh Việt Nam.
Hãy nhanh tay đăng ký để trở thành những học viên đầu tiên và nhận nhiều ưu đãi
10 suất học bổng dành cho Học viên Nữ (trị giá 50% học phí của khóa học)
05 suất học bổng dành cho các sinh viên xuất sắc nhất (trị giá 50% học phí của khóa học)
10 thẻ ELSA Speak premium – Thành viên 1 năm – trị giá $75 cho các sinh viên suất xắc nhất.
Còn chần chừ gì nữa ? Mọi thông tin chi tiết về khóa học đều có thể tìm thấy ở đây: https://ml.vietai.org/
Dù đang là sinh viên hay đã làm việc trong ngành công nghệ thông tin về mảng lập trình web thì những gì mình sắp giới thiệu dưới đây đều là những kỹ năng thiết thực và quan trọng để bạn trở thành 1 lập trình viên frontend tốt hơn cũng như giúp bạn tìm 1 công việc phù hợp ưng ý được dễ dàng khi hầu hết các công ty đều yêu cầu các kĩ năng này khi tuyển dụng.
Lập trình viên frontend là gì?
Trong các bài viết trước, mình đã giới thiệu đến các bạn 7 hướng đi của 1 lập trình viên web cũng như lộ trình trong sự nghiệp lập trình viên web cho những ai còn đang phân vân chưa biết mình nên trở thành 1 frontend, backend hay devops thì hôm nay mình chỉ tập trung nói về lập trình viên frontend. Chúng ta bắt đầu thôi: Để bạn có cái nhìn rõ hơn mình xin giới thiệu sơ về mảng lập trình web 1 chút, cơ bản gồm 2 phần chính, với yêu cầu những kỹ năng, kiến thức công nghệ khác nhau: frontend sẽ là thứ người dùng tương tác trực tiếp (user interface – giao diện người dùng) và backend là những gì đằng sau nó và làm cho 1 website hoạt động. Tóm lại, frontend sẽ chăm sóc ‘client-side’, còn backend chính là ‘server-side’. Nếu ví von 1 trang web như cơ thể người thì HTML sẽ là khung xương, phần cơ bản nhất. Để cơ thể vận động được cần có cơ và gân, hay để 1 dynamic web chạy cần có JavaScript và các ngôn ngữ lập trình khác. Cuối cùng để xem cơ thể đó xấu hay đẹp cần da thịt đắp lên hay nói cách khác muốn 1 website đẹp đẽ thì sẽ cần tới CSS để trang trí trang web đó được bắt mắt.
Điều này cần được phân biệt rõ để bạn có thể xác định những kỹ năng cần thiết cho 1 lập trình viên frontend.
10 kỹ năng phải có cho công việc lập trình viên frontend
HTML / CSS ⚡️
Thành thục HTML5, CSS3 là bắt buộc phải có. Mình biết chắc trong lúc tìm hiểu bạn đã thấy 2 cái tên này xuất hiện khắp nơi. Bạn sẽ không thể tìm được công việc lập trình frontend nào mà không yêu cầu việc sử dụng hiệu quả 2 ngôn ngữ này. Giờ hãy kể sơ qua về nó 1 chút nhé:
– HTML hay HyperText Markup Language là ngôn ngữ đánh dấu tiêu chuẩn được dùng để tạo các trang web. Ngôn ngữ đánh dấu là cách bạn ghi chú trong tài liệu kỹ thuật số để có thể được phân biệt với văn bản thông thường. Đây là phần cơ bản nhất bạn cần để phát triển 1 trang web. – CSS hay Cascading Style Sheets là ngôn ngữ định kiểu theo tầng được dùng để giới thiệu phần tài liệu bạn đã tạo với HTML. HTML đến trước tiên để tạo nền tảng cho trang web, CSS tiếp đó được dùng để tạo layout, màu sắc, font chữ và style cho trang web của bạn. Cả 2 ngôn ngữ này rõ ràng rất thiết thực để bạn trở thành 1 lập trình viên frontend. Nói gọn hơn nữa rằng nếu không có HTML/CSS thì sẽ không có lập trình web. Mẹo nhỏ xíu : Bạn nên comment trong code của mình từ khi viết HTML, tuy dài và công phu hơn nhưng mọi chuyện sau cùng sẽ dễ dàng hơn.
1 công cụ quan trọng khác trong bộ đồ nghề frontend của bạn chính là JavaScript (JS). Trong khi HTML là ngôn ngữ đánh dấu và CSS là ngôn ngữ định kiểu, thì JS mới chính là ngôn ngữ lập trình thực thụ. Điểm khác nhau là gì? Nếu HTML và CSS quyết định phần trình bày của 1 trang web, thì JS sẽ quyết định phần chức năng.
Trong vài trường hợp nhất định, 1 trang web siêu đơn giản có thể sẽ không cần tới, nhưng trong trường hợp bạn cần các tính năng tương tác như âm thanh, video, trò chơi, khả năng cuộn, hoạt ảnh trên trang thì JS chính là công cụ bạn sẽ dùng để triển khai chúng. (Hiện tại CSS cũng đã được phát triển để có khả năng xử lý 1 vài tác vụ này rồi.) Bạn không cần phải vội vàng trong việc sớm thành thạo jQuery hay những framework khác, vì không hề đơn giản. Hãy thử những gì cơ bản nhất như tìm hiểu kỹ DOM, 1 phần không thể thiếu trong việc lập trình web, mình xin giới thiệu 1 chút về các thành phần DOM:
DOM document: lưu trữ toàn bộ thành phần trong tài liệu của trang web.
DOM element: truy xuất đến 1 thẻ HTML thông qua các thuộc tính như id, tên class, tên thẻ HTML.
DOM HTML: thay đổi giá trị nội dung và thuộc tính các thẻ HTML
DOM Event: gán các sự kiện như onclick(), onload() vào thẻ HTML
DOM Listener: lắng nghe các sự kiên tác động lên 1 thẻ HTML
DOM Navigation: quản lý, thao tác với thẻ HTML, thể hiện mối quan hệ cha và con của các thẻ HTML
DOM Node, Nodelist: thao tác với HTML thông qua object.
1 điểm nổi trội để giúp JS trở nên cần thiết là nhờ vào sự tồn tại của các thư viện như jQuery, 1 bộ sưu tập các plugin và extension làm nó nhanh và dễ sử dụng JS hơn trên web của bạn. jQuery sẽ nhận các tác vụ thông thường vốn yêu cầu nhiều dòng code JS và nén chúng vào 1 format mà có thể thực thi được chỉ trong 1 dòng code duy nhất. Đây là sẽ lợi thế lớn khi bạn dùng JS, trừ khi… bạn không thích tiết kiệm thời gian (mình đùa thôi).
CSS và các framework JavaScript là các bộ sưu tập của các file CSS hay JS mà sẽ làm khá nhiều việc cho bạn bằng việc cung cấp chứng năng thường gặp (như đăng nhập vào 1 trang web hay tìm kiếm blog). Thay vì bắt đầu bằng 1 tài liệu văn bản trống thì bạn bắt đầu bằng 1 file code mà đã có sẵn khá nhiều JS tuyệt vời trong nó rồi.
Các framework thật ra cũng có điểm mạnh và điểm yếu của nó, và thực sự quan trọng để chọn framework tốt nhất cho loại website bạn muốn dựng. Ví dụ: vài framework JS khá tuyệt cho việc dựng phần giao diện người dùng phức tạp, trong khi những cái khác lại xuất sắc trong việc hiển thị tất cả nội dung trang web của bạn.
Tuyệt hơn nữa là bạn có thể dùng nhiều framework cùng nhau. Việc xài cặp Bootstrap với framework JS khác như AngularJS là chuyện bình thường. Phần nội dung sẽ được chăm sóc bởi Angular và phần giao diện với Bootstrap (và 1 ít CSS trong đó nữa).
Vì bạn sẽ dùng CSS và JS suốt trong sự nghiệp lập trình web của mình, cũng như nhiều dự án sẽ bắt đầu với các yếu tố style và code tương tự, nên có kiến thức thâm sâu về những framework này sẽ cực kì hữu ích cho bạn trong việc trở thành 1 lập trình viên web có năng lực được các công ty chào đón.
Ngoài ra, mình cũng xin giới thiệu sơ về 1 framework nổi tiếng về responsive mà mình đã nhắc tới ở trên là Bootstrap. Phải công nhận là mọi thứ điều trở nên thuận tiện và dễ dàng hơn cùng Bootstrap, và gần như trở thành 1 thứ không thể thiếu khi làm responsive nên việc thành thục nó là điều rất tuyệt.
Tuy nhiên, nó khá nặng và trong vài trường hợp đặc biệt không sử dụng được bạn sẽ phải tự viết CSS, nên hãy làm chủ kỹ năng CSS của mình ngay từ đầu. Theo mình cách tốt nhất là nên sử dụng nó 1 cách hợp lý và đúng lúc.
Tiền xử lý CSS – CSS Preprocessing ⚡️
CSS Preprocessing
Thêm 1 kỹ năng cần thiết khác có liên quan tới CSS! CSS bản thân nó đã luôn cần thiết, nhưng cũng có đôi lúc bị giới hạn. 1 trong những giới hạn rõ nhất là bạn không thể xác định biến, chức năng hay thực thi các phép tính toán học.
Vốn là 1 vấn đề đáng ngại khi 1 dự án dần tăng trong khoản scale và code base, và bạn sẽ thấy mình tốn quá nhiều thời gian cho việc viết những code lặp đi lặp lại chỉ để thực hiện các thay đổi. Như các framework CSS (và JS), Tiền xử lý CSS cũng là 1 cách để làm cho công việc lập trình web của bạn được dễ dàng và linh hoạt hơn.
Sử dụng các bộ tiền xử lý CSS – CSS preprocessor như Sass, LESS hay Stylus, bạn sẽ có khả năng viết code bằng ngôn ngữ của bộ tiền xử lý (cho phép bạn được nhiều thứ vốn khá khó chịu với CSS cũ). Bộ tiền xử lý rồi sẽ chuyển đổi code đó tới CSS để nó hoạt động được trên web của bạn.
Giả sử bạn quyết định điều chỉnh sắc độ màu xanh lam đang dùng trên web. Với bộ tiền xử lý CSS, bạn chỉ phải thay đổi giá trị hex ở 1 chỗ thay vì phải chuyển tất cả phần CSS của mình và thay đổi giá trị hex mọi nơi.
Hệ thống quản lý phiên bản – Version Control / Git ⚡️
Version Control / Git
1 trong những kỹ năng cũng quan trọng không kém và tuy không có cái tên HTML, CSS hay JS nào trong đó nhưng vẫn đủ vì sự liên quan mật thiết!
Sau tất cả nỗ lực với việc marking-up bằng HTML, styling với CSS và lập trình với JS, bạn sẽ trải qua vô số lần sửa đổi khi phát triển.
Nếu có gì đó trục trặc xảy ra trong suốt chặn đường, điều cuối cùng bạn sẽ muốn làm là bắt đầu lại từ đầu. Version control là quá trình truy lùng và điều chỉnh những thay đổi tới source code của bạn để điều tệ hại đó không xảy ra.
Phần mềm version control, như Git – 1 nguồn mở cực ổn định, chính là công cụ bạn sẽ dùng để truy ra những thay đổi để bạn có thể trở về 1 phiên bản trước đó và tìm ra những gì sai sót mà không cần phải làm rối tung hết mọi thứ.
Và đây là 1 kỹ năng thú vị mà bạn (và cả khách hàng hay sếp của bạn nữa) sẽ rất hài lòng với nó.
Thiết kế responsive ⚡️
Thiết kế responsive
Nhớ lại ngày xưa cách duy nhất để bạn có thể lướt những trang web là sử dụng các máy tính để bàn. Ngày nay chúng ta có vô số thiết bị như máy vi tính, điện thoại, máy tính bảng để làm việc đó. Những trang web đó dù bạn có xài thiết bị gì đi nữa, chúng cũng đều làm tốt công việc hiển thị của mình dù bạn không cần phải làm gì cả.
Đó là nhờ vào phần thiết kế responsive. Hiểu rõ các nguyên tắc thiết kế responsive và cách triển khai chúng ở phần coding của mình chính là mấu chốt cho lập trình frontend.
1 thứ thú vị cần ghi nhớ về thiết kế responsive nữa là nó cũng là 1 phần nội tại trong các framework CSS như Bootstrap mà mình đã kể ở trên. Tất cả những kỹ năng này đều được kết nối với nhau, nên khi học 1 kỹ năng này, bạn cũng sẽ bổ trợ cho những kỹ năng khác cùng 1 lúc.
Từ 1 trang web kinh doanh nhỏ lẻ cho tới 1 trang quốc tế cho ngân hàng trực tuyến, bug là thứ dù rất đáng ghét nhưng sẽ luôn song hành với bạn trong sự nghiệp lập trình (trừ khi là bạn không code nữa…).
Và để giữ mọi thứ tiếp tục phát triển, bạn cần phải test code của mình để tìm bug suốt chặng đường, nên khả năng test và debug cũng nằm trong danh sách những kỹ năng không thể thiếu cho các dev frontend.
Có khá nhiều phương pháp test cho lập trình web. Test chức năng – functional testing sẽ trông hộ 1 phần chức năng cụ thể trên web của bạn (như 1 form hay database) và đảm bảo rằng nó thực hiện đúng mọi chức năng mà bạn đã code.
Test đơn vị – unit test cũng là 1 phương pháp. Nó test từng bit nhỏ nhất của code mà chịu trách nhiệm cho 1 thứ gì đó trên web của bạn và xem từng cá thể đó có hoạt động chính xác hay không.
Test là 1 phần lớn cho quá trình phát triển frontend, may thay, đã có sẵn những framework để giúp bạn làm điều này. Những chương trình như Mocha và Jasmine được thiết kế để giúp bạn tăng tốc và đơn giản hóa quá trình testing của bạn. (trừ khi bạn muốn làm quen với em tester nào đó ở chỗ làm).
Các công cụ phát triển trình duyệt ⚡️
Các công cụ phát triển trình duyệt
Dù thế nào đi nữa, những người dùng cuối cùng sẽ tương tác với web của bạn thông qua 1 trình duyệt web. Cách web của bạn được hiển thị bởi các trình duyệt này sẽ là phần quan trọng quyết định thành quả của bạn có thành công hay không.
Tương tự như testing hay debugging mình đã đề cập ở trên, tất cả trình duyệt web hiện đại đều đi kèm với developer tools – các công cụ phát triển trình duyệt. Nó cho phép bạn test và tinh chỉnh các trang trong chính trình duyệt đó, theo nhiều cách cụ thể để thể hiện cách trình duyệt diễn giải code của bạn.
Các chi tiết cụ thể sẽ khác nhau giữa các trình duyệt, nhưng không sao, thường các developer tools bao gồm trình kiểm tra và bảng điều khiển JavaScript.
Inspector – trình kiểm tra cho phép bạn thấy runtime HTML trên trang của bạn trông ra sao, CSS nào được liên kết với từng yếu tố trên trang, còn cho phép bạn edit phần HTML/ CSS và xem những thay đổi trực tiếp khi thực hiện. Bảng điều khiển JS còn cho phép bạn xem bất kỳ lỗi nào xảy ra khi trình duyệt cố gắng thực thi mã JS của bạn.
Mẹo nhỏ xíu : Hãy tìm hiểu sự khác nhau giữa các trình duyệt phổ biến (như Chrome, Firefox, Safari, Opera, Cốc Cốc hay gần đây nhất là Edge…). Điều thú vị là mỗi trình duyệt trên các nền tảng khá nhau sẽ hiển thị phần CSS khác đi 1 chút.
Ví dụ như dù sử dụng chung nền tảng -webkit- nhưng CSS của Chrome, Safari và Edge sẽ không giống hệt nhau đâu. Tốt nhất là hãy thử code của mình trên các trình duyệt khác nhau vì người dùng có vô số sự lựa chọn hay sở thích để sử dụng.
Dựng web và công cụ tự động/hiệu năng web ⚡️
Dựng web và công cụ tự động / hiệu năng web
Chắc bạn cũng biết bộ ba HTML/ CSS và JS là những công cụ chính để phát triển frontend. Trong khi hầu hết các kỹ năng khác đều giúp cho các công cụ đó hiệu quả hơn hay giúp test trang của bạn và sửa lỗi. Chúng ta sẽ tiếp tục với chúng trong phần này với việc dựng web, công cụ tự động và hiệu năng web.
Bạn có thể code ra những trang web xịn sò nhất nhưng nếu nó chạy 1 cách rùa bò trên thiết bị của người dùng thì mọi chuyện lại thành công cốc. Hiệu năng web là về việc mất bao lâu để trang web của bạn có thể load được. Nếu bạn có vấn đề với điều này thì mình có sẽ chỉ cho bạn vài cách để cải thiện chúng:
Tối ưu hóa hình ảnh: scaling và nén các hình ảnh cho hiệu năng web cao nhất.
Thu gọn CSS và JavaScript: gỡ bỏ tất cả những ký tự không cần thiết mà không làm thay đổi các chức năng.
Thực hiện các tác vụ này để tăng hiệu năng web có thể hơi tốn thời gian, nhưng đây cũng là lý do công cụ tự động tồn tại. Những chương trình như Grunt và gulp có thể được dùng để tự động tối ưu hóa hình ảnh, thu gọn CSS và JS, và các công việc khác về hiệu năng web. Để trang web được tốt nhất, việc làm quen với những điều này là thực sự cần thiết.
Dòng lệnh ⚡️
Dòng lệnh – Command Line
Sự gia tăng của giao diện người dùng đồ họa – Graphic User Interfaces (GUI) vào máy tính là 1 trong những điều tuyệt nhất từng xảy ra. Sẽ dễ dàng hơn nhiều để trỏ và nhấp vào 1 menu đầy tương tác và sống động thay vì phải ngồi gõ và gõ.
GUI khá hấp dẫn cả về việc phát triển web lẫn coding nữa. Chúng khá ổn định và tiện dụng. Nhưng 1 GUI đa năng sẽ có những hạn chế với 1 vài ứng dụng nhất định. Sẽ có lúc bạn cần mở 1 terminal trên máy tính để nhập các dòng lệnh để nhận được những gì bạn cần.
Đó là điểm khác biệt giữa việc máy tính của bạn chỉ mang lại những gì có sẵn trên bề nổi và có thể nhận được những gì bạn cần bằng cách đào sâu hơn bằng cách thủ công.
Ngay cả khi những công việc chính của bạn vẫn được thực hiện xong bằng GUI, các công ty sẽ thực sự ấn tượng và tín nhiệm bạn hơn với các kỹ năng frontend của mình nếu bạn thành thạo các dòng lệnh.
Kỹ năng mềm ⚡️
Cho dù có tích góp được bao nhiêu kỹ năng trong sự nghiệp của bạn, sẽ có những thứ luôn cần thiết cho công việc của bạn bên cạnh, đó là kỹ năng mềm. Nhất là đối với dân kỹ thuật thường các bạn cũng hơi rụt rè hay không được tốt trong việc giao tiếp. Hãy luôn trau dồi sự chuyên nghiệp của mình bất kỳ lúc nào trên con đường sự nghiệp đầy thú vị và sáng tạo này.
Trở thành 1 lập trình viên frontend vừa khó mà vừa dễ, hãy luôn trau chuốt, tỉ mỉ và chi tiết từng chút cho web hay ứng dụng của bạn được mượt mà và bắt mắt. Hãy luôn kiên nhẫn và luôn trao dồi thêm kiến thức, công nghệ mới nữa nhé.
Chúc các bạn sớm trở thành 1 lập trình viên frontend đầy kỹ năng và thành công trên sự nghiệp.
Ra đời với sứ mệnh số hóa ngành công nghiệp vận tải đường bộ, LOGIVANcung cấp hệ thống tự động hóa, đem đến sự kết hợp giữa chất lượng cao và dịch vụ Logistics uy tín đến mọi doanh nghiệp Việt Nam. Từ đó mang lại giải pháp cho bài toán “xe tải rỗng chiều về”, giúp chủ hàng tiết kiệm chi phí hơn so với cách thức vận hành truyền thống, tạo hiệu quả cao cho nền kinh tế nước nhà.
LOGIVAN – Sự ra đời của một sáng kiến công nghệ, mở ra thời kì mới cho ngành vận tải Việt Nam
Dịch vụ vận chuyển hàng hóa từ lâu đã đóng vai trò quan trọng trong nền kinh tế của đất nước, là yếu tố cốt lõi trong việc phân phối và lưu thông hàng hóa, thúc đẩy cho hoạt động sản xuất được diễn ra nhanh chóng, liên tục và dễ dàng. Tuy nhiên, còn nhiều hoạt động diễn ra khiến cho chi phí Logistics luôn đạt mức cao gây nên tình trạng kém hiệu quả và bế tắc đối với ngành vận tải.
Hiểu được nhu cầu và thách thức của các doanh nghiệp trong vấn đề vận chuyển, lưu thông hàng hóa, LOGIVAN ra đời như một làn gió mới, khởi đầu sứ mệnh số hóa ngành công nghiệp vận tải Việt Nam.
Được hình thành từ năm 2017, LOGIVAN là startup công nghệ trong lĩnh vực Logistics, tập trung giải quyết bài toán kết nối thị trường vận tải, giúp chủ xe và chủ hàng tìm được đến nhau thông qua một nền tảng công nghệ cao, giải quyết bài toán “xe tải rỗng chiều về” – bài toán lớn đối với ngành vận tải Việt Nam.
Trong suốt 3 năm nỗ lực phát triển, LOGIVAN đã không ngừng đem đến nhiều giá trị cho ngành vận tải và cả nền kinh tế Việt Nam:
Thay đổi cách thức mọi người đặt xe tải;
Giúp tài xế tăng thêm chuyến hàng, nâng cao thu nhập;
Giảm thiểu chi phí Logistics, chi phí vận tải của các doanh nghiệp.
Nỗ lực của LOGIVAN, đã được khẳng định bởi những giải thưởng, danh hiệu danh giá, đem đến sức mạnh bứt phá đáng tự hào:
Chiến thắng cuộc thi khởi nghiệp Uber Exchange (2018), LOGIVAN trở thành startup duy nhất giành tấm vé tới thung lũng Silicon (Mỹ) và nhận được sự cố vấn trực tiếp từ Tổng GIám đốc công nghệ toàn cầu UBER – Thuận Phạm;
Giành giải Công ty khởi nghiệp tốt nhất trong PITCH 2018 tại RISE 2018 và mang về chiến thắng đầu tiên cho các công ty khởi nghiệp Việt Nam tại Hội nghị thượng đỉnh Châu Á;
Giải nhất Pitch@Palace 2018 do hoàng tử Anh Andrew – Công tước xứ York tổ chức và được đánh giá là đem lại giải pháp đột phá trong lĩnh vực logistics, đồng thời có tác động tích cực đến xã hội, nền kinh tế và môi trường sống tại Việt Nam.
Khởi nghiệp với những giải thưởng uy tín, LOGIVAN là cái tên dần được nhắc đến phổ biến trong ngành vận tải hàng hóa tại Việt Nam, khẳng định được thương hiệu với chỉ vỏn vẹn 3 năm phát triển.
Ứng dụng LOGIVAN – Xu hướng mới cùng tính chuyên nghiệp, an toàn, hiệu quả
LOGIVAN cung cấp dịch vụ vận tải 4.0 dựa trên nền tảng kết nối trực tiếp chủ hàng và mạng lưới xe tải trên toàn quốc với 2 sản phẩm chính là LOGIVAN – Chủ hàng và LOGIVAN – Chủ xe. Các sản phẩm ứng dụng công nghệ này ra đời với các tính năng tiện lợi, giúp người dùng dễ dàng trong thao tác sử dụng và quản lý trên nền tảng iOS và Android.
Ứng dụng công nghệ vận tải LOGIVAN – Chủ xe: giúp kết nối trực tiếp các tài xế xe tải với các đơn hàng cần vận chuyển trên toàn quốc. Giải pháp công nghệ vận tải giúp chủ xe chủ động, linh hoạt trong mỗi chuyến hàng đồng thời tăng thêm thu nhập, thúc đẩy lưu thông hàng hóa.
Ứng dụng công nghệ vận tải LOGIVAN – Chủ hàng: giúp kết nối trực tiếp các doanh nghiệp, chủ hàng với mạng lưới đối tác vận tải trên toàn quốc. An toàn, hiệu quả với tính năng theo dõi hành trình của tài xế, giúp chủ hàng yên tâm về hàng hóa cần vận chuyển với giá thành hợp lý, tiết kiệm.
Tự hào là startup đầu tiên áp dụng trí tuệ nhân tạo vào ngành vận tải Việt Nam, LOGIVAN đã ra mắt hệ thống tính giá gói dịch vụ chuyển hàng 5 sao LOGINOW, giúp chủ hàng tra cứu giá nhanh chóng và chính xác với cước phí tốt nhất.
Trở thành LOGINEER – Những “siêu nhân vận tải” và gặt hái thành công ngay hôm nay cùng LOGIVAN
Không dừng lại ở đó, LOGIVAN luôn nỗ lực hết mình mở rộng thị trường, tìm kiếm giải pháp tối ưu cho các bài toán lớn trong ngành vận tải Việt Nam. Và để thực hiện mục tiêu đó, LOGIVAN liên tục chiêu mộ nhân tài công nghệ, những con người chủ chốt giúp LOGIVAN thực hiện ước mơ của mình.
LOGIVAN tin rằng mỗi người là một người hùng, đặc biệt khi đến với LOGIVAN, mỗi người là một nhân tố tài năng, đã khẳng định rằng bản thân mang trong mình sức mạnh, ý chí và khát khao thay đổi mọi thứ. Với tất cả niềm tin, sự nỗ lực, hãy cùng nhau, cùng LOGIVAN, cùng công nghệ cách mạng hóa thế giới vận tải.
Với tất cả tâm huyết, LOGIVAN luôn mong muốn “kết nạp” các thành viên LOGINEER, những người sở hữu:
Niềm đam mê công nghệ mãnh liệt;
Sự mạnh mẽ dám thực hiện;
Sự bứt phá và dám thành công.
Cùng khám phá những lý do giúp LOGIGAN thành công trong việc thu hút và “giữ chân” những nhân năng của mình.
LOGIGAN luôn ghi nhận mọi thành tích và tạo cơ hội tối đa cho LOGINEER thăng tiến trong sự nghiệp.
Tại đây, LOGINEER được hòa mình vào môi trường làm việc thân thiện, cởi mở và tràn đầy niềm vui với cơ hội cộng tác với những đồng đội thông minh, tài năng và hài hước;
Mở rộng cơ hội phát triển bản thân thông qua các buổi chia sẻ, những khóa đào tạo chuyên môn do LOGIVAN tài trợ;
Nhận về nhiều đãi ngộ xứng đáng như mức lương cạnh tranh, loạt thưởng xứng đáng cho sự tiến bộ và những thành tựu đạt được.
Với sự phát triển không ngừng, LOGIGAN hứa hẹn là điểm dừng chân lý tưởng cho các “tay đua công nghệ” trên chặng đường vươn tới thành công.
>>> Khám phá ngay các vị trí hấp dẫn đến từ LOGIVAN:
Tài liệu ngành công nghệ thông tin đã tiếp tục được TopDev tổng hợp, TopDev xin tiếp tục gửi đến cho các bạn phần tiếp theo các môn học của ngành CNTT tại Việt Nam, đặc biệt là những bạn sinh viên ngành Công nghệ thông tin đang sắp làm quen với các môn học chuyên ngành.
Hi vọng tài liệu ngành công nghệ thông tin sẽ giúp cho các bạn học tập được hiệu quả hơn khi còn đang chập chững những bước đầu trên con đường trở thành 1 lập trình viên tương lai!
Phần này sẽ là nội dung các môn học thuộc ‘Kiến thức cơ sở ngành’, bao gồm:
1. Cấu trúc dữ liệu và giải thuật 🌟:
Trong khoa học máy tính, cấu trúc dữ liệu là một cách lưu dữ liệu trong máy tính sao cho nó có thể được sử dụng một cách hiệu quả.
Thuật toán, còn gọi là giải thuật, là một tập hợp hữu hạn của các chỉ thị hay phương cách được định nghĩa rõ ràng cho việc hoàn tất một số sự việc từ một trạng thái ban đầu cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ dẫn đến kết quả sau cùng như đã dự đoán trước.
Cơ sở dữ liệu (Database) là một tập hợp các dữ liệu có tổ chức, thường được lưu trữ và truy cập điện tử từ hệ thống máy tính. Khi cơ sở dữ liệu phức tạp hơn, chúng thường được phát triển bằng cách sử dụng các kỹ thuật thiết kế và mô hình hóa chính thức.
Trí tuệ nhân tạo đang trở thành một xu hướng công nghệ trên toàn thế giới những năm gần đây. Việc nghiên cứu phát triển các trí thông minh nhân tạo nhằm giải quyết các vấn đề nhu cầu trong cuộc sống đang rất được quan tâm. Lương dành cho các kĩ sư AI cũng cao không kém, chính vì vậy nếu bạn không muốn bỏ lỡ các cơ hội khi học tập lập trình Trí tuệ nhân tạo thì có thể tham khảo tài liệu “Nhập môn trí tuệ nhân tạo” sau.
Công nghệ phần mềm còn có tên gọi khác là “Kĩ thuật phần mềm” là một cách tiếp cận có hệ thống, có kỷ luật, và định lượng được cho việc phát triển, sử dụng và bảo trì phần mềm. Cuốn sách này sẽ đi chi tiết các nội dung làm việc, lý thuyết và thực tế cơ bản khi làm việc trong lĩnh vực thiết kế phần mềm. Nếu bạn là một lập trình viên thì tuyệt không thể bỏ qua cuốn sách này để trao dồi kiến thức bản thân thêm nữa.
Giáo trình này không tập trung vào một hệ điều hành hay phần cứng cụ thể nào. Thay vào đó, giáo trình sẽ thảo luận những khái niệm cơ bản được áp dụng trong từng hệ điều hành khác nhau.
Để dễ dàng đọc và hiểu tài liệu ngành công nghệ thông tin này, người đọc phải nắm các cấu trúc dữ liệu cơ bản, tổ chức của một hệ thống máy tính và ngôn ngữ lập trình cấp cao. Các khái niệm và giải thuật cơ bản được trình bày trong giáo trình dựa trên việc chúng được dùng trong các hệ điều hành thương mại hay trong các hệ điều hành thử nghiệm.
Lập trình hướng đối tượng là một mẫu hình lập trình dựa trên khái niệm “công nghệ đối tượng”, mà trong đó, đối tượng chứa đựng các dữ liệu, trên các trường, thường được gọi là các thuộc tính; và mã nguồn, được tổ chức thành các phương thức. Trong lập trình hướng đối tượng, chương trình máy tính được thiết kế bằng cách tách nó ra khỏi phạm vi các đối tượng tương tác với nhau.
Ngôn ngữ lập trình hướng đối tượng khá đa dạng, phần lớn là các ngôn ngữ lập trình theo lớp, nghĩa là các đối tượng trong các ngôn ngữ này được xem như thực thể của một lớp, được dùng để định nghĩa một kiểu dữ liệu.
Windows là hệ điều hành đồ họa trực quan, do dó các tài nguyên của hệ thống cung cấp rất đa dạng đòi hỏi người lập trình phải nghiên cứu rất nhiều để phát hay hết sức mạnh của hệ điều hành.
Theo như những mục đích tiếp cận của các nhà lập trình thì các ứng dụng trên Windows phải hết sức thân thiện với người dùng thông qua giao diện đồ họa sẵn có của Windows. Về lý thuyết thì một người dùng làm việc được với một ứng dụng của Windows thì có thể làm việc được với những ứng dụng khác.
Nhưng trong thực tế để sử dụng một ứng dụng cho đạt hiệu quả cao trong Windows thì cần phải có một số huấn luyện trợ giúp hay tối thiểu thì phải cho biết chương trình ứng dụng làm việc như thế nào.
Đa số các ứng dụng trong Windows đều có chung một giao diện tương tác với người dùng giống nhau. Ví dụ như các ứng dụng trong Windows đa số đều có thanh thực đơn chứa các mục như : File, Edit, Tool, Help… Và trong hộp thoại thì thường chứa các phần tử điều khiển chung như : Edit Control, Button Control, Checkbox….
Trong toán học và tin học, lý thuyết đồ thị (graph theory) nghiên cứu các tính chất của đồ thị. Một cách không chính thức, đồ thị là một tập các đối tượng được gọi là các đỉnh (hoặc nút) nối với nhau bởi các cạnh (hoặc cung). Cạnh có thể có hướng hoặc vô hướng. Đồ thị thường được vẽ dưới dạng một tập các điểm (các đỉnh nối với nhau bằng các đoạn thẳng (các cạnh).
Đồ thị biểu diễn được rất nhiều cấu trúc, nhiều bài toán thực tế có thể được biểu diễn bằng đồ thị. Ví dụ, cấu trúc liên kết của một website có thể được biểu diễn bằng một đồ thị có hướng như sau: các đỉnh là các trang web hiện có tại website, tồn tại một cạnh có hướng nối từ trang A tới trang B khi và chỉ khi A có chứa 1 liên kết tới B. Do vậy, sự phát triển của các thuật toán xử lý đồ thị là một trong các mối quan tâm chính của khoa học máy tính.
Mạng máy tính là một hệ thống các máy tính được kết nối với nhau bằng các phương thức truyền dẫn nào đó và tuân theo 1 kiến trúc nhất định sao cho chúng có thể chia sẻ tài nguyên (dữ liệu, thiết bị) với nhau. Qua bài giảng này các bạn sẽ được học các thành phần cơ bản của mạng máy tính, lịch sử phát triển và còn nhiều nữa…
Kỳ tiếp theo TopDev sẽ tiếp tục với các môn chuyên ngành ‘Hệ thống thông tin’, ‘Mạng máy tính’, ‘Công nghệ phần mềm’ & ‘An ninh mạng’, các bạn nhớ đón xem nhé!
Chúc các bạn có những giờ học tập và làm việc hiệu quả.
Tài liệu ngành công nghệ thông tin đã được TopDev tổng hợp từ nhiều nguồn kiến thức uy tín, hôm nay TopDev xin gửi đến cho các bạn, đặc biệt là những bạn sinh viên ngành Công nghệ thông tin năm nhất những môn đại cương mà bạn sẽ được học trên ghế giảng đường, mà cụ thể là các môn về Khoa học tự nhiên: Toán – Tin và Ngoại ngữ chuyên ngành công nghệ thông tin.
Hi vọng tài liệu ngành công nghệ thông tin này sẽ giúp cho các bạn học tập được hiệu quả hơn khi còn đang chập chững những bước đầu trên con đường trở thành lập trình viên tương lai! 🥳
Nội dung các môn Đại cương này bao gồm:
I. Ngoại ngữ 🔥
Tiếng Anh chuyên ngành 🌟
Công nghệ thông tin từ lâu đã đóng vai trò quan trọng trong cuộc sống của chúng ta. Việc dạy và học Tiếng Anh Công nghệ thông tin tại Học viện công nghệ Bưu chính viễn thông từ lâu đã được quan tâm và phát triển.
Tiếp theo cuốn giáo trình Tiếng Anh công nghệ thông tin đã và đang được dạy và học tại Học viện, cuốn sách Hướng dẫn học Tiếng Anh công nghệ thông tin dùng cho Hệ đào tạo từ xa đã được ra đời nhằm mục đích giúp học viên có thể tự học tập tốt hơn.
Cuốn sách cũng được hình thành dựa trên sườn của cuốn giáo trình gốc 10 bài gồm các hướng dẫn cụ thể từ mục từ mới, ý chính của bài khoá, phần dịch, ngữ pháp xuất hiện trong bài học.
Ngoài ra, để giúp học viên có cơ hội tự trau dồi vốn từ vựng và hoàn cảnh giao tiếp chuyên nghiệp hơn trong lĩnh vực Công nghệ thông tin, nhóm tác giả còn dành riêng một mục Hội thoại ở cuối của mỗi bài học.
Kèm theo phần nội dung hướng dẫn dạy và học cho 10 bài, các bạn học viên còn có thể tự luyện tập củng cố các kiến thức học được trong 10 bài qua việc luyện tập làm các bài tập và so sánh kết quả ở phần đáp án.
Giải tích là một trong những công cụ hữu dụng nhất trong CNTT. Nó được sử dụng trong xử lý tín hiệu số, trong bài toán tối ưu hóa… từ đó ứng dụng trong các bài toán của trí tuệ nhân tạo, máy học, xử lý âm thanh, thị giác máy tính…
Đại số được sử dụng nhiều trong xử lý ảnh, trong các bài toán của khai thác dữ liệu. Dữ liệu thường được lưu dưới dạng ma trận và các phép tính trên ma trận được sử dụng. Kiểu dữ liệu array thực chất cũng chỉ là biến thể của ma trận.
Học CNTT không có nghĩa là học lập trình và sử dụng công cụ (framework – library này nọ). Thầy mình từng nói với lớp mình là “Học lập trình cũng như học nói thôi. Có người nói hay, có người nói dở nhưng quan trọng là nội dung bạn nói”. Học cách sử dụng ngôn ngữ, framework, bạn học cách nói hay, nhưng cái quan trọng nhất của nó là nội dung bạn xử lý. Toán đóng vai trò quan trọng trong các thao tác xử lý và biến đổi dữ liệu.
Đại số tuyến tính là một ngành toán học nghiên cứu về không gian vectơ, hệ phương trình tuyến tính và các phép biến đổi tuyến tính giữa chúng. Và là 1 trong những môn quan trọng cho các bạn sinh viên ngành Khoa học máy tính.
Đại số tuyến tính được sử dụng nhiều trong toán học, như trong đại số đại cương, giải tích hàm, hình học giải tích… để giải các bài toán như phép quay trong không gian, nội suy bình phương nhỏ nhất, nghiệm của hệ phương trình vi phân, tìm đường tròn qua ba điểm…
Nó cũng có vô vàn ứng dụng trong khoa học tự nhiên (vật lý, công nghệ…) và khoa học xã hội (kinh tế…), vì các mô hình phi tuyến tính hay gặp trong tự nhiên và xã hội thường có thể xấp xỉ bằng mô hình tuyến tính.
Toán rời rạc là một lĩnh vực nghiên cứu và xử lý các đối tượng rời rạc dùng để đếm các đối tượng, và nghiên cứu mối quan hệ giữa các tập rời rạc. Một trong những yếu tố làm Toán rời rạc trở nên quan trọng là việc lưu trữ, xử lý thông tin trong các hệ thống máy tính về bản chất là rời rạc. Chính vì lý do đó, Toán học rời rạc là một môn học bắt buộc mang tính chất kinh điển của các ngành Công nghệ thông tin và Điện tử Viễn thông.
Tài liệu hướng dẫn môn học Toán học rời rạc được xây dựng cho hệ đào tạo từ xa Học viện công nghệ Bưu chính Viễn thông được xây dựng dựa trên cơ sở kinh nghiệm giảng dạy môn học và kế thừa từ giáo trình “Toán học rời rạc ứng dụng trong tin học” của Kenneth Rossen.
Trong mỗi phần của tài liệu, tác giả cố gắng trình bày ngắn gọn trực tiếp vào bản chất của vấn đề, đồng thời cài đặt hầu hết các thuật toán bằng ngôn ngữ lập trình C nhằm đạt được hai mục tiêu chính cho người học: Nâng cao tư duy toán học trong phân tích, thiết kế thuật toán và rèn luyện kỹ năng lập trình với những thuật toán phức tạp.
Thống kê là môn đáng học đối với tất cả mọi người, không riêng gì lập trình viên. Cá nhân mình nghĩ tùy định hướng, lập trình viên mấy nhập môn ban đầu cũng không cần thống kê nhiều lắm. Nếu bạn học chuyên sâu hơn, mình nghĩ thống kê lúc đó sẽ rất cần thiết (làm A/B testing, đọc report…).
Ngoài ra, thống kê giúp bạn tỉnh táo hơn, có thể nhận ra mấy chiêu bài lừa gạt bằng thống kê đầy rẫy trên mạng. Cá nhân mình nghĩ thống kê có ích cho cuộc sống, và ai cũng nên biết.
Nhập môn công nghệ thông tin là một trong những môn học tiên quyết nhằm cung cấp kiến thức cơ bản cho học viên bước đầu tiếp cận với thông tin, xử lý thông tin và truyền thông. Môn học trang bị những kién thứ chung và các thao tác cơ bản trên các thiệt bị dùng hề điều hành Windows, nền tảng cho việc sử dụng các thiết bị và các phần mềm trên máy vi tính.
Bên cạnh đó, môn học còn cung cấp kiến thức về cách sử dụng các phần mềm thông dụng phục vụ cho công tác học tập và làm việc cho học viên như: hệ điều hành thông dụng Windows, kỹ năng sử dụng phần mềm soạn thảo văn bản Microsoft Word, phần mềm thiết lập bảng tính điện tử Microsoft Excel, phần mềm soạn thảo và trình chiếu bài thuyết trình Microsoft Powerpoint.
Cung cấp cho các bạn sinh viên những khái niệm cơ bản về tin học, các khái niệm và phương pháp, kỹ năng lập trình bằng một ngôn ngữ lập trình có cấu trúc: ngôn ngữ C để giải một số bài toán cơ bản.
Về mặt lý thuyết: cung cấp một số kiến thức đại cương và các nguyên lý cơ bản về Tin học, về Hệ Điều hành Windows Các khái niệm, phương pháp, kỹ năng lập trình có cấu trúc trên máy vi tính bằng ngôn ngữ cấp C.
Về thực hành: biết sử dụng Windows và một số tiện ích, biết sử dụng các cấu trúc lập trình trong cài đặt cho một số bài toán.
Kỹ thuật lập trình là 1 trong những môn tiên quyết bắt buộc với tất cả dân lập trình nếu xác định đi theo con đường lập trình viên. Kỹ thuật lập trình tuy được gọi là căn bản nhưng lại cung cấp cho người học những kiến thức nền tảng, tư duy lập trình và đặc biệt với những người mới bắt đầu tiếp cận với lập trình thì đây là hành trang quan trọng nhất.
Trong thời đại công nghệ phát triển mỗi ngày, hàng đống ngôn ngữ lập trình, các framework, engine hỗ trợ, dự án hôm nay xài cái này mai lại xài cái khác, nếu khả năng thích ứng của bạn không cao thì bạn sẽ bị ngộp ngay.
Tuy nhiên nếu nắm chắc kỹ thuật lập trình và có được tư duy lập trình, bạn chỉ cần nắm được “cốt lõi” thì từ đó công nghệ có biến hóa thay đổi ra sao Bạn vẫn nắm được hết. Việc học giữa các ngôn ngữ cũng không thành vấn đề khi bạn đã có nền tảng.
Do đặc thù của ngành nghề kỹ thuật, cũng như môi trường làm việc hầu như chỉ tiếp xúc với máy tính cả ngày nên các kỹ năng mềm của các bạn kỹ thuật hay ngay cả lập trình viên trong cuộc sống thường không phải ai cũng có thể làm tốt. Ngoài ra không những hữu ích cho bản thân bạn trong cuộc sống hàng ngày và xã hội thì khi đi làm, các bạn cũng sẽ phải tiếp xúc với nhiều đồng nghiệp khác, kỹ năng mềm cũng quan trọng không kém cho teamwork trong công việc.
Giáo trình “Kỹ năng mềm” của Đại học Khoa học Tự nhiên HCM được soạn bài bản và khá chi tiết, bao gồm: kỹ năng tư duy, kỹ năng trình bày, kỹ năng đặt câu hỏi, kỹ năng quản lý bản thân, kỹ năng giao tiếp ứng xử, làm việc nhóm, v..v.. và còn nhiều nữa, bên cạnh các trò chơi/ test rất hấp dẫn hi vọng sẽ giúp cho các bạn dev phát triển bản thân toàn diện hơn.
Ngoài những môn thuộc bộ môn ‘Lý luận chính trị’ và ‘Giáo dục thể chất’ ra thì những môn học trên tương đối đầy đủ cho các bạn sinh viên mới nhập môn ngành CNTT, nhưng do tùy chương trình giảng dạy của mỗi trường nên cũng chỉ mang tính chất tương đối để các bạn tham khảo. Hi vọng sẽ giúp các bạn trong quá trình học tập.
Tình hình là một số bạn đặt câu hỏi rất nhiệt tình, rằng: “Ừa nếu Erlang/OTP tốt thế, sao không dùng Erlang thôi mà dùng Elixir chi cho mắc mệt vậy?”.
Một số lý do có thể khiến bạn cân nhắc Elixir thay vì Erlang. Elixir có bộ standard library nhất quán hơn Erlang, có Mix là build tool cung cấp các tác vụ để tạo, compile project, và quản lý dependencies. Ngoài ra, các module như Protocol, Struct, Stream, ExUnit giúp cho việc lập trình dễ dàng. Documentation được xem như first class citizen trong ngôn ngữ, lập trình viên Elixir được khuyến khích viết và maintain docs, với các công cụ như doctest. Ngoài ra, theo ý kiến chủ quan của tui, code Elixir dễ đọc và dễ học hơn nhiều, so với code nhìn như đám rừng của Erlang
Cơ mà trên tất cả, một lần nữa theo ý kiến chủ quan của tui, metaprogramming là một tính năng bạn không nên bỏ qua khi cân nhắc Elixir. Nhờ có metaprogramming, Elixir có những thư viện với DSL đẹp như Ecto, Phoenix, Nerves. Nhờ metaprogramming, bạn có thể tự viết compiler của riêng mình như một stage trong quá trình biên dịch. Nhờ metaprogramming, một thư viện đã được tăng tốcchỉ với vài dòng code.
Metaprogramming Elixir
Như bạn đã biết, meta-programming là một kỹ thuật dùng code để viết code. Nắm vững kĩ thuật meta-programming trong Elixir như đã nói có thể giúp bạn tận dụng compile time để nâng cao performance, viết DSL và làm nhiều trò vui khác.
Mặc dầu hướng dẫn meta-programming không phải là mục tiêu của bài viết này, tui vẫn sẽ nói sơ qua về định nghĩa và cách sử dụng một số construct như quote, unquote, và macros để bạn meta-program trong Elixir. Bạn có thể đọc tutorial trên trang chủ Elixir nếu muốn tìm hiểu chi tiết hơn.
quote và unquote
Meta-programming trong Elixir được thực hiện thông qua hai construct là quote và unquote.
quotetrả về AST (Abstract Syntax Tree) của biểu thức nhận vào. Một AST trong Elixir là một tuple gồm ba phần tử: tên của AST, metadata chứa environment của AST, và các tham số của AST đó.
Trong khi đó unquote cho phép bạn inject một value bên ngoài vào biểu thức trong quote. Hãy tưởng tượng unquote như string interpolation, khác với interpolation là giá trị của biến được chèn vào chuỗi, unquote cho phép bạn chèn giá trị của biến vào một biểu thức trong quote.
Chú ý một biến ở ngoài quote không ảnh hưởng đến biểu thức bên trong nó, trừ phi bạn unquote biến đó một cách tường minh. Ví dụ sau đây, thay vì chèn 3 vào AST như ví dụ ở trên, {:a, [], Elixir} đại diện cho biến a được chèn vào trong AST trả về.
Với quote và unquote, bạn đã đủ đồ chơi để bắt đầu meta-program một ứng dụng Elixir. Mặc dù vậy, bạn cần thêm sự trợ giúp của macros.
Macros
Macros là một trong những viên gạch giúp bạn metaprogram trên nền tảng ngôn ngữ Elixir. Macros trong Elixir là hygienic, lexical, và explicit. Mặc định biến định nghĩa trong macros không ảnh hưởng đến code của caller; muốn dùng macros của một module, bạn phải require hoặc import module đó tường minh, và không có chuyện tự động import một module ở mức global (nhắc đến thì cơn đau đầu của tui với Ruby lại tràn về); cuối cùng là bạn không thể chạy một macro mà không gọi nó.
Để khai báo một macros, bạn dùng defmacro. Chú ý macros phải được khai báo trong một module. Ở ví dụ sau, macro HelloWorld.define_hello_world() giúp bạn định nghĩa hàm hello_world/0 trong Foo mà không cần phải viết toàn bộ hàm.
defmoduleHelloWorlddodefmacrodefine_hello_world() doquotedodefhello_world() do
IO.puts("hello world")
endendendenddefmoduleFoodo
import HelloWorld
define_hello_world()
end
Foo.hello_world()
# hello world
Elixir – Ngôn ngữ được viết bằng macros
Thật vậy, không ngoa khi nói Elixir là một ngôn ngữ được viết bằng macros của chính nó.
Ngoài một số construct được định nghĩa dưới dạng special forms được ngôn ngữ bảo vệ, tất cả mọi hàm và macros khác của Elixir, bạn đều có thể override lại được, kể cả biểu thức và “keyword” if, in, def, defmodule, hay thậm chí là cả … defmacro nữa.
Để chứng minh tui không chém gió, ta hãy cùng đọc code của if được định nghĩa trong Kernel.
defmacroif(condition, clauses) do
build_if(condition, clauses)
enddefpbuild_if(condition, do: do_clause) do
build_if(condition, do: do_clause, else:nil)
enddefpbuild_if(condition, do: do_clause, else: else_clause) do
optimize_boolean(
quotedocase unquote(condition) do
x when:"Elixir.Kernel".in(x, [false, nil]) -> unquote(else_clause)
_ -> unquote(do_clause)
endend
)
enddefpbuild_if(_condition, _arguments) do
raise ArgumentError,
"invalid or duplicate keys for if, only \"do\" and an optional \"else\" are permitted"end
Như ta thấy, về bản chất if chỉ là một macro viết lại biểu thức truyền vào thành một mệnh đề sử dụng case (là một special form). Nếu condition trả về có giá trị là false hoặc nil, mệnh đề else sẽ được thực hiện; ngược lại, mệnh đề do sẽ được thực hiện.
Tương tự với unless, nó chỉ là đảo ngược lại của if.
Cả &&, ||, or và and cũng không phải là special forms mà chỉ là macros .
defmacroleft && right do
assert_no_match_or_guard_scope(__CALLER__.context, "&&")
quotedocase unquote(left) do
x when:"Elixir.Kernel".in(x, [false, nil]) ->
x
_ ->
unquote(right)
endendend
Thật tuyệt vời khi một ngôn ngữ có thể tự viết chính nó chỉ bằng một số special form ban đầu đúng không? Với các special forms này, bạn có thể tự viết lại phiên bản if của riêng mình. Ví dụ, ta sẽ viết lại if với điều kiện nghiêm ngặt hơn: chỉ chấp nhận boolean condition.
# lib/sane_if.exdefmoduleSaneIfdodefmacroif(condition, do: do_clause, else: else_clause) doquotedocase unquote(condition) dotrue -> unquote(do_clause)
false -> unquote(else_clause)
_other -> raise ArgumentError, "This is a sane macro that only works with boolean"endendendend# lib/use_sane_if.ex
import Kernel, except: [if:2]
defmoduleUseSaneIfdo
import SaneIf
defsane?(a) do
if a do"sane"
else
"insane"endendend# iex(1)> UseSaneIf.sane?(true)# "sane"# iex(2)> UseSaneIf.sane?(false)# "insane"# iex(3)> UseSaneIf.sane?(is_number(3))# "sane"# iex(4)> UseSaneIf.sane?(nil)# ** (ArgumentError) This is a sane macro that only works with boolean
Làm thế nào để Elixir làm được điều này? Tất cả là nhờ vào expansion stage trong quá trình compile, tui sẽ viết rõ hơn trong một bài viết khác .
Bài viết này sẽ giúp bạn tăng lương thế nào?
Như thường lệ, bài viết không giúp bạn tăng lương.
Nếu bạn vừa tiếp cận với Elixir, tui hy vọng bài viết đã giúp bạn hiểu rõ hơn một chút về ngôn ngữ này, về cách mà nó đã dùng macro để tạo nên ngôn ngữ.
Nhân bài viết về macros trong Elixir, tui muốn nhắc lại là mỗi khi bạn định viết một macro nào đó, hãy nhớ rằng … bạn KHÔNG CẦN phải viết macros. Macros thường làm code của của bạn khó đọc hơn và ảo diệu hơn, mà cái gì mà ảo diệu hơn thì thường khó maintain hơn.
Hay nói rõ hơn là hầu như bạn không cần đến macros trừ phi bạn có một lý do thật sự mạnh mẽ. Lý do DRY code (Don’t Repeat Yourself) thường là không đủ thuyết phục. Bạn có behaviours, protocols, đủ để bạn DRY code mà không cần đến macro.
Ngay trên trang chủ, core team của Elixir đã viết:
Elixir already provides mechanisms to write your everyday code in a simple and readable fashion by using its data structures and functions. Macros should only be used as a last resort. Remember that explicit is better than implicit. Clear code is better than concise code.
Bài viết được sự cho phép của BBT Tạp chí Lập trình
Trong lập trình, thông thường để hoán đổi hai giá trị phải sử dụng 1 biến phụ và mất tới 3 dòng lệnh. Bạn có ngạc nhiên không nếu có một cách đơn giản hơn nhiều để hoán đổi hai giá trị mà không cần biến phụ mà chúng ta có thể sử dụng được trong JavaScript?
Sẽ có hai loại hoán đổi ở đây. Loại thứ nhất là hoán đổi biến kiểu nguyên thủy, ta sẽ hoán đổi hai số trước. Loại còn lại phức tạp hơn, ta sẽ hoán đổi hai biến kiểu bất kỳ: Object, String, Float,…
Phương pháp truyền thống
Mục tiêu ở đây ta sẽ hoán đổi hai biến a và b (kiểu bất kỳ)
Như thường lệ, ta sử dụng một biến c, tạm thời lưu trữ giá trị ban đầu của a rồi sau đó tiến hành hoán đổi. Nhưng liệu có cách nào mà không phải sử dụng biến tạm thời không? Có, có chứ!
Đối với số nguyên
Hãy bắt đầu với loại đầu tiên: hoán đổi hai số nguyên.
Sử dụng toán tử toán học
Hoặc
Sử dụng toán tử XOR
Với biến kiểu số nguyên, ta có thể khéo léo sử dụng toán tử đảo bit là XOR:
Hoặc
Đây gọi là thuật toán hoán đổi sử dụng XOR. Nguyên lý của nó được miêu tả cụ thể ở đây (Wikipedia).
Cách này ta sử dụng comma operator (toán tử dấu phẩy) không cần biến phụ, không cần mảng, có thêm thắt một chút, và nó chạy rất nhanh. Trong thực tế đôi khi nó còn nhanh hơn cách dùng biến phụ nếu chạy trên một vài nền tảng. Và nó đúng với mọi loại số, không bao giờ tràn bộ nhớ, và cân luôn mấy trường hợp đặc biệt chẳng hạn Infinity hay NaN.
Các bước chạy cụ thể như sau:
(b=a, 0): gán giá trị ban đầu của a cho b, trả về số 0.
a = b + 0: gán giá trị b (ban đầu) + 0 cho a, tức gán a = b.
Vuex là một cái store cho Vue, nó giống hệt như redux store của React, cũng giải quyết những vấn đề như redux, nên nếu bạn ko biết tại sao nó lại cần thì có thể đọc lại Redux là gì và tại sao phải dùng.
mutations được config trong store (nó như reducer của redux) là tập những phương thức được dùng để update state. Chúng ta không update state trực tiếp, không gọi đến các hàm mutation trực tiếp, chúng ta gọi this.$store.commit('ten-phuong-thuc', payload) để gọi các phương thức này.
Mutation là những phương thức synchronous
// gọi mutation
methods:{unregister(registration){this.$store.commit({
type:'unregister',
userId: registration.userId
});}},// khai báo mutation trong lúc tạo store
mutations:{register(state, userId){
state.registrations.push(userId);},}
Actions
Sự khác biệt lớn nhất giữa action và mutation là trong action có thể return promise, nó có thể thực hiện các thao tác asynchronous
Nếu trong redux bạn cần một middleware để xử lý các thao tác asynchronous, thì action trong vue store chính là các hàm bạn dùng để làm chuyện này. Chúng ta cũng không gọi trực tiếp đến các hàm của actions mà phải gọi qua dispatch. Mục đích cuối cùng của action cũng là commit một mutation, nó cũng không chỉnh sửa gì state.
// gọi một action ở component, map nó vô phương thức
methods:{registerUser(user){this.$store.dispatch('register', user.id);}}// khai báo action trong store
actions:{register(context, userId){setTimeout(()=>{// vẫn commit lên mutation
context.commit('register', userId);},2000)}}
Getters
Trong store chúng ta khai báo các phương thức gọi chung là getters, nó giống như các computed property của store.
Các hàm `getters` luôn trả về giá trị
Nếu bạn chưa biết computed property là gì, mình quote lại ngắn gọn cho các bạn nhớ
Computed property là những giá trị cần tính lại khi một biến nó phụ thuộc thay đổi giá trị.
Ví dụ, giỏ hàng, tổng tiền là computed property được tính lại khi trên tất cả sản phẩm có trong giỏ hàng.
Khi ứng dụng của chúng ta lớn lên, để hết mọi quản lý ở một chỗ như vậy sẽ rất mệt. Modules giúp chúng ta tách cái store ra theo từng feature
const moduleA ={
state:{...},
mutations:{...},
actions:{...},
getters:{...}}const moduleB ={
state:{...},
mutations:{...},
actions:{...}}const store =newVuex.Store({
modules:{
a: moduleA,
b: moduleB
}})
store.state.a // -> `moduleA`'s state
store.state.b // -> `moduleB`'s state
Các phần còn lại: getters, actions, mutations truy cập trực tiếp như bình thường, KHÔNG cần thông qua store.actions.moduleName. Nó sẽ được lồng vào trong module name khi chúng ta bật namespaced: true
const store =newVuex.Store({
modules:{
account:{
namespaced:true,// module assets
state:{...},
getters:{isAdmin(){...}// -> getters['account/isAdmin']},
actions:{login(){...}// -> dispatch('account/login')},
mutations:{login(){...}// -> commit('account/login')},// nested modules
modules:{// kế thừa namespace từ module cha
myPage:{
state:{...},
getters:{profile(){...}// -> getters['account/profile']}},
posts:{
namespaced:true,
state:{...},
getters:{popular(){...}// -> getters['account/posts/popular']}}}}}})
Lương Gross là tổng thu nhập của người lao động, bao gồm cả các khoản đóng bảo hiểm và thuế. Mức lương thực nhận của người lao động sẽ thấp hơn mức này vì họ sẽ phải trích ra một phần để đóng bảo hiểm và nộp thuế thu nhập cá nhân.
Lương Net là lương thực nhận của người lao động sau khi đã trừ hết các khoản chi phí bảo hiểm và thuế thu nhập cá nhân, nói một cách đơn giản đó là mức tiền thực tế của bạn khi nhận về sau mỗi đợt lương.
Nếu nhìn sơ qua người lao động có thể tưởng rằng lương Net có lợi hơn vì đó chính là số tiền thực nhận, còn lương Gross dễ tạo cảm giác người lao động bị mất một khoảng tiền mỗi tháng. Tuy nhiên, khi nhìn vào thực tế khi chúng ta quy đổi lương Net sang Gross và ngược lại thì số tiền người lao động nhận được không đổi, dù bạn thỏa thuận với nhà tuyển dụng bằng cách nào nào thì họ sẽ tính toán để lương Net và lương Gross ở mức tương đương với nhau.
Ví dụ: Mức lương Gross là 16,000,000 VND sẽ tương đương với mức lương Net 14,154,000 trong trường hợp đóng bảo hiểm trên lương chính thức
-Vậy nên khi nhà tuyển dụng quyết định trả bạn mức lương Gross là 16,000,000 VND, nếu bạn đàm phán mức lương Net thì lương của bạn sẽ là 14,154,000 và ngược lại. Về cơ bản lương bạn nhận được vẫn không đổi dù bạn đàm phán lương Net hay Gross.
Theo quy định mới nhất (Từ 1/7/2020)
Nếu để ý kỹ, người lao động sẽ thấy rằng khi dùng cách tính lương Gross, mức lương họ nhận được sẽ rõ ràng hơn, đồng nghĩa với việc họ sẽ chủ động tính toán được mức lương Net của cũng như các phúc lợi mà công ty đang đóng cho mình. Trái lại với mức lương Net người lao động sẽ khó biết được mức bảo hiểm công ty đóng cho mình thực tế sẽ là bao nhiêu. Điều này sẽ được nói rõ hơn ở phần bên dưới.
Ví dụ: Mức lương Net là 14,500,000 VND
– Nếu bạn đóng bảo hiểm trên mức lương chính thức lương Gross sẽ là 16,406,940 VND
– Trường hợp đóng bảo hiểm ở mức 6,000,000 VND lương Gross sẽ là 15,130,000 VND
Như ví dụ trên, bạn có thể thấy cùng một mức lương Net nhưng với mức đóng bảo hiểm khác nhau mức lương Gross bạn nhận được chênh nhau khá nhiều, lương Gross sẽ thể hiện chính xác quyền lợi bạn nhận được hơn là lương Net.
Theo quy định mới nhất (Từ 1/7/2020)
Điều gì sẽ ra sao nếu bạn thỏa thuận lương 1 đằng, công ty lại trả 1 nẻo?
Bình tĩnh lại nào! Trước khi giận dữ bạn nên nhớ lại xem lúc bạn thỏa thuận với nhà tuyển dụng bạn đã yêu cầu mức lương GROSS hay lương NET đã nhé! Lương Gross và Net rất dễ gây sự lẫn lộn nếu bạn ít tìm hiểu về nó, vậy để tránh những trường hợp thỏa thuận “lộn” lương với HR thì bạn nên hiểu rõ khái niệm và cách tính của 2 loại lương này nhé.
Lương Net và Gross là 2 cách tính lương/ hình thức trả lương thông dụng nhất trong xã hội hiện nay. Có thể bạn đã nghe qua 2 khái niệm Gross và Net nhưng bạn đã thực sự hiểu rõ cách tính lương Gross, Net như thế nào hoặc nhận lương Gross hay Net thì hình thức nào có lợi hơn chưa?
Lương Net được hiểu là khoản lương thực lãnh mà công ty sẽ trả bạn sau khi trừ hết tất cả các chi phí như bảo hiểm, thuế….Có nghĩa là, đó sẽ là khoản lương chính xác mà bạn nhận về mà không cần phải đóng thêm bất cứ khoản nào cho nhà nước nữa.
Lấy ví dụ cụ thể:
Nếu 1 công ty offer bạn mức lương là 10 triệu Net thì có nghĩa là số tiền bạn sẽ nhận được trong mỗi tháng chính xác là trọn vẹn 10 triệu. Bạn sẽ không cần phải chi trả thêm bất kỳ khoản nào trong số tiền lương bạn nhận được.
Ưu điểm
Bạn sẽ nhận được đúng số tiền mà bạn đã thỏa thuận từ trước mà không cần phải tính toán hay chịu bất kỳ khoản chi phí nào vì công ty sẽ là người giải quyết những vấn đề đó.
Nhược điểm
Nhiều công ty sẽ lợi dụng sự thiếu hiểu biết hoặc sơ sót của bạn để trả cho bạn số tiền thấp hơn mức lương bạn mong muốn.
Ví dụ:
Khi nhà tuyển dụng hỏi bạn muốn mức lương như thế nào? Dù bạn đã đưa ra mức lương thỏa thuận là 10 triệu nhưng khi nhận lương thì chỉ còn có 8 triệu 950 ngàn. Vậy vấn đề là ở đâu? Có thể là do đôi bên sơ sót không nói rõ khi thỏa thuận lương, sau đó nhà tuyển dụng mặc định lấy lương Gross.
Hoặc cũng có thể là do bạn không phân biệt được lương Gross với Net là gì nên đã nhầm lẫn… Hàng ngàn lý do có thể xảy ra nếu bạn không đủ kiến thức về 2 hình thức chi trả lương này.
Lương Gross là gì?
Khái niệm và ưu nhược điểm của lương Gross
Lương Gross là khoản lương mà bạn sẽ nhận được sau khi công ty đã chi trả hết các loại chi phí như bảo hiểm xã hội, bảo hiểm sức khỏe, bảo hiểm thất nghiệp và thuế thu nhập cá nhân. Chắc chắn số tiền lương thực lãnh của bạn sẽ thấp hơn khoản lương Gross mà bạn đã thỏa thuận với nhà tuyển dụng.
Lấy ví dụ:
Nếu 1 công ty offer bạn mức lương 10 triệu Gross thì đồng nghĩa với việc bạn chỉ nhận mức thực lãnh là 8 triệu 950 ngàn vì bạn đã phải trích ra 8% cho Bảo hiểm Xã hội, 1.5% Bảo hiểm Y tế và 1% bảo hiểm thất nghiệp. Ngoài ra với mức lương Gross là 10 triệu bạn còn phải chi trả mức thuế thu nhập cá nhân nữa.
Ưu điểm
Bạn sẽ nhận được đầy đủ tất cả các quyền lợi về bảo hiểm, đồng thời bạn cũng có thể tự chủ động để tính toán mức lương bạn sẽ nhận được.
Khuyết điểm
Nếu bạn không phải là một người giỏi tính toán hoặc chưa rõ số tiền mình phải chi ra cho bảo hiểm và thuế thì hãy cẩn thận nhé, vì có thể bạn sẽ tính sai và nhận được số tiền lương thấp hơn số lương bạn mong muốn đấy!
Ví dụ: Bạn kỳ vọng mức thực lãnh của bạn ở mức 10 triệu nhưng vì bạn tính toán nhầm hoặc bạn không rõ số % phải trả cho bảo hiểm như thế nào nên bạn chỉ thỏa thuận với nhà tuyển dụng mức lương Gross 10 triệu 500 ngàn. Với 10 triệu 500 ngàn Gross thì chắc chắn số tiền thực lãnh sẽ không đủ 10 triệu như bạn dự tính.
Cách tính lương Gross và Net
Để tránh những trường hợp như tính nhầm lương, không rõ bảo hiểm trừ lương bao nhiêu thì TopDev sẽ đút kết ra một vài công thức về cách tính lương Net, lương Gross và thuế thu nhập cá nhân, bạn chỉ cần dựa vào công thức chuẩn này là sẽ có thể tính toán mức thực lãnh của bạn một cách dễ dàng.
Thuế TNCN: Thuế Thu nhập Cá nhân (% tùy vào giá trị lương)
Bạn có thể tiết kiệm được nhiề thời gian, công sức và tăng tính chính xác hơn khi sử dụng công cụ tính lương của TopDev.
Cách tính thuế Thu nhập Cá nhân
Thuế Thu nhập Cá nhân = Thu nhập tính thuế x thuế suất
Thu nhập tính thuế= Tổng lương nhận được – Các khoản được miễn thuế – Các khoản giảm trừ
Trong đó :
Tổng lương nhận được= Lương + phụ cấp + các khoản bổ sung khác
Tổng lương nhận được: toàn bộ các khoản thực lãnh của người lao động nhận được trong tháng
Các khoản được miễn thuế (Nếu có)= Lương tăng ca + Thưởng + Phụ cấp cơm trưa + Phụ cấp điện thoại + Phụ cấp đồng phục
Phụ cấp tăng ca và phụ cấp cơm trưa còn có điều kiện kèm theo. Trong đó phụ cấp tăng ca chỉ tính thuế trên mức lương cơ bản, ví dụ ngày công thông thường của bạn là 200 ngàn, hôm nào tăng ca thì sẽ được 500 ngàn => bạn chỉ cần đóng phần thuế cho 200 ngàn. Ngoài ra, phụ cấp ăn trưa sẽ bị tính thuế nếu số tiền phụ cấp nhiều hơn 730 ngàn.
Các khoản giảm trừ (theo luật mới nhất từ 1/7/2020):
Giảm trừ gia cảnh = Người lao động (11 triệu/tháng/người) + Người phụ thuộc (4,4 triệu/tháng/người)
Lưu ý:
Đối với người lao động thì không cần phải đăng ký với sở về khoản giảm trừ 11 triệu này, mà chỉ cần chọn 1 nơi để tính vào giảm trừ gia cảnh nếu đã từng làm nhiều nơi.
Đối với người phụ thuộc thì phải đăng ký, khai báo với cục Thuế
Nơi có thể đăng ký giảm trừ không nhất thiết phải là nơi nhận lại khoản tiền giảm trừ.
Người lao động có thể đăng ký chịu cho nhiều người phụ thuộc.
Các khoản giảm trừ có hiệu lực ngay kể từ khi ký tên đăng ký.
Người phụ thuộc chỉ có thể đăng ký giảm trừ cho duy nhất 1 người lao động.
Nếu người lao động có chung 1 người phụ thuộc thì 2 bên tự thỏa thuận ai là người đăng ký cho người phụ thuộc ấy.
Ví dụ: Đặt trường hợp trong một gia đình 3 người có cha mẹ và con, trong đó con là người phụ thuộc, cha mẹ là người lao động thì họ sẽ phải thỏa thuận ai mới là người đăng ký giảm trừ cho con.
Sau khi đọc qua các tính lương ở trên thì bạn cũng có thể dễ dàng hình dung được lương Gross và Net thật ra không có gì khác biệt, bạn vẫn sẽ nhận được đúng số tiền mà bạn đã thỏa thuận dù là lương Gross hay Net.
Tuy nhiên, bạn có thể dựa vào ưu nhược điểm mà TopDev đã phân tích ở trên để chọn cho mình hướng deal lương phù hợp với bạn. Đối với những bạn không giỏi tính toán nhanh thì bạn nên chọn deal lương Net và yêu cầu có toàn bộ Bảo hiểm (BHXH, BHYT, BHTN), Thuế thu nhập, đãi ngộ theo luật pháp lao động của nước ta hiện nay để tránh bị các công ty luồn lách bỏ qua.
Còn đối với các bạn giỏi tính toán hoặc trong trường hợp không thể nhớ nổi các loại Bảo hiểm thuế mà bạn phải đóng thì bạn hãy mạnh dạn chủ động yêu cầu mức lương Gross. Lưu ý khi bạn chọn Gross là bạn đã thực sự tính đúng được khoản thực lãnh của mình nhé!
Ngoài ra còn cách đơn giản hơn hết là bạn tự đặt cho mình 1 mức lương bạn có thể chấp nhận được cho vị trí đó. Sau đó bạn chỉ cần lấy kết quả mà bạn đã tự tính toán sẵn ở nhà bằng công thức mà TopDev đã cung cấp ở trên hoặc sử dụng tool chuyển đổi lương Gross Net để deal với công ty. Với cách này, bạn chắc chắn sẽ không bao giờ bị “hố” khi deal lương với bất kỳ công ty nào!
Để có sự chuẩn bị tốt nhất cho Quiz 04, các bạn có thể luyện tập giải các đề thi về AI đã diễn ra trong các Quiz cũ của Kambria. Các vòng thi Quiz có những dạng đề bài tương tự nhau, nên việc luyện tập các vòng thi trước sẽ giúp bạn làm quen và nâng cao điểm số khi tham gia dự thi.
Các vòng thi cũ của Kambria Code Challenge luôn được lưu tại tab Previous Challenges trong mỗi quiz. Chỉ cần vài cú click đơn giản, bạn sẽ tìm thấy đề thi cũ và tiến hành giải thử.
Hoặc, bạn có thể luyện tập giải Quiz 01 và Quiz 02 ngay khi click vào các đường link dưới đây. Ngoài ra, bạn cũng có thể xem lại bài giải của các Quiz sau khi hoàn thành xong.
Kambria cũng chuẩn bị các tài liệu khác để giúp bạn ôn tập kiến thức. Bạn có thể xem tại đây: https://app.kambria.io/library
Kambria Code Challenge có tổng cộng 4 Quiz, trong đó Quiz 04 có giải thưởng lớn nhất với 2 bounty được mở cùng lúc:
Standard Quiz 04 Bounty: tất cả mọi người đều có thể đăng ký tham gia. Bounty này có tổng cộng 15 câu hỏi với độ khó tương đương với các Quiz trước đây của Kambria Code Challenge.
Special Quiz 04 Bounty: chỉ những thí sinh đã tham gia ít nhất 2 Quiz của Kambria Code Challenge mới được tham gia Special Bounty. Special Bounty có tổng cộng 20 câu hỏi với độ khó cao hơn, cùng với giải thưởng lớn hơn.
Kambria Code Challenge hiện tại đang diễn ra Quiz 04. Bạn click vào link sau để tìm hiểu thêm thông tin! Hoặc đăng ký tham dự Quiz 04 theo hướng dẫn tại:
Chuẩn hóa văn phong theo hướng quốc tế luôn là vấn đề mà nhiều người Việt mắc phải khi viết CV. Vì thế, việc nắm bắt chính xác những yếu tố cần thiết để viết một CV – Hồ sơ xin việc tiếng Anh là điều cần thiết. Nhất là trong thời đại hội nhập quốc tế như hiện nay, một chiếc CV tiếng Anh chuẩn về nội dung, đúng về cách thức sẽ là lợi thế lớn cho bạn trong “cuộc chơi” nghề nghiệp.
Đảm bảo nội dung CV có bố cục rõ ràng và khoa học
3s đầu tiên được đánh giá là rất quan trọng. Vì đó là cơ sở để nhà tuyển dụng xem xét và sàng lọc CV của bạn. Liệu CV của bạn sẽ có một tổng thể hoàn chỉnh hay sơ sài? Hãy đảm bảo rằng CV của bạn bao gồm đầy đủ các mục trọng tâm trước khi đi sâu khai thác nội dung từng phần
Một CV xin việc thường phải đảm bảo ít nhất các thông tin sau đây.
– Khi viết CV tiếng Anh, bạn cần phải có ảnh đại diện (nên lựa chọn ảnh rõ mặt, nghiêm túc, miêu tả thần thái tốt nhất của bạn).
– Ngoài ra, bạn tạo ra ấn tượng bằng cách thêm phần mô tả ngắn về bản thân. Đó có thể là phương châm sống – làm việc hay một câu châm ngôn mà bạn tâm đắc.
Mục này được xem là điểm nhấn thu hút nhà tuyển dụng. Hãy trình bày những nội dung để nhấn mạnh về đặc điểm tính cách, các giá trị chứng tỏ bạn là ứng viên tiềm năng nhất cho vị trí ứng tuyển.
Ghi nhớ: Hãy nhớ chia mục tiêu nghề nghiệp thành hai mục nhỏ rõ ràng gồm:
Mục tiêu dài hạn
Mục tiêu ngắn hạn
Trình độ học vấn (Education and qualifications)
Mục này cần bạn trình bày những nội dung như bằng cấp, tên trường học, chuyên ngành học và thời gian bắt đầu học/tốt nghiệp (chính thức hoặc dự kiến).
Ghi nhớ: Những thông tin về trình độ học vấn nên được triển khai một cách ngắn gọn và rõ ràng.
Kinh nghiệm làm việc (Work Experience)
Nếu trong trường hợp, bạn nhảy việc nhiều lần. Hãy thông minh trong việc lựa chọn và liệt kê những kinh nghiệm có liên quan đến vị trí ứng tuyển hiện tại.
Tiếp đó là sắp xếp chúng theo một trình tự logic. Để tạo điểm nhấn, đừng quên sử dụng các từ khóa phản ánh tính hiệu quả cao như: developing, planning, organizing, creating…
Ngoài ra, nếu bạn nghĩ rằng các kinh nghiệm chạy bàn, dạy thêm,.. là những trải nghiệm thừa thãi. Đó là suy nghĩ hoàn toàn sai lầm. Ở đây, chúng ta không so sánh những trải nghiệm. Mọi kinh nghiệm đều có giá trị riêng của nó. Tùy vào vị trí ứng tuyển, bạn hãy xem xét để điều chỉnh sao cho phù hợp nhất. Biết đâu một vài kỹ năng về giao tiếp, truyền đạt, chăm sóc khách hàng,… lại là thứ nhà tuyển dụng họ đang mong đợi.
Ghi nhớ: Hãy cố gắng thể hiện những kỹ năng có liên quan đến vị trí bạn đang ứng tuyển để gia tăng cơ hội.
Sở thích và thành tích hoạt động ngoại khóa (Interests and achievements)
Đừng đưa vào những sở thích quá trẻ con và tẻ nhạt vào CV. Thay vào đó, bạn hãy giới thiệu về các sở thích rèn luyện về chuyên môn, hoạt động ngoại khóa phát triển kỹ năng mềm,…,
Ghi nhớ:
Nội dung cần ngắn gọn và rõ ràng khi liệt kê các sở thích khác nhau.
Tránh dùng những sở thích đại trà, giảm hiệu ứng tương tác với nhà tuyển dụng: watching TV, reading, stamp collecting,…
Kỹ năng (Skills)
Đây là mục để bản thể hiện ra những kỹ năng chuyên môn, kỹ năng mềm và khả năng ngoại ngữ của bạn.
Ghi nhớ: Đừng bao giờ thể hiện những kỹ năng bạn không có. Dù có cố tình hay không, dưới con mắt chuyên môn, bạn sẽ trở thành kẻ bại trận trong phút chốc.
Người tham khảo/người giới thiệu (References)
Mục này không nhất thiết phải có. Nhưng đối với các vị trí nhiều kinh nghiệm, thông tin người giới thiệu có ý nghĩa quan trọng. Bạn có thể thêm thông tin của sếp cũ, thấy cô giảng viên hay những người bạn đã từng công tác.
Ghi nhớ: Bạn nên nhận được sự đồng ý từ người giới thiệu trước khi đưa thông tin của họ vào CV của mình.
Một số lưu ý quan trọng giúp CV đạt chuẩn
Ưu tiên sử dụng động từ ở dạng Danh động từ/V-ing (Gerund)
Để đảm bảo tính chuyên nghiệp của CV, bạn nên thống nhất cách sử dụng danh động từ ngay từ đầu.
Theo quy chuẩn chung của thể thức trình bày văn bản khoa học tiếng anh, có 3 loại động từ được linh động sử dụng nhất: động từ nguyên mẫu, động từ ở quá khứ và danh động từ/V-ing. Tuy nhiên, cách dùng V-ing (Gerund) được sử dụng nhiều nhất và nhận được đánh giá cao từ các chuyên gia.
Tăng hiệu quả ứng tuyển bằng cách tạo CV Online hiệu quả trên TopDev
V-ing (Gerund) giúp bố cục nội dung CV được truyền tải một cách sang trọng. Đồng thời, Gerund cũng giúp nhà tuyển dụng nắm bắt nhanh và chính xác các thông tin.
Không sử dụng câu văn quá dài
Nhà tuyển dụng sẽ rất ngao ngán khi thưởng thức những đoạn văn bản quá dài dòng. Thay vì mất thời gian dông dài, bạn hãy tối ưu từ ngữ cùng cách diễn giải cô đọng. Đúng trọng tâm mà vẫn có sức hút, không lan man với những ngữ pháp hay câu từ quá phức tạp.
Chú ý về cách thức đặt tiêu đề
Bạn không cần phải quá khuôn mẫu theo lối đại trà. Hãy loại bỏ sự nhàm chán bằng cách đặt dòng chữ họ và tên của bạn vào vị trí trung tâm, phía trên CV.
Thiện cảm ban đầu rất quan trọng. Bạn không cần làm lố, cũng không cần quá cách điệu. Đơn giản là bạn chị tạo ấn tượng bằng cách đặt tiêu đề. Một chút điều chỉnh có thể tạo ra sự khác biệt, giảm thiểu đi sự đơn điệu vốn có. Biết đâu, nhà tuyển dụng sẽ nhớ ra bạn là ai vì cách đặt tiêu đề khác những ứng viên còn lại. Đó là một tín hiệu tốt.
Bổ sung thêm Cover Letter để hoàn thiện hồ sơ xin việc
Bên cạnh có một CV – Hồ sơ xin việc hoàn chỉnh, bạn nên bổ sung thêm một lá thư xin việc – Cover Letter.
Lưu ý, Cover Letter cũng đảm bảo tính ngắn gọn và súc tích. Không nên kể lể quá nhiều trong thư xin việc.
Bên cạnh đó, cách xưng hô thông qua lời chào ban đầu cũng được xem là một phần quan trọng. Đối với nhà tuyển dụng mà bạn đã biết rõ tên và giới tính, hãy dùng “Dear + Ms/Mr + Tên”. Nếu không biết thì bạn cũng tránh cách dùng quá chung chung như “Dear + Tên công ty”. Hãy cân nhắc đến một vài cụm từ khác phù hợp hơn, chẳng hạn “Dear + HR Department/ HR team”. Đó là tính chuyên nghiệp cần có khi bạn bắt đầu cuộc trò hội thoại thông qua con chữ và sự cảm nhận.
Thông minh trong việc chọn từ vựng
Bạn nên ưu tiên những từ vựng thể hiện sự khẳng định và có tính phổ quát. Sau đây để tạo nên một CV hấp dẫn. Dưới đây là top 15 từ vựng bạn nên thêm vào CV của mình.
Achieve (đạt được)
Improve (cải thiện/tiến bộ)
Train/Mentor (đào tạo/cố vấn)
Manage (thành công trong việc gì đó)
Create (sáng tạo)
Resolved (quyết tâm)
Volunteer (tình nguyện)
Influence (ảnh hưởng)
Increase/Decrease (tăng/giảm)
Idea (ý kiến, ý tưởng)
Negotiate (đàm phán, thương lượng)
Launch (ra mắt, khởi đầu)
Revenue/Profits (doanh thu/lợi nhuận)
Under budget (tiết kiệm, chi tiêu trong mức cho phép)
Win (chiến thắng)
Hạn chế những từ ngữ sáo rỗng
Một loạt những tính từ dưới đây được bắt gặp nhiều trong CV tiếng Anh. Thế nhưng, chúng lại không được các nhà tuyển dụng đánh giá cao. Vì vậy, bạn nên cân nhắc về việc sử dụng chúng nhé!
Hard worker: Làm việc chăm chỉ
Dynamic: Năng động
Detail-oriented: Chú ý đến từng chi tiết nhỏ
Self-motivated: Tự tạo động lực cho bản thân
Motivated: Có khả năng thúc đẩy người khác làm việc
Câu chuyện về cái comment tại một blog nọ
Bài viết được sự cho phép của tác giả Huy Trần
Chuyện rằng,
Có một ông bạn nọ có cái blog ở trên mạng, cũng có dăm bảy người vào đọc. Tánh ổng không thích học sâu, chỉ thích học rộng, mà lẽ đời, học rộng mà không sâu thì viết bài nào cũng hỏng. Cho nên bài nào ổng viết ra cũng không sai chỗ này thì cũng lỗi chỗ kia. Cơ mà ổng đâu có biết.
Chỉ tội cho những người theo dõi blog của ổng, thấy bài sai be bét mà không làm gì được vì không có phương tiện gì để họ góp ý ngay trên blog. Cũng có mấy người quan tâm, ráng tìm cho bằng được cái địa chỉ email để mà góp ý (comment).
Thế rồi ổng cũng sắm cho blog một cái nút comment,
Thời đó người ta toàn xài Disqus, thế là ổng cũng xài Disqus.
Thế rồi theo phong trào, người ta bắt đầu nói nhiều đến những mặt trái của Disqus, ổng cũng học đòi, nghỉ chơi với Disqus, và tự build một cái chức năng comment riêng cho blog.
Ổng build cái chức năng comment này bằng Rust, mà thực ra nó chỉ là một cái REST API chỉ có 2 endpoints để list danh sách các comment và post comment mới.
Bài toán đặt ra
Để comment thì người ta cần phải login, vốn là một con người lười biếng, ổng xài luôn dịch vụ login của Google, đỡ phải build authentication system rồi đau đầu với việc lưu trữ thông tin người dùng. Phía frontend chỉ cần lấy ra tên hiển thị (display name) và hình ảnh đại diện (profile picture) của user đã đăng nhập, cho nó vào comment payload và gửi đi.
Và cũng vì là một con người lười biếng, ổng biết ai rồi cũng sẽ lười biếng. Nên rất có thể người ta sẽ chẳng thèm comment luôn, vì phải tốn thêm một bước login. Thế nên ổng quyết định, bên cạnh việc login, ổng sẽ cho phép người ta comment mà không cần login luôn. Trong trường hợp này, phía frontend sẽ gán display name thành “Không Tên”, và profile picture sẽ là ảnh con Vô Diện (Kaonashi) trong phim Spirited Away. Hợp lý quá chừng.
Nhưng cũng lại vì, vốn là một con người lười biếng, nên ổng code cái comment API mà không thèm áp dụng bất kì một hình thức bảo vệ nào cho cái API đó. Suy cho cùng, đó cũng không hẳn là lười biếng, chỉ là ổng đã quá tin tưởng vào các bạn độc giả.
Thế là từ đó, cứ dăm ba bữa, ổng lại phải ngồi hì hục xóa comment của các bạn độc giả dễ thương, vô tình view source của blog và phát hiện ra cái comment API hớ hênh, viết luôn script comment tự động với tốc độ ánh sáng.
Nói cho công bằng thì có đến 2 loại nghịch ngợm thường gặp từ khi có cái chức năng comment:
Loại mất công:
Là những comment không có nội dung gì, và các thanh niên thường kiên nhẫn tự mình spam vào ô comment rồi bấm submit.
Loại tự động hóa:
Phát huy tinh thần công nghệ bốn chấm không, các bạn thường viết script gửi request tự động submit comment với số lượng lớn và cường độ cao.
Loại thứ nhất thì ổng quan niệm là, vì người ta đã bỏ công ra spam một cách thủ công, thật là thất lễ nếu chúng ta không xử lý bằng một cách mất công tương tự:
Đối với các đối tượng sử dụng công nghệ 4.0, thì cũng phải dùng 4.0 để xử lý.
Thực ra thì cũng cần phải mạnh dạn tự kiểm điểm một tí, gốc rễ của vấn đề đến từ việc chủ nhà không chịu đưa ra các biện pháp để giữ nhà. Cho nên giải pháp khắc phục là, làm sao để hạn chế được khả năng spam nhưng phải bảo đảm rằng, chỉ cần việc comment thực sự được thực hiên bởi người đọc – không phải máy tính, thì vẫn sẽ ghi nhận đó là comment hợp lệ.
Có rất nhiều phương án khắc phục được đưa ra:
Sau khi cân nhắc ưu, nhược điểm giữa các phương án, ông blogger quyết định sẽ sử dụng phương pháp challenge, nhưng vốn là một người lười biếng, ổng biết nếu cứ bắt người ta gõ captcha mỗi lần comment thì họ sẽ chọn cách không thèm comment nữa.
Rất may, Google reCAPTCHA có một hình thức xác minh khá hay đó là captcha ẩn.
Với hình thức này, Google sẽ dựa trên nhiều yếu tố khác nhau để xác định request được gửi đi có xuất phát từ một hành động thực tế của một user không, hay là xảy ra tự động. Việc tích hợp invisible captcha vào hệ thống sẵn có cũng khá đơn giản:
Khi phía frontend chuẩn bị gửi comment request, thì phải gửi một request đến Google reCAPTCHA trước, nhận về một mã xác thực, rồi mới gửi mã xác thực này kèm với comment request.
Việc xử lý comment request ở phía server cũng phải thực hiện một bước xác minh với server của Google, trước khi chấp nhận request từ phía user.
Bài viết gốc được đăng tải tại thefullsnack.com
Có thể bạn quan tâm:
Xem thêm các việc làm Developer hấp dẫn tại TopDev