Home Blog Page 173

Cách trở thành 1 Kỹ sư Phần mềm thực tập chỉ với 4 tháng tự học

cách trở thành 1 kỹ sư phần mềm thực tập

Mình không thể ngờ rằng mình đã trở thành kỹ sư phần mềm thực tập tại 1 công ty có tiếng chỉ với 4 tháng tự học, dù từng là 1 tay mơ và tự học lập trình chỉ vào khoản tháng Giêng đầu năm.

Trong xã hội ngày nay, dù ở bất cứ lĩnh vực nào, để tìm 1 internship (thực tập) khá là khó khăn, nói chi là trở thành 1 kỹ sư phần mềm thực tập, nhất là đối với 1 tay lơ-tơ-mơ như mình. Trải qua cả 1 quá trình dài với khá nhiều công đoạn: gửi CV IT nè, nghiên cứu để trả lời các câu hỏi chuyên ngành, dĩ nhiên nó làm mình ám ảnh trong suốt 1 thời gian, và phần tệ hơn: các bạn sẽ trải qua nó hết lần này đến lần khác. Và để nhận được lời đề nghị cho bản thân như bây giờ, các bạn chắc cũng không ngờ là mình đã phải rải đơn tới hàng trăm công ty, nước chảy đá mòn, giờ thì mình đã quá quen thuộc với những khó khăn này rồi. 

Đừng quá lo lắng, mình đã làm được, vậy thì các bạn, các lập trình viên, cũng sẽ làm được, chỉ cần cứng rắn 1 tí và học đúng phương pháp thôi. 

Giới thiệu khá dài dòng rồi, giờ mình sẽ đi vào phần chính, và dưới đây là bản ghi chép các bước hướng dẫn và những bước quan trọng qua kinh nghiệm để trở thành 1 kỹ sư phần mềm thực tập mà mình đã trải qua và đã thực hiện. 

Cách trở thành 1 kỹ sư phần mềm chỉ với 4 tháng tự học

BƯỚC 1: ĐỂ TRỞ THÀNH KỸ SƯ PHẦN MỀM THỰC TẬP – HÃY HỌC CĂN BẢN !!!

Rõ ràng dù có là thiên tài và làm được nhiều thứ, thì cơ bản vẫn luôn quan trọng và nền móng cho các kiến thức chuyên sâu sau này.

Mình thường sử dụng 2 nguồn: freeCodeCamp và CodeCademy, theo mình thì đây là 2 nơi tốt nhất cho người mới bắt đầu, và chắc là ai cũng đều thấy vậy. 

Cả 2 đều đưa ra các lý giải 1 cách đơn giản nhất và giúp mình có kiến thức cơ bản để có thể theo đuổi lĩnh vực này. Mình bắt đầu với freeCodeCamp, để học syntax về ngôn ngữ lập trình và nó đã giúp mình chọn lựa ngôn ngữ phù hợp cho bản thân. 

Chú ý nào: Bạn nên xác định vai trò của mình là gì để dành thời gian nghiên cứu để nộp đơn ứng tuyển. Nó khá là quan trọng, giúp bản thân tiết kiệm được nhiều thời gian và công sức, không bị lan man trước cả rừng kiến thức. Ví dụ: nếu bạn đang hướng đến 1 vé thực tập để trở thành lập trình viên front-end, thì freeCodeCamp luôn có sẵn các khóa học về phát triển web. Đặc biệt là nó khá hữu ích và cụ thể, vì đa phần nó chỉ xoay quanh phần front-end !

Tìm việc làm Front-end lương cao trên TopDev

NHỮNG GÌ MÌNH ĐÃ LÀM: 

Mình luôn cảm thấy bị cuốn hút khi làm việc trên mảng front-end và theo mình nghĩ để trở thành 1 nhà phát triển front-end thì nên thu nạp các kiến thức chuyên sâu khá là quan trọng về Javascript, HTML và CSS. 

Khi bắt đầu, mình dành hẳn 1 tuần đầu tiên bằng việc tự học và danh tất cả thời gian cho khóa “Giới thiệu về Javascript”. Dù chỉ mới là 1 tay mơ lúc đó, mình hoàn toàn thấy nó khá thân thiện và dễ hiểu, và hoàn toàn có thể phù hợp với những ai mới tập tành. Mình khá là nghiêm túc, nên để việc học trở nên hiệu quả hơn, mình thường ghi chú lại những gì đã học được và cả những thứ còn thắc mắc, sau đó dành thời gian ôn lại chúng. Việc này làm đầu óc mình khá thoải mái và giúp mình không quên những gì đã học được. 

HTML và CSS có liên hệ mật thiết và học khá dễ. Sau đó mình tiếp tục khóa “Hoàn thành thiết kế website” trên freeCodeCamp, mà mình nghĩ rằng đây chính là 1 trong những tài nguyên miễn phí tuyệt cú mèo nhất mà mình đã có. Trải qua suốt khóa học, bên cạnh các căn bản cho việc phát triển web, mình còn thu nạp nhiều kiến thức hơn nữa. 

Và khi cảm thấy phần căn bản của mình đã vững, mình tiếp tục nghiên cứu “Sổ tay Front-end của anh Lập trình viên”. Nó cung cấp cho mình 1 danh sách khá đầy đủ về mọi nguồn tài nguyên cho người học nâng cao, trả phí lẫn miễn phí. Chắc phải mất hàng ngàn giờ để đọc và nó dạy mình mọi thủ thuật mà 1 nhà bậc thầy phát triển web nên biết. 

BƯỚC 2: LẬP NÊN CÁC DỰ ÁN

Sau 1 vài tuần, mình đã sẵn sàng để tạo ra 1 dự án nhỏ. Theo mình, các dự án này khá quan trọng và sẽ giúp ích cho hồ sơ của mình, nhất là khi mình không có quá nhiều kinh nghiệm.

Và mình lại tiếp tục và freeCodeCamp vì nó cho mình nhiều ý tưởng tốt cho dự án, và mình cũng muốn bắt đầu từng bước nhỏ trước. 

Cũng có lúc bí ý tưởng, mình đã thử hỏi a Google: “100 ý tưởng dự án trong ngôn ngữ X” và thủ thuật này khá ổn với mình. Mình còn xem các phản hồi trên Github và học hỏi các code của họ nữa. 

Khi đã hoàn tất, mình sẽ kiểm tra nó và đưa mã nguồn lên Github. Mình nghĩ việc này khá quan trọng và còn là cách duy nhất để các công ty có thể xác nhận các kĩ năng của 1 tay chưa có kinh nghiệm như mình. Để chắc chắn, mình đã đưa các code có chất lượng tốt kèm tài liệu tham khảo.

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

  Con đường để trở thành một fullstack developer (Phần 1: Những nỗi sợ)
  Con đường để trở thành một fullstack developer (Phần 2: Xem xét lại các Kế hoạch)

NHỮNG GÌ MÌNH ĐÃ LÀM: 

Khi nhận được lời đề nghị, mình đã làm được 4 – 5 dự án rồi. Bắt đầu từ ứng dụng web trò chơi typing mini cùng với 1 sinh viên khác, Github và mình đã học được rất nhiều từ các đoạn code của họ, và sau đó mình tự thêm vào.

Dần dần, mình tiếp tục với các dự án phức tạp hơn. Có lẽ nên bật mí 1 chút về danh sách các dự án mình đã làm trước khi được nhận làm thực tập sinh, mình còn kèm theo mô tả và các stack đã dùng:

  1. Các game mini đa dạng như Minesweeper, mình làm tất cả với React và tạo kiểu với CSS. 
  2. Bản đồ trực quan hóa với hơn nửa triệu điểm dữ liệu giao thông được mình tạo ra bằng Javascript và mapbox. 
  3. Ứng dụng làm việc React Native để người dùng đăng những tấm ảnh đẹp nhất của họ, với back-end thực hiện bằng Node.js và Mongoose, lưu trữ trên Heroku. (Heroku là gì? Heroku là nền tảng đám mây cho phép các lập trình viên xây dựng, triển khai, quản lý và mở rộng ứng dụng)

kỹ sư phần mềm thực tâp

BƯỚC 3: XIN VIỆC

Như đã kể ở trên, về khoản xin việc thì kinh nghiệm mình có thừa. 1 vài mẹo của mình về tìm việc và về phỏng vấn được đút kết lại như vầy: 

  1. Linkedln, Glassdoor và Indeed Easy Apply rõ ràng không phải là bạn của mình, theo mình những loại bài này các nhà tuyển dụng đã có quá nhiều. Thường họ sẽ dùng 1 ATS (Application Tracking System) để lọc hết các sơ yếu lí lịch. Và rõ ràng là mình dễ dàng bị loại ngay vòng gửi xe vì thiếu kinh nghiệm hay vì các dự án không đủ ấn tượng (mình chỉ ví dụ thôi nhé) 
  2. Đơn xin việc là 1 con dao 2 lưỡi. Vì chỉ khi làm đúng, thì mình mới có cơ may khác biệt so với ứng cử viên còn lại, tuy nhiên khi làm sai, nó có thể làm cho tình huống của mình tồi tệ hơn. Nên là mình liên tục điều chỉnh, điều chỉnh, điều chỉnh cho từng đơn cụ thể phù hợp với công ty mà mình nộp vào. Mình nghĩ tốt nhất là không nên dùng chung 1 đơn và rải đến mọi nơi vì rõ ràng các nhà tuyển dụng chắc chắn sẽ biết mình đã gởi hơn 100 cái rồi. Lưu ý nhỏ là các đơn mà mình vô tình đánh sai chính tả, dù nhỏ, cũng đủ làm nó bị loại. 
  3. Mình đã thành công nhất khi đăng ký trực tiếp trên trang web của công ty hoặc thông qua các nhà tuyển dụng gửi cold email. Mình còn thử gửi cho các CEO nữa, đương nhiên là đối với các công ty quy mô nhỏ). Nếu công ty mà mình đang nhắm đến không công khai email, mình thường có thể đoán vì hầu như lúc nào nó cũng có form: hello @ têncôngty chấm com. Và rõ là nó giúp mình có NHIỀU cơ hội để họ xem hồ sơ của mình hơn là thông qua Indeed/Glassdoor. Mình dùng 1 template chung và thay đổi linh động cho từng công ty kahsc nhau. 
  4. Mặt mình bây giờ chắc còn dày hơn cả da trâu.. Các công ty thường từ chối với mọi lý do ngẫu nhiên và các nhà tuyển dụng còn cắt đứt mọi liên lạc với mình nữa. Có lẽ với hồ sơ ít hấp dẫn, mình sẽ khó có cơ hội để nhận phỏng vấn. Nhưng không sao cả mình vẫn tiếp tục nộp và không bỏ cuộc và mình đã được đền đáp xứng đáng. 

Tham khảo thêm cho bạn:

BƯỚC 4: PHỎNG VẤN 

kỹ sư phần mềm thực tâp

Cuối cùng thì mình cũng nhận được cuộc gọi phỏng vấn, và chắc chắn mình đã chuẩn bị kĩ lưỡng cho nó. Để an tâm, mình đã tìm hiểu khá nhiều nguồn trên mạng chỉ để đối đầu cho buổi phỏng vấn kỹ thuật, và ‘Phỏng vấn Cracking the Coding’ là 1 trong những cái mà mình rất kết.

Buổi phỏng vấn kỹ thuật khá căng thẳng, mình phải nghiền nát các câu hỏi thuật toán, nếu không mình sẽ khó mà giải quyết được chúng. Nhưng không sao vì nhờ Leetcode mình đã tham khảo được 1 đống câu hỏi và đã luyện tập với nó. 

Tuy nhiên, những câu hỏi phổ biến vốn đầy rẫy trên mạng mình ít khi gặp phải, các nhà phỏng vấn thường dự trữ cả tá câu hỏi ngẫu nhiên mà không hề đăng chúng trên mạng. Đừng lo vì các ý cơ bản vẫn giữ tương tự và cách mình vượt qua là biết rõ các cấu trúc dữ liệu của bản thân và Big O 1 cách kỹ lưỡng. 

