Home Blog Page 213

5 cách mà Deep Learning ảnh hưởng đến cuộc sống của bạn

Bạn có kế hoạch Netflix & Chill cuối tuần này? Thực chất phim bạn chọn sẽ bị ảnh hưởng nhiều bởi thuật toán tinh vi của Netflix. Tương tự, các quyết định nơi bạn chọn đi ăn tối hay những quần áo sẽ mặc đang ngày càng bị ảnh hưởng bởi các công nghệ tiên đoán dựa vào deep learning.

Dưới đây là 5 cách mà các công ty công nghệ phổ biến Netflix, Yelp, Yahoo, Stitch Fix, Google cải thiện trải nghiệm online của bạn với trí tuệ nhân tạo (AI).

Netflix tự động cá nhân hoá Layouts và Movie Thumbnails

Trong lịch sử, xem truyền hình là một kênh truyền thông uni-directional. Bạn xem được nôi dung, nhưng nó không phản hồi lại bất kỳ thông tin gì với nhà sản xuất. Với kĩ thuật số trực tuyến, history của bạn, click chuột và các cụm tự tìm kiếm đều được Netflix ghi nhận để tìm hiểu các lựa chọn của bạn và cung cấp nội dung có liên quan hơn.

Trong năm 2009, Netflix đã trao tặng 1 triệu USD trong cuộc thi mở cho các đội lập trình bên ngoài để cải thiện hệ thống dự báo của công ty. Đội chiến thắng đánh bại thuật toán ban đầu trên 10%.

Kể từ đó, việc giới thiệu các thuật toán machine learning nâng cao hơn giúp cho Netflix đạt được cấp độ mới về dự đoán và cá nhân hoá trên ranking, layout, catalog, new member onboarding, và nhiều hơn nữa. Tony Jebara, Giám đốc của Netflix, Giáo sư khoa học máy tính tại Columbia, giải thích tại hội thảo Deep Learning Summit của REWORK tại San Francisco cách Netflix không chỉ recommend phim tốt hơn, mà còn đưa ra hình ảnh thumbnails tốt hơn cho từng cá nhân.

Netflix Thumbnails Tony Jebara

Theo truyền thống, tối ưu hoá hình ảnh trên trang web ảnh hưởng bởi việc A/B testing hai lựa chọn trong một khoảng thời gian. Vấn đề với phương pháp này là bạn phải đau đớn chờ đợi trước khi có được quyết định tối ưu. Trong giai đoạn này, các đối tượng của bạn sẽ gặp các biến sub-optimal. Tổn thất này của quá trình thử được gọi là “regret”.

Netflix Regret Tony Jebara

Để giảm thiểu regret, Netflix sử dụng các thử nghiệm như mô hình multi-arm bandit. Các models có thể thay đổi lưu lượng truy cập đến quảng cáo tốt nhất và làm giảm thiểu regret.

Điều quan trọng là sự “tốt hơn” khác nhau đối với mỗi người khác nhau, Netflix sẽ đưa vào tài khoản cá nhân của bạn những hoạt động của bạn để khai thác theo từng cá nhân/ tận dụng khả năng tối ưu. Nếu bạn thường xuyên xem phim hài, họ sẽ sử dụng Robin Williams cho trang bìa của Good Will Hunting. Nếu bạn thích phim tình cảm lãng mạn, họ sẽ dùng ảnh Matt Damon hôn Minnie Driver để thay thế.

YELP hình ảnh đẹp nhất cho bất kỳ địa điểm nào

Một bức ảnh đẹp hơn cả ngàn lời nói. Khi bạn đang muốn chọn một chỗ lãng mạn để gây ấn tượng với ngày hẹn hò của mình, bạn sẽ muốn biết về việc sắp đặt món ăn và không khí phù hợp tâm trạng. Để giúp bạn lựa chọn được đúng nhà hàng, Alex Millers và nhóm của mình tại YELP đã dùng thuật toán deep learning để làm nổi bật hình ảnh tốt nhất của người dùng.

Trong khi các số liệu như lượt like và click có thể đánh giá hữu ích các hình ảnh, họ cũng có thể bị ảnh hưởng bởi clickbait và happenstance. Một giải pháp tốt hơn sẽ là đánh giá hình ảnh dựa trên nội dung vốn có và đặc tính – sâu hơn về field, contrast và alignment, nhưng với 25 triệu MAU (monthly active users) tải lên Yelp hàng nghìn bức ảnh mỗi ngày, sẽ không đủ nhân viên để thẩm định.

Tại Startup Machine Learning conference diễn ra tại San Francisco, Miller miêu tả làm thế nào mà team của mình sử dụng CNNs (convolutional neural networks) để xây dựng một model ghi nhận hình ảnh. Một proxy tốt cho hình ảnh đẹp thì có hay không việc chụp bằng DSLR, có thể được nhận ra dễ dàng bằng cách kiểm tra metadata EXIF của hình ảnh.

Team của Miller đã tận dụng fact này để tạo ra khả năng mở rộng, đào tạo bộ dữ liệu bằng cách sử dụng hình ảnh DSLR là một ví dụ tích cực, và không DSLR là một vì dụ tiêu cực. Thuật toán Deep Learning học được những tính chất tốt của hình ảnh từ thiết lập dữ liệu đào tạo và áp dụng cho tất cả các ảnh, cho dù có DSLR hay không.

Bên cạnh chất lượng điểm ảnh, team cũng thêm vào các bộ lọc và đa dạng hoá logic, vì vậy một nhà hàng nổi tiếng với các món ăn hoặc features đặc biệt sẽ không có hình ảnh của họ trong top 10 hình ảnh cùng chủ đề.

Yelp Alex Miller

Các kết quả trả về:

Yelp Alex Miller

Bạn có thể đọc thêm về quy trình kỹ thuật của Miller tại Yelp engineering blog.

YAHOO đảm bảo bạn chọn emoji tốt nhất cho mỗi tình huống

Với các texters lười biếng, emojis là cách dễ nhất để nói ít hiểu nhiều. Nhưng với hơn 1800 emojis, bạn có chắc chắn được một lựa chọn hoàn hảo cho những gì bạn muốn nói không?  

Đây là vấn đề của Stacey Svetlichnaya, một nhân viên kĩ thuật machine learning tại YAhoo, phải giải quyết. Khi người dùng soạn hoặc trả lời một tin nhắn, emojis nào nên xuất hiện trong đề xuất tự động? Lý tưởng nhất, bạn có thể chọn 5 emojis thường hay dùng nhất, người dùng có thể chọn.

Yahoo Emoji Yahoo Emoji Stacey Svetlichnaya

Sử dụng emojis rất năng động. Một số sử dụng để thay thế từ ngữ, một số sử dụng thể hiện cảm xúc, và một văn hoá sử dụng kì lạ. Ví dụ: Emoji con dê thường được sử dụng với ý nghĩa “Vĩ đại nhất mọi thời đại”.

Yahoo Emoji Yahoo Emoji Stacey Svetlichnaya

Một thách thức nữa là các biểu tượng khác nhau trên các platforms khác nhau, dẫn đến hiểu nhầm.

Yahoo Emoji Yahoo Emoji Stacey Svetlichnaya

Svetlichnaya và Yahoo Vision & Machine Learning team kiểm tra ba cách tiếp cận khác nhau: 1) FastText: một sự phân loại fast linear, 2) LTSM: một loại kiến trúc neural network và 3) WordCNN: một cách tiếp cận net approach cân bằng giữa hiệu xuất và tính phức tạp. Trong 3 cách, không ngạc nhiên với FastText chiến thắng về tốc độ nhưng người ta ưa thích các kết quả của LTSM hơn.

Yahoo không phải công ty duy nhất áp dụng machine learning cho các biểu tượng cảm xúc. Quay lại năm 2015, kỹ sư Instagram đã xuất bản một series hấp dẫn bởi kĩ sư Thomas Dimson gọi là “Emojineering: Machine Learning for emojis”

STITCH FIX nhanh chóng tìm kiếm cho bạn thời trang hoàn hảo

Trở nên fashinable rất khó, nhưng Stitch Fix đã làm nó trở nên dễ dàng. Startup về phong cách cá nhân (personal style) cho phép bạn cá nhân hoá các style profile của bạn và nhận được quần áo và phụ kiện được gửi đến tận nhà hàng tháng.

Xác định phong cách là một khái niệm mơ hồ. Sau tất cả, làm sao bạn có thể nói đến một chiếc áo sơ mi cụ thể là “urban boho chic” hay một chiếc váy là “gợi cảm nhưng không quá slutty”? Christopher Moody có một vài ý tưởng.

Stitchfix Christopher Moody

Moody là một Data Scientist tại Stitch Fix với background là statistics, astrophysics, và high-performance computing. Hoá ra những kĩ năng này đang làm nhu cầu trong thế giới thời trang.

Nhiều models deep learning là một chiếc hộp đen nơi bạn không hiểu tại sao từ một thuật toán có thể đi đến một kết luận cụ thể. Nghiên cứu của Moody tập trung về việc cải tiến các models để các chuyên gia có thể đưa ra phản hồi về hiệu xuất tương đối  của các thuật toán.

Một phương pháp được sử dụng là t-SNE (t-distributed stochastic neighbor embedding), một phương pháp giảm kích thước để giúp hình dung các đối tượng tương tự. Phương pháp giảm kích thước làm giảm flatten dữ liệu thành 2-3 điểm được hiểu dễ dàng hơn.

Moody cũng là một fan hâm mộ lớn của phương pháp k-SVD. k-SVD là một thế hệ của phương pháp k-means clustering. Về high-level non-technical, phân nhóm dữ liệu có tính chất tương tự kết hợp với các đối tượng khác nhau. Một lần nữa, rõ ràng là phân cụm có thể giúp con người  có thể xác định được các đặc trưng thống nhất, thêm các thẻ phù hợp như “tank tops” hay “statement pieces”.

Stitchfix Christopher Moody

GOOGLE DỊCH phương pháp tiếp cận con người

Trong tháng 9 năm 2016, Google Translate công bố họ đã thay thế phương pháp cũ với kiến trúc neural networks. Trước đây, Google Translate sở hữu một phương pháp thống kê gọi là phrase-based machine translation (PBMT)

Phương pháp PBMT thường tạo ra những câu ngữ pháp vụng về, đặc biệt nếu đầu vào và đầu ra khác biệt nhau nhiều trong ngôn ngữ của chúng. Chẳng hạn như Trung Quốc sang tiếng Anh. Để chỉnh sửa cho điều này cần bổ sung kỹ thuật phức tạp và nỗ lực nhiều hơn.

GOOGLE GNMT Translation Output

Hệ thống mới GNMT (Google Neural Machine Translation) sử dụng RNNs (recurrent neural networks) ánh xạ toàn bộ câu văn đầu vào của một ngôn ngữ thành một câu văn ở đầu ra của một ngôn ngữ khác. Điều này làm giảm sự phức tạp của các code trong khi vẫn duy trì tốc độ và cải thiện hiệu suất. Trong một số trường hợp như tiếng Pháp sang tiếng Anh, GNMT đã gần như là người dịch (human translation)

Google GNMT Performance

Nếu bạn muốn hiểu sự phát triển kĩ thuật của GNMT và làm thế nào team Google có thể lặp đi lặp lại cải tiến về thiết kế và hiệu suất, đọc Stephen Merity’s visual guide về quá trình này.

Kết luận

Nhiều người tiêu dùng không nhận ra việc trí tuệ nhân tạo cải thiện đáng kể cuộc sống của mình trong các sản phẩm kĩ thuật số. Mô hình thống kê truyền thống dự đoán kinh nghiệm tối ưu được nâng cao đáng kể bởi cách đột phá gần đây trong Big Data, Computational Power, Deep neural networks. Và ngày sẽ có nhiều công ty sử dụng các phương pháp này để tồn tại và cạnh tranh.

Nguồn: topbots.com

67 tools, libraries và resources giúp Web developer “dễ thở” hơn

Trong bài viết này, tôi sẽ không nói về các font end frameworks khủng như React, Angular, Vue etc… Hay các code editor vốn đã nổi tiếng như Atom, VS Code Sublime….mà chỉ đơn giản là một list các tools mà tôi thấy khá hữu dụng trong việc tiết kiệm thời gian khi bạn lập trình.

Điều hiển nhiên là bạn sẽ có thể đã biết hay từng dùng qua vài tool trong danh sách này vì thế mà list này rất thích hợp dành cho các bạn web developer mới vào nghề và cần học hỏi thêm.

Để cho dễ nhìn cũng như theo dõi, tôi sẽ sắp xếp các tool và chia chúng thành từng nhóm khác nhau.

Javascript libraries

Particles.js — Một library để tạo ra các special effect – hạt nổi lơ lửng trên trang web

Three.js —  Library dùng để tạo ra 3d objects và spaces trên web page

Typed.js — Typewriter effect

Waypoints.js — Kích hoạt một function khi bạn scroll một thứ bất kì

Highlight.js— Syntax highlighting for the web

Chart.js — Tạo ra các biểu đồ cực đẹp với javascript

Instantclick —  Giảm thời gian load time của website nhờ vào việc preloading resource.

Chartist — Một library khác về biểu đồ cực đẹp.

Motio —một library dành cho sprite dựa trên animations và panning

Animstion — Jquery plugin cho css animated page transitions

Barba.js — Fluid page transitions

TwentyTwenty —một visual tool để tìm ra những thay đổi, khác biệt

Vivus.js — một library cho việc vẽ animation trên SVG

Wow.js—  Chạy animations khi bạn scroll

Scrolline.js —  Cho bạn biết mình đã scroll được bao nhiều, và khi nào thì hết page.

Velocity.js —  javascript animations nhưng rất nhanh và mượt mà

Animate on scroll — Cái tên nói lên tất cả

Handlebars.js — Javascript templating

jInvertScroll — Parallax scrolling

One page scroll — Thư viện scrolling 1 trang

Parallax.js — Parallax Engine dành cho orientation của một thiết bị thông minh

Typeahead.js — Search completion

Dragdealer.js — Thư viện dragging

Bounce.js — Tạo các animations CSS3

Pagepiling.js — One page scroll

Multiscroll.js — Multi scroll một website, được chia thành các panels scroll theo chiều dọc

Favico.js — Dynamic favicons

Midnight.js — Switch fixed headers trên fly

Anime.js — Animation library

Keycode —  Lấy javascript keycode cho một button được nhấn

Sortable — Drag & drop

Flexdatalist — Autocomplete

Slideout.js — Slideout navigation menu cho mobile apps

Jquerymy —  data bindings 2 hướng sử dụng jquery

Cleave.js — Format content khi typing

Page — Client side routing cho single page applications

Selectize.js — Hybrid select box cho adding tags

Nice select — Jquery library để tao ra select boxes

Tether —  attach absolute positioned elements

Shepherd.js — Hướng dẫn users dùng app

Tooltip — Cái tên thể hiện tất cả

Select2 — Jquery replacement cho select boxes

IziToast — giúp việc dùng/tạo js notifications dễ dàng hơn

IziModal —  giúp việc dùng/tạo js modals dễ dàng hơn

CSS libraries / Design stuff

Animate.css — Animation library

Flat UI Colors — List các màu UI tiện lợi

Material design lite— Framework dựa trên Google’s material design

Colorrrs — Random color generator

Section separators — Css section dividers

Topcoat — Framework

Create ken burns effect — Ken burns effect sử dụng css3 animations

DynCSS — Thêm functions vào css, để khiến nó có ảnh hưởng hơn

Magic animations —  Quá dễ hiểu

CSSpin — Collection của css spinners

Feather icons — Icons

Ion icons — Icons

Font awesome — Icons

Font generator — Kết hợp nhiều fonts và tạo ra một mixture

On/Off switch —Tạo on/off switch trong css

UI Kit — Framework

Bootstrap — Framework

Foundation — Framework

Useful products / links

<head> cheatsheet —  list của mọi thứ có thể để vào trong <head> tag

Ghost — blogging platform dựa trên node.js

What runs — Chrome plugin để phân tích công nghệ được dùng trong một website.

Learn anything — mindmap dùng để phân tích một vật bất kì

Nguồn: topdev.vn via hackernoon

Kinh nghiệm phát triển sản phẩm chinh phục thị trường Châu Âu

Thị trường châu Âu và các nước phát triển luôn là những thị trường khó tính, với những hệ thống tiêu chuẩn cao, người dùng đòi hỏi những sản phẩm tốt nhất. Chính vì vậy, để phát triển sản phẩm thành công ở những thị trường này không chỉ đơn thuần là bài toán về công nghệ mà đó còn là việc ứng dụng công nghệ một cách thông minh để giải quyết vấn đề cốt lõi mà khách hàng đang gặp phải. Đi tìm lời giải cho nhưng vấn đề đó, chinh phục khách hàng khó tính đó là cả một hành trình dài nhiều gian truân nhưng cũng đầy thú vị.

Travel2Pay là một trong những Product thành công trong việc mang sản phẩm ra với thị trường châu Âu. Cùng lắng nghe những chia sẻ về quá trình phát triển sản phẩm, cũng như những kinh nghiệm trong quá trình làm sản phẩm từ anh Nguyễn Thế Dzung- CEO của Travel2Pay.

1. Anh có thể giới thiệu đôi nét về Travel2Pay cho cộng đồng lập trình viên được biết ?

Travel2Pay là công ty Product có vốn đầu từ nước ngoài (Đức), được thành lập từ năm 2013, Travel2Pay chuyên cung cấp giải pháp thanh toán toàn cầu cho các doanh nghiệp đa quốc gia có quy mô từ trung bình đến lớn ở các thị trường phát triển như châu Âu, Đức, Nhật Bản, và gần đây nhất là Trung Quốc

2. Xuất phát từ đâu anh có ý tưởng về một sản phẩm khá mới và lạ như vậy?

Ý tưởng phát triển sản phẩm đến từ ngài Chủ tịch hội đồng quản trị của công ty khi nhận thấy nhu cầu thực tế của một số công ty lớn trên thế giới về việc nhân viên của họ thường xuyên phải đi công tác ở trong và ngoài nước. Vấn đề lớn nhất mà các doanh nghiệp này gặp phải là giải quyết những bất tiện trong thu thập dữ liệu hóa đơn thanh toán khách sạn, vé tàu xe, tham gia hội nghị,…. Những thủ tục này thường tốn khá nhiều thời gian và gặp nhiều sai sót.

Không chỉ gây trở ngại với những người đi công tác, đối với bộ phận hành chính kế toán cũng rất vất vả khi phải xử lý số liệu lớn, phát hiện nhiều sai sót. Các sai sót đó có thể do khách quan hoặc chủ quan (có thể từ nơi phát hành hóa đơn, có thể là do nhân viên không tuân thủ các chính sách của công ty, v.v…), dù từ bất kì nguyên nhân nào thì những sai sót đó cũng phần nào gây khó khăn cho công ty.

Trước những vấn đề đặt ra đó, cộng với  sự kết nối tốt từ những nhà đầu tư của Travel2Pay với các đối tác: đặt phòng trực tuyến, cung cấp dịch vụ thanh toán, các công ty phát hành thẻ,…Travel2pay đã hình thành nên ý tưởng về 1 sản phẩm cung cấp các giải pháp mang lại lợi ích cho khách hàng – đối tác – và mang lại lợi ích cho chính mình.

Đó là giải pháp Win-Win-Win chứ không chỉ là giải pháp Win-Win.

3. Phát triển một sản phẩm quá mới như vậy thì Travel2Pay có gặp phải những khó khăn gì không?

Cũng như bất kỳ một sản phẩm nào mới tung ra thị trường, những ngày đầu đều gặp những khó khăn nhất định. Khi mới phát hành sản phẩm ra thị trường Travel2Pay cũng phải đối mặt với rất nhiều khó khăn, đặc biệt với 1 sản phẩm còn khá mới. Thách thức lớn nhất mà Travel2Pay phải đối mặt là làm sao để thị trường nhận biết được sản phẩm, và nhìn thấy được giá trị mà sản phẩm mang lại.

Hơn nữa với đặc thù sản phẩm mà Travel2Pay cung cấp nhắm đến các doanh nghiệp có quy mô từ trung bình đến lớn ở các quốc gia phát triển, và nó có ảnh hưởng trực tiếp đến quy trình của các doanh nghiệp đó. Vì vậy, đôi khi những doanh nghiệp này phải thay đổi quy trình của họ để phù hợp với quy trình sản phẩm của mình. Công việc này thường tốn khá nhiều thời gian, và chính từ việc tốn thời gian dài như vậy cũng gây không ít khó khăn cho 1 doanh nghiệp có quy mô không lớn như ở Travel2Pay.

4. Đối mặt với nhiều khó khăn, thử thách như vậy thì Travel2Pay đã giải quyết các vấn đề gặp phải như thế nào?

Kiên trì chính chí là chìa khóa cho mọi vấn đề. Kiên trì vào mục tiêu, tin tưởng vào giá trị cốt lõi mà mình theo đuổi, luôn luôn tin vào giải pháp của mình là giải pháp mang lại lợi ích cho khách hàng, đối tác, và cho chính bản thân công ty.

Không ngừng nổ lực, hoàn thiện giải pháp, hỗ trợ tốt nhất cho khách hàng hiện tại. Và sẵn sàng đón chờ các kết nối mới.

5. Được biết giải pháp mà Travel2Pay cung cấp có liên quan tới thanh toán trực tuyến, vậy vấn đề bảo mật thông tin trong thanh toán được Travel2Pay thực hiện như thế nào?

Giải pháp mà Travel2Pay cung cấp có liên quan đến thanh toán trực tuyến. Chính vì vậy, Travel2Pay cũng rất quan tâm tới vấn đề bảo mật thông tin trong thanh toán điện tử. Việc bảo đảm an toàn thông tin, không chỉ phụ thuộc vào một hay một vài doanh nghiệp nào có thể làm được, mà nó đã được chuẩn hóa, đặc biệt trong lĩnh vực có liên quan đến tín dụng, đó là cái chuẩn PCI DSS – được Hội đồng Tiêu chuẩn Bảo mật (Security Standards Council) phát hành dành cho thẻ thanh toán, bao gồm các thành viên ban đầu như: Visa, MasterCard, American Express (AMEX), Discover Financial Services, JCB International. Đây là tổ chức độc lập về an toàn thông tin trong giao dịch điện tử. Đó là một chuẩn đáng tin cậy trong hệ thống thông tin, hạ tầng hệ thống thông tin. Vấn đề bảo mật thông tin rất đa dạng và có nhiều thách thức nhưng nếu tuân thủ một cách nghiệm ngặt các quy chuẩn này thì vấn đề bảo mật thông tin hoàn toàn có thể bảo đảm được.

Hiện nay, xu thế thanh toán trực tuyến khá phổ biến, gần đây xuất hiện thêm 1 khái niệm mới –  thẻ thanh toán ảo, theo anh đây là một phương thức thanh toán mới có nhiều ưu điểm hơn so với thẻ thanh toán vật lý thông thường. Nhìn chung về tính năng thì dù là thẻ thanh toán ảo, hay thẻ thanh toán vật lý đều có chức năng như nhau. Nhưng về tính linh hoạt thì thẻ thanh toán ảo lại bộc lộ nhiều ưu điểm vượt trội hơn so với thẻ thanh toán truyền thống: về hạn mức thanh toán linh hoạt hơn, thời hạn thẻ linh hoạt hơn, mục đích sử dụng uyển chuyển hơn.

6. Anh có lo sợ những sự cố về bảo mật thông tin trong thanh toán gần đây có thể sẽ khiến khách hàng lo ngại khi sử dụng bên thứ 3 trong thanh toán?

Vì sản phẩm của Travel2Pay chủ yếu cung cấp cho thị trường khá phát triển. Bên họ có hệ thống giao dịch tài chính tương đối lâu đời, ngoài các quy định về nhà nước các tổ chức có thẩm quyền quy định, ngoài ra niềm tin còn được gầy dựng bằng uy tín của chính công ty, bằng nhận thức của người sử dụng bằng văn hóa của người dùng. Chính vì vậy, tính tin cậy trong giao dịch được đảm bảo.

Ở Việt Nam vấn đề này có chút khác biệt, nhưng theo anh nghĩ: mỗi vấn đề đều có 2 mặt tích cực và tiêu cực, xu thế là mọi người sẽ phát huy mặt tích cực và hạn chế mặt tiêu cực đó là điều chắc chắn, bất cứ một cái gì mới đều có rủi ro nhưng xu thế chung là giải pháp nào mang lại nhiều giá trị cho người dùng thì sớm hay muộn cũng sẽ được người dùng chấp nhận. Không riêng gì ở Việt Nam , mà nhìn chung ở các nước đang phát triển, dù hiện tại có thể hình thức thanh toán trực tuyến vẫn chưa được phổ biến, nhưng nó sẽ từ từ đi vào nề nếp trong tương lai, nó sẽ có trục trặc khó khăn ban đầu, chuyện đó là chuyện chắc chắc sẽ xảy ra, nhưng đừng quá lo lắng về điều đó. Điều quan trong nhất là cần phải rút ra được bài học kinh nghiệm gì từ những sự cố đó. Về phía doanh nghiệp cần tuân thủ các quy trình về an toàn bảo mật , thông tin các vấn đề đó tới khách hàng một cách đầy đủ, chính xác nhất. Niềm tin sẽ được củng cố theo thời gian.

7. Theo anh vì sao các lập trình viên tài năng nên chọn Travel2Pay để đầu quân?

Travel2Pay làm việc với các khách hàng ở các nước phát triển và đối tượng khách hàng là các doanh nghiệp tương đối lớn, ở đây khách hàng không chỉ là khách hàng mà còn là các chuyên gia trong lĩnh vực này. Theo anh nghĩ đây là một lợi thế khá lớn cho lập trình viên được học hỏi về kỹ năng, về thái độ làm việc, văn hóa, làm việc trong môi trường chuyên nghiệp. Đó là những lợi thế không phải nơi nào cũng có.

