Home Blog Page 174

Tất Tần Tật Về AI và Machine Learning

Bài viết này tổng hợp các nguồn tham khảo để bạn tìm hiểu về AI và Machine Learning.
8 website để học AI

1. OPEN AI

Nếu bạn muốn học tập và nghiên cứu về AI một cách dễ dàng và thoải mái nhất thì đây là nơi hoàn hảo nhất cho bạn. Open AI là một blog có mục tiêu thúc đẩy trí thông minh kỹ thuật số vì lợi ích của nhân loại, và đó là lý do tại sao họ quyết định làm cho công việc nghiên cứu của họ có thể tiếp cận được với công chúng mà không bị ràng buộc tài chính.

2. MACHINE LEARNING MASTERY

ĐƯỢC TẠO BỞI TIẾN SĨ JASON BROWNLEE, MỘT DEVELOPER CHUYÊN NGHIỆP CÓ NHIỀU BẰNG CẤP CAO VỀ TRÍ TUỆ NHÂN TẠO. ĐÂY LÀ NƠI DÀNH RIÊNG CHO NHỮNG NGƯỜI MỚI BẮT ĐẦU. MỘT SỐ KHÓA HỌC ĐƯỢC CUNG CẤP BỞI BLOG NÀY BAO GỒM APPLIED MACHINE LEARNING PROCESS, MACHINE LEARNING ALGORITHMS, MACHINE LEARNING WITH PYTHON, MACHINE LEARNING WITH R…VV

3. CHATBOT’S LIFE

BẠN ĐANG TÌM KIẾM MỘT BLOG AI GIÀU NỘI DUNG? NẾU VẬY THÌ ĐÂY SẼ LÀ ĐIỂM ĐẾN THÍCH HỢP CỦA BẠN. BẠN CÓ THỂ TÌM THẤY MỘT LOẠT CÁC CÔNG CỤ, KHÓA HỌC BỔ ÍCH TẠI ĐÂY. PHẦN THÚ VỊ NHẤT Ở ĐÂY LÀ PHẦN DỰ ÁN. TRONG PHẦN NÀY, BẠN CÓ THỂ THEO DÕI CÁC DỰ ÁN MỚI NHẤT VÀ BẮT ĐẦU DỰ ÁN CỦA BẠN. NẾU BẠN LÀ MỘT BLOGGER TRONG LĨNH VỰC AI, BẠN CŨNG CÓ THỂ VIẾT BÀI CHO BLOG NÀY.

4. COURSERA

MỘT TRANG RẤT QUEN THUỘC Ở CÁC BÀI VIẾT TRƯỚC ĐÂY CỦA MÌNH NÊN MÌNH CŨNG KHÔNG NÓI THÊM NỮA. ĐÂY LÀ TRANG WEB HÀNG ĐẦU ĐỂ BẠN HỌC MỌI NGÔN NGỮ LẬP TRÌNH

5. SCIENCEDAILY

NẾU BẠN ĐANG CẦN TÌM 1 WEBSITE DẠNG ALL IN ONE THÌ ĐÂY LÀ NƠI BẠN NÊN GHÉ THĂM. ĐÂY LÀ MỘT NƠI BAO GỒM MỌI THỨ VỀ AI, NỔI BẬT NHẤT LÀ TIN TỨC AI. TRANG NÀY CUNG CẤP NHỮNG TIN TỨC MỚI NHẤT VỀ AI CŨNG NHƯ MỌI THỨ KHÁC BẠN CẦN VỀ CHỦ ĐỀ AI.

6. Google AI Blog

Đây là một nơi giải quyết các vấn đề thách thức nhất trong AI và các lĩnh vực liên quan. Blog này bao gồm nhiều lĩnh vực nghiên cứu rộng rãi về AI. Thích hợp cho mọi đối tượng từ mới bắt đầu cho đến chuyên nghiệp.Một nơi không thể bỏ qua cho bất kỳ ai muốn học tập và nghiên cứu về AI và những thứ liên quan.

7. ARTIFICIAL-INTELLIGENCE.BLOG

ARTIFICIAL – INTELLIGENCE BLOG LÀ MỘT BLOG TUYỆT VỜI BAO GỒM CÁC TIN TỨC VỀ TRÍ TUỆ NHÂN TẠO, NGHIÊN CỨU AI, SÁCH – TÀI LIỆU VỀ AI, NHỮNG NGƯỜI TRONG NGÀNH AI, CÁC HỘI NGHỊ VỀ AI VÀ CÁC CÔNG TY TRONG NGÀNH AI. LÀ MỘT BLOG TUYỆT VỜI CHO BẤT CỨ AI QUAN TÂM ĐẾN AI ĐỂ THEO DÕI VÌ NÓ CHỨA RẤT NHIỀU TÀI NGUYÊN RẤT BỔ ÍCH.

8. AI TRENDS

ĐÂY LÀ MỘT NƠI RẤT TUYỆT VỜI VÌ BẠN CÓ THỂ TÌM THẤY NHỮNG GÌ ĐANG THỊNH HÀNH TRONG NGÀNH CÔNG NGHIỆP AI NGAY TỪ TRANG CHỦ. BAO GỒM CÁC DANH MỤC KINH DOANH, ĐẦU TƯ, CÔNG NGHỆ, HỘI THẢO TRÊN WEB, NGHIÊN CỨU VÀ TÀI NGUYÊN. VÌ VẬY, NẾU BẠN ĐANG TÌM KIẾM ĐẦU TƯ, ỨNG DỤNG KINH DOANH VÀ KHỞI NGHIỆP TRONG AI, CŨNG NHƯ CÁC CÔNG NGHỆ NHƯ DỮ BIG DATA, ROBOT, XE TỰ LÁI, NHẬN DẠNG GIỌNG NÓI – KHUÔN MẶT, THÌ HÃY THEO DÕI AI TRENDS.

Và một vài trang web khác:

9. UDEMY

10. LYNDA

11. CHATBOT MAGAZINE

12. TOPBOTS

13. PLURALSIGHT

TOP 5 KÊNH YOUTUBE TỐT NHẤT

1. SIRAJ RAVAL

2. TWO MINUTE PAPERS

3. THE ARTIFICIAL INTELLIGENCE CHANNEL

4. LUIS SERRANO

5. ARTIFICIAL INTELLIGENCE — ALL IN ONE

VÀ MỘT SỐ KÊNH KHÁC

6. Deeplearning.ai
7. Arxiv Insights
8. sentdex
9. Deep Learning TV
10. Machine Learning TV
11. Giant Neural Network
12. Google Cloud Platform
13. Machine Learning Conference
14. TechCrunch
15. Crash Course Computer Science
16. Computerphile
17. Engadget
18. The Verge

KHO TÀI NGUYÊN – CÔNG CỤ KHỔNG LỒ

LET’S START WITH THIS:

Abi (www.abi.ai) Abi is an artificially intelligent health assistant which connects people to doctors for quick advice or in-depth consultations.
Cue by kiwi.ai helps you to reduce and quit smoking

Artificial Intelligence for personal use:

PERSONAL / IN-HOME

Ems — helps you find the perfect place to live
Bridge Kitchen — kitchen assistant for turn-by-turn directions in the kitchen
UnifyID — verify your identity by the way you walk, type and sit

WORK

Carly — helps you manage phone calls
ETCH — helps you manage your networks into a searchable database
Findo — Your smart search assistant across email, files &personal cloud
Leap — recommends companies to apply for based on your skills
Lomi — identifies sales leads
Mosaic — helps you write better resumes
Newton — helps you find a dream job
Notion — helps with email overload, organisation and communication
Robby — a better and smarter calendar
Stella — scans for jobs and helps manage your application process
Woo — helps you make smarter decision for your career, anonymously
Aloe — replaces your notes books, diary and meeting preparation material
Wade&Wendy — your career advisor
Nudge.ai — browser widget that helps you learn about people your emailing

SOCIAL

Brightcrowd — helps you find meaningful professional connections
Capsule.ai — recall the good times in life
Dating.ai — dating app with Face Search
ETCH — helps you manage your networks into a searchable database
Eezy — let Eezy take care of your evening so you can take care of having fun
Hashley — ironic hashtag and comment generator for your photos
Hotness.ai — can tell you how hot you are
Nudge.ai — actionable insights and relationship intelligence
Rey — introduces you to people you should really meet (work and play)

EDUCATION

Thirdleap — helps children to learn maths
Woogie — the conversational AI robot that makes learning and discovery fun for children

HEALTH / MEDICAL

Abi —a health assistant which connects people to doctors for quick advice
Ada — can help if you’re feeling unwell
Airi — personal health coach
Alz.ai — helps you care for loved ones with Alzheimer’s
Amélie — chatbot for mental health
Bitesnap — food recognition from meal photos to help count calories
doc.ai — makes lab results easy to understand
Gyan — helps you go from symptoms to likely conditions
Joy — helps you track and improve your mental health
Kiwi — helps you to reduce and quit smoking
Tess by X2AI — therapist in your pocket
Sleep.ai — diagnose snoring and tooth grinding

AGENTS — PERSONAL

Amazon Echo / Alexa — everyday personal assistant for in-home
Apple Siri — everyday personal assistant on iPhone and Mac
Cortana — everyday personal assistant on PC and Windows devices
Facebook M — competitors to Siri, Now and Cortana
Fin — a powerful personal assistant
Focus — helps you focus, get tasks done and prioritise your day
Gatebox — a holographic anime assistant in an espresso machine
Google Assistant — everyday personal assistant
Hound — everyday personal assistant
Ling — similar to Amazon Echo
Mycroft — is the world’s first open source voice assistant
Remi — like Siri with an interface
Spoken — virtual assistant with an interface
Viv — like Siri but 10x better

AGENTS — PROFESSIONAL

Clara — meeting scheduling assistant
Julie Desk — meeting scheduling assistant (aimed at C-Suite)
Kono — meeting scheduling assistant
Mimetic — meeting scheduling assistant
My Ally — handles meeting scheduling and manages calendar
SkipFlag — automatically discover and organise your work
Vesper — virtual assistant aimed at C-Suite
x.ai — meeting scheduling assistant
Zoom.ai — personal assistant to help you at work

AGENT — FUN

Fembot — your AI girlfriend
Lifos — dynamic independent entities that interact with the web and social
Replika — your AI friend that you raise through text conversations

AGENTS — CHATBOT

Brin — helps you make smarter business decisions
Chatfuel — create a Facebook chatbot in 7 minutes
Luka — chatbot messenger for people and other chatbots
Lyra — monitor analyse your carbon emissions
myWave — chatbot to help you throughout your daily life

ENTERTAINMENT / NEWS

Jottr 2 — content and news app that learns what you like and don’t like
News360 3
— learns what you enjoy and finds stories you’ll like

TRAVEL

Ada 2 — chatbot that helps you navigate and make decisions
Emma
— automatically calculates and adds meeting travel time
ETA
— helps you manage travel itineraries and meetings
HelloGbye — book complex trips with simple speech
Mezi —helps with booking flights, hotels, restaurant reservations and more
Nexar — dash cam app that helps you drive safer
Ready — traffic forecaster and travel time prediction
Spatial — reveal the social layer of cities

VEHICLE

Vinli — turns any car into a smart car

‍ FITNESS

Mara — smarter running app

MUSIC

Aiva — composes emotional soundtrack music
Pandora — finds music you might like

INSURANCE / LEGAL

Docubot — can advise you on legal issues
Driveway — tracks and rewards safe drivers

SHOPPING

Butler — Order food with voice (Alexa / Google Home)
Entrupy
— helps detect if high-end designer products are authentic
Fify — helps you shop for clothing
GoFind — helps you find clothing online by taking a photo
Mode.ai — helps you find clothing online

FINANCE

Abe — fast answers about your finances
Andy — a personal Tax Accountant
Ara — helps you budget
Bond — helps you achieve your financial goals
Mylo — rounds up your everyday purchases and invest the spare change
Olivia — helps you manage your finances
Responsive — institutional-grade active portfolio management
Roger — helps you pay bills easily
Wallet — AI for your daily finance decisions
Xoe.ai — AI lending chatbot

SOCIAL MEDIA / WEBSITE MANAGEMENT

Firedrop — websites designed automatically, just add content and publish
Hashley — ironic hashtag and comment generator for your photos
Millions.ai — throw content at it and it builds you a website
Oly — selects and helps you publish content to your social media
Signature — build elegant landing pages using your social media content
TheGrid — building websites automatically just by adding content
Zen.ai — personalised recommendations for your Shopify store

IOT / IIOT

Aerial — home activity, movement and identity sensor
Bridge.ai — smart-home platform focused on speech and sound
Cubic — one place to connect your smart home devices
Grojo — grow room controller and monitoring system
Home — autonomous home operations with connected devices
Hello — helps you monitor and improve your sleep
Josh — whole house voice control
Mycroft — is the world’s first open source voice assistant
Nanit — baby monitor that measures sleep and caregiver interactions
Nest — a range of in-home devices such as Thermostat, security and alarms

WEARABLES

Eli — helps you learn a new language from conversations through your day
Kick.ai
— wearable for martial arts to help analyse kicks and fights

LANGUAGE / TRANSLATION

Liv — transcribe conversations in English and Hindi
Microsoft Translator
— language translator powered by neural networks
Watson.ai — legal, academic and financial translations

ROBOTS

Dispatch — delivery by robot
Jibo — an friendly interactive robot for the home
Roboy — a humanoid robot aimed to be as capable as a human
Rokid — a range of in-home robots and assistants
Spoon — a robot (I couldn’t work out its purpose, but it sounded cool!)
UBTECH — fun humanoid robots for the home (the popular Alpha and Cruz)

USEFUL + FUN + RANDOM

Botler — immigration process made simpler with a walk through
CaptionBot
— Microsoft describes any photo
Crowdfunding.ai
— crowdfunding platform for AI projects
Elevator — helps you find and buy cannabis (with recommendations)
Fieldguide — universal field guide that suggests possible matches
Frankenstain.ai — is a collaborative storytelling experiment using AI, machine learning, robotics, bio-engineering and IoT
#Laugh — laughs visualised in a digital format, that may be sent to space
IntelligentX Brewing Co. — beer brewed by artificial intelligence
Readster — book recommendations from AI
Spark — order cannabis from directly text messages
Subutai — peer-to-peer social cloud computing
Token — helps you send the perfect gift
Wixi — helps you fix Wifi problems

RESEARCH

Apollo — breaks down articles and PDF’s into quick, readable dot points
Ferret.ai
— helps you research by summarising articles and search ability
Iris — helps you research and visualise concepts in research papers

EVENTS, CONFERENCES AND COMMUNITIES

The AI Conference — an annual event where leading AI researchers and top industry practitioners meet and collaborate
Applied Artificial Intelligence Conference
— Bootstrap Labs Venture fir
Events.ai
— the one stop shop for AI/ML/DL events and conferences
Nucl.ai — game AI conference and courses
oh.hai.ai — strong name game!
The AI Forum — Montreal based AI conference
Amsterdam — applied AI community and events
Bangalore — applied AI community and events
Berlin — applied AI community and events
Bucharest — applied AI community and events
Budapest — applied AI community and events
City.ai — applied AI communities and events
Hamburg — applied AI community and events
Hongkong — applied AI community and events
London — applied AI community and events
Madrid — applied AI community and events
Milan — applied AI community and events
New York.ai — applied AI community and events
Krakow — applied AI community and events
Oslo — applied AI community and events
Tallinn — applied AI community and events
Tirana — applied AI community and events
Seattle — applied AI community and events
Singapore — applied AI community and events
Sofia — applied AI community and events
Stockholm — applied AI community and events
Valletta — applied AI community and events
TopDev via J2TEAM

Công bố Agenda Vietnam Web Summit 2019 Khu vực Hà Nội!

Ngày 13/12/2019 tới đây, các Web Summit-er khu vực Hà Nội sẽ được “lĩnh hội” những kiến thức gì từ các chuyên gia của chúng ta? Cùng cập nhật Agenda chính thức của Vietnam Web Summit 2019 Hà Nội!

Note ngay những topics “hợp gu” để nghe tại sự kiện bạn nhé!

Chỉ còn 2 ngày nữa thôi, bạn đã sẵn sàng cùng chúng tôi đắm mình trong thế giới công nghệ với những thông tin bổ ích cùng nhiều sản phẩm demo mới nhất!?

❗️ Săn ngay những tấm vé cuối cùng tại đây 👉🏼 www.vietnamwebsummit.com/ve-tham-du/

💯 “Buy more save more” với gói Combo dành cho nhóm 5-10-20-30 người với những giá cực ưu đãi nhưng vẫn giữ nguyên quyền lợi TIÊU CHUẨN!!! Đăng kí tại: https://vietnamwebsummit.com/goi-ve-doanh-nghiep/

=========

Vietnam Web Summit là chuỗi sự kiện thường niên dành cho cộng đồng phát triển web, quảng cáo web. Được đánh giá là một trong những sự kiện web lớn nhất tại Việt Nam, với sự tham gia của các ông lớn như Amazon, Google, Facebook, Nielsen…. Vietnam Web Summit 2019 hứa hẹn là đại tiệc công nghệ được mong chờ nhất trong giai đoạn cuối năm!

Bên cạnh đó, Vietnam Web Summit 2019 sẽ tiếp tục hỗ trợ triển lãm với sự trình diễn của các doanh nghiệp và startup. Đây cũng là nơi demo rất nhiều sản phẩm, công nghệ của các doanh nghiệp. Tuyển dụng cũng là một trong những hoạt động mang lại giá trị hữu ích cho cả doanh nghiệp và người tham dự. Đây là cơ hội lớn để các doanh nghiệp, developer cập nhật những công nghệ mới nhất, trao đổi trực tiếp cùng các chuyên gia đầu ngành. 

 

Câu chuyện làm Product tại FE CREDIT – Theo startup hay làm việc ở công ty lớn?

Product Mindset là một từ khóa nóng được nhắc đến rất nhiều trong thời gian gần đây, vậy Product Mindset thật sự là gì? Vì sao ngày càng có nhiều lập trình viên tìm hiểu về từ khóa này. Product Mindset hay còn gọi là “Tư duy làm sản phẩm”, làm sản phẩm hướng đến người dùng, nó được xem là chiếc chìa khóa quan trọng quyết định sự thành công của một sản phẩm khi nó còn trong trứng nước. Vì vậy, dù làm ở công ty lớn hay startup thì các lập trình viên cũng sẽ có được những nghiệm làm sản phẩm quý báu, quan trọng nhất vấn là phải thiết lập cho mình một tư duy sản phẩm.

Khi lập trình viên có tư duy sản phẩm tốt, họ sẽ luôn muốn làm sao để có thể đáp ứng được tốt nhất cho người dùng của họ. Việc đấy thúc đẩy người lập trình viên sẽ phải luôn cố gắng tìm tòi, học hỏi và nghĩ ra cách để phát triển sản phẩm trở nên tốt hơn và đáp ứng được nhu cầu của người dùng. Một Product mindset tốt sẽ, giúp cho lập trình viên vận dụng được tốt nhất những kiến thức mà họ đã học để có thể kết hợp được với nhau làm nên sản phẩm tốt.

Dù là một công ty nhỏ tư duy theo hướng “lean startup” hay một công ty tập đoàn lớn với nhiều tài nguyên và nhân lực, thì việc tìm hiểu về product cũng chính là cốt lõi của một sản phẩm tốt. Hãy cùng TopDev tìm hiểu về việc làm sản phẩm tại một trong những công ty tài chính lớn nhất tại Việt Nam FE CREDIT cùng anh Nguyễn Hoàng Linh – Project Manager. 

Anh có thể giới thiệu sơ qua về công việc của anh cũng như nhân sự của team PM (Project Manager) tại FE CREDIT không? 

Team PM của FE CREDIT gồm 5 người, mỗi người sẽ đảm nhận một project riêng biệt. Về cơ bản, các thành viên trong team có trách nhiệm ngang nhau nhưng sẽ có một manager nhiều kinh nghiệm hơn để hỗ trợ các bạn khác khi đang chạy dự án. Tùy theo tính chất của mỗi project, các thành viên có thể đảm nhận linh hoạt vai trò của PM hoặc Coordinator (chuyên viên điều phối).

Đối với những dự án quy mô lớn sẽ chia nhiều cấp độ thành viên quản trị Project Manager (bao gồm IT Project Manager, Functional Project Manager), và trách nhiệm sẽ được phân bổ rõ ràng ngay từ đầu. Ví dụ một dự án mình thực hiện liên quan đến app, thì cái timeline và delivery của dự án đó sẽ do IT Project Manager chịu trách nhiệm chính, nhưng performance khi sản phẩm đã được phát triển và cho ra mắt, phía business chấp nhận app đó như thế nào, những đánh giá (cần thay đổi gì, có gì chưa được) này sẽ thuộc về Functional Project Manager. 

Tiêu chuẩn tuyển dụng của team PM tại FE CREDIT là gì? 

Hầu hết các bạn trong team của mình đều đã đạt đến trình độ senior. Tuy nhiên mình đánh giá  trình độ của ứng viên không phụ thuộc vào số năm kinh nghiệm mà thông qua sản phẩm bạn đã thực hiện được trong quá trình làm việc. Thậm chí có những bạn sinh viên có tư duy và năng lực, sau khi hoàn thành đồ án tốt nghiệp có thể được các công ty offer mức lương ngang hàng với senior.

Anh có lời khuyên nào dành cho những bạn lập trình viên đang có ý định đi theo con đường trở thành một Product Manager hoặc Project Manager không? 

Thực ra đối với bản thân mình thì mình phải mất 5 năm học tập và làm việc để xác định chuyển từ lập trình viên sang trở thành một BA (Business Analyst).

Đa số các bạn lập trình viên muốn chuyển ngành sẽ hướng sang làm QC (review code, testing), QA (improve quality), BA, PM. Khi bạn đã bắt đầu từ một có background kỹ thuật thì bạn sẽ mong muốn cải thiện kỹ năng chuyên môn để trở thành một chuyên gia trong lĩnh vực đó, thay vì tập trung hiểu sâu về quy trình hoặc sản phẩm để tiến lên cấp quản lý hoặc tìm hiểu công việc của một BA. Do đó sự thành công nằm ở chỗ bạn phải chấp nhận thay đổi tư duy và khả năng thích nghi được với công việc mới.

Hơn thế nữa, mình luôn khuyến khích các bạn phải thật sự suy nghĩ nhiều hơn về sản phẩm họ đang làm cũng như “để ý” khi sử dụng các sản phẩm khác, tiếp cận với người dùng để tìm hiểu nhu cầu của họ và làm được sản phẩm thực sự tốt cho người dùng. Nhờ vậy, họ mới ngày càng được trau dồi, từ đó có được ý tưởng để phát triển ứng dụng ngày một lớn mạnh hơn.

Vậy theo anh đâu là sự khác biệt giữa tư duy của một lập trình viên và một người làm product?

Sự khác biệt ở đây cũng khá rõ ràng, nếu là một lập trình viên, đa phần bạn sẽ nghĩ rằng “Bạn có thể làm được sản phẩm gì với khả năng và kiến thức hiện tại của bạn?”, “Sản phẩm ấy sẽ giúp ích được gì cho mọi người?”. Nếu bạn là một  chuyên làm product, điều đầu tiên bạn nghĩ sẽ là “Bạn sẽ làm được sản phẩm giải quyết bài toán gì cho mọi người?. Nghe có vẻ giống nhau nhưng nó thật sự là sự khác biệt như ngày và đêm. Phải tư duy đúng trước đã, rồi sau đó mới biết đường tìm hiểu phải phát triển sản phẩm theo đúng hướng. 

Tại FE CREDIT, các bạn sẽ được trải nghiệm làm việc tại một môi trường quốc tế, vậy theo anh đâu là điểm khác biệt giữa các lập trình viên trong nước và ngoài nước?  Các bạn ở sẽ học hỏi được những gì khi làm việc tại đây?