Có vài thứ mình lưu ý nữa là với các công ty đã phỏng vấn thường hỏi các câu hỏi kỹ thuật cho các dự án của mình và cách thực hiện chúng. Có lẽ như họ muốn kiểm tra rằng mình không hề xạo hay mượn chúng từ đâu đó. 

Tham khảo tuyển dụng software engineer lương cao trên TopDev

NHỮNG GÌ MÌNH LÀM: 

Đối với bất kỳ ai cũng sẽ có những buổi phỏng vấn tệ hại trong các lần đầu tiên, mình cũng là 1 trong số đó, thậm chí mình còn rối tung và nhắc lại khá là xấu hổ. 

Mình nhận ra mình đã không chuẩn bị kĩ cho các câu hỏi kỹ thuật, nên để trao dồi mình bắt đầu làm Leetcode 2 – 3 tiếng mỗi ngày. Thứ quan trọng nhất là không nên dành quá nhiều thời gian cho 1 vấn đề lẻ tẻ, và chắc chắn mình cũng sẽ không có thời gian vô hạn cho buổi phỏng vấn. Cách mình vượt qua chính là đặt hẹn giờ trong lúc luyện tập và dành khoản 10 phút cho các câu dễ và 20 phút cho các câu trung bình (hiếm khi đi phỏng vấn mà mình gặp các câu hỏi Leetcode khó trong các buổi ứng tuyển vị trí nhập môn hay thực tập) 

Mình còn thấy rằng cũng sẽ ổn thôi nếu lỡ mình không kịp giải nó kịp thời hạn. Cách mình làm là nhìn vào giải pháp và cố hiểu được nó, mình còn đánh dấu lại các câu mình không có đáp án và thử lại chúng trong vòng 1 tuần. 

Khả năng giao tiếp cũng là thứ mà họ, các nhà phỏng vấn, sẽ kiểm tra. Vì thế mình đã chuẩn bị băng cách nói to và rõ ràng trong lúc luyện tập ở nhà. Theo kinh nghiệm của mình, nó thực sự có ích và tạo ra sự khác biệt khá lớn. 

Các nguồn tài nguyên để mình tìm công việc nhập môn và thực tập bên cạnh các nơi đã phổ biến như Glassdoor, Indeer và Linkedin chính là Breakout List và AngelList. 

Theo mình, thật không đơn giản để tìm ra danh sách đầy đủ các công ty đang tuyển thực tập, nhưng mình đã làm được nhờ vào cộng đồng của freeCodeCamp. Mình được giúp đỡ khá nhiều trong công việc cũng như kinh nghiệm nhờ vào nó và bản thân mình cũng muốn được đóng góp lại. 

kỹ sư phần mềm thực tâp

Đây là 1 ứng dụng mình đang phát triển như 1 dự án phụ sau kỳ thực tập và nhiệm vụ của nó là biên soạn 1 danh sách công ty và các vị trí thực tập/ nhập môn được lọc bởi địa điểm, tags, điều khoản, vân.. vân.. và mình sẽ giải thích thêm về nó sau. 

KẾT LUẬN

Tìm 1 công việc nhập môn hay thực tập là 1 quá trình khá dài, khó chịu và đầy tẻ nhạt. Nhưng mình đã học được rất nhiều kinh nghiệm và từ đó mà mình đã tìm được nơi làm việc thích hợp. Cuối cùng mình nghĩ rằng cũng nhờ nó mà mình đã được đền đáp thích đáng và trở thành 1 kỹ sư phần mềm thực tập

kỹ sư phần mềm thực tâp

‘Dự án của mình được dùng để giúp các sinh viên, tân binh và những người tự học tìm thực tập và công việc’ 

kỹ sư phần mềm thực tâp

‘Dự án đầu tiên mình tự làm. Minesweeper + hẹn giờ’ 

Khá là khác biệt, phải không nào?

Đây là lý do tại sao mình cảm thấy kỳ thực tập hoàn toàn xứng đáng. Vì nếu không có nó, mình đã khó có thể hoàn thành dự án gần đây. Dự án của mình là nền tảng và bảng công việc để các sinh viên, các nhà phát triển tự học và học sinh mới khám phá các vị trí thực tập/ nhập môn. 

Mình đã cố cải thiện và chào đón bất kỳ phản hồi nào và còn muốn viết tiếp chủ đề như từng bước hướng dẫn về cách mình đã thiết kế và cấu tạo ứng dụng này. Nếu bạn cảm thấy hứng thú đừng ngần ngại cho mình biết nhé. Đối với những bạn mới bắt đầu cũng như hiểu rõ các khó khăn, mình rất vui lòng giúp đỡ. Nếu có câu hỏi nào, đừng do dự và hãy gửi cho mình 1 tin nhắn. 

Chúc các bạn may mắn !

TopDev tổng hợp

  Tôi đã phỏng vấn ở Silicon valley như thế nào (Phần 1)
  Phỏng vấn ở Silicon Valley (Phần 2): Happy Ending

Xem thêm việc làm IT hấp dẫn tại TopDev

Con đường để trở thành một fullstack developer (Phần 2: Xem xét lại các Kế hoạch)

Một trở ngại lớn tôi thường tạo cho bản thân là không xem lại các kế hoạch sau khi lên được chúng. Tôi thường dễ chán nản khi phải quay lại làm một thứ nhàm chán nhiều lần. Nhưng nó cũng ám chỉ rằng “Tôi có thể sẽ không làm theo đầy đủ những cam kết của bản thân”, và nó khá là đúng với đa số các trường hợp và việc này thật sự nguy hiểm. Một trong những ưu tiên hàng đầu cho năm 2020 sẽ là thận trọng hơn trong những gì tôi đang làm hoặc không làm. Tại sao không bắt đầu trước khi năm cũ kết thúc?