Thay vì tạo áp lực công việc cho mọi người thì sẽ tạo động lực bằng cách đặt ra các mục tiêu ngắn hạn và dài hạn. Thường xuyên quan tâm, nhắc nhở, hỗ trợ kịp thời để mọi người hoàn thành được các mục tiêu đề ra.

Travel2Pay luôn đánh giá cao những ứng viên say mê và trung thực. Những nổ lực của bạn sẽ luôn được đánh giá công bằng và nhận được mức đãi ngộ tương xứng với đóng góp của bạn.

8. Văn hóa công ty mà Travel2Pay đang hướng đến là văn hóa như thế nào?

Travel2Pay hướng đến một môi trường làm việc thân thiện, trao cơ hội cho các bạn tạo ra những sản phẩm mang giá trị thật, các bạn được tự do đóng góp, đưa ra ý kiến, và được tưởng thưởng cho đóng góp của mình. Travel2Pay mang đến cho các bạn không chỉ là công việc mà còn là hạnh phúc và niềm vui.

9. Anh có thể chia sẻ thêm về những kế hoạch, dự định trong thời gian tới của Travel2Pay?

Trong thời gian tới, Travel2Pay vẫn tập trung hoàn thiện sản phẩm tốt hơn, đáp ứng nhu cầu ngày càng cao của các khách hàng hiện tại. Hơn thế nữa, các đối tác mà Travel2Pay đang hợp tác cũng có tốc độ phát triển khá nhanh, đặt ra yêu cầu trước mắt là Travel2Pay cũng phải phát triển để tương thích với các đôi tác.

Còn trong tương lai xa hơn khi thị trường Việt Nam phát triển phù hợp, Travel2Pay mong muốn phát triển sản phẩm này cho thị trường Việt Nam.

Tham khảo: Các vị trí Travel2Pay tuyển dụng

Cảm ơn anh tham gia phỏng vấn của TopDev!

Lương IT nghìn USD nếu thành thạo Cloud, Big Data, AI

lương it

Lương IT có mặt bằng chung khá cao, nhiều nhà tuyển dụng đang sẵn sàng chi mức lương nghìn USD cho ứng viên nhiều kinh nghiệm về các công nghệ “nóng” thời 4.0 như Cloud, Big Data, AI.

Số liệu quý II/2017 của TopDev khảo sát trên 5.500 ứng viên IT cả nước cùng hơn 150 nhà tuyển dụng cho biết, các lập trình viên có nhiều năm kinh nghiệm liên quan đến Cloud Computing, Big Data hay AI đang được nhà tuyển dụng chiêu mộ với mức lương cạnh tranh, dao động khởi điểm $1000 – $1500 ở mức Junior với kiến thức cơ bản và đạt mức $2,500 – $4,500 ở mức Senior với kiến thức chuyên sâu.

Trải nghiệm công cụ tính lương gross to net chuẩn tại TopDev

  Biết đồng nghiệp cùng cấp nhận lương cao hơn mình, thay vì bực tức hay chán nản, hãy bình tĩnh làm những việc sau

Nguyên nhân có sự ưu ái mức lương này bởi đây là những công nghệ tiên tiến, không chỉ được các công ty lâu năm mà các startup cũng rất săn đón. Những thống kê gần đây nhất của TopDev cho hay, có đến 80% startup công nghệ đang dần áp dụng AI/Machine Learning, Bigdata và các công nghệ trên đám mây để tăng sự hiệu quả của hệ thống.

Đặc biệt, theo khảo sát, điện toán đám mây (Cloud Computing) đang nằm trong 6 xu hướng công nghệ nóng nhất mà các lập trình Web không thể bỏ qua.

Để tránh tốn quá nhiều thời gian tự phát triển và thích ứng nhanh với thị trường, việc sử dụng các dịch vụ đám mây sẵn có được mạng tuyển dụng này dự báo là xu hướng buộc doanh nghiệp Việt chuyển mình nhanh hơn, nhằm nắm bắt các đợt sóng công nghệ cao trong kỷ nguyên 4.0.

lương it
Cloud, Big Data, AI đang là các công nghệ ‘hot’ thời 4.0 mà doanh nghiệp sẵn sàng chi lương cao cho ứng viên có am hiểu.

Dựa vào số liệu nhân sự ngành IT, chiến lược tuyển dụng của các công ty công nghệ tại Việt Nam, số liệu từ Hiệp hội Thương mại điện tử Việt Nam (VECOM) và số liệu cung cấp từ các dịch vụ đám mây, ông Nguyễn Ngọc Dũng – Phó chủ tịch VECOM cho biết, Việt Nam hiện đang được xếp là một trong những nước hàng đầu (Tier 1) cho thị trường đám mây tại Đông Nam Á.

Cùng với đó, theo dự đoán của các chuyên gia, năm 2018 tiếp tục sẽ là năm bận rộn với những làn sóng công nghệ mới, kết hợp cùng các nền tảng kỹ thuật web “bất biến” từ trước đến nay. Tiêu biểu có thể kể đến như trí thông minh nhân tạo (AI), dữ liệu lớn (Big Data), Internet vạn vật (IoT), thực tế ảo – thực tế tăng cường (AR, VR) …

Ứng dụng của các công nghệ này hiện khá rộng rãi và được nhiều doanh nghiệp trong và ngoài nước theo đuổi để hoàn thiện giải pháp cho riêng mình.

  Chuyện Elon Musk sa thải trợ lý gắn bó với anh 12 năm vì đòi tăng lương và bài học dành cho tất cả chúng ta

Ví dụ như các dịch vụ vận chuyển ứng dụng AI kết hợp thiết bị IoT để theo dõi, tối ưu đường đi và chi phí di chuyển của phương tiện, web thương mại điện tử dùng Machine Learning để biết gợi ý đúng nhu cầu tiếp theo của khách hàng, thanh toán online dùng AI để phát hiện và cảnh báo giao dịch có dấu hiệu gian lận, Chatbot thông minh với AI để chăm sóc khách hàng tự động hay mạng quảng cáo dùng Big Data kết hợp Machine Learning để hiển thị quảng cáo đúng nhu cầu…

lương it
Hơn 100 topic về Technical, Cloud, Ecommerce, Payment… đang đợi bạn. Đăng kí những slot vé ưu đãi đầu tiên tại đây!

“Các kỹ thuật tiên tiến hơn đã sáng tạo vượt qua các thuật toán dựa trên nguyên tắc truyền thống để tạo ra hệ thống có khả năng hiểu, học hỏi, dự đoán, thích ứng và hoạt động độc lập tốt hơn trước”, Công ty nghiên cứu thị trường Gartner nhận xét về sự phát triển của các công nghệ mới.

Nguồn: vnexpress.net

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

Xem thêm việc làm IT mức lương lương hấp dẫn nhất thị trường

Sử dụng Machine Learning trên Compute Engine để recommend sản phẩm (phần 1)

Bạn có thể sử dụng Google Cloud Platform để xây dựng dịch vụ có thể mở rộng, hiệu quả và có khả năng để chuyển các recommend sản phẩm có liên quan đến người dùng trong một cửa hàng trực tuyến.

Cạnh tranh trong các trang web bán hàng trực tuyến chưa bao giờ trở nên khốc liệt như hiện nay. Khách hàng dành nhiều tiền hơn cho tất cả các nhà sản xuất nhưng họ chi tiêu ít hơn cho mỗi nhà bán lẻ. Kích thước trung bình của mỗi giỏ hàng đang giảm, một phần do sự cạnh tranh chỉ là một cú nhấp chuột. Cung cấp các khuyến nghị có liên quan đến khách hàng tiềm năng có thể đóng vai trò trung tâm trong việc chuyển đổi người xem sang người mua và kích thước đơn hàng tăng lên.

Sau khi đọc giải pháp này, bạn sẽ có thể thiết lập được một công cụ hỗ trợ cơ bản mà bạn có thể phát triển và cải tiến, dựa trên nhu cầu của khối lượng công việc cụ thể của bạn. Việc chạy một công cụ đề xuất trên Cloud Platform sẽ cung cấp cho bạn tính linh hoạt và khả năng mở rộng trong các giải pháp mà bạn muốn chạy.

Trong giải pháp này, bạn sẽ thấy cách một công ty cho thuê bất động sản có thể tính toán các đề xuất có liên quan và giới thiệu cho khách hàng đang xem trên trang của họ.

Scenario

Samantha đang tìm kiếm thuê một căn nhà cho những ngày nghỉ của cô. Cô có một hồ sơ trên một trang web cho thuê và trước đây đã thuê và đánh giá một số gói kỳ nghỉ. Sam đang tìm kiếm các đề xuất dựa trên sở thích của cô ấy. Hệ thống cần phải biết được thị hiếu của Sam. Rõ ràng cô ấy thích một kiểu nhà nào đấy, dựa trên trang xếp hạng của cô ấy. Hệ thống nên đề nghị một cái gì đó tương tự.

User interface enables renting vacation properties

Solution overview

Để cung cấp các đề xuất, cho dù theo thời gian thực trong khi khách hàng online hoặc qua email sau này, một vài điều cần phải xảy ra. Lúc đầu, trong khi bạn biết rất ít về thị hiếu và sở thích của người dùng, bạn có thể đề xuất các khuyến nghị về các thuộc tính một mình. Nhưng hệ thống của bạn cần có thể học hỏi từ người dùng, thu thập dữ liệu về thị hiếu và sở thích của họ. Theo thời gian và với đủ dữ liệu, bạn có thể sử dụng các thuật toán machine learning để thực hiện các phân tích hữu ích và đưa ra những đề xuất có ý nghĩa. Đầu vào của người dùng khác cũng có thể cải thiện kết quả, cho phép hệ thống được đào tạo theo định kỳ. Giải pháp này đề cập đến hệ thống recommend đã có đủ dữ liệu để có thể sử dụng các thuật toán Machine Learning.

Công cụ đề xuất thường xử lý dữ liệu thông qua bốn giai đoạn sau:

Kiến trúc của một hệ thống như vậy có thể được biểu diễn bằng sơ đồ sau:

Mỗi bước có thể được tùy chỉnh để đáp ứng các yêu cầu. Hệ thống bao gồm:

  • Một frontend có thể mở rộng để ghi lại tương tác người dùng để thu thập dữ liệu.
  • Lưu trữ vĩnh viễn mà có thể được truy cập bởi một nền tảng machine learning. Việc tải dữ liệu vào bộ nhớ này có thể bao gồm một vài bước, chẳng hạn như xuất nhập và chuyển đổi dữ liệu.
  • Một nền tảng machine learning có thể phân tích nội dung hiện có để tạo ra các khuyến nghị có liên quan.
  • Bộ nhớ có thể được sử dụng cho frontend, theo thời gian thực hoặc sau đó, dựa trên yêu cầu kịp thời cho các đề xuất.

Tham khảo: Machine Learing job in Vietnam

Choosing the components

Để đạt được sự kết hợp tốt giữa tốc độ, đơn giản, kiểm soát chi phí và độ chính xác, giải pháp này sử dụng  Google App EngineGoogle Cloud SQL, và Apache Spark chạy trên Google Compute Engine sử dụng bdutil.

App Engine có thể xử lý hàng chục ngàn truy vấn mỗi giây chỉ với một ít sự quản lý. Cho dù tạo trang web hoặc lưu dữ liệu vào bộ nhớ lưu trữ phụ trợ, App Engine cho phép bạn viết code của mình và triển khai nó tới sản phẩm chỉ trong vài giây.

Cloud SQL cung cấp sự đơn giản của việc triển khai. Cloud SQL có thể nâng cấp lên 32-core máy ảo với tối đa 208 GB RAM, và có thể phát triển dung lượng lưu trữ theo yêu cầu lên đến 10 TB với 30 IOPS trên GB và hàng ngàn kết nối đồng thời. Các thông số kỹ thuật này rất đầy đủ cho giải pháp ví dụ này và cho một số lượng lớn các công cụ thực tế. Cloud SQL cũng cung cấp lợi thế là nó có thể được truy cập trực tiếp từ Spark.

Spark cung cấp hiệu suất tốt hơn nhiều so với thiết lập Hadoop điển hình; Spark có thể nhanh gấp 10 đến 100 lần. Với Spark MLlib, bạn có thể phân tích hàng trăm triệu ratings trong vài phút, làm tăng sự nhanh nhẹn của các đề xuất, cho phép quản trị viên chạy thuật toán thường xuyên hơn. Spark cũng có xu hướng có các mô hình lập trình đơn giản, một API dễ sử dụng, và linh hoạt ngôn ngữ. Nó thúc đẩy bộ nhớ cho máy tính, nhiều nhất có thể, để giảm các vòng quay đĩa và để giảm thiểu I / O. Giải pháp này sử dụng Compute Engine để lưu trữ cơ sở hạ tầng phân tích. Compute Engine giữ giá phân tích thấp nhất có thể thông qua việc định giá theo mỗi yêu cầu trên 1 giây.

Biểu đồ sau đây hiển trước sơ đồ kiến ​​trúc, nhưng cũng hiển thị công nghệ đang sử dụng cho từng bước:

Collecting the data

Công cụ đề xuất có thể thu thập dữ liệu về người dùng dựa trên hành vi ngầm hoặc đầu vào rõ ràng của họ.

Dữ liệu hành vi dễ thu thập vì bạn có thể giữ lịch sử các hoạt động của người dùng. Thu thập dữ liệu này cũng đơn giản bởi vì nó không yêu cầu bất kỳ hành động bổ sung nào từ người dùng. Nhược điểm của cách tiếp cận này là nó khó phân tích hơn. Ví dụ, lọc các bản ghi thú vị từ những cái ít thú vị rất rườm rà. Để xem ví dụ về phân tích dữ liệu tiềm ẩn bằng cách sử dụng lịch sử, hãy xem Real-time Log Analysis sử dụng Fluentd và BigQuery.

Nhập dữ liệu có thể khó thu thập hơn bởi vì người dùng cần thực hiện các hành động bổ sung, chẳng hạn như viết bài đánh giá. Người dùng có thể không muốn cung cấp dữ liệu này vì nhiều lý do. Nhưng khi nói đến sự hiểu biết về sở thích người dùng, kết quả như vậy khá chính xác.

Storing the data

Bạn càng có nhiều dữ liệu cung cấp cho các thuật toán của mình, thì các đề xuất càng tốt. Điều này có nghĩa là bất kỳ dự án recommendation có thể nhanh chóng chuyển thành một dự án big data.

Loại dữ liệu bạn sử dụng để tạo đề xuất có thể giúp bạn quyết định loại lưu trữ để sử dụng. Bạn có thể chọn sử dụng một cơ sở dữ liệu NoSQL, một cơ sở dữ liệu SQL chuẩn, hoặc thậm chí một số loại lưu trữ đối tượng. Mỗi một trong các tùy chọn này khả thi tùy thuộc vào việc bạn đang nắm bắt đầu vào hoặc hành vi của người dùng và các yếu tố như dễ thực hiện, lượng dữ liệu mà bộ lưu trữ có thể quản lý, tích hợp với phần còn lại của môi trường và khả năng lưu động.

Khi lưu các rating hoặc sự kiện của người dùng, một cơ sở dữ liệu có thể mở rộng và giảm thiểu số lượng các tác vụ hoạt động cần thiết và giúp tập trung vào đề xuất. Cloud SQL đáp ứng cả hai nhu cầu này và cũng giúp dễ dàng tải dữ liệu trực tiếp từ Spark.

Ví dụ mã sau đây cho thấy các giản đồ của các bảng Cloud SQL.  Accommodation table đại diện cho mục hiển thị và Rating table thể hiện xếp hạng của người dùng cho một mục cụ thể.

CREATE TABLE Accommodation
(
  id varchar(255),
  title varchar(255),
  location varchar(255),
  price int,
  rooms int,
  rating float,
  type varchar(255),
  PRIMARY KEY (ID)
);

CREATE TABLE Rating
(
  userId varchar(255),
  accoId varchar(255),
  rating int,
  PRIMARY KEY(accoId, userId),
  FOREIGN KEY (accoId)
    REFERENCES Accommodation(id)
);

Spark có thể nhận dữ liệu từ nhiều nguồn khác nhau, chẳng hạn như Hadoop HDFS hoặc Cloud Storage. Giải pháp này nhận dữ liệu trực tiếp từ Cloud SQL bằng cách sử dụng Spark Java Database Connectivity (JDBC) connector. Bởi vì Spark chạy song song, đầu nối phải có sẵn trên tất cả các trường hợp.

Analyzing the data

Thiết kế giai đoạn phân tích đòi hỏi sự hiểu biết về các yêu cầu của ứng dụng. Những yêu cầu này bao gồm:

  • Tính kịp thời (timeliness) của một recommendation. Ứng dụng cần đưa ra các đề xuất nhanh như thế nào?
  • Cách tiếp cận lọc cho dữ liệu. Ứng dụng sẽ đưa ra khuyến cáo về sở thích của người dùng một cách đơn lẻ, xoay các dữ liệu dựa trên những gì người dùng khác nghĩ ra, hoặc xoay quanh những sản phẩm nào hợp lý với nhau?

Hiểu rõ timeliness

Yếu tố đầu tiên cần cân nhắc khi phân tích dữ liệu là bạn cần đưa ra các đề xuất cho người dùng nhanh như thế nào. Nếu bạn muốn đưa ra đề xuất ngay lập tức, chẳng hạn như khi người dùng đang xem một sản phẩm, bạn sẽ cần một loại phân tích linh hoạt hơn là khi bạn muốn gửi cho khách hàng một email có chứa các khuyến nghị vào một ngày sau đó.

  • Các hệ thống real time có thể xử lý dữ liệu khi nó được tạo ra. Loại hệ thống này thường bao gồm các công cụ có thể xử lý và phân tích các luồng sự kiện. Một hệ thống real time sẽ được yêu cầu để cung cấp cho các khuyến nghị trong một thời điểm.
  • Batch analysis yêu cầu bạn phải xử lý dữ liệu định kỳ. Phương pháp này hàm ý rằng cần phải tạo đủ dữ liệu để phân tích có liên quan, chẳng hạn như khối lượng bán hàng một ngày. Một batch system có thể làm việc tốt để gửi một e-mail vào một ngày sau đó
  • Near-real-time analysis cho phép bạn thu thập dữ liệu nhanh chóng để bạn có thể làm mới phân tích trong vài phút hoặc vài giây. Hệ thống gần thời gian thực có thể tốt cho việc cung cấp các đề xuất trong suốt phiên duyệt web giống nhau

Một đề xuất có thể thuộc bất kỳ loại nào trong ba loại thời gian này, nhưng đối với một công cụ bán hàng trực tuyến, bạn có thể cân nhắc điều gì đó giữa gần thời gian thực và xử lý hàng loạt, tùy thuộc vào lượng truy cập và người dùng nhập vào ứng dụng. Nền tảng chạy các phân tích có thể làm việc trực tiếp từ một cơ sở dữ liệu, nơi dữ liệu được lưu hoặc trên một dump saved được lưu định kỳ trong lưu trữ liên tục.

Filtering the data

Một thành phần cốt lõi của việc xây dựng một công cụ recommendation là filtering. Cách tiếp cận phổ biến nhất bao gồm:

  • Content-based: Một sản phẩm phổ biến, được đề nghị có các thuộc tính tương tự với những gì người dùng xem hoặc thích.
  • Cluster: Các sản phẩm được đề xuất liên kết tốt, cho dù người dùng khác đã làm gì.
  • Collaborative: Những người dùng khác, những người sử dụng các sản phẩm tương tự người dùng xem hoặc thích, cũng thích một sản phẩm được đề nghị

Mặc dù Cloud Platform có thể hỗ trợ bất kỳ phương pháp nào, nhưng giải pháp này tập trung vào lọc các liên kết, được thực hiện bằng cách sử dụng Apache Spark. Để biết thêm thông tin về lọc dựa trên nội dung hoặc lọc cụm, xem appendix.

Collaborative filter cho phép bạn tạo ra các thuộc tính sản phẩm trừu tượng và đưa ra các dự đoán dựa trên thị hiếu của người sử dụng. Đầu ra của lọc này dựa trên giả định rằng hai người dùng khác nhau thích những sản phẩm giống nhau trong quá khứ có thể sẽ giống như những sản phẩm tương tự hiện nay.

Bạn có thể diễn tả cho dữ liệu về xếp hạng hoặc tương tác như một bộ ma trận, với sản phẩm và người dùng làm thứ nguyên. Collaborative filter cố gắng dự đoán các ô bị thiếu trong ma trận cho một cặp sản phẩm người dùng cụ thể. Hai ma trận sau đây là tương tự, nhưng thứ hai là suy luận từ cái đầu tiên bằng cách thay thế xếp hạng hiện tại bằng số thứ nhất và thiếu xếp hạng theo số không. Ma trận kết quả là một bảng chân trị, trong đó số một thể hiện sự tương tác giữa người dùng với một sản phẩm.

Có hai cách tiếp cận riêng biệt để sử dụng collaborative filter:

  • Memory-based filtering tính toán sự tương đồng giữa các sản phẩm hoặc người dùng.
  • Model-based filtering cố gắng tìm hiểu cơ bản để chỉ ra cách người dùng đánh giá hoặc tương tác với các mặt hàng.

Giải pháp này sử dụng cách tiếp cận dựa trên mô hình, nơi mà người dùng đánh giá các mặt hàng.

Tất cả các phân tích các tính năng giải pháp này đòi hỏi có sẵn thông qua PySpark, cung cấp một giao diện Python với ngôn ngữ lập trình Spark. Các tùy chọn khác có sẵn bằng cách sử dụng Scala hoặc Java. Xem thêm tại Spark documentation

Training cho các models

Spark MLlib thực hiện thuật toán Alternating Least Squares (ALS) để huấn luyện các mô hình. Bạn sẽ sử dụng các kết hợp khác nhau của các thông số sau để có được sự thỏa hiệp tốt nhất giữa phương sai và xu hướng:

  • Rank: Số yếu tố không xác định khiến người dùng đưa ra xếp hạng. Các yếu tố này có thể bao gồm các yếu tố như tuổi, giới tính hoặc vị trí. Xếp hạng càng cao, khuyến cáo sẽ càng tốt ở một mức độ nào đó. Bắt đầu từ 5 và tăng trên 5 cho đến khi tốc độ cải tiến đề xuất chậm lại, bộ nhớ và CPU cho phép, là một cách tiếp cận tốt.
  • Lambda: Một thông số regularization để ngăn chặn overfitting, đại diện bởi phương sai cao, và xu hướng thấp. Sự khác biệt thể hiện mức độ dự báo dao động ở một điểm nhất định, qua nhiều lần chạy, so với giá trị chính xác về mặt lý thuyết cho điểm đó.Xu hướng thể hiện mức độ xa những dự đoán được tạo ra từ giá trị đích thực mà bạn đang dự đoán. Việc overfitting xảy ra khi mô hình hoạt động tốt trên việc huấn luyện dữ liệu bằng cách sử dụng các nhiễu số đã biết nhưng không thực hiện tốt trên dữ liệu thử nghiệm thực tế. Các lambda cao hơn, thấp hơn overfitting nhưng sự xu hướng lớn hơn. Các giá trị 0,01, 1 và 10 là các giá trị tốt để kiểm tra.
    Sơ đồ dưới đây cho thấy mối quan hệ giữa sự sai lệch và xu hướng. Các bullseye đại diện cho giá trị mà các thuật toán đang cố gắng để dự đoán.
Variance versus Bias (best is on the top left)

 

  • Iteration: Số lần huấn luyện sẽ chạy. Trong ví dụ này, bạn sẽ làm 5, 10, và 20 lặp cho các kết hợp khác nhau của cấp bậc và lambda.
from pyspark.mllib.recommendation import ALS
model = ALS.train(training, rank = 10, iterations = 5, lambda_=0.01)

Finding the right model

Việc collaborative filter sử dụng thuật toán ALS dựa trên ba bộ dữ liệu khác nhau:

  • Training set: Bao gồm dữ liệu có đầu ra đã biết. Bộ này là kết quả hoàn hảo. Trong giải pháp này, nó chứa các xếp hạng của người dùng.
  • Validating set: Bao gồm dữ liệu sẽ giúp điều chỉnh quá trình đào tạo để chọn đúng sự kết hợp của các thông số và chọn mô hình tốt nhất.
  • Testing set: Bao gồm dữ liệu sẽ được sử dụng để đánh giá hiệu suất của mô hình được đào tạo tốt nhất. Điều này sẽ tương đương với việc chạy phân tích trong một ví dụ thực tế.

Để tìm ra mô hình tốt nhất, bạn cần phải tính sai số gốc-trung bình-vuông (RMSE) dựa trên mô hình đã được tính toán, bộ xác nhận và kích thước của nó. Các RMSE thấp hơn, mô hình tốt hơn.

Tham khảo: Machine Learing job in Vietnam

(còn tiếp)

Nguồn: topdev.vn via cloud.google.com

5 dấu hiệu đã đến lúc bạn nên nghỉ việc

5 dấu hiệu đã đến lúc bạn nên nghỉ việc

1. Bạn bị phân tâm suốt cả ngày làm việc

Luôn có những thời khắc mà tâm trí bạn không hoàn toàn đặt vào công việc và điều đó quả thật rất bình thường. Tuy nhiên, nếu bạn bị phân tâm suốt cả ngày và mỗi ngày trong tuần thì đó là dấu hiệu bạn đang gặp vấn đề. Khi tâm trí bạn lang thang đâu đó ngay cả khi bạn đang có rất nhiều công việc cần hoàn thành, thì đó là dấu hiệu của việc chán nản công việc hiện tại.