Chắc chắn là trình độ ngoại ngữ và những kỹ năng mềm. Đó cũng là lý do các bạn lập trình viên từ các nước như Anh, Úc dễ được đề bạt lên các vị trí quản trị cấp cao, trong khi cơ hội dành cho các lập trình viên Việt Nam lại hẹp hơn. Tuy nhiên mình không phủ nhận trình độ cũng như kỹ năng tự học của các bạn lập trình viên Việt Nam. Như mình đã nói thì có những bạn chỉ mới là sinh viên cũng đã được offer một vị trí với mức lương như senior. Background chỉ là điều kiện ban đầu, nếu yêu nghề và có ý chí học hỏi, cầu tiến thì tất nhiên quốc tịch không còn là vấn đề cản trở sự phát triển của các bạn.

Với môi trường làm việc cùng nhiều vendor người nước ngoài tại FE CREDIT, anh có gặp khó khăn gì hay không? 

Cơ bản thì kỹ năng Việt và vendor nước ngoài mà mình đang làm việc cùng không có quá nhiều sự tương phản đến mức chúng ta không thể thích nghi được. Trong giai đoạn giới thiệu sản phẩm đầu tiên tới thị trường, họ ưu tiên tuyển dụng các vị trí senior để đồng hành ở bước khởi đầu này. Tuy nhiên khi sản phẩm đã chuyển qua giai đoạn phát triển, họ sẽ mời gọi các fresher vào công ty. Về cách làm việc thì họ cũng không quá khác biệt so với người Việt. Về kỹ năng ngoại ngữ, mình đánh giá cao hơn khả năng nói tiếng Anh của các bạn vendor nước ngoài, có lẽ là do họ có điều kiện để sử dụng tiếng Anh thường xuyên hơn.

Một câu hỏi thiên về quan điểm cá nhân, anh sẽ thích môi trường công ty lớn hay môi trường công ty startup?

Thực ra trước FE CREDIT, mình đã từng nhận offer của 2 công ty startup. Bỏ qua những yếu tố về lương và phúc lợi, mình vẫn thích môi trường startup tuy nhiên anh phải từ chối 2 offer này bởi mình tự nhận thấy năng lực chưa đủ trình senior để đưa ra quyết định cho một công ty. Trong khi đó với công ty lớn như FE CREDIT thì đã có sẵn chiến lược để các nhân viên hướng theo. 

Với công ty startup cách làm việc chắc chắn thoải mái hơn, mọi người đều có quyền đề xuất và nêu ý kiến cá nhân về hướng giải quyết của người đứng đầu. Trái ngược lại, ở những công ty lâu năm, công ty càng lớn thì chúng ta sẽ gặp khó khăn để phản hồi nhưng điểm tốt của công ty lớn là có hướng đi rõ ràng, khi bạn chưa thật sự đủ năng lực senior để ra quyết định, thì sẽ có người khác quyết định để bạn thực hiện, triển khai công việc.

Có thể nói, tùy vào đánh giá năng lực của bản thân mà bạn lập trình viên có thể lựa chọn môi trường cho riêng mình. Không thể nói môi trường nào tốt hơn mà tiêu chí lựa chọn nghiêng về đâu là lựa chọn phù hợp hơn. Đối với các bạn muốn học hỏi nhiều, và đa dạng kiến thức, trải nghiệm nhiều vị trí thì các bạn có thể lựa chọn Startup, còn môi trường công ty lớn thì sẽ có lộ trình phát triển rõ ràng, và Scope of Work, quy trình làm việc cũng được ấn định sẵn.

Cảm ơn anh về những chia sẻ của mình, những bạn trẻ muốn gia nhập đội cùng team FE CREDIT đây là một trong những cơ hội tốt nhất trong năm để tham gia cùng chương trình TECHSPEC – Với những cơ hội việc làm hấp dẫn cùng với đãi ngộ hấp dẫn nhất.

Về chương trình TECHSPEC

TECHSPEC – do FE CREDIT tổ chức – là chương trình dành cho các bạn trẻ trong lĩnh vực CNTT muốn thách thức bản thân để đạt được thành công trong sự nghiệp. Tham gia TECHSPEC, bạn sẽ có cơ hội làm việc với những dự án công nghệ tiên tiến nhất giúp mang lại giá trị cho doanh nghiệp. Hơn thế nữa, trở thành thành viên FE CREDIT, bạn sẽ được tạo điều kiện để nắm bắt mọi cơ hội và đạt được các kỹ năng chuyên môn mà bạn cần.

Tại sao không thể bỏ qua TECHSPEC?

  • Xây dựng nền tảng vững chắc cho lộ trình sự nghiệp trong lĩnh vực IT thông qua lộ trình phát triển liên tục, xuyêt suốt 12 tháng
  • Nắm bắt được các kĩ năng cứng và kĩ năng mềm cần thiết
  • Thực sự tham gia vào những dự án công nghệ tiên tiến
  • Đồng hành và học hỏi từ các chuyên gia – kĩ sư senior tại FE CREDIT
  • Phát triển tư duy và mindset doanh nghiệp
  • Phúc lợi gia tăng tương ứng với lộ trình phát triển
  • Chế độ phúc lợi và đãi ngộ hấp dẫn (phụ cấp ăn uống, lương tháng 13, thưởng hiệu quả làm việc, bảo hiểm sức khoẻ, cùng nhiều chính sách hấp dẫn khác từ FE CREDIT)

Phát triển sự nghiệp:

Năm nay sẽ có 4 mảng (domain) chính để bạn tập trung phát triển sự nghiệp của mình. Lưu ý rằng bạn chỉ được chọn 1 trong 4 mảng sau:

  1. Software Development
  2. Business Analysis
  3. Project Management
  4. Quality Assurance

Quy trình ứng tuyển: 

  • Nộp hồ sơ: 2/12/2019 – 17/01/2020
  • Kiểm tra năng lực: 10/02/2020 – 14/02/2020
  • Phỏng vấn: 17/02/2020 – 29/02/2020
  • Thông báo kết quả: 3/2020
  • Bắt đầu làm việc: 4/2020

Cách tham gia ứng tuyển:

Ứng tuyển tại https://career.fecredit.com.vn/techspec. Tên file CV theo format [HoTen]_[AppliedDomain], vd: NguyenVanA_QualityAssurance.

Contact:

Mobile: (028) 3911 5212 – Ext: 10594

Facebook: FE CREDIT CAREER HUB

Hé lộ danh sách chủ đề chính thức VWS2019!

Vietnam Web Summit – nơi bạn nhìn lại những chuyển động vừa qua của năm 2019 để chuẩn bị hành trang “làm giàu” kiến thức hơn trong năm tiếp theo, các Topics đặc thù nào sẽ được diễn ra tại VWS2019 năm nay?

🔥 Hoành tráng hơn!
🔥 Đặc sắc hơn!
🔥 Chất lượng và ứng dụng hơn!

Hãy đánh dấu sẵn những topics “hợp gu” trước khi tham gia VWS2019 bạn nhé!!!

❗️Nhưng quan trọng là bạn đã có vé chưa?? Những slots giới hạn còn lại vẫn đang được bán ra mỗi ngày. Nếu còn chưa đăng ký thì nhanh tay giữ lấy chìa khóa vàng bước vào thế giới dành riêng cho các tín đồ công nghệ.

Còn nơi nào tốt hơn VWS2019 để gặp gỡ và giao lưu trực tiếp với 100+ chuyên gia của các lĩnh vực technology, marketing & business, đón đầu các xu hướng mới trên thế giới, cùng hàng trăm các ưu đãi hấp dẫn khác. Vậy thì ngần ngại gì mà không đăng ký ngay nào!!!!

============================

🎫 Book now: https://meetup.vn/e/4p7 NHẬP NGAY CODE TOPDEVBLOG@VWS2019 để giảm ngay 50.000đ/vé dành riêng cho cộng đồng TopDev! 
🔎 Website: https://vietnamwebsummit.com
📌 Time: Hồ Chí Minh – 06/12/2019 | Hà Nội – 13/12/2019

============================

🔥🔥🔥 VÉ COMBO dành cho nhóm 5-10-20-30 người với những giá cực ưu đãi nhưng vẫn giữ nguyên quyền lợi TIÊU CHUẨN!!!

Magento là gì? Thiết kế website thương mại điện tử với Magento

Magento là gì? Thiết kế website thương mại điện tử với Magento

Đang có rất nhiều mã nguồn mở để phát triển các website thương mại điện tử một cách dễ dàng và Magento là một ứng viên tiêu nhất. Vậy Magento là gì? Nếu bạn là lập trình viên Magento thì sẽ làm gì?

Magento là gì?

Magento là ứng dụng một mã nguồn mở để xây dựng các website thương mại điện tử. Magento sử dụng ngôn ngữ PHP và dựa trên nền tảng Zend Framework. Hiện có 2 phiên bảng Magento: Community Edition (CE) là phiên bản miễn phí và Enterprise edition (EE) phải trả phí.

Lập trình viên Magento thì sẽ làm gì?

Magento sử dụng cơ sở dữ liệu MySQL hoặc MariaDB, ngôn ngữ lập trình PHP và các thành phần của Zend Framework. Nó áp dụng các quy ước về lập trình hướng đối tượng và kiến ​​trúc model–view–controller (MVC). Magento cũng sử dụng mô hình entity-attribute–value để lưu trữ dữ liệu. Đặc biệt, Magento 2 đã giới thiệu mô hình Model-View-View cho mã front-end của nó bằng cách sử dụng thư viện Knockout.js của JavaScript.

Magento là gì? Thiết kế website thương mại điện tử với Magento

Magento Open Source là một nền tảng thương mại điện tử mã nguồn mở. Các nhà phát triển có thể sử dụng các tài nguyên gốc và mở rộng chức năng của nó bằng cách thêm các plug-in mới do các nhà phát triển khác cung cấp.

Cả phiên bản hiện tại và các phiên bản phát hành trước đây đều có sẵn trên website của Magento Commerce. Bạn có thể dễ dàng download chúng như các file thông thường khác. Phiên bản Magento CE 2.X ra đời phần lớn nhờ vào sự đóng góp của các nhà phát triển trên GitHub.

Một số công việc chính của lập trình viên Magento:

  • Phát triển, tích hợp hay tùy biến theme.
  • Tùy biến core của Magento nhằm đáp ứng các quy trình hoặc yêu cầu kinh doanh thực tế
  • Phát triển các extension mới.
  • Tùy biến các extension có sẵn do các nhà cung cấp thứ ba phát triển.
  • Tạo hoặc import danh mục (category) và sản phẩm.
  • Tích hợp với các hệ thống khác như ERP, CRM, POS, các cổng thanh toán.
  • Cập nhật các version mới khi Magento ra các phiên bảng mới.
  • Performance tuning.

Cấu trúc và các thành phần cơ bản trong Magento

1. Kiến trúc trong magento

Magento là là sự kết hợp tuyệt vời của Zend Framework với kiến trúc MVC (Model – View – Controller). Với việc sử dụng magento, chúng ta có thể kê thừa được những ưu điểm của hai mô hình trên trong việc phát triển các ứng dụng trên nền tảng của magento:

  • Kế thừa từ Zend: Với việc kế thừa từ Zend, chúng ta có thể dễ dàng mở rộng các lớp xử lý của ứng dụng cần xây dựng, dễ dàng nhúng, liên kết với các thư viện.
  • kế thừa từ mô hình MVC: giúp cho chúng ta tách các ứng dụng cần phát triển thành 3 thành phần khác nhau Model, View và Controller. Với mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác. Từ đó chúng ta có thể dễ dàng xây dựng, bảo trì ứng dụng một cách dễ dàng nhất.

Cấu trúc thư mục trong magento

Để phát triển ứng dụng trên magento một cách dễ dàng nhất, trước hết chúng ta cần phát hiểu rõ từng thư mục trong Magento Framwork.

Sau đây là những thư mục magento chính mà chúng ta cần hiểu rõ trong quá trình phát triển ứng dụng:

  • 404 – thư mục chứa những template và skin 404 của magento
  • app – chứa tất cả code(modules), template, file cấu hình, ngôn ngữ. Đồng thời cũng chữa các theme, cài đặt mặc định của hệ thống
  • downloader – Dùng để cài đặt và nâng cấp magento mà không cần sử dụng SSH
  • js- chứa các mã javascrip
  • lib – chứa các thư viện của các nhà phát triển
  • media – chứa các file tải lên hệ thống như ảnh sản phẩm, tài liệu…
  • pkginfo – chứa thông tin về các gói cài đặt magento
  • report – chứa các báo cáo mà hệ thống dùng để thông báo khi gặp lỗi
  • skin – chứa các file css, image, javascrip dùng để thiết kê các theme, packages, templates
  • var – Nơi chứa các tệp. file của bộ nhớ cache, session, dữ liệu import, export

Cấu trúc module

Một module trong magento có 2 phần chính là “code” và “template”.

  • Code: Xác định các hành động mà các module sẽ tương tác với database.
  • Template: Cách bố trí giao diện của module dựa trên code.

Code của template gồm có các thành phần sau:

  • Block: Là nơi dùng để load dữ liệu, điều chỉnh dữ liệu từ database trước khi cho hiển thị dữ liệu ra template.
  • Controller: Nhận yêu cầu từ phía người dùng từ http sau đó sẽ chuyển yêu cầu tới các lớp xử lý.
  • Etc: bao gồm các file xml dùng để config cho module. Tùy theo mỗi module mà có những file xml khác nhau.
  • Helper: Chúng ta sẽ cho vào các helper class tại đây. Các hàm chúng ta định nghĩa trong helper có thể được gọi ở bất cứ chỗ nào. Do đó helper là nơi chứa các “công cụ” giúp quá trình lập trình của bạn trở nên dễ dàng hơn trong một phần nào đó.
  • Model: Nơi chứa các câu lệnh truy vấn trực tiếp với cơ sở dữ liệu.
  • Sql: Bao gồm các câu lệnh sql để tạo bảng, tương tác thay đổi dữ liệu…

 2. Blocks, Templates và Layouts trong Magento

Block

Các đặc điểm chính của block:

  • Block chỉ được tải bởi layout hoặc controller.
  • Block có thể và nên được cached.
  • Block chỉ nên quan tâm đến phần hiển thị. Trong magento, block được chia thành hai loại: structure block và content block.
  • Structural Block: đây là những block được tạo ra để định dạng vị trí cho những block khác trong một page. Trong trang chủ của magento default với sử dụng three column layout thì có các structural được sử dụng:
    • Head
    • Left
    • Content
    • Right
    • Footer
  • Content Block: Đây là những block nội dung, chúng được hiển thị bên trong những structure block. Mỗi content block thường hiển thị một khối nội dung nào đó thông qua những file template và chèn vào những block cha là structure block.. Trong template mặc định của magento có các content blocks mặc định là:
    • Minicart
    • Recently viewed product
    • Newsletter subsription block
    • Poll

Khi nhận được 1 request từ người dùng để hiển thị 1 page:

  • Magento sẽ load những vùng cấu trúc
  • Mỗi vùng cấu trúc có những content block. Magento sẽ tập hợp những block này lại và gán cho các structure block tương ứng theo layout để xử lý đầu ra.
  • Cuối cùng hệ thống sẽ trả lại kết quả sau cùng cho trình duyệt phần nội dung đã được định dạng vị trí. Chú ý: Trong Magento, một Block là một phần của trang web, chúng ta có thể chèn chúng ở bất cứ nơi nào. Ngoài ra cũng có thể hiểu nó là một loại «Controller nhỏ» lên chúng ta có thể thêm bất cứ nơi nào trên trang web đang phát triển.

Template

Template là những file phtml được đặt trong thư mục design. Chúng bao gồm cả code php và mã html nên có phần mở rộng là phtml. Những file template có tác dụng lấy dữ liệu từ file block và hiển thị. Template gồm có 2 phần:

  • Thư mục chứa các file template của magento, bao gồm:
  • Layout: chứa các file .xml định ra các vị trí, block trên trang web.
  • Template: bao gồm các file phtml chứa thông tin hiển thị ra web.
  • Thư mục skin chứa các file css, js, images: Trong thư mục gồm có các forder css, images và ngoài ra có thể thêm folder js.

Layout

Layout là cách bố trí các nội dung trên các trang magento được xác định theo các tập tin xml, và được chứa trong thư mục app/design/frontend/base/default/layout. Trong những tập tin XML, chúng ta sẽ thấy một số đoạn XML được viết theo cách parent, chidren. Các đoạn xml được sử dụng để xác định vị trí hiên thị trên các trang. Để hiểu rõ hơn về layout và mối quan hệ của layout với block và template, chúng ta sẽ tạo một test_layout với block và template.

  • Bước 1: Khai báo layout mới vào trong file config.xml trong phần layout updates khai báo:
        <layout>
          <updates>
            <test_layoutest module="Test_Layout">
              <file>test_layout.xml</file>
            </Test_layout>
          </updates>
        </layout>
  • Bước 2: Tạo file xml cho test_layout muốn tạo trong thư mục

app/design/frontend/base/default/layout

app
  design
    frontend
        base
            default
                layout
                    test_layout.xml

Trong file test_layout có các thông tin sau:

<?xml version="1.0" encoding="UTF-8"?>
<layout>
    <default>
    <!-- khai báo tên block muốn sử dụng-->
        <reference name="before_body_end">
        <!--khai báo các block dùng trong test_layout-->
        <block type="core/template" name="test_layout_footer" est template="test_layout/footer.phtml" />
        </reference>
    </default>
</layout>

Với việc sử dụng thẻ reference, chúng ta có thể add các khối block sẵn có mà không cần phải sửa core trong magento. trong đó template=”test_layout/footer.phtml” là tên template chúng ta sẽ sử dụng trong layout.

  • Bước 3: Tạo một file template mới để dùng cho test_layout Tạo một file template footer.phtml theo cấu trúc thư mục:
    app
          design
            frontend
              base
                default
                  template
                    test_layout
                      footer.phtml

Trong file footer.phtml chúng ta có thể cho những gì muôn hiển thị trên phần footer của trang web, để dễ hiểu hơn trong file này chúng ta chỉ cần chứa một hình ảnh đại diện.

  • Bước 4: Tạo một custom Block Trước hết chúng ta cần khai báo tên block vào trong test_layout vừa được tạo
    <block type="test_layout/footer"
    name="test_layout_footer"
    template="test_layout/footer.phtml" />

Sau đó chúng ta cần khai báo block vừa taoj trong file config.xml

<blocks>
<test_layout
<class>Test_Layout_Block</class>
</test_layout>est
</blocks>

tiếp theo là tạo block php file

 app
      code
        local
          Test
            Layout
              Block
                Footer.php

cuối cùng khai báo class và method cho block

<?php
class Test_Layout_Block_Footer
extends Test_Core_Block_Template
{
public function getData()
{
// thông tin cần lấy
}
}

Như vậy chúng ta đã tạo được một ví dụ kết hợp giữa layout , template và block.

Lịch sử phát triển của Magento

Magento chính thức được phát triển đầu năm 2007. Ngày 31/08/2007, phiên bản beta công khai đầu tiên được phát hành.

Trước biết, Varien – công ty sở hữu Magento – đã từng làm việc với osCommerce. Ban đầu, công ty lên kế hoạch phát triển một nhánh mới của osCommerce nhưng sau đó lại quyết định cho ra đời một phiên bản hoàn toàn mới – chính là Magento.

Vào tháng 2/2011, eBay tuyên bố đã đầu tư vào Magento trong năm 2010 và hiện đang nắm giữ 49% cổ phần của công ty. Đến tháng 6/2011, họ lại thông báo sẽ mua toàn bộ Magento và đưa nó vào danh mục phát triển mới của công ty: X.Commerce. Cùng lúc đó, Roy Rubin cũng viết trên blog Magento: “Magento sẽ tiếp tục hoạt động bên ngoài Los Angeles, tôi và Yoav Kutner sẽ tiếp tục điều hành nó.

Yoav Kutner rời Magento vào tháng 4/2012 với lý do định hướng của Magento đã thay đổi kể từ thời điểm bị mua lại.

Ngày 3/11/2015, Magento chính thức chia tay eBay, tách ra thành công ty độc lập thuộc sở hữu của quỹ đầu tư hàng đầu châu Âu – Permira.

Đến tháng 5/2018, lại có thông báo rằng Magento sẽ được Adobe mua lại với giá 1,68 tỷ USD. Hãng này sẽ tích hợp nó vào Adobe Experience Cloud – nền tảng Enterprise CMS của hãng. Việc thu mua đã hoàn tất vào ngày 19/06/2018.

Tại sao nên sử dụng Magento?

Đối với các doanh nghiệp và cá nhân muốn phát triển một trang web thương mại điện tử chuyên nghiệp dài hạn, bạn nên nghĩ về Magento như một ưu tiên. Đây được coi là mã nguồn mở tốt nhất để xây dựng một cửa hàng trực tuyến. Nhưng điều quan trọng là nó rất chuyên nghiệp và hoàn toàn miễn phí.

Magento là gì? Thiết kế website thương mại điện tử với Magento

Có một số tính năng cơ bản của Magento:

  • Quản lý sản phẩm: với nhiều hình ảnh, tùy chọn nhận xét đánh giá sản phẩm, danh sách yêu thích, hàng tồn kho.
  • Quản lý danh mục: dễ dàng tìm và chọn sản phẩm theo danh mục.
  • Quản lý hàng tồn kho: quản lý các sản phẩm còn lại trong kho, nhập khẩu, xuất khẩu.
  • Tài khoản khách hàng: trạng thái tài khoản, lịch sử giao dịch, danh mục ưa thích, địa chỉ, giỏ hàng.
  • Dịch vụ khách hàng: tăng cường các tính năng, hình thức liên hệ khách hàng, theo dõi toàn diện, dịch vụ email.
  • Quản lý đơn hàng
  • Thanh toán: Nhiều phương thức thanh toán như thẻ tín dụng, PayPal, Authorize.net, Google Checkout, hỗ trợ cho các mô-đun thanh toán bên ngoài như CyberSource, ePay, eWAY và hơn thế nữa.
  • Công nghệ tìm kiếm: nhanh chóng, thân thiện, hỗ trợ tìm kiếm trên Google SiteMap.
  • Hỗ trợ quốc tế: đa ngôn ngữ và tiền tệ.
  • Công cụ quảng cáo và tiếp thị: phiếu giảm giá, chương trình khuyến mãi và nhiều hơn nữa.
  • Phân tích và báo cáo: tích hợp với dịch vụ Google Analytics và cung cấp nhiều báo cáo.

Tuy nhiên, điều khiến Magento khác biệt so với các nền tảng khác là:

Mã nguồn mở – Tùy biến cao

Magento không chỉ cung cấp các giải pháp thương mại điện tử linh hoạt, có thể mở rộng mà còn cho phép bạn linh hoạt tùy chỉnh và mở rộng nền tảng của mình để tạo ra trải nghiệm thương hiệu độc đáo, khác biệt. Nền tảng này có khả năng thích ứng tốt với thay đổi và có tiềm năng được sửa đổi để đáp ứng yêu cầu của chủ cửa hàng.

Tự do lựa chọn dịch vụ lưu trữ

Với Magento, các nhà bán lẻ thương mại điện tử được phép tự do lựa chọn nền tảng được lưu trữ theo lựa chọn của họ. Họ không bắt buộc phải gắn bó với một hosting nữa. Điều này cung cấp sự tự do tuyệt vời cho tất cả các doanh nghiệp mua sắm trực tuyến để có các tệp riêng của mình và được chọn lọc với các công ty lưu trữ khác nhau.

Đáp ứng di động

Magento được biết đến với việc giữ các tiêu chuẩn của thiết kế web di động. Cả phiên bản cộng đồng miễn phí và phiên bản doanh nghiệp của Magento đều kết hợp nền tảng HTML5 để tối đa hóa trải nghiệm mua sắm trên thiết bị di động. Do đó, cửa hàng thương mại điện tử sẽ luôn được tối ưu hóa.

Magento Mobile sẽ thiết lập trải nghiệm thương hiệu đầy đủ cho người tiêu dùng sử dụng điện thoại thông minh và thiết bị di động để kết nối mọi lúc mọi nơi.

Đáng tin cậy và an toàn

Kể từ khi Magento trở thành một nền tảng thương mại điện tử mã nguồn mở phổ biến cho mọi người, một cộng đồng lớn gồm các chủ cửa hàng, nhà cung cấp sản phẩm, nhà phát triển, nhà thiết kế, môi giới, tư vấn thương mại điện tử, nhà cung cấp giải pháp công nghệ và trên hết, người dùng trên toàn thế giới được hình thành để đáp ứng trao đổi thông tin về Magento.