Trong bài viết trước trong seri này, tôi nêu ra vài hành động cho bản thân mình. Khi tôi xem xét lại chúng, ngay lập tức tôi nhận ra vài điều: 

  1. Quá nhiều tiêu đề cùng 1 lúc = thiếu tập trung
  2. Tôi đã không theo sát mọi thứ (có thể xem 1 phần hậu quả của điền #1)
  3. Một vài thứ khá là mờ nhạt. Thông thường tôi sẽ đổ lỗi cho điều này để khiến tôi thêm thời gian chần chừ, trừ khi tôi cho đó là một cái gì đó thú vị thôi!\

Hãy cùng xem tôi đã tiến hành được đến đâu và xem xét lại những chỗ cần thiết.

Tuyển dụng Full Stack lương cao cho bạn tại Topdev

Full stack web development

Gồm những cái gì – “What”

  • Database
  • Dựng API
  • Docker & Kubernetes
  • Khai triển
  • Làm cho nó nhìn ổn với React & Material

Mục cuối có vẻ là mục thú vị nhất: Tôi biết cách nó vận hành như thế nào và học những thứ này có thể cần thiết cho vài công việc cụ thể nhưng vào lúc này trong hành trình thì nó chỉ làm tôi mất ngủ. Tôi xem nó như là 1 lựa chọn vào lúc này và nó không phải là ưu tiên hàng đầu của mình. Thôi tạm biệt, React & Material! Tôi sẽ tiếp tục với Bulma và than phiền về JavaScript thêm 1 thời gian nữa..

Ngoài ra, những điều trên cũng là bài giảng cần thiết cho Nanodegree của tôi và là nền móng cho tương lai tôi đang hướng đến. Tôi sẽ chia sẻ thêm những khó khăn tôi trải qua để đạt được Nanodegree trong  một bài viết khác, nhưng về tổng thể thì nó vẫn đang đúng hướng. Thời gian thì khá là hạn hẹp nhưng cái chính lúc này là sắp xếp ưu tiên rõ ràng. Và tôi thực sự muốn trả cho tháng thứ 4, phải, có cả lợi nhuận trong đó nữa.

Bằng cách nào – “How”

  • Học Nanodegree qua Udacity 
  • Các project riêng, vd website hiện tại của tôi
  • Code Camp miễn phí

Nanodegree khá là dễ hiểu rồi, chúng ta không cần nói nhiều thêm về nó nữa. Còn lại thì vẫn rất mơ hồ và tôi vẫn chưa định thần lại tâm trí về việc phải làm gì với website của tôi. Nó dựa trên nền tảng Django & không phải Flask và hiện tại tôi chưa có nhiều cảm hứng để đặt vào đó cái gì đó có ý nghĩa lắm. Thứ tôi vẫn muốn làm đó là add thêm Google Analytics, nhưng lần nữa, phần này là tuỳ chọn và thường không được chọn để web gọn gàng.

Free Code Camp giúp tôi duy trì cuộc chiến với Javascript. Cụm từ “kiến thức cơ bản” là một hành trình dài dăng dẳng và tôi đã cố gắng né tránh nó bằng mọi lí do lí trấu. Tuy nhiên, tôi đã nhận thức về tầm quan trọng và thấy được những lợi ích đáng kể khi nắm được nó, cũng là nguyên do tôi quyết định hoàn thành 3 bài học mỗi ngày trên Free Code Camp.

Tôi đã và đang làm nó như thế nào

Đây là lúc nhìn lại và những tuần vừa qua được khá là hỗn độn, về nghĩa tiến bộ. Tôi đã đánh giá quá thấp sự chặt chẽ của Nanodegree và trong trường hợp của tôi, sự tập trung là một điểm thiếu sót lớn. Tuy nhiên, tôi sẽ không thể đắm chìm quá lâu vì tôi biết đây cũng chỉ là 1 phần của nó – phần còn lại phụ thuộc vào tôi. Cụ thể hơn: tôi sắp kết thúc phần đầu của Nanodegree và chỉ chậm nhịp 1 chút so với kế hoạch. 

Lập kế hoạch trước

Hai tuần vừa qua đã trở nên khá khả quan, nói về khoản tập trung & tiến độ và tôi muốn vực lại phong độ như thế đến sau cả dịp nghỉ Giáng Sinh. Vì phần đầu tương đối dài (và không thú vị cho lắm – database…), tôi tin rằng vấn đề nằm ở lên kế hoạch cho nó. Sự thật là tôi đã bỏ thói quen viết JS sau vài ngày, khá đáng buồn nhưng tôi chỉ cần đơn giản nhặt nó lại thôi! 

Học Machine Learning

Gồm những cái gì – “What”

  • Khía cạnh research (Computer vision và NLP)
  • Keras & Tensorflow
  • Triển khai Cloud 

Dù cho phần “what” này còn khá chung chung, tôi đã hiểu rõ tôi cần làm gì với mỗi thứ. Thứ duy nhất có vẻ không phù hợp trong nhóm này đó là triển khai Cloud và, mặc dù khá là quan trọng, quan trọng nhất vẫn là việc xem trọng mọi việc như nhau.

Tensorflow là trường hợp khác khá quan trọng nhưng không phải bây giờ. Trong khi nó là nền tảng cho Keras, 1 người có thể đi rất xa tới đích trước khi đi 1 lớp sâu hơn. Tôi thích so sánh 2 thứ đó như Python và C: Bạn có thể dành cả đời làm việc với Python và làm mọi thứ xong xuôi mà không cần phải lo lắng về cách nó thực hiện ra sao. Sự so sánh này không hoàn hảo cho lắm nhưng ít ra nó cũng chứng minh cho quan điểm của mình.

Bằng cách nào – “How”

  • Thực tập không lương tại colabel
  • Đọc 1 trang research mỗi ngày
  • Kaggle

… và cái hay là dạo này tôi không cần phải viết quá nhiều code cho machine learning nữa! Kaggle vui đấy nhưng bạn chỉ có thể ngồi xuống khoảng 20 phút và không trông đợi điều kì diệu xảy ra. Như thế cũng tốt thôi: tôi đã hiểu được phần lớn câu chuyện rồi – chắc chắn là nhiều hơn về phát triển web – điều ngạc nhiên tới tự nhiên thông qua việc giải quyết vấn đề hay 1 cuộc thi, điều mà tôi không có thời gian để làm. 

Liên quan tới sách vở, tôi đã đọc được khoản 12 trong 20 sách đã định. Theo lịch làm việc của tôi suốt những tuần vừa qua vẫn làm tôi khá hài lòng dù tôi đã bỏ lỡ cái dự định đầy tham vọng. 

Progress

Lên kế hoạch trước

Về khoản machine learning, và cụ thể là về deep learning, nó thật sự rất khó – tôi nhận ra điều này mỗi khi tôi đụng đến 1 trong 2 thứ đó. Khi so với lập trình web, thuật toán đóng vai trò thiết yếu và các ý tưởng có thể khá là trừu tượng. Ngoài ra, mục tiêu của tôi là để thấu hiểu “bleeding edge of research”, đơn giản nghĩa là tôi cần phải đối đầu với những “bộ óc” siêu khủng tại Facebook, Google và những nơi “ông lớn” công nghệ tương tự. Và tôi cam đoan rằng những gã này chỉ như đang làm bài tập về nhà.

Về phần sách vở, tôi tiếp tục theo đuổi kế hoạch ban đầu. Tôi có thể nói rằng đọc sách ít làm tôi căng não bây giờ hơn là nó từng làm cách đây 6 tuần về trước và tôi mong đợi kiến thức tổng hợp như mọi khi. 1 điều tôi muốn trải nghiệm là luân phiên đọc sách và đọc code. Xem được 1 đoạn code tốt thực sự có tác dụng đòn bẩy trên từng vùng (kỹ thuật phần mềm) và trong hầu hết trường hợp nó còn thực tế hơn là chỉ trên sách vở. 

Về Keras, tôi không chắc có hợp lí không khi thêm nó vào trong quá trình làm việc với Nanodegree. Có vẻ là không. Chỉ nhắc tới cho vui thôi, nhưng những khoảnh khắc đó cũng khá là hiếm mà.

Có 2 cách tôi có thể duy trì mọi thứ, Pomodoro và tự tránh xa xã hội: Pomodoro là 1 kĩ thuật phổ biến cho việc quản lý thời gian và cũng là bài viết thường xuyên về chống chọi với trì hoãn. Tôi tìm ra rằng nó khá là hữu dụng cho cả 2, và cũng là 1 cách để não tôi khỏi quá sức: tôi không có vấn đề gì với việc đọc sách khoa học tận 45 tới 60 phút dài. Tuy nhiên, căng thẳng đầu óc trong thời gian dài để lại hậu quả phải phục hồi lâu hơn – thời gian mà thường phải dành cho thư giãn đầu óc trong trường hợp của mình. Pomodoro khá hợp với tôi, nhưng chỉ nếu tôi bỏ công nghệ tầm 20-25 phút 1 lúc thôi. 

Nhốt mình vào trong phòng hoạt động khá ổn chỉ khi đi tàu và máy bay, nơi kết nối internet tệ hại hay không tồn tại. Tôi thường chọn 1 thứ để làm cho xong trong chuyến đị và thấy rằng nó cũng khá dễ dàng để tập trung trong vài tiếng đồng hồ. Cho 1 vài lí do kì lạ, nó vẫn chưa có tác dụng khi tôi ở nhà… 

Kết luận 

Cũng như bạn đã thấy, tôi chỉ mới dừng hoạt động và có vài lí do: việc thêm vào 1 danh sách thì rất dễ ai cũng làm được. Nhiều người đã làm thay bạn rồi, cho dù là ngụ ý hay muốn nói với bạn như vậy. Và bởi vì chúng ta được huấn luyện để tuân theo thẩm quyền khi nhắc đến chuyện học, lùi bước cũng là 1 lỗi lầm tệ hại và dẫn tới thất bại. Tập trung vào thứ quan trọng mới là kỹ năng cần phải có được. 

Mọi thứ mà tôi đã ghi rõ chính là những kỹ năng thích hợp, và thích hợp cho 1 vài người. Nhưng nó không có nghĩa rằng tôi (hay bạn) phải ưu tiên nó. Nó có thể ngăn tôi thoát ra khỏi cuộc tranh luận đầu tiên với các nhà tuyển dụng tài năng. Nhưng tôi thà chọn phải làm vậy hơn là lạc lối trong kiến thức đã học. Không gian đó như là bất tận… 

Bonus: Social Media – Các kênh mạng xã hội

Trong quá khứ, tôi dễ bị phân tâm bởi rất nhiều nội dung không liên quan trên mạng xã hội. Cụ thể là Facebook, Linkedin và Youtube đều nằm trong top list của tôi. Không cần phải giải bày vấn đề là gì, và bằng cách nào đó tôi cắt giảm hầu hết những platform này vì mục tiêu tốt hơn và chỉ sử dụng có chủ đích. 

Hiểu rõ tính gây nghiện của những thứ này, càng làm tôi tránh xa Twitter. 

Đó là chưa đến 1 vài tuần trước khi tôi đăng nhập lại vào tài khoản đóng đầy bụi và vô tình khám phá lệnh ‘Tìm kiếm’. Và thành ra, những người dùng vi tính dường như thích bàn luận về những thứ thú vị trên mạng, với cả thế giới dõi theo!

Trong trường hợp bạn vẫn chưa dùng Twitter, tôi rất khuyến khích bạn nên lướt qua 1 chút, tôi đảm bảo sẽ có nhiều nội dung làm bạn thích thú. 

TopDev via Dev.to

Xem thêm việc làm Fullstack Developer mới nhất tại TopDev

Đừng bỏ lỡ những bài viết hay về tự học lập trình:

  Con đường để trở thành một fullstack developer (Phần 1: Những nỗi sợ)
  Những thứ mà bạn không được dạy ở trường đại học cho công việc lập trình đầu tiên của bạn

Con đường để trở thành một fullstack developer (Phần 1: Những nỗi sợ)

Cách học để trở thành fullstack developer từ một lập trình viên lâu năm – Đây là giai đoạn thứ 2 trong hành trình trở thành Full-stacker của tôi. Những bước đầu đã được nêu ở đây. Tôi cần hình dung ra làm cách nào để làm nên các bảng đánh dấu này… 

“Tôi không có được những kỹ năng lập trình. Sự thiếu sót đó sẽ làm cho thằng này lây lất trên những con phố, gia đình và bạn bè sẽ bỏ rơi tôi và bị đào thải ra khỏi xã hội. Sau tất cả, tôi lại cô độc và chẳng còn ai đoái hoài gì tới. Và điều tồi tệ nhất: Mọi người rồi sẽ biết và bị cười vào mặt!” Nghe quen chứ ? Thôi hãy cùng nhau đối diện với nó nào! 

Mong Muốn vs. Quyết Định

Có sự khác biệt giữa Muốn và Quyết. Muốn là 1 con đường dài trải đầy hoa hồng. Muốn dễ dàng bị kích thích chỉ qua 1 cái chạm nhẹ dịu dàng, khi mà tương lai còn mơ hồ, chìm đắm trong viễn tưởng người đẹp và danh vọng, chỉ làm mà chẳng cần phải suy nghĩ. Nói luôn cho vuông: Chẳng có gì xấu về Muốn cả, nhưng trừ khi là bạn đang cược liều lĩnh trên vận may, bạn nên tiến thêm một bước xa hơn. 

Còn Quyết thì lại là 1 con thú hoàn toàn khác, và có thể thực sự bẩn tính: Chúng bắt bạn phải ngồi xuống, lập hẳn kế hoạch và, rõ ràng là phần tệ nhất, làm những thứ cần phải làm. Cho dù đó là học thêm kỹ năng mới hay đảm bảo rằng những người khác đang làm việc của họ để được trả lương, rất có thể là bạn phải làm điều gì đó cho bản thân. 

Chướng ngại vật

Đã lâu, tôi xem lập trình như 1 thú vui mà hiển nhiên cho phép tôi có 1 đoạn hội thoại đầy ý nghĩa với các nhà lập trình phần mềm chuyên nghiệp. Cũng không mất quá nhiều thời gian để hiểu ra rằng tôi thực sự tận hưởng nhiều khía cạnh xung quanh việc coding: tư duy phát triển, ta nghĩ về việc gây dựng nên cái gì đó hữu dụng và qua đó làm cho cuộc sống con người dễ dàng hơn, thúc dục tôi học hỏi qua nhiều hiệu ứng trộn lẫn và thay đổi font IDE của tôi thành Source Code Pro (hầu như là vì nó có chữ Pro trong đó). Hơn thế nữa, mạng Internet cam đoan là hoàn toàn có thể trở thành 1 developer tốt ngay cả khi tôi chưa hoàn thành giáo trình “thần đồng máy tính”. 

Và rồi, có thứ gì đó cản tôi lại. Sự thật là tôi vẫn suy nghĩ và đọc về xây dựng phần mềm giá trị nhiều hơn là làm ra nó. Nói cách khác, tôi vẫn còn ở xứ thần tiên và chưa sẵn sàng để tạo nên cú bật. Nó làm tôi mất hơn 2 năm chỉ để từ vết ngứa ngáy đó ban đầu cho tới bài viết trước đó của tôi hay làm những hành động tương ứng. Nghe có vẻ ngắn cho vài người nhưng trên mốc thời gian của riêng mình thì nó như là bất tận vậy.

unknown tweet media content

Bản Draft đầu tiên của tôi khá là kỹ lưỡng về các chi tiết nhưng tôi tin rằng mỗi chúng ta đều có riêng nhiều thứ để sợ hãi. Nếu tôi tóm tắt chuyện riêng mình, hầu hết chúng đã và đang liên quan tới chuyện tôi hoài nghi về khả năng của mình, chi phí tài chính/ cơ hội và liệu tôi có nên tìm mục đích khi làm việc đó vui vẻ thêm vài năm nữa.

  10 kênh Youtube học lập trình không thể bỏ qua dành cho Junior Web Developer / Designer

Đưa ra Quyết Định 

Vài lúc tôi nhận ra rằng sẽ không có ai khác trả lời những câu hỏi này và việc xác định mục tiêu là của riêng mình và tiến bước. Mục đích trước đó của tôi giờ nó dính khá nhiều “bụi” và tôi còn nhớ nó có tên là “Học machine learning”. Không quá lời nhưng tôi cảm thấy mình có thể cất nó vào trong xó được rồi. 

Suốt tầm 1 tuần tôi ngồi xuống vài lần và xác định mục tiêu của mình, làm cách nào để tôi đạt được nó và vượt qua các chướng ngại. Nó quả là 1 bài tập khó khăn vì tôi phải thành thật với chính bản thân và phải bỏ qua khá nhiều thứ mà tôi muốn biết, như cái framework front end sang chảnh hay mỗi cái thư viện machine learning. Bên cạnh đó, nó có nghĩa là tôi phải cho đi bớt vài mục tiêu rõ ràng và tiềm ẩn của mình, ngoài ra còn phải giải thích hướng đi mới này cho bạn bè và gia đình.

Trong lúc làm chuyện đó, tôi nhận ra rằng mình không nhất thiết phải trở thành 1 con người khác. Không cần trong khái niệm như phải cư xử như một người hoàn toàn khác nhưng mà là 1 phiên bản khác của bản thân. Loại người mà có những thói quen nhất định mà tôi chưa có (cho tới hiện tại thôi). Lộ trình quản lý sắp xếp công việc cũng cho tôi vài kỹ năng có giá trị nhưng có một điều chắc chắn là tư duy học vượt (binge-learning) không còn hữu ích nữa. 

Bạn không thể đánh trúng 1 mục tiêu mà bạn không nhìn thấy

Chỉ sau này tôi mới nhận ra 1 quyết định có thể thúc đẩy tôi nhiều thế nào. Hầu hết ai cũng sẽ né tránh việc quá cụ thể, và tôi cũng vậy. Tôi nghĩ rằng nó xuất phát từ một cái gì đó sâu xa hơn nhiều. Bằng việc không cam kết hoặc ràng buộc bản thân sẽ cho bạn được ít nhiều sự thoải mái, cho dù là ngắn ngủi. Nhưng thế giới xung quanh chúng ta vẫn cứ xoay đều và chậm rãi và chắc chắn là cuộc sống vẫn tiếp diễn, dẫn đầu bởi những người tự sở hữu và có trách nhiệm cho chính số phận của họ. Và tôi muốn trở thành 1 trong số đó. 

Procrastination

Có khi nào tôi miễn nhiễm với sợ hãi không? Chắc chắn là không. Phép ẩn dụ tốt nhất mà tôi có được ví von như là: Nó ám tôi như một cái đĩa than dính lấm tấm bụi và khi kim máy hát cứ tiếp tục quay trên cùng 1 làn đường trên mặt đĩa, lặp đi lặp lại hết lần này tới lần khác. Tôi từng nghĩ rằng cái vòng lẩn quẩn đáng sợ này sẽ làm bản thân bị hạn chế cũng như ngăn tôi tiếp cận được những ý tưởng mới thực sự sẽ gây hại cho tôi bằng cách này hay cách khác. Nhưng hi vọng vẫn còn đó và mục tiêu là thứ gì đó rất khác: Giữ tôi ở đúng tốc độ ổn định của mình. Thứ còn quan trọng hơn việc hạ gục nỗi sợ là để thấu hiểu cảm giác đó từ đâu đến rồi học hỏi và lên kế hoạch để chống lại nó.

Tất cả tuỳ thuộc vào bạn!

Tôi bắt đầu viết bài này vì tin rằng nhiều người đang bị nỗi sợ giữ lại phía sau, không còn quan trọng nó là thứ gì cụ thể đi nữa. Nói thì nói thế thôi, đừng xem đây như là 1 kế hoạch, ngồi xuống và tự quyết định với chính mình! Những “cục nhọt” mà tôi đang mô tả là chủ quan và chỉ có tác dụng với tôi thôi. Mình khuyến khích các bạn cho phép bản thân sự xa hoa của việc viết ra những nguyện vọng, thậm chí có thể là công khai như tôi đã làm. Có thể nhiều người sẽ nghĩ bạn thật là ngốc nghếch, nhưng mà liệu họ có đủ quan trọng để bạn quan tâm không?

Ghi chú: Có khá nhiều sách tuyệt vời về chủ đề xây dựng thói quen (riêng tôi rất thích Atomic Habits và 4DX), cho nên tôi cũng không muốn quá dong dài nữa. Nếu bạn đang ở giai đoạn sơ khai và gặp khó khăn để bắt đầu, có 1 quyển khác mà tôi xin được giới thiệu ‘The war of Art’ bởi Steven Pressfield.

Bonus 1: Những nỗi sợ hàng đầu của tôi

Thứ tự giảm dần 

  • Sợ những nỗi sợ chưa từng gặp
  • Tôi không đủ thông minh/ nhanh nhạy
  • Vài lúc tôi sẽ không nắm bắt điều gì (hàm đệ quy là 1 ứng cử viên đáng nói..)
  • Tôi sẽ không còn hạnh phúc như hiện tại nữa
  • Tôi sẽ bị từ chối
  • Tôi sẽ không thể kiếm (đủ) tiền với nó nữa
  • Những người khác đã làm những điều này từ năm 12 tuổi rồi
  • Các giải pháp của tôi sẽ thua kém những người khác

Và tất cả có vẻ buồn cười khi tôi viết ra chúng thế này và tôi còn có hẳn những khái niệm mạnh mẽ về việc chống lại từng nỗi sợ mà tôi đã tạo ra. Nhưng bất kể là gì đi nữa thì đó là những thứ quỷ quái đã ngăn tôi làm được nhiều thứ to tác hơn. Nỗi sợ của bạn là gì?

Bonus 2: Không phải lúc nào những điều này cũng đúng nhưng khi đọc lại bản nháp cuối của mình, tôi cảm thấy như 2 năm ròng rã lăn lộn chỉ dồn vào đúng vài đoạn code, thật khó mà chấp nhận được. Để bổ sung cho những quyển mà tôi đã nhắc đến, có 1 vài câu hỏi mà tôi cảm thấy khá là hữu ích trong lúc chiến đấu với bọn quái mang tên ‘sợ hãi’ mà tôi đã miêu tả như ở trên.

Đọc

  • Bạn có đọc sách không?
  • Bạn hay đọc thể loại gì?
  • Bạn lựa sách dựa trên tiêu chí nào? Bạn tìm thấy chúng hay chúng đã tìm thấy bạn?
  • Những vấn đề nào làm bạn nghĩ ‘thà không tranh luận thì hơn’ với bạn bè hoặc người thân?
  • Những người bên cạnh bạn

Những con người trong cuộc đời bạn 

  • Ai là người giỏi nhất về ….?
  • Bạn có bao giờ hỏi người đó thêm về x chưa? Tại sao chưa? 

Mạng Internet

  • Bạn sử dụng Social Media như thế nào? Bạn tiếp nhận bao nhiêu & cho đi bao nhiêu?
  • Lần cuối cùng bạn cảm ơn ai đó khi gặp được 1 nguồn framework, hướng dẫn hay Tweet hay là khi nào?
  • Tại sao bây giờ bạn lại đọc chủ đề này?

Mục tiêu

  • Hai hay ba mục tiêu nào quan trọng nhất trong cuộc đời mà bạn sẽ không cam kết theo đuổi?
  • Liệu bạn có thể đo được hay đánh giá khách quan những mục tiêu nào quan trọng nhất?
  • Nếu lỡ bạn đang ở dưới vực sâu ngay bây giờ: Bạn sẽ làm gì trong 10 phút tiếp theo để tiến gần hơn đến mục tiêu nào bạn có?

Phần 2 của Fullstack Developer tại:

  Con đường để trở thành một fullstack developer (Phần 2: Xem xét lại các Kế hoạch)
  32 cuốn sách học lập trình bạn nhất định phải đọc

Xem thêm Tuyển dụng Fullstack Developer mới nhất tại TopDev

Tiếng Anh dành cho lập trình viên

tieng-anh-danh-cho-lap-trinh-vien

Trong suốt thời gian đi học, đi làm, trao đổi cùng nhiều anh em trên các cộng đồng lập trình trên thế giới. Trước đó mình học tiếng Anh theo cách khá sai lầm. Nên mình đã nghiên túc nghiên cứu và sưu tầm một “kho tài liệu” học tiếng Anh giao tiếp, để tiện trao đổi về những vấn đề mình gặp khi lập trình. Kèm theo đó là khi trao đổi với client không bị sót thông tin do qua một bạn thông dịch. Hôm nay mình sẽ share bộ bí kíp này, nhưng anh em nhớ đừng chỉ tải về rồi để đó. Nên tải từng cuốn rồi đọc cho thấy ít ít nha.

1/ Giải thích ngữ pháp tiếng Anh

Như tiêu đề thì mục đích của cuốn sách này là phân tích ngữ pháp giúp anh em biết sử dụng các loại “thì” đúng trường hợp. Giúp cuộc hội thoại bớt “kì” hơn

Download tại đây

 

 

 

2/ 3000 cụm động từ

Với 3000 cụm động từ này, các câu giao tiếp của anh em sẽ đa dạng hơn.

Download tại đây

 

 

 

 

3/ Từ vựng thường gặp trong đề thi TOEIC

Anh em nào đang cần bằng TOEIC thì có thể tham khảo nha

Download tại đây

 

 

 

 

 

4/ Từ vựng theo chủ đề trong đề thi IELTS

Đã có TOEIC thì phải có IELTS cho anh em chứ

Download tại đây

 

 

 

5/ Từ vựng tiếng Anh theo chuyên ngành

Có thêm vốn từ thì không bao giờ là thừa nhỉ anh em?

Download tại đây

 

 

Hy vọng những tài liệu này sẽ giúp anh em cải thiện vốn tiếng Anh hơn. Ngoài ra, còn tài liệu hay ho nào mà mọi người sưu tầm được thì chia sẻ tại phần bình luận nhé.

Tìm việc IT lương cao, đãi ngộ tốt trên TopDev ngay!

Tôi đã giảm cân nhờ lập trình như thế nào

Lập trình và cuộc sống – Tôi đã giảm 20kg trong 6 tháng qua. Mà không cần phải ăn kiêng hoặc nhịn đói. Tôi đã sử dụng các phương pháp cơ bản được hầu hết các lập trình viên biết đến để tối ưu hóa hành vi của tôi.

Dưới đây là một hướng dẫn ngắn để tối ưu hóa bản thân cho việc giảm cân.

Sức mạnh ý chí == Sức mạnh của CPU

Đây là một trong những giả thuyết của tôi: Bạn nên dành ít “sức mạnh ý chí” nhất có thể, khi đưa ra quyết định về việc sẽ ăn cái gì để giảm cân. Bạn càng sử dụng nhiều sức mạnh ý chí, bạn sẽ càng ít có khả năng thành công trong việc giảm cân.

  13 kênh Youtube lập trình tiếng Việt giúp bạn trở thành Fullstack developer

Hãy tưởng tượng sức mạnh ý chí, giống như sức mạnh của CPU. Chúng là một nguồn tài nguyên hạn chế, nếu mỗi ngày bạn đều tiêu tốn rất nhiều sức mạnh ý chí để phấn đấu giảm cân, bạn sẽ thất bại tại một thời điểm hoặc không thể làm được vì bị quá tải. Và vì sức mạnh ý chí là một tài nguyên hạn chế. Nên nếu bạn dùng hết chúng để ép buộc cơ thể đi đến phòng tập gym, thì bạn sẽ không thể cố gắng trong những việc khác.

“Thuật toán ăn kiêng” phổ biến

“Thuật toán ăn kiêng” thường được sử dụng sẽ trông như này:

Map NhungThuToiKhongTheAn = ...
Int SMYC = ..
function boolean ToiCoTheAn(duong){
  if(NhungThuToiKhongTheAn.contains(duong) and SMYC>0){
    SMYC --
    return False 
  }
  return True
}

Điều này tương tự như những điều được đề cập đến trong các app chế độ giảm cân. Tuy nhiên sau khi trao đổi với một thằng bạn chuyên tập gym, thì tôi đã kết luận được thuật toán mới.

static final boolean _CoTheAnDuong = False

function boolean CoTheAnDuong(){
  return _CoTheAnDuong
}

Ủa khoan… vậy còn sức mạnh ý chí (SMYC) đâu?

ytpj63

Nếu như bạn đã có biến vừa khai báo từ khóa final vừa khai báo từ khóa static thì nó được xem như là một hằng số, từ đó bạn sẽ không cần tới SMYC nữa. Đó là mục đích chính mà mình hướng tới. Nếu bạn không ăn thứ gì đó vì bạn ghét nó, bạn dị ứng với nó hoặc nó bị cấm kỵ trong tôn giáo của bạn, thì bạn không cần phải tiêu tốn sức mạnh ý chí (SMYC) trong việc cố gắng kiêng cữ nữa.

Đoạn “cheat” đó là

static final boolean CoTheAnDuong = False
static final boolean CoTheAnMiY = False
static final boolean CoTheAnCom = False
static final boolean CoTheAnTinhBot = False

Như vậy tôi không cần sức mạnh ý chí để duy trì thói quen ăn uống của mình. Tôi ăn những thứ tôi thích (thịt, cá, rau, pho mát) với hàm lượng đủ nhiều => không bao giờ đói. Như vậy tôi có thể dồn toàn lực vào công việc của mình.

Bằng cách này, tôi không bao giờ gặp phải hoàn cảnh:

Giải pháp tối thượng – Đi bộ brainstorm

Làm lập trình lúc nào chúng ta cũng phải nghiên cứu ra những giải pháp mới, hướng đi mới (vì bug luôn thông minh và nham hiểm hơn trước). Vì vậy cứ mỗi khi chúng ta brainstorm thì hãy đứng lên đi vài vòng, vừa giúp máu lưu thông lên não tốt hơn, minh mẫn hơn. Ra ngoài còn vận động đốt được một ít mỡ thừa (nhưng nên cầm điện thoại để có ý tưởng là ghi lại ngay. Chứ không, chạy về chỗ ngồi thì lại quên mất).

  Phân biệt lập trình viên Junior, Mid-Level và Senior

Tổng kết

Sử dụng “sức mạnh ý chí” một cách thông minh. Mỗi suy nghĩ vừa khai báo từ khóa final vừa khai báo từ khóa static. Tuy nhiên vẫn cần dùng “sức mạnh ý chí” cho những thói quen cần tập như đi bộ brainstorm. Chúc các bạn thành công và mau giảm cân.

TopDev via

Hiểu hơn về cách hoạt động của JavaScript Engine

9 tuyệt kỹ

JavaScript thì “ngầu” thật đấy, nhưng làm sao để máy có thể hiểu được code bạn viết nghĩa là gì? Nếu là lập trình viên JavaScript, bạn sẽ không phải đích thân đi xử lý các compiler. Tuy nhiên, bạn vẫn cần phải biết những kiến thức căn bản về cơ chế vận hành của JavaScript, cũng như cách nó xử lý phần JS code bạn đã viết và “gửi gắm” nó sang ngôn ngữ mà máy móc có thể hiểu được.  

Note: Bài viết này sẽ nói theo V8 engine và các trình duyệt dựa trên Chrome. 

HTML parser sẽ gặp tag script cùng 1 source. Code từ source này sẽ được load hoặc từ network, cache, hoặc một service worker đã cài trước. Response trả về sẽ là một đoạn script dưới dạng 1 stream byte, phần này sẽ do byte stream decoder xử lý. Byte stream decoder sẽ decode chuỗi byte này ra khi nó được down về.

Hiểu hơn về cách hoạt động của JavaScript Engine

Byte stream decoder sẽ khởi tạo các mã token từ luồng byte đã được decode. Ví dụ, 0066 decode thành f, 0075 thành u, 006e thành n, 0063 thành c, 0074 thành t, 0069 thành i, 006f thành o, 006e thành n với khoảng trắng. Đây là keyword dành riêng cho JavaScript, mã token được tạo và gửi đến parser (và cả các pre-parser nữa, tôi không có gif để mô tả kỹ hơn nhưng tôi sẽ giải thích thêm bên dưới). Và đối với phần còn lại của byte stream cũng sẽ diễn ra tương tự.

Hiểu hơn về cách hoạt động của JavaScript Engine

Engine sử dụng 2 parser: pre-parser và parser. Pre-parser có nhiệm vụ kiểm tra lỗi cú pháp từ các mã token. Từ đó làm giảm thiểu được không ít thời gian trong việc tìm lỗi trong code, dù đương nhiên sẽ có trường hợp sau đó parser vẫn phát hiện thêm lỗi. 

Trường hợp nếu không có lỗi, parser sẽ tạo ra các node được dựa trên mã token nó nhận được từ byte stream decoder. Với các node này, nó tạo ra Abstract Syntax Tree (AST).

Hiểu hơn về cách hoạt động của JavaScript Engine

Tiếp theo là đến công đoạn của interpreter (trình phiên dịch). Interpreter đi qua AST và tạo byte code dựa trên thông tin AST chứa. Sau khi hoàn thành công đoạn tạo byte code, AST sẽ bị xóa để giải phóng bộ nhớ. Cuối cùng chúng ta đã có “nguyên liệu” có thể làm việc máy.

Hiểu hơn về cách hoạt động của JavaScript Engine

Mặc dù byte code đã khá nhanh nhưng vẫn có thể tối ưu hóa tốc độ hơn nữa. Thông tin được tạo ra khi byte code hoạt động. Nó có thể phát hiện những hành vi nào thường diễn ra, và loại data được sử dụng. Có thể bạn thường lặp đi lặp lại một chức năng, thì đây cũng là lúc tối ưu hóa để đẩy nhanh tốc độ.

Byte code cùng với feedback type đã được tạo sẽ được gửi đến optimizing compiler (compiler tối ưu hoá). Optimizing compiler lấy byte code và type feedback để tạo nên machine code cực kỳ tối ưu hóa.

Hiểu hơn về cách hoạt động của JavaScript Engine

JavaScript là ngôn ngữ dạng dynamic typing, vì các loại data luôn thay đổi. Nếu JavaScript engine phải kiểm tra liên tục giá trị của mỗi loại data thì sẽ rất chậm. 

Thay vào đó engine có thể sử dụng bộ nhớ đệm nội tuyến (inline caching), có chức năng lưu trữ code trong bộ nhớ và hy vọng trả về cùng một giá trị với cùng một behavior trong tương lai. Giả sử một hàm nhất định được sử dụng 100 lần và luôn trả về cùng một giá trị, thì lần thứ 101 sử dụng nó cũng sẽ trả đúng về giá trị này.

Ví dụ như có hàm chức năng sum như sau, luôn được gọi với giá trị numerical (số) dưới dạng đối số (argument) mỗi lần:

Hiểu hơn về cách hoạt động của JavaScript Engine

Kết quả sẽ trả về số 3! Lần tới, khi chúng ta nhập lại hàm này, nó sẽ giả định chúng ta lại nhập hai giá trị numerical.

Nếu đúng, thì nó sẽ yêu cầu thêm dynamic lookup, và chỉ có thể sử dụng kết quả được lưu trong bộ nhớ đã lưu trước đó. Nếu không phải, nó sẽ de-optimize (đảo ngược tối ưu hóa) code và trả lại về byte code ban đầu thay vì machine code đã được tối ưu hóa.

Tham khảo tuyển dụng javascript lương cao trên TopDev

Ví dụ lần sau khi đã nhập, tôi sẽ truyền một string (chuỗi) thay vì một number (số). Vì JavaScript là dynamical type nên sẽ không xảy ra bất kỳ lỗi nào.

Hiểu hơn về cách hoạt động của JavaScript Engine

Điều này nghĩa là số 2 sẽ bị ép thành một chuỗi và thay vào đó hàm sẽ trả về chuỗi “12”. Nó sẽ quay lại xử lý byte code đã nhập và cập nhật thêm type feedback.

Tôi mong bài viết trên phần nào giúp ích được các bạn dù có nhiều phần tôi chưa đề cập (JS heap, call stack,..) Thế nhưng tôi nghĩ các bạn hoàn toàn có thể tự nghiên cứu nếu có hứng thú với JavaScript, với V8 là mã nguồn mở và hiện có khá nhiều tài liệu về cách hoạt động khá thú vị!

 

TopDev via dev.to

Tuyển dụng nhân viên IT đãi ngộ tốt trên TopDev

Phát triển phần mềm: Từ nghiệp dư thành chuyên nghiệp

Phát triển phần mềm: Làm cách nào để chuyển từ nghiệp dư thành chuyên nghiệp?

Khép lại thập kỷ 2010, thế giới đã thay đổi đáng kể, từ chỗ việc sử dụng được máy tính là một kỹ năng cộng thêm thì bây giờ nó trở thành một kỹ năng phải có để làm được bất cứ việc gì. Chuyện viết được phần mềm máy tính, hiểu và viết được code để tự động hóa công việc của mình ở trong một chừng mực nào đó cũng đang tiến trên con đường như vậy. Từ chỗ nó là một kỹ năng cộng thêm, làm vì thích, thì bây giờ nó trở thành một kỹ năng rất nên có, công việc nào cũng cần. Mình nghĩ rằng nhiều bạn đọc các bài viết của mình là những người thích máy tính, và đang (hoặc có ý định) viết phần mềm. Nhiều người có thể ít nhất là viết code, làm web, làm tự động hóa cho một công ty hoặc dự án nào đó ở một chừng mực nào đó. Nếu như mong muốn của bạn là trở thành người viết phần mềm chuyên nghiệp, thì đây là bài viết dành cho bạn.

Trước tiên, mình nghĩ quan trọng là sự nhận thức rằng việc làm chuyên nghiệp khác với nghiệp dư, và làm phần mềm không nằm ngoài quy luật đó. Nói chúng khác nhau không phải là nói để tâng bốc, quan trọng hóa cá nhân. Một ví dụ là việc đi hát: Cuộc sống của chúng ta có rất nhiều người hát được. Có thể bạn hát karaoke nghe rất hay. Có thể bạn hát hay đến mức có người bạn của bạn mời bạn hát đám cưới. Nếu bạn đồng ý rằng “tôi chỉ muốn hát karaoke đám cưới cho vui” cả đời thì không vấn đề gì. Mặt khác, việc nghĩ rằng một người ca sĩ chỉ là một người hát karaoke hay hát đám cưới mà may mắn có nhiều người nghe là rất sai. Mặc dù nhiều người ca sĩ được khám phá ra vì họ hát đám cưới hay, sẽ tốt hơn nếu chúng ta nhận ra khoảng cách giữa hai người đó là rất xa nhau. Việc ca sĩ chuyên nghiệp như Mỹ Tâm hay Taylor Swift chẳng hạn có cống hiến hàng chục năm mà vẫn có bài hát mới không phải chỉ bởi vì người ta làm vì thích hay người ta may mắn. Mình chắc chắn một điều, phần lớn những thành công đó không nhờ họ có hứng hay họ may mắn.

Điểm giống nhau giữa hai việc hát và code là rất nhiều người làm vì thích, đó là một phần của sự sáng tạo và đi lên từ việc làm nghiệp dư, làm cho vui. Cá nhân mình viết phần mềm đầu tiên từ khi 12 tuổi. Mình viết báo PCWorld về lập trình cho vui từ năm 14 tuổi để lấy tiền tiêu vặt. Phần mềm đầu tiên mình viết “nguồn mở” cũng là vào những năm đó và mình nói chung đều viết code cho đến giờ. Đó đều là những việc làm chơi, nghiệp dư. Mình bây giờ được người ta trả tiền để viết phần mềm – đó là biết mình đã chuyển từ việc làm chơi thành làm thật.

Trong thời gian đó đến giờ, rất nhiều khi mình tự hỏi: Khi biết mình thích, thì làm cách nào để mình biết là mình đang làm đúng hoặc đi đúng hướng trên con đường đó? Làm cách nào để chuyển từ làm chơi thành làm thật?

Trong thời gian đó, mình có những điều hiểu sai về việc này mà mình nghĩ rằng mình biết nhưng thực tế thì không. Nếu mà mình biết trước thì đã tiết kiệm được vô khối thời gian.

1. Nên học ít nhất đến hết đại học chuyên ngành

Nếu có thể, bạn nên học tiếp bằng Master. Bạn không nên nghĩ rằng mình có thể “tự học” được tất cả mọi thứ bằng cách mày mò, và dành thời gian đó để làm việc khác (ví dụ làm startup). Tuy “nghề” viết phần mềm là mới so với nhiều nghề khác, nhưng nó cũng không mới lắm. Và khi một con đường đã được người khác khai hoang từ lâu thì bạn sẽ nên đi con đường người khác đã biết và đã tạo lập sẵn, chứ không cần phải khai phá lại. Bạn có thể nghĩ mình có thể học được bằng cách tự học tự làm nhưng việc đó sẽ rất tốn thời gian, và bạn sẽ phải đối mặt với muôn vàn câu hỏi mà bạn không có câu trả lời (nhưng người khác có, và nếu bạn theo người ta thì bạn đã không vướng vào đó rồi).

Sẽ có nhiều điều bạn không biết rằng mình không biết nếu không học đại học. Không ai bây giờ đi nghiên cứu vũ trụ bằng cách tự chế ra một cái kính viễn vọng rồi tự nhìn lên trời để phát minh ra định luật mới cả, mặc dù sách danh nhân hay nói với bạn nhiều người đã làm như vậy (những việc đó bạn đã chậm chân 500 năm). Cũng như vậy, bạn không nên nghĩ rằng mình sẽ hiểu được máy tính bằng cách ngồi ở nhà và tự học: Đại học, được đào tạo chính quy, nghiêm chỉnh luôn là con đường tốt nhất, ngay cả khi bạn đã có vốn liếng kha khá về kiến thức lập trình khi vào đại học/master.

Sự thật với cá nhân mình là mình không ghi danh nhập học ngành máy tính khi bước vào đại học vì mình nghĩ mình đã hiểu được làm cách nào để code rồi thì học cái khác chứ học máy tính làm gì nữa. Sau này khi nhận ra mình phải học nghiêm túc vì có rất nhiều điều mình chưa biết, thì mình chuyển qua học Khoa học máy tính.

Nếu bạn muốn làm startup thì bạn nên làm startup, nhưng nếu bạn không phải là xuất chúng thiên hạ, bạn chỉ có thể chọn giữa làm startup hay làm phần mềm, chứ không phải cả hai. Có nhiều người sẽ hỏi: Vậy tại sao các ông trùm về công nghệ như Bill Gates hay Mark Zuckerberg đều là những kẻ bỏ học? Mình xin được trích lời Gấu: Có bao nhiêu người là người bỏ học và trở thành Bill Gates và bao nhiêu người bỏ học và trở thành đi ăn xin?

2. Viết phần mềm thì cần tập trung.

Đừng là nghệ sĩ, nhà hoạt động xã hội, kẻ khôn lỏi, hay người làm việc tùy hứng cùng lúc với viết phần mềm. Làm phần mềm là một công việc kỹ thuật sáng tạo, nhưng là một công việc kỹ thuật trước tiên. Viết code không phải là đi viết thơ hay viết văn. Viết code là đi viết lệnh mạch lạc để máy tính làm một việc rõ ràng. Làm máy tính là phải học cách làm một người kỹ sư chứ không phải là đi làm nghệ sỹ. Vì thế về mặt kỹ thuật, viết code, viết tài liệu cho phần mềm, viết comment cho code, viết commit message đều phải mạch lạc, rõ ràng và đi vào gốc rễ của vấn đề. Mỗi dòng lệnh bạn viết cần phải có một mục đích cụ thể và duy nhất. Bạn sẽ sai rất nhiều và sẽ phải rất thẳng thắn về việc nhận cái sai của mình.

Về công việc, bạn cần có kỷ cương và làm việc một cách chuyên nghiệp chứ không phải làm tùy hứng. Bạn cần nhận ra đâu là làm có hiệu quả và đâu là làm để lấy le với người khác (trong đó, làm không điều độ, thức đêm hôm là những việc điển hình của người làm việc nghiệp dư).

Khi viết code, người làm nghiệp dư thường mắc phải những lỗi mà mình nghĩ là mình “thông minh.”

Ví dụ, lần đầu tiên mình nhận ra là mình không thông minh như mình tưởng là khi ông giáo sư dạy Khoa học máy tính đi bắt mình những lỗi như không viết dấu {} khi câu lệnh if chỉ có một dòng như thế này:

if (condition) doSomething(); return 0;

Vấn đề của việc viết không có dấu {} là khi người khác làm việc trên code của mình mà muốn làm thêm một việc khác nữa, mà viết như thế này:

if (condition) doSomething(); doSomethingAfterwards(); return 0;

Như vậy mà gặp phải lỗi thì rất khó để nhận ra vấn đề nằm ở đâu. Người làm việc chuyên nghiệp không chỉ biết làm một việc hiệu quả, mà biết làm việc để người khác hiểu được mình, kế tục được việc mình làm và ít bị bất ngờ nhất chứ không phải là người làm ma mãnh khôn lỏi thông minh nhất. Nếu bạn muốn là người tỏ ra thông minh nhất, bạn cần phải tham gia game show chứ không phải đi viết phần mềm.

Một ví dụ cụ thể cho việc một hệ thống không thể hiện sự làm việc chuyên nghiệp là một dự án về trao đổi, lưu trữ tiền (lớn?) mà có những commit message rất kỳ khôi, có khi chỉ là một chữ “n.” Khi người sau tiếp tục kế tục một chân làm phát triển cho công ty như vậy thì họ sẽ không biết tại sao thay đổi đó đã diễn ra, diễn ra để làm gì, vấn đề nó khắc phục là gì, kết quả như thế nào. Như vậy là khi dự án trở nên rắc rối hơn, con người đông lên, việc một câu lệnh làm gì sẽ vượt khỏi tầm tay và có thể có những hậu quả đáng tiếc xảy ra.

3. Đừng là một kẻ đơn độc

Có rất nhiều người trong thế giới này giỏi hơn bạn và bạn sẽ học được rất nhanh khi làm việc với người giỏi hơn mình. Một vấn đề của người làm vì thích là việc thấy mình có thể tự làm được rất nhiều thứ. Vì thế người làm vì thích tự làm rất nhiều thứ một mình ở trong bóng tối. Bạn làm thế nào thì bạn cũng có niềm vui. Bạn có thể nhốt mình ở trong căn phòng 24/7 không tiếp xúc với ai, không nói chuyện với ai, không ai biết bạn đang làm gì, và bạn nghĩ mình vẫn học được nhiều điều mới lạ từng ngày. Bạn vẫn có những sáng tạo của mình hàng ngày và thấy việc đó rất tốt. Vấn đề của việc làm việc một mình là bạn không thấy điểm mù của mình và vùi đầu vào một việc không đáng làm, hoặc nếu có người chỉ cho đã nhanh hơn rất nhiều rồi. Điều này đặc biệt đúng với các bạn học sinh học phổ thông hay sinh viên mới vào trường đại học, vì bạn thấy mình đơn độc khi có sở thích riêng, kỳ lạ khác người và không chơi được với những người cùng trang lứa.

Để giải quyết vấn đề tự hát tự thâu băng tự đưa lên Youtube này thì giải pháp là phải học thầy và học bạn. Khi bạn có những người ít nhất là tốt bằng mình thì bạn sẽ nhận ra cần phải làm gì rất nhanh. Để làm được việc đó, việc tốt nhất là thay vì làm một dự án của riêng mình hay làm trong nhóm nhỏ thì bạn nên tìm hiểu và tham gia vào một dự án phần mềm chuyên nghiệp. Các dự án này phải có một đội ngũ làm nghiêm túc hẳn hoi. Tất cả các dự án có nhiều người làm ở các công ty làm phần mềm chuyên nghiệp (như Google, Facebook, Redhat) tham gia điều hành và gửi mã nguồn lên đều là những dự án “đạt chuẩn.” Những dự án như thế này không khó để tìm trên Internet, những dự án có uy tín có thể kể ngay ra như Debian, Linux Kernel, Buildroot, OpenWRT, KDE, GNOME, OpenSSL, Python đều là những dự án rất chuyên nghiệp và họ luôn tìm người tham gia. Khi bạn commit code vào những dự án đó, những người đi trước sẽ rất nhanh chóng chỉ cho bạn những lỗ hổng trong kiến thức và kỹ năng của mình. Cộng với việc khi đóng góp bạn luôn có thể nói với mọi người rằng bạn đã tham gia đóng góp mã nguồn vào những dự án đó.

Các dự án nhỏ hơn của những cá nhân làm web, như các web framework hay thư viện javascript hay ứng dụng nhỏ trên Github, trừ khi có lý do rõ ràng, mình nghĩ rằng sẽ không hiệu quả cho việc phát triển cá nhân. Lý do là những người làm những framework hay dự án nhỏ cũng chỉ là những người làm nghiệp dư và họ sẽ không có thời gian công sức và kinh nghiệm để nắn sửa cho bạn nếu bạn sai.

Nếu bạn muốn tham gia nghiên cứu, các lab có uy tín ở trong đại học lớn sẽ tốt hơn các lab có ít người ở các đại học nhỏ hơn. Các lab có nhiều sinh viên học Khoa học máy tính sẽ có nhiều người để bạn học hỏi hơn. Có nhiều trường hợp, như trường hợp của mình, mình đã làm việc Khoa học máy tính trong một lab mà mình là người duy nhất được đào tạo về máy tính. Trong thời gian đó, mình không phát triển được nhiều kỹ năng về làm phần mềm tốt của mình.

4. Nhiều tiền hay nổi tiếng không phải là vấn đề

Mình nghĩ một cạm bẫy lớn của các bạn trẻ (teen) là nghĩ việc làm của mình rất tốt, rất quan trọng nếu như mình làm được tiền hoặc sự chú ý của ai đó. Bạn sẽ gây dựng nên được Microsoft hay Facebook vì bạn thu được một ngàn đô la một tháng vì bạn nghĩ ra một điều gì đó mọi người đang cần. Mình nghĩ việc nông nổi đó sẽ giảm dần đi theo thời gian khi mỗi người lớn lên, và nếu có phụ huynh nào có con nhỏ thuyết phục cha mẹ như vậy thì cũng không nên lo quá. Nhưng có chút tiền không thôi thì không phải là lý do để không thèm học đại học, không thèm mở rộng chân trời của mình. Mặt khác, đó có thể là lý do ngu ngốc nhất để không học tiếp.

Cùng lúc đó, nếu bạn phát hành phần mềm miễn phí thì bạn cũng chẳng làm thế giới tốt đẹp hơn là bao. Đó là cách bạn nghĩ về xã hội, nhưng mỗi người trong xã hội có một mối quan tâm riêng và có sự lựa chọn cho mình, và đừng bắt người khác “mang nợ” bạn vì bạn quyết định không bán phần mềm của mình.

Còn hack để kiếm tiền hay phục vụ mục đích của người khác thì luôn luôn sai. Cái đó không cần bàn cãi, và nếu ai nghĩ rằng mình hoành tráng vì có thể hack thì đó là người không chỉ không có khả năng, nghiệp dư, trẻ con mà còn là một người độc hại cho cuộc sống.

Các điểm trên đây đều không cái nào dễ làm trong ngày một ngày hai, không dễ thay đổi trong ngày một ngày hai và đó chính là lý do mình viết bài này: Nếu mình biết trước thì đã dễ dàng tiết kiệm được rất nhiều năm rồi. Nhưng mình hy vọng là ai đọc thì may ra có thể tiết kiệm được vài năm không như mình chăng.

Nguồn: Huan Truong

“Mẹo bỏ túi” cho dân coder mới vào nghề

topdev-lập-trình

Lập trình là một công việc khó nhằn và có những đặc thù riêng. Để dễ dàng hơn trong các thao tác, mình chia sẻ một số tips dành cho coder như sau: 

1. Phím tắt 

Khi coding, cần phải sử dụng bàn phím rất nhiều, và việc nhớ các phím tắt rất cần thiết, giúp tăng hiệu quả khi coding và tăng tốc độ làm việc. Hãy cố gắng luyện tập sử dụng bàn phím nhiều nhất có thể để nhớ được các phím tắt và tránh sử dụng chuột. Điều này có thể chưa cần thiết vào lúc này, nhưng khi bạn xây dựng một dự án và phải thêm, chỉnh sửa và xóa nhiều dòng code trên một dự án với hàng trăm dòng code, thì việc sử dụng phím tắt cực kỳ hữu dụng. 

2. Độ thụt dòng 

Lỗi thụt dòng trong Python có thể làm ngắt chương trình hoàn toàn. Mặc dù các ngôn ngữ khác không bị tình trạng như vậy, nhưng bạn nên check kỹ để nâng cao khả năng đọc bao quát. 

3. Quy ước đặt tên 

Các bạn nên đặt tên functions bằng động từ và tham biến bằng danh từ. Lý do cho việc đặt tên này đó là functions biểu thị hành động và lấy động từ miêu tả cho hành động là logic. Mặt khác, danh từ được sử dụng để nhận diện người, sự vật và nơi chốn. 

Sẽ tốt hơn nếu bạn có tên đầy đủ cho các chức năng và tham biến, điều này giúp bạn hiểu được bạn đang làm gì. Vì vậy, bạn nên ngừng lười biếng và rút ngắn tên các chức năng và tham biến (ví dụ như auth thay vì authentication), trong tương lai nó sẽ đỡ gây phiền phức hơn cho bạn. 

Tham khảo việc làm Docker hấp dẫn tại TopDev

4. Chú thích

Nên để lại chú thích bên cạnh những dòng code, điều này sẽ cải thiện khả năng đọc và giúp bạn duy trì dòng code ở các giai đoạn sau. Thống nhất cách chú thích và đặt tên chức năng/ tham biến, điều này sẽ khiến bạn giảm stress và ít tốn thời gian vì bạn sẽ không phải mất thêm thời gian để sửa code. 

5. Tính nhất quán

Có nhiều quy định mà các lập trình viên phải tuân theo để duy trì sự nhất quán trong/trên toàn bộ dự án. Bạn có thể xây dựng những quy tắc riêng miễn là các quy tắc đó nhất quán. Dưới đây là một số khuyến nghị của tôi: 

  • Đặt tên files/ hình ảnh – kebab-casing
  • Đặt tên đối tượng – PascalCasing
  • Đặt tên chức năng/ tham biến – camelCasing

LỜI KHUYÊN BỔ SUNG 

Bạn có thể học hỏi thêm kinh nghiệm coding ở Github để thấy cách họ viết code và và chính mình cải thiện khả năng viết code. Tìm kiếm thêm các tài liệu về code, tệp, độ thụt dòng, vv…

1. Username

Bạn nên sử dụng username giống nhau ở mọi nơi bạn sign-up, điều này cho phép người khác dễ dàng tìm kiếm và nhận ra bạn ở các platform khác nhau. Một vài gợi ý cho developer: 

  • Github 
  • Twitter
  • Stack Overflow 
  • Dev 
  • Medium 
  • Envato

2. Trình duyệt web 

Internet là một không gian mở và đa dạng, nếu mà nói không bị xao nhãng bởi Internet thì là điều không thể, đó là lý do vì sao trong khi lập trình cho dù bạn đang học hay đang làm việc nên chia trình duyệt ra làm 2 phần: lập trình và cá nhân. Ví dụ: sử dụng Chrome cho các mục đích liên quan đến lập trình và Firefox cho mua hàng trên Amazon, redditing, 9gaging và bất cứ điều gì làm bạn thích thú. Điều này sẽ giúp bạn tập trung và không mở các website khác khiến bạn phân tâm trong việc học và công việc. 

Hầu hết những khuyến nghị/ lời khuyên trên là ý kiến cá nhân được tổng hợp thông qua kinh nghiệm bản thân và lập trình viên làm việc với các công cụ khác nhau dưới điều kiện khác nhau có thể có các ý kiến khác nhau. Anh em có kinh nghiệm vào chia sẻ thêm với TopDev nhé! 

Xem thêm:

Xem thêm Việc làm Developer hấp dẫn trên TopDev

Vietnam Web Summit – Trí tuệ nhân tạo ngòi nổ cho sự tăng trưởng vượt bậc

Ngày hội lớn nhất về công nghệ lớn nhất về web và digital marketing – Vietnam Web Summit 20 đã chính thức trở lại với cộng đồng đam mê công nghệ tại TP.HCM vào sáng ngày 6/12. Sự kiện năm nay có sự tham gia của nhiều diễn giả kinh nghiệm lẫn đại diện các tập đoàn lớn trên thế giới cũng như Việt Nam, những cái tên như Google, Lazada, Grab, Axon, Appier, và FPT…đã hâm nóng hàng ngàn khán giả, tạo nên những phút giây bùng nổ bằng nhiều nội dung độc quyền hấp dẫn, mở ra nhiều ý tưởng đột phá.

Hơn 3500+ lượt khách tham dự đã đến check-in chỉ trong buổi sáng ngày 6 tháng 12 tại TP.HCM

Được biết, sự kiện Vietnam Web Summit năm nay đã đón chào hơn 5.000 khán giả tại TPHCM đến tham dự. Đây cũng được xem là một sự kiện được cộng đồng công nghệ mong chờ nhất vào dịp cuối năm, sự kiện đã đem đến cho toàn thể khán giả TPHCM hơn 100 nội dung độc quyền và đặc sắc nhất trên thị trường Tech. Sự kiện sẽ tiếp tục diễn ra vào ngày 13/12 tại Hà Nội.

Việt Nam chuyển mình trong thời đại Digital Transformation

Ba từ khóa được đề cập đến nhiều nhất trong sự kiện năm nay vẫn là: Digital Transformation (chuyển đổi số), AI (trí thông minh nhân tạo, ứng dụng trong tài chính, bán lẻ, quảng cáo xử lý hành vi tiêu dùng) và Data Driven (tối ưu hóa và tận dụng những lợi thế từ các thiết bị khác nhau). Các báo cáo và số liệu chỉ ra nhiều xu hướng và cơ hội cho các doanh nghiệp tại Việt Nam nói riêng và Đông Nam Á nói chung. Theo báo cáo của Ngân hàng Merrill Lynch (Mỹ), giá trị thị trường công nghệ AI sẽ đạt 70 tỷ USD vào năm 2020, tương đương với mức tăng trưởng 36% mỗi năm. Những công nghệ của “tương lai” đang âm thầm diễn ra và thay đổi cuộc sống chúng ta mỗi ngày.

Diễn giả Boice Lin – Regional VP, Business Development Appier – Với chủ đề về AI-powered personalization.

Thị trường công nghệ tại Việt Nam được nhiều chuyên gia nhận định là khá giống với bối cảnh của một số thị trường lớn tại Đông Nam Á như Indonesia trong khoảng 5 năm gần đây. Tuy nhiên, vẫn còn một số khó khăn như việc làm sao để những nguồn vốn đầu tư có thể tiếp cận được với hàng ngàn các doanh nghiệp công nghệ lớn nhỏ tại Việt Nam, hiện có đến 90% trong số các startup này chưa nhận được nguồn vốn cần thiết từ các quỹ đầu tư chính thức cho giai đoạn phát triển của mình, đặc biệt là các startup đang phát triển các công nghệ về AI.

Việc số hoá doanh nghiệp là một trong những ưu tiên hàng đầu, ứng dụng phân tích dữ liệu nhằm đưa ra các chiến lược mang tính quyết định. Các chuyên gia dự đoán, đây là một trong những hướng đi mà các doanh nghiệp tại Việt Nam cần chú ý đến trong thời gian tới nếu muốn vươn xa hơn đến các thị trường quốc tế. Cụ thể hơn, việc tiếp cận người dùng và khách hàng hiện nay cần ứng dụng của Programmatic Marketing, vận dụng AI vào việc cá nhân hóa ngữ cảnh và cách hiện thị các quảng cáo đến người dùng.

Chị Nguyễn Hoài Trang – Associate Director – Kantar Vietnam nói về những phương thức giúp các digital marketer có thể thu hút được sự chú ý của các khách hàng tìm năng trong thời đại số.

Từ những thay đổi tích cực này, chuyển đổi số sẽ là chiếc chìa khóa quyết định tính sống còn của doanh nghiệp trong những năm sắp tới. Dù được đánh giá là một trong những đất nước triển khai số hóa doanh nghiệp khá muộn trong khu vực, nhưng nhiều chuyên gia quốc tế nhận định rằng, Việt Nam sẽ có những bước tiến vượt bậc trong việc nâng tầm doanh nghiệp cũng như thúc đẩy nhanh quá trình đưa những sản phẩm mang tầm quốc tế ra thị trường thế giới trong một tương lai không xa. Thị trường AI tại Việt Nam cũng đã đạt được sự chính mùi nhất định. Ông Vito Sabella – Vice President of Software Engineering của AXON Việt Nam nhận định rằng:

“Các kỹ sư và lập trình viên tại Việt Nam chưa bao giờ làm tôi hết bất ngờ. Từ thủ đô Hà Nội đến thành phố Hồ Chí Minh, tôi nhận thấy các bạn đều có nền tảng rất tốt về toán học và khoa học cơ bản, và điều đó là vô cùng quan trọng khi bạn bắt tay vào thiết kế các hệ thống AI và phần mềm phức tạp và độ chính xác cao. Lập trình viên Việt Nam có nền tảng để trở thành những chuyên gia AI hàng đầu Đông Nam Á.”

Ông Vito Sabella – Vice President of Software Engineering tại AXON chia sẻ những kinh nghiệm “xương máu” trong sự nghiệp phát triển phần mềm của mình

Các doanh nghiệp công nghệ tại Việt Nam sẽ chuẩn bị gì cho những cơ hội mới đang được mở ra trong năm 2022?

Ở thời điểm hiện tại, chính phủ Việt Nam đã ban hành nhiều chính sách với ưu đãi cho các doanh nghiệp khởi nghiệp lĩnh vực khoa học công nghệ, gửi gắm vào trong đó sự kỳ vọng “tăng tốc” và bứt phá của cộng đồng startup đặc biệt là ở những lĩnh vực liên quan đến AI và Machine Learning. Việt Nam sẽ chứng kiến sự xuất hiện của hàng loạt những kỳ lân mới. Cuộc chơi AI không chỉ còn là cuộc chơi của những ông lớn, các doanh nghiệp startup cũng đang dần khẳng định mình bằng những sản phẩm không hề thua kém.

Diễn giả Damien Velly – Data Architect tại KMS Technology – một trong những công ty công nghệ hàng đầu tại Việt Nam

CEO TopDev Nguyễn Hữu Bình – đại diện ban tổ chức sự kiện Vietnam Web Summit 2019 cho biết, điểm đáng chú ý nhất chính là việc Việt Nam đã chính thức có kỳ lân startup mới – VNPay, sau khi đơn vị này nhận được 300 triệu USD đầu tư, đặc biệt là trong lĩnh vực Fintech. Startup kỳ lân được hiểu là những công ty khởi nghiệp tư nhân lớn mạnh với mức định giá từ 1 tỷ USD trở lên.

“Việc này rất có ý nghĩa. Bởi lẽ, sau đợt các startup về trí tuệ nhân tạo – AI được đầu tư lớn như Cinnamon (9 triệu USD), Logivan (5,5 triệu USD), ELSA (7 triệu USD) lập tức đã gây áp lực lên lực lượng nhân sự AI do nhận thức về việc phải ứng dụng AI của các startup và doanh nghiệp trở nên nở rộ”, ông Nguyễn Hữu Bình đánh giá.

lazada-vietnamwebsummitIlya Isaev – Head of Transportation tại Lazada chia sẻ về những công nghệ hiện đang ứng dụng tại một trong những nền tảng thương mại điện tử lớn nhất Đông Nam Á.

Nhiều chuyên gia cho rằng, không chỉ chờ đợi chính sách phát triển của quốc gia, mà các công ty cần phải đầu tư cho nghiên cứu, phát triển sản phẩm sử dụng trí tuệ nhân tạo ngay từ bây giờ để có được lợi thế về lâu dài. Gặp gỡ và hợp tác với những doanh nghiệp đang phát triển trong lĩnh vực này, là một trong những lựa chọn hàng đầu giúp các doanh nghiệp có thể bắt kịp xu hướng AI đang bùng nổ trên toàn thế giới.

VIETNAM WEB SUMMIT sẽ tiếp tục diễn ra tại Hà Nội vào ngày 13/12 mang đến hơn 100 chuyên đề hấp dẫn xoay quanh 6 nhóm chủ đề chính:

  • Digital Transformation: Survive and Thrive – Cách mạng số và những bước ngoặt lịch sử.
  • Beyond Digital Marketing: Humanize Customer Experiences – “Người hóa” trải nghiệm khách hàng thời đại số.
  • AI-Powered Future: Data drive product – Trí tuệ nhân tạo vận hành thế giới.
  • Operations in a ‘Serverless’ World – Vận hành doanh nghiệp trong thời đại serverless
  • Cloud-based & Intelligence-driven Cybersecurity – An ninh mạng và những giải pháp của thời đại mới.
  • The new era of web development – Kỷ nguyên mới của công nghệ phát triển web
  • THÔNG TIN CHI TIẾT VÀ ĐĂNG KÝ: http://vietnamwebsummit.com/ve-tham-du/

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

Code Challenge #5 – Đấu trường thuật toán nâng tầm kỹ năng!

Đã bao lâu rồi bạn chưa thử sức với lập trình thuật toán, tư duy logic và giải quyết vấn đề?
Code Tour là sân chơi online dành cho các bạn đam mê thuật toán do TopDev & VNG tổ chức dưới sự bảo trợ chuyên môn của BigO Coding. 
Đây chắc chắn là cơ hội rèn luyện kĩ năng và thử thách bản thân, đồng thời kết nối cộng đồng coder bất kể vùng miền. Code Tour 2019 gồm 5 Code Challenge định kỳ hàng tháng (từ tháng 8/2019 đến 12/2019). Bạn chỉ cần 2 tiếng online cùng chiếc laptop của mình, còn lại hãy để BTC lo!

Coding tại nhà, “rinh” giải giá trị – Tham gia ngay CODE TOUR 2019!

Code Challenge #5 diễn ra lúc 18:30 – 20:30 ngày 21/12/2019 (Thứ Bảy) sẽ mang đến cho coder trải nghiệm mới khi phân chia 2 phòng thi có độ khó và giải thưởng khác nhau: Nâng cao O(1) và Cơ bản O(n).

Nếu như O(n) là nơi để coder cọ xát và giảm áp lực thứ hạng thì O(1) lại là chốn hội tụ cao thủ với Top 20 coder có điểm cao nhất Code Challenge #3, cộng thêm 30 suất dành cho coder đủ điều kiện:

+ Đã tham gia thi ít nhất 01 Code Challenge trước đó.
+ Điểm 1 vòng thi bất kỳ trên 10.

Room O(1): Nâng cao và Room O(n): Cơ bản vẫn tiếp tục là 2 đấu trường song song của chặng thi tháng 12 này!
Giải thưởng hấp dẫn gồm có:
Phòng O(1) – có giới hạn số lượng thí sinh:
✦ 1 Giải Nhất (2.000.000 VND)
✦ 1 Giải Nhì (1.500.000 VND )
✦ 1 Giải Ba (1.000.000 VND)
✦ 2 Giải Khuyến khích nhận được quà từ VNG.
✦ 1 Giải Nhất (1.000.000 VND)
✦ 1 Giải Nhì (700.000 VND )
✦ 1 Giải Ba (500.000 VND)
✦ 2 Giải Khuyến khích nhận được quà từ VNG.

Dù là bạn đã quen thuộc hay mới biết đến Code Tour 2019 thì càng không thể bỏ qua “đặc quyền” mà BTC gửi gắm nhé:

Khoảng cách địa lý không còn là vấn đề, quy mô tổ chức được mở rộng cùng những phần quà hấp dẫn dành cho Top 17 coder xuất sắc tại mỗi Code Challenge. Như vậy đã đủ hấp dẫn bạn tham gia Code Tour 2019?

Nhanh tay đăng ký tại website www.codetour.vn bạn nhé!!!

===========

Thông tin Code Challenge #5:

Tất cả những thủ thuật Google Search mà bạn cần biết

Kỹ năng tìm kiếm dành cho lập trình viên – Search Google cũng phải có kỹ năng xịn. Tất cả cách Google Search chỉ dành cho những thứ được chia sẻ công khai. Các bạn có thể tham khảo những cách google search hay nhất trên google mà không phải ai cũng biết được

Cách tìm và tải xuống bất kỳ bộ phim nào bạn muốn

Cách 1: Vào google và gõ dòng lệnh sau:

index of Movie name (Trong đó Movie name là tên bộ phim bạn muốn tải)

Ví dụ: Mình muốn tìm và tải Joker thì trên google bạn gõ như sau:
index of Joker

(sau đó chọn ngay link đầu tiên hoặc t2…. và sau đó nó sẽ hiện 1 danh sách link phim để bạn chọn và tải xuống)

Nếu không thấy thì làm tiếp cách 2

Cách 2: Vào google và gõ dòng lệnh sau:

Movie name -inurl:(htm|html|php|pls|txt) intitle:index.of “last modified” (mp4|wma|aac|avi)

(Trong đó Movie name là tên bộ phim bạn muốn tải)

Ví dụ: Mình muốn tìm và tải Joker thì trên google bạn gõ như sau:

Joker -inurl:(htm|html|php|pls|txt) intitle:index.of “last modified” (mp4|wma|aac|avi)

Sau đó nhấp vào liên kết đầu tiên/thứ 2…bạn sẽ thấy được danh sách bộ phim kèm với đó là dung lượng cũng như chất lượng mà bạn muốn tải.

Cách tìm và xem bất kỳ bộ phim nào bạn muốn với chất lượng cao nhất và không quảng cảo

Vào google và gõ dòng lệnh sau:

[Tên phim bạn muốn tìm] 1080p mkv site:drive.google.com

Trong đó 1080p là chất lượng phim, bạn có thể tùy chọn chất lượng khác.
Vd: Mình muốn tìm phim Avengers thì trên google gõ như sau:
Avengers 1080p mkv site:drive.google.com
Bạn cũng có thể tải phim bằng cách này

Cách tìm bất kỳ cuốn ebook nào với google

Vào google và gõ dòng lệnh sau:

-inurl:htm -inurl:html intitle:”index of” +(“/ebooks”|”/book”) +(chm|pdf|zip) +” BookName”

hoặc:

-inurl:htm -inurl:html intitle:“index of” +(“/ebooks”|”/book”) +(chm|pdf|zip| *epub* ) +” BookName”

Thay BookName bằng tên ebook các bạn cần tìm:
Vd: mình cần tìm cuốn “handbook of statistics on indian economy”
Thì trên google các bạn sẽ gõ như sau:

-inurl:htm -inurl:html intitle:”index of” +(“/ebooks”|”/book”) +(chm|pdf|zip) +”handbook of statistics on indian economy”

hoặc:

-inurl:htm -inurl:html intitle:“index of” +(“/ebooks”|”/book”) +(chm|pdf|zip| *epub* ) +”handbook of statistics on indian economy”

Kết quả sẽ trả về các file định dạng epub, pdf,zip,chm nếu có.

Tìm một vài thứ khác

  • Hình ảnh: (https://images.google.com/)
  • Tài liệu
Vào google gõ tên tài liệu bạn muốn + định dạng/folder + site:”tên trang web” (dễ tìm nhất vẫn là drive.google.com)
Ví dụ: Mình muốn tìm truyện conan thì trên google gõ như sau:
Đối với định dạng bất kỳ (pdf/epub/ppt..)

Conan pdf/epub/ppt site:drive.google.com

Đôi với thư mục (folder) thì gõ:

Conan folder site:drive.google.com

  • Và đơn giản nhất thì chỉ cần gõ [Tên cái cần tìm] + site:”trang bạn muốn tìm”
Đó là tất cả những thủ thuật hay về tìm kiếm Google dành cho các bạn lập trình viên. Hẹn gặp lại các bạn trong các series kỳ sau.

TopDev via Ruanyu Jian J2TEAM

 

9 tuyệt kỹ “hack” JavaScript mà bạn nên biết

9-tuyet-ky-hack-javascript-ma-ban-nen-biet

JavaScript – Hẳn anh em nào cũng thích việc tối ưu hóa sản phẩm. Nhưng người dùng không quan tâm đến code có được tối ưu hóa hay không, mà họ chỉ quan tâm trang web có chạy được trên Internet Explorer 11 hay không.

Thế nên tôi đã sử dụng Endtest để tạo các bài test tự động và cho chúng test chéo trên đám mây trình duyệt (cross-browser cloud).

Netflix cũng sử dụng nền tảng tương tự để kiểm tra các ứng dụng web của họ.

Nó thậm chí còn được liệt kê trong danh sách kỹ năng yêu cầu của các vị trí.

Endtest có một số tính năng thực sự hay, chẳng hạn như:
• Lưới trình duyệt chéo, chạy thử trên Windows và macOS
• Chế độ Codeless Editor cho các bài test tự động
• Hỗ trợ cho các ứng dụng web
• Hỗ trợ cho cả ứng dụng Android, iOS native và hybrid
• Quay lại video cho các lần chạy thử của bạn không giới hạn
• So sánh ảnh chụp màn hình
• Geolocation (Định vị)
If Statements (Câu lệnh if)
• Loops (Vòng lặp)
• Cho phép upload file trong bài test của bạn
API Endtest, dễ dàng tích hợp với hệ thống CI/CD của bạn
• Advanced Assertions
• Thực hiện mobile test trên các thiết bị di động thực
• Thực hiện email test với hộp thư của Endtest

1. Replace All

Chúng ta biết rằng hàm string.replace() chỉ thay thế lần xuất hiện đầu tiên. Bạn có thể thay thế tất cả các lần xuất hiện khác bằng cách thêm /g vào cuối regex.

var example = "potato potato";
console.log(example.replace(/pot/, "tom")); 
// "tomato potato"
console.log(example.replace(/pot/g, "tom")); 
// "tomato tomato"

Như vậy sẽ tiết kiệm thời gian hơn.

2. Extract Unique Values

Chúng ta có thể tạo một mảng mới với các giá trị duy nhất bằng cách sử dụng đối tượng Set và toán tử Spread.

var entries = [1, 2, 2, 3, 4, 5, 6, 6, 7, 7, 8, 4, 2, 1]
var unique_entries = [...new Set(entries)];
console.log(unique_entries);
// [1, 2, 3, 4, 5, 6, 7, 8]

Tham khảo các việc làm Javascript không yêu cầu KN cho bạn tại đây

3. Convert number to string

Chúng ta chỉ cần sử dụng toán tử ghép (concatenation) với một bộ dấu ngoặc kép trống.

var converted_number = 5 + "";
console.log(converted_number);
// 5
console.log(typeof converted_number); 
// string

4. Convert string to number

Tất cả những gì chúng ta cần là toán tử “+”. Hãy cẩn thận với cái này vì nó chỉ hoạt động với ‘string numbers’.

the_string = "123";
console.log(+the_string);
// 123

the_string = "hello";
console.log(+the_string);
// NaN

5. Shuffle elements from array

Every day I’m shufflin’

var my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(my_list.sort(function() {
    return Math.random() - 0.5
})); 
// [4, 8, 2, 9, 1, 3, 6, 5, 7]

6. Flatten multidimensional array

Đơn giản chỉ là sử dụng toán tử Spread.

var entries = [1, [2, 5], [6, 7], 9];
var flat_entries = [].concat(...entries); 
// [1, 2, 5, 6, 7, 9]

7. Short Circuit Conditionals

Hãy xem qua ví dụ này là bạn hiểu ngay:

if (available) {
    addToCart();
}

Và rút ngắn nó bằng cách sử dụng biến cùng với hàm:

available && addToCart()

8. Dynamic Property Names

Tôi luôn nghĩ rằng trước tiên tôi phải khai báo một object trước khi có thể gán một thuộc tính dynamic vào.

const dynamic = 'flavour';
var item = {
    name: 'Coke',
    [dynamic]: 'Cherry'
}
console.log(item); 
// { name: "Coke", flavour: "Cherry" }

9. Use length to resize/empty an array

Đôi điều cơ bản về việc ghi đè lên độ dài của mảng.

Nếu chúng tôi muốn thay đổi kích thước mảng:

var entries = [1, 2, 3, 4, 5, 6, 7];  
console.log(entries.length); 
// 7  
entries.length = 4;  
console.log(entries.length); 
// 4  
console.log(entries); 
// [1, 2, 3, 4]

Nếu bạn muốn làm trống mảng:

var entries = [1, 2, 3, 4, 5, 6, 7]; 
console.log(entries.length); 
// 7  
entries.length = 0;   
console.log(entries.length); 
// 0 
console.log(entries); 
// []

Tôi nghĩ thật tuyệt khi bạn biết những chiêu “hack” JavaScript này, nhưng bạn nếu không chắc ứng dụng web của bạn hoạt động chính xác trên tất cả các trình duyệt và thiết bị.

Bạn có thể sử dụng Endtest để nhanh chóng tạo các bài test tự động và thực hiện chúng trên cross-browser cloud.

Bạn thậm chí không phải viết code để sử dụng nó.

Bài viết gốc được đăng tải tại dev.to

Tham khảo các vị trí tuyển dụng ngành cntt tại Topdev

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