Quan trọng hơn, nếu bạn quá phân tâm đến mức không thể hoàn thành xong bất kỳ một công việc nào, và bạn hiểu rằng bạn đang khiến công ty thất thu nhưng không có một cảm xúc gì về việc này, thì đó chính là thời điểm bạn nên nghỉ việc. Hãy nhớ rằng nếu bạn thực sự yêu thích việc mình đang làm, bạn sẽ có cảm giác tội lỗi khi làm phí phạm thời gian quý báu và nguồn lực của công ty. Vì vậy, hãy nghỉ việc ngay trước khi quá muộn.

2.Bạn sợ thứ hai nhưng luôn mong ngóng đến thứ sáu

Thứ hai luôn là một ngày nặng nề nhưng nếu bạn bắt đầu cảm thấy thời gian trôi qua thật lâu mới đến thứ sáu và cuối tuần trôi qua trong nháy mặt thì đấy chính là thời điểm bạn nên cân nhắc nghỉ việc. Và nếu bạn cũng chẳng thể tận hưởng cuối tuần là mấy bởi nỗi lo nơm nớp thứ hai đang đến gần thì thực sự là bạn cần chuyển việc.

Cuối tuần nên là thời gian để bạn tận hưởng, thư giãn, và làm những việc bạn không có thời gian làm trong suốt tuần qua. Nếu bạn không thể thư giãn đơn giản bởi cái bóng đen đáng sợ của thứ hai thì bạn nên nghỉ việc và tìm kiếm một công việc khác, một công việc mà bạn luôn mong chờ đến thứ hai để được đi làm chứ không phải sợ ngày này. Cuối cùng, nếu bạn bắt đầu muốn nghỉ một ngày nào đó giữa tuần để khiến tuần làm việc ngắn lại, thì bạn nên xin nghỉ việc thay vì để bị công ty chấm dứt hợp đồng làm việc bởi kỷ luật lao động.

3. Giá trị bản thân bạn không còn phù hợp với công ty

Đây là một dấu hiệu rõ ràng và dễ nhận biết nhất về thời điểm nghỉ việc của bạn. Đây cũng là dấu hiệu duy nhất cạn có thể sử dụng như là lý do xin nghỉ việc trong buổi phỏng vấn với một công ty khác mà không gây hại đến cơ hội có được công việc làm mới.

Khi giá trị của bạn không còn phù hợp với công ty nữa, bạn sẽ bắt đầu nghi ngờ mọi thứ mà họ nói với bạn. Các mục tiêu nghề nghiệp bắt đầu mờ dần và rời ra khỏi những ảnh hưởng của công ty lên hiệu suất làm việc của bạn. Để trở thành người làm việc hiệu quả và chuyên nghiệp nhất, điều quan trọng nhất là bạn cần tin vào mục tiêu mà cậu và công ty đang làm việc hết sức mình để đạt được. Nếu bạn nhận ra rằng giá trị của bạn không còn phù hợp với công ty nữa, hãy nghỉ việc.

4. Bạn lập tức cho công ty ra khỏi đầu ngay khi vừa bước ra khỏi văn phòng

Công ty là một phần cuộc sống của bạn. Những người yêu thích những gì họ làm luôn suy nghĩ về việc làm cách nào để tăng thêm giá trị của bản thân vào các công việc trong công ty ngay cả khi họ đã rời khỏi công sở. Họ nghĩ về điều họ muốn làm trong ngày tiếp theo và lên kế hoạch về những việc bạn cần đạt được vào ngày mai. Nếu tâm trí của bạn đóng lại ngay sau khi bạn rời công sở, đó chính là thời điểm bạn nên rời công ty.

Bạn không cần suy nghĩ về công việc mỗi ngày nhưng khi bạn không hề nghĩ gì đến công việc nữa thì đó là dấu hiệu đáng để lo lắng. Nếu bạn coi công việc chỉ là công việc, đây chính xác là điều sẽ diễn ra. Có lẽ đã đến lúc bạn nên tìm xem đâu là niềm đam mê đích thực của bạn và theo đuổi nó thay vì cứ mãi ở lại công ty mà bạn không muốn làm việc

5. Bạn hay phàn nàn về công việc với người khác

Chắc chắn rằng có những người trong công sở luôn phàn nàn về công việc nơi công sở. Bạn chắc chắn đã gặp những người này trước đây và cố gắng tránh họ như tránh dịch bệnh để sự tiêu cực từ họ không lây lan sang bạn. Khi bạn bắt đầu trở thành người như họ và thực sự tận hưởng việc đi cùng với họ để cùng phàn nàn, rên rỉ và bức xúc về công việc, đó chính là thời điểm bạn nên nói lời tạm biệt.

Sự tiêu cực nơi công sở không bao giờ là điều tốt. Nó sẽ kéo bạn xuống và ngăn bạn hoàn thành công việc được giao. Trước khi nhận ra nó, bạn sẽ mang theo cảm giác tiêu cực này ngay cả khi rời khỏi công sở. Bạn sẽ bắt đầu kể về những điều tiêu cực nơi công sở với gia đình, bạn bè, và ngay cả với những người không muốn nghe bạn nói. Điều này là không lành mạnh và bạn cần dành năng lượng của bản thân để làm những việc khác trong công sở.

Quyết định nghỉ việc và theo đuổi những điều bạn đam mê không nên là quyết định hời hợt. Dĩ nhiên luôn có những yếu tố bạn cần xem xét và những dấu hiệu ở trên là chất xúc tác khiến bạn ra quyết định nhanh hơn.

Thái độ của bạn đối với công việc là thước đo để biết rõ bạn cần quyết định nghỉ hay không. Tuy nhiên, trước khi ra bất kỳ quyết định gì, bạn cần thay đổi cách nhìn nhận của mình về công việc và xem mình có thể thay đổi được bất kỳ điều gì hay không. Nếu không, đấy đúng là thời điểm để bạn tìm kiếm và khám phá những cơ hội việc làm khác ở ngoài kia.

Nguồn: Applancer Careers

12 điều cực “cool” mà bạn có thể làm với Github

#1 Edit code trên GitHub.com

Bắt đầu với điều mà hẳn mọi người đều đã biết khi vào Github.

Với GitHub, khi bạn truy cập vào một file, có một icon hình bút chì ở phía trên góc phải màn hình. Nếu bạn click vào thì sẽ được cho phép edit file. Sau khi xong thì nhấn Propose file change và GitHub sẽ cập nhật fork repo cho bạn và tạo một pull request. Tất cả đều hoàn toàn tự động.

Đây là một cách rất hay để sửa typo và edit code.

#2 Paste images

Bạn sẽ không cần phải lo việc bị giới hạn chỉ với text trong comment và issue descriptions. Github còn cho phép việc ta paste trực tiếp hình ảnh từ clipboard. Nó sẽ được upload và markdown hiển thị hình ảnh ngay sau khi bạn chọn.

Khá là tuyệt đúng không?

#3 Format code

Nếu bạn muốn viết một code block, hãy bắt đầu với 3 backticks  – như những gì bạn học được sau khi đọc bài Mastering Markdown – Và GitHub sẽ đoán ngôn ngữ bạn đang viết là gì.

Tuy nhiên nếu bạn muốn post một snippet kiểu như Vue, Typescript hay JSX, bạn có thể chỉ rõ ra nhằm để được highlight đúng.