Cộng đồng là một sự khẳng định rằng nền tảng Magento luôn cập nhật, nhanh chóng, đáng tin cậy, an toàn và không có bất kỳ lỗi nào.

Tích hợp đa nền tảng dễ dàng

Các tiện ích và mô-đun của bên thứ ba có thể dễ dàng tích hợp với cửa hàng của Magento.

Nhà cung cấp này cho phép bất kỳ sửa đổi mà không có bất kỳ hạn chế nào. Nền tảng này cũng cho phép chủ sở hữu cửa hàng thêm Google Analytics và các tích hợp bên thứ ba khác (như eBay, Paypal, Mail Chimp, v.v.) vào trang web để hỗ trợ phân tích dữ liệu.

Công việc của bạn chỉ là tìm ra những tiện ích tốt nhất và “cắm” vào cửa hàng của mình ngay lập tức!

Tốc độ tốt hơn

Nhắc đến thời gian tải trang, Magento lại là người chiến thắng!

Trên thực tế, Magento đã thực hiện một nhiệm vụ là tạo ra các cửa hàng thương mại điện tử nhanh nhất trên thế giới và nó được biết đến với khả năng tạo ra một trang web tải nhanh.

Và có lẽ bạn đã biết rằng các trang tải chậm sẽ “chìm” rất nhanh. Trong nhiều trường hợp, mất mát từ trang tải chậm có thể được nhìn thấy ngay lập tức, điều này đôi khi dẫn đến hậu quả không lường trước được.

Magento có thể làm bạn ngạc nhiên với hiệu suất của chính nền tảng nhờ khả năng tùy chỉnh cũng như sự tin tưởng mà nó mang lại.

SEO thân thiện

Magento là một hệ thống quản lý nội dung thân thiện với SEO – Magento SEO.  Nó chứa rất nhiều tính năng SEO như:

  • Tìm kiếm URL thân thiện
  • Sơ đồ trang web
  • Điều hướng lớp
  • Tiêu đề sản phẩm
  • Từ khóa
  • Thẻ meta
  • Mô tả meta

Liên quan đến SEO, Magento được cập nhật với các yếu tố xếp hạng SEO mới nhất.  Nó cung cấp cấu trúc URL tuyệt vời và các tùy chọn triển khai meta cần thiết cho SEO. Magento cũng bao gồm các phân tích để theo dõi khách truy cập web. Đây là một trong những tính năng nổi bật nhất của Magento.

Xem thêm Việc làm Magento tại TopDev

Bạn đã sẵn sàng dấn thân thêm hàng trăm “version” của bản thân để thành công?

“If at first you don’t succeed; call it version 1.0” bạn đã sẵn sàng dấn thân thêm hàng trăm “version” khác để thành công tại VWS2019?

Và Vietnam Web Summit sẽ là nơi bạn nhìn lại những chuyển động vừa qua của năm 2019 để chuẩn bị hành trang “làm giàu” kiến thức hơn trong năm tiếp theo, các Topics đặc thù nào sẽ được diễn ra tại VWS năm nay? 

TECH TOPICS! 

  • Agile Management: From Software to Happy Life
  • Xây dựng Mạng Xã Hội từ đầu với Microservices và Kubernetes
  • AI and Data Science for Law Enforcement at Axon        
  • Web Bluetooth – Kết nối với thiết bị IoT cho nhà phát triển Web
  • Multi-tenant database design for Saas”
  • Key factors in building & delivering project faster & better
  • Customer Experience: from theory to code
  • Decentralize account model – keys for personal security in next-gen Internet
  • Cách mạng thời giao tiếp giọng nói – Bước ngoặt trải nghiệm người dùng thời đại số.
  • Nhận dạng và Phân tích tiếng nói phục vụ cho Thương mại, Truyền thông. 
  • Build a User-First Web Experience and Grow Your Business with the Newest Web Capabilities
  • Large Scale Geospatial Visualization at AhaMove 
  • Automation testing: from Zero to Hero
  • A new revolution: Building SPA by C# with Blazor and WebAssembly
  • Building next generation websites using serverless and micro-frontend architecture
  • Phát hiện bất thường trong thời gian thực với KSQL
  • High Performance Microservice & Cloud Native on JVM 
  • Thanh toán sử dụng công nghệ Blockchain để cắt giảm 98% chi phí doanh nghiệp
  • Implementing Design System with React Hooks & Styled Components. 
  • ReactJS/React Native : Sử dụng Hook và Ant Design trong phát triển Product
  • Current state of Progressive Web App / Những tiến bộ mới nhất của PWA.
  • PyTorch, Detectron and Dense Pose tại Facebook AI.
  • Migrating a system from On-premises to Serverless architecture
  • Moving from Monolithic to Microservices architecture.
  • Applying AI to Your Business: Understanding new developments and practical tips for implementation.
  • AI -Powered Personalization: Increasing Engagement and Conversions
  • 5 Reasons Why Your Kubernetes Deployments Will Fail (and how to fix it!)        
  Hé lộ chuỗi Tech Topics Độc Quyền chỉ có tại VWS2019 dành cho các Tech-lovers!

NON-TECH TOPICS!


+ Value Innovation for Customer through Blue Ocean Shift (BOS)
+ Hybrid: con người và công cụ kết hợp với nhau để nâng cao hiệu suất marketing & sale cho SMB
+ Đo lường trong quảng cáo ngoài trời
+ Personalization – Real applications in Digital Marketing campaigns
+ Reaching the right audience with AI-powered digital advertising
+ Digital landscape, Online Audience Behaviour, Multi-Platform measurement in Vietnam.
+ Triển khai Digital Transformation với Mô hình D2C (Direct To Customer)
+ D2C – Tương lai của bán lẻ trực tuyến
+ Lãnh đạo trong thời kỳ kỹ thuật chuyển đổi số.
+ Affiliate Growth Hacking – Đột Phá Doanh Thu Trong Thời Đại Số
+ Nhận dạng và Phân tích tiếng nói phục vụ cho Thương mại, Truyền thông.
+ Thời đại AI – Các nhà quảng cáo nên tập trung vào yếu tố nào.
+ Integrating Ecommerce big data: how to capture and analyze a fast-growing world
+ Ecommerce Network Solution – Giải pháp kết nối thương mại điện tử cho Doanh Nghiệp
+ Auto-Segmenting and Lead Scoring for maximizing conversion
+ Customer Experience in Ecommerce today vs. the past few years

Đăng ký ngay gói doanh nghiệp tại ĐÂY!

Hơn nữa, VWS2019 – nơi tập trung hơn 60% đối tượng IT-related, gần 40% là Business và Marketing – VWS2019 mỗi năm sẽ là cơ hội “vàng” không những để networking mà còn có thể tiếp cận hàng loạt những công ty công nghệ lớn mở ra cơ hội ứng tuyển vào các doanh nghiệp công nghệ hàng đầu.

THỜI GIAN:
Hồ Chí Minh: 06/12/2019 tại Melisa Center
Hà Nội: 13/12/2019 tại CTM Palace

THÔNG TIN LIÊN HỆ
Event team: event@applancer.net | 028 6681 3236
Ms. Thoa | thoa.nguyen@applancer.net | 038 5098 969

 

NHẬP NGAY CODE  TOPDEVBLOG@VWS2019 để giảm ngay 50.000đ/vé dành riêng cho cộng đồng Techtalk! 

Bạn hoàn toàn có thể xây dựng cho mình một Mạng Xã Hội & Kinh Doanh trên đó

◉ Đã quá quen tai khi nghe đến Monolithic, Microservices, Kubernetes, vậy bạn có từng nghĩ mình sẽ sở hữu một MXH trong tay trong vòng 03 tháng bằng Microservices? Mạng xã hội hiện tại không còn là ảo mà thật ra đang diễn biến phức tạp hơn từng ngày khi mà vấn đề xây dựng một cộng đồng trong kinh doanh hiện nay đang trở thành một xu hướng!

⭐️ Session đặc biệt tại VWS2019 năm nay, anh Việt Trần Founder và là CTO của DOF Hunt, sẽ chia sẻ về chủ đề: Xây Dựng Mạng Xã Hội Từ Đầu Với Microservices & Kubernetes. Những nội dung mà anh chia sẻ bao gồm:

    1. Vai trò của monitoring trong Microservices.
    2. Làm thế nào để xây dựng một hệ thống chịu tải cao.
    3. Cách triển khai Microservices với Kubernetes nhanh và hiệu quả.
    4. Làm thế nào để chuyển đổi linh hoạt từ Monolithic app sang Microservices và ngược lại.
    5. Hệ thống scale và xử lý hình ảnh.

📌 Đôi nét về diễn giả:

  • Anh Việt Trần là một trong những influencer nổi tiếng trong cộng đồng developers với những bài chia sẻ tâm huyết, thiết thực về các công nghệ mới.
  • Bắt đầu lập trình từ năm 2006, anh Việt kiêm qua các vị trí như:  Co-founder at Sky Lab; Former Director at IDE Academy; Former Senior iOS Developer at Foody.vn; Former iOS Developer at Egg Accelerator Saigon; Former Solution Architect at Sendo.
  • Gần đây anh cùng Team của mình đã cho ra mắt ứng dụng DOF Hunt dành cho giới nhiếp ảnh, model có thể thoải mái booking cho nhiếp-mẫu ( hiện đã có mặt trên cả android, iOS) 

🔥 Giữ lấy ngay cho mình một vé tham dự Sự kiện Vietnam Web Summit 2019 để lắng nghe những chia sẻ về cách xây dựng một mạng xã hội với Microservices & Kubernetes từ anh Việt Trần, CTO đến từ DOF Hunt ngay nhé!

=====

⏰ THỜI GIAN:

➖ Hồ Chí Minh: 06/12/2019 tại Melisa Center – 85 Thoại Ngọc Hầu, Hoà Thạnh, Tân Phú, Hồ Chí Minh

➖ Hà Nội: 13/12/2019 tại CTM Palace, 131 Nguyễn Phong Sắc, Cầu Giấy, Hà Nội

🌍 THÔNG TIN CHI TIẾT VÀ ĐĂNG KÝ:

Đi cùng bạn bè: https://vietnamwebsummit.com/goi-ve-doanh-nghiep/

Event page: https://www.facebook.com/events/470356160221780/    

👉🏼 THÔNG TIN LIÊN HỆ

Sponsor & Booth: Ms. Như Trương | 033 8847 836

Event team: event@applancer.net | 028 6681 3236

Ms. Thoa | thoa.nguyen@applancer.net | 038 5098 969

Tất tần tật về C và C++

tat-tan-tat-ve-c-va-c
C và C++ là hai ngôn ngữ lập trình phổ biến nhất thế giới. Ngôn ngữ lập trình C được ra đời năm 1972 bởi Dennis Ritchie tại Bell Telephone, có thể nói C là một ngôn ngữ lập trình hệ thống, một ngôn ngữ để viết ra hệ đều hành. Trong khi đó, C++ được tạo ra bởi Bjarne Stroustrup vào năm 1979- ông được biết đến như một nhà khoa học máy tính lỗi lạc tại Đan Mạch. 
Tại Việt Nam, 2 ngôn ngữ này cũng được sử dụng nhiều trong tất cả các lĩnh vực từ lập trình web cho đến lập trình phần mềm. Sau đây sẽ là nguồn tài nguyên tuyệt với có thể giúp bạn học C và C++

1) CODEFORWIN: Đây là một trang blog mà người mới học có thể nhanh chóng nâng cao kỹ năng -> đẩy nhanh tốc đồ từ zero thành hero. Ở đây cũng có rất nhiều thủ thuật và tài liệu giúp bạn nghiên cứu sâu về ngôn ngữ C.

2) LEARN-C: Nếu mới bắt với C, đây chắc chắn sẽ là trang web giúp bạn nhanh chóng nắm bắt những kiến thức căn bản nhất.  NẾU BẠN MUỐN HỌC VỀ C THÌ ĐÂY LÀ TRANG WEB HÀNG ĐẦU BẠN NÊN GHÉ THĂM. DÀNH CHO MỌI ĐỐI TƯỢNG TỪ NGƯỜI MỚI BẮT ĐẦU ĐẾN CHUYÊN NGHIỆP.

3) CPPREFERNCE: Đây là trang web cung cấp nhiều tài liệu học hoàn chỉnh cho những ai cần học C

4) THE GNU C PROGRAMMING TUTORIALS (LINUXTOPIA): Mục đích của GNU là dạy các lập trình viên cách viết phần mềm bằng C. Những hướng dẫn được viết dưới dạng căn bản cho người mới bắt đầu. Được viết lại bởi nhiều lập trình viên đi trước có nhiều kinh nghiệm.

5) CPROGRAMMING: Đây sẽ là một website giúp ích rất nhiều giúp bạn từ chưa biết gì thành một lập trình viên chuyên nghiệp.

6) LEARNCPP: Learncpp là một trang web hoàn toàn miễn phí, cung cấp cho bạn để học cách lập trình C ++. Cho dù bạn là người mới bắt đầu hay chuyên nghiệp. Các hướng dẫn trên trang web này sẽ dạy cho bạn mọi thứ bạn cần biết với rất nhiều ví dụ.

7) CPLUSPLUS: Một trang web tuyệt vời cho sinh viên khoa học máy tính và nhà phát triển học ngôn ngữ lập trình C ++ từ đầu đến cấp độ nâng cao.

8) PLUS: là trang web hàng đầu để học C và C++. Trang Web này cung cấp nhiều tài liệu từ căn bản đến nâng cao. Bao gồm cả mã nguồn, tài liệu tham khảo, thư viện và cả diễn đàn thảo luận nơi bạn có thể post tất cả những vấn đề của mình tại đây.

Tuyển dụng intern C++ đãi ngộ tốt, ứng tuyển ngay TopDev

CÁC KÊNH YOUTUBE TỐT NHẤT ĐỂ BẠN HỌC C VÀ C++

1) C Video Tutorial

2) Introduction to Programming through ‘C’

3) C Language tutorials||C language by Sivaramayya

4) C Language Tutorial Videos | Mr. Srinivas

5) C Programming Tutorials

6) C++

7) javidx9

TOP 5 KHÓA HỌC C++ MIỄN PHÍ HÀNG ĐẦU

1. C++ TUTORIAL FOR COMPLETE BEGINNERS

2. C++, SHORT, AND SWEET, PART 1

3. C++ PROGRAMMING BASICS

4. LEARN C++ BY CREATING

5. BEGINNING C++ TEMPLATES

TÀI NGUYÊN CHO NGƯỜI MỚI BẮT ĐẦU HỌC C++

Tổng quan

PRIMERS

Tutorials

Tham khảo

Xem qua C++

  • Wandbox – lets you edit, compile and run simple C++ programs in a browser
  • Compiler Explorer – lets you edit and compile simple C++ programs and see what assembler is produced

Cộng đồng

  • The official home of ISO C++
  • #include <C++> – inclusivity initiative including Discord server
  • reddit – C++ Reddit subgroup
  • Slack – C++ Slack team signup page

Tìm việc làm C++ nhanh chóng trên TopDev

Khi bạn đã hơi thông thạo

Các khóa học ở trình độ tầm trung dành cho những bạn đã biết qua căn bản của ngôn ngữ này

BITE-SIZED TALKS

· Modern C++ by Michael Caisse
· The Shape of a Program by James McNellis
· The End of std::endl by Dietmar Kühl
· Can I has grammar? by Timur Doumler
· Standard Slam by Michael Caisse
· Presenting Code by Jens Weller
· Why not Conan (part II)? by Diego Rodriguez-Lopez
· A Fool’s Consistency by Jonathan Müller
· Programing: The Last 4000 Years by Juanpe Bolívar
· Standardese by Jonathan Müller
· C++ Koans by Tony Van Eerd
· Readable C++ by Timur Doumler
· quick-bench.com by Fred Tingaud
· Workflow hacks for developers by Anny Gakhokidze
· Copy Elision by Jon Kalb
· Beyond the Horizon of C++ by Hana Dusíková
· Why you should avoid Linked Lists by Bjarne Stroustrup

IMPROVE YOUR SKILLS

  • HackerRank sets you challenges to hone your basic programming skills
  • GitHub C++ Projects are one way to learn by contributing to open source C++ projects

TÀI LIỆU

C) HTTP://BIT.LY/2DAINON(NGUỒN: MOI NACT )

C++) HTTP://BIT.LY/2OAUNMO (NGUỒN: NGOC VU)

Có thể bạn quan tâm: 

TopDev tổng hợp

 

Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev

4 sai lầm lớn khi không “mạnh tay” tuyển dụng IT trong tháng 9 và tháng 10

Với những thay đổi lớn trong hơn 3 tháng chịu tác động từ dịch Covid – 19, dường như giới tuyển dụng nhân sự IT gặp phải rất nhiều khó khăn. Song, các tổ chức/doanh nghiệp đã có các giải pháp hiệu quả nhằm khắc phục kịp thời bài toán về nguồn nhân lực.

Mùa tuyển dụng IT là tháng 9 và tháng 10? 

Thực tế cho thấy, thời điểm vàng cho mùa tuyển dụng nhân sự rơi vào khoảng từ tháng 6 đến tháng 8. Thế nhưng, với việc tái phức tạp của dịch Covid-19 vừa qua, đã ảnh hưởng không ít đến thời kỳ nhảy việc – tìm việc của ứng viên IT. Việc nhảy việc bị đình trệ, lập trình viên trong tháng 6 và tháng 7 phần lớn vẫn giữ vị trí hiện tại và không tìm kiếm cơ hội mới. 

Tháng 8 trở lại khả quan hơn sau bệnh dịch, là thời điểm nhảy việc – tìm việc mới của Lập trình viên tại Việt Nam, khi trong tháng 8 và tháng 9 hệ thống TopDev đã ghi nhận số lượng ứng tuyển và request việc làm gấp 3 so với giai đoạn 2 tháng trước. Có thể nói trong năm 2020, tháng 9 và tháng 10 đang là thời điểm tìm việc lớn thứ hai của giới Lập trình viên Việt Nam trong năm – chỉ sau Tết âm lịch từ ảnh hưởng của dịch. Khi tình hình dịch bệnh đã chuyển biến tích cực, lập trình viên Việt Nam ngay lập tức trở lại thị trường tìm việc và tìm kiếm các vị trí IT phù hợp, tốt hơn cũng là lúc mà doanh nghiệp và nhân sự IT phải vào cuộc để tìm kiếm tuyển mộ người tài.

Đây là một điểm mà nhân sự IT và các công ty công nghệ không thể bỏ lỡ thời cơ và giảm tốc tuyển dụng như các năm trước đây.

1. Tuyển dụng IT vào tháng 9 và tháng 10: Giảm thiểu sự cạnh tranh khốc liệt

Do nhu cầu tuyển dụng không cao, các tháng 9 và 10 cuối năm trở thành tâm điểm. Đây được xem là thời gian để các phòng ban chuẩn bị kế hoạch công tác trong năm mới. Tuy nhiên, điều đó không đồng nghĩa là bạn sẽ không tìm được ứng viên chất lượng.

Vì vậy, TopDev khuyên bạn nên tranh thủ thời gian vàng này để giúp tin của bạn nổi bật hơn. Đồng thời, giảm được mức độ cạnh tranh và không bị “mờ nhạt” giữa hàng ngàn các tin đăng tuyển. Ngoài ra, bạn có thể hạn chế tối đa việc cạnh tranh với những thương hiệu tuyển dụng có tiếng lâu năm khác.

Hơn thế, bạn cũng không phải đau đầu “suy đi tính lại” làm sao offer vừa hấp dẫn, vừa hạn chế đối đa chi phí. Chắc chắc rằng không ai muốn tin của mình cạnh tranh với các thương hiệu tuyển dụng “tầm cỡ”. Do vậy, bạn hãy bắt đầu đăng tin ngay từ bây giờ nhé!

tuyển dụng IT vào tháng 11

2. Tuyển dụng IT vào tháng 9 và tháng 10: Khả năng nhận việc cao hơn

Ứng viên ai cũng mong muốn có nguồn thu nhập ổn định, đặc biệt vào cuối năm. Đây cũng là thời điểm nóng phải chi trả cho nhiều thứ. Vì vậy, nhiều khả năng họ sẽ thiên về việc chấp nhận các offer cao hơn.

Chưa kể, sau một năm biến động khó lường như năm 2020, các kế hoạch phát triển sự nghiệp và bản thân của lập trình viên đã bị trì hoãn và ảnh hưởng đáng kể. Sau đợt ảnh hưởng dịch thứ hai, tháng 9 và tháng 10 sẽ là thời điểm tốt cuối cùng để ứng viên có thể chạm tay vào các offer tốt nhất trong thị trường từ các tập đoàn – công ty có uy tín tốt và tài chính mạnh.

Đây là chìa khoá cuối cùng để lập trình viên ổn định, và các nhà tuyển dụng IT hoàn toàn có thể cho ra các offer và tìm kiếm nhân sự tốt nhất hiện nay cho cộng đồng IT hiện tại.

3. Tuyển dụng IT vào tháng 9 và tháng 10: Hoàn thành KPI & lên kế hoạch cho năm mới 2022

Như các năm thì từ tháng 9 nhân sự viên đã giảm thiếu số tin đăng và kế hoạch tuyển dụng. Tuy nhiên, riêng với năm 2020 khi mùa tuyển dụng đã chuyển dịch sang cuối năm, là thời điểm nhân sự IT tập trung hơn và mở rộng tìm kiếm nhân sự IT như các mùa tuyển dụng khác.

KPI là ác mộng không chỉ riêng cho sales mà còn cả nhà truy tìm nhân sự. Thế thì tại sao ta không tìm một cách thức khôn ngoan hơn? Hãy tận dụng tháng này để hoàn thành KPI nhân sự năm 2020 tốt nhất có thể!

Khi hoàn thành xong KPI, bạn sẽ có nhiều động lực hơn cho việc lên kế hoạch trong năm tới. Trong thời đại nhân tài đang được truy tìm ráo riết, việc chuẩn bị kỹ lưỡng không bao giờ là dư thừa cả!

Xem thêm báo cáo lương nhân sự ngành IT

Xu hướng Tuyển dụng IT 2020 – Theo Báo cáo thị trường nhân lực IT Quý 2/ 2020 từ TopDev

4. Tuyển dụng IT vào tháng 9 và tháng 10: Lợi thế lớn cho Employer Branding

Tương tự như đăng tin, đây cũng là thời điểm cực kì hợp lí để đẩy mạnh Employer Branding  cho doanh nghiệp của bạn. Vì sao? Vì khi đến mùa cao điểm tuyển dụng, có rất nhiều “kẻ săn mồi tuyển dụng” đấy. Chắc chắn bạn sẽ phải đối đầu với hàng trăm công ty lớn nhỏ. Tất nhiên, những mức offer ấy sẽ cực kì hấp dẫn đế thu hút và chiêu mộ được người giỏi. Thực hiện Employer Branding là sự chuẩn bị tốt cho đợt tuyển dụng lớn nhất đầu năm sau.

TopDev tin rằng việc khởi động một bước sớm hơn đối thủ sẽ giúp bạn đạt nhiều lợi thế hơn. Và khi đó việc trở thành “người dẫn đầu” trong cuộc chơi chiêu mộ nhân tài đầy khốc liệt năm 2021 sẽ không phải là một điều viển vông!

tuyển dụng IT

Liên hệ TopDev để được tư vấn Tuyển dụng & Employer Branding MIỄN PHÍ qua Hotline: (84) 28 6273 3496 hoặc qua email contact@applancer.net.

Có thể bạn quan tâm: 

Tham khảo trang tin tuyển dụng IT tại TopDev

FE CREDIT TECHSPEC – TRẢI NGHIỆM LẬP TRÌNH VÀ LÀM VIỆC TẠI MÔI TRƯỜNG FINTECH HÀNG ĐẦU VIỆT NAM

Fintech Việt Nam hiện có tốc độ phát triển đứng thứ hai Đông Nam Á. Câu hỏi đặt ra giờ đây không phải là liệu Fintech có thay đổi ngành dịch vụ tài chính hay không, mà là công ty nào sẽ áp dụng Fintech tốt nhất để vươn lên dẫn đầu?  Tại Việt Nam hiện có 154 công ty hoạt động trong lĩnh vực fintech, khoảng 70% đã kêu gọi được vốn đầu tư chạm mốc kỷ lục – 117 triệu USD trong năm 2018.

Cũng chính vì vậy, thị trường cạnh tranh khốc liệt đòi hỏi các công ty càng phải nâng cấp công nghệ để phù hợp với xu hướng chuyển đối số, FE CREDIT cũng không nằm ngoài cuộc chơi đó. Trong những năm vừa qua, FE CREDIT đã có những bước tăng trưởng và phát triển mạnh mẽ bằng những sản phẩm công nghệ vượt bậc của mình. Nhiều chuyên gia đánh giá đây cũng là một trong những môi trường công nghệ và tài chính năng động, phù hợp với các lập trình viên muốn tiến xa hơn trong sự nghiệp của mình, đặc biệt là ở mảng tài chính – doanh nghiệp.

Trong thời gian gần đây, ngoài những chương trình đầu tư đình đám cho các startup fintech trong khu vực, FE CREDIT còn mở ra nhiều cơ hội nhằm giúp các bạn lập trình viên có thể trải nghiệm làm việc cùng đội ngũ quốc tế chuyên nghiệp nhất thông qua chương trình TECHSPEC. Hãy cùng tìm hiểu công việc của một lập trình viên tại FE CREDIT như thế nào nhé.

Sau đây sẽ là chia sẻ của anh Nguyễn Tuấn Cường – Senior Software Developer tại FE CREDIT

Chào anh Cường, anh có thể giới thiệu một chút về vị trí và công việc của anh tại FE CREDIT?

Tại FE CREDIT, mình hiện đảm nhiệm vị trí chuyên viên phát triển phần mềm. Công việc chính của mình hiện nay là phát triển phần mềm, ứng dụng để hỗ trợ khối back office, cũng như cho các phòng ban kinh doanh khác. Một sản phẩm ví dụ là Sales Portal, đây là nơi cung cấp thông tin để hỗ trợ Sales hoàn thành công việc, tương tác với khách hàng thuận lợi và dễ dàng hơn. Mình hiện đang phát triển chính MVC .NET framework vì tính phổ biến, nên nền tảng này có thể đáp ứng được nhiều nhu cầu ứng dụng và hỗ trợ cho Sales.

Team anh hiện tại có bao nhiêu người đang thực hiện các dự án?

Team mình hiện bao gồm 30 người, còn riêng team .NET thì hiện đang có khoảng 9 nhân sự, đảm nhiệm phát triển Sales Portal và những ứng dụng hỗ trợ các phòng ban khác ngoài Sales. Đây là một ứng dụng nội bộ giúp cho các bạn Sales được làm việc hiệu quả hơn.

Theo anh đâu là sự khác biệt trong việc giải quyết vấn đề giữa team Tech Việt Nam và các bạn nước ngoài trong công việc hàng ngày?

Vừa rồi bên mình cũng triển khai một yêu cầu bên bộ phận Card (Thẻ), với yêu cầu thay đổi một cái đã có sẵn, xuất phát từ phòng ban nghiệp vụ. Người phân tích là bạn Business Analyst (BA) người Ấn Độ, còn mình đảm nhiệm vai trò là Dev, toàn bộ thông tin liên lạc đều thông qua anh BA ấy. Trong quá trình lấy nghiệp vụ và tìm hiểu, anh BA sẽ lấy nghiệp vụ từ Card Foundation, đó là những yêu cầu sát sao gần với thực tế họ muốn.

Có nhiều giải pháp được đưa ra thời điểm đó, phía bên BA có những cái nhìn xa hơn, tuy nhiên nó lại tốn nguồn lực hơn và khó có thể làm nhanh để đưa vào sử dụng ngay được. Bên phía team Việt Nam thì có giải pháp tạm gọi là “ngắn hạn”, có thể đưa vào ứng dụng được ngay. Sau khi họp với nhau lần nữa, bên nghiệp vụ cũng thấy rằng đây chỉ là yêu cầu nhỏ chứ không cần sử dụng công nghệ tầm cao và xa như thế. Cuối cùng, giải pháp bên mình được lựa chọn vì đi sát với yêu cầu thực tế của nghiệp vụ.

Sự khác nhau giữa team Việt và các bạn người nước ngoài có thể ở chỗ, các bạn ấy có cái nhìn sâu xa và đáp ứng nhu cầu ở giai đoạn lâu và dài. Tuy nhiên, còn tùy vào yêu cầu của bộ phận mà lựa chọn giải pháp thích hợp hơn.

Anh có thể chia sẻ quy trình phát triển sản phẩm tại FE?

Anh thuộc bộ phận Dev nên anh sẽ làm việc với BA, App Support (AS), QC là chính, ít khi tương tác với phòng ban nghiệp vụ – Business User (BU). Một yêu cầu xuất phát từ phòng ban nghiệp vụ, lúc đó Dev chưa biết gì hết, sẽ được BA tiếp nhận và phân tích. Sau khi được phân tích và làm rõ với BU, BA sẽ chuyển lên cho Head of BA, sau đó sẽ bàn giao cho Head của Dev thông qua hệ thống REDMINE.

Sau khi Dev làm xong sẽ có bước test IT trong nội bộ, có QC tham gia, đến Unity thì có BU tham gia, QC test. Sau khi test xong, sẽ tiến hành deploy đưa hệ thống lên. Tùy theo hệ thống, nếu đã được security rồi, yêu cầu trên hệ thống cũ đã có, đã vượt qua security, thì Giám Đốc mảng vận hành IT sẽ duyệt. Sau đó sẽ đẩy qua probation, probation sẽ chạy thực tế.

Trong thời gian probation, BA sẽ viết tài liệu và handover qua AS, sau đó AS sẽ phụ trách việc hỗ trợ. Khi có bất kỳ issue hay lỗi nào mình đưa ra Change Request (CR), BA phân tích để xem xét có cần đưa qua Dev hay AS sẽ xử lý. Project Manager (PM) sẽ phụ trách tính toán thời gian, resource và chi phí, tùy vào dự án lớn hay nhỏ.

Ngoài dự án Sales Portal ra, Anh có thể chia sẻ thêm về dự án hay sản phẩm mà anh tâm đắc?

Anh có tham gia làm một ứng dụng hỗ trợ phòng Underwriting, để các bạn có thể lên thẩm định, một tính năng giúp giải ngân nhanh. Trước đây, sử dụng trên Sales Portal thì giao diện hơi cũ. Với ứng dụng mới này thì UX/UI được nâng cao, có thể dễ thao tác trên điện thoại, máy tính, iPad, … hỗ trợ nhiều cho user.

Bên anh thì quan tâm đến những thuật toán về IT, làm sao để cho hệ thống nhanh hơn và được bảo mật. Tại cùng một thời điểm, có rất nhiều người truy cập vào hệ thống và tương tác liên tục trên đó, bài toán bây giờ là phải làm sao phải nhanh và không bị tranh chấp với nhau về mặt dữ liệu. Đối với ứng dụng này, thứ nhất là bảo mật, thứ hai nó là phần mềm giúp cho underwriting thẩm định nhanh và chính xác hơn.

Anh có lời khuyên gì cho các bạn sinh viên ngành IT có định hướng hay yêu thích công việc này trong lĩnh vực Fintech?

Đối với người mới ra trường, thì mình nên ứng tuyển vào những nơi giao việc ngay cho mình làm, còn về kỹ thuật công nghệ thì tùy vào mỗi người, nếu ai chịu tìm tòi học hỏi thì đều có thể học được hết, và có rất nhiều tài liệu. Khi đến được một nơi có thể và có cơ hội tiếp xúc nhanh thì mình sẽ tập trung vào mảng nào đó để tìm hiểu trước. Bởi vì mới ra trường thì hầu như chưa ai nắm được mình sẽ làm cái gì cả.

Cảm ơn anh về những chia sẻ của mình, những bạn trẻ muốn gia nhập đội cùng team FE CREDIT đây là một trong những cơ hội tốt nhất trong năm để tham gia cùng chương trình TECHSPEC – Với những cơ hội việc làm hấp dẫn cùng với đãi ngộ hấp dẫn nhất.

Về chương trình TECHSPEC

TECHSPEC – do FE CREDIT tổ chức – là chương trình dành cho các bạn trẻ trong lĩnh vực CNTT muốn thách thức bản thân để đạt được thành công trong sự nghiệp. Tham gia TECHSPEC, bạn sẽ có cơ hội làm việc với những dự án công nghệ tiên tiến nhất giúp mang lại giá trị cho doanh nghiệp. Hơn thế nữa, trở thành thành viên FE CREDIT, bạn sẽ được tạo điều kiện để nắm bắt mọi cơ hội và đạt được các kỹ năng chuyên môn mà bạn cần.

Tại sao không thể bỏ qua TECHSPEC?

  • Xây dựng nền tảng vững chắc cho lộ trình sự nghiệp trong lĩnh vực IT thông qua lộ trình phát triển liên tục, xuyêt suốt 12 tháng
  • Nắm bắt được các kĩ năng cứng và kĩ năng mềm cần thiết
  • Thực sự tham gia vào những dự án công nghệ tiên tiến
  • Đồng hành và học hỏi từ các chuyên gia – kĩ sư senior tại FE CREDIT
  • Phát triển tư duy và mindset doanh nghiệp
  • Phúc lợi gia tăng tương ứng với lộ trình phát triển
  • Chế độ phúc lợi và đãi ngộ hấp dẫn (phụ cấp ăn uống, lương tháng 13, thưởng hiệu quả làm việc, bảo hiểm sức khoẻ, cùng nhiều chính sách hấp dẫn khác từ FE CREDIT)

 Phát triển sự nghiệp:

Năm nay sẽ có 4 mảng (domain) chính để bạn tập trung phát triển sự nghiệp của mình. Lưu ý rằng bạn chỉ được chọn 1 trong 4 mảng sau:

  1. Software Development
  2. Business Analysis
  3. Project Management
  4. Quality Assurance

Contact:

Mobile: (028) 3911 5212 – Ext: 10594

Facebook: FE CREDIT CAREER HUB

DevOps là gì? Cần học gì để trở thành DevOps

devops-la-gi

DevOps là gì?

DevOps là một sự kết hợp của các nguyên lý, thực hành, quy trình và các tool giúp tự động hóa quá trình lập trình và chuyển giao phần mềm. Với DevOps, các công ty có thể “release” các tính năng nhỏ rất nhanh và kết hợp các phản hồi mà họ nhận được một cách nhanh chóng. DevOps là kết hợp của các cụm từ tiếng Anh software development và information technology operations.

Devops là một quá trình đề cao sự hợp tác, kéo hai giai đoạn phát triển và vận hành xích lại gần nhau hơn.

  • Giai đoạn phát triển (development) bao gồm phần việc của UI designer, developer, QA/QC
  • Giai đoạn vận hành (operations) có sự tham gia của system engineer, system administrator, operation executive, release engineer, DBA, network engineer,…

Hai giai đoạn này tương đối tách rời nhau. Đặc biệt là ở những công ty có quy mô từ trung bình trở lên. Chính vì thế, khái niêm devops ra đời nhằm tối ưu hóa chu trình phát triển phần mềm. Giúp sản phẩm phần mềm được release nhanh và thường xuyên hơn.

Xem thêm viêc làm Devops lương cao trên TopDev

devops

DevOps Engineer là gì?

  7 Công Cụ Hay Dành Để Thực Hiện Devops

Các công việc chính của DevOps Engineer gần giống với công việc của Sysadmin, bao gồm: deploy, optimizing, monitoring, analysis… Điểm khác biệt là:

  • DevOps Engineer đòi hỏi nhiều kĩ năng mềm hơn như phải có coding skill, scripting để automation hệ thống.
  • DevOps Engineer cần tìm hiểu về tech stack mà sản phẩm công ty đang sử dụng. Ngoài ra họ cũng có thể cùng review bug hay viết những unit test thông thường.

DevOps Engineer nay thường phải tham gia ngay vào giai đoạn phát triển nhằm:

  • Chuẩn hóa môi trường làm việc từ local cho đến production.
  • Hiểu sản phẩm hơn, để tối ưu hóa sản phẩm tốt hơn.
  • Nắm được cơ bản logic code, nắm được tiến trình của code chạy như thế nào.v.v…

DevOps cần học gì?

Để làm được devops bạn phải biết khá nhiều thứ về system cũng như coding và nhiều kỹ năng sau đây:

  • Biết và sử dụng thành thạo linux, window, macOS. Biết dùng thành thạo lệnh Terminal trong linux, CMD và powercell trong window và lệnh trong Linux hoặc Macos. Có kiến thức cơ bản về: Process Management, Threads and Concurrency, Sockets, I/O Management, Virtualization, Memory storage and File systems.
  • Nên có kiến thức cơ bản về: DNS, HTTP, HTTPS, FTP, SSL. Hoặc tìm hiểu thêm về các lỗ hổng bảo mật thường gặp.
  • Biết cài đặt và sử dụng vài Web Server phổ biến như: Apache và Nginx. Tìm hiểu một số khái niệm và chức năng thường được sử dụng: Caching Server, Load balancer, Reverse Proxy, and Firewall. Có thể bắt đầu với một vài practice với Docker đơn giản như:
    • Setup thử một vài cache server
    • Giả lập có nhiều servers dưới local bằng cách dùng các Docker container. Sử dụng chức năng Load balancer của Web server để cân bằng tải cho server.
  • Biết và sử dụng một số dịnh vụ cloud như AWS của amazon, google cloud, và azure của microsoft.
  • Biết code một số ngôn ngữ hệ thống như bashscript, java, javascipt , python, Php…
  • Biết dùng 1 số tool để truyển khai CI&CD như jenkins, jira , git (Gitlab, Bitbucket…)… Một DevOps Engineer nên biết Infrastructure as code):
    • Containers: Docker, Kubernetes
    • Các công cụ quản lý cấu hình: Ansible, Pupet, Chef,..
  • Biết sử dụng các tool monitoring server như: Nagios, Zabbix, Icing, Datadog…

Có thể bạn quan tâm:

  8 Bước Trong Lộ Trình Trở Thành DevOps Engineer

DevOps là làm gì?

DevOps là một thành phần cực kỳ quan trọng trong quy trình phát triển phần mềm cùng với phương pháp Agile. Nó giúp hoàn thiện việc chuyển đổi quy trình phát triển và vận hành phần mềm từ mô hình thác nước (waterfall) sang mô hình phát triển/phát hành liên tục (CI/CD).

Tất cả đều phục vụ cho mục đích cuối cùng là cải thiện khả năng triển khai phần mềm một cách nhanh chóng. Từ đó, tăng khả năng cạnh tranh của sản phẩm/doanh nghiệp.

Một khi đã hiểu được những giá trị thực sự của DevOps và thực hiện những thay đổi nhỏ, vững vàng thì team bạn có thể bắt đầu cuộc hành trình với DevOps được rồi.

  1. CI (Continuous Integration): Một hình thức trong việc phát triển phần mềm, các developer thường gộp hoặc chuyển các thay đổi trong code về một repo master, và các build và test sau đó sẽ tự động chạy. Mục tiêu của CI đó là tìm bug nhanh hơn từ sớm, cải thiện chất lượng phần mềm, và giản thiểu thời gian để xác thực và ra mắt các update mới.
  2. CD (Continuous Deployment) : Mọi thay đổi được duyệt qua test sẽ tự động được triển khai trên production. Nghĩa là bạn pull bản build mới nhất ngay hoặc tìm repo mới nhất đã được test và tiến hành deploy trên production. CD là một cách tuyệt vời để tăng tốc quá trình deploy sản phẩm liên tục để đáp ứng các yêu cầu liên tục của khách hàng.
  3. Xây dựng kiến trúc (Infrastructure as code) hệ thống như là code: Định nghĩa này hơi khó hiểu, có thể hiểu như là một phương pháp để đảm bảo rằng bạn có thể maintain chất lượng version control trong khi sử dụng CI. Infrastructure cần được cấu hình tự động hoàn toàn để các server được chuẩn hóa các bản patch và version mới nhất.
  4. Communication và Collaboration: Collaboration và communication là các nhân tố bí ẩn giúp doanh nghiệp phát triển và đánh giá DevOps. Nó đẩy nhanh quá trình phát triển, vận hành và cả các team khác như marketing, sales, cho phép các bộ phận của tổ chức tiến gần hơn với việc đạt được mục tiêu.
devops
Devops là làm gì?

Lợi ích của DevOps

  1. Tốc độ : DevOps giúp các developers và team operations đạt được mục tiêu ở một tốc độ khác giúp cải tiến sản phẩm nhanh chóng phục vụ người dùng, thích nghi với thị trường tốt hơn và điểu chỉnh hiểu quả kinh doanh hiệu quả hơn.
  2. Chuyển giao nhanh chóngTăng tốc độ release thường xuyên để chúng ta cải thiện sản phẩm nhanh hơn và cho ra mắt các feature nhanh hơn cũng như fix bug, giúp phản hồi cho khách hàng nhanh chóng và xây dựng nên lợi thế cạnh tranh tốt hơn.
  3. Độ tin cậy : DevOps đảm bảo chất lượng bằng cách áp dụng CI /CD, Monitoring và logging process. Bằng cách update mà team infrastructure cấp quyền cho team development để chuyển giao nhanh hơn mà vẫn duy trì được trải nghiệm người dùng tốt.
  4. Mở rộngTeam vận hành, quản lý infra và các quy trình. Lên kế hoạch về quy mô và nâng cấp môi trường giúp quản trị các hệ thống phức tạp hoặc hay thay đổi hiệu quả cũng như giảm thiểu rủi ro.
  5. Bảo mật : DevOps giúp di chuyển mà không chịu tổn thất về bảo mật bằng các chính sách, kiểm soát và phương pháp quản lý configuration. Thậm chí các team có thể kêu gọi bạn theo các tiêu chuẩn từ sớm bằng cách cung cấp các setup các tool theo dõi.
   Top 10 khóa huấn luyện kỹ sư DevOps cho dân Dev

Devops roadmap

devops
Devops Roadmap. Credit: https://github.com/kamranahmedse/developer-roadmap#devops-roadmap

Tổng kết

Khi mà 1 Developer có thêm kiến thức về DevOps thì cơ hội nghề nghiệp của bạn cũng sẽ rộng mở hơn rất nhiều. Bạn có thể trở thành một key member của công ty khi có thể vừa tham gia vào quá trình phát triển phần mềm vừa đảm nhiệm thêm phần việc của 1 DevOps Engineer. Tất nhiên là lương bổng của Devops khá cao, xem việc làm Devops tại đây.

TopDev

Có thể bạn muốn xem thêm:

Xem thêm việc làm IT tại TopDev!

10 ngôn ngữ phát triển nhanh nhất theo GitHub thống kê năm 2024

github topdev

Github là một nơi hội tụ của những lập trình viên đắm mình cùng nhiều dự án và các ngôn ngữ lập trình khác nhau. Nên bản báo cáo thường niên của nền tảng này sẽ đánh giá tương đối chính xác về những xu hướng đang diễn ra trong ngành công nghệ thông tin.

  GitHub là gì? Giới thiệu tính năng và hướng dẫn cài đặt GitHub

Bên cạnh những cái tên “sừng sỏ” như Javascript hay Java thì trong danh sách năm nào cũng đều có sự xuất hiện của các ngôn ngữ và framework “mới nổi” nhưng được sử dụng rộng rãi. Theo Stephen O’Grady, một nhà phân tích đồng thời là đồng sáng lập của RedMonk, thì các ngôn ngữ lập trình thuộc nhóm “mới nổi” đều có ba đặc điểm.

Thứ nhất đó là linh hoạt. Ví dụ, Python có thể được sử dụng cho nhiều mục đích gồm machine learning, data science và ứng dụng trong các thao tác với dữ liệu khác. Thứ hai, bảo mật chính là điểm lõi mà một số ngôn ngữ “mới nổi” như Rust hay TypeScript muốn hướng tới.

Khi trò chuyện với các lập trình viên, chúng tôi thấy rằng họ có xu hướng sử dụng các công cụ làm tăng tính bảo mật cho ứng dụng của mình thay vì phải dành quá nhiều công sức cho vấn đề này

Đặc điểm thứ ba chính là nhiều ngôn ngữ lập trình mới đều dựa trên, hoặc ít nhất là tương thích, với các ngôn ngữ đã có sẵn. Đây là điểm giúp chúng thu hút được người sử dụng từ các đàn anh đi trước. Ví dụ, TypeScript đã dần chiếm được sự yêu thích của các lập trình viên chuyên về JavaScript, còn Kolin thì lại được giới Java công nhận.

Tham khảo việc làm lập trình viên Git lương cao trên TopDev

Còn dưới đây là danh sách 10 ngôn ngữ lập trình có tốc độ phủ nhanh nhất trên Github:

10. Go

Go hay còn được biết đến với cái tên Golang, là một ngôn ngữ lập trình được tạo ra bởi Robert Grisemer, Rob Pike và Ken Thompson vào năm 2009. Google đã phát hành Go dưới dạng ngôn ngữ lập trình mã nguồn mở, tức là ai cũng đều có thể tải về, chỉnh sửa và sử dụng nó. Golang được thiết kế hướng tới tốc độ và tính đơn giản, đặc biệt là khi làm việc với các hệ thống quy mô lớn như của Google chẳng hạn.

 Xem qua Top những việc làm tốt nhất dành cho Golang

  Khi nào nên dùng Golang? Nó dùng tốt trong trường hợp nào?

9. Assembly

Đây là ngôn ngữ gần nhất với ngôn ngữ của máy tính. Nó được các lập trình viên sử dụng để viết những hướng dẫn cho máy tính trong việc truy cập và xử lý dữ liệu ở bậc thấp nhất có thể. Những đoạn hướng dẫn này nghe có vẻ tẻ nhạt bởi chúng phải bao gồm những chỉ dẫn đơn giản tới mức tối đa, song nó đem lại cho lập trình viên khả năng tùy ý điều chỉnh tới từng chi tiết nhỏ nhất cho phần mềm của mình.

8. Python

Python hiện đang đang nằm trong danh sách những ngôn ngữ lập trình phát triển nhanh nhất, đồng thời nó cũng đang đứng vị trí thứ hai về độ phổ biến. Giống như Golang, nó cũng là một ngôn ngữ lập trình mã nguồn mở, tạo sự dễ dàng cho bất kì ai trong việc tiếp cận và sử dụng. Python cũng khá thân thiện với nhóm người mới bắt đầu bởi nó là một ngôn ngữ lập trình bậc cao. Các lập trình viên thường sử dụng nó trong lập trình web, data science và trí tuệ nhân tạo.

 Xem qua Top những việc làm tốt nhất dành cho Python

7. Apex

Apex được phát triển bởi Salesforce dưới dạng một ngôn ngữ dùng để tùy chỉnh và xây dựng các phần mềm, giúp lập trình viên dễ dàng viết lên các ứng dụng nhằm tự động hóa những công việc như cập nhật hồ sơ người dùng hay viết báo cáo.

Nó được thiết kế để có thể hoạt động trơn chu với một lượng lớn dữ liệu và mang một vài đặc điểm tương đồng với Java, một trong những ngôn ngữ phổ biến nhất hiện nay.

6. PowerShell

PowerShell được tạo ra bởi Microsoft dựa trên NET framework nổi tiếng của công ty này. Đây là một ngôn ngữ lập trình mã nguồn mở giúp lập trình viên viết các hướng dẫn trực tiếp cho hệ thống máy tính và kiểm soát hoạt động của hệ điều hành. Nó đặc biệt hữu dụng cho bộ phận IT khi phải tự động hóa những tác vụ như thêm mới người dùng hoặc cài đặt cập nhật phầm mềm cho các thiết bị trong network.

PowerShell hiện đã xuất hiện trên Linux, MacOS và Windows.

5. TypeScript

Đây là một trong những ngôn ngữ lập trình thuộc nhóm phát triển nhanh và phổ biến hiện nay. Nó được phát triển bởi Microsoft và giống với JavaScript, lập trình viên có thể kết hợp cả hai ngôn ngữ này với nhau. Tuy nhiên, TypeScript được tích hợp thêm một vài tính năng giúp lập trình viên tạo ra các phần mềm có quy mô lớn hơn.

Tham khảo thêm các vị trí tuyển dụng lập trình Typescript lương cao