Lưu ý rằng  ```jsx ở dòng đầu tiên:

… Có nghĩa rằng snippet đã được render đúng:

Sau đây là list các lệnh hỗ trợ cú pháp.

#4 Close issues với thần chú trong PRs

Giả sử như bạn đang tạo một pull request để sửa issue #234. Bạn có thể thêm dòng “fixes #234” vào mục description của PR. Sau đó PR sẽ tự động close issue đó.

Bạn nên vào đây để tìm hiểu thêm.

#5 Link vào comments

Có những lúc bạn hẳn muốn link một comment đặc biệt nào đó nhưng lại không biết làm thế nào chưa? Đó là vì bạn chỉ chưa biết phương pháp thôi. Ta chỉ cần nhấn vào dòng hiển thị thời gian ngay kế bên tên sẽ cho phép bạn link comment.

#6 Link tới code

Thế còn link với code thì làm sao?

Hãy thử cách sau: khi vào file, click vào số thứ tự dòng code nằm kế bên code.

Ngay lập tức URL sẽ được update với dòng code đó.

#7 Dùng GitHub URL như command line

Navigate trong GitHub bằng UI hẳn là điều mà bạn vẫn thường làm. Nhưng đôi khi cách nhanh nhất là cứ type trực tiếp vào URL. Ví dụ như ta muốn nhảy thẳng tới một branch đang làm và xem sự khác biệt giữa nó với master, tôi sẽ dùng `/compare/branch-name` ngay sau tên của repo.

Còn nếu đang làm trên một integration branch thì cứ type /compare/integration-branch...my-branch

Phím tắt mà bạn cần dùng là ctrl+L or cmd+L sẽ di chuyển chuột vào URL ngay lập tức.

Ngoài ra, dùng phím mũi tên để di chuyển giữa các gợi ý từ Chrome’s auto-complete và bấm  shift+delete để xóa một item ra khỏi history.

#8 Tạo lists, trong issues

Bạn có muốn tạo một list các check box trong một issue

Và bạn có muốn thanh hiển thị chất lừ như thế này khi xem issue trong một list không?

Nếu có thì thật là tuyệt, bởi bạn có thể tạo ra chúng bằng những cú pháp sau:

- [ ] Screen width (integer)
- [x] Service worker support
- [x] Fetch support
- [ ] CSS flexbox support
- [ ] Custom elements

Không chỉ thế thanh hiển thị cũng sẽ cho bạn thấy được tiến độ của project

#9 Project boards trong GitHub

Với những project lớn tôi luôn dùng Jira và Trello cho những project nhỏ, solo.

Tuy vậy Github cũng có project board của riêng mình. Sau đây là project board của Trello:

Dưới đây là của Github:

Sức mạnh của Github project board nằm ở việc nó tích hợp toàn bộ repository nên bạn sẽ muốn add những issues có trong repo vào nó.

Nhấn vào Add Cards ở phía trên bên phải và tìm thứ mà bạn muốn thêm vào. Sau đây là những search syntax giúp bạn tìm kiếm dễ dàng hơn.

 

Không thì bạn có thể convert các notes thành những issue:

Cuối cùng, khi bạn đang xem issue, có thể add nó vào một project với panel ở phía bên phải:

Bạn sẽ thấy lợi ích của việc có ‘task’ ngay trong cùng repo khi code đang thực hiện task đó lớn đến chừng nào khi bẵng đi một thời gian và bạn phải lục lại đám code cũ kĩ. Ngay lập tức, chỉ vài giây là đã kiếm ra liền thay vì phải tốn hàng giờ có khi vài ngày tìm kiếm nếu bạn dùng Jira/Trello.

Tuy vậy với những project đòi hỏi sự tính toán chính xác về toán học, vận tốc,…. thì Github board lại không mấy là lựa chọn nổi bật.

#10 GitHub wiki

Đây là một nguồn thông tin vô cùng tuyệt vời. Nó hoạt động tương tự như wiki vậy.

Dù rằng nếu bạn muốn một nguồn thông tin có sự sắp sếp rõ ràng, đàng hoàng với những tính năng thoải mái thì có lẽ Github wiki không phải là nơi bạn sẽ muốn tới.

Nhìn qua hẳn bạn cũng hiểu nó sẽ không thể đấu lại so với GitBook nhưng ít ra cũng đươc 80%.

Tôi khuyên là bạn nên cân nhắc tới Gwiki khi đã chán đọc những hướng dẫn khô khan trong  README.md file. Sau đó nếu bạn cảm thấy Gwiki thật sự quá khó sử dụng cũng như “rối rắm” thì hãy kiếm những nguồn khác.

#11 GitHub Pages (với Jekyll)

Bạn hẳn cũng đã biết ta có thể dùng GitHub Pages để host một site số liệu. Tuy vậy, điều đặc biệt ở đây là ta sẽ dùng tới Jekyll để tạo ra một site.

Nói một cách đơn giản là GitHub Pages + Jekyll sẽ render README.md trong một theme khá đẹp.

Nếu tôi click vào ‘settings’ tab trong GitHub, mở GitHub Pages, và chọn một Jekyll theme…

Tôi sẽ có được một Jekyll-themed page:

Kể từ đây tôi đã có thể tạo ra một site hoàn chỉnh với markdown files vốn rất dễ edit, nói cách khác GitHub như là CMS vậy.

Đó cũng chính là cách React và Bootstrap sites được tạo ra.

Nhưng cần lưu ý rằng nó sẽ phải có Ruby để chạy (run locally).

Cứ mỗi lần tôi nhìn vào một GitHub Pages + Jekyll, tôi càng nhận ra nó thật là lạ. Ý tưởng đơn giản mọi thứ trong website của bạn rất là hay. Tuy vậy bạn vẫn sẽ phải set up nhiều thứ để cho nó chạy được, nói cách khác, sẽ phải dùng rất nhiều CLI commands chỉ để cho thứ mà ta cho là “đơn giản”.

#12 Dùng GitHub như một CMS

Giả sử như bạn có một website với text trong đó, nhưng bạn không muốn lưu trữ text đó vào trong HTML markup.

Thay vào đó, bạn muốn lưu vào chỗ nào đấy để cho các bạn không phải là developer vẫn có thể edit nó được.

Theo tôi, hãy dùng markdown files có trong repository để chứa những text đó. Sau đó, có một component trong front end  để fetch text và render nó lên page.

Tôi thì hay xài React nên sau đây là một ví dụ của  <Markdown> component, với chức năng fetch, parse và render text như HTML.

class Markdown extends React.Component {
    constructor(props) {
      super(props);
      
      // replace with your URL, obviously
      this.baseUrl = 'https://raw.githubusercontent.com/davidgilbertson/about-github/master/text-snippets';
      
      this.state = {
        markdown: '',
      };
    }

    componentDidMount() {
      fetch(`${this.baseUrl}/${this.props.url}`)
        .then(response => response.text())
        .then((markdown) => {
          this.setState({markdown});
        });
    }

    render() {
      return (
        <div dangerouslySetInnerHTML={{__html: marked(this.state.markdown)}} />
      );
    }
}

Trong ví dụ trên, tôi có sẵn một số markdown files trong /text-snippets.

Bạn sẽ phải dùng những component như thế này:

const Page = () => (
  <div className="page">
    <div className="about-us">
      <Markdown url="about-us.md" />
    </div>
    
    <div className="disclaimer">
      <p>A very important disclaimer:</p>
      
      <Markdown url="disclaimers/home-page-disclaimer.md" />
    </div>
  </div>
);

GitHub  giờ là như một CMS. Tuy vậy, nó chỉ dẫn đến markdown sau khi component đã được gắn trong trình duyệt web. Nếu bạn muốn một site dữ liệu thì sẽ phải server-render nó.

Bonus – GitHub tools!

Tôi thường dùng Octotree Chrome extension và sự thật là nó khá là tuyệt. Thế nên bạn cũng hãy thử dùng qua.

 

Từ clip này, tôi học về octobox, một inbox cho GitHub issues. Phải nói là nó giúp ích rất nhiều cho công việc của bạn.

Ngoài ra, để cho thêm phần dễ nhìn, tôi có dùng Stylish Chrome extension, GitHub Dark style và Atom One Dark Theme dành cho Chrome.

Nguồn: blog.topdev.vn via Hackernoon

Tham khảo việc làm GIT lương cao tại TopDev

5 tố chất để thành công khi làm nghề tuyển dụng

5 tố chất để thành công khi làm nghề tuyển dụng

Nghề nhân sự – đặc biệt là ở vị trí tuyển dụng là một lĩnh vực cạnh tranh và thay đổi không ngừng. Để trở thàn một nhà tuyển dụng thành công, bạn đã biết 5 tố chất nào là cần thiết chưa?

Trong những năm qua tôi đã gặp gỡ với rất nhiều người nghĩ rằng họ có đủ những yếu tố cần thiết để thành công trong lĩnh vực tuyển dụng. Mọi người thường thắc mắc tôi sẽ đòi hỏi những kỹ năng quan trọng nào ở một chuyên gia tuyển dụng. Theo tôi, 5 kỹ năng hàng đầu cần phải có để xây dựng được một nền tảng tốt cho sự nghiệp trong lĩnh vực cạnh tranh và thay đổi không ngừng này là:

1. Sự tự tin

Tự tin là yếu tố cực kỳ quan trọng trong vai trò tư vấn, nhưng bạn phải khéo léo thể hiển sự tự tin về dịch vụ của mình mà không làm cho người đối diện đánh giá là kiêu ngạo hay tự mãn. Chìa khóa để đạt được sự tự tin này chính là kiến thức. Hãy đào sâu nghiên cứu về lĩnh vực của mình và luôn dẫn đầu trong việc nắm bắt thông tin xu hướng thị trường. Thiết lập bản thân như một người tiên phong nổi bật trong lĩnh vực đó và bạn sẽ nhận ra rằng khách hàng và ứng viên sẽ đặt nhiều niềm tin hơn vào bạn cũng như năng lực của bạn để đáp ứng được mong đợi của họ.

2. Kỹ năng lắng nghe

Đặc điểm chung của những người tuyển dụng xuất sắc là khả năng lắng nghe tốt. Chúng ta đều có hai cái tai và một cái miệng để nghe nhiều hơn và nói ít đi. Bạn không những cần đặt đúng câu hỏi mà còn phải lắng nghe kỹ càng câu trả lời của ứng viên và khách hàng để nắm bắt được nhu cầu của cả hai bên. Đây là một bước cực kỳ quan trọng khi tuyển dụng. Xây dựng được một bức tranh tổng thể về kỳ vọng của khách hàng và ứng viên sẽ giúp bạn thấu hiểu và đáp ứng được yêu cầu của họ nhanh chóng và hiệu quả hơn.

3. Kỹ năng giao tiếp

Tuyển dụng là nghề làm việc với con người. Khi gặp gỡ và tiếp xúc với ứng viên và khách hàng thì bạn phải luôn lịch sự và chuyên nghiệp trên tất cả các phương tiện giao tiếp: qua emai, gặp gỡ trực tiếp và dĩ nhiên là trên cả các mạng xã hội nữa. Một sai lầm khi giao tiếp có thể hủy hoại danh tiếng của bạn trong ngành ngay lập tức.

Hầu hết các chuyên gia tuyển dụng là những người cởi mở hòa đồng nên có thể làm việc với nhiều loại người khác nhau. Vì vậy, bạn phải biết cách kết nối, nắm bắt mọi cơ hội để gặp gỡ giao lưu và biến nó thành kết quả kinh doanh. Xây dựng được mối quan hệ vững chắc với những người trong cuộc sẽ giúp bạn tạo dựng được sự tin tưởng với Khách hàng. Bên cạnh đó, ứng viên cũng sẽ muốn giới thiệu bạn với bạn bè hay gia đình của họ nếu bạn thể hiện sự chuyên nghiệp và đáng tin cậy.

4. Kỹ năng quản lý thời gian

Các nhà tuyển dụng hoạt động trong một thị trường năng động và thường phải xử lý một khối lượng lớn các bản tóm tắt công việc và gặp gỡ nhiều khách hàng hay ứng viên. Kỹ năng quản lý thời gian và khả năng đảm nhận nhiều dự án sẽ giúp bạn quản lý công việc hiệu quả và hoàn thành với kết quả tốt nhất.

Bạn sẽ cần phải ghi nhớ chi tiết của các công việc khác nhau, các doanh nghiệp và ứng viên đang làm việc cùng cũng như ghi chép lại tiến độ công việc để đảm bảo rằng mình đang cung cấp dịch vụ hiệu quả và năng suất. Nếu bạn không thể theo kịp những chi tiết nhỏ và không biết cách sắp xếp mọi việc thì khó có ai có thể tin tưởng vào khả năng của bạn cho những nhiệm vụ thử thách hơn trong tương lai.

5. Làm việc tốt dưới áp lực

Tuyển dụng là công việc mang tính chất cạnh tranh cao và có chỉ tiêu ràng buộc, do đó bạn cần phải có nghị lực và khả năng thích nghi tốt để đối phó với áp lực, hoàn thành chỉ tiêu được giao. Các công ty tuyển dụng cần những người khao khát thành công, nhưng vẫn đảm bảo được sự kiên trì bền bỉ và khả năng giải quyết khủng hoảng khi mọi thứ không đi theo kế hoạch đã định. Nhiều công ty có chính sách khích lệ nhân viên làm việc hiệu quả hơn bằng những khoản thưởng hấp dẫn theo kết quả kinh doanh ngoài lương cơ bản.

Không có ai sinh ra đã là một chuyên gia tuyển dụng. Giống như tất cả các ngành nghề khác, nếu muốn nổi bật, bạn cần phải không ngừng trau dồi kiến thức và tập luyện để hoàn thiện bản thân.

Nguồn: Applancer Careers

500 khóa học Online Programming & Computer Science miễn phí nên học ngay trong tháng 9 (phần 3)

500 courses

PHẦN 1 – PHẦN 2

ADVANCED(85)

Machine Learning Foundations: A Case Study Approach
University of Washington via Coursera

Deep Learning
Google via Udacity

Creative Applications of Deep Learning with TensorFlow
via Kadenze

[New] Structuring Machine Learning Projects
deeplearning.ai via Coursera

[New] Introduction to Artificial Intelligence (AI)
Microsoft via edX

[New] Neural Networks and Deep Learning
deeplearning.ai via Coursera

[New] Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
deeplearning.ai via Coursera

Neural Networks for Machine Learning
University of Toronto via Coursera

Machine Learning: Regression
University of Washington via Coursera

Probabilistic Graphical Models 1: Representation
Stanford University via Coursera

Machine Learning for Data Science and Analytics
Columbia University via edX

Bitcoin and Cryptocurrency Technologies
Princeton University via Coursera

Machine Learning for Data Science and Analytics
Columbia University via edX

Machine Learning for Trading
Georgia Institute of Technology via Udacity

Machine Learning With Big Data
University of California, San Diego via Coursera

Hardware Security
University of Maryland, College Park via Coursera

Artificial Intelligence (AI)
Columbia University via edX

Artificial Intelligence (AI)
Columbia University via edX

Computational Neuroscience
University of Washington via Coursera

Machine Learning: Classification
University of Washington via Coursera

Reinforcement Learning
Brown University via Udacity

Intro to Parallel Programming
Nvidia via Udacity

Interactive 3D Graphics
Autodesk via Udacity

Applied Cryptography
University of Virginia via Udacity

Introduction to Computer Vision
Georgia Institute of Technology via Udacity

Enabling Technologies for Data Science and Analytics: The Internet of Things
Columbia University via edX

Practical Deep Learning For Coders, Part 1
fast.ai via Independent

Parallel programming
École Polytechnique Fédérale de Lausanne via Coursera

Machine Learning
Georgia Institute of Technology via Udacity

Introduction to Computer Architecture
Carnegie Mellon University via Independent

Advanced Operating Systems
Georgia Institute of Technology via Udacity

Machine Learning: Clustering & Retrieval
University of Washington via Coursera

Practical Predictive Analytics: Models and Methods
University of Washington via Coursera

Probabilistic Graphical Models 2: Inference
Stanford University via Coursera

Machine Learning
Columbia University via edX

Machine Learning
Columbia University via edX

Regression Modeling in Practice
Wesleyan University via Coursera

Quantitative Formal Modeling and Worst-Case Performance Analysis
EIT Digital via Coursera

Applied Machine Learning in Python
University of Michigan via Coursera

Introduction to Operating Systems
Georgia Institute of Technology via Udacity

Nearest Neighbor Collaborative Filtering
University of Minnesota via Coursera

Computational Photography
Georgia Institute of Technology via Udacity

Knowledge-Based AI: Cognitive Systems
Georgia Institute of Technology via Udacity

Intro to Information Security
Georgia Institute of Technology via Udacity

Learn TensorFlow and deep learning, without a Ph.D.
Google via Independent

Machine Learning 1 — Supervised Learning
Brown University via Udacity

6.S094: Deep Learning for Self-Driving Cars
Massachusetts Institute of Technology via Independent

Computability, Complexity & Algorithms
Georgia Institute of Technology via Udacity

Reliable Distributed Algorithms, Part 1
KTH Royal Institute of Technology via edX

High Performance Computer Architecture
Georgia Institute of Technology via Udacity

Embedded Hardware and Operating Systems
EIT Digital via Coursera

Relational Database Support for Data Warehouses
University of Colorado System via Coursera

Cloud Computing Applications, Part 2: Big Data and Applications in the Cloud
University of Illinois at Urbana-Champaign via Coursera

6.S191: Introduction to Deep Learning
Massachusetts Institute of Technology via Independent

Introduction to Formal Concept Analysis
Higher School of Economics via Coursera

Approximation Algorithms Part II
École normale supérieure via Coursera

Introduction to Recommender Systems: Non-Personalized and Content-Based
University of Minnesota via Coursera

Discrete Mathematics – Shanghai Jiao Tong University via Coursera

Information Security: Context and Introduction
University of London International Programmes via Coursera

Recommender Systems: Evaluation and Metrics
University of Minnesota via Coursera

System Validation (2): Model process behaviour – EIT Digital via Coursera

Advanced Modeling for Discrete Optimization
University of Melbourne via Coursera

Distributed Programming in Java
Rice University via Coursera

Basic Modeling for Discrete Optimization
University of Melbourne via Coursera

Concurrent Programming in Java
Rice University via Coursera

Deep Learning Explained
Microsoft via edX

Continuous Integration and Deployment
via Udacity

Deep Learning for Natural Language Processing
University of Oxford via Independent

Computer System Design: Advanced Concepts of Modern Microprocessors
Chalmers University of Technology via edX

Nature, in Code: Biology in JavaScript
École Polytechnique Fédérale de Lausanne via edX

Introduction to OpenStack – Linux Foundation via edX

GT — Refresher — Advanced OS
Georgia Institute of Technology via Udacity

High Performance Computing
Georgia Institute of Technology via Udacity

Deep Learning Summer School
via Independent

Statistical Machine Learning
Carnegie Mellon University via Independent

Introduction to Cloud Foundry and Cloud Native Software Architecture
Linux Foundation via edX

System Validation: Automata and behavioural equivalences
EIT Digital via Coursera

System Validation (4): Modelling Software, Protocols, and other behaviour
EIT Digital via Coursera

System Validation (3): Requirements by modal formulas
EIT Digital via Coursera

Matrix Factorization and Advanced Techniques
University of Minnesota via Coursera

Compilers: Theory and Practice – Georgia Institute of Technology via Udacity

Artificial Intelligence – Georgia Institute of Technology via Udacity

Cyber-Physical Systems Security – Georgia Institute of Technology via Udacity

Network Security – Georgia Institute of Technology via Udacity

Parallel Programming in Java – Rice University via Coursera

Nguồn: medium.freecodecamp.org

Cựu CEO Uber Việt Nam Đặng Việt Dũng chia sẻ bài học về sự tranh đấu không ngừng nghỉ

Theo chia sẻ của cựu CEO Uber Việt Nam Đặng Việt Dũng, bài học lớn nhất của ông trong thời gian tham gia Uber là khi sống trong vùng an toàn, chúng ta không thu được điều gì mới mẻ, cũng như không khám phá được khả năng của bản thân.

Những năm gần đây, Uber thường bị đánh giá là lép vế hơn so với một trong những đối thủ cạnh tranh lớn nhất của nó tại thị trường Đông Nam Á – Grab. Nhưng đây không phải lần đầu tiên Uber rơi vào giai đoạn khó khăn. Ở các thị trường khác, Uber cũng phải đối đầu với các công ty vận tải lớn như Lyft và Juno ở Hoa Kỳ, Gett ở châu Âu, Didi ở Trung Quốc và Ola ở Ấn Độ. Ngay từ khi thành lập, Uber đã phải đương đầu với không biết bao nhiêu thử thách từ lên ý tưởng, kêu gọi đầu tư, các vấn đề pháp lý cho đến tìm kiếm tài xế, các chương trình ưu đãi cho khách hàng.

Trải qua 7 năm thành lập và phát triển, Uber giờ đây vẫn đang đứng vững tại thị trường thế giới. Nhưng trong 5 năm, 10 năm nữa, tương lai của Uber sẽ đi về đâu thì lại phụ thuộc phần nhiều vào ban lãnh đạo, mà quan trọng nhất chính là CEO Travis Kalanick.

Cuốn sách “Chuyến đi bão táp – Những câu chuyên chưa kể về hành trình thống trị thế giới của Uber” của tác giả giả Adam Lashinsky vừa được Alpha Books giới thiệu tới độc giả Việt Nam.

Để hiểu kỹ hơn về hành trình thống trị thế giới của Uber và những bước tiến từ phía Kalanick, Alpha Books vừa giới thiệu đến đông đảo độc giả Việt Nam cuốn sách “Chuyến đi bão táp – Những câu chuyên chưa kể về hành trình thống trị thế giới của Uber” của tác giả Adam Lashinsky – một cây bút kỳ cựu và cũng là một chuyên gia tài chính công nghệ hàng đầu của nước Mỹ.

Có độ dày 300 trang in khổ 16×24 cm, cuốn sách kể về chặng đường phát triển của Uber được dịch bởi Nguyễn Thụy Khánh Chương và vừa được Công ty CP Sách Alpha cùng Nhà xuất bản Công Thương chính thức phát hành ngày 15/10 vừa qua.

Trong cuốn sách “Chuyến đi bão táp”, tác giả Adam Lashinsky – một cây bút kỳ cựu của tờ Fortune đồng thời là tác giả cuốn sách nổi tiếng “Câu chuyện Apple” (xuất bản năm 2012) sẽ đưa độc giả tới hành trình xây dựng nên thương hiệu Uber bắt đầu từ thời điểm khó khăn nhất cho đến đỉnh cao mà công ty này đạt được. Thông qua những câu chuyện về 2 nhà sáng lập của Uber là Travis Kalanick và Garrett Camp, độc giả có thể hiểu được tính cách thương hiệu của Uber bị tác động mạnh mẽ như thế nào từ Kalanick, hay tại sao Uber từ bỏ thị trường đông dân bậc nhất – Trung Quốc, và cuộc chiến đấu không ngừng nghỉ với các nhà làm luật ở khắp nơi trên thế giới, kể cả Việt Nam ra sao.

Không chỉ nói đến những thành công mà Uber đạt được mà tác giả Adam Lashinsky cũng chỉ ra nhiều mặt tối trong cơ cấu lãnh đạo cũng như những điểm hạn chế trong hoạt động của Uber. Thời kỳ giữa năm 2014 đến đầu năm 2015 là giai đoạn khủng hoảng tồi tệ nhất của Uber khi công ty này gặp phải hàng loạt các vướng mắc từ trong nội bộ ra ngoài là các khách hàng và tài xế. Từ hình ảnh lịch lãm ban đầu, Uber trở thành một cậu trai mới lớn ngỗ ngược của thung lũng công nghệ hàng đầu thế giới.

Đặc biệt, ấn bản tiếng Việt của cuốn sách “Chuyến đi bão táp – Những câu chuyên chưa kể về hành trình thống trị thế giới của Uber” có lời giới thiệu của cựu CEO Uber Việt Nam Đặng Việt Dũng.

Trong lời giới thiệu cuốn sách, ông Đặng Việt Dũng chia sẻ, bạn đã từng biết đến Uber như một công ty vận tải kiểu mới, đồng thời là nỗi kinh hoàng của các công ty taxi trên toàn cầu từ châu Mỹ, châu Âu, châu Á và tại Việt Nam? Bạn có thể cũng biết đến Uber như một công ty công nghệ giá trị nhất trong lịch sử, một công ty non trẻ mới thành lập trong 7 năm được định giá 70 tỷ USD, thậm chí còn vượt trên giá trị của những hãng sản xuất ô tô lớn nhất thế giới như Ford hay General Motors? Bạn cũng từng nghe những câu chuyện trái chiều về Uber trên báo chí thế giới? Bạn đã, đang và sẽ trở thành khách hàng hoặc đối tác tài xế của Uber?

Tại thời điểm cuốn sách này xuất bản tại Việt Nam, trên thế giới đã có hàng trăm triệu người sử dụng dịch vụ hàng ngày và hàng triệu đối tác tài xế kiếm thêm thu nhập một cách linh hoạt thông qua ứng dụng Uber. Dù có rất nhiều công ty khởi nghiệp tuyên bố về việc thay đổi thế giới, nhưng Uber thực sự là một trong số ít đã làm được điều đó: Uber cung cấp dịch vụ giá cả linh hoạt, tin cậy, an toàn và tiện lợi cho người dùng, một cơ hội kinh tế và một hình thức công việc kiểu mới cho tài xế, là tiên phong của nền kinh tế chia sẻ giúp mọi người chia sẻ phương tiện, giảm thiểu nhu cầu sở hữu xe cá nhân, và về trung hạn sẽ giúp các đô thị trên toàn cầu xanh và sạch hơn.

“Quy mô công ty hiện tại là vậy nhưng những ngày đầu, nhóm làm việc tại Việt Nam năm 2014 chỉ có 4 người ngồi trong văn phòng rộng 8m2. Hàng tuần, chúng tôi chỉ mong tìm được 10 – 20 tài xế, và tìm mọi cách tăng trưởng với chi phí tiết kiệm nhất (như việc giới thiệu bạn bè để nhận chuyến đi miễn phí, hay tự tay đi phát “tờ rơi” Uber cho các bạn trẻ, hay phát kem qua chương trình UberICECREAM – ai cũng thích kem cả!).

Bao đêm trắng, bao ngày thấp thỏm khi các công ty taxi đâm đơn kiện (mọi nghiệp đoàn taxi trên thế giới đều rất quyền lực, nên để lên dây cót tinh thần, chúng tôi đùa vui với nhau rằng chúng ta đang thay đổi cả thế giới!) – chúng tôi chỉ đơn giản tin vào việc mình làm là tốt đẹp và đúng đắn”, cựu CEO Uber Việt Nam Đặng Việt Dũng nhớ lại.

Cũng theo chia sẻ của ông Đặng Việt Dũng, câu chuyện đằng sau bề nổi tảng băng trôi Uber sáng có, tối có. Vực sâu và đỉnh cao chỉ cách nhau trong gang tấc. Hy vọng và thấp thỏm luôn là hai trạng thái cảm xúc đan xen hàng tuần, thậm chí hàng ngày của các Uber-ites (tên gọi của các thành viên Uber) chúng tôi. Một “Chuyến đi bão táp” thực sự.

“Qua cuốn sách này, hy vọng bạn đọc sẽ có thêm những góc nhìn đa chiều về câu chuyện của chúng tôi, để hiểu việc thành lập một công ty khởi nghiệp bắt nguồn từ một ý tưởng hay không khó, mà việc duy trì và tăng trưởng mới phức tạp thế nào. Hơn thế nữa, việc không ngủ quên trên chiến thắng, không bị che mắt bởi những “điểm mù” trong quản lý và chiến lược, cũng như định vị tương lai (trong trường hợp của chúng tôi, tương lai là bất định) luôn là điều trăn trở của người đứng đầu bất kỳ tổ chức nào”, ông Dũng nói.

Trong lời giới thiệu cuốn sách “Chuyến đi bão táp” mới được Alpha Books phát hành, vị cựu CEO Uber Việt Nam cũng cho hay: “Bài học lớn nhất của tôi trong thời gian tham gia Uber là khi sống trong vùng an toàn, chúng ta không thu được điều gì mới mẻ, cũng như không khám phá được khả năng của bản thân. Hy vọng những câu chuyện về sự tranh đấu không ngừng nghỉ để tiến lên trong cuốn sách phần sẽ giúp bạn học hỏi được điều gì đó bổ ích cho bản thân mình”.

Nguồn: ictnews.vn

Kinh nghiệm khi đưa ra 1 quyết định về Product tồi

Tôi thường tự hỏi liệu tôi có bị đuối việc khi quyết định như vậy không.

Tôi thấy có rất ít product manager chia sẻ về thất bại của họ, điều này sẽ khiến những người mới lầm tưởng rằng nhũng PM khác làm việc rất tuyệt vời nhưng sự thật là họ luôn bị vướng phải các sai lầm suốt.

Câu chuyện này là về một quyết định tồi tệ khi làm sản phẩm tôi đã thực hiện khi còn làm PM của FreshBooks.

Nó chẳng phải là một trang sử thi về sự thất bại của một công ty, giống tiểu sử không liên quan của một nhà sáng lập nổi tiếng, nó giống một pha xử lí sản phẩm tồi tệ, không có gì đặc biệt hơn. Sự nghiệp của tôi vẫn sống sót nhưng kinh nghiệm đã dạy tôi phải chú ý tới những giả định của mình và làm cách nào mà bạn vẫn có thể sai kể cả khi bạn đang làm điều đúng đắn.

Thật dễ dàng khi biết được lí thuyết để trở thành 1 PM tốt, nhưng áp dụng kiên thức đó một cách kiên định, kỉ luật và khiêm tốn mới là phần khó.

Bối cảnh

FreshBook là sản phẩm kế toán của một công ty nhỏ, có nền tảng về dịch vụ. Khách hàng chủ yếu là các cơ quan, luật sư, nhà đất, v.v… chủ doanh nghiệp sẽ tính tiền khách hàng của họ dựa trên thời gian và cần theo dõi chi tiêu. Chúng ta sẽ gọi những người sử dụng này là “Owner – Chủ sở hữu” cho phần còn lại của bài viết.

Tần nhìn của FreshBook cho tới thời điểm này là một thế giới nơi chủ sở hữu không cần biết đến kế toán thì mới có thể điều hành doanh nghiệp.

Đối với team product, điều này có nghĩa là nếu chúng ta có thể chưng cất “kế toán” xuống các định nghĩa đơn giản mà chủ sở hữu đã biết ( như gửi hóa đơn) và thực hiện toàn bộ công việc kế toán phức tạp phía sau, chúng ta có thể giải quyết một vấn đề lớn bằng cách cho phép họ tập trung phát triển doanh nghiệp của mình mà không phải đụng đến sổ sách.

Vấn đề

Cho dù FreshBook đem lại cho họ rất nhiều lợi ích, nhưng chủ sở hữu vẫn phải nộp thuế chho chính quyền ít nhất một lần một năm. Bởi vì, đa số chủ ở hữu không có nhiều kinh nghiệm về tài chính, điều này có nghĩa họ phải thuê kế toán vào cuối năm để giúp họ hoàn thành và lưu trữ những tài liệu thuế đó.

Vấn đề xảy ra cho các chủ sở hữu là hầu hết tất cả các kế toán đều sử dụng Quickbooks và FreshBooks không thể tích hợp bởi vì các mẫu data không tương thích với nhau.

Giải pháp là các bảng kê. Các bảng kê là ngôn ngữ vũ trụ cho các kế toán. Công việc của team là chuyển dữ liệu của FreshBooks sang các bảng kê và làm chúng trở nên có thể chia sẻ được để các kế toán có thể nhập dữ liệu của FreshBooks sang QuickBooks và sử dụng.

Xác nhận khách hàng

Chúng tôi dành hàng tháng để chuyển dữ liệu sang các bảng kê, điều này rất phức tạp vì chúng tôi phải áp dụng nhiều nguyên lí kế toán cụ thể cho từng loại giao dịch tại FreshBook.

Tôi tình cờ lại từng là CPA nên cũng tự nhiên trở thành người thẩm định phần kế toán trong team.

Song song với việc xây dựng, chúng tôi dành nhiều thời gian kiểm chứng với cả chủ sở hữu và kế toán.

Với chủ sở hữu, chúng tôi kiểm chứng trải nghiệm người dùng khi xuất các bảng kê và chia sẻ với kế toán của họ. Chúng tôi rất nhanh chóng nhận ra rằng giải thích các bảng kê cho các chủ sở hữu chẳng khác gì giải thích code cho người không phải là lập trình viên vậy.

Vì vậy, chúng tôi quyết định làm sáng tỏ tất cả các định nghĩa của bảng kê từ chủ sở hữu và chỉ giải quyết chúng một cách cơ bản. Chủ sở hữu có thể tiếp tục chụp các hóa đơn và gửi như họ vẫn thường làm và các mục tạp chí vẫn sẽ xuất hiện khi họ cần.

Với các kế toán, chúng tôi xác nhận các nguyên tắc kế toán đang được áp dụng cho mỗi giao dịch FreshBooks. Tôi phải nói chuyện điện thoại với ít nhất một kế toán mỗi ngày trong nhiều tháng như chúng ta đã trải qua một số điều như sau:

Như mọi product team trong giai đoạn xây dựng sản phẩm, chúng tôi đã tạo ra hàng trăm quyết định nhỏ trong quá trình đó: Một vài cái đơn giản như đặt tên các loại chuyển đổi hay phức tạp hơn là team hỗ trợ của chúng tôi sẽ giải quyết các vấn đề của khách hàng mà không cần bằng cấp liên quan đến kế toán như thế nào.

Rồi một ngày, chúng tôi cần phải đưa ra một quyết định khó khăn: Ngày nào chúng ta nên dùng để tạo ra một bảng kê

Mọi chuyện kết thúc bằng việc tôi chọn sai, điều này dẫn đến sự thất bại của toàn bộ project.

Quyết định

“Brandon, chúng ta cần phải chọn ngày để lưu trữ mỗi bảng kê, chúng ta có nên:

  1. Sử dụng ngày mà chủ sở hữu thường nhập các thông tin chi phí, hóa đơn, v.v.. hay
  2. Sử dụng ngày mà chủ sở hữu sẽ tạo ra các thay đổi trên app

Các kĩ sư trong team hỏi tôi

Tôi sẽ nói rất kĩ trong phần tiếp theo để có thể hiểu rõ câu chuyện hơn.

Ngày tháng trong kế toán rất quan trọng cho việc tính toán thuê vì họ có thể xác định xem vài thứ có được tính hay không tính thuế trong năm, kể cả khi nộp cho chính quyền. Một ví dụ đơn giản là chi phí được tạo ra vào ngày 31/12/2016 sẽ được tính vào thuế 2016 nhưng nếu được tạo ra vào 1/1/2017 thì sẽ phải đợi đến năm tiếp theo mới được tính. Điều này có thể tạo nên tác động lớn lên nhà kinh doanh.

Sự phức tạp trong việc chọn ngày càng khó hơn khi FreshBooks cho phép chủ sỏ hữu edit ngày tháng bất kì lúc nào. Sau khi suy nghĩ, chúng tôi nhận ra rằng option 1 ( ngày chủ sở hữu nhập số liệu) có thể dẫn đến việc tình cờ gian lận thuế. Sau đây là bối cảnh:

  1. Chủ sở hữu gửi bảng kê tới kế toán để lưu trữ số liệu năm 2015, bao gồm cả chi tiêu vào tháng 6/2015

2. Vào 2016, chủ sở hữu edit chi tiêu tương tự và đổi ngày sang tháng 2/2016. Sau đó, họ gửi các bảng kê 2016 tới kế toán của mình

Chúng ta đã nộp khoản chi tiêu giống nhau cho 2015 và 2016. Điều này rất tệ và về mặt kĩ thuật nó được xem là gian lận.

Khi nhận ra rằng quyết định này sẽ có nhiều nhánh lớn, tôi tập trung vào việc nói với các kế toán – khoảng hơn 30 người – về hoàn cảnh chính xác. Đa số họ đều nhấn mạnh về tầm quan trọng của việc không cho phép chủ sở hữu tình cờ tăng gấp đôi bất cứ chi phí nào, đặc biệt khi họ không có bất cứ nền tảng về tài chính nào.

Các cuộc đối thoại với kế toán nhanh chóng khiến chúng tôi loại bỏ phương án 1. Thay vào đó, chúng tôi nhanh chóng chuyển sang tập trung vào phương án 2 – sử dụng ngày ghi nhân các chuyển đổi

Đây là một cách tiếp cận trực quan đơn giản. Chủ sở hữu chỉ cần đi về năm họ ghi nhận chi tiêu, nhận thanh toán, v.v… và chúng tôi có thể sử dụng bất cứ ngày nào họ tạo ra chuyển đổi trên app là ngày của bảng kê. Chủ sở hữu không cần phải biết về tác động của ngày trên bảng kê – nó sẽ hoạt động bình thường.

Chúng ta sẽ lặp lại phần thứ 2 của bối cảnh gian lận với mô hình mới này.

  1. Vào 2016, chủ sở hữu edit chi tiêu tương tự và đổi ngày sang tháng 2/2016. Sau đó, họ gửi các bảng kê 2016 tới kế toán của mình.

Vào thời điểm đó, điều này như 1 thắng lợi lớn. Chúng ta vẫn có khả năng thoát khỏi các vấn đề mà không cần phải dạy các chủ sở hữu các kiến thức kế toán. Chúng tôi quyết định chọn lựa chọn 2 và chuyển tới việc tạo ra thêm hàng trăm quyết định tiếp theo.

Vào tháng 12 – một tháng trước khi hầu hết các chủ sở hữu cần đến chúng tôi – chúng tôi đã sẵn sàng, và đã thực hiện một phiên bản beta khác của bảng kê cho 2% người dùng. Phản hồi rất tố và các bảng kê được nhập vào mà không có vấn đề gì xảy ra.

Ra mắt ứng dụng

Tại sao quyết định này lại là một sai lầm?

Bạn có thể nhận ra không? Nếu có, thì Shopify đang tuyển dụng đấy :))

Một vài phần khác của bối cảnh: Đối với hầu hết chủ sở hữu, giai đoạn báo cáo thuế sẽ đi chung với lịch năm ( Tháng 1 – 12), vì vậy nên thuế 2016 sẽ bao gồm bất cứ sự chuyển đổi nào diễn ra giữa tháng 1/2016 đến tháng 12/016.

Hạn cuối nộp thuế thường là vào tháng 6 năm sau, điều này có nghĩa là chủ sở hữu có thể có một vài lần bắt đầu chia sẻ bảng ke với kế toán vào tháng 1/2017

Chỉ mình sự thật này không ảnh hưởng lắm đến chúng tôi bởi vì thời gian chủ sở hữu xuất các bản kê không ảnh hưởng lắm vì dữ liệu trong các lần xuất sẽ tôn trọng bất kì phạm vi ngày nào mà chủ sở hữu đã chọn ( Vd: Lựa chọn tất cả các thay đổi trong năm 2016)

Nhưng chính hành vi cùng với giả thiết xấu chúng tôi đã thực hiện về chủ sở hữu dẫn tới sự thất bại của chúng tôi

Giả thiết xấu mà chúng tôi thực hiện chính là:

Chủ sở hữu ghi lại các giao dịch trong app khi chúng xảy ra trong suốt cả năm

Sự thật là hầu hết các chủ sở hữu, như mọi người, hay trì hoãn và không thực sự ghi lại các giao dịch trên app trừ khi họ phải làm vậy nghĩa là thời gian khi họ cần làm việc với kế toán để nộp thuế,.. nghĩa là vào năm sau.

Sự kết hợp của giả thiết xấu này + các hành vi xuất dữ liệu của chủ sở hữu + quyết định thực hiện lựa chọn 2 căn bản làm tính năng trở nên vô dụng với hầu hết chủ sở hữu.

Điều này có nghĩa là việc các chủ sở hữu trì hõan bắt đầu nhập các giao dịch 2016 vào đầu 2017, tât cả các giao dịch sẽ được coi là thực hiện vào 2017, và bảng kê 2016 hoàn toàn trống rỗng.

Điều này. Chắc chắn. 100%. Là thảm họa.

Hậu quả

Chỉ 25% người sử dụng FreshBooks thường xuyên ghi nhân giao dịch suốt năm mới có thể sử dụng tính năng bảng kê. Những người còn lại, đơn giản là tiếp tục làm việc với các kế toán một cách thủ công để làm các báo cáo của FreshBooks trở nên dễ hiểu

Đây là Kicker: Vì chúng tôi bắt đầu chạy sản phẩm vào tháng 1 nên mãi tới tháng 6 mới biết được đã có vấn đề xảy ra! Trong suốt thời gian đó, chúng tôi đã tiệc tùng, chúc mừng số lượng bảng kê được gửi tăng dần, và lãng phí nhiều phản hồi của chủ sở hữu về việc gửi các bảng kê “… rất dễ dàng, cám ơn nhé” (họ không nhận ra dữ liệu trở nên vô dụng bởi vì các dữ liệu được xuất ra một cách tượng hình cơ bản). Team của chúng tôi thậm chí còn chuyển sang dự án khác.

Ơn trời là, ngay khi chúng tôi bắt đầu nghe về feedback, một team khác đã nhận việc này và nhanh chóng sửa tính năng vào thời gian sau để sử dụng ngày mà chủ sử hữu nhập dữ liệu (lựa chọn 1). Không may là chủ sở hữu vẫn gặp các vấn đề khi nhân đôi chi phí, nhưng nếu có 2 điều xấu, tốt nhất là hãy chọn điều ít xấu hơn. Kể từ khi thay đổi, bảng kê trong FreshBook đã thực sự trở nên hữu ích với chủ sở hữu.

Cùng Product Director của Websosanh khám phá mọi vinh quang, mọi gian khổ của vị trí PM tại đây!

Bài học kinh nghiệm

Chúng tôi không mất khách hàng vì tính năng tệ hại này, tuy nhiên quyết định của tôi đã khiến cả team tốn thời gian làm việc chăm chỉ nhiều tháng vô ích.

May mắn là tôi đã qua khỏi cơn thịnh nộ, và team tôi đã chuyển sang làm một sản phẩm khác có tác động cao nhất cho FreshBook vào năm sau. Là một PM, khi thực hiện quyết định tồi tệ như vậy đã dạy tôi một bài học nhớ đời mà tôi đã nằm lòng hôm nay:

  1. Phải nhận ra tác động của quyết đinh mình đã thực hiện, cho dù nó chỉ là một quyết định nhỏ đi chăng nữa. Một khi PM quyết định sẽ ảnh hưởng đến cả team và quy mô của sản phẩm. Hãy cảnh giác và luôn phải đi sâu vào chi tiết.
  2. Suy nghĩ thật kĩ càng về các quyết định được thực hiện dựa trên giả thiết. Giả thiết chỉ ra khó khăn nhất và những thứ đã ăn sâu vào trong công ty mà hầu hết mọi người đều quên rằng chúng là giả thiết. Thứ 2 là những giả thiết đã ẩn sâu vào thành kiến cá nhân khiến chúng ta không có nhận thức về nó
  3. Các nghiên cứu và xác nhận từ khách hàng đều rất quan trọng, tuy nhiên không phải lúc nào cũng là cơ sở để bạn quyết định. Trong câu chuyện này, tất cả các dấu hiệu đều tích cực nhưng chúng tôi cuối cùng vẫn thực hiện sai sản phẩm. Khách hàng không thể nói cho bạn biết nên xây dựng như thế nào vì họ chỉ có thể thấy phần sản phẩm mà họ tương tác cùng chứ không phải toàn bộ hệ thống đang được xây dưng.

Tôi hi vọng câu chuyện này sẽ xoa dịu hội chứng mạo danh mà hầu hết PM đều phải đối mặt hàng ngày khi cả team đều nhìn vào chúng ta mà đưa ra quyết định. Đây là một công việc cần đưa ra quyết định nhanh chóng tuy nhiên có nguy cơ cao với trách nhiệm vô hạn cho những quyết định đó.

Điều tồi tệ sẽ xảy ra. Bạn có thể không phải là người hoàn hảo nhưng không có nghĩa bạn sẽ không thể trở thành 1 PM tốt.

Nguồn: blackboxofpm.com

Đi thực tập vất vả và thậm chí không có lương: Câu chuyện của những người thành công trên toàn thế giới!

Không chỉ nổi tiếng và tài năng, ở những người này còn có một điểm chung khác: Họ đều từng đi thực tập rất vất vả, thậm chí không được trả lương và phải làm việc liên tục nhiều giờ liền.

Khi nhắc đến việc đi thực tập, nhiều người thường cảm thấy ngán ngẩm vì phải làm các công việc nhàm chán, tẻ nhạt, rồi thời gian cũng dài đằng đẵng không kém gì làm việc toàn phần. Thậm chí, nỗi ám ảnh nhất là khi nghe thấy cụm từ: “Thực tập không lương”.

Nhưng khi nhìn rộng ra, chúng ta mới biết được giá trị của việc đi thực tập nhiều hơn là đồng lương hay giấy chứng nhận. Kể cả những người nổi tiếng, họ cũng phải rất vất vả với công việc thực tập sinh trước khi trở nên thành công. Bill Gates không thể thành công nếu không có thời gian thực tập với máy tính và đạo diễn tài ba Steven Spielberg cũng chưa chắc có cho mình 3 giải Oscar trong sự nghiệp nếu không từng thực tập “chui” tại phim trường Universal.

1. Steven Spielberg

Cái tên Steven Spielberg không còn xa lạ với những người yêu điện ảnh Mỹ khi ông là người đã có 3 giải Oscar trong suốt sự nghiệp của mình. Tuy vậy, không ai biết rằng để có được thành công đó, Steven từng phải làm thực tập “chui” tại Universal.

Ở tuổi 17, một người bạn của gia đình đã giới thiệu cho Steven biết về một số công việc tại phim trường Universal. Vấn đề duy nhất rằng đó không phải là một công việc thực tập sinh “chính thức” và anh không được ra vào trong khu vực phim trường. Tuy nhiên, không vì thế mà Steven bỏ qua cơ hội quý giá này. Chàng thanh niên 17 tuổi vẫn lẻn vào phim trường mỗi ngày, tìm cách nói chuyện với các đạo diễn hay lẻn vào bất cứ chỗ nào có thể.

Dù bị đuổi ra bao lần, Steven vẫn cố gắng quay lại. Ông từng quay một bộ phim ngắn mang tên Amblin và khi các nhà sản xuất của Universal xem qua, họ đã vô cùng ấn tượng. Nhờ những tháng ngày miệt mài đi “thực tập chui” và dĩ nhiên không hề có lương, Steven Spielberg đã có được hợp đồng đầu tiên với Universal, mở ra con đường thành công cho ông sau này.

>>> Xem thêm: Các level trong công việc IT

2. Conan O’Brien

Conan O’Brien là một nghệ sĩ hài kịch nổi tiếng tại Mỹ. Tuy nhiên, sự nghiệp của ông lại phát triển theo hướng mà chẳng ai ngờ tới: Conan từng là một thực tập sinh tại Quốc hội. Trong buổi phỏng vấn “Inside the Actor’s Studio”, Conan nhắc đến việc mình từng là thực tập sinh cho ông Barney Frank tại Hạ Viện Mỹ. Đến năm 2015, ông Frank từng xuất hiện với vai trò khách mới trong một buổi trò chuyện của Conan trên đài TBS.

3. Tom Hanks

Trước khi trở thành một ngôi sao truyền hình nổi tiếng, Tom Hanks từng thực tập tại Lễ hội nhà hát Great Lakes, Cleveland, Ohio. Dù ban đầu thù lao rất ít ỏi và công việc cực kỳ bận rộn, Tom đã học được kỹ năng tự tin trên sân khấu cũng như nhiều kinh nghiệm trong lĩnh vực kịch. Cuối cùng, đợt thực tập kéo dài tới tận 3 năm và Tom Hanks cũng đã bỏ ngang đại học.

>>> Xem thêm: Con đường trở thành thực tập sinh tại Google

4. Bill Gates

Khi Bill Gates chỉ mới 17 tuổi, ông đã đi thực tập với công việc trong Hạ Viện Mỹ. Công việc chính của ông tại đây là đi gửi giấy tờ, chuẩn bị phòng họp mỗi ngày cũng như nhiều công việc văn phòng khác. Trong thời gian làm việc tại đây, ông mới nhận ra rằng chính trị không phải con đường mình muốn theo đuổi.

Trải nghiệm công cụ tính lương gross to net chuẩn tại TopDev

5. Oprah Winfrey

Oprah Winfrey là một hình mẫu thực tập sinh mà bất cứ ai nên học hỏi theo. Bà bắt đầu công việc thực tập tại đài truyền hình Tennessee rồi sau đó được nhận công việc đọc bản tin thời sự. Sau đó, sự nghiệp của Oprah Winfrey phát triển vượt bậc và bà đã lập ra được cả một đế chế truyền thông tại Mỹ.

6. Ursula Burns

CEO của hãng Xerox, bà Ursula Burns cũng đi lên từ vị trí thực tập sinh. Nhiều năm sau đó, bà đã làm nên sự nghiệp và trở thành người phụ nữ da màu đầu tiên được vào trong top 500 CEO do Fortune bình chọn.

Theo Wall Street Journal, Ursula đảm nhận công việc thực tập sinh tại Xerox vào năm 1980 khi đang hoàn thành nốt khóa học thạc sĩ tại đại học Columbia. Khi đó, công việc chính của bà là công nhân cơ khí. Với việc chứng tỏ bản thân thành công, bà đã leo lên nhiều vị trí và trở thành CEO của Xerox.

>>> Xem thêm: Kinh nghiệm đi thực tập dành cho lập trình viên

7. Steve Jobs

Sự nghiệp của Steve Jobs bắt đầu khi ông có công việc thực tập đầu tiên tại Hewitt Packard khi mới 12 tuổi. Tại đây, công việc hính của ông là làm việc trong một dây chuyển sản xuất lắp ráp ốc vít máy tính. Nhờ công việc thực tập này, ông đã gặp được Steve Wozniak, người sau này trở thành đồng sự của Steve Jobs gây dựng lên đế chế Apple vào năm 1976.

Nguồn: Applancer Careers via Kênh 14

Có nên học Vanilla JavaScript? Chắc chắn rồi!

Có nên học Vanilla JavaScript? Chắc chắn rồi!

Mục đích của bài viết này là để nhấn mạnh tầm quan trọng của JavaScript cơ bản đối với front-end developer. Tôi sẽ giải thích cho bạn hiểu vì sao bạn nên biết về (Vanilla) JavaScript. 

Ngoài ra, tôi cũng sẽ đưa một số nguồn học hữu ích để cho bạn bắt đầu tìm hiểu.

Mặt khác, tôi mong bài viết này sẽ giúp các web developers có thêm động lực để không bỏ qua nhưng phần quan trọng của JavaScript như hoisting, closures, hay prototypes và chỉ biết nhắm tới các frameworks như React hay Angular 2.

Mọi người đều muốn developer biết về ${addTheHotFramework}…

Vậy bạn có lí do gì để bỏ qua Vanilla JavaScript?

Có nên học Vanilla JavaScript? Chắc chắn rồi!

Rất khó để trở thành một developer giỏi nếu không hiểu cái nền tảng của một ngôn ngữ. Bạn sẽ cần biết về những qui luật trước khi bắt đầu trò chơi.

Tôi cảm thông với nhiều web developer muốn được đi làm sớm. Chính bản thân tôi cũng từng như vậy.

…..nhưng học về Vanilla JavaScript sẽ giúp ích cho bạn rất nhiều trong tương lai

Xin đừng hiểu nhầm rằng tôi có thành kiến đối với JavaScript frameworks. Nó hoàn toàn ngược lại. Rất nhiều trong số chúng sẽ giúp bạn viết code vừa đẹp lại sạch, dễ bảo trì và debug.

Thế nhưng JavaScript ecosystem đang phát triển quá nhanh. Các frameworks mới vẫn mọc lên như nấm. Nhiều tính năng được cải thiện và tích hợp. Và quan trọng nhất là tất cả những framework ngày nay sẽ bị thay thế bởi những kẻ kế thừa trong tương lai.

Do đó, bạn có còn nghĩ việc biết một JavaScript framework có đủ không?

Hay việc phải biết tất cả mọi libraries và frameworks liệu có khả thi?

Có nên học Vanilla JavaScript? Chắc chắn rồi!

Còn nếu bạn đã quen thuộc với nền tảng của JavaScript thì khi phải dùng framework mới thì bạn sẽ chỉ mất công học về cú pháp. Bởi những qui luật đều được giữ nguyên.

Ngược lại, bạn mà chỉ biết về một JavaScript framework thì sẽ rất khó khi muốn học thêm bởi mỗi framework sẽ dùng một set các qui luật JavaScript khác nhau. Như vậy sẽ rất mất thời gian để bạn học chúng cũng như dễ bị bug khi code hơn.

Các JavaScript frameworks và libraries đều dựa trên Vanilla JavaScript.

Do đó nếu bạn muốn gắng bó dài lâu thì phải biết Vanilla JavaScript. Nó là một trong những yêu cầu cần thiết để một developer thành công, đặc biệt là khi làm trong JavaScript ecosystem.

Có nên học Vanilla JavaScript? Chắc chắn rồi!

Kinh nghiệm cá nhân

Tôi trước khi làm developer đã từng là một luật sư. Chỉ mới cách đây 18 tháng, tôi viết được JavaScript function đầu tiên của mình, và từ tháng thứ mười tôi đã bắt đầu làm việc như một front-end developer.

Do không hề có bất kì kiến thức gì về lập trình, tôi đã mất rất nhiều thời gian để có thể học JavaScript đúng cách. Tôi đã thử qua nhiều cách thức học khác nhau, một số khá là tốt và số khá thì không được như vậy.

Nhưng quan trọng nhất vẫn là việc bạn sẽ phải học JavaScript và nền tảng của nó ngay từ lúc bắt đầu. Frameworks chỉ đứng thứ hai sau đó.

Có nên học Vanilla JavaScript? Chắc chắn rồi!

Hiện tại, tôi đang làm việc với một ReactRedux stack. Dù vậy, tôi vẫn thường gặp phải những vấn đề mà may mắn thay vẫn giải quyết được nhờ kinh nghiệm về Vanilla JavaScript. Đây là những bug cực kì thách thức nếu bạn chỉ biết vài framework.

Học React hay Angular 2 sẽ không giúp bạn biết objects sẽ được passed bởi reference  hay cách closures hoạt động. Để hiểu được những phạm trù này chỉ với framework sẽ rất là khó khăn.

Hơn nữa, khi làm về JSX (React, Vue, Inferno) hay TypeScript (Angular 2), bạn sẽ cần phải hiểu rõ cách mà các framework này hoạt động. Do đó, bạn cũng cần phải biết về JavaScript trước tiên.

Vậy thì tôi nên học JavaScript ở đâu?

Câu hỏi mà hẳn bạn đang thắc mắc là: “Có nguồn nào tốt để học Vanilla JavaScript?”

Phải nói rằng có hàng tấn các nguồn và sách về JavaScript và frameworks của nó. Tuy vậy chỉ có vài nguồn là thật sự tập trung về Vanilla JavaScript.

Có nên học Vanilla JavaScript? Chắc chắn rồi!

Eloquent JavaScript sẽ giúp bạn không chỉ hiểu về JavaScript mà còn cả nền tảng của lập trình. Nếu bạn đã là một developer thì cuốn sách này sẽ cho bạn một cái nhìn mới về JavaScript.

Một nguồn khác cũng khá tuyệt là series sách You Don’t Know JavaScript (YDKJS)  của Kyle Simpson. Kyle rất giỏi trong việc giảng dạy. Những bài học của ông dù là về những khái niệm phức tạp trong JavaScript vẫn rất dễ hiểu và chi tiết.

Một trong những điều tuyệt nhất về Eloquent JavaScript và YDKJS là bạn có thể đọc chúng miễn phí.

Còn nếu bạn thích xem video hơn là đọc sách thì tôi khuyến khích bạn thử qua Kyle’s online coursesJavascript: Understanding the Weird Parts của Anthony Alicea.

Tham khảo các việc làm cho lập trình Javascript mới nhất tại Topdev

Hãy học Vanilla JavaScript ngay từ bây giờ

Bạn sẽ không hối tiếc khi đầu tư thời gian quí giá của mình vào Vanilla JavaScript. Nó sẽ thật sự giúp cải thiện kĩ năng lập trình của bạn.

Với tôi, việc học JavaScript thật sự đem lại lợi ích to lớn hơn là đầu tư vào việc chỉ học Framework thôi. Bởi chúng đều chỉ là những con đường tắt, và ẩn sâu bên dưới, JavaScript là người điều khiển tất cả.

Nếu bạn có thể rút ra một điều gì sau khi đọc bài viết này, có lẽ nó sẽ tương tự như sau:

Vanilla JavaScript sẽ giúp bạn trở thành một developer thành công.

Có nên học Vanilla JavaScript? Chắc chắn rồi!

Nguồn: blog.topdev.vn via Medium

 

So sánh 5 API hàng đầu của Computer Vision

Trong sáu tháng qua, Google, Microsoft và IBM đã công bố một bộ “API thông minh” cung cấp nhiều loại hình hình ảnh, video, giọng nói và nhận dạng văn bản. Ví dụ như qua một bức ảnh ở công viên, bạn có thể nhận biết được các tags bao gồm một con chó, một dĩa nhựa và cây cối. Làm thế nào với các mô hình out-of-the-box ứng dụng cho các mục đích chung, và chúng ta có thể sử dụng chúng để xây dựng các sản phẩm hoặc các tính năng thú vị mới?

Trong bài đăng này, tôi sẽ so sánh khả năng gắn nhãn hình ảnh của năm nhà cung cấp với các quan điểm và đề xuất cho các bạn xây dựng sản phẩm. Tôi cũng cung cấp một công cụ mã nguồn mở, Cloudy Vision, để bạn có thể thử nghiệm những hình ảnh của riêng bạn và chọn nhà cung cấp tốt nhất cho bạn (spoiler: Google không phải là người chiến thắng). Cuối cùng, tôi chia sẻ kết quả ghi lại 40 ví dụ hình ảnh.

Lưu ý rằng mục đích của tôi nhằm để có được một cảm nhận về chất lượng của các API này, đây không phải là một nghiên cứu chính xác. Tôi cũng tập trung vào ghi nhãn hình ảnh, không phải phát hiện khuôn mặt hoặc OCR

Approach

Tôi bắt đầu bằng cách chụp một vài bức ảnh và chạy chúng thông qua các công cụ kiểm tra dựa trên web của một số nhà cung cấp. Kế hoạch của tôi là tự tìm kiếm các kết quả trong bảng tính. Than ôi, nhưng quá trình này quá tẻ nhạt. Nó cũng không đầy đủ bởi vì không phải tất cả các nhà cung cấp đều có các công cụ kiểm tra như vậy, ý tôi là Google.

Tôi nhanh chóng nhận ra rằng để xem xét và so sánh từng phần của nhiều hình ảnh, cách tốt nhất là xây dựng một công cụ nhỏ. Tôi đã viết một Python script để lặp lại một thư mục các hình ảnh, gọi các API của nhà cung cấp khác nhau, cache các câu trả lời, và hiển thị một trang web để xem các dữ liệu tôi quan tâm.

Cloudy Vision là một open source tools để tạo ra các kết quả như thế này cho bộ ảnh của bạn.

Cloudy Vision có thể ghi tag hình ảnh từ Microsoft, Google, IBM, Clarifai và Cloud Sight nhưng rất dễ mở rộng để hỗ trợ nhiều nhà cung cấp hơn. Nếu bạn có tập hình ảnh và muốn khám phá các tags, đây là một điểm khởi đầu tốt cho đánh giá định tính, cũng như cho việc kiểm tra tính chính xác nghiêm ngặt hơn (ví dụ: so sánh nhãn tính với bộ yêu cầu của bạn).

Observations

Tôi dùng khoảng bốn mươi hình ảnh thông qua 5 nhà cung cấp. Tôi khuyên bạn nên xem trang đó tạo thành các hiển thị của chính bạn trước khi đi xa hơn. Dưới đây là một số điều tôi nhận thấy:

  • Hầu hết các hình ảnh đều được gắn với một loại nhãn chính xác cao.
    Kết quả đã đủ tốt để hiểu được bản chất của một hình ảnh, ví dụ: nó là thực phẩm, phòng, nhạc cụ, hay động vật? Khá ấn tượng khi xem xét rất nhiều thứ bạn có thể ném vào nó.

  • Labels có tính cụ thể không đáng tin cậy

Nếu bạn muốn biết chi tiết, chẳng hạn như loại thực phẩm, hoặc chính xác là động vật nào trong bức ảnh, kết quả có sự khác biệt rất lớn. Một số ấn tượng, như nhận ra tablas của tôi (trống cổ điển Ấn Độ), nhưng nhiều hình ảnh không có nhiều nhãn cụ thể.

  • Rất hiếm có lỗi, nhưng sẽ xảy ra

Trong hầu hết các trường hợp, khi thuật toán bị lẫn lộn, nó có xu hướng tạo nhãn có điểm tin cậy thấp, thay vì chỉ đoán sai – vì vậy bạn có thể bỏ qua chúng một cách an toàn. Nhưng ngay cả trong thư mục lưu trữ của tôi, 5-10% các hình ảnh chỉ được dán nhãn không chính xác, đôi khi có kết quả vui nhộn.

  • Có sự khác biệt đáng kể giữa các nhà cung cấp.

Vì quan điểm công khai của họ, và những thành tựu gần đây về AI, tôi nghĩ rằng kết quả của Google sẽ cao hơn các nhà cung cấp khác, nhưng điều đó không nhất thiết phải đúng. Trong tập đoàn nhỏ của tôi, tôi đánh giá Clarifai ở vị trí hàng đầu, tiếp theo là Google và Microsoft về chất lượng tương đương, và sau đó thấp hơn IBM. Lưu ý rằng Clarifai là một công ty tư nhân chỉ tập trung vào việc cung cấp các API nhận diện hình ảnh, và họ đã làm việc này từ năm 2014, trước khi những người khổng lồ bước vào không gian này.

  • Clarifai làm tốt, Google với Microsoft cũng tạm được, Cloudsight… hừm

Bạn có thể nhận thấy trong các ví dụ ở trên rằng các chú thích của Cloud Sight thật tuyệt vời (bạn có thể xem ví dụ bên dưới). Nếu bạn truy cập trang web của họ, bạn sẽ nhận thấy rằng họ giới thiệu về ‘công nghệ nhận dạng hình ảnh’ của họ, và do đó bạn có thể đoán rằng đó là do một mô hình machine learning ấn tượng. Tuy nhiên, có vẻ như họ gắn tag của con người nhiều hơn so với những gì mà họ marketing.

Thứ nhất, độ trễ cho hầu hết các nhà cung cấp API là chưa tới 1 giây, trong khi các tài liệu của Cloud Sight yêu cầu bạn đợi 6-15 giây (trong thực tế thì nó khoảng 5-30). Thứ hai, tôi nhận ra một điều này bên trong tài liệu về sự riêng tư của họ “Dịch vụ của chúng tôi dùng một công nghệ độc quyền sử dụng cả computer vision và crowdsourcing”.Thứ ba, một số tìm kiếm khác đã bật lên chủ đề Reddit về cách chúng hoạt động, và nhận xét này từ humman tagger. Và cuối cùng, tôi đã gửi cùng một hình ảnh với các tên tập tin khác nhau, và có phụ đề khác nhau, cho thấy rằng việc gắn tag của con người là có liên quan. Oh, và nhãn hiệu đầu tiên có lỗi chính tả …!

Vì vậy, trong khi kết quả của Cloud Sight thực sự ấn tượng, tôi không chắc đó là công bằng khi so sánh chúng với các nhà cung cấp khác từ quan điểm nhìn của machine learning thuần túy. Hơn nữa, chi phí của họ cao hơn đáng kể, có thể cho rằng có nhiều trường hợp gắn thẻ thủ công ở phía sau hơn họ cho phép.

Tôi đã gửi cùng một hình ảnh nhưng với một tên tập tin khác nhau cho tất cả các nhà cung cấp. Tất cả đều có cùng các thẻ trừ Cloud Sight.

  • Xoay chiều có thể ảnh hướng đến độ chính xác

Tôi đã làm một phiên bản được quay ngược của hình ảnh của chú chó con được hiển thị ở trên,và như vậy, tôi có kết quả khác nhau. Điều quan trọng là phải nhận biết được, đặc biệt là vì thông tin xoay trong JPEG được lưu trữ trong dữ liệu EXIF ​​và có thể được xử lý bằng các cách khác không theo tiêu chuẩn bởi các ứng dụng khác nhau.

  • Kết quả sẽ tốt hơn nếu bạn zoom vào các khu vực cần quan tâm

Tôi muốn xem nếu tôi có thể lấy camera an ninh của tôi để cho tôi biết rằng có một gói hàng ở cửa. Nó đã không hoạt động tốt, cho đến khi tôi cắt hình ảnh của khu vực được quan tâm để xác định. Nếu trường hợp sử dụng của bạn cho phép người dùng xác định khu vực quan tâm, hãy xem xét cách tiếp cận này.

  • Giá cả theo số lượng

Giả sử bạn có 100.000 hình ảnh để dán nhãn. Google sẽ có chi phí 500 đô la, Clarifai 220 đô la, 200 đô la của IBM và giá của Microsoft vẫn chưa được công bố.

Không quá tồi, xem xét có giá rẻ nhất để có được ở quy mô lớn hoặc để offline processing(so với thời gian thực). Lưu ý rằng Cloud Sight, nhà cung cấp nhãn hiệu có thể đang thực hiện với rất nhiều con người, sẽ có giá 3.000 đô la, mức độ lớn hơn so với các nhà cung cấp gắn bó với machine learning.

Hãy lấy ví dụ giả thuyết: nếu tôi là Dropbox và tôi muốn cung cấp hình ảnh gắn tag cho khách hàng của tôi, giả sử mỗi khách hàng tải lên 500 hình ảnh một tháng, tôi sẽ phải trả 2 đô la cho mỗi khách hàng. Với kế hoạch hàng năm 100 đô la, điều đó sẽ ảnh hưởng đến lợi nhuận của Dropbox, nhưng về mặt lý thuyết, một công ty ở quy mô đó sẽ được giảm giá tốt hơn hoặc chuyển sang xây dựng in house sau khi chứng minh được giá trị cho thị trường.

Kết luận

Tôi ấn tượng với chất lượng phân loại chung – nó đủ tốt để có được đặc tính cơ bản của một hình ảnh, nhanh và chi phí thấp ở quy mô tương đối thấp.

Điều đó nói rằng, rất khó để đánh giá một giải pháp mà không có một vấn đề thực sự. Ví dụ, việc sử dụng là để phân loại(ví dụ: “đây là thực phẩm”), nếu tôi cần những thông tin chi tiết cho trường hợp sử dụng của tôi (ví dụ: “trang web công thức nấu ăn của tôi cần biết đây có phải là một mẩu thịt hay rau”) . Với ý nghĩ đó, hãy để tôi đặt ra một vài giả thuyết khi bạn có thể thấy các API này có giá trị một lần với bạn.

Các vùng mà API sẽ tỏ ra hữu ích ngay lập tức

  • Tổ chức và phân tích hình ảnh chung

Nếu sản phẩm của bạn là trang chia sẻ ảnh người tiêu dùng, trang web chụp ảnh cổ tích, hoặc chỉ có rất nhiều hình ảnh đa dạng mà bạn muốn nhóm và tìm kiếm, bạn có thể thấy rằng việc ghi nhãn chung là đủ để tăng giá trị. Điều này cũng đúng nếu bạn đang cố gắng nắm bắt được nội dung trong một tập hợp lớn các hình ảnh (ví dụ: “những loại gì được hiển thị trên áp phích phim và các thể loại khác nhau?”).

  • Khả năng phát triển E-commerce

Các trang web thương mại điện tử thường kết thúc với nhiều SKUs nơi họ có ít thông tin về sản phẩm nhưng có thể có hình ảnh. Không có từ khóa văn bản, các sản phẩm này phần lớn không thể tìm thấy. Ngay cả việc ghi nhãn cơ bản, như “áo thun” hoặc “áo mùa hè” có thể tăng doanh thu bằng cách làm cho sản phẩm ẩn này trước đây có sẵn thông qua tìm kiếm, trình duyệt, đề xuất…

  • Sử dụng tiểu sử dữ liệu của hình ảnh

Có rất nhiều camera theo dõi an ninh / vật nuôi / em bé ở ngoài đó có thể làm được nhiều hơn với dữ liệu hình ảnh mà họ đang thu thập. Mặc dù nhiều ứng dụng sẽ cần các mô hình tùy chỉnh (ví dụ: giám sát trẻ em Nanit), có thể có một số có thể sử dụng các API chung này, ví dụ: nhận được báo cáo hàng ngày từ camera an ninh nói với tôi khi người gửi thư của tôi đến, các thành viên trong gia đình vào / ra, con chó hàng xóm đi dạo, vân vân.

  • Hiểu hành vi của người dùng để tương tác, giữ chân, bán hàng

Trong nhiều trường hợp, hãy hiểu thêm về hành vi sử dụng của khách hàng giúp bạn cung cấp trải nghiệm sản phẩm tốt hơn hoặc cơ hội để bán hàng. Nếu bạn có một sản phẩm nơi người dùng tải lên hình ảnh của chính họ, bạn có thể thấy những gì họ đang làm và cung cấp cách để tự động cải thiện hình ảnh, bán cho họ một phiên bản tốt hơn hoặc chỉ cần gắn thẻ người dùng bằng một nhãn hiệu giúp bạn tiếp thị họ tốt hơn hình thức marketing offline.

Những vùng mà các API này sẽ không đáp ứng được

  • Yêu cầu đặc biệt cao, hoặc không phổ biến

Nếu bạn có một trang web về công thức nấu ăn và cần biết liệu hình ảnh có nigiri, sashimi, hoặc maki trong đó, thì có thể bạn muốn sử dụng một mô hình tùy chỉnh. Một số nhà cung cấp đã cung cấp các mô hình cụ thể cho các yêu cầu khác nhau, ví dụ: Clarifai có các mô hình tùy chỉnh cho đám cưới, du lịch hoặc thực phẩm.

Có nhiều khả năng, nếu bạn có thể sản xuất một bộ sưu tập có chú giải đáng kể, bạn sẽ muốn mô hình phân loại của riêng bạn. Trong trường hợp này, bạn không nhất thiết phải bắt đầu từ đầu bằng cách xây dựng phân loại của riêng bạn, các nhà cung cấp khác nhau cũng cung cấp các API đơn giản để đào tạo phân loại với các ví dụ tích cực (ví dụ “đây là sashimi”) và các ví dụ tiêu cực (ví dụ: “như sashimi nhưng không phải nó”). Tôi đã không cố gắng làm điều này, nhưng tôi mong muốn nghe nếu những người khác đã tìm thấy chúng để làm tốt.

  • Độ chính xác là quan trọng

Tính chính xác về gắn thẻ chung phụ thuộc vào mức độ chi tiết mà trường hợp sử dụng của bạn cần. Tôi đã không thực hiện đánh giá độ chính xác định lượng, nhưng số liệu định tính nhỏ của tôi cho thấy bạn có thể có khoảng 80-90% (phạm vi rộng). Nếu bạn cần gắn thẻ chính xác cao, các mô hình này có thể là một khởi đầu tốt, nhưng bạn sẽ muốn tăng thêm nó với một số loại xét duyệt của con người. Trong những trường hợp này, Cloud Sight có thể là một giải pháp tuyệt vời, nhưng cũng tốt Mechanical Turkey, hoặc người mới tham gia vào vấn đề này như Spare5 (đây cũng là những giải pháp tuyệt vời để xây dựng đào tạo phân loại của riêng bạn).

Suy nghĩ riêng:

  • Các API ghi nhãn hình ảnh này có nên dùng không?
    Tôi thấy khó để có được một ý tưởng về bao nhiêu người đang thực sự sử dụng các API này trong sản xuất. Có một số tín hiệu, chẳng hạn như các chủ đề như thế này trên Hacker News, hoặc phần thảo luận khá sôi động trên các diễn đàn Azure, nhưng tôi đã không nghe thấy từ những người dùng hài lòng. Tôi thầm nói rằng đây là những trường hợp tôi mô tả ở trên, và do đó, sẽ đặt cược rằng chúng ta sẽ thấy các công ty tư nhân và cộng đồng tiếp tục cung cấp các dịch vụ này.
  • Hình ảnh có dán nhãn chung chung cho Google, MS, v.v …?
    Tôi không chắc chắn về nhãn dán chung chung, nhưng những gì tôi biết là những sản phẩm gateway tuyệt vời cho các công ty cuối cùng sẽ phát triển và muốn đầu tư nhiều hơn vào việc xây dựng các mô hình tùy chỉnh. Tại thời điểm đó, bạn có thể bắt đầu tận dụng Tensor Flow của Google hoặc các sản phẩm Azure khác của Microsoft để giúp xây dựng, đào tạo và triển khai các mô hình của riêng bạn; và đây là nơi đặt cược chiến lược dài hạn thật sự. Vì vậy, mặc dù dán nhãn hình ảnh chung chung có thể không phải là mục tiêu cuối cùng của việc kinh doanh, nhưng đó là một cách xứng đáng để chiếm được khách hàng tương lai.
  • Tôi rất thích nghe từ người dùng thực.
    Tôi tò mò muốn nghe từ những người cần các giải pháp gắn thẻ, và đã thử bất kỳ nhà cung cấp này. Trường hợp sử dụng của bạn là gì? Liệu bạn có dùng các nhãn APIs trước tiên hoặc bạn cần một giải pháp tùy chỉnh nhiều hơn? Bạn đã quyết định đi với những nhà cung cấp này hay không? Bạn đã làm gì với thay vào đó, và làm thế nào nó là làm việc cho bạn? Nếu bạn có khuynh hướng chia sẻ, tôi rất muốn nghe nhiều hơn, và có thể đăng một bài đăng blog cập nhật lên blog này.

Resources

  • Cloudy Vision Github page
  • Cloudy Vision output for my small corpus
  • Microsoft Computer Vision API
  • Google Cloud Vision API
  • IBM Vision Recognition API
  • Cloud Sight API
  • Clarifai

Nguồn: blog.topdev.vn via goberoi.com 

 

Vietnam Web Summit – Chuỗi sự kiện được cộng đồng phát triển Web mong chờ nhất trong năm đã chính thức quay trở lại

Tiếp nối thành công của Vietnam Web Summit 2020 – chuỗi sự kiện công nghệ dành cho cộng đồng phát triển web. Năm nay, Vietnam Web Summit sẽ tiếp tục được tổ chức ở 2 thành phố lớn TP.HCM (01/12) và  Hà Nội (08/12).

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, Facebook, Nielsen…, Vietnam Web Summit 2017 hứa hẹn là đại tiệc công nghệ được mong chờ nhất trong giai đoạn cuối năm!

Vietnam Web Summit sẽ tiếp tục hỗ trợ các doanh nghiệp trưng bày booth demo sản phẩm, giới thiệu những ý tưởng công nghệ mới nhất đến từ các tập đoàn công nghệ, các Tech startups. Đây cũng là cơ hội gặp gỡ với các nhà đầu tư thiên thần, đại diện các quỹ đầu tư và xuất hiện trên các phương tiện truyền thông của sự kiện. 

Theo đại diên ban tổ chức Vietnam Web Summit dự kiến thu hút khoảng 9.000 developer trên cả nước, cùng hơn 100 diễn giả trong và ngoài nước, với hơn 100 chuyên đề chia sẻ chuyên sâu về Technical (Cloud, Tech, Trend) và E-commerce (Payment, Advertising, Marketing) cùng những cập nhật mới, xu hướng mới & dự đoán về ngành công nghiệp Internet tại Việt Nam. 

Theo đánh giá của các chuyên gia, năm 2017 ghi nhận sự bùng nổ của hàng loạt các công nghệ Web: Trí thông minh nhân tạo (AI), máy học nâng cao (Advanced Machine Learning), trợ lý ảo, thực tế ảo (VR) và tương tác thực tế (VR), … Đặc biệt trong giai đoạn cách mạng cộng nghiệp 4.0 đang đến rất gần, khi mà những công nghệ mới thay đổi từng ngày từng giờ thì Vietnam Web Summit 2017 là cơ hội lớn để các doanh nghiệp, developer cập nhật những công nghệ web mới nhất, trau đổi trực tiếp với các chuyên gia đầu ngành, đồng thời cũng là diễn đàn để các doanh nghiệp, developer được gặp gỡ, giao lưu, trao đổi kiến thức kinh nghiệm từ đó mở rộng quan hệ hợp tác và giới thiệu sản phẩm của mình tới cộng đồng.

Ưu đãi đặc biệt dành cho độc giả của Techtalk 200 bạn đăng ký vé đầu tiên sẽ được giảm 50 000/vé Standard.

Đăng ký tại đây

Thời gian & địa điểm sự kiện

  • 01/12/2017 tại Grand Palace, 142/18 Cộng Hòa, P.4, Q. Tân Bình, Tp.HCM
  • 08/12/2017 tại Trung tâm Hội nghị Forevermark, 614 Lạc Long Quân, Q. Tây Hồ, Hà Nội

Thông tin chi tiết:

Hotline/ Liên hệ hợp tác:

  • A Bình: binh@applancer.net | 0904 392 888
  • Event team: event@applancer.net | 08 6273 3497

 

Nguồn: TopDev via Techtalk

Làm sao để chuyển đổi từ Graphic Design sang UX Design? (phần 2)

Graphic design

PHẦN 1

Lợi thế lớn nhất của 1 Graphic design khi chuyển sang UX Design

Tính thẩm mĩ

Lợi thế lớn nhất của Graphic design khi chuyển sang UX Design là họ có thể làm mọi thứ trở nên hấp dẫn hơn. Một quan niệm sai lầm phổ biến về UX Design là không cần khả năng sử dụng thẩm mĩ vượt trội. Ngược lại, tính thẩm mĩ tốt được nhận thấy sẽ cải tiến tất cả trải nghiệm của người dùng sản phẩm – bằng cách làm họ thoải mái hơn, tạo ra ấn tượng ban đầu tích cực nói chung là cho thấy bạn đang quan tâm tới khách hàng.

Tính thẩm mĩ cũng giúp designer giao tiếp với các bên liên quan trong nội bộ công ty. Những người cựu-graphic design có thể trình bày kết quả khảo sát theo cách mà các bên liên quan phải ngồi im và thực sự chú ý. Kĩ năng graphic design thường được coi là tùy chọn trong UX research, nhưng không thể phủ nhận tác động của những kết quả khảo sát được trình bày đẹp. Nếu bạn thực sự muốn thay đổi, bạn sẽ cần phải cân bằng xu hướng khiến mọi thứ lộng lẫy với nhu cầu phát triển dự án design.

Đã có nhiều lần UX Design khi mà chỉ vài bức vẽ nguệch ngoạc ở phía sau tờ khăn ăn là quá đủ thay vì dành 3 ngày để tạo ra 1 tờ poster trong trường hợp này.

Các quy ước và xu hướng

Với nền tảng sẵn về design không chỉ có nghĩa là bạn có thể nắm bắt các thuật ngữ thiết kế, mà còn có nghĩa là bạn sẽ hiểu và nắm bắt được các xu hướng trong việc thiết kế web và app. Đa số các UX Design sẽ sử dụng các quy ước chuẩn (Như trạng thái chuyển đổi bật/tắt, danh sách thả xuống hay nhiều lựa chọn v.v.) vì người sử dụng rất mong chờ những tương tác này trên website.

Graphic design, đặc biệt khi bạn đã từng tạo ra các bản mẫu trong qua khứ – đều cũng sẽ quen thuộc với các quy ước này. Điều đó có nghĩa là bạn sẽ thích nghi nhanh hơn với vai trò là 1 UX Design hơn là một người không có nền tảng trước đó. Có thể nói giao tiếp là cốt lõi của bất cứ dự án design nào và khả năng trình bày tất cả những gì mình mong muốn là một lợi thế lớn.

Làm sao để tăng cường các kĩ năng khi nhảy từ Graphic Design sang UXDesign?

Liệu có khoảng cách nào giữa các kĩ năng của 1 Graphic Design và 1 UX Design hay không? Tất nhiên là có, nhưng đó không phải là 1 thứ không thể vượt qua. Graphic Design đã nói lên ngôn ngữ của thiết kế rồi, họ chỉ cần chải chuốt thêm cho các kĩ năng về UX Design nữa thôi.

Khi bạn đã có những kĩ năng đó rồi, bạn có thể đem chúng vào các dự án graphic design ( vì thiết kế trải nghiệm người dùng có thể cung cấp các thông tin như đối với thiết kế sản phẩm và đưa vào CV của bện để làm nổi bật các kĩ năng UX Design cũng như là Graphic Design).

Như đã đề cập ở trên, chìa khóa đích thực cho các graphic designer là hiểu các nghiên cứu người sử dụng trong tất cả các hình thức. Tất cả các khóa học chúng tôi nêu ra dưới đây đều giải quyết nhu cầu này ở mức độ lớn hơn.

Các khóa học Online

Interaction Design Foundation: Bạn có thể xem tại đây

Coursera: Bạn có thể tìm hiểu tại Coursera.org, là một kênh giáo dục giá rẻ nhưng có chất lượng khá cao, cung cấp khóa học trên nhiều lĩnh vực bao gồm cả UX.

Udemy: Là một bên mô giới khóa học lớn nhất thế giới. Họ không thiết kế ra các khoác học của riêng mình mà thay vào đó họ cho phép những người tạo ra khóa học bán trên nên tảng của họ

Các lớp học

Nielsen Norman Group: Nếu bạn có nhiều tiền hơn và thích học trên lớp thay vì các khóa học online thì bạn có thể tham khảo các khóa học tại  Nielsen Norman Group. Đây là một trong những nơi có danh tiếng tốt nhất và được tôn trọng nhất trong vấn đề đào tạo UX.

Cooper: Cũng là một trong những nơi có uy tín lớn trong đào tạo UX Design. Họ đưa ra nhiều địa điểm học – việc này sẽ phù hợp với những người ngại di chuyển.

Các khóa học đại học

Chúng tôi không chắc học đại học sẽ là một sự lựa chọn tốt nhất cho những người tìm kiếm cơ hội đổi hướng nghề nghiệp, không chỉ tốn nhiều chi phí mà còn tốn thời gian nữa. Bạn có thể học hỏi và tìm tòi các phương thức khác hơn là dành 3, 4 năm học đại học hay 2 năm học master.

Nếu bạn không biết mình nên đầu tư vào loại hình học tập nào thì cũng được thôi. Việc xác định các giá trị cộng thêm nào cần cho sự nghiệp của bạn có thể sẽ khá khó khăn. Nếu vậy, chúng tôi đã tập hợp được một phần tính toán để giúp bạn có quyết định tốt hơn thông qua ROI, hy vọng điều này có thể giúp ích cho bạn.

Xây dựng mối quan hệ

Một khi bạn đã chuẩn bị đầy đủ và cảm thấy sẵn sàng để làm 1 UX Design, có thể ban đầu sẽ cảm thấy khó khăn trong việc tạo các mối quan hệ. Cơ hội tốt nhất thường được tìm thấy khi có người giới thiệu việc trong ngành cho bạn. Một trong những nơi thích hợp nhất để tạo quan hệ là Linkedin. Hãy tham gia vào 1 vài group UX, bắt đầu đóng góp vào group đó cũng như xây dựng các network quan trọng với bạn của bạn. Nhưng cứ chậm rãi đã, đừng chỉ thể hiện và đòi hỏi 1 công việc ngay. Bạn sẽ cần các mối quan hệ trước khi có người giúp bạn.

Một cách hữu dụng khác để bắt đầu tạo quan hệ là follow các thành viên nổi tiếng trong cộng đồng UX trên Twitter. Bạn không chỉ học hỏi được rất nhiều từ họ mà còn có thể tương tác với các follower khác.

Mentor & Feedback

Một trong những cách tuyệt vời để phát triển sự nghiệp là làm việc với một người hướng dẫn đã từng làm trong lĩnh vực UX Design, bạn có thể tìm thấy người hướng dẫn thông qua network của chính bản thân mình.

Kết luận

Thật tuyệt nếu bạn chuyển từ Graphic Design sang UX Design, điều này có thể không quá khó như bạn nghĩ đâu. Bạn chỉ cần học tập thêm các kĩ năng cần thiết và áp dụng vào với công việc hiện tại. Nếu bạn cảm thấy đã đúng thời điểm, bạn có thể bắt đầu xây dựng các mối quan hệ của mình và lên lịch hẹn phỏng vấn ngay.

Nguồn: topdev.vn via interaction-design.org

Xem thêm: Các vị trí tuyển ui/ux designer lương cao

Để là một người thành công, đừng bao giờ tin vào những lời mà người thành công nói!

Bill Gates, Jack Ma, Steve Jobs hay đủ những minh chứng về sự thành công đi lên từ tay trắng có thể nói cho bạn nghe những điều đầy mê hoặc, đầy tính triết lý về sự thành công. Nhưng nếu tỉnh táo và muốn mình được như họ, điều đầu tiên bạn phải làm là bịt tai lại và đừng nghe họ nói.

Chẳng cần phải là những Bill Gates hay Jack Ma, Steve Jobs hay Mark Zuckerberg đình đám cả thế giới đều biết, chung quanh cuộc sống thường nhật này, mỗi người chúng ta có lẽ đã nghe mòn tai những câu chuyện “con nhà người ta” bỏ học/bỏ việc/bỏ thành phố về quê kinh doanh kiếm bạc tỷ, bán mỹ phẩm online tiền thưởng doanh thu vài chục tỷ, khởi nghiệp thành công sở hữu doanh nghiệp hàng triệu đô… Những từ khóa “thành công”, “đam mê”, “bứt phá” “bạc tỷ” khiến người ta cảm thấy được truyền cảm hứng và tiếp thêm khát khao.

Nhưng khi ta đã bị hạ đo ván, hay khi ta cảm thấy quá chán chường sau nhiều năm bươn chải mà thực tế sao chỉ toàn đắng cay, ta bắt đầu cảm thấy hình như có gì đó rất sai!

Đó cũng là lúc bạn bắt đầu học được những bài học đầu tiên về cách đặt lòng tin.

Để là một người thành công, đừng bao giờ tin vào những lời mà người thành công nói! - Ảnh 1.

Và bây giờ, để tôi nói bạn nghe, vì sao chúng ta không thể tin vào câu chuyện làm giàu hay câu chuyện thành công của người khác.

Trong một bài phỏng vấn, Chủ tịch công ty quảng cáo 24h Phan Minh tâm đã từng nói: “Đừng nghe những câu chuyện thành công, dù của Bill Gates hay Jack Ma, hay ngay cả chuyện thành công của ông chủ 24h. Mọi người cứ bảo tôi chia sẻ thành công, nhưng các bạn không thể “bơi” lại thành công. Có thể đã từng có một câu chuyện thành công như thế, nhưng khung thời điểm của câu chuyện ấy đã không còn nữa (PV: Gọi là thiên thời địa lợi khi sự việc ấy xảy ra). Các doanh nhân chia sẻ cho các bạn bí quyết, mặc dù có thể bạn thông minh hơn, tài giỏi hơn, nhưng nếu làm lại giống vậy thì tỷ lệ thành công tôi đánh giá chỉ 1/1000, 999 bạn còn lại không thể thành công được”.

Nếu bạn đã từng đọc tiểu thuyết “Hồn ma sành điệu” của nhà văn Sophie Kinsella, chắc hẳn bạn có biết một chi tiết khá buồn cười trong sách khi nhà văn miêu tả về một vị “diễn giả về làm giàu”. Ông ta đi khắp nơi với bài diễn thuyết ấn tượng là bắt khán giả giơ cao đồng tiền và đọc khẩu hiệu, như kiểu gửi sự khát khao kiếm tiền của mình vào vũ trụ và rồi chúng ta sẽ được đền đáp xứng đáng, rồi hàng loạt những giáo lý, điều luật khác về cách mà ông ta đã làm giàu.

Nhưng điều không ngờ nhất, là hóa ra ông không kiếm bạc tỷ ở nơi nào khác cả, mà tất cả những vị khán giả đang say sưa đặt hết niềm tin vào vị “diễn giả làm giàu” kia mới chính là nguồn kiếm tiền của ông ta. “Vị diễn giả” không bán kinh nghiệm, ông ta chỉ bán những lời hô hào đẹp đẽ. Xã hội của chúng ta đã quá quen với việc đặt câu hỏi Ai đó đã thành công như thế nào? Các quầy sách ngập tràn đầu sách về năm điều mười lẽ bạn cần làm, cần học để trở nên giàu có hơn. Nhưng rốt cuộc bạn sẽ nhận ra có quá nhiều “thuyết âm mưu” hay điều chưa kể đằng sau những lời đẹp đẽ nào đó.

Để là một người thành công, đừng bao giờ tin vào những lời mà người thành công nói! - Ảnh 2.

Xã hội của chúng ta đã quá quen với việc đặt câu hỏi Ai đó đã thành công như thế nào? Nhưng rốt cuộc bạn sẽ nhận ra có quá nhiều “thuyết âm mưu” hay điều chưa kể đằng sau những lời đẹp đẽ nào đó. – quote

Hồi trước, có một lần tôi biên tập bài phỏng vấn của một bạn trẻ khởi nghiệp trong lĩnh vực khá thú vị và mới mẻ, nhưng có câu hỏi vẫn chưa được trả lời trọn vẹn, tôi bảo cộng tác viên đi khai thác thêm. Cụ thể là bạn trẻ ấy đã huy động vốn như thế nào, vì ai cũng biết điều quan trọng nhất khi khởi nghiệp là tìm được những nhà đầu tư thiên thần – người sẽ bỏ tiền vào dự án. Rốt cuộc, câu trả lời là: Gia đình của bạn trẻ đó rất giàu có, và họ đã chi rất nhiều tiền cho con mình khởi nghiệp.

Nhưng bạn trẻ kia đề nghị không ghi chi tiết ấy vào bài viết với lý do: Sợ rằng viết như thế sẽ làm chùn bước những bạn trẻ khác cũng đang muốn khởi nghiệp (!) Câu chuyện này khiến tôi nhớ về một lần đọc được ở đâu đó viết về Donald Trump, rằng chàng thanh niên Trump ở vào tuổi đôi mươi tươi đẹp và giàu nhiệt huyết nhất, đã quyết định không ăn bám gia đình và khởi nghiệp với đâu đó chừng… 14 triệu đô la vay từ bố, chưa kể trong lúc kinh doanh khó khăn đã mượn của bố thêm 9 triệu đô la.

Nói vậy không có nghĩa là anh bạn trẻ kia hay Donald Trump hay bất cứ ai khởi nghiệp từ tài sản kếch xù của gia đình đều là người không tài giỏi. Họ giỏi chứ, ở đây không bàn về họ! Tôi chỉ muốn nói nếu bạn chưa bao giờ là phóng viên phỏng vấn hay biên tập viên, thì khi bạn lướt qua những con chữ trên mặt báo, bạn sẽ không bao giờ biết được điều gì đã được chọn ẩn đi trong những câu chuyện thành công khiến gần như cả thế giới phải nức lòng ngưỡng mộ.

Để là một người thành công, đừng bao giờ tin vào những lời mà người thành công nói! - Ảnh 3.

Nếu như tôi không tình cờ là biên tập viên của bài phỏng vấn đó, nếu như Donald Trump không ra ứng cử tổng thống khiến phe đối thủ phải đào xới profile thực sự của ông ta lên, thì có lẽ những dòng này cũng sẽ không bao giờ được viết ra.

Lý do cuối cùng tôi muốn nói rằng vì sao bạn không nên cả tin vào những điều đẹp đẽ, đó là vì xã hội chúng ta chưa quen nhìn nhận thất bại. Với đa số, thất bại chỉ là thua cuộc mà thôi! Mark Cuban đã viết trong một cuốn sách của ông: “Không quan trọng là bạn thất bại bao nhiêu lần (…) Tất cả những gì bạn cần làm là học từ chúng và từ những gì xung quanh, bởi vì điều quan trọng nhất trong kinh doanh chính là một lần bạn đạt đến thành công. Và khi đó, mọi người có thể nói rằng bạn may mắn như thế nào”.

Tất cả những người thành công đều từng thất bại nhiều hoặc rất nhiều lần. Không phải chúng ta không biết! Thực ra thế giới này cũng đã đầy rẫy những câu chuyện lên voi xuống chó. Nhưng giống như bước vào một cuộc hôn nhân, đa phần chúng ta đều đặt sai câu hỏi. Thay vì: “Anh/em tuyệt vời đến thế nào”, lẽ ra chúng ta phải hỏi: “Anh/em có thể điên rồ và không thể chịu nổi đến cỡ nào?”. Trong công việc, sự nghiệp, đa phần chúng ta đều hỏi: “Mình có thành công được như người đó không?”, trong khi lẽ ra phải hỏi: “Mình có thể chịu nổi những thất bại mà người đó từng trải qua hay không?”.

Để là một người thành công, đừng bao giờ tin vào những lời mà người thành công nói! - Ảnh 4.

Ví dụ, nếu bạn muốn được như Mark Cuban, ông chủ của một đội bóng, doanh nhân, nhà làm phim thuộc hàng tỷ phú Mỹ, bạn phải chắc rằng mình có thể đi qua được những năm tháng mà ông đã từng không ngần ngại chia sẻ: “Tôi về đến nhà và thấy cả căn phòng tối om vì không đủ tiền trả hóa đơn tiền điện. Đó vừa là nguồn động lực to lớn lại vừa là nỗi xấu hổ khó quên”.

Nếu bạn mơ một giấc mơ tỷ phú, hãy chuẩn bị tinh thần cho rất nhiều năm tháng bạn phải sống như một ăn mày khu ổ chuột! Đó chính là hiện thực!

Để là một người thành công, đừng bao giờ tin vào những lời mà người thành công nói! - Ảnh 5.

Có một thí nghiệm thế này: đem 5 con ong và 5 con ruồi nhốt chung trong một chai thủy tinh, sau đó đặt ngang cái chai, hướng cho đáy chai quay về cửa sổ. Chuyện gì sẽ xảy ra?

Năm con ong không ngừng hướng về phía đáy chai để tìm lối thoát, cứ thế cho đến khi kiệt sức hoặc đói mà chết; còn những con ruồi thì chỉ một lúc sau đã có thể xuyên qua đoạn cổ chai mà thoát thân. Lý giải ở đây chính là, ong vì thích ánh sáng và kiên định nghĩ rằng lối thoát là nơi có ánh sáng, nên tự đẩy mình vào chỗ chết. Ruồi thì chả để ý gì đến ánh sáng, chúng chỉ nghĩ cách nào để thoát thân nên bay tứ tung, kết quả là sau bao nhiêu lần nhầm hướng cũng đến lúc tìm được lối ra. Thí nghiệm này chỉ để nói lên một thông điệp:

Để là một người thành công, đừng bao giờ tin vào những lời mà người thành công nói! - Ảnh 6.

Thực ra điều này có thể gây lúng túng cho một số người. Kiên định cũng là tốt, mà uyển chuyển cũng là tốt? Làm người có nguyên tắc là tốt, nhưng biết thay đổi để thích nghi cũng là tốt? Rốt cuộc chúng ta phải làm sao mới đúng? Tin vào bản thân là tốt, mà không tin vào bản thân cũng là tốt, ủa vậy rốt cuộc là thế nào? Câu trả lời chính là:

Cân bằng mới là tốt! Liều lượng chính là thứ quan trọng! Ở đời, nói cho vui thì là: tuyệt đối không có gì là tuyệt đối!

Nếu bạn phải sợ một trong hai loại người: người hiểu biết mà quá kiên định, và người kém hiểu biết nhưng sẵn sàng thích nghi, thì bạn nên sợ hạng người thuộc vế đầu tiên. Bởi vì người quá kiên định thường khó lòng đối thoại. Họ có định kiến quá mạnh về mọi thứ, dán nhãn lên mọi loại người. Bạn sẽ cảm thấy khó chịu vì có thể họ quá kiêu hãnh để chấp nhận một ý kiến khác mình, hoặc có thể vì họ tùy tiện phán xét và xếp bạn vào một nhóm loại nào đó, quá nặng nề định kiến hoặc quá hời hợt về cảm quan. Họ có thể rời bỏ thứ gì đó rất nhanh vì đã dán nhãn “rác”, và cũng bâu vào một suy nghĩ nào đó rất chặt, vì tin nó là “đúng”.

Cả tin vào người khác đã đáng sợ, nhưng ít ai nghĩ rằng mình cũng có thể bị lừa bởi chính bản thân mình.

Chính vì thế một khi bạn đã là người quá cả quyết vào bản thân, người khác sẽ không còn muốn mở ra cho bạn thấy những cánh cửa khác nữa. Họ sẽ im lặng, hoặc rời đi một mình. Giống như nếu hình dung thí nghiệm ở trên là một bộ phim, chúng ta sẽ thấy một lũ ong ầm ầm cả quyết lao về đáy chai, không một con ong nào có thể nghe thấy tiếng gọi của những chú ruồi. Ngay cả khi tất cả ruồi đã thoát ra khỏi miệng chai, hẳn là đàn ong cũng không thèm bận tâm.

Để là một người thành công, đừng bao giờ tin vào những lời mà người thành công nói! - Ảnh 7.

Thực ra, bao nhiêu niềm tin đặt vào đâu là một bài toán rất khó của mỗi người. Ngày hôm nay ta có thể rất tin vào điều này để rồi ngay ngày mai tại một khúc quanh của cuộc đời mọi thứ bỗng ngã đổ rất đau lòng. Điều duy nhất ta có thể bám víu chính là sự tương đối và mưu cầu cân bằng giữa mọi thứ. Quá nghi ngờ cũng không tốt nhưng hãy luôn để mở cho mình những khả năng khác. Đừng bao giờ để bản thân bị mắc kẹt trong những câu chuyện của người khác và cả trong những cả quyết của bản thân mình.

Nguồn: kenh14.vn

Con đường trở thành Product Manager từ lập trình viên tại Amazon

Con đường trở thành Product Manager từ lập trình viên
Một vài năm trước, tôi còn không biết đến sự tồn tại của cụm từ “Product Manager”. Tôi là một software engineer và rất thích code. Tuy nhiên, hơn cả việc code logic, tôi lại thích làm việc với các bên liên quan để lấy yêu cầu cho app tôi đang built, và đưa ra các tiêu chuẩn thiết kế lấy người sử dụng làm trung tâm. Tôi cảm thấy phấn khích khi giải quyết các vấn đề và xác định các trải nghiệm người dùng trong sản phẩn của mình
Vài năm sau, tôi hiện tại là Product Manager tại Amazone Web Service.Nhiều người hỏi tôi – “Làm sao mà chị trở thành Product Manager được thế?” đặt ra cho tôi câu hỏi “ Vậy làm sao tôi lại có thể trở thành Product Manager?”

Hành trình của tôi

Tôi có background về Tech, tôi bắt đầu code từ khi còn học trung học và thích tự mình built các sản phẩm. Tôi có kinh nghiệm 5 năm làm trong các lĩnh vực Data Structure, Thuật toán, Database … và một vài khóa học khác ( tôi cũng trải qua 3 lần intern). Tôi tốt nghiệp đại học ngành Software Engineering và bắt đầu đi làm Dev tại Goldman Sachs. Cùng với đó, tôi cũng tham gia nhiều hackathons và làm việc trong các Tech projects.

Trong khi làm việc tại Golden Sachs, tôi có cơ hội hướng dẫn một nhóm nữ học sinh trong chương trình Technovation Challenge. Đây là cơ hội tốt cho tôi khi làm việc cùng 1 team để thực hiện 1 App Android về sức khỏe. Lần làm việc này đã cho tôi kinh nghiệm và củng cố niềm yêu thích của tôi trong việc xây dựng sản phẩm.

Trong tôi luôn có một niềm đam mê về thiết kế và nghệ thuật. Tôi trưởng thành trong thập niên 90 từ thời chưa có internet, tôi đã dành nhiều tiếng đồng hồ dùng tay của mình để tạo ra nhiều bức tranh trang trí. Sau khi tốt nghiệp đại học, tôi muốn học thêm về thiết kế nên đã đăng kí học một khóa học về Social Innovation ở Ideo/Acumen’s và Scott Klemmer’s về Computer Interaction. Cả 2 khóa học đều rất hữu ích, truyền cảm hứng và dạy cho tôi rất nhiều về các concept của HCI và thiết kế.

Cũng trong thời gian này, tôi được biết đến chức vụ “Product Manager”. Tôi cảm thấy rất hứng thú và bắt đầu tìm hiểu cách để trở thành PM.Sau đó, tôi tiếp tục học để có bằng Master về Software Management. Tấm bằng này mang tôi tới Sillicon Valley – nơi tôi tạo quan hệ với rất nhiều công ty, PM, Growth Hacker và Designer. Tôi cũng học hỏi được rất nhiều từ các chuyên gia và bạn học. Tôi dành cả mùa hè với vị trí Product Management Intern tại Groupon, lần thực tập này cho tôi thấy nhiều khía cạnh khác về một sản phẩm tiêu thụ của công ty. Sau đó, tôi tiếp tục làm việc trong một Project vs IBM, tập trung vào sản phẩm Bluemix. Lần làm việc này càng khiến tôi gia cố tình yêu của mình với Product Management. Project Bluemix đã đưa tôi đến thế giới điện toán đám mây và Paas. Sức mạnh của điện toán đám mây làm tôi say mê. Một vài tháng sau, tôi rất vui mừng khi có cơ hội tham gia AWS với vị trí Product Manager. Trải nghiệm của tôi tại AWS rất đáng nhớ…

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

Vậy bạn muốn trở thành Product Manager đúng không?

“Liệu tôi có cần MBA mới trở thành Product Manager?”

“Liệu tôi có cần biết Code không?”

“Liệu tôi có cần học Nghiên cứu sinh để trở thành Product Manager không?_

Câu trả lời là “Không”

Thật sự không có con đường cố định nào để trở thành Product Manager cả, một vài PM giỏi có xuất thân từ chuyên viên và trợ lí sản phẩm. Những vị trí này đóng vai trò quan trọng trong việc học hỏi kinh nghiệm làm việc với KH và hiểu rõ nhất điểm quan tâm nhất của họ. Một vài PM có xuất thân từ Designer hoặc Marketer, hoặc có xuất thân từ Software Dev (hoặc QA engineer). Một vài PM thâm chí còn không có bằng cấp về Tech, họ học luật, tài chính, kinh tế.. Và một số có MBA, còn lại thì không.

Bạn không cần có bất cứ một bằng cấp riêng biệt nào để trở thành PM cả. Tuy nhiên, bằng cấp lại tạo cho bạn một thuận lợi lớn để lên được PM. Vi dụ, một PM trong Project về tech ( như Big Data hay Infrastructure Product) sẽ cần phải hiểu về các định nghĩa tech và quy trình liên quan. Một chuyên gia về Tech cũng sẽ nhận được nhiều sự kính trọng từ các team khác. Nhưng nếu bạn làm việc chăm chỉ, có thể bạn không cần bằng về Tech mà có thể học thông qua các phương tiện khác như MOOC online, hoặc là học từ thực tiễn công việc đang làm – bạn có thể có kiến thực sâu rộng về các vấn đề Tech như bất cứ ai có bằng CS.

“Vậy tôi cần làm gì để trở thành 1 PM?”

Để thay đổi career path của mình bạn chắc chắn cần phải học. Đầu tiên, để trở thành 1 PM, bạn phải có tâm huyết với sản phẩm đang làm. Bạn có thể tìm hiểu thông tin về các sản phẩm và công nghệ mới trên “Product Hunt” hoặc “Hacker News”.Hãy thử tất cả các sản phẩm mới khiến bạn hứng thú và tạo lập các ý kiện về sản phẩm đó. Đọc sách, báo, blog về sản phẩm, công nghệ mới, product management, design, growth hacking – Bất cứ thứ gì bạn quan tâm. Hãy nghe các Postcast trong việc xây dựng sản phẩm.

Tạo các mối quan hệ, quan hệ, quan hệ!. Hãy tham dự các buổi gặp gỡ nơi bạn có thể gặp và trò chuyện với các PM khác, designer, growth hacker, engineer và các chủ doanh nghiệp. Nếu bạn đang ở trong Sillicon Valley, tôi đề xuất bạn đến với buổi gặp mặt Lean Product và Lean UX. Hackathon cũng là một cách để tạo mối quan hệ và xây dựng các sản phẩm. Các mối quan hệ sẽ giúp bạn học hỏi từ các chuyên gia và xây dựng các mối quan hệ về job referral. kết nối với những mentor cũng rất tốt cho bạn.

Cuối cùng, điều tốt nhất bạn có thể làm để trở thành product manager là build sản phẩm. Bạn không cần phải là 1 PM trong 1 công ti nào cả, bạn có thể xây dựng dự án của riêng mình và học hỏi các kĩ năng cần thiết để trở thành 1 PM – từ ý tưởng, làm research, các yêu cầu cho một MVP, thiết kế và xây dựng 1 MVP, marketing, đứa sản phẩm tới KH, lấy feedback và phát triển sản phẩm.

Sản phẩm của bạn không nhất thiết phải làm thay đổi thế giới nhưng nó sẽ giúp bạn học hỏi được rất nhiều từ việc lên ý tưởng và giải quyết các vấn đề liên quan. Sau khi xây dựng sản phẩm, hãy cho cả thế giới biết. Nếu sản phẩm thất bại thì sao? Không vấn đề gì cả vì chắc chắn bạn đã học được rất nhiều kinh nghiệm quý báu. Hãy chia sẻ hành trình của bạn với những người khác và nhờ họ feedback cho bạn. Bạn có thể làm điều này một cách dễ dàng thông qua việc viết về các kinh nghiêm của mình hoặc đưa vào portfolio. Đây là một cách tuyệt vời để các bên tuyển dụng PM thấy được hành trình làm sản phẩm của bạn.

Link gốc tại Đây


Nếu bạn đang có dự định trở thành Product Manager, tham gia sự kiện “All about Product Management” tại TP.HCM để gặp gỡ & học hỏi bí kíp từ chuyên gia Lê Anh Quang – Product Director của Websosanh, đồng thời là Founder của Eggcellent

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

Làm thế nào để Tinder, Reddit, Airbnb, Etsy và Uber có được những người dùng đầu tiên?

Mùa hè này, tôi có cơ hội làm việc cho một dự án bất động sản gọi là Suuty. Chính vì vây, tôi phải tìm hiểu về các chiến lược thu hút những người dùng đầu tiên của các công ty khác nhau. Điều này dẫn tôi tới những câu chuyện thú vị, những phát hiện hay ho. Đây chỉ là một vài điều khiến tôi hứng thu.

# Chiến lược của Airbnb: Localization là vua

AirBed & Breakfast được bắt nguồn từ việc Brian Chesky và Joe Gebbia thuê ba chiếc nệm chân không trong phòng khách, để cho những người tham dự hội nghị thiết kế nội thất. Huy động tất cả các khách sạn trong khu vực họ nhanh chóng có được ba cái nệm hút chân không. Những vị khách của họ hoàn toàn hài lòng với trải nghiệm này. Vượt qua ngoài cả sự mong đợi của họ là sự hài lòng của những vị khách trẻ tuổi.

Brian và Joe đã chiêu mộ thêm người đồng sáng lập thứ 3 là Nathan Blecharczyk và tiếp tục thu các nhân sự khác. Mục tiêu là tổ chức các sự kiện cho các khách sạn trong khu vực. Họ sử dụng các sự kiền này và tình trạng thiếu phòng khách sạn như một phương thức để thu hút sự chú ý của mọi người đến với AirBnB

Lý giải về sự thành công của AirBnB có thể là do sự kết hợp giữa các nền tảng của họ với Craigslist. Không chỉ có tác dụng thu thập được các email từ các trình duyệt của Craigslist và thuyết phục hầu hết họ liệt kê các khoản thuê ngắn hạn của họ trên Airbnb, họ cũng dễ dàng cho người dùng đăng danh sách lên Craigslist thông qua Airbnb với một cú nhấp chuột – âm thanh.

# Chiến lược của Reddit: Cứ giả vờ cho đến khi bạn thực sự làm được điều gì đó


Không ai muốn sử dụng một diễn đàn im lặng. Vì vậy, Reddit đã giải quyết vấn đề này bằng cách tạo ra hàng tấn tài khoảng giả mạo và sử dụng nó để tương tác với nhau
Đó là một cách đơn giản để giải quyết câu chuyện gà và trứng, hoặc trong trường hợp này vấn đề người sử dụng và nội dung. Theo Steve Huffman, đồng sáng lập của Reddit, phải mất hàng tháng để trang chủ của Reddit được lấp đầy bằng nội dung organically .

Thành quả của chiến lược này là nó cho phép nhóm sáng lập tạo ảnh hưởng đến cộng đồng Reddit trong tương lai. Mặc dù có chút mỉa mai khi nói rằng cộng đồng ngày nay có tiếng nói riêng , nhưng không phải là không có chút gian dối nào những ngày đầu .

Nó cũng không làm tổn hại đến logo Reddit khá dễ thương. Alex Ohanian, đồng sáng lập của Reddit, tự hào là một trong số ít nhãn hiệu có đầu tư về mặt âm thanh. Trên thực tế, đó là đầu tư tiếp thị duy nhất của họ và với chi phí chỉ $ 500.

# Chiến lược của Etsy: Cung cấp cho người dùng những gì họ muốn.

Etsy đã may mắn vì ý tưởng này thậm chí đã hình thành từ trước khi họ có ý tưởng này, những người sáng lập đã tham gia vào một cộng đồng lớn đang kêu gọi thành lập 1 thị trường cho đồ handmade.

Ban đầu, nhóm Etsy là các nhà thiết kế web tự do và một trong những khách hàng của họ là một diễn đàn thủ công được gọi là getcrafty.com. Trong suốt quá trình thiết kế lại, nhóm Etsy đã tương tác với 10.000 người dùng của trang web để hiểu rõ nhu cầu của họ. Họ bắt đầu nhận thấy rằng có một số lượng lớn người dùng đang tìm kiếm một platform để bán đồ thủ công của họ.

# Chiến lược của Uber: Cung cấp cho người dùng một trải nghiệm tuyệt vời, khiến họ muốn nói về nó.

Garett Camp và Travis Kalanick, đến Paris để tham dự hội nghị LeWeb, họ bắt đầu cảm thấy khó khăn khi đi taxi. Đây là sự khởi đầu của UberCab, ban đầu nó là một dịch vụ black car.

Để có được những tài xế đầu tiên, Travis đã gọi điện thuyết phục những tài xế black car và đề xuất trả tiền cho họ dựa trên thời gian họ sử dụng ứng dụng. Ba trong số 10 tài xế đầu tiên mà ông gọi, đã đồng ý thử nó.

Sau đó, để khuyến khích khách hàng, họ đã cho sử dụng miễn phí tại các sự kiện công nghệ tại San Francisco . Họ đã làm việc chăm chỉ để cải thiện trải nghiệm người dùng tốt nhất có thể. Theo Kalanick, truyền miệng là hình thức marketing thúc đẩy doanh số hiệu quả và Uber đã không sử dụng hình thức marketing truyển thống

“95% trong số tất cả những tài xế của chúng tôi có nghe nói về Uber từ những tài xế Uber khác “- Travis Kalanick

“Khi mọi người nhận ra sự tiện dụng của ứng dụng, chỉ với 1 thao tác 5 phút sau có một chiếc xe xuất hiện, họ chắc chắc sẽ trở thành người ủng hộ thương hiệu của bạn ” – Max J. Crowley, Phát triển kinh doanh tại Uber

# Chiến lược của Tinder: Hãy suy nghĩ giống khách hàng mục tiêu


Các nhà sáng lập của Tinder đã xác định thị trường đại học là thị trường khó khăn nhất để thuyết phục người dùng sử dụng ứng dụng, vào thời điểm đó ứng dụng hẹn hò online vấp phải nhiều sự phản đối hơn so với hiện nay Làm thế nào để bạn nhận được sự chú ý của sinh viên đại học? Bạn nên thử áp dụng nó trong 1 bữa tiệc.

Các nhà sáng lập của Tinder đã xác định thị trường đại học là thị trường khó khăn nhất để thuyết phục người dùng sử dụng ứng dụng, vào thời điểm đó ứng dụng hẹn hò online vấp phải nhiều sự phản đối hơn so với hiện nay Làm thế nào để bạn nhận được sự chú ý của sinh viên đại học? Bạn nên thử áp dụng nó trong 1 bữa tiệc.

Trước khi Wolfe thực hiện chuyến đi đến các hội nữ sinh trên khắp đất nước, Tinder đã có ít hơn 5.000 người sử dụng. Khi trở lại, con số đó đã tăng lên khoảng 15.000. Sự thành công của họ có liên quan nhiều đến việc là người đầu tiên có những trãi nghiệm hẹn hò thú vị.

Mô hình phổ biến trên tất cả các công ty này là di chuyển không ngừng và sẵn sàng làm bất cứ điều gì họ có thể để tương tác trực tiếp với người dùng cuối của họ. Bằng cách đó, họ đã có thể xây dựng một sản phẩm, một nền tảng hoặc một cộng đồng mà người dùng của họ thích và muốn chia sẻ với bạn bè của họ.

Một điều thú vị cần lưu ý là những khách hàng đầu tiên trong kế hoạch lại không phải là những người mang đến thành công cuối cùng. Etsy đã có hàng ngàn người bán đăng ký khởi chạy nhưng cuối cùng, Reddit đã phải giả mạo người dùng trong nhiều tháng. Uber bắt đầu với 3 tài xế, và Airbnb bắt đầu với ba nệm không khí. Điều quan trọng hơn là những gì xảy ra sau khi bạn đã có được những người dùng đầu tiên.

Paul Graham, của Y Combinator, đã viết một bài báo nổi tiếng với nhan đề: “Do things that don’t scale.” Trong bài viết này , ông giải thích lý do tại sao ông đưa ra lời khuyên nghịch lý này, tôi có thể làm tốt hơn nhiều, nhưng tôi sẽ thu hút sự chú ý của bạn vào dòng này:

“Cốt lõi những gì bạn cần phải bắt đầu từ người dùng . Làm thế nào chỉ trong vài tháng có thể thu hút được nhiều người dùng nhất, nó phụ thuộc vào khả năng bạn có thể làm người dùng hạnh phúc như thế nào”- Paul Graham

500 khóa học Online Programming & Computer Science miễn phí nên học ngay trong tháng 9 (phần 2)

500 courses

PHẦN 1

INTERMEDIATE(301)

Machine Learning
Stanford University via Coursera
★★★★★ (314 ratings) | 4th Sep, 2017

Functional Programming Principles in Scala
École Polytechnique Fédérale de Lausanne via Coursera
★★★★★ (61 ratings) | 11th Sep, 2017

Algorithms, Part I
Princeton University via Coursera
★★★★☆ (56 ratings) | 4th Sep, 2017

Cryptography I
Stanford University via Coursera
★★★★★ (49 ratings) | 4th Sep, 2017

Functional Program Design in Scala
École Polytechnique Fédérale de Lausanne via Coursera
★★★★★ (38 ratings) | 11th Sep, 2017

Programming Mobile Applications for Android Handheld Systems: Part 1
University of Maryland, College Park via Coursera
★★★★☆ (38 ratings) | 11th Sep, 2017

CS188.1x: Artificial Intelligence
University of California, Berkeley via edX
★★★★★ (30 ratings) | Self Paced

Principles of Computing (Part 1)
Rice University via Coursera
★★★★★ (28 ratings) | 18th Sep, 2017

[New] Fundamentals of Containers, Kubernetes, and Red Hat OpenShift
Red Hat via edX
Self Paced

[New] Gameplay Programming for Video Game Designers
Rochester Institute of Technology via edX
11th Sep, 2017

[New] Building a Cybersecurity Toolkit
University of Washington via edX
10th Sep, 2017

[New] Hacking PostgreSQL: Data Access Methods
Ural Federal University via edX
28th Sep, 2017

Responsive Website Basics: Code with HTML, CSS, and JavaScript 
University of London International Programmes via Coursera
★★★★☆ (24 ratings) | 11th Sep, 2017

Practical Machine Learning
Johns Hopkins University via Coursera
★★★☆☆ (23 ratings) | 4th Sep, 2017

Software Security 
University of Maryland, College Park via Coursera
★★★★★ (22 ratings) | 18th Sep, 2017

Programming Languages, Part A
University of Washington via Coursera
★★★★★ (21 ratings) | 18th Sep, 2017

Cloud Computing Concepts, Part 1
University of Illinois at Urbana-Champaign via Coursera
★★★☆☆ (20 ratings) | 11th Sep, 2017

Learning From Data (Introductory Machine Learning)
California Institute of Technology via edX
★★★★★ (20 ratings) | 17th Sep, 2017

Agile Development Using Ruby on Rails — Basics
University of California, Berkeley via edX
★★★★★ (19 ratings) | Self Paced

Automata Theory
Stanford University via Stanford OpenEdx
★★★★☆ (18 ratings) | Self Paced

Intro to Machine Learning
Stanford University via Udacity
★★★★☆ (17 ratings) | Self Paced

Web Development
via Udacity
★★★★★ (17 ratings) | Self Paced

C++ For C Programmers, Part A
University of California, Santa Cruz via Coursera
★★★☆☆ (16 ratings) | 25th Sep, 2017

Algorithmic Toolbox
University of California, San Diego via Coursera
★★★★☆ (16 ratings) | 4th Sep, 2017

Principles of Computing (Part 2)
Rice University via Coursera
★★★★☆ (16 ratings) | 18th Sep, 2017

Machine Learning for Musicians and Artists
Goldsmiths, University of London via Kadenze
★★★★★ (16 ratings) | Self Paced

Beginning Game Programming with C#
University of Colorado System via Coursera
★★★★☆ (16 ratings) | 11th Sep, 2017

The Nature of Code
Processing Foundation via Kadenze
★★★★★ (16 ratings) | Self Paced

Android Development for Beginners
Google via Udacity
★★★★☆ (15 ratings) | Self Paced

Concepts in Game Development
Swinburne University of Technology via Open2Study
★★★★☆ (15 ratings) | 10th Sep, 2017

Programming Mobile Applications for Android Handheld Systems: Part 2
University of Maryland, College Park via Coursera
★★★★☆ (15 ratings) | 11th Sep, 2017

Intro to Artificial Intelligence
Stanford University via Udacity
★★★★☆ (15 ratings) | Self Paced

Algorithmic Thinking (Part 1)
Rice University via Coursera
★★★★☆ (14 ratings) | 18th Sep, 2017

Design of Computer Programs
Stanford University via Udacity
★★★★☆ (13 ratings) | Self Paced

Text Retrieval and Search Engines
University of Illinois at Urbana-Champaign via Coursera
★★★☆☆ (13 ratings) | 11th Sep, 2017

Object Oriented Programming in Java
University of California, San Diego via Coursera
★★★★★ (13 ratings) | 4th Sep, 2017

Introduction to Game Development
Michigan State University via Coursera
★★★★★ (12 ratings) | 4th Sep, 2017

Discrete Optimization
University of Melbourne via Coursera
★★★★☆ (12 ratings) | 25th Sep, 2017

Responsive Web Design
University of London International Programmes via Coursera
★★★★☆ (12 ratings) | 4th Sep, 2017

Java Programming: Solving Problems with Software
Duke University via Coursera
★★★☆☆ (12 ratings) | 4th Sep, 2017

The Arduino Platform and C Programming
University of California, Irvine via Coursera
★★★☆☆ (11 ratings) | 11th Sep, 2017

Interactivity with JavaScript
University of Michigan via Coursera
★★★★☆ (11 ratings) | 4th Sep, 2017

Introduction to Functional Programming
Delft University of Technology via edX
★★★★☆ (11 ratings) | Self Paced

Object-Oriented JavaScript
Hack Reactor via Udacity
★★★★★ (11 ratings) | Self Paced

Introduction to Software Product Management
University of Alberta via Coursera
★★★★☆ (10 ratings) | 11th Sep, 2017

Programming Languages
University of Virginia via Udacity
★★★☆☆ (10 ratings) | Self Paced

Algorithmic Thinking (Part 2)
Rice University via Coursera
★★★★☆ (9 ratings) | 18th Sep, 2017

Software Processes and Agile Practices
University of Alberta via Coursera
★★★★☆ (9 ratings) | 11th Sep, 2017

Cryptography
University of Maryland, College Park via Coursera
★★★★☆ (8 ratings) | 4th Sep, 2017

Responsive Web Design Fundamentals
Google via Udacity
★★★★★ (8 ratings) | Self Paced

Learning from Data (Introductory Machine Learning course)
California Institute of Technology via Independent
★★★★★ (8 ratings) | Self Paced

Image and Video Processing: From Mars to Hollywood with a Stop at the Hospital
Duke University via Coursera
★★★★☆ (8 ratings) | 18th Sep, 2017

Advanced Styling with Responsive Design
University of Michigan via Coursera
★★★★★ (8 ratings) | 4th Sep, 2017

Developing Android Apps
Google via Udacity
★★★★☆ (8 ratings) | Self Paced

Introduction To Swift Programming
University of Toronto via Coursera
★☆☆☆☆ (7 ratings) | 4th Sep, 2017

Cloud Computing Applications, Part 1: Cloud Systems and Infrastructure
University of Illinois at Urbana-Champaign via Coursera
★★★☆☆ (7 ratings) | 4th Sep, 2017

Julia Scientific Programming
University of Cape Town via Coursera
★★★★★ (7 ratings) | 25th Sep, 2017

Data Wrangling with MongoDB
MongoDB University via Udacity
★★★★☆ (7 ratings) | Self Paced

Software Testing
University of Utah via Udacity
★★★★☆ (7 ratings) | Self Paced

Client Needs and Software Requirements 
University of Alberta via Coursera
★★★★☆ (6 ratings) | 11th Sep, 2017

Ruby on Rails Web Services and Integration with MongoDB
Johns Hopkins University via Coursera
★★★★★ (6 ratings) | 11th Sep, 2017

Introduction to Meteor.js Development 
University of London International Programmes via Coursera
★★★★☆ (6 ratings) | 4th Sep, 2017

Web Application Development with JavaScript and MongoDB
University of London International Programmes via Coursera
★★★★☆ (6 ratings) | 11th Sep, 2017

How to Code: Systematic Program Design — Part 1
The University of British Columbia via edX
★★★★☆ (6 ratings) | Self Paced

Internet of Things: How did we get here?
University of California, San Diego via Coursera
★★☆☆☆ (6 ratings) | 4th Sep, 2017

Intro to DevOps
Nutanix via Udacity
★★★☆☆ (6 ratings) | Self Paced

Computer Architecture
Princeton University via Coursera
★★★★☆ (6 ratings) | 25th Sep, 2017

Intro to AJAX
via Udacity
★★★★☆ (6 ratings) | Self Paced

Intro to Algorithms
via Udacity
★★★☆☆ (6 ratings) | Self Paced

Software Construction in Java
Massachusetts Institute of Technology via edX
★★★★★ (5 ratings) | Self Paced

Computer Graphics
University of California, Berkeley via edX
★★★★☆ (5 ratings) | 19th Sep, 2017

Data Structures and Performance
University of California, San Diego via Coursera
★★★★★ (5 ratings) | 4th Sep, 2017

Computer Graphics
University of California, Berkeley via edX
★★★★☆ (5 ratings) | 19th Sep, 2017

Cloud Computing Concepts: Part 2
University of Illinois at Urbana-Champaign via Coursera
★★★★★ (5 ratings) | 4th Sep, 2017

Introduction to C++
Microsoft via edX
★★★★☆ (5 ratings) | Self Paced

Full Stack Foundations
via Udacity
★★☆☆☆ (5 ratings) | Self Paced

Intro to iOS App Development with Swift
via Udacity
★★★★☆ (5 ratings) | Self Paced

Software Development Process
Georgia Institute of Technology via Udacity
★★★★☆ (5 ratings) | Self Paced

Agile Development Using Ruby on Rails — Advanced
University of California, Berkeley via edX
★★★★★ (5 ratings) | Self Paced

Introduction to C++
Microsoft via edX
★★★★☆ (5 ratings) | Self Paced

Computer Graphics
University of California, Berkeley via edX
★★★★☆ (5 ratings) | 19th Sep, 2017

Software Debugging
Saarland University via Udacity
★★★★★ (5 ratings) | Self Paced

Interfacing with the Arduino
University of California, Irvine via Coursera
★★★★☆ (5 ratings) | 11th Sep, 2017

HTML5 Game Development
Google via Udacity
★★★☆☆ (5 ratings) | Self Paced

Java Programming: Arrays, Lists, and Structured Data
Duke University via Coursera
★★★★★ (5 ratings) | 4th Sep, 2017

Parallel Programming Concepts
via openHPI
★★★★☆ (5 ratings) | Self Paced

Computer Networking
Georgia Institute of Technology via Udacity
★★★★☆ (5 ratings) | Self Paced

Cloud Networking
University of Illinois at Urbana-Champaign via Coursera
★★★★☆ (4 ratings) | 11th Sep, 2017

Querying with Transact-SQL
Microsoft via edX
★★★★☆ (4 ratings) | Self Paced

Internet of Things & Augmented Reality Emerging Technologies
Yonsei University via Coursera
★★★☆☆ (4 ratings) | 4th Sep, 2017

Algorithms on Strings
University of California, San Diego via Coursera
★★★☆☆ (4 ratings) | 4th Sep, 2017

Database Management Essentials
University of Colorado System via Coursera
★★★★☆ (4 ratings) | 4th Sep, 2017

Internet of Things: Setting Up Your DragonBoard™ Development Platform
University of California, San Diego via Coursera
★★★☆☆ (4 ratings) | 4th Sep, 2017

Querying with Transact-SQL
Microsoft via edX
★★★★☆ (4 ratings) | Self Paced

Single Page Web Applications with AngularJS
Johns Hopkins University via Coursera
★★★★★ (4 ratings) | 11th Sep, 2017

The Raspberry Pi Platform and Python Programming for the Raspberry Pi
University of California, Irvine via Coursera
★★★☆☆ (4 ratings) | 11th Sep, 2017

Practical Numerical Methods with Python
George Washington University via Independent
★★★★☆ (4 ratings) | Self Paced

Java Programming: Principles of Software Design
Duke University via Coursera
★★★★★ (4 ratings) | 11th Sep, 2017

Intro to jQuery
via Udacity
★★★★☆ (4 ratings) | Self Paced

Interactive Computer Graphics
The University of Tokyo via Coursera
★★☆☆☆ (4 ratings) | 18th Sep, 2017

Website Performance Optimization
Google via Udacity
★★★★☆ (4 ratings) | Self Paced

Rails with Active Record and Action Pack
Johns Hopkins University via Coursera
★★★★☆ (3 ratings) | 11th Sep, 2017

Wireless Communication Emerging Technologies
Yonsei University via Coursera
★★★★☆ (3 ratings) | 4th Sep, 2017

Data Structures
University of California, San Diego via Coursera
★★★☆☆ (3 ratings) | 4th Sep, 2017

Mastering the Software Engineering Interview
University of California, San Diego via Coursera
★★★★☆ (3 ratings) | 4th Sep, 2017

Autonomous Mobile Robots
ETH Zurich via edX
★★★☆☆ (3 ratings) | Self Paced

Android Basics: User Input
Google via Udacity
★★★★☆ (3 ratings) | Self Paced

JavaScript Design Patterns
via Udacity
★★★★☆ (3 ratings) | Self Paced

Internet of Things: Communication Technologies
University of California, San Diego via Coursera
★★★☆☆ (3 ratings) | 18th Sep, 2017

VLSI CAD Part I: Logic
University of Illinois at Urbana-Champaign via Coursera
★★★★★ (3 ratings) | 4th Sep, 2017

Configuring Linux Web Servers
via Udacity
★★★★☆ (3 ratings) | Self Paced

Introduction to DevOps
Microsoft via edX
★★★★☆ (3 ratings) | Self Paced

Foundations of Objective-C App Development
University of California, Irvine via Coursera
★★★☆☆ (3 ratings) | 11th Sep, 2017

JavaScript Testing
via Udacity
★★★★☆ (3 ratings) | Self Paced

UX Design for Mobile Developers
Google via Udacity
★★★★★ (3 ratings) | Self Paced

Android Basics: Multiscreen Apps
Google via Udacity
★★★★☆ (3 ratings) | Self Paced

Networks Illustrated: Principles without Calculus
Princeton University via Coursera
★★★★☆ (3 ratings) | 4th Sep, 2017

Game Development for Modern Platforms
Michigan State University via Coursera
★★★★★ (3 ratings) | 11th Sep, 2017

Agile Software Development
ETH Zurich via edX
★★★★☆ (3 ratings) | Self Paced

MATLAB and Octave for Beginners
École Polytechnique Fédérale de Lausanne via edX
★★★☆☆ (3 ratings) | Self Paced

Introduction to DevOps
Microsoft via edX
★★★★☆ (3 ratings) | Self Paced

Introduction to MongoDB using the MEAN Stack
MongoDB University via edX
★★★★★ (3 ratings) | Self Paced

Autonomous Mobile Robots
ETH Zurich via edX
★★★☆☆ (3 ratings) | Self Paced

JavaScript Promises
Google via Udacity
★★★★★ (3 ratings) | Self Paced

Introduction to Mobile Application Development using Android
The Hong Kong University of Science and Technology via edX
★★★★☆ (2 ratings) | 24th Oct, 2017

Android App Components — Services, Local IPC, and Content Providers
Vanderbilt University via Coursera
★★★☆☆ (2 ratings) | 4th Sep, 2017

Programming Languages, Part B
University of Washington via Coursera
★★★★★ (2 ratings) | 18th Sep, 2017

Developing International Software, Part 1
Microsoft via edX
★★★★☆ (2 ratings) | Self Paced

Compilers
Stanford University via Stanford OpenEdx
★★★★☆ (2 ratings) | Self Paced

Browser Rendering Optimization
Google via Udacity
★★★★☆ (2 ratings) | Self Paced

Machine Learning: Unsupervised Learning
Brown University via Udacity
★★★★★ (2 ratings) | Self Paced

Android App Components — Intents, Activities, and Broadcast Receivers
Vanderbilt University via Coursera
★★★☆☆ (2 ratings) | 4th Sep, 2017

Analyzing and Visualizing Data with Power BI
Microsoft via edX
★★★★★ (2 ratings) | Self Paced

Introduction to Mobile Application Development using Android
The Hong Kong University of Science and Technology via edX
★★★★☆ (2 ratings) | 24th Oct, 2017

Approximation Algorithms Part I
École normale supérieure via Coursera
★★★★★ (2 ratings) | 11th Sep, 2017

Android Basics: Networking
Google via Udacity
★★★★☆ (2 ratings) | Self Paced

App Design and Development for iOS
University of Toronto via Coursera
★★★☆☆ (2 ratings) | 11th Sep, 2017

Internet Emerging Technologies
Yonsei University via Coursera
★★★☆☆ (2 ratings) | 4th Sep, 2017

Advanced Data Structures in Java
University of California, San Diego via Coursera
★★★★☆ (2 ratings) | 4th Sep, 2017

Client-Server Communication
Google via Udacity
★★★★★ (2 ratings) | Self Paced

Analyzing and Visualizing Data with Power BI
Microsoft via edX
★★★★★ (2 ratings) | Self Paced

Agile Planning for Software Products
University of Alberta via Coursera
★★★☆☆ (2 ratings) | 11th Sep, 2017

Algorithms on Graphs
University of California, San Diego via Coursera
★★★★☆ (2 ratings) | 4th Sep, 2017

Using Python for Research
Harvard University via edX
★★★★☆ (2 ratings) | Self Paced

Networking for Web Developers
via Udacity
★★★★★ (2 ratings) | Self Paced

Responsive Website Tutorial and Examples
University of London International Programmes via Coursera
★★★★★ (2 ratings) | 4th Sep, 2017

Mobile Application Experiences Part 1: From a Domain to an App Idea
Massachusetts Institute of Technology via edX
★★★★★ (2 ratings) | Self Paced

iOS App Development Basics
University of Toronto via Coursera
★★★★☆ (2 ratings) | 4th Sep, 2017

Build Your First Android App (Project-Centered Course)
École Centrale Paris via Coursera
★★★☆☆ (2 ratings) | 11th Sep, 2017

Web Application Development: Basic Concepts
University of New Mexico via Coursera
★★★★☆ (1 rating) | 25th Sep, 2017

Getting Started: Agile Meets Design Thinking
University of Virginia via Coursera
★★★★★ (1 rating) | 11th Sep, 2017

Advanced Algorithms and Complexity
University of California, San Diego via Coursera
★★★☆☆ (1 rating) | 4th Sep, 2017

Running Product Design Sprints
University of Virginia via Coursera
★★★☆☆ (1 rating) | 4th Sep, 2017

Managing an Agile Team
University of Virginia via Coursera
★★☆☆☆ (1 rating) | 11th Sep, 2017

Cybersecurity and Mobility
University System of Georgia via Coursera
★☆☆☆☆ (1 rating) | 4th Sep, 2017

Functional Programming in Haskell: Supercharge Your Coding
University of Glasgow via FutureLearn
★★★★☆ (1 rating) | 18th Sep, 2017

A developer’s guide to the Internet of Things (IoT)
IBM via Coursera
★★★★☆ (1 rating) | 4th Sep, 2017

Interfacing with the Raspberry Pi
University of California, Irvine via Coursera
★☆☆☆☆ (1 rating) | 11th Sep, 2017

Programming Languages, Part C
University of Washington via Coursera
★★★★★ (1 rating) | 4th Sep, 2017

Fundamentals of Computer Architecture
EIT Digital via Coursera
★★☆☆☆ (1 rating) | 4th Sep, 2017

Best Practices for iOS User Interface Design
University of California, Irvine via Coursera
★★★★★ (1 rating) | 11th Sep, 2017

Software Architecture for the Internet of Things
EIT Digital via Coursera
★★★★☆ (1 rating) | 11th Sep, 2017

Getting started with Augmented Reality
Institut Mines-Télécom via Coursera
★★★★★ (1 rating) | 18th Sep, 2017

Google Cloud Platform Fundamentals: Core Infrastructure
Google via Coursera
★★★★☆ (1 rating) | 4th Sep, 2017

Asynchronous Programming with JavaScript
Microsoft via edX
★★★★★ (1 rating) | Self Paced

Android: Introducción a la Programación
Universitat Politècnica de València via edX
★★★★☆ (1 rating) | Self Paced

Introduction to Real-Time Systems
IEEE via edX
★★★★☆ (1 rating) | Self Paced

Technical Interview
Pramp via Udacity
★★★★★ (1 rating) | Self Paced

Scalable Microservices with Kubernetes
Google via Udacity
★★★★☆ (1 rating) | Self Paced

Cyber Security Economics
Delft University of Technology via edX
★★☆☆☆ (1 rating) | Self Paced

2D Game Development with libGDX
Amazon via Udacity
★★★★★ (1 rating) | Self Paced

Gradle for Android and Java
Google via Udacity
★★★★★ (1 rating) | Self Paced

How to Code: Complex Data
The University of British Columbia via edX
★★★★★ (1 rating) | Self Paced

Software Architecture & Design
Georgia Institute of Technology via Udacity
★★★★★ (1 rating) | Self Paced

How to Win Coding Competitions: Secrets of Champions
ITMO University via edX
★★★☆☆ (1 rating) | 16th Oct, 2017

Introduction to Cloud Infrastructure Technologies
Linux Foundation via edX
★★★★☆ (1 rating) | Self Paced

Algorithms
Indian Institute of Technology Bombay via edX
★★★★★ (1 rating) | Self Paced

Android Basics: User Interface
Google via Udacity
★★☆☆☆ (1 rating) | Self Paced

Intermediate C++
Microsoft via edX
★★★★☆ (1 rating) | Self Paced

HTML5 Apps and Games
World Wide Web Consortium (W3C) via edX
★★★☆☆ (1 rating) | 1st Oct, 2017

Computation Structures 2: Computer Architecture
Massachusetts Institute of Technology via edX
★★★★☆ (1 rating) | Self Paced

Algorithms
Indian Institute of Technology Bombay via edX
★★★★★ (1 rating) | Self Paced

Principles of Machine Learning
Microsoft via edX
★★★★★ (1 rating) | Self Paced

Android Basics: Data Storage
via Udacity
★★★★★ (1 rating) | Self Paced

Material Design for Android Developers
Google via Udacity
★★★★★ (1 rating) | Self Paced

Android: Introducción a la Programación
Universitat Politècnica de València via edX
★★★★☆ (1 rating) | Self Paced

Developing Scalable Apps in Java
Google via Udacity
★★★★☆ (1 rating) | Self Paced

Android Performance
Google via Udacity
★★★★★ (1 rating) | Self Paced

Developing Scalable Apps in Python
Google via Udacity
★★★★☆ (1 rating) | Self Paced

Principles of Machine Learning
Microsoft via edX
★★★★★ (1 rating) | Self Paced

Intro to Theoretical Computer Science
via Udacity
★★★★★ (1 rating) | Self Paced

Intro to Progressive Web Apps
Google via Udacity
Self Paced

UIKit Fundamentals
via Udacity
Self Paced

Dynamic Web Applications with Sinatra
via Udacity
Self Paced

Enterprise Software Lifecycle Management
National Research Nuclear University MEPhI via edX
Self Paced

Probabilistic Graphical Models 3: Learning
Stanford University via Coursera
11th Sep, 2017

Web Connectivity and Security in Embedded Systems
EIT Digital via Coursera
25th Sep, 2017

Google Maps APIs
Google via Udacity
Self Paced

Concurrency
AdaCore University via Independent
Self Paced

The MVC Pattern in Ruby
via Udacity
Self Paced

Animation and CGI Motion
Columbia University via edX
11th Sep, 2017

Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
Stanford University via Coursera
11th Sep, 2017

Cybersecurity Risk Management
Rochester Institute of Technology via edX
26th Sep, 2017

VR Scenes and Objects
via Udacity
Self Paced

Cybersecurity and the Internet of Things
University System of Georgia via Coursera
11th Sep, 2017

Reviews & Metrics for Software Improvements
University of Alberta via Coursera
11th Sep, 2017

Android Basics: Button Clicks
Google via Udacity
Self Paced

Graph Search, Shortest Paths, and Data Structures
Stanford University via Coursera
11th Sep, 2017

Moving to the Cloud
University of Melbourne via Coursera
25th Sep, 2017

算法设计与分析 Design and Analysis of Algorithms
Peking University via Coursera
25th Sep, 2017

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course)
Hebrew University of Jerusalem via Coursera
25th Sep, 2017

Computer Forensics
Rochester Institute of Technology via edX
26th Sep, 2017

Deploying Applications with Heroku
via Udacity
Self Paced

Foundations of Data Structures
Indian Institute of Technology Bombay via edX
Self Paced

Introduction to Architecting Smart IoT Devices
EIT Digital via Coursera
18th Sep, 2017

Learn to Code Electronic Music Tools with Javascript
Goldsmiths, University of London via FutureLearn
18th Sep, 2017

Firebase Essentials For Android
Google via Udacity
Self Paced

Introduction to Neurohacking In R
Johns Hopkins University via Coursera
18th Sep, 2017

Designing RESTful APIs
via Udacity
Self Paced

How to Make an iOS App
via Udacity
Self Paced

Advanced Android App Development
Google via Udacity
Self Paced

C++ For C Programmers, Part B
University of California, Santa Cruz via Coursera
18th Sep, 2017

Learn Backbone.js
via Udacity
Self Paced

How to create in Android
via Udacity
Self Paced

Offline Web Applications
Google via Udacity
Self Paced

The Software Architect Code: Building the Digital World
Universidad Carlos iii de Madrid via edX
Self Paced

iOS Networking with Swift
via Udacity
Self Paced

M233: Getting Started with Spark and MongoDB
via MongoDB University
Self Paced

Engineering Maintainable Android Apps
Vanderbilt University via Coursera
11th Sep, 2017

Android Ubiquitous Computing
Google via Udacity
Self Paced

面向对象技术高级课程(The Advanced Object-Oriented Technology)
Peking University via Coursera
25th Sep, 2017

Mobile Application Experiences Part 3: Building Mobile Apps
Massachusetts Institute of Technology via edX
Self Paced

iOS Persistence and Core Data
via Udacity
Self Paced

Toward the Future of iOS Development with Swift
University of California, Irvine via Coursera
11th Sep, 2017

How to Code: Systematic Program Design — Part 2
The University of British Columbia via edX
Self Paced

How to Code: Systematic Program Design — Part 3
The University of British Columbia via edX
Oct, 2015

LPL: Language, Proof and Logic
Stanford University via Stanford OpenEdx
Self Paced

VR Software Development
Google via Udacity
Self Paced

Front-End JavaScript Frameworks: Angular
The Hong Kong University of Science and Technology via Coursera
4th Sep, 2017

Fundamentals of Red Hat Enterprise Linux
Red Hat via edX
Self Paced

Developing Android Apps with App Inventor
The Hong Kong University of Science and Technology via Coursera
4th Sep, 2017

Building Functional Prototypes using Node.js
Microsoft via edX
Self Paced

Applied Machine Learning
Microsoft via edX
Self Paced

Front-End Web UI Frameworks and Tools: Bootstrap 4
The Hong Kong University of Science and Technology via Coursera
4th Sep, 2017

Introduction to TypeScript 2
Microsoft via edX
Self Paced

Software Testing Fundamentals
University System of Maryland via edX
23rd Oct, 2017

Database Systems Concepts & Design
Georgia Institute of Technology via Udacity
Self Paced

Software Analysis & Testing
Georgia Institute of Technology via Udacity
Self Paced

How Virtual Reality (VR) Works
University of California, San Diego via edX
Self Paced

Software Development Fundamentals
University of Pennsylvania via edX
Self Paced

Cloud Computing for Enterprises
University System of Maryland via edX
23rd Oct, 2017

Building Arduino robots and devices
Moscow Institute of Physics and Technology via Coursera
4th Sep, 2017

Developing Intelligent Apps and Bots
Microsoft via edX
Self Paced

Professional Android App Development
Galileo University via edX
Self Paced

Cybersecurity: The CISO’s View
University of Washington via edX
Self Paced

Testing with Agile
University of Virginia via Coursera
4th Sep, 2017

Introduction to C#
Microsoft via edX
Self Paced

Multiplatform Mobile App Development with NativeScript
The Hong Kong University of Science and Technology via Coursera
4th Sep, 2017

Algorithm Design and Analysis
University of Pennsylvania via edX
Self Paced

Teamwork & Collaboration
Rochester Institute of Technology via edX
16th Jan, 2018

C++ For Programmers
via Udacity
Self Paced

Google Cloud Platform Fundamentals for AWS Professionals
Google Cloud via Coursera
4th Sep, 2017

Building Interactive Prototypes using JavaScript
Microsoft via edX
Self Paced

Developing SQL Databases
Microsoft via edX
Self Paced

Data Structures and Software Design
University of Pennsylvania via edX
Self Paced

Professional Android App Development
Galileo University via edX
Self Paced

Introduction to Kubernetes
Linux Foundation via edX
Self Paced

Internet of Things: Sensing and Actuation From Devices
University of California, San Diego via Coursera
4th Sep, 2017

Homeland Security & Cybersecurity Connection — It’s Not About the Terrorists
University of Colorado System via Coursera
4th Sep, 2017

Introduction to Programming with Java: Fundamental Data Structures and Al
Universidad Carlos iii de Madrid via edX
9th Jan, 2018

New Android Fundamentals
via Udacity
Self Paced

iOS Design Patterns
via Udacity
Self Paced

Java for Android
Vanderbilt University via Coursera
5th Sep, 2017

Developing Intelligent Apps and Bots
Microsoft via edX
Self Paced

Applied Machine Learning
Microsoft via edX
Self Paced

Cybersecurity and the X-Factor
University System of Georgia via Coursera
4th Sep, 2017

Building iOS Interfaces
via Udacity
Self Paced

Games, Sensors and Media
University of California, Irvine via Coursera
11th Sep, 2017

Divide and Conquer, Sorting and Searching, and Randomized Algorithms
Stanford University via Coursera
11th Sep, 2017

Minecraft, Coding and Teaching
University of California, San Diego via edX
Self Paced

Software Construction: Data Abstraction
The University of British Columbia via edX
Self Paced

Swift for Developers
via Udacity
Self Paced

Документы и презентации в LaTeX (Introduction to LaTeX)
Higher School of Economics via Coursera
11th Sep, 2017

Introduction to DevOps: Transforming and Improving Operations
Linux Foundation via edX
Self Paced

Advanced Software Construction in Java
Massachusetts Institute of Technology via edX
Self Paced

Foundations of Data Structures
Indian Institute of Technology Bombay via edX
Self Paced

AngularJS: Framework Fundamentals
Microsoft via edX
Self Paced

Advanced CSS Concepts
Microsoft via edX
Self Paced

VR Platforms & Applications
via Udacity
Self Paced

Animation and CGI Motion
Columbia University via edX
11th Sep, 2017

Programmation Concurrente (avec Java)
Sorbonne Universités via edX
Self Paced

LAFF — On Programming for Correctness
The University of Texas at Austin via edX
Self Paced

VR Design
via Udacity
Self Paced

Introduction to Data Structures
University of Adelaide via edX
Self Paced

Multiplatform Mobile App Development with Web Technologies: Ionic and Cordova
The Hong Kong University of Science and Technology via Coursera
4th Sep, 2017

Shortest Paths Revisited, NP-Complete Problems and What To Do About Them
Stanford University via Coursera
4th Sep, 2017

Implementation of Data Structures
Indian Institute of Technology Bombay via edX
Self Paced

UML Class Diagrams for Software Engineering
KU Leuven University via edX
Self Paced

Architecting Smart IoT Devices
EIT Digital via Coursera
4th Sep, 2017

Mobile Application Experiences
Massachusetts Institute of Technology via edX
Self Paced

Networking and Security in iOS Applications
University of California, Irvine via Coursera
11th Sep, 2017

Nguồn: medium.freecodecamp.org