4. Kotlin

Ngôn ngữ mã nguồn mở Kolin có nhiều điểm tương đồng với Java nhưng lại mang một tính năng đặc biệt trong việc xử lí lỗi. Đồng thời nó cũng ngắn gọn hơn, giúp lập trình viên hoàn thành công việc với ít dòng code hơn. Kolin thường xuyên được sử dụng cho lập trình ứng dụng Android.

Năm trước, Kolin đã đứng đầu trong bảng xếp hạng những ngôn ngữ lập trình phát triển nhanh nhất. Nó hiện đang được sử dụng bởi nhiều công ty, trong đó có Google, Square và Atlassian. Hiện tốc độ phát triển của nó vẫn còn rất cao, theo Github thì Kolin đã mở rộng tới 182% so với năm trước.

 Xem qua Top những việc làm tốt nhất dành cho Kotlin

3. HCL

HCL là tên viết tắt cho HashiCorp Configuration Language, nó được phát triển bởi HashiCorp, một dự án khởi nghiệp hướng tới việc xây dựng những công cụ giúp lập trình viên chạy và bảo vệ phần mềm có trên đám mây. HCL được sử dụng để viết lên bộ công cụ đám mây của HashiCorp. Nó được thiết kế hướng tới tính đơn giản cho người đọc code. So với năm trước, ngôn ngữ này đã phát triển 213%.

2. Rust

Rust được xây dựng hướng tới tính hiệu quả và tốc độ trong khi làm việc với bộ nhớ, nó có tính năng giúp hạn chế các lỗi phổ biến thường gặp của lập trình viên, đồng thời tạo ra một cơ chế giúp tìm lỗi. Ngôn ngữ lập trình mở này được tài trợ bởi Mozilla, và được sử dụng trong game engine, hệ điều hành, VR và các tác vụ chuyên sâu trong hệ thống.

1. Dart

Ngôn ngữ này do Google tạo ra để dành cho việc thiết kế giao diện người dùng. Nó khá giống với JavaScript và được sử dụng cùng với bộ công cụ Flutter của Google để xây dựng ứng dụng cho di động và web. Dart đứng đầu danh sách này nhờ tốc độ tăng trưởng đạt 532% so với năm trước.

Hy vọng những thông tin này sẽ hữu ích khi bạn lựa chọn ngôn ngữ tiếp theo để quan tâm cùng như bắt kịp xu hướng của cộng đồng lập trình trên thế giới. Anh em thấy còn thiếu sót gì thì bổ sung dưới comment để mình sửa đổi nhé.

Đừng quên xem qua những việc làm tốt nhất dành cho lập trình viên tại đây nhé.

TopDev via Business Insider

Truy cập ngay việc làm IT đãi ngộ tốt trên TopDev

Hé lộ chuỗi Tech Topics Độc Quyền chỉ có tại VWS2019 dành cho các Tech-lovers!

Trong sự trở lại lần này, những chủ đề được trau chuốt bởi các chuyên gia sẽ khiến bạn phải trầm trồ vì khó có thể tìm được ở bất cứ hội thảo nào khác ngoài VWS2019:

  • Trước hết, bạn không thể bỏ lỡ session mang tên Migrating a system from On-premises to Serverless architecture khi được biết Serverless là một trong những xu hướng công nghệ nổi bật trên thế giới hiện nay, đại diện từ NashTech sẽ chủ trì Topic này.
  • Song, công nghệ tăng tốc không thể bỏ quên khía cạnh lợi nhuận mà Blockchain mang lại, bạn có mong muốn cắt giảm 98% chi phí thì Topic từ CTO/Founder của Nexty bạn không thể bỏ lỡ rồi đấy ~
  • Chủ đề mà chuyên gia từ Google năm nay mang lại đã được bật mí: “Lộ trình A-Z (well-lit path) về cách phát triển doanh nghiệp với các đặc điểm mới nhất về khả năng chịu tải của web”, bạn đã sẵn sàng cập nhật những tin tức mới nhất từ phía Google?

  • Bạn có nhận ra CNTT đang hướng sự tập trung mạnh mẽ đến ngành Logistic, vận tải,…và bạn có tò mò cách thức một nền tảng kết nối merchants và shippers như AhaMove làm cách nào để trực quan hoá hệ thống địa lý, đặc biệt với lưu lượng khổng lồ như hiện tại? Chính chuyên gia từ AhaMove sẽ bật mí tại VWS2019 năm nay.
  • Song, là một web-dev thì càng nên quan tâm đến PWA (Progressive Web App) đang chiếm lĩnh “ngôi vị” tương lai của nền tảng web! Diễn giả Trần Trọng Thanh – Principal Web Engineer tại Chotot.vn sẽ thay bạn update những tiến bộ mới nhất nên được biết đến hiện tại!
  • Last but not least, tiềm lực ngành khách sạn đã không còn bỏ ngỏ tại Việt Nam bởi sự góp sức của việc ứng dụng Data Platform, AI và ML để phân tích feedback khách hàng và tìm ra nguồn gốc của vấn đề. Diễn giả từ Hashcom sẽ đặc tả một chủ đề hot không kém trong thời đại “có data là có tất cả

Code giảm 50.000đ dành riêng cho độc giả: TOPDEVBLOG@VWS2019 (chỉ giới hạn 10 slots)

Đừng quên theo dõi Vietnam Web Summit để update những thông tin mới nhất nhé!

Là một sân chơi về công nghệ, Vietnam Web Summit 2019 luôn tập trung đầu tư về nội dung để có thể đưa đến các bạn những thông tin, kiến thức chuyên ngành mới lạ, giúp mọi người đón đầu và bắt kịp các xu hướng hot trên thị trường quốc tế. 

THÔNG TIN LIÊN HỆ

Sponsor & Booth: Ms. Như Trương | 033 8847 836
Event team: event@applancer.net | 028 6681 3236
Ms. Thoa | thoa.nguyen@applancer.net | 038 5098 969

 

Tìm kiếm siêu nhanh sử dụng Algolia

Nếu như trước đây chúng ta thường sử dụng tìm kiếm bằng cách query thẳng vào database. Đối với những dữ án nhỏ, ít dữ liệu thì sử dụng cách này cũng được. Nhưng đối với dự án lớn, record nhiều thì đến lúc phải dùng search server riêng, nổi tiếng là Elastic Search (opensource) hoặc dùng cloud service như Algolia…

Algolia là gì?

Algolia là một cloud service phục vụ chuyên cho việc tìm kiếm, việc trả dữ liệu của nó phải nói là siêu nhanh. Algolia cung cấp tìm kiếm theo chỉ mục với các định dạng file JSONCSV hoặc TSV hoặc sử dụng API để thêm thông tin tìm kiếm được đánh chỉ mục.

Ưu điểm:

  • Algolia cung cấp gói miễn phí cho bạn sử dụng.
  • Giao diện quản lý dễ sử dụng cho phép bạn theo dõi, truy vết và giám sát các hoạt động tìm kiếm.
  • Cung cấp các API Client cho nhiều ngôn ngữ như JavaScriptNode.jsGo, Php.
  • Các thư viện Algolia cung cấp rất hay như AutocompleteAlgolia Places.

Nhược điểm:

  • Đắt tiền
  • Live search sử dụng public API key trên javascript ở client, điều này có lẽ dễ dẫn đến tình trạng bị những kẻ xấu lợi dụng tấn công tiêu tốn chi phí API

Bạn có thể bắt đầu với việc đăng kí ở Algolia. Gói free của Algolia cho phép 1000 records và 50000 operation một tháng. Bạn có thể tạo nhiều app với free package.

Một số lưu ý:

  • Không nên tạo Algolia search account từ Heroku addons vì search instance tạo ra sẽ có base region là US, latency cao. Hãy tạo app từ giao diện web của Algolia với region là Hongkong (Singapore latency cao hơn một chút)
  • Mặc dù có thể config để tạo các index cho các môi trường cùng trên một search instance, việc này là không nên, hãy tạo các search instance khác nhau cho các môi trường khác nhau

Fulltext-Search là gì?

Fulltext Search là cách tự nhiên nhất để tìm kiếm thông tin. Hệt như Google, ta chỉ cần gõ từ khóa và nhấn enter thế là có kết quả trả về.

Nhắc đến FullText Search ta không thể không nhắc đến Inverted Index , đây là 1 kĩ thuật index trong database, một kĩ thuật quan trọng trong Fulltext Search. Thế Inverted Index là gì?

Inverted Index là một cấu trúc dữ liệu, nhằm mục đích map giữa các từ hay chữ số và các document chứa chúng.

Kỹ thuật Inverted Index

Để dễ hiểu, các bạn xem ví dụ dưới đây:

Document1 = "Toan is Developer"
Document2 = "Developer Php"
Document3 = "Toan is Developer and Devops"

Và Inverted Index được lưu như sau:

"Toan" => {Document1,Document3}
"is" => {Document1, Document3}
"Developer" => {Document1, Document2, Document3}
"Php" => {Document2}
"and" => {Document3}
"Devops" => {Document3}

Cách hoạt động Đầu tiên hệ thống nó sẽ tách chuỗi tìm kiếm ra thành các từ Tam, is, Developer. Sau đó sẽ tìm trong inverted index và được các tập hợp như sau:

{Document1,Document3}
{Document1,Document3}
{Document1,Document2,Document3}

Sau đó union các tập hợp lại

{Document1,Document3} union {Document1,Document3} 
union {Document1, Document2, Document3} => {Document1}

Kỹ thuật Fuzzy Search

Fuzzy Seach (tìm kiếm “mờ”) hay còn hay được gọi là Approximate Search (tìm kiếm “xấp xỉ”) là khái niệm để chỉ kỹ thuật để tìm kiếm một xâu “gần giống” (thay vì “giống hệt” ) so với một xâu cho trước.

Nhập: "Ngyen Minh Toan"
Kết quả: "Nguyen Minh Toan"

So sánh Substring

Nó giống LIKE trong SQL. Giả sử như người dùng nhập vào xâu “TopDev”, bạn có thể trả về những kết quả có chứa từ “TopDev” như “TopDev Vietnam” , “TopDev Việc Làm IT”

Khoảng cách Levenshtein

Khoảng cách Levenshtein là số bước ít nhất biến một xâu A thành xâu B thông qua 3 phép biến đổi:

  • Thêm một ký tự
  • Bớt một ký tự
  • Thay đổi một ký tự

Cách sử dụng Algolia

Bạn vào link Sử dụng Algolia với Laravel Scout để tham khảo thêm.

 

 

Hướng dẫn viết CV bất khả chiến bại dành cho Software Engineer

Lập trình viên – Bạn có kinh nghiệm, kiến thức nhưng vẫn không thể qua khỏi vòng phỏng vấn?! Bài viết này sẽ bắt mạch đúng những lỗi sai khiến CV của bạn mất điểm trước nhà tuyển dụng và cách để bạn chiến thắng trước mọi yêu cầu khó nhằn nhất.

Trước khi bắt đầu bắt tay vào viết CV, hãy đảm bảo bạn đã làm đầy đủ các bước sau:

Xác định rõ độ dài của CV

Bạn có biết, một nhà tuyển dụng chuyên nghiệp thường chỉ dành khoảng… 30 giây để scan một hồ sơ? Bởi vậy, độ dài lý tưởng cho CV của một Software Engineer1 trang A4 ở định dạng PDF. Việc tóm gọn CV chỉ trong 1 trang vừa đảm bảo rằng nhà tuyển dụng sẽ dễ dàng lọc ra thông tin cần thiết, vừa giúp bạn tránh các trường hợp thất lạc khi in ấn hoặc nhà tuyển dụng đọc sót thông tin.

Lập “dàn bài” 6 phần

Đứng trên góc nhìn của recruiter, sáu phần là đủ để một Software Engineer phô diễn tất cả kỹ năng, kiến thức, cũng như kinh nghiệm của mình. Chúng bao gồm:

  1. Thông tin cá nhân (Profile)
  2. Học vấn (Education)
  3. Kinh nghiệm làm việc (Professional Experience)
  4. Dự án cá nhân (Personal Projects)
  5. Kỹ năng chuyên ngành (Technical Skills)
  6. Các hoạt động và giải thưởng (Activities & Awards) (không bắt buộc)

Sau đây chúng ta cùng đi sâu vào từng phần với các tips và hướng dẫn cụ thể.

  1. Thông tin cá nhân (Profile)

1.1. Bao gồm
  • Họ và tên
  • Email
  • Số điện thoại
  • URLs

Phần thông tin cá nhân KHÔNG  nên bao gồm các mục:

  • Tuổi tác, ngày sinh
  • Tình trạng hôn nhân
  • Giới tính
  • Quốc tịch
  • Địa chỉ nhà riêng
  • Mục tiêu nghề nghiệp (Career Objectives)

Những thông tin này không chỉ vô ích trong việc đánh giá năng lực ứng viên, mà còn rất thừa thãi khi bạn chỉ có 1 trang để trình bày về bản thân. Cách viết như vậy cũng khá lỗi thời so với một vị trí (được cho là) luôn cập nhật những gì mới nhất như Software Engineer.

Về Career Objectives, nhiều kênh tuyển dụng trên thế giới đều cho rằng đây là một mục nên bỏ qua bởi sự sáo rỗng và vô ích của nó. Chưa kể, bạn sẽ không muốn rơi vào tình huống nộp CV cho công ty B nhưng lại ghi “Tôi muốn cống hiến cho thành công của công ty A” phải không?

1.2. Cách trình bày Profile

a. Cách ghi họ và tên
  • Hãy viết tên theo format tên+đệm+họ hoặc tên+họ nếu bạn nộp hồ sơ cho các công ty nước ngoài.
  • Nếu nộp CV bằng tiếng Anh, hãy viết tên không dấu.

Hãy chú trọng những thứ sẽ gây ấn tượng đầu tiên cho nhà tuyển dụng

Việc này không chỉ giúp bạn trở nên chuyên nghiệp, mà còn tránh được những sai sót trong quá trình xử lý hồ sơ như: tools lọc nhầm tên, lỗi font, hay sếp nước ngoài đọc ngược tên, v.v..

b. Thêm URLs trong phần giới thiệu bản thân

Thay vì Giới tính, Tuổi, Địa chỉ, Tình trạng hôn nhân, bạn nên đầu tư vào URLs – nơi chứa những thông tin biết nói.

Đối với vị trí Software Engineer, URL quan trọng nhất chính là GitHub, bởi nhà tuyển dụng sẽ dựa vào đó để đánh giá phần nào trình độ chuyên môn của ứng viên. Hãy tút tát GitHub thật kỹ càng, update phần readme cho tất cả các repository, đảm bảo rằng ở đó không chỉ có những project helloworld trước khi dẫn link vào CV.

Hai URLs quan trọng nhất với Software Engineer: GitHub và LinkedIn

  8 tips giúp tăng hiệu suất làm việc với Github

Một URL cũng quan trọng không kém chính là LinkedIn. Nếu CV chỉ giới hạn trong 1 trang thì LinkedIn là một portfolio cho bạn thoả sức “khoe khéo” cả quá trình học tập và làm việc. Cũng như GitHub, hãy update LinkedIn bằng cách:

  • Chọn một bức ảnh đại diện với tông màu sáng sủa, chuyên nghiệp và đầy năng lượng
  • Nêu rõ vị trí, vai trò, thành tích, đóng góp trong công việc hoặc các dự án đã làm
  • Đưa ra những con số ấn tượng mà bạn đã đạt được trong quá trình học tập và làm việc
  • Đưa các đường link như GitHub/GitLab, website cá nhân, bài báo… để nhà tuyển dụng tham khảo (nếu có)

c. Nhất quán trong thông tin cá nhân

Nếu bạn là một người kỹ tính, hãy lập tài khoản email, Skype, LinkedIn và GitHub với cùng một username. Đây là một cách đơn giản nhưng khá hiệu quả để gây ấn tượng về sự chuyên nghiệp.

Dùng 1 username cho tất cả các tài khoản để tránh nhầm lẫn

  • Các username nên là tên, tên viết tắt, hoặc một tổ hợp liên quan trực tiếp đến tên của bạn.
  • Hãy quan tâm đến cả địa chỉ email, tuyệt đối tránh đưa những email thiếu nghiêm túc như girlxjnk9x@yahoo.com, boydeptraithichgirlxinhgai@yahoo.com…
  • Việc dùng một username thống nhất sẽ gây ấn tượng tốt, tránh sai sót so với những URL dài, URL tự động.

Tạo CV IT online, chuẩn ATS miễn phí trên TopDev

  1. Học vấn (Education)

2.1. Bao gồm

  • Tên trường
  • Tên chuyên ngành
  • GPA
  • Các khoá học liên quan
  • Các chứng chỉ khác

Tips:

  • Đa số các công ty IT không quá khắt khe về mức GPA đầu vào, nên bạn không bắt buộc phải ghi GPA.
  • Nếu GPA của bạn dưới 3.0, thì đây là lúc bạn vận dụng sự sáng tạo để tìm ra thế mạnh cho mình. Ví dụ, sẽ thế nào khi bạn chỉ tập trung vào các môn chuyên ngành, khá qua loa với các môn đại cương, dẫn đến điểm trung bình chuyên ngành cao hơn GPA tổng? Một mẹo nhỏ, bạn hoàn toàn có thể điền in-major/departmental GPA thay vì GPA như thông thường.

Hãy linh hoạt khi đưa ra thông tin về điểm để có lợi thế cho mình

  • Chỉ liệt kê các khoá học và chứng chỉ liên quan đến vị trí Software Engineer như: Data Structures & Algorithms, Operating Systems, Networking, Computer Vision…

Một thực tế là nhiều bạn ứng viên có tâm lý sợ thiếu, nên có bao nhiêu chứng chỉ cũng muốn ghi đầy đủ. Nhưng hãy nhớ rằng nhà tuyển dụng không cần người giỏi nhất, họ cần người phù hợp nhất. Cho nên, một tấm bằng hạng xuất sắc về Lịch sử hay Văn học sẽ không giúp bạn trở nên cạnh tranh hơn cho vị trí Software Engineer.

2.2. Cách trình bày

  • Ghi GPA ngay cạnh tên chuyên ngành để tiết kiệm không gian. Nếu không, bạn có thể ghi cùng cột với thời gian học.
  • Hãy ghi thời gian học bằng công thức month year – month year. Nếu chưa tốt nghiệp, bạn có thể ghi ngày dự kiến (anticipated graduation) hoặc đơn giản là month year – present. Cách này sẽ dễ hình dung hơn là chỉ ghi năm, hoặc ghi mốc học kỳ.

Hãy chỉn chu kể cả những thứ nhỏ nhất như ngày tháng năm

  • Bạn không nhất thiết phải ghi điểm các môn học để tránh CV bị quá dài. Nếu nhà tuyển dụng cần thông tin về bảng điểm của bạn, họ sẽ trao đổi trực tiếp sau.
  • Nếu có giải thưởng nổi bật liên quan đến học thuật, bạn cũng có thể đưa vào phần Education.

Đừng ngại khoe những giải thưởng, thành tích học thuật của mình. Đó hoàn toàn có thể là một điểm cộng trong mắt nhà tuyển dụng.

  1. Kinh nghiệm làm việc (Professional Experience)

Nếu đã có kinh nghiệm, bạn có thể đưa phần này lên trước phần Education bởi khi đó, nhà tuyển dụng sẽ nhìn vào kinh nghiệm làm việc để đánh giá hồ sơ ứng viên.

3.1. Bao gồm

  • Vị trí, chức vụ
  • Tên công ty (+ địa điểm công ty)
  • Thời gian làm việc
  • Mô tả công việc
  • Thành quả công việc và kỹ năng/kiến thức đạt được

Phần lớn CV chúng mình nhận được, ứng viên chỉ dừng lại ở mức mô tả công việc họ từng làm. Nhưng hãy nghĩ xem, liệu nhà tuyển dụng có muốn đọc lại những JD vô thưởng vô phạt mà ai cũng có thể viết ra?

Không. Thứ họ muốn biết là ở vị trí đó, với những công việc đó, bạn đã tạo ra thành quả như thế nào, và học được gì cho bản thân. Bởi vậy, việc tiến thêm một bước, ghi rõ những thành quả trong công việc là một phần vô cùng quan trọng để bạn trở nên nổi bật hơn.

3.2. Cách trình bày
a. Liệt kê theo thứ tự thời gian đảo ngược

Đây là cách tốt nhất để nhà tuyển dụng thấy ngay kinh nghiệm gần nhất của bạn. Nhất là khi đã có nhiều năm kinh nghiệm, bạn chắc hẳn không muốn điều đầu tiên nhà tuyển dụng nhìn thấy là nơi làm việc của bạn từ… 7 năm trước đúng không?

Hãy liệt kê những kinh nghiệm gần đây nhất ở vị trí đầu tiên

b. Tóm gọn vị trí, tên công ty và thời gian làm việc ở dòng đầu tiên

Để tiết kiệm không gian, bạn có thể chia dòng đầu tiên thành 3 cột như sau:

Bố cục 3 cột cho phép bạn tận dụng khoảng trắng để tạo ra sự mạch lạc cho CV

c. Sử dụng các bullet points (gạch đầu dòng)

Một quy tắc cũng quan trọng không kém khi viết CV, đó là không viết cả câu. Các đoạn văn, câu văn hoàn chỉnh sẽ chỉ phù hợp khi bạn dùng trong cover letter, nhưng đừng áp dụng chúng vào CV. Nhà tuyển dụng muốn tìm ra điểm mấu chốt một cách nhanh nhất chứ không phải đọc một bài văn tự sự.

Thay vào đó, hãy dùng các bullet points (gạch đầu dòng). Năm bullet points là tối đa cho mỗi kinh nghiệm hoặc dự án của bạn, và đừng viết quá 2 dòng cho mỗi bullet point. Hãy nhớ, bạn chỉ muốn viết những thứ quan trọng nhất vào CV.

d. Bắt đầu mỗi bullet point bằng một động từ

Vậy làm thế nào để viết bullet points một cách hiệu quả? Hãy bắt đầu mỗi bullet point bằng một động từ. Bằng cách này, nhà tuyển dụng sẽ thấy ngay được vai trò của bạn trong mỗi công việc, dự án.

Bắt đầu mỗi dòng bởi động từ sẽ giúp bạn trình bày ngắn gọn, hiệu quả hơn

Hãy tham khảo và lưu lại một số động từ mà bạn có thể sử dụng cho CV của mình như:

e. Chứng minh mọi thứ bằng data

Hầu hết CV hiện nay đều có phần Experience rất chung chung. Chúng giống như những phiên bản upgrade của Job Descriptions thay vì thực sự chỉ ra bạn đã làm được gì trong những công việc trước đây. Nhà tuyển dụng không cần điều đó. Họ muốn biết bạn đã thực sự làm được gì, kết quả ra sao.

Hãy để những con số chứng minh năng lực của bạn

Hãy tham khảo công thức được gợi ý bởi các nhà tuyển dụng của Google: “Accomplished X measured by Y by doing Z”. X ở đây là thành quả bạn đã đạt được, Y là những con số thống kê và Z là phương pháp. Ví dụ: Reduced number of error tickets by 54% by using an effective debugging strategy.

Thêm một số công thức tương tự dành cho Engineer:

  • Reduced _____ by _____ by _____.
  • Redesigned _____ for _____.
  • Implemented _____ for _____ by _____.
  • Improved _____ by _____ through _____.
  • Utilized _____ to _____ for _____.
  • Increased _____ by _____ through _____.
  • Integrated _____ by _____ for _____.
  • Incorporated _____ for _____ by _____.

Hãy nhớ rằng nhà tuyển dụng có rất nhiều cách để xác thực những thông tin trong CV của bạn. Nên đừng dại dột khai khống ở đây nhé, bởi mọi thứ sẽ chẳng nghĩa lý gì nếu bạn qua được vòng CV, nhưng lại không đủ năng lực vượt qua các vòng phỏng vấn tiếp theo.

  1. Dự án cá nhân (Personal Projects)

  Những dự án hay ho giúp bạn nhanh chóng “chạm tay” tới đỉnh lập trình

Nếu bạn chưa có nhiều kinh nghiệm, việc đầu tư vào dự án cá nhân sẽ giúp bạn ghi điểm đáng kể trong mắt các công ty. Tuy nhiên, phải đến hơn 90% số hồ sơ chúng mình từng nhận được không miêu tả các projects một cách thật sự đầy đủ.

Vậy một project đầy đủ sẽ có những gì?

4.1. Các thành phần của một project

  • Description
  • Role
  • Tech stack
  • Code

Cũng giống như ở mục 3, phần lớn ứng viên thường chỉ nêu tên project và vài dòng mô tả sơ sài – còn nhà tuyển dụng thì chẳng thu được nhiều thông tin từ đó. Hãy khiến mình trở nên nổi bật bằng những thứ có thể thực sự chứng minh năng lực của bạn.

Tips:

  • Nếu bạn có quá ít project, hoặc chưa làm một dự án nào thực sự “hẳn hoi”?

Lời khuyên là: Hãy bắt tay vào một dự án ngay đi! Bạn có thể làm một extension cho Chrome, một app game đơn giản hay một website cá nhân chẳng hạn. Kêu gọi một nhóm bạn cùng làm project cũng là một ý hay. Bạn có thể thử làm Team Leader từ những lần hoạt động nhóm, vừa có thêm trải nghiệm, lại vừa làm đẹp CV cho mình.

HR sẽ không đòi hỏi một bạn sinh viên mới ra trường phải có vài năm kinh nghiệm. Nhưng thay vào đó, hãy chứng tỏ sự chủ động học hỏi của mình bằng các projects. Bởi nếu không, cơ sở nào để biết rằng bạn là ứng cử viên sáng giá mà công ty đang tìm kiếm?

  • Đưa link GitHub cho từng dự án

Đáng tiếc rằng nhiều bạn sinh viên không có thói quen upload dự án lên các open sources. Bạn có phải một Software Engineer? Hãy chứng minh điều đó qua GitHub!

Ở nhiều công ty, sau khi HR cho pass CV, một Software Engineer hoặc thậm chí là một Team Leader sẽ xem qua profile của bạn trước khi quyết định có phỏng vấn hay không. Tại đây, họ sẽ đánh giá xem ứng viên:

  • code và tổ chức code như thế nào
  • có code theo tiêu chuẩn hoặc convention thông dụng nào không (ví dụ code Python thì phải theo PEP8)
  • có biết sử dụng các tools như CI, CD không
  • có code clean không
  • đóng vai trò gì trong các projects…

Vậy nên, nếu bạn đang thắc mắc vì sao phải cho GitHub vào CV thì đây chính là câu trả lời.

GitHub và Tech stack cho thấy cách bạn tổ chức và làm việc

  • Làm nổi bật tech stack

Hãy chủ động đề cập đến tech stack, bao gồm các ngôn ngữ lập trình, framework, công cụ mà bạn sử dụng ở mỗi dự án hoặc giai đoạn công việc. Chỉ bằng cách in đậm các tech stack, thì 2 giây cũng đủ để nhà tuyển dụng nắm được những điều quan trọng nhất trong về kỹ năng của bạn.

  Những thư viện và framework của JavaScript mà bạn không thể bỏ qua

4.2. Cách trình bày

  • Đầu tiên, hãy nêu tên dự án và thời gian thực hiện. Bạn có thể gộp cả vị trí của mình trong dòng này nếu muốn.
  • Thứ hai, hãy chèn link GitHub hoặc bất cứ open sources nào bạn dùng để lưu trữ dự án.
  • Thứ ba, mô tả ngắn gọn về dự án hoặc sản phẩm (expected outcome) của dự án đó.
  • Cuối cùng, hãy liệt kê tech stack được sử dụng.

Một gợi ý về cách trình bày project ngắn gọn nhưng vẫn đầy đủ

Với những cách trình bày trên, từng thông tin đều được thể hiện rất rõ ràng, rành mạch. Nếu bạn nộp CV online, hãy đảm bảo rằng các đường link này đều có thể click được nhé. Nếu dự án của bạn được lưu trên một nguồn mở nào khác, hoặc một website riêng biệt thì cũng hay đưa chúng vào theo format trên.

Với thứ tự này, bạn sẽ không bỏ sót bất cứ thông tin nào, cũng như đảm bảo sự thống nhất và logic của CV.

  1. Kỹ năng chuyên ngành (Technical Skills)

Theo logic thông thường, các ứng viên (đặc biệt là ứng viên Software Engineer) nên để phần Technical Skills ở đầu hoặc cuối CV. Điều này sẽ giúp nhà tuyển dụng có thể bắt được những keywords chỉ trong vòng 3-5 giây khi đọc CV.

5.1. Những kỹ năng cần liệt kê

Kỹ năng chuyên ngành không đơn giản là list ra tất cả những gì liên quan đến lập trình mà bạn biết. Vậy nên list những gì trong dung lượng 2-3 dòng của phần Technical Skills? Các kỹ năng bắt buộc bao gồm:

  • Programming Languages
  • Frameworks
  • Libraries
  • Other tools

Tips: Hãy chỉ list những kỹ năng mà bạn có thể trả lời câu hỏi về chúng trong vòng phỏng vấn nhé.

5.2. Liệt kê như thế nào?

  1. TUYỆT ĐỐI KHÔNG CHẤM ĐIỂM CÁC KỸ NĂNG

Các cách chấm điểm sau nhìn rất quen thuộc phải không? Đây là những dạng liệt kê kỹ năng thường thấy trong hầu hết các mẫu CV online. Nhưng thực tế, đó lại là cách … tệ nhất mà ứng viên có thể dùng để đánh giá kỹ năng của mình.

Hãy tuyệt đối tránh những cách đánh giá này!!

Khi nhà tuyển dụng nhìn vào những thang điểm trên, họ sẽ không biết được kỹ năng của bạn đang ở mức nào. Ví dụ nếu bạn kéo thanh kỹ năng Python như ở hình 1, họ sẽ không thể đánh giá trình độ của bạn là ở mức Proficient hay Advanced.

  1. Liệt kê kỹ năng theo mức độ thành thạo

Thay vì dùng biểu đồ, Terrence Kuo, một Software Engineer đã từng lọt vào vòng phỏng vấn với Google, Facebook, Amazon, Microsoft, Apple đã gợi ý 2 thang điểm để bạn tự đánh giá trình độ của mình:

  • Proficient – Đây là những kỹ năng mà bạn quen thuộc, sử dụng một cách thành thạo nhất và có thể phỏng vấn về chúng ngay lập tức mà không cần luyện tập nhiều.
  • Familiar – Những kỹ năng mà bạn đã từng học, nhưng không đào sâu và thực hành nhiều ở thời điểm hiện tại. Bạn có thể trả lời những câu hỏi cơ bản, nhưng cần thêm thời gian ôn tập cho những câu hỏi nâng cao.

Cách trình bày Technical Skills

Tuy nhiên, có nhiều bạn cũng không rõ kỹ năng của mình đang ở mức nào. Liệu như thế nào mới là Proficient, thế nào là không…? Nếu bạn cũng đang phân vân, hãy thử một cách đơn giản hơn là liệt kê các kỹ năng theo thứ tự, cái nào thạo nhất đặt trước, chứ không ghi rõ mức độ như ở cách trên.

Một cách khác nếu bạn chưa thực sự tự tin vào kỹ năng của mình

Nhưng dù thế nào, đây cũng chỉ là một cách chữa cháy. Nếu chưa đủ tự tin về kỹ năng của bản thân, bạn nên dành thêm 2-6 tháng để trau dồi kiến thức. Công ty sẽ cho bạn kinh nghiệm, nhưng chỉ khi bạn đã có sẵn cho mình một nền tảng nhất định. Nền tảng đó là tư duy, là kiến thức căn bản – những điều bạn hoàn toàn có thể rèn luyện để có một vòng phỏng vấn tốt hơn.

  1. Các hoạt động và giải thưởng (Activities & Awards) (không bắt buộc)

Đây là phần cuối cùng, cũng là phần bạn có thể tuỳ chỉnh dựa trên kinh nghiệm của bản thân. Ví dụ, viết về một cuộc thi Hackathon sẽ khác với khi tham gia các câu lạc bộ hay hoạt động đoàn thể. Các yếu tố cốt lõi nhất bạn nên liệt kê, bao gồm:

  • Tên của giải thưởng/hoạt động
  • Thời gian diễn ra
  • Vị trí/chức vụ của bạn
  • Vài dòng mô tả giải thưởng/hoạt động đó

Hãy chỉ rõ thành quá/hoạt động của bạn

Tuy nhiên, bạn không nên quá tập trung vào những kinh nghiệm như đi làm part-time ở quán cà phê, trợ giảng tiếng Anh, hay các hoạt động đoàn đội đơn thuần. Hãy luôn nhớ rằng bạn đang apply cho vị trí Software Engineer, nơi tư duy và kỹ năng lập trình mới là hai yếu tố nhà tuyển dụng thực sự quan tâm.

Cùng tổng hợp lại những điều quan trọng nhất từ bài viết:

Xem thêm việc làm Software Engineer tại TopDev

TopDev via Got It Vietnam

Blockchain là gì? Nguyên lý hoạt động và ưu điểm nổi bật của Blockchain

Blockchain là gì

Blockchain là thuật ngữ vẫn chưa hết hot cho đến hiện tại, nhắc đến blockchain ta thường liên tưởng đến các câu chuyện công nghệ lớn. Vậy, bạn đã thật sự hiểu rõ blockchain là gì? cùng TopDev tìm hiểu thật chi tiết về khai niệm, phương thức hoạt động cũng như các ứng dụng của Blockchain trong bài viết dưới đây!

Blockchain là gì?

Blockchain là gì?
Blockchain là gì?

Blockchain là gì? Blockchain là một cuốn số cái kế toán công cộng. Trong đó, mọi thông tin được lưu trữ và truyền tải một cách minh bạch, toàn vẹn, không thể nào thay đổi hay gian lận được. Đây là một công nghệ mới, giúp cải thiện được rất nhiều những mặt hạn chế của cách lưu trữ và trao đổi thông tin truyền thống. Bởi lý do này, mà blockchain ngày càng được ứng dụng rộng rãi trong nhiều lĩnh vực: kinh tế tài chính, giáo dục, nông nghiệp, công nghiệp, lĩnh vực giải trí, y tế hay giáo dục….

Sâu về kỹ thuật hơn, Blockchain là một database phân tán (phi tập trung) mà trong đó các dữ liệu được lưu trữ dưới dạng các blocks. Body của một block mang theo các transactions trên dữ liệu (như state machine). Block được kết nối với nhau theo dạng linked list (danh sách liên kết) dưới dạng mã hóa SHA256. Mã hóa của một block bao gồm cả địa chỉ của block trước và body của chính nó nên khi một block được add vào, nó không thể thay đổi cũng như tái sắp xếp.

Nếu bạn vẫn chưa hiểu thì có thể hình dung blockchain nó giống như cái history mình thường thấy trong Git. Mỗi một commit chính là một block. Ta có thể dễ dàng xem được các commit cũ, cũng như track xem ai đã làm gì trên source code của mình, blockchain cũng y như vậy thôi.

Điểm khác biệt và cũng là tinh hoa của blockchain đó là nó ko nằm 1 nơi như Git (các git server), mà được phân tán thành nhìu nơi (nhiều node), và tất cả là ngang hàng. Chính vì vậy mỗi một thay đổi trên 1 node phải được sự đồng thuận của cả mạng (tất cả các node). Ngoài ra còn có mấy khái niệm như Proof of Work, Stack of Work sẽ được giải thích trong những phần tiếp theo của bài viết.

Lịch sử hình thành và phát triển Blockchain

Blockchain là gì? Các ứng dụng liên quan đến Blockchain

Từ khi được đề xuất trong những nghiên cứu sơ khai về mật mã học từ những năm 1990, blockchain đã trải qua một cuộc hành trình phát triển đáng kể.

Bitcoin chính thức được triển khai vào năm 2009, đánh dấu bước ngoặt lớn đối với công nghệ blockchain và cũng mở ra cánh cửa cho sự phát triển của nhiều đồng tiền điện tử và ứng dụng khác dựa trên nền tảng này như tài chính, logitics, y tế và nhiều lĩnh vực khác. Các công nghệ blockchain mới, như Ethereum, đã mở ra khả năng triển khai các hợp đồng thông minh (smart contracts), cho phép thực hiện các giao dịch và thỏa thuận mà không cần sự can thiệp của bên thứ ba.

Đặc điểm của công nghệ blockchain

Đặc điểm của công nghệ blockchain

  1. Phân tán (Decentralized): Dữ liệu được lưu trữ phân tán trên nhiều nút (node) trong mạng, giúp phân phối tải và tăng cường tính bảo mật, giảm thiểu rủi ro tấn công và mất dữ liệu.
  2. Bất biến (Immutability): Tính bất biến nghĩa là một cái gì đó không thể thay đổi hay biến đổi được. Một khi dữ liệu đã được ghi vào blockchain, nó sẽ rất khó để thay đổi hoặc xóa bỏ. Mỗi khối (block) trong blockchain đều được liên kết với khối trước đó bằng một hàm băm (hash), tạo thành một chuỗi liên kết chặt chẽ. Nếu có một mắc xích bị lỗi, phải thêm giao dịch mới để bù trừ cho lỗi và cả hai giao dịch đều được hiển thị trong mạng lưới, điều này làm tăng tính chính xác và độ tin cậy của thông tin.
  3. Tính minh bạch: Các giao dịch và thông tin trong chuỗi khối đều được ghi lại và có thể được truy xuất bởi tất cả các thành viên trong mạng, điều này giúp tăng cường độ tin cậy.
  4. Giao dịch an toàn: Mỗi khối dữ liệu được mã hóa bằng các thuật toán mật mã mạnh mẽ, đảm bảo tính bảo mật và bảo vệ dữ liệu.
  5. Đồng thuận (Consensus): Là quá trình các node trong mạng đạt được sự đồng thuận về trạng thái hiện tại của blockchain. Bạn chỉ có thể ghi lại các giao dịch mới khi đa số người tham gia mạng lưới đồng thuận.

Các cơ chế đồng thuận trong Blockchain

Như đã trình bày ở trên, đồng thuận là một trong những đặc điểm quan trọng của Blockchain. Dưới đây là các loại cơ chế đồng thuận phổ biến trong blockchain:

  • Proof of Work (Bằng chứng Công việc): Đây là cơ chế đồng thuận phổ biến nhất, được dùng trong Bitcoin, Ethereum, Litecoin, Dogecoin và hầu hết các loại tiền mã hoá. Đây là cơ chế đồng thuận tiêu tốn khá nhiều điện năng.
  • Proof of Stake (Bằng chứng Cổ phần): Đây là cơ chế đồng thuận phổ biến trong Decred, Peercoin và trong tương lai là Ethereum và nhiều loại tiền mã hoá khác. Cơ chế đồng thuận này phân cấp hơn, tiêu hao ít năng lượng và không dễ gì bị đe doạ.
  • Delegated Proof-of-Stake (Uỷ quyền Cổ phần): Đây là cơ chế đồng thuận phổ biến trong Steemit, EOS, BitShares. Cơ chế đồng thuận này có chi phí giao dịch rẻ; có khả năng mở rộng; hiệu suất năng lượng cao. Tuy nhiên vẫn một phần hơi hướng tập trung vì thuật toán này lựa chọn người đáng tin cậy để uỷ quyền.
  • Proof of Authority (Bằng chứng Uỷ nhiệm): Đây là cơ chế đồng thuận phổ biến thường thấy trong POA.Network, Ethereum Kovan testnet. Cơ chế đồng thuận này có hiệu suất cao, có khả năng mở rộng tốt.
  • Proof-of-Weight (Bằng chứng Khối lượng /Càng lớn càng tốt): Đây là cơ chế đồng thuận phổ biến trong Algorand, Filecoin. Cơ chế đồng thuận này có thể tuỳ chỉnh và khả năng mở rộng tốt. Tuy nhiên quá trình thúc đẩy việc phát triển sẽ là một thử thách lớn.
  • Byzantine Fault Tolerance (Đồng thuận chống gian lận /Tướng Byzantine bao vây Blockchain): Đây là cơ chế đồng thuận phổ biến trong Hyperledger, Stellar, Dispatch, và Ripple. Cơ chế đồng thuận này có năng suất cao; chi phí thấp; có khả năng mở rộng. Tuy nhiên vẫn chưa thể tin tưởng hoàn toàn.

Các loại Blockchain phổ biến

Hiện nay có nhiều loại blockchain khác nhau, nhưng hai loại phổ biến nhất là blockchain công cộng (public blockchain) và blockchain tư nhân (private blockchain). Dưới đây là một số loại blockchain chính

Các loại blockchain phổ biến hiện nay
Các loại blockchain phổ biến hiện nay
  • Blockchain công cộng (Public Blockchain): Blockchain công cộng là một mạng lưới phân tán mà bất kỳ ai cũng có thể tham gia mà không cần phải xin phép. Điều này làm cho nó trở thành một nền tảng mở cho tất cả mọi người tham gia giao dịch và xem lịch sử các giao dịch đã được xác nhận. Ví dụ phổ biến nhất là Bitcoin và Ethereum. Các tính chất quan trọng của blockchain công cộng bao gồm tính minh bạch cao, khả năng chống lại các cuộc tấn công và khả năng xử lý dữ liệu một cách công bằng cho tất cả thành viên mạng.
  • Blockchain tư nhân (Private Blockchain): Blockchain tư nhân, như tên gọi, là một mạng lưới được quản lý bởi một tổ chức hay một nhóm nhỏ các tổ chức. Mặc dù nó vẫn có tính chất phân tán, chỉ những người được mời mới có thể tham gia và xem các giao dịch. Blockchain này thường được sử dụng cho các mục đích nội bộ của doanh nghiệp hoặc trong các ứng dụng yêu cầu sự bảo mật cao hơn so với blockchain công cộng.
  • Blockchain hỗn hợp (Hybrid Blockchain): Hybrid blockchain là sự kết hợp giữa các đặc tính của cả hai loại blockchain công cộng và tư nhân. Nó cho phép các tổ chức có thể lựa chọn để lưu trữ dữ liệu một cách công khai hoặc riêng tư, tùy thuộc vào nhu cầu cụ thể của họ. Điều này mang lại sự linh hoạt và lựa chọn rộng rãi cho các ứng dụng và các trường hợp sử dụng khác nhau.
  • Consortium blockchain là một mạng blockchain được điều hành bởi một nhóm hạn chế các tổ chức hoặc thực thể thay vì công cộng. Các thành viên trong mạng này chia sẻ quyền kiểm soát và quản lý hệ thống. Điều này giúp cải thiện tính bảo mật, minh bạch và hiệu suất của các ứng dụng như quản lý chuỗi cung ứng, bảo hiểm, y tế, và tài chính mà không cần đến sự can thiệp của một bên thứ ba.

Các thành phần tạo nên Blockchain

Các thành phần tạo nên Blockchain

Sổ cái phân tán (Distributed Ledger)

Sổ cái phân tán là cốt lõi của blockchain, nó hoạt động như một cuốn sổ ghi chép công khai, không thể bị giả mạo. Thay vì được lưu trữ tập trung tại một máy chủ, sổ cái này được phân tán và sao chép trên hàng nghìn, thậm chí hàng triệu máy tính tham gia vào mạng lưới. Mỗi giao dịch được ghi lại vào một khối (block) và các khối này được liên kết với nhau bằng một chuỗi các hàm bhash mật mã. Nhờ đó, việc thay đổi thông tin trong bất kỳ khối nào đều trở nên vô cùng khó khăn, đảm bảo tính bảo mật và minh bạch cho toàn bộ hệ thống.

Hợp đồng thông minh (Smart Contracts)

Hợp đồng thông minh là những đoạn mã tự thực thi được lưu trữ trực tiếp trên blockchain. Chúng hoạt động như những hợp đồng tự động, thực hiện các điều khoản đã được lập trình sẵn khi các điều kiện nhất định được đáp ứng. Không cần đến sự can thiệp của bên thứ ba, hợp đồng thông minh giúp giảm thiểu rủi ro gian lận và tăng tốc độ thực hiện các giao dịch. Ví dụ, một hợp đồng thông minh có thể được sử dụng để tự động chuyển tiền khi một hàng hóa được giao thành công hoặc thực hiện các thanh toán lãi suất định kỳ cho các khoản vay.

Mật mã hóa khóa công khai (Public-key cryptography)

Mật mã hóa khóa công khai là một công nghệ bảo mật đóng vai trò quan trọng trong blockchain. Nó sử dụng một cặp khóa, bao gồm một khóa công khai và một khóa riêng. Khóa công khai được chia sẻ công khai và được sử dụng để mã hóa dữ liệu, trong khi khóa riêng được giữ bí mật và chỉ được sử dụng để giải mã. Nhờ đó, người dùng có thể xác thực danh tính của nhau và đảm bảo tính bảo mật cho các giao dịch.

Ngoài ra còn các thành phần quan trọng khác:

  • Peer-to-peer network là nền tảng kết nối các máy tính tham gia vào mạng blockchain. Trong mạng ngang hàng, không có máy chủ trung tâm mà các máy tính (node) giao tiếp trực tiếp với nhau. Điều này giúp tăng cường tính phi tập trung và độ ổn định của hệ thống.
  • Hàm băm (hash) là một hàm toán học một chiều, có nghĩa là từ một đầu vào bất kỳ, hàm băm luôn tạo ra một chuỗi ký tự đầu ra có độ dài cố định. Hàm băm được sử dụng để tạo ra một giá trị băm duy nhất cho mỗi khối trong blockchain. Giá trị băm này được liên kết với khối tiếp theo, tạo thành một chuỗi liên kết chặt chẽ. Nếu bất kỳ dữ liệu nào trong một khối bị thay đổi, giá trị băm sẽ thay đổi hoàn toàn, điều này giúp đảm bảo tính toàn vẹn của dữ liệu trên blockchain.
  • Máy ảo là một môi trường thực thi các hợp đồng thông minh. Nó cung cấp một nền tảng an toàn và cách ly để các hợp đồng thông minh chạy mà không ảnh hưởng đến các phần khác của blockchain.

>> Xem thêm: Game blockchain là gì? Khám phá tiềm năng thị trường game blockchain

Blockchain hoạt động như thế nào?

Blockchain hoạt động như thế nào?

Tạo khối và ghi lại giao dịch

Hãy tưởng tượng blockchain như một cuốn sổ cái kỹ thuật số khổng lồ, ghi lại tất cả các giao dịch. Mỗi giao dịch, ví dụ như việc chuyển tiền từ ví điện tử này sang ví điện tử khác, sẽ được ghi lại thành một bản ghi, sau đó được nhóm vào một khối cùng với các giao dịch khác.

Sự đồng thuận

Sau khi các giao dịch được nhóm lại thành một khối, các nút (node) trong mạng sẽ tiến hành xác thực khối này. Quá trình này được gọi là “đạt được sự đồng thuận”. Có nhiều thuật toán đồng thuận khác nhau, nhưng một trong những thuật toán phổ biến nhất là Proof of Work (PoW).

cơ chế đồng thuận Blockchain

  • Thợ đào: Để thêm một khối mới vào chuỗi, các thợ đào (miner) sẽ phải giải một bài toán toán học phức tạp.
  • Cuộc đua: Các thợ đào sẽ cạnh tranh để tìm ra lời giải đầu tiên.
  • Phần thưởng: Thợ đào đầu tiên tìm ra lời giải sẽ được nhận một phần thưởng (ví dụ: Bitcoin).

Liên kết các khối

Mỗi khối trong chuỗi blockchain được liên kết với khối trước đó thông qua một giá trị băm. Giá trị băm là một chuỗi ký tự duy nhất được tạo ra từ dữ liệu của khối. Nếu bất kỳ dữ liệu nào trong một khối bị thay đổi, giá trị băm của khối đó và tất cả các khối sau đó sẽ thay đổi. Điều này tạo ra một chuỗi liên kết chặt chẽ, đảm bảo tính toàn vẹn của dữ liệu.

Ví dụ: Hãy tưởng tượng một chuỗi các khối như một chiếc dây xích. Mỗi mắt xích đại diện cho một khối. Nếu ai đó cố gắng cắt đứt hoặc thay đổi một mắt xích, toàn bộ dây xích sẽ bị hỏng.

Chia sẻ sổ cái

Tất cả các nút trong mạng blockchain đều có một bản sao đầy đủ của sổ cái. Điều này có nghĩa là không có một cơ quan trung tâm nào kiểm soát toàn bộ dữ liệu. Mỗi khi một khối mới được thêm vào chuỗi, các nút sẽ tự động cập nhật sổ cái của mình.

Những ưu điểm nổi bật của Blockchain

Vì sao công nghệ blockchain lại trở thành xu hướng công nghệ hàng đầu hiện nay:

  1. Tính minh bạch và không thể phá vỡ: có thể nói đây là một trong những đặc điểm nổi bật nhất. Tất cả mỗi thông tin được lưu trữ, truyền tải và xử lý trong hệ thống blockchain, đều được thể hiện một cách minh bạch, rõ ràng nhất và không thể thay đổi, không thể giả mạo, không thể phá vỡ. Do đó, nếu bạn muốn truy xuất những thông tin về giao dịch của mình hay của người khác ( bao gồm ngày, giờ, chi tiết về giao dịch….) thì bạn sẽ không bao giờ phải lo ngại về sự thiếu chính xác của dữ liệu.
  2. Đặc tính ẩn danh: trọng tâm trong việc bảo vệ sự riêng tư của blockchain chính là khả năng ẩn danh người dùng. Đặc tính này, sẽ giúp bạn có thể giao dịch một cách an toàn, bảo mật mà không cần phải lo ngại về người khác biết được danh tính của mình. Cùng với sự minh bạch, không thể phá vỡ hay thay đổi dữ liệu và đặc tính ẩn danh, giúp blockchain tạo ra một niềm tin rất lớn đối với người dùng, giúp bạn cảm thấy an tâm hơn khi tham gia vào Blockchain.
  3. Rút ngắn được thời gian và tiết kiệm chi phí: nếu giao dịch truyền thống, theo kiểu cần có bên thứ 3 để xác thực, tạo sự tin cậy và minh bạch, thì bạn sẽ phải chịu thêm một phần chi phí nhất định cho bên thứ 3 này. Tuy nhiên, khi bạn ứng dụng blockchain vào giao dịch của mình, với hợp đồng thông minh (smart contract) bạn và đối tác của bạn sẽ là người trực tiếp thực hiện giao dịch và hệ thống trên blockchain sẽ là người xác nhận cho bạn, mà không cần tốn thêm chi phí, thậm chí là còn tiết kiệm được cả về thời gian giao dịch.
  4. Tính ứng dụng rộng rãi: công nghệ blockchain có thể ứng dụng rộng rãi trong mọi mặt đời sống hiện nay. Ví dụ như ứng dụng blockchain trong nông nghiệp thực phẩm, trong quản lý giáo dục, bầu cử kỹ thuật số…. và nổi bậc nhất vẫn là công nghệ blockchain được ứng dụng trong giao dịch tài chính.

Vậy Blockchain có nhược điểm gì không? Đọc tiếp trong bài viết: Những nhược điểm của Blockchain

Ứng dụng của Blockchain

Top 10 ứng dụng của Blockchain
Top 10 ứng dụng của Blockchain

Nguồn: appinventiv

Dưới đây là một số ứng dụng điển hình của blockchain:

Lĩnh vực tài chính

Tài chính là một trong những lĩnh vực đầu tiên và được ứng dụng rộng rãi nhất của công nghệ blockchain. Tiền điện tử như Bitcoin đã chứng minh khả năng thực hiện các giao dịch nhanh chóng, an toàn và toàn cầu mà không cần đến các tổ chức tài chính trung gian. Hợp đồng thông minh, một đặc điểm nổi bật của blockchain, cho phép tự động hóa các hợp đồng tài chính phức tạp, giảm thiểu rủi ro và tăng tính minh bạch. Ngoài ra, blockchain còn tạo điều kiện cho sự phát triển của tài chính phi tập trung (DeFi), mở ra cơ hội tiếp cận các dịch vụ tài chính cho mọi người.

Ngành bán lẻ

Ngành bán lẻ cũng hưởng lợi rất nhiều từ công nghệ blockchain. Bằng cách ghi lại toàn bộ lịch sử giao dịch và nguồn gốc của sản phẩm lên blockchain, các doanh nghiệp có thể đảm bảo tính minh bạch và truy xuất nguồn gốc của hàng hóa. Điều này đặc biệt hữu ích trong việc chống hàng giả, bảo vệ thương hiệu và xây dựng lòng tin của người tiêu dùng. Blockchain cũng được ứng dụng để quản lý chuỗi cung ứng, tối ưu hóa quá trình vận chuyển và lưu trữ hàng hóa.

Bất động sản

Bất động sản là một lĩnh vực truyền thống đang dần được cách mạng hóa bởi blockchain. Công nghệ này giúp đơn giản hóa quá trình giao dịch bất động sản, giảm thiểu gian lận và tăng tính minh bạch. Bằng cách ghi nhận quyền sở hữu tài sản lên blockchain, việc chuyển nhượng sẽ trở nên nhanh chóng và an toàn hơn. Ngoài ra, blockchain còn cho phép chia nhỏ tài sản bất động sản thành các token nhỏ hơn, tạo điều kiện cho việc đầu tư linh hoạt hơn.

Y tế

Y tế là một lĩnh vực có tiềm năng ứng dụng rất lớn của blockchain. Blockchain có thể được sử dụng để lưu trữ hồ sơ bệnh án điện tử một cách an toàn và bảo mật, giúp cho việc chia sẻ thông tin giữa các cơ sở y tế trở nên dễ dàng hơn. Ngoài ra, blockchain còn giúp quản lý chuỗi cung ứng dược phẩm, đảm bảo chất lượng và nguồn gốc của thuốc.

Lĩnh vực công

Lĩnh vực công cũng đang khám phá các ứng dụng của blockchain. Blockchain có thể được sử dụng để tổ chức các cuộc bầu cử một cách minh bạch và không gian lận, quản lý danh tính công dân, lưu trữ các hồ sơ công cộng và nhiều ứng dụng khác.

Các lĩnh vực khác như giải trí, chứng minh thư kỹ thuật số, quản lý bản quyền cũng đang tìm thấy những ứng dụng thú vị của blockchain. Ví dụ, NFT (token không thể thay thế) dựa trên công nghệ blockchain đang tạo ra một thị trường mới cho các tác phẩm nghệ thuật kỹ thuật số.

>>> Xem thêm: Blockchain Developer là gì? Công việc của họ là gì?

Blockchain VS. Bitcoin

Blockchain và Bitcoin là hai khái niệm thường được nhắc chung với nhau, nhưng về bản chất, chúng là hai khái niệm khác nhau, cùng TopDev theo dõi tiếp bài viết để thấy được sự khác biệt:

Blockchain Bitcoin
Định nghĩa Là một công nghệ lưu trữ và truyền thông tin một cách an toàn và bảo mật. Nó là một cấu trúc dữ liệu phân tán, lưu trữ thông tin dưới dạng các “khối” liên kết với nhau bằng mã hóa. Mỗi khối chứa thông tin giao dịch và mã hash của khối trước đó. Là đồng tiền điện tử đầu tiên và phổ biến nhất được phát triển dựa trên công nghệ blockchain. Nó cho phép các giao dịch trực tiếp giữa các bên mà không cần thông qua một bên trung gian nào.
Tính chất
  • Phân tán: Blockchain không phụ thuộc vào một trung tâm điều khiển duy nhất mà được phân tán trên nhiều nút (nodes) trong mạng.
  • An toàn và bảo mật: Do tính chất mã hóa và phân tán, blockchain giúp bảo vệ thông tin và giao dịch một cách an toàn, khó bị sửa đổi hoặc tấn công.
  • Tiền điện tử phi tập trung: Bitcoin không cần sự can thiệp của các tổ chức tài chính trung gian như ngân hàng để xử lý giao dịch.
  • Giới hạn cung cấp: Bitcoin có một số lượng cung cấp cố định và giới hạn (21 triệu đồng Bitcoin), giúp đảm bảo tính giới hạn và giá trị của nó.
Ứng dụng Blockchain có thể được áp dụng trong nhiều lĩnh vực khác nhau ngoài tiền điện tử, như quản lý chuỗi cung ứng, bầu cử điện tử, quản lý tài sản, bảo hiểm, y tế, và nhiều ứng dụng khác đòi hỏi tính chính xác và bảo mật cao. Bitcoin được sử dụng chủ yếu như một phương tiện thanh toán và đầu tư. Người dùng có thể sử dụng Bitcoin để mua hàng hoá, chuyển tiền, và đầu tư như một tài sản giá trị.

Các nền tảng blockchain hiện nay

Ethereum Network là gì?

Nhiều bạn sẽ thắc mắc tại sao không phải là Bitcoin, blockchain đầu tiên nhất của thế giới mà lại là Ethereum? Câu trả lời rất đơn giản vì Bitcoin sinh ra chỉ dành cho tiền điện tử (đồng Bitcoin), còn Ethereum sinh ra để không chỉ cho tiền điện tử (đồng Ether – Eth) mà còn dành cho các nhà phát triển có thể tham gia vào, dùng blockchain của Ethereum cho các nhu cầu khác: lập trình trên nó (smart contract), lưu trữ dữ liệu trên nó, phát hành token mới để ICO…

Chính vì đặc tính trên nên Ehereum network sẽ phức tạp hơn rất nhiều. Các transaction lúc này không chỉ là các lệnh chuyển tiền qua lại giữ những user mà còn là các operations của các smart contract nữa. Lúc này về mặt account sẽ có 2 loại là external owned account (chính là những người dùng) và contract account.

Smart Contract là gì?

Smart Contract nghe ghê gớm thế chứ nó cũng bình thường như một cái class trong hướng đối tượng OOP. Trong đó sẽ chứa các biến, các hàm và event để phục vụ cho nhu cầu của người viết ra chúng.

Tuy nhiên Smart Contract không phải muốn viết sao thì viết mà thường tuân thủ theo chuẩn ERC20 (ngoài ra còn có chuẩn ERC223). Theo chuẩn này thì 1 SC thường có các methods như: totalSupply, balanceOf, transfer, transferFrom… VD như ta ICO với 1 token tên Test thì hàm totalSupply có trách nhiệm trả về được tổng balance (token) của tất cả những người đã mua token Test.

Khi một Smart Contract được deploy lên network, chúng ra sẽ cần được khởi tạo (giống class như mình nói), khi được khởi tạo lên chúng sẽ có 1 address được gán vào (lại giống khởi tạo bộ nhớ) và tồn tại trên network như 1 account bình thường. Có điều khác là chúng sẽ không thể chủ động tự khởi tạo được các transaction mà chỉ nhận transaction và xử lý rồi lại truyền đi.

Smart contract đương nhiên cũng sẽ được public và không thể thay đổi được một khi đã deploy. Vì thế khi mà code bug thì chỉ có cách là vá chúng bằng cách thêm các smart contract vào chạy trung gian hoặc migrate smart contract. Trên thực tế các Smart Contract ít khi đứng một mình mà sẽ chạy dưới một chuỗi (chain) để xử lý cũng như phối hợp với nhau.

Ngôn ngữ viết Smart Contract

Smart Contract được viết bằng ngôn ngữ Solidity, đây là ngôn ngữ cho máy ảo Ehereum hiểu và thực thi. Ngôn ngữ này rất dễ viết, các bạn có thể nắm vững trong vài tuần hoặc tháng.

Thông thường ta sẽ dev smart contract ở local và dùng 1 network giả lập hoặc staging trên các testnet. Việc deploy smart contract lên main network sẽ tốn phí tùy vào số lượng transaction smart contract cần khi khởi tạo. Trong quá trình hoạt động (life time) nó cũng tốn phí để thực hiện các operations.

Decentralize App sẽ là sự thay thế cho các App hiện tại ? Đúng nhưng cũng không hẳn. Thật tế là tính tới nay 99% Dapp đang chạy không phải là production, vì bất kỳ thông tin lưu trữ hay thay dổi trên main network sẽ tốn phí. Chưa kể tốt độ confirm block rất chậm, không phù hợp với các nghiệp vụ cần tốc độ nhanh (Ethereum hiện tại là 15s).

Blockchain engineer không chỉ đơn giản là viết smart contract, nếu vậy thì là SC Developer đúng hơn. Họ có thể build được các hệ thống dựa trên nền tảng blockchain, một network riêng hoàn toàn như các hệ thống trong ngân hàng hoặc fintech.

Xem ngay việc làm Blockchain lương cao tại TopDev

Việt Trần

Tham khảo thêm các vị trí tuyển lập trình Blockchain tại Hồ Chí Minh cho bạn

Các mô hình phát triển phần mềm

1. Định nghĩa

Mô hình phát triển phần mềm hay quy trình phát triển phần mềm xác định các pha/ giai đoạn trong xây dựng phần mềm. Có nhiều loại mô hình phát triển phần mềm khác nhau ví dụ như:

  • Mô hình thác nước ( Waterfall model)
  • Mô hình xoắn ốc ( Spiral model)
  • Mô hình agile
  • Mô hình tiếp cận lặp ( Iterative model)
  • Mô hình tăng trưởng ( Incremental model)
  • Mô hình chữ V ( V model)
  • Mô hình Scrum
  • RAD model ( Rapid Application Development)
    Sau đây mình sẽ đi vào phân tích chi tiết từng mô hình.

1.1 Mô hình thác nước ( Waterfall model)

Waterfall model

Mô tả

  • Đây được coi như là mô hình phát triển phần mềm đầu tiên được sử dụng.
  • Mô hình này áp dụng tuần tự các giai đoạn của phát triển phần mềm.
  • Đầu ra của giai đoạn trước là đầu vào của giai đoạn sau. Giai đoạn sau chỉ được thực hiện khi giai đoạn trước đã kết thúc. Đặc biệt không được quay lại giai đoạn trước để xử lý các yêu cầu khi muốn thay đổi.

Phân tích mô hình

  • Requirement gathering: Thu thập và phân tích yêu cầu được ghi lại vào tài liệu đặc tả yêu cầu trong giai đoạn này.
  • System Analysis: Phân tích thiết kế hệ thống phần mềm, xác định kiến trúc hệ thống tổng thể của phần mềm.
  • Coding: Hệ thống được phát triển theo từng unit và được tích hợp trong giai đoạn tiếp theo. Mỗi Unit được phát triển và kiểm thử bởi dev được gọi là Unit Test.
  • Testing: Cài đặt và kiểm thử phần mềm. Công việc chính của giai đoạn này là kiểm tra và sửa tất cả những lỗi tìm được sao cho phần mềm hoạt động chính xác và đúng theo tài liệu đặc tả yêu cầu.
  • Implementation: Triển khai hệ thống trong môi trường khách hàng và đưa ra thị trường.
  • Operations and Maintenance: Bảo trì hệ thống khi có bất kỳ thay đổi nào từ phía khách hàng, người sử dụng.

Ứng dụng

Mô hình thường được áp dụng cho các dự án phần mềm như sau:

  • Các dự án nhỏ , ngắn hạn.
  • Các dự án có ít thay đổi về yêu cầu và không có những yêu cầu không rõ ràng.

Ưu điểm

  • Dễ sử dụng, dễ tiếp cận, dễ quản lý.
  • Sản phẩm phát triển theo các giai đoạn được xác định rõ ràng.
  • Xác nhận ở từng giai đoạn, đảm bảo phát hiện sớm các lỗi.

Nhược điểm

  • Ít linh hoạt, phạm vi điều chỉnh hạn chế.
  • Rất khó để đo lường sự phát triển trong từng giai đoạn.
  • Mô hình không thích hợp với những dự án dài, đang diễn ra, hay những dự án phức tạp, có nhiều thay đổi về yêu cầu trong vòng đời phát triển.
  • Khó quay lại khi giai đoạn nào đó đã kết thúc.

1.2 Mô hình xoắn ốc

Mô tả

  • Là mô hình kết hợp giữa các tính năng của mô hình prototyping và mô hình thác nước.
  • Mô hình xoắn ốc được ưa chuộng cho các dự án lớn, đắt tiền và phức tạp.
  • Mô hình này sử dụng những giai đoạn tương tự như mô hình thác nước, về thứ tự, plan, đánh giá rủi ro, …

Phân tích mô hình

Các pha trong quy trình phát triển xoắn ốc bao gồm:

  • Objective identification- Thiết lập mục tiêu: xác định mục tiêu, đối tượng cho từng pha của dự án.
  • Alternate evaluation- Đánh giá và giảm thiểu rủi ro: đánh giá rủi ro và thực hiện các hành động để giảm thiểu rủi ro.
  • Product development- Phát triển sản phẩm: Lựa chọn mô hình phù hợp để phát triển hệ thống.
  • Next phase planning- Lập kế hoạch: đánh giá dự án và lập kế hoạch cho pha tiếp theo.

Ứng dụng

Mô hình này thường được sử dụng cho các ứng dụng lớn và các hệ thống được xây dựng theo các giai đoạn nhỏ hoặc theo các phân đoạn.

Ưu điểm

  • Tốt cho các hệ phần mềm quy mô lớn.
  • Dễ kiểm soát các mạo hiểm ở từng mức tiến hóa.
  • Đánh giá thực tế hơn như là một quy trình làm việc, bởi vì những vấn đề quan trọng đã được phát hiện sớm hơn.

Nhược điểm

  • Manager cần có kỹ năng tốt để quản lý dự án, đánh giá rủi ro kịp thời.
  • Chi phí cao và mất nhiều thời gian để hoàn thành dự án.
  • Phức tạp và không thích hợp với các dự án nhỏ và ít rủi ro.
  • Yêu cầu thay đổi thường xuyên dẫn đến lặp vô hạn.
  • Chưa được dùng rộng rãi.

1.3 Mô hình Agile

Agile là một phương pháp phát triển phần mềm linh hoạt để làm sao đưa sản phẩm đến tay người dùng càng nhanh càng tốt và được xem như là sự cải tiến so với những mô hình cũ như mô hình “Thác nước (waterfall)” hay “CMMI”. Phương thức phát triển phần mềm Agile là một tập hợp các phương thức phát triển lặp và tăng dần trong đó các yêu cầu và giải pháp được phát triển thông qua sự liên kết cộng tác giữa các nhóm tự quản và liên chức năng.

Mô hình Agile

Mô tả

  • Dựa trên mô hình iterative and incremental.
  • Các yêu cầu và giải pháp phát triển dựa trên sự kết hợp của các function.
  • Trong Agile, các tác vụ được chia thành các khung thời gian nhỏ để cung cấp các tính năng cụ thể cho bản phát hành cuối.

Ứng dụng

  • Có thể được sử dụng với bất kỳ loại hình dự án nào, nhưng cần sự tham gia và tính tương tác của khách hàng.
  • Sử dụng khi khách hàng yêu cầu chức năng sẵn sàng trong khoảng thời gian ngắn.

Ưu điểm

  • Tăng cường tình thần làm việc nhóm và trao đổi công việc hiệu quả.
  • Các chức năng được xây dựng nhanh chóng và rõ ràng, dế quản lý.
  • Dễ dàng bổ sung, thay đổi yêu cầu.
  • Quy tắc tối thiểu, tài liệu dễ hiểu, dễ sử dụng.

Nhược điểm

Mô hình Agile được sử dụng rộng rãi trên thế giới nhưng cũng không đồng nghĩa với phù hợp với tất cả các dự án phần mềm.

  • Không thích hợp để xử lý các phụ thuộc phức tạp.
  • Có nhiều rủi ro về tính bền vững, khả năng bảo trì và khả năng mở rộng.
  • Cần một team có kinh nghiệm.
  • Phụ thuộc rất nhiều vào sự tương tác rõ ràng của khách hàng.
  • Chuyển giao công nghệ cho các thành viên mới trong nhóm có thể khá khó khăn do thiếu tài liệu.

1.4 Mô hình tiếp cận lặp

Mô tả

  • Một mô hình được lặp đi lặp lại từ khi start cho đến khi làm đầy đủ spec.Quá trình này sau đó được lặp lại, tạo ra một phiên bản mới của phần mềm vào cuối mỗi lần lặp của mô hình.
  • Thay vì phát triển phần mềm từ spec đặc tả rồi mới bắt đầu thực thi thì mô hình này có thể review dần dần để đi đến yêu cầu cuối cùng.

Ứng dụng

  • Yêu cầu chính phải được xác định; tuy nhiên, một số chức năng hoặc yêu cầu cải tiến có thể phát triển theo thời gian.
  • Một công nghệ mới đang được sử dụng và đang được học tập bởi nhóm phát triển trong khi làm việc trong dự án.
  • Phù hợp cho các dự án lớn và nhiệm vụ quan trọng.

Ưu điểm

  • Xây dựng và hoàn thiện các bước sản phẩm theo từng bước.
  • Thời gian làm tài liệu sẽ ít hơn so với thời gian thiết kế.
  • Một số chức năng làm việc có thể được phát triển nhanh chóng và sớm trong vòng đời.
  • Ít tốn kém hơn khi thay đổ phạm vi, yêu cầu.
  • Dễ quản lý rủi ro.
  • Trong suốt vòng đời, phần mềm được sản xuất sớm để tạo điều kiện cho khách hàng đánh giá và phản hồi.

Nhược điểm

  • Yếu cầu tài nguyên nhiều.
  • Các vấn đề về thiết kế hoặc kiến trúc hệ thống có thể phát sinh bất cứ lúc nào.
  • Yêu cầu quản lý phức tạp hơn.
  • Tiến độ của dự án phụ thuộc nhiều vào giai đoạn phân tích rủi ro.

1.5 Mô hình tăng trưởng

Mô tả

  • Spec được chia thành nhiều phần.
  • Chu kỳ được chia thành các module nhỏ, dễ quản lý.
  • Mỗi module sẽ đi qua các yêu cầu về thiết kế, thực hiện, … như 1 vòng đời phát triển thông thường.

Ứng dụng

  • Áp dụng cho những dự án có yêu cầu đã được mô tả, định nghĩa và hiểu một cách rõ ràng.
  • Khahcs hàng có nhu cầu về sản phẩm sớm.

Ưu điểm

  • Phát triển nhanh chóng.
  • Mô hình này linh hoạt hơn, ít tốn kém hơn khi thay đổi phạm vi và yêu cầu.
  • Dễ dàng hơn trong việc kiểm tra và sửa lỗi.

Nhược điểm

  • Cần lập plan và thiết kế tốt.
  • Tổng chi phí là cao hơn so với mô hình thác nước.

1.6 Mô hình chữ V( V model)

Mô tả

  • Mô hình chữ V là một phần mở rộng của mô hình thác nước và được dựa trên sự kết hợp của một giai đoạn thử nghiệm cho từng giai đoạn phát triển tương ứng. Đây là một mô hình có tính kỷ luật cao và giai đoạn tiếp theo chỉ bắt đầu sau khi hoàn thành giai đoạn trước.
  • Với V model thì công việc test được tham gia ngay từ đầu.

Ứng dụng

  • Yêu cầu được xác định rõ ràng.
  • Xác định sản phẩm ổn định.
  • Công nghệ không thay đổi và được hiểu rõ bởi nhóm dự án.
  • Không có yêu cầu không rõ ràng hoặc không xác định.
  • Dự án ngắn.

Ưu điểm

  • Đây là một mô hình có tính kỷ luật cao và các giai đoạn được hoàn thành cùng một lúc.
  • Hoạt động tốt cho các dự án nhỏ, khi các yêu cầu được hiểu rất rõ.
  • Đơn giản và dễ hiểu và dễ sử dụng, dễ quản lý.

Nhược điểm

  • Khó quản lý kiểm soát rủi ro, rủi ro cao.
  • Không phải là một mô hình tốt cho các dự án phức tạp và hướng đối tượng.
  • Mô hình kém cho các dự án dài và đang diễn ra.
  • Không thích hợp cho các dự án có nguy cơ thay đổi yêu cầu trung bình đến cao.

1.7 Mô hình Scrum

Mô tả

  • Chia các yêu cầu ra làm theo từng giai đoạn. Mỗi 1 giai đoạn(sprint) chỉ làm 1 số lượng yêu cầu nhất định.
  • Mỗi một sprint thường kéo dài từ 1 tuần đến 4 tuần ( ko dài hơn 1 tháng).
  • Đầu sprint sẽ lên kế hoạch làm những yêu cầu nào. Sau đó, sẽ thực hiện code và test. Cuối sprint là 1 sản phẩm hoàn thiện cả code lẫn test có thể demo và chạy được.
  • Hoàn thành sprint 1, tiếp tục làm sprint 2, sprint… cho đến khi hoàn thành hết các yêu cầu.
  • Trong mỗi 1 sprint thì sẽ có họp hàng ngày – daily meeting từ 15 – 20 phút. Mỗi thành viên sẽ báo cáo: Hôm qua tôi đã làm gì? Hôm nay tôi sẽ làm gì? Có gặp khó khăn gì không?
  • Scrum là mô hình hướng khách hàng (Customer oriented).

Các nhân tố tạo nên quy trình Scrum

Có 3 thành tố quan trọng cấu thành nên SCRUM:

  • Tổ chức (Organization)
    • Tổ chức nhóm dự án và Roles: Vài trò.
    • Product Owner: Người sở hữu sản phẩm.
    • ScrumMaster: Người điều phối.
    • Development Team: Nhóm phát triển.
  • Tài liệu (Atifacts): đó chính là các kết quả đầu ra.
    • Product Backlog: Danh sách các chức năng cần phát triển của sản phẩm.
    • Sprint Backlog: Danh sách các chức năng cần phát triển cho mỗi giai đoạn.
    • Estimation:Kết quả ước lượng của team.
  • Qui trình(Process): Qui định cách thức vận hành của SCRUM.
    • Sprint Planning meeting: Hoạch định cho mỗi giai đoạn.
    • Review: Tổng kết cho mỗi giai đoạn.
    • Daily Scrum Meeting: Review hàng ngày.

Tham khảo thêm các vị trí tuyển dụng lập trình Scrum lương cao tại Topdev

Tổ chức dự án

  •  Product Owner là người sở hữu sản phẩm, người quyết định sản phẩm có những chức năng nào và là người quyết định Product Backlog.
  • Thông thường Role này được khách hàng hoặc người đại diện cho khách hàng đảm nhận.
  •  Scrum Master là người đảm bảo các qui trình của Scrum được thực hiện đúng và thuận lợi.
  • Development Team
  •  Một nhóm từ 4-7 kỹ sư phần mềm chịu trách nhiệm phát triển sản phẩm.
  • Nhóm dự án phải làm việc với Product Owner để quyết định những gì sẽ làm trong Sprint (giai đoạn )này và kết quả sẽ ra sao.
  • Thảo luận để đưa ra các giải pháp, ước lượng thời gian thực hiện công việc, họp đánh giá kết quả công việc.
  • Product Backlog
  •  Product Backlog là danh sách các chức năng cần được phát triển của sản phẩm.
  • Danh sách này do Product Owner quyết định.
  • Thường xuyên được cập nhật để đáp ứng được nhu cầu thay đổi của khách hàng và dự án.

Ưu điểm

  • Một người có thể thực hiện nhiều việc ví dụ như dev có thể test.
  • Phát hiện lỗi sớm.
  • Có khả năng áp dụng được cho những dự án mà yêu cầu khách hàng không rõ ràng ngay từ đầu.

Nhược điểm

  • Trình độ của nhóm cần có một kỹ năng nhất định.
  • Phải có sự hiểu biết về mô hình aglie.
  • Khó khăn trong việc xác định ngân sách và thời gian.
  • Luôn nghe ý kiến phản hồi từ khách hàng và thay đổi theo nên thời gian sẽ kéo dài.
  • Vai trò của PO rất quan trọng, PO là người định hướng sản phẩm. Nếu PO làm không tốt sẽ ảnh hưởng đến kết quả chung.

1.8 Mô hình RAD

Mô tả

  • Mô hình RAD là một phương pháp phát triển phần mềm sử dụng quy hoạch tối thiểu có lợi cho việc tạo mẫu nhanh.
  • Các mô-đun chức năng được phát triển song song như nguyên mẫu và được tích hợp để tạo ra sản phẩm hoàn chỉnh để phân phối sản phẩm nhanh hơn.
  • Đảm bảo rằng các nguyên mẫu được phát triển có thể tái sử dụng được.

Ứng dụng

Mô hình RAD có thể được áp dụng thành công cho các dự án:

  • Module hóa rõ ràng. Nếu dự án không thể được chia thành các mô-đun, RAD có thể không thành công.
  • RAD nên được sử dụng khi có nhu cầu để tạo ra một hệ thống có yêu cầu khách hàng thay đổi trong khoảng thời gian nhỏ 2-3 tháng.
  • Nên được sử dụng khi đã có sẵn designer cho model và chi phí cao.

Ưu điểm

  • Giảm thời gian phát triển.
  • Tăng khả năng tái sử dụng của các thành phần.
  • Đưa ra đánh giá ban đầu nhanh chóng.
  • Khuyến khích khách hàng đưa ra phản hồi.

Nhược điểm

  • Trình độ của nhóm cần có một kỹ năng nhất định.
  • Chỉ những hệ thống có module mới sử dụng được mô hình này.

2. Tổng kết vòng đời phát triển phần mềm

Software Development Life Circicle

  • SDLC( Software Development Life Circicle) là một quá trình đi theo suốt trong một dự án phần mềm, trong một tổ chức phần mềm. Nó bao gồm một kế hoạch chi tiết mô tả cách phát triển, duy trì, thay thế và thay đổi hoặc nâng cao phần mềm cụ thể. Vòng đời xác định một phương pháp để cải thiện chất lượng phần mềm và quy trình phát triển tổng thể.
  • Mỗi mô hình sẽ có sự khác nhau, tuy nhiên, mỗi mô hình bao gồm tất cả hoặc một số giai đoạn / hoạt động / nhiệm vụ sau.

Planning – Lập kế hoạch

  • Phân tích yêu cầu được thực hiện bởi các senior member của nhóm với đầu vào từ khách hàng, bộ phận bán hàng, khảo sát thị trường và các chuyên gia trong ngành.
  • Lập kế hoạch cho các yêu cầu đảm bảo chất lượng và xác định các rủi ro liên quan đến dự án.

Defining – Xác định yêu cầu

  • Xác định rõ ràng và ghi lại các yêu cầu.
  • Thực hiện xác định yêu cầu thông qua một tài liệu SRS (Software Requirement Specification) bao gồm tất cả các yêu cầu sản phẩm được thiết kế và phát triển trong suốt vòng đời của dự án.

Designing – Phân tích thiết kế kiến trúc hệ thống

  • Trong giai đoạn này, thiết kế hệ thống và phần mềm được chuẩn bị từ các đặc tả yêu cầu đã được nghiên cứu trong giai đoạn đầu tiên.
  • Thiết kế hệ thống giúp xác định các yêu cầu phần cứng và kiến trúc hệ thống tổng thể.

Building – Phát triển

  • Khi nhận được tài liệu thiết kế hệ thống, công việc được chia thành các module nhỏ và coding được bắt đầu.
  • Đây là giai đoạn trọng tâm và dài nhất của vòng đời phát triển phần mềm.

Testing – Kiếm thử

  • Sau khi coding được phát triển, nó được kiểm tra dựa trên các yêu cầu để đảm bảo rằng sản phẩm thực sự hoạt động đúng trong giai đoạn phân tích yêu cầu.
  • Trong giai đoạn này tất cả các loại kiểm thử chức năng như kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử chấp nhận được thực hiện cũng như test phi chức năng cũng được thực hiện.

Deployment – Phát hành/triển khai

  • Sau khi thử nghiệm thành công, sản phẩm được phân phối / triển khai cho khách hàng để họ sử dụng.
  • Khách hàng sẽ thực hiện test beta. Nếu có bất kỳ vấn đề nào xảy ra, thì họ sẽ báo cáo cho nhóm kỹ thuật để được hỗ trợ.

Maintenance – Bảo trì

  • Trong quá trình bảo trì của SDLC, hệ thống được đánh giá để đảm bảo nó không trở nên lỗi thời.
  • Một khi khách hàng bắt đầu sử dụng hệ thống đã phát triển thì những vấn đề thực sự xuất hiện và cần được giải quyết theo thời gian.
    Như vậy trong bài chia sẻ này, mình đã giới thiệu ngắn gọn một số mô hình phát triển phần mềm phổ biến hiện nay. Hy vọng rằng kiến thức mình tổng hợp sẽ giúp ích cho các bạn trong quá trình học tập cũng như làm việc.

TopDev via Viblo

Mẫu bảng mô tả công việc Project Manager

Mô tả công việc Project Manager mức lương hấp dẫn

Mô tả công việc Project Manager – là người chịu trách nhiệm quản lý dự án, hoàn thành các mục tiêu đề ra từ khi bắt đầu đến khi thực hiện và kết thúc dự án. Project Manager là người đứng giữa khách hàng và development team, đại diện của khách hàng khi phải xác định và thực hiện các nhu cầu chính xác của khách hàng, dựa trên kiến thức về tổ chức mà họ đang đại diện, xử lý hiệu quả tất cả các khía cạnh của dự án.

Project Manager cần có khả năng thích ứng với các quy trình nội bộ khác nhau của khách hàng và hình thành sự liên kết của đôi bên, là điều cần thiết để nhận được sự hài lòng của khách hàng…. Hy vọng, Mẫu bảng mô tả công việc Project Manager này sẽ giúp các bộ phận nhân sự dễ dàng hơn cho việc tuyển dụng những vị trí này.

Nhiều tin tuyển dụng Project Manager lương cao trên TopDev, ứng tuyển ngay!

Mẫu bảng mô tả công việc Project Manager

YÊU CẦU CÔNG VIỆC

  • Có kiến thức & kinh nghiệm về quản lý dự án (DMS/ ERP,…)
  • Có kiến thức về Cơ sở dữ liệu (SQL Server …).
  • Có khả năng chịu áp lực công việc, quản lý nhiều dự án cùng lúc.
  • Có khả năng lập và trình bày kế hoạch, thực hiện nghiên cứu, làm việc độc lập
  • Chịu được áp lực cao, năng động, có trách nhiệm và giao tiếp tốt
  • Kỹ năng tư duy logic và thuật toán tốt, phân tích và giải quyết vấn đề
  • Có khả năng đọc hiểu tiếng Anh chuyên ngành
  • Một số yêu cầu liên quan đến dự án cụ thể của công ty

MÔ TẢ CÔNG VIỆC

  • Quản lý tổng hợp các dự án mình phụ trách từ kế hoạch, kiểm soát, quy trình, công việc, phạm vi, thời gian/tiến độ, chi phí, chất lượng, nhân lực, thông tin/giao tiếp, rủi ro, hồ sơ, các bên liên quan
  • Hỗ trợ các thành viên trong dự án về mặt quy trình, nghiệp vụ, kỹ thuật …
  • Phối hợp với các phòng ban để xem xét bổ sung, cải tiến sản phẩm hiện tại của công ty.
  • Chủ động đề xuất các phương án xử lý chức năng trong dự án.
  • Đảm bảo việc thực hiện dự án theo đúng kế hoạch của khách hàng
  • Một số công việc liên quan đến dự án cụ thể của công ty

Có thể bạn muốn xem thêm:

Xem ngay những tin đăng tuyển dụng IT mới nhất trên TopDev

Nguồn tự học web front-end và web configuration ngon bổ rẻ

Nguồn tự học web front-end và web configuration ngon bổ rẻ

Lập trình web là công việc đòi hỏi nhiều kĩ năng và kiến thức chuyên môn khó. Có rất nhiều phương pháp để tự học, nhưng đa phần trong số đó đều đã lỗi thời và không còn có ích cho các lập trình viên bởi sự phát triển chóng mặt của ngành công nghệ này.

Nếu bạn đang tìm kiếm những nguồn tài liệu miễn phí trên Internet thì xin chúc mừng, bạn đã đến đúng địa chỉ. Bài viết này sẽ cung cấp cho thần dân nhà dev những nguồn tự học giúp anh em thoát khỏi thời gian dài vừa fix bug vừa tìm hiểu nguyên nhân tại sao framework của bạn ngừng hoạt động.

Front-end căn bản

Interneting is Hard

Đây là trang web với đầy đủ tài liệu hướng dẫn cách sử dụng HTML và CSS để xây dựng những website hiện đại. Nó sẽ bắt đầu từ góc nhìn của những học viên chưa biết gì về HTML hay CSS. Nếu bạn đang tìm kiếm một nơi cung cấp cho bạn về kiến thức nền tảng như thế thì hãy tham khảo ngay link phía trên.

Mozilla Developer Network

Đây có lẽ là nguồn tham khảo tốt nhất cung cấp các kiến thức tổng quát về lập trình web và thay thế được cho W3 Schools trong thư viện điện tử của tôi.

CSS Diner

Luyện tập CSS selector cũng giống như chọn lựa trái cây và rau củ vậy! CSS selector rất quan trọng để xây dựng nên một nền tảng CSS sạch và bền vững.

Front-end tuyển dụng lương cao trên TopDev

Sự tương thích của các đặc tính của browser

CanIUse

Thực tế là không phải browser nào cũng được tạo ra theo cách giống nhau. CanIUse sẽ chỉ rõ sự khác nhau trong từng feature. Hãy tham khảo các query mẫu dưới đây:

CSS Grid

Grid By Example

Một trang web thực sự hữu dụng đối với bất cứ ai vừa mới bắt đầu học thiết kế web.

Templating engines

Mặc dù không hoạt động như các framework Angular hay React, các engines này giúp chúng ta tránh khỏi những khó khăn khi viết một HTML đơn thuần, chẳng hạn như tổng hợp danh sách. Bạn có thể vừa học vừa ứng dụng các object nhỏ này.

Ý tưởng đằng sau những loại công cụ này đang trợ giúp các block của HTML bằng việc tạo ra các template từ các nhóm logic (giống như thẻ của dữ liệu) và cho phép các dữ liệu được chèn vào một vùng cụ thể của template ngay tại thời điểm hoạt động. Bằng cách này, một nhóm đơn lẻ của HTML có thể được tái sử dụng trong khi những thứ nổi bật thực tế chỉ cần tồn tại đúng 1 lần duy nhất (chúng ta cũng có thể sử dụng cách này để tránh các framework vượt mức).

Ngoài ra Express cũng đã hỗ trợ một số template engine (không liệt kê trong bài này).

Browser usage stat

gs.statcounter

Đây là một trang web giải thích trực tiếp vào vấn đề, không có những dữ liệu gây khó hiểu về cách sử dụng browser, những kiến thức chung về độ phân giải màn hình và cách sử dụng các thiết bị. Nếu bạn đang muốn xây dựng một web app nhắm đến một đối tượng khách hàng cụ thể thì trang web này có thể giúp bạn quyết định mình nên bắt đầu từ đâu.

Thiết kế

Bỏ qua những khuynh hướng nghệ thuật phức tạp, những nguồn tham khảo dưới đây chủ yếu hỗ trợ việc học thiết kế web từ cơ bản. Điều đầu tiên bạn cần đó là một theme đã được xây dựng từ trước rồi sau đó mới chỉnh sửa thêm những phần cần thiết. Hiểu được các quy trình và công cụ sẽ giúp bạn dễ dàng tương tác với chúng hơn.

  Responsive Web Design là gì? Từ khái niệm đến thực tế

Provisioning

Biết cách xây dựng giao diện front-end là rất quan trọng nhưng nhiều dev còn chưa hoàn toàn làm chủ nó. Một số các smorgasboard của các công cụ có sẵn để xây dựng nó, nhiều điều trong số đó đưa ra nhiều hoặc ít hơn các lựa chọn

Sau đây là một số option cho các bạn chọn:

Microsoft Azure

Đây là một nền tảng rất tiện ích của .NET. Số lượng các lựa chọn trên Azure khá đa dạng. Bạn có thể chọn lộ trình này hoặc Amazon Web Services, nhưng xét ở một phương diện nào đó, Microsoft Azure có đủ độ phức tạp giúp bạn nâng cao trình độ hơn.

Heroku

Khi sử dụng Heroku, bạn sẽ không còn cần phải điều khiển machine và chạy các lệnh commands để cấu hình website. Giao diện UI của Heroku quá đủ để tạo một trang host cơ bản và thậm chí còn có nhiều công cụ tuyệt vời để cấu hình Continuous Integration.

Digital Ocean

Trái ngược với Heroku, Digital Ocean đòi hỏi nhiều kĩ thuật hơn, mặc dù vậy đây không hẳn là điểm trừ. Thực tế, có nhiều newbie đã sử dụng Digital Ocean để tạo web server trước khi họ có kiến thức về việc này.

Bên cạnh những VPS’s bị bỏ trống (Virtual Private Servers – hay còn gọi là Droplets), nó còn có các One-click apps (ứng dụng một chạm) bao gồm rất nhiều các phần mềm được cài đặt và cấu hình sẵn. Những công cụ bổ trợ như thế này rất hữu ích cho những người mới. Công cụ này còn giảm tải chi phí cài đặt và hoạt động server, cho phép chúng ta tập trung vào những điểm cụ thể trong cấu hình máy chủ (ví dụ như thiết lập các trang trên Nginx). Sau khi sử dụng NodeJS và Ghost One-Click apps (ứng dụng một chạm của Ghost) bạn nên chuyển qua thử một ứng dụng mới trên GitLab.

Digital Ocean còn có nhiều tài liệu hướng dẫn về cấu hình máy chủ. Bạn có thể tham khảo dưới đây:

DNSMap

Chắc chắn nếu đã là web dev thì bạn hẳn sẽ gặp vấn đề đau đầu mỗi khi không thể thay đổi DNS ngay lập tức. Khi bạn bổ sung một tên miền cho các tên máy chủ khác nhau trong khi điều chỉnh cấu hình trang web (trong Nginx), điều này sẽ gây nhầm lẫn bởi vì các trình duyệt sẽ hiển thị trang web bị cấu hình sai (đặc biệt là nếu các liên kết SSL có liên quan) dù trong thực tế việc truyền DNS những thay đổi vẫn chưa hoàn tất. Có một loạt các biến thể trên công cụ trên, nhưng nó giúp nhận biết khi nào các thay đổi này đã ‘hoàn thành’. Các công cụ này có thể chưa thực sự hoàn hảo, nhưng DNSMap hiện vẫn đang là cách tốt nhất.

Performance

Google’s PageSpeed Insights

Bạn có thể đã nghe nói về PageSpeed Insights vì PageSpeed hiện đã được đưa vào bảng xếp hạng tìm kiếm của Google cho thiết bị di động. Nó cũng tách biệt điểm số trên thiết bị di động và máy tính để bàn, điều sẽ giúp bạn điều chỉnh trang web của mình cho một đối tượng cụ thể. Ngoài ra bạn cũng có thể tham khảo Lighthouse nếu muốn tìm hiểu chuyên sâu hơn.

Nginx

Nginx giúp bạn tìm hiểu về định cấu hình máy chủ web trong thời gian cấp tốc. Các tài liệu dưới đây sẽ hướng dẫn bạn thực hiện theo từng bước cụ thể:

Khi bạn bắt đầu nhận chạy một số trang web, bạn hẳn đã thử tìm kiếm một số dịch vụ để theo dõi chúng. Bạn hiển nhiên sẽ không muốn tự tạo tool hoặc phân tích tệp nhật ký của riêng mình và kết thúc trên Nginx Amplify. Bạn có thể kết nối một vài trường hợp của Nginx với Amplify miễn phí và các công cụ giám sát này sẽ rất tuyệt vời. Bao gồm trong ‘tầng’ miễn phí là khả năng gửi tin nhắn và email điện tử khi số liệu vượt quá ngưỡng bạn định cấu hình. Nhờ công cụ này, bạn được thông báo chỉ vài phút sau khi bot thực hiện hàng ngàn yêu cầu mỗi giây đến một trong các trang web. Tường lửa được cập nhật và sẽ dừng vấn đề lại. Điều này không chỉ hiển thị các số liệu giám sát mà còn sử dụng số liệu phân tích trên các tệp nginx.conf của bạn để tìm sự cố chung và hiển thị thông tin về cấu hình SSL và tư vấn bảo mật cho phiên bản đang chạy của Nginx.

NginxConfig.io – Công cụ giúp khởi động việc ghi tập tin cấu hình Nginx và khối máy chủ

Công cụ cấu hình máy chủ web

Laboratory (Content Security Policy / CSP Toolkit)

Addon Firefox này sẽ xây dựng cho bạn Content Security Policy (chính sách bảo mật về nội dung) trong lúc ghi lại cách bạn sử dụng trang web. Điều này, tất nhiên, giả sử trang web của bạn ổn định và dự kiến phục vụ dữ liệu. Cũng cần lưu ý đây mới chỉ là một addon thử nghiệm.

Test your server’s SSL implementation

Trang web này tập trung vào việc phân loại chi tiết việc triển khai SSL và cách để triển khai SSL an toàn.

Tối ưu hóa hình ảnh

  Tối ưu hóa hình ảnh trên trang web với định dạng webp

Trong tất cả các khái niệm frontend, tối ưu hóa hình ảnh là điều thách thức nhất. Trong thực tế, sử dụng các tính năng mới hơn như sizes and srcsets yêu cầu biết cách định cấu hình cho tất cả các tham số hoạt động.

Tuy nhiên, khi bắt đầu hiểu cách sizes và srcset hoạt động song song với các media query bạn chắc chắn sẽ càng yêu thích Cloudinary hơn. Nó hỗ trợ rất nhiều cho công việc của các web developer.

TinyPng được liệt kê vào danh sách vì nó giúp chúng ta hiểu sự khác nhau giữa cách kích thước hình ảnh tự phản hồi với tối ưu hóa hình ảnh nén. TinyPng (hỗ trợ nhiều hơn PNG) tập trung vào tối ưu hóa hình ảnh hiện có thay vì chỉ thay đổi kích thước hình ảnh. Mặc dù Cloudinary cũng cung cấp dịch vụ này, nhưng nó không phù hợp cho các trang web nhỏ. TinyPng sẽ tối ưu hóa hình ảnh của bạn miễn phí đến một quota nhất định. .NET api của nó rất dễ sử dụng có thể upload nguyên một thư mục hình ảnh để xử lý.

Chúc anh em web dev thành công!

TopDev via Dev.to

Xem thêm các vị trí tuyển dụng nhân viên it lương cao

Mẫu bảng mô tả công việc vị trí Product Manager

Mô tả công việc Product Manager mức lương hấp dẫn

Product Manager được xem như “CEO” của product, là người chịu trách nhiệm về sự thành công của sản phẩm, đảm nhiệm xây dựng tính năng của sản phẩm thông qua kết hợp làm việc với Developer và UX/UI Designer. Hy vọng, Mẫu bảng mô tả công việc Product Manager này sẽ giúp các bộ phận nhân sự dễ dàng hơn cho việc tuyển dụng những vị trí này.

Mẫu bảng công việc Product Manager

YÊU CẦU CÔNG VIỆC

  • Có kinh nghiệm quản lý sản phẩm
  • Có khả năng lập và trình bày kế hoạch, thực hiện nghiên cứu, làm việc độc lập
  • Chịu được áp lực cao, năng động, có trách nhiệm và giao tiếp tốt
  • Kỹ năng tư duy logic và thuật toán tốt, phân tích và giải quyết vấn đề
  • Có khả năng đọc hiểu tiếng Anh chuyên ngành
  • Một số yêu cầu liên quan đến sản phẩm cụ thể của công ty

Tìm việc làm product manager lương cao trên TopDev

MÔ TẢ CÔNG VIỆC

  • Xác định chiến lược sản phẩm rõ ràng
  • Xây dựng lộ trình phát triển, lập kế hoạch lộ trình phát triển sản phẩm, dự báo các khả năng xảy ra trong quá trình vận hành
  • Chịu trách nhiệm phát triển UI/UX, đảm bảo chất lượng và quản lý đội ngũ phát triển UI/UX của sản phẩm
  • Nghiên cứu thị trường và xác định nhu cầu/mong muốn của khách hàng đối với sản phẩm
  • Đánh giá trị trường và các sản phẩm cạnh tranh
  • Định vị giá trị của sản phẩm, phối hợp với các phòng ban liên quan cho việc định hướng phát triển sản phẩm
  • Một số công việc liên quan đến sản phẩm cụ thể của công ty

Tham khảo thêm những tin tuyển dụng lập trình viên mới nhất trên TopDev