Home Blog Page 219

Các kỹ thuật SEO tối thiểu mà Dev cần nắm vững trong lập trình Web 2024

Bài viết này được dịch từ nguồn http://qiita.com mà theo mình khá hữu ích đối với web developer muốn tối ưu hoá website (SEO) với các search engine (bộ máy tìm kiếm) như Google, Bing, …

Trong khi đang làm việc tại công ty Basic (1 công ty của Nhật hoạt động trong lĩnh vực Web & Media Marketing, vận hành 2 website ferretferretOne), tôi được giao nhiệm vụ tối ưu hoá công cụ tìm kiếm cho website phocase (1 website bán phụ kiện điện thoại), để hoàn thành công việc này tôi đã phải tìm hiểu và học thêm các kiến thức, tiện đây xin được tổng hợp lại và chia sẻ với các bạn những điều cần nhớ về SEO với vai trò là 1 kỹ sư.

TLDR; Bài viết này dành cho nhiều đối tượng nên tương đối dài, hãy chọn lọc các kiến thức cần thiết cho mình thôi nhé :v

★ Bạn có thể nhận được gì khi đọc bài viết này ?

  • Sự tương tác giữa các Marketer và Director trở nên dễ dàng hơn
  • Nhận biết các đoạn code mà vô tình làm giảm thứ hạng của website trên bộ máy tìm kiếm
  • Đề xuất các giải pháp SEO có thể thực hiện được ở phía Developer
  • Nắm bắt được bức tranh/bối cảnh SEO năm 2017

Nắm bắt chính xác tài liệu được Google chính thức công khai

Có thể tìm kiếm rất nhiều thông tin trên các trang web, nhưng tối thiểu thì hãy thực hiện những chính sách được Google đưa ra về rule của 1 website.

Search Engine Optimization Starter Guide

Ngoài ra bạn cũng có thể tìm hiểu thêm các thông tin tại website chính thức của Google: Official news on crawling and indexing sites for the Google index

Hãy tìm kiếm trong Search Console Help các từ khoá liên quan tới các công việc đã thực hiện từ trước, rất có thể bạn sẽ phát hiện ra những kỹ thuật bị bỏ sót mà mình không hề nghĩ tới.

Chẳng hạn nếu như bạn có sử dụng thẻ alt với ảnh trên website, thì tôi khuyên bạn nên thử tìm kiếm trong Search Console Help các ảnh đã được đánh tag trước đó.
Việc nhồi nhét quá nhiều keyword trong thẻ alt có thể khiến search engineer đưa vào danh sách spam, đây cũng có thể là cách để bạn phòng tránh việc đó.
Search Console Help

Chính sách của Google đối với Mobile Site

Mobile First Index (MFI)

Ngày 5/11/2016, Google chính thức công bố chính sách của mình đối với Mobile site: Mobile-first Indexing

Về cơ bản, cho tới thời điểm hiện tại ngoài rank được đánh cho các website hướng PC Desktop, Google còn bổ sung thêm rank cho các website chú trọng nội dung và thiết kế tới SP (Smart phone)

Ngày 5/4/2017, Tại hội nghị Next10x Conference, Các kỹ sư của Google đã chính thức công bố mục tiêu áp dụng vào trong năm nay, tuy nhiên chưa công bố chính thức khoảng thời gian.

  • Trước khi áp dụng MFI (Hiện tại)
    • PC Search: Hiển thị theo trình tự của rank cho nội dung PC site
    • SP Search: Hiển thị theo trình tự của rank cho nội dung PC site
  • Sau khi áp dụng MFI (Chưa xác định thời gian)
    • PC Search: Hiển thị theo trình tự chú trọng vào rank cho nội dung SP site (Không có nghĩa là không tính đến rank của PC site)
    • SP Search: Hiển thị theo trình tự của rank cho nội dung SP site

★ Các site có khả năng chịu ảnh hưởng:

  • Có sự khác biện lớn giữa phiên bản PC và SP
  • Còn nhiều thông tin tồn tại trên phiên bản cho PC nhưng lại ko có trên phiên bản SP
  • Đã hỗ trợ và có chiến lược SEO cho PC site nhưng lại chưa có cho SP site
  • Ngoài header vs footer ra, các nội dung chính là khác nhau
  • Cấu trúc HTML khác nhau
  • Tốc độ hiển thị cho SP site quá chậm

Mobile Friendly

Ngày 21/4/2015, Google công bố : thứ tự xuất hiện trên kết quả tìm kiếm có liên quan tới UI, UX trong trường hợp truy cập trang web trên Smart Phone Device
Rolling out the mobile-friendly update

Chỉ ảnh hưởng tới thứ tự xuất hiện kết quả tìm kiếm trên Mobile Device
Ảnh hưởng trong phạm vi toàn bộ các ngôn ngữ trên thế giới
Áp dụng cho các page riêng rẽ, chứ không phải toàn bộ trang web

Nếu như website đó không được coi là Mobile Friendly sẽ có thứ tự thấp và không được ưu tiên xuất hiện trên kết quả tìm kiếm. Điều này có tác động trực tiếp tới doanh thu của các website thương mại điện tử (EC site)

Sử dụng website sau, có thể kiểm tra tính thân thiện với thiết bị mobile của 1 trang web
Mobile Friendly Check

★ Các hạng mục cần kiểm tra

  • Font size có thích hợp (>= 16px) không?
  • Có sử dụng thẻ meta và chỉ định viewport cho mobile không?
  • Khoảng cách của các liên kết có bị quá hẹp không? (phòng ngừa lỗi)
  • Nội dung trang web có bị tràn ra ngoài màn hình không?
  • Website có được hiển thị trong vòng 3s không? (Nếu việc hiển thị tốn quá > 3s, thì 40% người dùng sẽ thoát trang web đó)

Đối với các website không thoả mãn tối thiểu các điều kiện trên sẽ có thể có có thứ hạng thấp trong kết quả tìm kiếm.

★ Mobile Friendly Support & Yêu cầu craw lại website

Bằng cách sử dụng GoogleSearchConsole, bạn có thể nắm rõ được chi tiết các thành phần trên website mình không thoả mãn các hạng mục kiểm tra phía trên.
Google Webmaster Home

Sau khi giải quyết các vấn đề trên, hãy gửi yêu cầu cho Google crawl lại các URL đó.
Chi tiết các bạn có thể tham khảo link sau về việc Yêu cầu Google crawl lại các URL

★ Các hạng mục để đánh giá về UX

  • First view của trang web sẽ được hiển thị trong vòng 1 giây (Google recommended)
  • Chuẩn bị riêng biệt kích thước hình ảnh với PC Site, để giảm dung lượng của một trang web
  • Sử dụng công cụ YUI Compressor và JSMin để rút ngắn đoạn code dài như thư viện
  • Thiết lập các nội dung có thể tab được lớn hơn 48px

Để xác nhận tốc độ hiển thị của web site, bạn có thể dụng công cụ: PageSpeed Insights

★ Chuyển tiếp quảng cáo

Đối với các quảng cáo chuyển tiếp thì đến khi hiển thị target page, thì hiển thị quảng cáo với link [Skip this page] giống như ảnh bên dưới, từ tháng 11 năm 2016 sẽ vi phạm điều luật của Google.

Quote: https://london3.jp/2014/12/skip/

★ Các tác động dẫn tới việc giảm thứ hạng rank

  • Nội dung chính nằm trong Popup (kể cả Modal)
  • Trước khi dẫn tới main content (nội dung chính) của website thì hiển thị quảng cáo giống trong ảnh trên
  • First view có chưa quảng cáo với kích thước lớn, nếu không scroll thì không thấy được nội dung chính

★ Các tác động không ảnh hưởng tới thứ hạng rank

  • Pop-up cấp quyền sử dụng Cookie
  • Các hiển thị như xác minh độ tuổi với cơ sở dựa vào pháp luật
  • Các page mà chỉ một bộ phận cụ thể người dùng được hiển thị, chẳng hạn như một trang đăng nhập.
  • Banner quảng cáo Pop-up mà không chiếm nhiều diện tích màn hình

Hơn nữa, trong cuộc đối thoại giữa Google với người sử dụng có câu hỏi:

Về nội dung Pop-up (Quảng cáo) thì, liệu có khả năng nội dung ẩn bên trong nó lại được Googlebot ưu tiên ko ?

Về phía Google đã trả lời là:「Chính xác là có khả năng đó」, như vậy thì việc hiển thị quảng cáo dù là = Pop-up hay Modal cũng là không nên.

Cài đặt XML Sitemap & Đăng ký RSS Feed

Công việc này đã được Google hướng dẫn rất chi tiết tại link sau:
Best practices for XML sitemaps & RSS/Atom feeds

RSS, Atom Register và PubSubHubbub(PuSH)

Được sử dụng như Sitemap, có format tương tự RSS và Atom trong RSS Reader.。

★ Lợi ích khi đăng ký Feed

  • Chỉ URL được cập nhật gần đây nhất được đăng ký.
  • Tần suất Crawl cao hơn Sitemap thông thường

Việc thông báo cho Google các Page được create/update gần đây nhất là một phương pháp sử dụng Feed có tần suất Crawl cao hơn một cách hiệu quả.

★ Thực hiện index theo thời gian thực dựa vào PubSubHubbub (PuSH)

Một cách để thực hiện index realtime khác đó là: Sử dụng phương thức PubSubHubbub (hay còn gọi là PuSH) giúp thông báo tới Google các thay đổi tại thời điểm mà các trang được update.

Danh sách các repository thực hiện việc implement PuSH được viết trên nhiều ngôn ngữ lập trình

Trường hợp code bằng PHP, có thể sử dụng file được Download từ thư viện sau đây:
pubsubhubbub-php-master/library/publisher.php

require_once './publisher.php' ;
$publisher = new Publisher('http://pubsubhubbub.appspot.com/');
$publisher->publish_update('http://example.com/article/1');

Đăng ký Sitemap

★ HTML Sitemap

  • Sitemap cho người sử dụng truy cập trang web
  • Thường xuyên quản lý để tránh các liên kết lỗi
  • Việc phân loại sẵn các Category giúp cải thiện khả năng sử dụng

★ XML Sitemap

Việc tạo sẵn một Sitemap có định dạng XML chính là công cụ đắc lực, trợ giúp Search Engine index website của bạn
Dưới đây là các loại Sitemap:

Loại File XML Vai trò
sitemap.xml Mô tả cấu trúc website, bao gồm cả mobile sitemap
movie.xml Hiển thị các nội dung video trong tìm kiếm
image.xml Hiển thị các nội dung ảnh trong tìm kiếm
news.xml Khai báo các tệp tin được gửi tới Google News
  • Với mỗi file XML được cài đặt chính xác, góp phần xúc tiến việc index website của bạn
  • Tuy nhiên nếu crawler không visit, chúng ta cần thực hiện cải thiện lại Sitemap đã tạo trước đó
  • Trên SP site việc giới hạn quyền truy cập webiste mobile trên device = .htaccess có thể khiến Search Engine Bot không vô được, vì vậy hãy cho phép Googlebot-Mobile có quyền truy cập.

Trong thực tế, đối với việc create/submit Sitemap chúng ta có thể tham khảo thêm tại link Build and submit a sitemap , có hướng dẫn chi tiết các loại tool giúp tạo và test sitemap, rất tiện lợi.

★ Video, Image Sitemap

Việc Crawler thu thập thông tin tìm kiếm liên quan tới Video và Ảnh là tương đối khó khăn, do đó chúng ta cần sử dụng Sitemap chuyên dụng có chứa thông tin cho Video và Image.
Về cách create thì bạn có thể tạo file XML chỉ chứa các video và ảnh mới tạo hoặc bổ sung chúng vào 1 file XML đã tồn tại đều ok, tuy nhiên hãy thiết lập một sitemap chứa nhiều thông tin.
Sitemap Protocol : Video extension, Title, Duration, Description

Hơn nữa, bằng cách sử dụng Video Sitemap, khi tiến hành tìm kiếm Video lẫn Image trong Search Engine, Video có thể được tìm thấy trong kết quả.
Ví dụ file movie.xml như sau:

xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"

Khi vận hành 1 EC site (Website thương mại điện tử) sử dụng Image Sitemap, doanh nghiệp có thể thu hút và tiếp cận được đối tượng người dùng tìm kiếm sản phẩm muốn mua bằng ảnh trên máy tìm kiếm.

Những điều cần lưu ý khi sử dụng tag HTML

【Title】

Trong SEO, thẻ Title là một trong số những thẻ tag có tầm ảnh hưởng nhất, Trong 1 page chỉ được có 1 thẻ title trong head tag.
index.html

<head>
    <title>Page title</title>
</head>
  • Nếu trong thẻ title có từ khóa tìm kiếm của user sẽ được bôi đậm trên kết quả tìm kiếm
  • Mỗi Page nên có 1 thẻ title với nội dung khác nhau
  • Trên kết quả tìm kiếm của Search Engine sẽ chỉ hiển thị tối đa ~32 ký tự trong nội dung của thẻ title
  • Nếu trong thẻ title có chứa các từ khóa không cần thiết sẽ làm giảm trọng số của từ khóa mong muốn được tìm kiếm
  • Nên lựa chọn nội dung của thẻ title sao cho dựa vào đó có thể đoán được phần nào nội dung của web page

Cần lưu ý rằng trên Search Engine sẽ chỉ hiển thị khoảng 32 ký tự cho tiêu đề (title) của 1 website, và thậm chí là 24 ký tự khi người dùng tìm kiếm trên thiết bị di dộng.
Nếu đặt tiêu đề cho page không liên quan tới nội dung của page sẽ làm giảm lượng người dùng truy cập, dẫn tới rank website bị giảm. Cho dù người dùng có truy cập vào nhưng do nội dung chính và tiêu đề không giống nhau, họ sẽ mau chóng rời đi -> tỷ lệ bounce rate sẽ ngày càng tăng.

【Description】

Trước tiên khi thiết lập Description, nội dung hiển thị trên search engine sẽ thay đổi tại đây:

Việc thêm mô tả cho nội dung mà người dùng mong muốn tìm kiếm, góp phần làm tăng tỷ lệ click rate trên search result.
Tuy nhiên nếu xét về mức độ ảnh hưởng về ranking trong thứ hạng xuất hiện trên Search Engine thì có vẻ là không lớn lắm.

Hơn nữa ở thời điểm hiện tại dù không có mô tả rõ ràng cho page thì Google cũng hiện thị Description mà nó tự động tạo ra cho web page.

Dựa vào các mô tả mà Google tự động sinh ra cho trang web, với các trường hợp đưa ra Description phán đoán chính xác thông tin trên website:

  • Khuyến khích để Google tự động tạo description cho web page
  • Các page khác nhau phải có nội dung khác nhau
  • Nội dung description cần nhất quán với title tag
  • Trên search engine chỉ hiển thị khoảng 124 ký tự cho phần description
  • Khi tìm kiếm bằng thiết bị di động thì chỉ hiển thị khoảng 80 ký tự cho phần description
  • Không bắt buộc văn phong phải chính xác tuy nhiên nội dung của tag phải rõ ràng, chuẩn xác.

Bạn có thể sử dụng tool sau để đánh giá description trên 1 web page: http://seolaboratory.jp/description/

【h1】

Do việc lạm dụng thẻ h1 quá nhiều dẫn tới Google đã hạ chỉ số đánh giá của nó, tuy nhiên do vẫn còn xuất hiện trên kết quả tìm kiếm, nên đối với SEO vẫn còn khá quan trọng.

  • Mỗi page chỉ nên có 1 thẻ h1
  • Mặc dù Google có công bố chính thức rằng có thể thiết lập nhiều thẻ h1, tuy nhiên nếu làm vậy sẽ gây khó khăn cho việc nhận biết chủ đề của nội dung web page
  • Có thể thiết thể ảnh bên trong thẻ tag h1

/iphone6/?color="white"

<h1>
  <img src="/images/iphone6_white.jpg" alt="Danh sách bao da cho điện thoại iPhone 6 được nữ giới ưa chuộm" />
</h1>

Với cách đặt ảnh như trên thì nó cũng được nhận diện như 1 phần của h1 tag, do đó hãy mô tả chính xác ảnh bằng cách thêm nội dung vào thuộc tính alt (văn bản thay thế).

★ Keyword truyền tải bởi TDH (Title Description H1)

Nếu bạn đặt từ khóa mình muốn SEO trong tất cả các thẻ TDH(Title Description H1)sẽ là cách đầu tiên giúp Google nhận biết chính xác từ khóa cần SEO.
Do đó, cần xem xét 3 thẻ trên có chứa từ khóa mình cần lên top không?

Lưu ý với thẻ【img】và thuộc tính 【alt】

Bằng cách sử dụng thuộc tính alt mô tả nội dung trong ảnh và video, thì người khiếm thị (Sử dụng tính năng đọc văn bản) hoặc người dùng có tốc độ mạng internet chậm cũng có thể dễ dàng nhận được thông tin về website của bạn, điều này được Google đánh giá rất cao.

Tham khảo source code bên dưới về Google Search Console
Nguồn: https://support.google.com/webmasters/answer/114016?hl=vi

  • Cách sử dụng không tốt thẻ img với thuộc tínhalt
<img src="puppy.jpg" alt=""/>

<img src="puppy.jpg" alt="puppy dog baby 
dog pup pups puppies doggies pups litter puppies dog retriever 
 labrador wolfhound setter pointer puppy jack russell terrier 
puppies dog food cheap dogfood puppy food"/>

Việc nhồi nhét quá nhiều từ khóa vào thuộc tính alt dẫn tới việc bị google nhận diện thành Spam content.

  • Cách sử dụng tối ưu thẻ img với thuộc tínhalt
<img src="puppy.jpg" alt="puppy"/>

<img src="puppy.jpg" alt="Dalmatian puppy playing fetch">

Nếu có thể thì tốt nhất hãy mô tả bằng câu văn thay vì chỉ sử dụng 1 từ khóa cho các img tag.

★ Các hạng mục khác được khuyến khi khi sử dụng thẻ 【img】 (Không bắt buộc)

  • Thống nhất file name và nội dung thuộc tính alt
  • Có thể thiết lập nội dung trong alt mà không có khoảng trắng
  • Cố gắng thiết lập mô tả cho ảnh sao cho gần với nội dung trong bức ảnh đó nhất có thể
  • Các ảnh tương tự nhau thì nên để trong cùng 1 thư mục host
  • Nếu một ảnh giống nhau được sử dụng ở nhiều nơi, thì hãy mô tả thật chi tiết ảnh đó trên website của mình, khi đó Google sẽ nhận diện ảnh của site bạn là original image, và hiển thị trên search result !

★ Khả năng index và thu thập dữ liệu ở cùng thời điểm

【Khả năng thu thập dữ liệu】
Để crawler của GoogleBot dễ dàng thu thập dữ liệu, chúng ta cần

  • Cấu trúc, sử dụng thẻ HTML phải đúng chuẩn
  • Với các page có nội dung liên quan cần có liên kết tới nhau, để đảm bảo khả năng crawler trải dài trên toàn bộ website

【Khả năng index – đánh chỉ mục tìm kiếm】
Nếu đã chuẩn bị sẵn các thuộc tính alt cho ảnh, âm thanh, video trên website của mình thì khi GoogleBot crawl sẽ index được chính xác nội dung của chúng.

【a】tag

Hãy thiết lập chuẩn xác anchor link (text), việc này sẽ giúp truyền tải thông tin tới Google dễ dàng hơn.

Các implement có thể ảnh hưởng tới khả năng crawler

  • Sử dụng javascript để di chuyển tới link cần vô (Google có khả năng nhận biết điều đó)
  • Tìm kiếm bên trong website bằng cách gửi form
  • Link content sử dụng FLASH

【rel=”next” or “prev”】

Khi thiết lập Pagination cho website cần chỉ định thuộc tính rel với giá trị next hoặc prev

★ rel=”prev/next” được xếp hạng ưu tiên hơn rel=”canonical”

Ví dụ vể rel="canonical" cho mọi người dễ hiểu

<link rel="canonical" href="http://example.com/wordpress/seo-plugin/">

Cho dù bạn có để link trên các page 2, 3, 4 về page 1 bằng thuộc tính canonical, thì nextprev vẫn được đánh giá ưu tiên hơn canonical, do đó với các URL không có parameter giống nhau như bên dưới sẽ không được tính là nextprev.

  • Ví dụ chưa tối ưu
http://example.com/iphone7?page=1
http://example.com/iphone7?color=red&page=2
http://example.com/iphone7?page=3
http://example.com/iphone7?page=4
  • Ví dụ tối ưu: được tính là nextprev
// page=
http://example.com/iphone7?color=red&page=1
http://example.com/iphone7?color=red&page=2
http://example.com/iphone7?color=red&page=3
http://example.com/iphone7?color=red&page=4

// viết tắt p=
http://example.com/foo.html
http://example.com/foo.html?p=2
http://example.com/foo.html?p=3

// Sử dụng URL path thay thế cho param page
http://example.com/foo/1/
http://example.com/foo/2/
http://example.com/foo/3/

★ Các điểm cần lưu ý

  • 1 page chỉ được phép có 1 next và 1 prev
  • Absolute path thì ngon hơn Relative path URL (Không bắt buộc)
  • Trường hợp hiển thị kết quả tìm kiếm của 1 page có sử dụng điều kiện filter, thì ở trong trang điều kiện đó cũng cần bổ sung thuốc tính nextprev
  • Nếu bạn không muốn hiển thị một page trên kết quả tìm kiếm, hãy học cách sử dụng canonical

【rel=”nofollow”】

Với các target link có gắn thuộc tính rel="nofollow" sẽ không được search engine visit. Thuộc tính này xuất hiện ở thẻ meta và thẻ a.
Hơn nữa, khi GoogleBot visit target link, nó cũng tính toán độ tin cậy của các target link trên website và đánh giá thứ hạng site đó.

  • Các bảng tin và ô comment có thể được người dùng nhập
  • Liên kết tới bookmark site
  • Liên kết tới ranking site
  • Liên kết khi nhận được đánh giá bằng tiền
  • powerd by... link

★ Các liên kết có thể gây ảnh hướng xấu tới website cần lưu ý

  • Các link mà người dùng không nhìn thấy, bị ẩn đi cũng như không click được
  • Liên kết qua lại bằng các trang web hỗ trợ liên kết lẫn nhau
  • Các liên kết đến các trang web được Google xác định là có mã nguồn độc hại

Sử dụng【robots.txt】để không bị crawl thừa

Nếu không muốn search engin crawl trong những trường hợp dưới đây, hãy thiết lập file robot.txt

  • Các web page có chất lượng thấp, các web page không muốn xuất hiện trên kết quả tìm kiếm

File robots.txt được đặt ở thư mục gốc (root directory) của website, Các Bot search engine sẽ tự động đọc và lấy ra.

Ví dụ về nội dung file robots.txt

User-Agent: *
Disallow: /*/matome/
Disallow: /ajax/*.json
Disallow: /image/
Disallow: /search

Hơn nữa Google cũng hỗ trợ tool kiểm tra file robots.txt : Google robots.txt Tester

【rel=”noindex”】

Hãy sử dụng nó khi bạn có chủ ý muốn 1 page nào đó trên website của mình không xuất hiện trên kết quả tìm kiếm của Google.

★ Điểm khác biệt với robots.txt

Sử dụng robots.txt đồng nghĩa với việc không cho Bot Search Enginer thu thập dữ liệu cũng như xếp hạng page đó.

Trong khi sử dụng noindex thì sau một thời điểm nào đó khi link tới website của bạn được share nhiều trên mạng xã hội, thì SEO rank vẫn còn và link tới web page đó vẫn được xếp hạng.

★ Mục đích chính của việc sử dụng “noindex”

  • Với các page chất lượng thấp, nếu có gắn thuộc tính noindex sẽ ko bị xếp hạng thấp website
  • Support các page chưa được setting trong robots.txt cho tới thời điểm hiện tại
  • 404 Page (Thiết lập ở các page trả về status lỗi 404)

Cách thức setting:

<meta name=”robots” content=”noindex”>

★ Cách kiểm tra tình trạng index của một website

Có thể dùng Google Search Console – Index Status
image

Hiển thị Rich snippets

Rich Snippets là đoạn thông tin đặc biệt dùng để hiển thị các thông tin thêm có trong những bài viết đặc biệt (bài đánh giá, sản phẩm, ứng dụng, công thức nấu ăn, địa chỉ công ty..v.v..) trên các máy tìm kiếm (Google, Yahoo, Bing) nhằm cung cấp thêm những thông tin giá trị đến người tìm kiếm giúp họ xác định kết quả tìm kiếm mà họ đang cần. Nhìn vào kết quả tìm kiếm sau, ta thấy có một điều rất đặc biệt: Xuất hiện ảnh thumbnail trong kết quả :v

Rich Snippets có 10 loại phổ biến sau:

  • Author
  • Breadcrumbs
  • Event
  • Organizations
  • People
  • Products
  • Recipes
  • Review
  • Software Application
  • Facebook Share

Việc sử dụng các markup bằng cấu trúc được công bố trên schema.org sẽ làm tăng khả năng hiển thị rich snippet trên kết quả tìm kiếm của google.
Hiện tại thì rich snippet không ảnh hưởng tới rank của 1 website, tuy nhiên có thể ảnh hưởng tới thứ hạng trong kết quả tìm kiếm: Google Webmaster Central office-hours hangout

Ví dụ về 1 page có hiển thị snippets

<section itemscope itemtype="http://schema.org/Game">
    <h1>Monster Hunter Game Series</h1>
    <span itemprop="name">Monster Hunter Double Cross</span>
    <p itemprop="description">Latest Monhan Series with 6 large main Monsters</p>
    <div itemprop="author" itemscope itemtype="http://schema.org/Corporation">
    <p itemprop="name">CONAMI</p>
    <p itemprop="email">example@conamikan.jp</p>
    </div>
</section>

Những lưu ý về URL (Đường dẫn)

【Soft 404】

Tình trang một page có status=200 nhưng nội dung page đó lại cho biết URL này không tồn tại được gọi là soft 404

Chi tiết thêm về lỗi này bạn có thể tham khảo tại đây: https://support.google.com/webmasters/answer/181708?hl=vi

Sử dụng Google Search Console, để dễ dàng confirm lại các page dính lỗi soft 404

Gần đây Google Bot có khả năng phân biệt được lỗi soft 404, nên sẽ ko có hình phạt nào được áp dụng với site dính lỗi này.

  • Trả về status code = 404 khi có lỗi trong CakePHP
throw new NotFoundException();

Ngoài ra, bạn có thể tìm hiểu thêm về lỗi soft 404 ở đây: https://www.suzukikenichi.com/blog/does-google-penalize-your-site-for-having-soft-404/

Chuẩn hóa URL

Việc hiển thị 1 web page có nội dung giống nhau nhưng với nhiều URL khác nhau trên trình duyệt xảy ra khá phổ biến. Tuy nhiên, nếu việc này xảy ra với Google search engine thì có thể website của bạn sẽ bị áp dụng các hình phạt làm giảm thứ hạng tìm kiếm. Chính vì lẽ đó chúng ta cần chuẩn hóa lại URL.

★ Các lợi ích có được khi quy chuẩn hóa đường dẫn

Giả sử: Việc url một website có chứa www và ko chưa www được coi là các page khác nhau
Vấn đề: Lúc này việc đánh giá rank cho website bị phân tán giữa các link có và ko có www
Hướng giải quyết: Có thể chuyển hướng (301 redirect) các page có www sang page ko có www

★ 301 Redirect

  • Wiki: List of HTTP status codes
  • Khi thay đổi tên miền/url, hãy sử dụng chuyển hướng 301 sang đường dẫn mới
  • Từ sau khi thiết lập 301 Redirect, có thể mất tới một tháng đẻ Bot Search crawl lại website

★ Ví dụ sử dụng 301 Redirect

  • Sử dụng 301 Redirect trong việc có và không có www trên URL
  • Loại bỏ việc thêm index.html vào sau URL
  • Trường hợp Pagination /search/?page=1 và /search/ hiển thị nội dung giống nhau
  • Trường hợp có và ko có dấu slash (/) sau URL. Ex: /search/ và /search

Lưu ý khi code: tùy vào chức năng của trình duyệt web, nếu thực hiện điều hướng 301 từ 1 URL tới 1 URL nhất định thì việc di chuyển page này sẽ được lưu vào cache cho tới khi trình duyệt xóa nó đi.

【Canonical】

Cùng một nội dung tương tự nhau (Có thể là 1 bài viết được chia làm nhiều phần), thì không chỉ người dùng mà Google Bot cũng muốn biết bài viết nào là bài viết gốc, câu trả lời cho vấn đề này chính là thuộc tính rel=”canonical”.

Mặt khác chắc hẳn bạn cũng gặp phải trường hợp Single Page và Search Page có chứa 1 lượng lớn nội dung trùng lặp. Nhờ việc thiết lập canonical cho 1 page, mà ta có thể ngăn ngừa được việc Google đánh tụt thứ hạng tìm kiếm từ nội dung bị trùng lặp

  • Ví dụ khi website có 2 phiên bản cho Desktop và Mobile:
<head>
  ...
  <link rel="canonical" href="http://www.example.com/" />
  ...
</head>

Ngoài canonical, còn có thể sử dụng đồng thời với alternate được giải thích chi tiết bên dưới.

★ Ví dụ về sử dụng Canonical

  • Trên kết quả tìm kiếm xuất hiện nhiều page có content giống nhau
  • Mobile page và Desktop page có nội dung tương tự nhau
  • Thiết lập URL để Google Analytics tiến hành đo lường các thông số
  • Khi công khai cùng 1 nội dung trên nhiều website
  • Trường hợp không sử dụng 301 redirect
  • Trường hợp sử dụng mirror site để giảm tải cho web/detect DDOS. (Tuyên nhiên việc này ko được khuyến khích sử dụng vì dễ bị nhận diện là spam)

【Alternate】

Thẻ alternate được khuyến khích sử dụng khi bạn có :

  • Một phiên bản website được phiên dịch hoàn toàn sang một ngôn ngữ khác
  • 2 trang với cấu trúc, nội dung tương tự nhau và chỉ có một vài điểm nhấn khác biệt về ngôn ngữ trong nội dung

Ví dụ:

  • Website example.com
<head>
  ...
  <link rel="alternate" href="http://sp.example.com/" />
  ...
</head>
  • Khi sử dụng alternate, chúng ta thông báo cho Bot biết website cho smart phone là sp.example.com.
  • Khi sử dụng canonical, chúng ta thông báo cho Bot biết phiên bản website chính thức của hệ thống là example.com
  • Website sp.example.com
<head>
  ...
  <link rel="canonical" href="http://example.com/" />
  ...
</head>

canonical dùng để thông báo với Search Engine đâu là page gốc (original page). Có thể ví như quan hệ n:1
alternate trở thành quan hệ 1:1 khi cùng tham chiếu tới canonicalalternate

Thuộc tính canonicalalternate trên website https://ferret-plus.com/1426 đã giúp Bot Search Engine biết được phiên bản nào là website dành cho thiết bị di động.

Cloaking

Cloaking là sự che đậy hay che dấu một cái gì đó. Trong kỹ thuật SEO thì cloaking ám chỉ hành động của webmaster che dấu bot của search engine như Google crawl các nội dung mà người dùng nhìn thấy, đồng thời đề xuất cho các cậu Bot nhìn thấy các nội dung được Onpage optimize tốt nhằm mục đích đạt được các vị trí cao trên Search Engine.

  • Việc tồn tại các thông tin trên website mà hiển thị giữa GoogleBot và người sử dụng khác biệt nhau sẽ ảnh hưởng tới thứ hạng hiển thị của website trên kết quả tìm kiếm. (Website có hành vi này sẽ bị google áp dụng các hình phạt)
  • Website khi truy cập = PC hiện ra thông báo「Hãy truy cập bằng smart phone」, dù cho khi User-Agent là smart phone truy cập có hiển thị chính xác đi chăng nữa cũng rất có thể bị Google hiểu là Cloaking ???
  • Website ở tình trạng bị hack cũng có thể bị đưa vào trạng thái Cloaking, hãy thường xuyên quan sát log để tìm ra các hành động khả nghi và tiến hành deploy lại nếu cần.

Đánh giá độ ổn định của URL

Các bộ máy tìm kiếm có tiêu chí để xếp hạng URL là: URL đã cung cấp thông tin cho người sử dụng trong một thời gian dài bao lâu?.
Do đó khi bạn thay đổi URL, sử dụng 301 Redirect thì cũng ko có gì đảm bảo là toàn bộ ranking của URL trên site cũ sẽ được chuyển hết sang URL site mới.

★ Các hạng mục cần kiểm tra khi thiết kế URL

  • Có chứa ext của file như .php hay không ? Việc này sẽ gây ảnh hưởng nếu chuyển framework ví dụ từ CakePHP sang Rails chẳng hạn.
  • Có thể dùng dấu hoặc _ trong URL, tuy nhiên Google khuyến khích sử dụng dấu để phân tách từ khóa
  • Toàn bộ ký tự trong URL phải được viết thường
  • URL dài cũng không vấn đề (Sẽ giải thích sau)
  • URL không nên chia quá nhiều cấp, nằm sâu trong nhiều directory
  • Chứa từ khóa thì càng tốt (Có thể chứa tiếng Nhật)
  • URL không die cho dù sau này có áp dùng nhiều thay đổi SEO đi chăng nữa
  • Không sinh ra duplicated content

★ Đảm bảo việc thiết kế URL không sinh ra nội dung trùng lặp

Web Page bên dưới sinh ra nội dung trùng lặp, dó đó kiểu thiết kế URL này không được khuyến khích
Ví dụ:Anime Home Page

  • Hero list page
  • All characters list page

Khi đó giả sử ta có nhân vật tên là “yamada”, khi đó nội dung 2 trang sau là giống nhau và đều mô tả về “yamada”

  • heros/yamada.html
  • characters/yamada.html

Cùng 1 nội dung nhưng lại khác URL là một thiết kế tồi và bị xếp vào duplicated content.

URL dài cũng không vấn đề

Theo Google công bố thì độ dài của URL có thể ngắn hoặc dài tùy ý

Độ dài của URL thì không ảnh hưởng tới ranking
Tuy nhiên cần đủ để nhận diện được URL

Mặc dù không ảnh hưởng tới SEO, tuy nhiên trình duyệt IE chỉ support URL có độ dài tối đa 2083 ký tự, nên hãy setting URL length <= 2083

★ Các khuyến khích về URL:

  • Vì URL là thứ hiển thị trên kết quả search, nên hãy chọn các từ đơn trong URL có liên quan tới nội dung bài viết
  • Khi URL có chứa từ ngữ trùng với từ khóa mà user search thì sẽ được bôi đậm trên kết quả
  • Search engine sử dụng dấu “” để tách từ, nên URL cũng nên sử dụng dấu “” để ngăn cách các từ khóa trong nó.

Mặt khác việc sử dụng quá nhiều GET parameter như ?color=2 trong URL có thể khiến URL khó nhớ, dễ nhầm lẫn, và khó chia sẻ. Dẫn tới việc truy cập phải URL không chính xác nếu không đủ parameter.

Cấu trúc liên kết cần được chú trọng hơn cấu trúc thư mục

Chúng ta có 2 đường dẫn sau:

https://viblo.asia/cau-truc-duong-dan-nao-tot-cho-seo-file-name-hay-thu-muc.html
https://viblo.asia/seo/seo-onpage/cau-truc-duong-dan-nao-tot-cho-seo-file-name-hay-thu-muc.html

Như bạn đã biết, hai đường dẫn trên đều là 2 đường dẫn tối ưu cho SEO. Đường dẫn thứ nhất là đường dẫn kiểu file name và đường dẫn thứ hai là đường dẫn theo kiểu thư mục. Câu hỏi đặt ra ở đây là đường dẫn nào tốt hơn?

★ Nếu cấu trúc thư mục quá sâu có thể khiến Bot ko crawl được

Tham khảo link : https://support.google.com/webmasters/answer/156184?hl=vi
Google Bot sẽ crawl theo thứ tự từ nông tới sâu, dó đó URL ở các cấp sâu mà không được liên kết tới bởi page nào trong site có thể rơi vào tình trạng được crawl chậm và không được đánh index.
Với tư cách là developer, bạn đừng quên tạo các link trong site internal liên kết tới các page quan trọng của site.

Lưu ý: Việc tạo cấu trúc thư mục đơn giản chỉ giúp cho Google Bot crawl dễ dàng hơn chứ không ảnh hưởng tới thứ hạng trên Search Result.

★ Cấu trúc liên kết ảnh hưởng tới SEO

Cấu trúc liên kết được tóm gọn trong câu sau: “Khi bạn click vào liên kết bao nhiêu lần cũng vẫn access được page đó”.

Cấu trúc link nếu vượt quá 5 cấp có thể khiến Google index chậm. Về cơ bản chỉ nên setting dưới 4 cấp đổ lại.

Tham khảo: http://s-supporter.hatenablog.jp/entry/seo-difference-of-the-hierarchy#ディレクトリ階層とリンク階層の違い

Lưu ý khi thêm Parameter vào URL

Theo kỹ sư John Muelle từ Google thì việc thêm params vào URL của các dynamic page để dễ dàng thay đổi nội dung được khuyến khích.

Just wanted to add that from Google’s point of view, the clean, parameterized URL is generally preferred to any unnecessary URL-rewriting. If you want a nice-looking URL-line in search, use breadcrumb markup instead.

Tuy nhiên trên kết quả search thì với những page động sử dụng params để thay đổi nội dung cần thiết lập thêm Canonical để tránh xảy ra hiện tượng duplicated content.

Dùng GET params sẽ làm giảm index

Việc sử dụng quá nhiều GET params có thể làm khả năng index giảm đi, do đó cần tránh thêm quá nhiều param là URL quá dài, hoặc thực hiển chuyển đổi url động sang url tĩnh với param ngắn hơn.

★ Chuyển đối URL tĩnh

Việc chuyển đổi URL động sang tĩnh có thể hiểu đơn giản như sau: loại bỏ bớt GET params, chuyển nó vào path của URL

Ví dụ:
Ta có 1 URL khá dài với 3 GET params

https://phocase.jp/iphone7/?color=3&material=3&category=cute

Ta sẽ đưa category vào path của URL, lúc này số lượng params chỉ còn là 2

https://phocase.jp/iphone7/cute/?color=3&material=3

★ Các điểm cần lưu ý khi chuyển đổi sang URL tĩnh

  • Loại bỏ các params không cần thiết
  • Không quản lý param theo session ID
  • Thực hiển chuyển đổi các params có thẻ đưa vào URL path
  • Không nên đưa quá nhiều param vào URL path dẫn tới URL quá dài, giảm khả năng index cũng như crawl
  • URL càng có ý nghĩa càng tốt

★ Các thức đơn giản để thực chuyển đổi tĩnh

Để chuyển đổi sang URL tĩnh có thể implement lại routing của system, tuy nhiên cách đơn giản nhất là thiết lập lại file .htaccess

RewriteEngine On

RewriteRule http://phocase.jp/([0-9]+)/$ http://phocase.jp/?color=$1 [L,NC]

How To Create Temporary and Permanent Redirects with Apache and Nginx

Các điểm cần lưu ý với Site content

Theo nguồn tin chính thức từ Google thì việc 1 website có quá nhiều page không được chú trọng vào nội dung sẽ được coi là 1 website vô nghĩa, chỉ nên tập trung vào 1 số lượng page có nội dung được chú trọng thay vì tạo ra hàng loạt các page có nội dung nghèo nàn.

★ Site ranking

  • Thông tin chỉ được tồn tại/sở hữu duy nhất bởi website
  • Có chứ nhiều nội dung dễ hiểu như ảnh và video
  • Mô tả thông tin chi tiết, rõ ràng và dễ hiểu

Khi implement các page động thì số lượng page được index sẽ tăng lên, do đó cần xác định trước số lượng tối đa page sẽ được sinh ra.

★ Cách thức đối ứng

Tồn tại nội dung hữu ích với First View không?

Khi truy cập 1 website mà ko thực hiện scroll xuống dưới, thì phạm vi người dùng quan sát được trên màn hình lúc này được gọi là First view

Về cơ bản First view có kích thước khoảng 500×950px thì cần lưu ý những điểm sau:

★ Các điểm cần lưu ý

  • Không setting external link
  • Setting keyword cho SEO vừa phải
  • Thiết lập alt cho ảnh, và tên file ảnh phải có liên quan tới nội dung bức ảnh

Các công cụ mà tác giả đang sử dụng

Nguồn: blog.topdevn.vn via viblo.asia

Developer trong lĩnh vực E-commerce cần những tố chất gì?

Xuất phát từ lĩnh vực thương mại điện tử, công ty Exocomets (Thủy Lâm Ngân) tuy mới thành lập nhưng đã mang trong mình tham vọng trở thành sàn giao dịch B2B dành cho các doanh nghiệp Việt với hệ thống hiệu quả, hiện đại, bảo mật và thân thiện. CEO của Exocomets đã có cuộc gặp gỡ thân mật với TopDev để cùng trao đổi, chia sẻ những quan điểm cá nhân về lập trình viên Việt Nam nói chung và tầm nhìn đối với riêng công ty Exocomets.

1/ Chào anh, anh có thể giới thiệu sơ về đội ngũ công ty hiện nay?

Exocomets hiện có bộ máy nhân sự chính và đang tuyển dụng thêm các vị trí nhân sự còn lại.  Chủ yếu đang tìm kiếm vị trí web developer.

2/ Theo anh thì thị trường E-commerce có thực sự bão hòa khi đang ngày càng nhiều công ty gia nhập vào cuộc chơi?

Thị trường E-commerce Việt Nam rất tiềm năng với các công ty lớn ở nước ngoài và ở Việt Nam gia nhập ngành, tạo nên nhiều cơ hội và thách thức. Công ty E-commerce phải có nguồn vốn lớn, kĩ thuật tốt, dịch vụ khách hàng hiệu quả nếu không bị loại bỏ khỏi cuộc chơi.

Các bạn dev phải có trách nhiệm xây dựng 1 hệ thống chất lượng, sáng tạo, tiện ích cho người dùng. Hầu hết các trang E-commerce đều khá giống nhau có thể là vì 90% công nghệ đều giống nhau. Nhưng điều quan trọng nhất là phải quan tâm đến người dùng cuối.

3/ Theo anh thì các bạn lập trình viên trong lĩnh vực E-commerce có cần những kiến thức riêng/ công nghê riêng so với các lĩnh vực khác không?

Ngoài lập trình chuyên môn, thì khả năng giao tiếp với các phòng ban cũng là điều rất quan trọng. Tất nhiên đây phải là khả năng lập luận theo ngôn ngữ business, chứ không dừng lại ở ngôn ngữ code.

Ngoài ra họ cần rèn luyện thêm kĩ năng quản lý dự án, kiến trúc hệ thống để hiểu được tổng quát bức tranh cụ thể là mình đang ở vị trí nào, hiểu tiến độ, mục tiêu dự án thì mới có thêm hứng thú, đam mê trong công việc. Ví dụ những bạn muốn tìm tòi về E-commerce, trước tiên cần học và nắm bắt thật chắc những kiến thức về cơ sở dữ liệu để có thể phát triển nền tảng này.

4/ Nhận định chung của anh về chất lượng của web developer tại Việt Nam như thế nào?

Trình độ chuyên môn các bạn ấy giỏi, luôn muốn học hỏi những ngôn ngữ mới, những kiến thức mới trong lĩnh vực IT. Nhưng còn yếu trong chuyên môn sâu, cứ 1-2 năm lại nhảy qua những ngôn ngữ khác.

Để giỏi được 1 lĩnh vực nào đó, cần có ít nhất 3 năm rèn luyện trong ngôn ngữ đó. Cũng như học Tiếng Anh 1-2 năm có thể biết về cơ bản nhưng nếu 2 năm sau chuyển sang tiếng Nhật thì không thể hiểu sâu được.

Điều này có điểm lợi là biết nhiều thứ nhưng điểm yếu là thiếu chuyên môn, hiểu chưa sâu và sẽ gặp rắc rối khi gặp hệ thống lớn.

Ngoài ra, developer cần rèn luyện thêm ở Tiếng Anh ở mức độ trung bình khá trở lên, để giao tiếp được với các đối tác nước ngoài, đọc tài liệu nước ngoài… như vậy, các bạn mới có thể hội nhập với thế giới.

4/ Có nhiều người cho rằng dev Việt tuy chuyên môn tốt nhưng chưa có quy trình làm việc đúng & đa phần công ty phải đem về đào tạo lại…

Điều này không hoàn toàn thuộc về các dev, mà trách nhiệm phụ thuộc vào các nhà lãnh đạo trong đội ngũ IT. Những nhà lãnh đạo cần thiết lập quy trình, cần có business flow, phương pháp quản trị…

5/ Exocomets có xây dựng phương pháp công nghê chung nào khi làm sản phẩm hay phụ thuộc vào yêu cầu từ phía khách hàng?

Với kinh nghiệm và kiến thức đã có của đội ngũ lãnh đạo, Exocomets ưu tiên triển khai 3 phương pháp quản trị và điều hành bộ máy CNTTlà TOGAF-9(The Opening Group Architecture Framework), PRINCE2 và ITIL (Information Technology Infrustructure Library) – phương pháp quản trị hệ thống cùng đội ngũ phân tích, mang đến những giải pháp lưu loát hỗ trợ đội ngũ quản lý cách sử dụng công cụ công nghệ hiệu quả.

6/ Mục tiêu, lộ trình phát triển của 1 lập trình viên tại Exocommets là như thế nào?

Trong quá trình tuyển dụng, EXOCOMETS nhận thấy rằng tố chất quan trọng nhất của một developer là tinh thần ham học hỏi và đam mê giải quyết tận gốc vấn đề. Chúng tôi cũng hiểu rằng, bất cứ nhân tố quan trọng nào cũng cần môi trường thích hợp để phát triển và học hỏi. Vì thế, khi làm việc tại EXOCOMETS, sau 2 tháng hòa nhập với văn hóa công ty, các bạn sẽ được tham gia vào những buổi training và workshop để trau dồi và nâng cao kiến thức kỹ năng.

7/ Anh có thể chia sẻ thêm về văn hóa công ty không?

Văn hóa công ty nằm trong giá trị cốt lõi mà Exocomet sẽ xây dựng, đó chính là PIRI thể hiện tinh thần PASSION- niềm đam mê, INNOVATION – thể hiện môi trường thoải mái đóng góp ý kiến, sáng tạo, RESPONSIBLE – trách nhiệm với bản thân, với thành viên trong công ty, trách nhiệm với khách hàng và INTEGRITY: trung thưc, chính trực.

Exocomets muốn tạo môi trường làm việc thoải mái, mỗi buổi sáng lại có nguồn hứng đóng góp cho công ty, không quá thân cũng không thể quá xa lạ. Đặc biệt Exocomets sẽ là 1 công ty mà tất cả các thành viên đều có cơ hội phát triển.

Chia sẻ thêm từ các bạn nhân viên Exocomets thì môi trường giữa nhân viên với sếp sẽ tùy theo giai đoạn. Khi làm việc cần có khoảng cách để các bạn làm việc hiệu quả hơn. Ngoài giờ làm việc thì vui vẻ với nhau, tạo cảm hứng cho mỗi ngày làm việc.

Tham khảo thêm các vị trí tuyển dụng ngành cntt cho SV hấp dẫn nhất tại đây

Học lập trình và làm việc tại Nhật – cơ hội “vàng ngọc” cho những ai theo đuổi con đường thăng tiến trong lĩnh vực IT

Học lập trình và làm việc tại Nhật

Nhật Bản từ lâu được biết đến là một trong các nước dẫn đầu thế giới về lĩnh vực khoa học và công nghệ. Và đội ngũ nhân sự lớn chính là một chìa khóa để phát triển cho nền tảng này. Để đáp ứng được nhu cầu của thị trường, Nhật Bản hiện đang hợp tác với rất nhiều quốc gia khác để giải quyết các vấn đề về nguồn nhân lực, trong đó không thể không nhắc đến Việt Nam.

Với dự báo năm 2020, Nhật Bản sẽ có thể thiếu hụt khoảng 50.000 nhân lực trong lĩnh vực IT (Dự báo của Bộ Kinh tế Công thương Nhật Bản – METI), do đó họ luôn không ngừng phải bổ sung nguồn nhân lực từ các nước khác, và Việt Nam chính là đối tác lớn thứ 2 của Nhật Bản trong lĩnh vực gia công phần mềm (vượt cả Ấn Độ đến 13,7%).

Trong thời điểm hiện tại, nguồn nhân lực lập trình tại Việt Nam được phía Nhật Bản đánh giá có chất lượng rất tốt. Chính sự nhiệt huyết, tận tâm trong công việc và khả năng ứng biến cao mà trình độ kỹ thuật của đội ngũ lập trình tại Việt Nam có thể sánh ngang với những lập trình nước Nhật. Theo lời của Tổng Giám đốc Tập đoàn Nissen, ông Nobuyuki Ichiba khẳng định: “Những kỹ sư Việt Nam khi nghe khách hàng nói cũng cần hiểu chính xác điều họ muốn. Kỹ sư Việt không chỉ giỏi về kỹ thuật mà còn có cảm nhận tinh tế, nếu kết hợp được hai phẩm chất này và thêm phán đoán của bản thân thì các bạn trẻ sẽ rất thành công”.

Liệu bạn có muốn mở rộng con đường sự nghiệp lập trình của mình tại Nhật? Chắc chắn đây sẽ là cơ hội “vàng ngọc” mang lại cho bạn không ít kinh nghiệm quý giá cũng như mức thu nhập “không hề ít”.

Nếu bạn có khoảng 2 năm kinh nghiệm làm việc trong lĩnh vực C++ thì đừng bỏ qua một trong những cơ hội được làm việc tại Nhật với mức thu nhập mỗi năm có thể lên đến 43,000USD: Game Developer (C++).

Bên cạnh đó, bạn sẽ còn nhận được nhiều đãi ngộ cực hấp dẫn “không nỡ chối từ”:

  • Lương theo tháng: $2000 – $3500
  • Lương theo năm: 3,000,000~6,000,000 JPY/ năm (27,000 ~ 43,000 USD/năm)
  • Nhân viên chính thức được tăng lương 2 lần/năm và thưởng 1 lần/năm.
  • Hỗ trợ chi phí đi lại tại Nhật.
  • Hỗ trợ bảo hiểm tại Nhật.
  • Nghỉ 2 ngày/ tuần và các ngày nghỉ lễ của Nhật.
  • Các kì nghỉ khác của Nhật như tuần lễ vàng, lễ Obon hè, lễ Tết dương lịch.
  • Làm thêm giờ và làm thêm ngày nghỉ bạn còn sẽ được tính thêm lương

Tấm vé này đã sẵn sàng dành cho bạn

Nhanh tay click ứng tuyển để không bỏ lỡ cơ hội!

Mô tả công việc:

  • Chế tác game hướng đến thị trường tiêu thụ cá nhân như Switch, PS4, PS3, PS, Vita…
  • Các dự án chính:
  1. Lập trình trong phát triển giao diện điều khiển game.
  2. Chế tác game trên PC.
  3. Chế tác game trực tuyến.
  4. Lập trình các ứng dụng xã hội, chế tác các công cụ lập trình.

*** Địa điểm làm việc: Tsukishima Chuo-ku, Tokyo 104-0052 (NHẬT BẢN)

YÊU CẦU CHÍNH:

Có ít nhất 2 năm kinh nghiệm làm C++ (không cần trong mảng game).

***Ưu tiên:

  • Có kinh nghiệm lập trình với LAMP.
  • Có kinh nghiệm chế tác game bằng Unreal Engine.
  • Có kinh nghiệm làm việc trong công ty chế tác game của Nhật .

YÊU CẦU CHUNG:

  • Tốt nghiệp đại học trở lên.
  • Ngoại ngữ: Tiếng Nhật tương đương N3 (Có thể giao tiếp tốt).
  • Độ tuổi: từ 23 đến 35.

Bắt đầu mở rộng con đường sự nghiệp lập trình ngay từ hôm nay!

Facebook làm được. Tại sao chúng ta lại không?

Tôi không đồng tình với những người không chuyên về lĩnh vực khoa học, công nghệ khi họ cho rằng, chuyện gì mà người khác làm được thì bản thân mình cũng làm được, như Facebook chẳng hạn. Nghe có vẻ hợp lý nhưng thực ra lại phi thực tế. Tại sao vậy?

Họ sở hữu dữ liệu

Như tôi đã thảo luận trong bài viết gần đây nhất về APIs, các công ty lớn như Facebook sở hữu toàn bộ các dữ liệu độc quyền. API mà họ có cho phép bạn truy cập một số thông tin, nhưng đó chỉ là những thông tin công ty muốn bạn truy cập. Biểu đồ bạn bè của Facebook rất có giá trị đối với công ty của họ, nhưng họ chỉ tiết lộ một phần thông qua API.

Ví dụ: Facebook cho phép bạn có được danh sách bạn bè của người dùng nếu họ cũng là người dùng của bạn. Bạn không thể truy cập vào những người chưa từng sử dụng ứng dụng. Ví dụ Spotify sẽ hiển thị âm nhạc mà bạn bè bạn đang nghe, nhưng Spotify không biết thông tin gì về những người không phải là bạn của bạn. Điều này ngăn cản bạn thực hiện một số tính năng mà chỉ riêng Facebook mới làm được.

Họ sở hữu các Platform

Nếu sản phẩm của bạn hoạt động trong environment của một công ty khác, chẳng hạn như hệ điều hành Android của Google, iWatch của Apple hoặc Alexa của Amazon, thì bạn chỉ có thể làm những gì công ty đó cho phép làm.

Gần đây tôi đã xây dựng một ứng dụng Alexa để tìm hiểu về nền tảng mới của Amazon. Tôi nhận ra Alexa ràng buộc các developer khá chặt chẽ, chúng tôi không được quyền truy cập nhiều tính năng mạnh mẽ mà Alexa sử dụng cho các built-in skills. Ví dụ: người dùng phải gọi ứng dụng bằng cách nói, “Alexa, yêu cầu [tên ứng dụng] …” thay vì chỉ nói về những gì bạn muốn. Tôi có thể hỏi “Alexa, thời tiết hôm nay như thế nào?” Bởi vì thời tiết là điều mà Amazon đã xây dựng trong các platform mà họ sở hữu, nhưng nếu tôi đang xây dựng một ứng dụng tương tự, người dùng sẽ phải gọi nó bằng cách nói “Alexa, hỏi ứng dụng Awesomest Weather của Adam thời tiết hôm nay như thế nào?”

Một số công ty lại lựa chọn các giải pháp sáng tạo. Snapchat không sở hữu iOS hoặc Android và app developers từ những nền tảng này không thể ngăn cản người dùng chụp màn hình. Có vẻ như đây là một vấn đề cơ bản với một ứng dung nổi tiếng sở hữu các bài posts mang tính tạm thời. Thay vào đó, Snapchat đã sử dụng khả năng nhận biết tình huống khi người dùng chụp ảnh màn hình, từ đó xây dựng cơ chế cảnh báo người dùng nhằm hạn chế thao tác chụp ảnh màn hình này.

Họ có hàng ngàn kỹ sư

Giả như bỏ qua các yếu tố kĩ thuật, thì đội ngũ chỉ có 3 kỹ sư của bạn cũng không thể cạnh tranh được với các ông lớn như Facebook. Các team nhỏ tuy hoạt động linh hoạt nhưng đối với một số thử thách kỹ thuật có quy mô lớn như Google Maps, bạn thực sự cần sở hữu một đội ngũ đủ để hoàn thành các dự án tầm cỡ. 

Họ có nhiều tiền

Nguồn tài nguyên máy tính (computing resources) đang dần rẻ hơn, và các dịch vụ lưu trữ đám mây như AWS hỗ trợ việc thuê các thiết bị phần cứng 1 cách dễ dàng. Tuy nhiên, một số tasks – đặc biệt là các tác vụ xử lý dữ liệu lớn – sẽ tiêu tốn của các công ty nhỏ khá nhiều tiền. Trong những trường hợp này, kỹ sư của bạn phải có khả năng tinh giảm những con số với chi phí ước lượng cụ thể, để bạn đưa ra được những quyết định tiếp theo.

Họ sở hữu bằng sáng chế

Tôi chưa gặp nhiều vấn đề về bằng sáng chế trong công việc của mình, nhưng có một số trường hợp, các kỹ sư nhưng không được phép thực hiện vài thao tác kĩ thuật vì lý do sáng chế. Bằng sáng chế phần mềm là một chủ đề nhạy cảm, khi nhiều chuyên gia phần mềm nhận định rằng chúng được trao cấp một cách quá tùy tiện. Thậm chí nhiều công ty lớn, kể cả những công ty sản xuất vũ khí cũng được cấp bằng sáng chế, và một số đã hứa sẽ chỉ sử dụng bằng sáng chế để dự phòng. Vì một số bằng sáng chế có quy định rất lỏng lẻo, rất nhiều công ty đang vi phạm các bằng sáng chế mà họ thậm chí không biết. Lời khuyên tốt nhất là bạn nên nghiên cứu xem liệu ứng dụng của mình có bị ảnh hưởng một chút nào đó từ các công ty lớn sở hữu bằng sáng chế có liên quan hay không.

Nguồn: topdev via hackernoon.com

Thuật toán – cánh cửa bước vào thời đại công nghiệp 4.0

Các thuật toán đang giữ vai trò trung tâm trong cuộc cách mạng công nghiệp 4.0. Giải thích một cách ngắn gọn, thuật toán là chìa khóa để tăng năng suất của nhân lực.

Thị trường cần nhưng đang thiếu

Hoàng, một lái xe Grab, đã chuyển từ một hãng taxi trong nước sang lái Grab vì: không có cảm giác “về nhì” – chữ mà cánh tài xế dùng để chỉ việc đón hụt khách. Thuật toán cài đặt trên máy chủ điều hành của Grab tìm cách kết nối giữa tài xế và khách gần nhất, giúp cho tổng quãng đường di chuyển của toàn hệ thống giảm xuống. Trong khi hiệu suất vận tải của taxi truyền thống chỉ cỡ 40%, taxi di chuyển 100km nhưng chỉ thực sự chở khách 40km, thì với Grab con số này là trên 75%, thuật toán đã giúp tăng 87% năng suất của tài xế.

Năm 2011, một nhóm các bạn trẻ Việt Nam đã phát triển một thuật toán nén dữ liệu video đủ tốt để phát theo chuẩn HD qua đường truyền 3G, công ty VP9 với các sản phẩm dùng phần cứng nén video ra đời, với các sản phẩm: đầu phát truyền hình internet, camera giám sát, truyền hình trực tuyến,… năm 2017, công ty đặt mục tiêu doanh số 2.000 tỉ VNĐ.

Trong lĩnh vực quảng cáo trực tuyến, VCCorp vận hành hiệu quả hệ thống Admicro của họ dựa trên thuật toán phân tích nội dung văn bản và phân loại người dùng. Các doanh nghiệp công nghệ có tiếng như Viettel, FPT, CMC cũng tuyển dùng hàng nghìn nhân lực để xây dựng các thuật toán xử lý dữ liệu và trí tuệ nhân tạo xử lý các vấn đề của họ và khách hàng.

Xét về quy mô thị trường lao động, nhu cầu nhân lực có trình độ thuật toán ở Việt Nam là khá lớn, nhưng việc đầu tư cho dạy và học thuật toán dường như chưa có sự phát triển tương xứng; các giáo trình môn học thuật toán vẫn không có nhiều thay đổi so với hàng chục năm trước.

Những sân chơi thúc đẩy phong trào học thuật toán bị đóng khung trong khuôn khổ nhà trường, chủ yếu là các cuộc thi lập trình hàng năm để lấy thành tích về cho nhà trường. Kết thúc cuộc thi, thí sinh ít có cơ hội sử dụng và phát triển những kĩ năng thuật toán đã được học.

Tầm nhìn của những người trong cuộc

Nhiều doanh nghiệp đã chủ động bắt tay vào giải quyết vấn đề này bằng cách thúc đẩy những sân chơi của riêng họ, gần đây nhất phải kể đến cuộc thi Lập trình Quốc tế Samsung – SCPC 2017 – một sân chơi mở dành cho tất cả các sinh viên đang theo học tại các trường đại học, học viện trên toàn quốc. Không những thế, khi kết thúc cuộc thi, thí sinh lại có thể tiếp tục được hỗ trợ, cấp học bổng và đào tạo nâng cao để thêm hoàn thiện năng lực lập trình thuật toán – tấm bằng quan trọng cho nhân lực của kỉ nguyên cách mạng công nghiệp 4.0.

Sự kiện Thuật Toán – Tế bào gốc của AI, Machine Learning & Blockchain
quy tụ các chuyên gia hàng đầu các siêu sao thuật toán từng dẫn dắt đội tuyển tham dự cuộc thi Thuật Toán Chung kết thế giới ACM-ICPC World Finals danh giá của giới lập trình.

Phát biểu tại lễ phát động cuộc thi này, ông Huh Chang Wan – Phó Tổng Giám đốc Samsung Electronics Việt Nam nhấn mạnh: “Từ năm 2015, Samsung Điện tử đã tổ chức cuộc thi lập trình Samsung Collegiate Programming Cup tại Hàn Quốc. Năm nay, lần đầu tiên cuộc thi mang đến những cơ hội cho sinh viên Việt Nam và sinh viên Ấn Độ cùng đến thi tài tại vòng chung kết diễn ra tại Hàn Quốc. Chúng tôi mong muốn tạo bước đệm để những tài năng trẻ trong lĩnh vực công nghệ thông tin phát huy năng lực cũng như khẳng định vị thế của Việt Nam trên thị trường lao động quốc tế”.

Với SCPC 2017, sinh viên Viêt Nam có cơ hội được tham gia sân chơi quốc tế để tiếp cận, tìm hiểu và trang bị thêm các kỹ năng về lập trình, giải quyết thuật toán, xây dựng ý tưởng, tư duy logic, đồng thời ứng dụng kiến thức lập trình vào cuộc sống, bắt kịp xu thế của cuộc cách mạng công nghiệp lần thứ 4.

Tầm nhìn của lãnh đạo Samsung về lập trình thuật toán tương đồng với suy nghĩ của nhiều CEO các công ty công nghệ; như ông Nguyễn Mạnh Hùng, tổng giám đốc Viettel đã từng mong muốn “xây dựng Việt Nam thành dân tộc lập trình với 90 triệu dân”; hay là Bill Gates, thậm chí còn làm một video kêu gọi thế hệ trẻ học lập trình.

Dù có vẻ mơ hồ, nhưng các thuật toán tác động to lớn đến cuộc sống nhân loại hơn suy nghĩ của đa số mọi người.

Ít ai biết, Internet, bản chất là một thuật toán định tuyến gói tin được phác thảo từ năm 1978. Nếu không có các thuật toán nén dữ liệu, chúng ta không thể thoải mái nghe nhạc hay xem video trực tuyến. Và nếu không có thuật toán lựa chọn các bài viết phù hợp, trang facebook của bạn sẽ tràn ngập những bài viết vô bổ hoặc quảng cáo không đâu.

Thị trường đang rất cần những lập trình viên có năng lực thuật toán, và những người trẻ Việt Nam đang rất cần những cơ hội được cọ sát, giao lưu trong lĩnh vực này.

Đến với sự kiện Topdev Techtalk “Algorithms: Tế bào gốc của AI, Machine Learning, Blockchain…và con đường sự nghiệp của bạn”, bạn sẽ được nghe chia sẻ từ chính các siêu sao thuật toán đã dẫn dắt đội tuyển tham dự cuộc thi Thuật Toán Chung kết thế giới ACM-ICPC World Finals danh giá của giới lập trình:

  • Diễn giả Nhân Nguyễn – Cựu kỹ sư Google đồng thời là nhà đầu tư thiên thần của hơn 10 Tech startups
  • Diễn giả Phạm Nguyễn Sơn Tùng – Founder BigOCoding, trrường dạy thuật toán chuyên sâu số 1 hiện nay
  • Khách mời đặc biệt

Cùng với các diễn giả khách mời khác sẽ đem đến cho cộng đồng một bức tranh toàn cảnh về vai trò của Algorithms đến tương lai ngành công nghệ, cách bắt đầu và đào sâu Algorithms!

  • Thời gian – Địa điểm:
    – Liberty Central SaiGon Citypoint Hotel – 59 Pasteur, Q.1, TP.HCM ngày 24/6/2017
    – Tại Hà Nội ngày 2/7/2017
  • Thông tin chi tiết: https://www.facebook.com/events/1962398150705652/
  • Mọi thắc mắc và thông tin tài trợ/ hợp tác vui lòng liên hệ:
    Ms. Ngọc Đỗ – SĐT: 08 6273 3497 | 0944 685 243 – Email: ngoc.do@applancer.net

Nguồn: topdev via Dantri.com.vn

Sự nghiệp thăng trầm của cựu thủ lĩnh Yahoo

Sự nghiệp thăng trầm của cựu thủ lĩnh Yahoo

Trước khi làm CEO của Yahoo và bán công ty này cho Verizon sau 5 năm, Marissa Mayer có sự nghiệp đầy tiếng vang tại thung lũng Silicon…

Business Insider cho biết Marissa Mayer sinh năm 1975 tại thị trấn Wausau, Wisconsin, Mỹ, trong gia đình có bố là kỹ sư và mẹ là giáo viên.

Ở trường, Mayer sớm chứng tỏ năng khiếu trong môn toán và khoa học nhưng lại là học sinh khá rụt rè và hướng nội.

Sau khi tốt nghiệp trung học, Mayer nộp hồ sơ vào 10 trường đại học và đều được nhận, trong đó gồm các trường danh tiếng như Harvard, Yale và Stanford. Bà đã chọn Đại học Stanford nhưng với ước mơ ban đầu là trở thành bác sĩ.

Tuy nhiên, mục tiêu cuộc đời của Mayer thay đổi khi bà tham gia lớp khoa học máy tính. Mayer đã chuyển sang ngành Symbolic Systems (SSP) tập trung vào máy tính và tư duy. Một số cựu học sinh trường Stanford theo học ngành này gồm có Reid Hoffman (LinkedIn), Scott Forstall (Apple) và Mike Krieger (Instagram).

Sau khi tốt nghiệp đại học, Mayer nhận được tới 12 lời đề nghị việc làm, trong đó có Google, khi có mới là một công ty khởi nghiệp nhỏ.

Thời điểm đó, theo tính toán của mình, Mayer cho rằng khả năng tồn tại của Google chỉ là 2%. Tuy nhiên, sau đó, ấn tượng với những người làm việc tại Google cùng những điều có thể học được ở đó, Mayer quyết định đầu quân cho công ty này và đã cống hiến ở đây suốt 13 năm.

Trong 2 năm đầu tại Google, Mayer thường làm việc 100 giờ mỗi tuần, đồng thời giảng dạy tại trường đại học Stanford.

Sau đó, bà nhanh chóng thăng tiến. Khởi đầu là nhân viên bán thời gian của đội phát triển giao diện người dùng, bà nhanh chóng trở thành quản lý sản phẩm. Năm 2003, Mayer phụ trách mảng phát triển sản phẩm và người dùng của Google, bao gồm công cụ tìm kiếm.

Năm 2005, bà được bổ nhiệm làm phó chủ tịch phụ trách sản phẩm công cụ tìm kiếm và trải nghiệm người dùng của Google.

Mayer từng có thời gian ngắn bí mật hẹn hò với người đồng sáng lập Google, Larry Page. Mối quan hệ của họ được mô tả là “hai người trầm lặng âm thầm hẹn hò”.

Tuy nhiên, phong cách quản lý chi tiết và dựa trên số liệu của Mayer khiến nhiều người bất mãn. Một số đó là Amit Singhal, người đứng sau các thuật toán của công cụ tìm kiếm này. Ông này tới gặp trực tiếp Larry Page và đề nghị loại Mayer khỏi đội công cụ tìm kiếm.

Cuối cùng, Singhal lại là người rời Google và sang làm việc cho công ty khởi nghiệp Uber.

Còn Mayer chuyển sang quản lý đội Google Maps và phát triển sản phẩm tại thị trường Mỹ. Dù vẫn là lãnh đạo cấp cao nhưng nhiều người coi việc điều chuyển đó là “giáng chức” bởi bà không còn phụ trách công cụ tìm kiếm – sản phẩm quan trọng nhất của Google.
Năm 2011, Mayer chính thức rời Google và nhận được lời mời làm CEO của hội đồng quản trị Yahoo. Một số người cũng được cân nhắc cho vị trí này gồm Nikesh Arora, Giám đốc Kinh doanh của Google và Eddy Cue, Phó chủ tịch phụ trách dịch vụ và phần mềm của Apple.

Dù một số người phản đối việc tuyển dụng Mayer, cho rằng bà không có nhiều kinh nghiệm quản lý tài chính của một công ty và thiên về phát triển sản phẩm hơn là một CEO quản lý vận hành. Tuy nhiên, cuối cùng, bà vẫn được bầu làm CEO mới của Yahoo.

Mayer chính thức trở thành CEO Yahoo vào tháng 7/2012 và được kỳ vọng mang lại làn gió mới, vực dậy hãng công nghệ khổng lồ đang trên bờ vực sụp đổ.

Bà nhanh chóng cơ cấu lại bộ máy lãnh đạo của Yahoo và thay thế bằng người của mình. Tháng 8/2013, một năm sau khi Mayer lên làm CEO, cổ phiếu Yahoo tăng từ 15,74 USD/cổ phiếu lên khoảng 28 USD.

Thành công đó một phần là nhờ số cổ phần Yahoo nắm giữ tại Alibaba. Mayer càng yên ổn hơn khi hãng thương mại điện tử khổng lồ của Trung Quốc thực hiện IPO (niêm yết cổ phiếu lần đầu) vào năm 2014.

Dù vậy, Mayer cũng được công nhận đã giúp cải thiện đáng kể hoạt động của Yahoo, từ thiết kế sản phẩm, lượng người dùng cho tới các ứng dụng cốt lõi. Một số người còn cho rằng bà đã thay đổi văn hóa tại Yahoo và khơi lại nguồn hứng khởi tại công ty này.

Tuy nhiên, doanh thu ở các mảng kinh doanh cốt lõi của Yahoo không có dấu hiệu cải thiện.

Chưa kể, Mayer mất đi nhiều lãnh đạo chủ chốt như Giám đốc Marketing (CMO) Kathy Savitt và Giám đốc Kỹ thuật số (CDO) Jackie Reses. Nhiều người cũng tỏ ra hoài nghi chiến lược thâu tóm của Mayer khi chi gần 3 tỷ USD mua lại các công ty khởi nghiệp như Tumblr và Polyvore.

Đầu năm 2016, xuất hiện lời đồn đoán cho rằng nhiều công ty từ Comcast, Disney, AT&T… đang dòm ngó thâu tóm Yahoo. Tháng 7 năm đó, Verizon chính thức công bố thương vụ mua lại công ty này với giá 4,83 tỷ USD.

Sau thương vụ này, mảng kinh doanh cốt lõi của Yahoo sẽ hợp nhất với công ty AOL của Verizon để thành lập công ty mới có tên “Oath”. Yahoo sẽ giữ lại số cổ phần tại Alibaba và Yahoo Nhật Bản, để gộp thành một công ty độc lập có “Altaba”.

Cuối năm 2016, lỗ hổng bảo mật khiến Yahoo bị tấn công trên quy mô lớn gây ảnh hưởng tới 1 tỷ người dùng. Vụ việc này giúp Verizon giảm giá thương vụ mua lại Yahoo xuống còn 4,48 tỷ USD.

Ngày 13/6, Yahoo hoàn tất thương vụ bán mình cho Verizon và bà Mayer cũng chính thức rời khỏi công ty này, kết thúc 5 năm thất bại.

Đừng dựa dẫm vào StackOverflow, nó sẽ chỉ khiến mọi thứ tệ hơn thôi

Vào thuở sơ khai, Programmer đã tạo ra code và Documentation. Khi đó, Documentation vốn rất mơ hồ, chứa đựng hiểu biết về functions, đã được cất dấu khỏi các developer mới tập tõm bước vào nghề.

Và Programmer cất tiếng nói – “Hãy tạo ra nhiều code hơn”. Thế là, code sinh sôi nảy nở, một số quá tốt chúng liền tiến hòa thành Framework.

Như vậy đấy thưa quí ông quí bà, con trai và con gái, người ngoài hành lẫn siêu anh hùng, đó là cách mà các phần mềm ra đời. Chúng như những đứa trẻ sơ sinh, lớn lên nhờ vào bàn tay chăm sóc của các developer. Và nếu như có lúc bạn cảm thấy mình không đủ khả năng thì hãy cầu cứu đến StackOverflow, ngài sẽ ban cho bạn mọi thứ để trở thành một developer thật thụ.  

Thật không may, là chúng ta cũng trở nên quá phụ thuộc vào StackOverflow. Từ junior đến senior developer, programmer, coder, bất cứ ngành nghề gì đều có sự hiện diện của StackOverflow. Vì một số lí do nào đó mà giờ để xin việc liên quan đến IT cũng yêu cầu bạn phải có tài khoản hoạt động trên StackOverlow.

Aura thần thánh

Gần như là mọi người nhân sự mà tôi quen biết, đặc biệt là bên Linkedln, đều tin rằng một developer giỏi khi họ có đóng góp liên quan tới code trên StackOverflow. Chẳng khác gì việc có được danh hiệu khen thưởng danh giá chả thua gì bằng đại học từ MIT hay Harvard vậy.

Cây đũa phép “kinh nghiệm”

Giờ đây việc bạn có thể trả lời và đóng góp trên StackOverflow còn được dùng như thước đo đánh giá kinh nghiệm. Không cần biết là liệu câu hỏi đó củ chuối thế nào? hay việc có hàng trăm câu trả lời tùy theo sự khác nhau trong thông tin được cung cấp. Miễn là có đóng góp là bạn đã được xem là một developer kinh nghiệm đầy mình rồi.

“Vương miệng xã hội”

“Tôi là người có đóng góp thuộc hàng top của StackOverflow đây!” – hắn nói khi tỏ vẻ “khiêm tốn” chấp nhận sự chào đón nồng nhiệt từ khắp mọi công ty công nghệ trên thế giới. Mãi cho đến khi mọi chuyện vỡ lẽ ra, và hắn chẳng khác gì một ông vua trần như nhộng, chả biết gì về IT ngoài những thông tin vụn vặt mà bạn luôn đọc trên báo lá cải. Và thế là hắn trở thành trò cười cho thiên hạ.

Những mẫu chuyện trên có thể khiến bạn phì cười. Nhưng trên hết, nó như một hồi chuông báo động, cho ta thấy sự điên rồ khi phải làm trong một ngành công nghiệp mà việc chấp nhận giá trị ảo, không thiết thực lại trở nên ngày càng phổ biến hơn. Càng nực cười hơn khi nhiều người còn quả quyết rằng StackOverflow sẽ tồn tại và phát triển rực rỡ hơn 20 năm nữa. Chẳng phải công nghệ đã từng dạy chúng ta rằng đừng bao giờ tin vào những giả thiết khi vẫn chưa có bằng chứng chắc chắn? Liệu ta đã quên rằng ngay cả các ông trùm công nghệ như Amazon vẫn gặp thất bại hay một trang website, mạng xã hội vẫn có thể biến mất một cách đột ngột? Có mấy ai từng nhớ tới cái thời huy hoàng của AltaVista hay Yahoo? Vậy mà giờ đây, một lần nữa chúng ta lại khuyến khích thế hệ trẻ tiếp tục phụ thuộc vào StackOverflow. Trong khi lại dè bỉu nhưng developer có hướng đi khác như tự học trên các diễn đàn khác hoặc là cả việc mua sách về đọc.

Giờ đây bạn phải lên StackOverflow, tham gia và đóng góp thì mới được công nhận là một developer giỏi. Đó là một điều vô cùng điên rồ.  

Có người từng nói “Đường xuống địa ngục luôn bắt đầu với lời hay ý đẹp”. Sự thật là, mặc dù có nhiều thành viên bẩn tính, vẫn có rất nhiều StackOverflow user là người tốt, sẵn sàng cống hiến thời gian của họ để giúp đỡ người khác. Họ cũng là những chuyên gia hàng đầu, không chỉ có nhiều năm kinh nghiệm mà còn rất am hiểu thế giới lập trình. Tuy nhiên, đó cũng là nguyên nhân dẫn đến vấn đề nhức nhối tại StackOverflow. Nó tồn tại là bởi vì sự thất bại của người thầy khi không thể chỉ dạy cho học sinh, sự yếu kém của các programmer khi không thể cho ra những documentation chất lượng.

Là một lập trình viên, chúng ta luôn quên mất rằng cái thật sự đáng giá của một ứng dụng là quá trình suy nghĩ, chất xám đổ vào nó chứ không là những dòng code. Thế nhưng chúng ta đã tự lơ đãng, bỏ bê đi việc viết ra những documentation thật sự hay và có ích.

Điều thật sự đáng buồn khi chúng ta có hàng tỷ tỷ framework, hàng trăm ngôn ngữ lập trình, không kể xiết số lượng library và plugin, thế nhưng khi nhắc đến documentation thì liệu bạn có thể liệt kê ra hơn số đầu ngón tay hay không?

Có thể đây là một ý kiến trái chiều nhưng StackOverflow thật sự không giải quyết được vấn đề thật sự, và càng không nên được xem như một chuẩn để đánh giá một developer. Nó là một biểu hiện của đại dịch đang lan tràn trong thế giới IT. StackOverflow chăm đút, bón cơm quá kĩ cho các developer, khiến họ mất đi khả năng tự giải quyết những vấn đề dù là nhỏ nhặt nhất. Đó là một sự thật phũ phàng khi có đến hơn một nữa số người dùng trên Stack Overflow mang danh nghĩa developer mà lại không thể giải thích code của chính họ chứ nói chi đến việc nhắc đến quá trình suy nghĩ, đưa ra ý tưởng cho ứng dụng mà họ đang phát triển. Tất cả là do sự nghèo nàn trong chất lượng của documentation khiến cho các developer phải tìm kiếm sự giúp đỡ.

Khoa học đã chứng mình chúng ta nhớ lâu khi bỏ nhiều công sức để có được thông tin đó, nếu không thì cũng như bụi đứng trước gió mà thôi. Để trở thành một developer, chúng ta cần khả năng suy luận, giải quyết vấn đề và đưa ra được giải pháp xác đáng.

Vì thế, tôi tin rằng documendation nên và phải được xem như một phần quan trọng để quyết định chất lượng của phần mềm.

Nguồn: blog.topdev.vn via hackernoon

Tham khảo việc làm IT intern trên TopDev

Bí quyết kiếm $80,000 hàng tháng từ ứng dụng trên Apple Store

Tại sự kiện đình đám WWDC, Apple cho biết họ đã trả cho các developer với khoảng tiền cực khủng, lên tới 70 tỉ đô (tiền chi cho nằm ngoái chiếm khoảng 30%). Đó là mức tăng rất lớn khiến chúng tôi vô cùng ngạc nhiên bởi người dùng đâu có chi nhiều cho ứng dụng đến vậy. Bản thân tò mò muốn biết được thu nhập khủng đó đến từ đâu, tôi đã vào App Store để kiểm tra các top ứng dụng.

Bước 1: Chạy theo đồng tiền

Khi tôi vào xem các ứng dụng trong mục Productivity, một điều dễ nhận thấy là hầu hết chúng đều là sản phẩm của các ông lớn công nghệ đình đám như Dropbox, Evernote, và Microsoft. Thế nhưng đứng ở vị trí thứ 10 lại là một app với tên gọi là “Mobile protection :Clean & Security VPN”.

Bởi cái tên nghe quá củ chuối lại chữ in hoa in thường không nhất quyết cũng như ngữ pháp quá tệ, tôi thầm nghĩ hẳn là thuật toán của Apple bị lỗi rồi. Điều đáng kinh ngạc là khi dùng Sensor Tower để kiểm tra ứng dụng, tôi hoàn toàn bị shock với con số lên tới $80,000 hàng tháng. Giờ thì tôi thật sự tò mò về nó.

Khi vào xem thử developer là ai thì ứng dụng chỉ hiện ra duy nhất một dòng “Ngan Vo Thi Thuy”. Chờ đã! Vậy là VPN service này được làm bởi một cá nhân duy nhất mà không cần đến sự trợ giúp từ các ông lớn, tập đoàn công ty công nghệ ư? Cực kì nguy hiểm. Như bạn đã biết, VPN ám chỉ việc route toàn bộ lượng internet traffic của bạn thông qua một nhóm thứ ba (3rd party). Nói cách khác, trong trường hợp này, một người hoàn toàn xa lạ, với trình độ ngữ pháp cực kì tệ, cũng như không hề có hợp tác với bất cứ công ty nào, muốn co quyền truy cập vào toàn bộ internet traffic của bạn.

Một điều đáng sợ khác nằm ở thông tin về ứng dụng này:

Theo như hình trên thì “Mobile protection :Clean & Security VPN” có đầy đủ tính năng – bao gồm kể cả “dupplicate” contacts và “Quick & Full Scan Internet Security”. Nghe đúng là ảo diệu.

Càng đáng ngờ hơn là khi nhìn vào đám review đầy 5 sao.

Tôi tự hỏi cái app này đã sống được bao lâu rồi? Theo Sensor Tower thì nó nằm trong top 20 từ ngày 20 tháng 4 (tức là tới hơn 2 tháng trời)

Bước 2: Lừa đảo người dùng

Tò mò vì sao mà cái ứng dụng này lại lên top được, tôi thử donwload về, và sau đây là lúc tôi mở app lên lần đầu tiên.

Đúng rồi đấy, bạn không hề nhầm đâu. Cái ứng dụng này đòi bạn phải cho phép nó truy cập vào danh sách liên lạc để quét contact trước. Tất nhiên là tôi đâu có điên mà cho phép nên bấm vào từ chối. Ngay sau đó, ứng dụng báo động rằng điện thoại của tôi đang gặp nguy hiểm. Rồi bảo là phải dùng Quick và Full Scan để đảm bảo an toàn internet cho tôi.

Khi bấm vào “Device Analyze” thì ứng dụng hiện ra lượng memory và storage còn trống. Một tính năng đúng chuẩn vô dụng.  Còn nếu vào Quick Scan and Full Scan thì lại cho thấy “Your contact is cleaned. No dupplicated found.”

Ôi trời, không phải dupplicates mà là duplicates.

Sau khi bấm vào “Secure Internet” ngay lập tức app đưa ra lời mời gọi chơi game… bắn bong bóng. Dù tôi chả làm gì để được “thưởng” thế nên tạm thời tôi từ chối và quay về lại mục “Secure Internet”.

Tất nhiên là tôi chấp nhận dùng thử, hàng “FREE TRIAL” mà.

Touch ID? “Full Virus, Malware scanner”? Tôi chắc rằng việc một app scan tìm virus từ dữ liệu điện thoải của tôi là bất khả thi bởi những ứng dụng như sandboxed vậy.

Đã thế còn “You will pay $99.99 for a 7-day subscription”. Nói cách khác tôi sẽ phải trả tới $100 hàng tuần để cho một kẻ lừa đảo được quyền truy cập vào lượng internet traffic của mình.

Bước 3: Lãi ròng tăng theo thời gian

Giờ thì tôi đã hiểu vì sao cái app này lại kiếm được tới hơn $80,000 một tháng. Với cái mức phí $400 hàng tháng thì chỉ cần 200 người bị lừa đã đủ để nó đạt chỉ tiêu rùi. Và Apple thì sẽ thu phí 30%, tức là $288,000 chỉ từ app này.

Bạn có thể cho rằng ai mà lại đi download cái app này rồi lại sẵn tiền móc hầu bao ra nữa chứ.

Có thể là bạn và tôi điều không click vào mấy cái ad rẻ tiền vậy nhưng đừng quên rằng Google Ad vẫn cán mốc tới $700 tỉ năm nay. “Mobile protection :Clean & Security VPN”  nằm trong top 10 app nổi tiếng nhất của mục free productivity ứng dụng với hơn 50,000 lượt download chỉ trong tháng tư.

Như vậy 200 người trả tiền chỉ chiếm 0,4%, vốn rất dễ đạt được với con số hơn 50000 lượt donwload. Và bạn cũng nên tính đến việc rất nhiều người dùng mù về công nghệ, vô tình (cố tình) trả phí cho cái “free trial” này.

Dù vậy, đến 50000 lượt download thì hẳn App Search Optimization của nó phải rất tốt:

Ngay lập tức hiện ra là “Protection for iPhone — Mobile Security VPN”. Nó vốn là một app khác nhưng điều khá hay là nó lại là In-App Purchase, xếp hạng #33 cho Top Grossing trong mục Business.

Hóa ra bọn lừa đảo này lợi dụng tính năng App Store Search Ads product, bởi nó chưa có filter cũng như sàn lọc ads. Hóa ra các ứng dụng này vốn có thể gọi là ads của chính chúng, với quảng cáo chèo kéo sử dụng app này trong app khác. Ngoài ra cách đặt tên chuối mà tôi đã nhắc đến phía trên cũng để phục vụ cho mục đích tạo keyword để tăng khả năng hiển thị trong mục search.

Làm cách nào để ngăn chặn chúng: Điều bạn có thể làm

  • Hãy chỉ người thân và bạn bè (không chuyên về IT và công nghệ) cách kiểm tra và tắt subscription. Còn nếu nó quá tệ nữa thì hãy cố gắng bắt hoàn tiền lại.
  • Report mấy cái ứng dụng lừa đảo. Cứ chọn mục “Feedback and Concerns” hoặc “Report a Fraud Concern”.
  • Share bài viết này để Apple và người quen của bạn đọc được

Làm cách nào để ngăn chặn chúng: Điều Apple có thể làm

Nhiều người cho rằng Apple đã biết về chúng nhưng hẳn là họ không nghĩ là vấn đề đó đáng lo đến mức tự tay mình phải vào cuộc hoặc là họ thấy có lợi nên cũng nhắm mắt cho qua. Dù sao đi nữa, thì tôi vẫn nêu ra một số phương pháp khả thi cho hãng:

Diệt trừ bọn lừa đảo và hoàn tiền lại cho người dùng: Cái này thì quá rõ ràng rùi. Chỉ việc thuê người làm việc dò và loại mấy cái app này ra. Việc này có thể mất thời gian nhưng không hề khó bởi mấy ứng dụng lừa đảo quá trắng trợn và rõ ràng, rất dễ để nhận ra.

Cải thiện UI trên Touch ID Subscriptions: Hãy khiến cho việc ấn vào để thực hiện giao dịch kéo dài trong 5 giây. Ngoài ra, việc review cũng nên phải được kiểm tra và chỉ hiện thỉ những review hữu ích.

Thắt chặt và kiểm tra các Review của Subscriptions: Qua việc trên, ta có thể nhận ra review giả là một trong những nguyên nhân khiến những ứng dụng này nổi lên nhanh đến vậy.

Thêm tính năng hủy subscription khi xóa app: Nhiều người dùng sao khi bị lừa cho biết dù họ đã xóa app nhưng vẫn phải trả tiền hàng tháng do chưa hủy subscription. Thiết nghĩ đây cũng là một tính năng rất cần thiết mà Apple nên có.

Quá trình hủy subscription dễ dàng hơn: Việc hủy subscription yêu cầu người dùng phải trải qua tới 9 bước. Thật sự là quá nhiều và không cần thiết.

Cải thiện Search Ads: Một trong những nguyên nhân chính khiến cho những cái app lừa đảo này vẫn sống khỏe là do hệ thồng search ads của Apple vẫn còn quá trẻ, người dùng không thể phân biệt được đâu là app và đâu là Ad. Vì thế tính năng chống lừa đảo, phân tích xác định xem những ad bị nghi ngờ có dấu hiệu lừa đảo là rất quan trọng.

Hãy vào cuộc: Nếu apple thật sự bắt tay vào trừng trị những kẻ lừa đảo này thì tin rằng việc những ứng dụng trên sẽ biến mất rất nhanh. Tuy vậy, tôi đặt giải pháp này ở cuối là bởi vì rất ít khả năng Apple sẽ làm vậy. Đó là bởi việc làm những app này không hề tốn nhiều công sức, và việc tệ nhất chỉ là bị xóa tài khoản thứ mà còn dễ làm hơn nữa. Việc kiện tụng và phạt thì lại khá tốn kém đối với Apple bởi số lượng những kẻ lừa đảo là quá nhiều.

Lời kết

Là một developer, niềm tự hào của tôi là khi tạo ra được những ứng dụng có giá trị cho người dùng. Không những thế, các app tốt là kết quả từ design, engineering, sale cũng như hàng trăm giờ làm việc cống hiến.

Vì thế mà việc có nhiều kẻ lợi dụng lập trình để tạo ra những app lừa đảo này thật sự khiến tôi đau lòng.

Nếu bất cứ ai tại Apple đọc được những dòng này, xin hãy làm điều gì đó để ngăn chặn chúng lại

Nguồn: Techtalk via Medium

Thuật toán – Tế bào gốc của AI, Machine Learning, Blockchain và con đường sự nghiệp của bạn!

Chắc hẳn bạn đã biết:

  • Những ứng dụng giao tiếp với robot, dịch tự động, tra cứu thông minh, thống kê dự đoán…ra đời với những thuật toán phức tạp bên trong
  • Thuật toán tốt sẽ tối ưu performance làm server tiết kiệm RAM và CPU để phục vụ nhiều user hơn.
  • Thuật toán tốt sẽ làm ứng dụng di động của bạn đỡ ngốn pin, mượt và tốn ít thời gian phát triển
  • Dù bạn có thành thạo 10 ngôn ngữ lập trình, nhiều framework và công nghệ, nhưng tư duy thuật toán kém bạn sẽ mất cơ hội ngay từ vòng loại ở các công ty công nghệ lớn
  • Những bài toán lớn như Zalo/Whatsapp phục vụ hàng chục triệu người dùng nhưng tốn rấ ít tài nguyên
  • Bài toán crowdsourcing kết hợp xử lý ngôn ngữ tự nhiên giúp Google Translate dịch ngày càng hay.
  • Các bài toán về AI, Machine Learning, Blockchain…những công nghệ mà nhân loại đang trên đường hướng đến đều không thể vắng mặt những kỹ sư thông thạo thuật toán.

Chính vì vậy, thuật toán được xem như là nền tảng cần có của mọi lập trình viên, bất kể ngôn ngữ lập trình và nền tảng nào. Tuy nhiên, cộng đồng IT vẫn được chia làm hai luồng trái chiều khi nhắc về thuật toán như sau:

  • Thần thánh hoá thuật toán: Muốn lập trình giỏi phải giỏi thuật toán. Các công ty công nghệ lớn phỏng vấn về tư duy thuật toán trước khi quan tâm đến các kỹ năng khác mà?
  • Coi thường thuật toán: Chỉ cần căn bản đủ làm việc thôi, viết giao diện, if/ else/ continue/ while/ for là đủ rồi cần gì cao siêu?

Liệu điều này có đúng?

Đến với sự kiện Topdev Techtalk “Algorithms: Tế bào gốc của AI, Machine Learning, Blockchain…và con đường sự nghiệp của bạn”, bạn sẽ được nghe chia sẻ từ chính các siêu sao thuật toán đã dẫn dắt đội tuyển tham dự cuộc thi Thuật Toán Chung kết thế giới ACM-ICPC World Finals danh giá của giới lập trình:

  • Diễn giả Nhân Nguyễn – Cựu kỹ sư Google đồng thời là nhà đầu tư thiên thần của hơn 10 Tech startups
  • Diễn giả Phạm Nguyễn Sơn Tùng – Founder BigOCoding, trrường dạy thuật toán chuyên sâu số 1 hiện nay
  • Khách mời đặc biệt

Cùng với các diễn giả khách mời khác sẽ đem đến cho cộng đồng một bức tranh toàn cảnh về vai trò của Algorithms đến tương lai ngành công nghệ, cách bắt đầu và đào sâu Algorithms!

  • Thời gian – Địa điểm:
    – Liberty Central SaiGon Citypoint Hotel – 59 Pasteur, Q.1, TP.HCM ngày 24/6/2017
    – Tại Hà Nội ngày 2/7/2017
  • Thông tin chi tiết: https://www.facebook.com/events/1962398150705652/
  • Mọi thắc mắc và thông tin tài trợ/ hợp tác vui lòng liên hệ:
    Ms. Ngọc Đỗ – SĐT: 08 6273 3497 | 0944 685 243 – Email: ngoc.do@applancer.net

Tại sao có rất ít người chọn ngành Khoa học máy tính?

Tại sao có rất ít người chọn ngành Khoa học máy tính

Dan Wang – cây bút chuyên viết về công nghệ người Hong Kong đã viết một bài đăng trên blog khám phá lý do tại sao có quá ít người chọn học ngành khoa học máy tính. Con số này ít hơn rất nhiều so với những người học các lĩnh vực khoa học, kĩ thuật khác.

Đây là những lời giải thích phổ biến nhất cho hiện tượng này. Và ông Dan Wang nhận thấy nó vẫn chưa đủ để lý giải cho điều đó:

  1. Khoa học máy tính là chuyên ngành khó. Nhưng nó không phải là quá khó hơn các ngành khoa học- kĩ thuật khác, nhiều trong số đó đang trở nên phổ biến.
  2. Để trở thành 1 developer bạn không nhất thiết phải có bằng về khoa học máy tính. Tuy nhiên bằng cấp chắc chắn giúp bạn bước chân vào các công ty công nghệ lớn dễ dàng hơn so với các chuyên ngành khác.
  3. Mọi người thường không bị ảnh hưởng bởi xu hướng khi xem xét chuyên ngành. Tuy nhiên, cũng có bằng chứng cho thấy ngày càng có nhiều người lựa chọn các lĩnh vực đang phát triển như chăm sóc sức khỏe. Vì vậy, điều này cũng không thể giải thích một cách đầy đủ tại sao nhiều người không tham gia vào lĩnh vực khoa học máy tính.

Tham khảo: Tuyển dụng Data Science lương cao tại Topdev

Ông Dan Wang tiếp tục nghiên cứu và bổ sung thêm 11 yếu tố ảnh hưởng. Nhưng không một yếu tố nào trong số những yếu tố này giải thích đầy đủ lý do tại sao có quá ít người theo học khoa học máy tính, ngay cả khi có rất nhiều công việc với mức lương hấp dẫn, uy tín cao.

Dù sao, nếu bạn đang là sinh viên đại học, hoặc đang có dự định bắt đầu kế hoạch sớm, tôi khuyến khích bạn nên chọn ngành khoa học máy tính.

Programming thực sự là nơi có rất nhiều công việc mới, và xu hướng này sẽ tăng tốc vì ngày càng có nhiều công việc được thực hiện bởi máy móc.

Tại sao có rất ít người chọn ngành Khoa học máy tính

Bonus: Sáng nay tôi vừa phòng vấn bà Adriana Vecchioli – Virtual Reality Developer về những hướng dẫn VR của cô ấy và những thách thức trong quá trình xây dựng VR App

“Bạn có thể thấy rất nhiều thứ chỉ bằng quan sát”- Yogi Berra

Bí kíp để trở thành một Product Manager giỏi

Giới thiệu

Ben Horowitz’s từng đề cập trong cuốn “The Hard Thing about Hard Things” của ông bí quyết để trở thành một PM giỏi. Cuốn sách chứa đựng rất nhiều lời khuyên quí giá và hữu ích.

Khi đọc qua, tôi luôn liên tưởng đến điểm chung của những Product Manager tài năng mà tôi quen biết. Xin nói thêm là nhờ vào đặc thù nghề của mình kèm chút may mắn mà tôi từng được gặp qua hàng trăm Product Manager cũng như cộng tác làm việc với họ, một số còn là bạn thân của tôi nữa. Vì thế mà trong bài viết này, tôi sẽ đề cập đến những tính cách cần có của một Product Manager đến từ kinh nghiệm và góc nhìn của tôi khi làm việc cùng PM.

Đồng thời, tôi cũng sẽ không nhắc tới những điều quá hiển nhiên như “có tâm”, “tôn trọng nhân sự”, “không dành công” mà bài viết sẽ tập trung vào việc miêu tả một người Product Manager giỏi sẽ như thế nào. Sẽ không có ai có đủ hết tất cả những tính cách được liệt ra vì thế mà bạn cần phải xem và phát huy những thế mạnh của bản thân cũng như cải thiện những điều mình thiếu mà được đưa ra trong bài viết. Hơn nữa, mặc dù tôi dùng từ Product Manager thì thật ra là ám chỉ “product people” – những con người tài năng liên quan tới các vị trí như Product Managers, Program Manager, Designers, Developers, Marketing hoặc Sales.

Tôi cố tình không xếp hạng các tính cách bởi nó hoàn toàn tùy vào bạn cũng như môi trường xung quanh mà một số sẽ trở nên quan trọng hơn. Vì thế mà các bạn cứ xem nó như một bài hướng dẫn giúp bạn trở thành một Product Manager tài năng.

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

Hãy tự hỏi vì sao?

Jeff bắt đầu với khách hàng và tự hỏi nguyên nhân vì sao họ lại muốn dùng sản phẩm của mình cũng như vấn đề của họ là gì để phải cần mua sản phẩm – Simon Sinek nói về cách thức mà cô tiếp cận với người dùng thông qua những bài review vô cùng hữu ích và thú vị. Sau khi xác định được mục đích của sản phẩm, cô thu hút độc giả từ cách nhìn của bản thân.

“Hãy vững tin trong nhìn nhận nhưng uyển chuyển trong chi tiết” – Jeff Bezos

Làm ra sản phẩm để giải quyết vấn đề của bản thân

Jeff tin rằng sản phẩm tốt luôn là khi nó được tạo ra nhằm cho chính bản thân mình. Tuy rằng đây là một lời khuyên dành cho CEO nhưng tôi tin là nó vẫn đúng ở mọi vị trí khác. Nhờ vào việc tạo ra một sản phẩm mà cô có thể dùng, Jeff hiểu được suy nghĩ của một khách hàng và đồng cảm trước những điều họ mong muốn từ một sản phẩm. Hơn thế, Jeff cũng là người xài sản phẩm của mình mỗi ngày, thế nên, cô cũng được xem là tester quan trọng nhất trong team.

Đặt ra mục tiêu, cách thức, giao tiếp rõ ràng

Jeff luôn đề ra mục tiêu và xác định như thế nào là thành công đối với sản phẩm của cô cho team mình. Chúng bao gồm truyền cảm hứng, chất lượng và thực tiễn. Đây cũng là mục tiêu mà mọi người trong team của Jeff tin tưởng và muốn đạt được.

Hiểu rõ thị trường

Cô bạn tôi am hiểu về thị trường của sản phẩm mình. Không chỉ thế, còn biết rõ về đối thủ của mình và dùng sản phẩm của họ hằng ngày. Vì thế, Jeff thường xuyên chia sẻ và trao đổi thông tin và suy nghĩ của mình với các thành viên trong team về sản phẩm trên thị trường. Nhờ đó, mà cô hiểu được hướng đi cần thiết cho sản phẩm của Jeff.

Tìm người chỉ dạy, chỉ dạy cho người khác

Jeff tin rằng cách học tốt nhất là từ sự chỉ dạy của người đi trước. Cô tạo mối quan hệ với họ, không ngại bỏ công và tiền giúp đỡ họ. Ngoài ra, Jeff cũng đi chỉ dạy cho những người muốn học hỏi từ cô. Nhờ đó, quan điểm và tầm nhìn của Jeff ngày càng được mở rộng.

Xây dựng sự tin tưởng

Jeff được ngưỡng mộ bởi sự trung thực, khả năng đem lại sự tin cậy cho người khác. Jeff hiểu rõ sự khác biệt giữa lòng tin đích thực và tin tưởng mù quáng, nên luôn ưu tiên xây dựng một môi trường làm việc mà mọi người đều có thể giúp đỡ lẫn nhau. Lấy mình làm hình mẫu, Jeff lắng nghe và cố gắng thấu hiểu suy nghĩ, quan niệm và cách nhìn nhận của người khác.

 

Hiểu rõ cách làm

Jeff luôn hướng team về những ý tưởng thực tiễn, có khả năng thực hiện được. Nhờ vào kiến thức kĩ thuật của mình, Jeff giúp tạo ra một vòng lặp vô cùng hiệu quả giữa đưa ra ý tưởng và thực hiện nó.

Jeff không muốn dùng tới Machine Learning nếu có thể bởi sự phức tạp của nó nhưng vẫn rất quan tâm tới sự phát triển của công nghệ và ngay lập tức sử dụng nếu cảm thấy phù hợp với team.

Hãy đối đầu với khó khăn

Rất nhiều phương pháp giải quyết vô cùng sáng tạo được sinh ra từ những khó khăn tưởng chừng như vô vọng. Jeff hiểu rõ sự quan trọng của lựa chọn và việc tự cho rằng mình có thể làm mọi việc sẽ bị phản tác dụng. Vì thế mà cô tin rằng chỉ có vấn đề và khó khăn mới có thể kích thích sự phát triển và phá vỡ giới hạn để đạt được đỉnh cao mới.

Đầu tư chính là sức mạnh

Jeff không phải là con người toàn năng, thay vào đó lại có những thế mạnh riêng biệt để làm nổi bật mình. Jeff luôn đầu tư để phát triển chúng, cô hiểu rõ các ngành khác có thế mạnh là gì những vẫn giữ cho mình không bị cuốn vào chúng. Jeff có tài năng kết nối những thế mạnh của mình để làm nên sự độc đáo của bản thân.

Đặt ra ưu tiên

Jeff còn rất giỏi trong việc quản lí và đặt ra mục tiêu. Cô từng giải quyết được rất nhiều vấn đề chỉ bằng cách viết ra những việc cần phải làm và sắp xếp chúng theo độ quan trọng. Nói cách khác, Jeff là một chuyên gia về việc đặt ra mục tiêu và ưu tiên dựa theo tình huống. Cô không ngần ngại cắt bỏ các tính năng nếu nó giúp ứng dụng chạy tốt hơn (kể cả tính năng tốn rất nhiều công sức của team)

Jeff hiểu rõ việc cắt bỏ tính năng là chuyện không lạ lẫm gì, thế nhưng phải bắt cắt ở đâu. Để thực hiện được bước này, cô thường tự dự đoán những tình huống có thể xảy ra nhằm xác định được cách giải quyết tốt nhất.

 

Hãy dám xin lỗi chứ đừng chờ đợi

Project lớn luôn đồng nghĩa với việc phải đối mặt với những nguy cơ lớn. Jeff luôn chủ động trong việc chấp nhận phần lỗi về phía mình và xin lỗi ngay khi có thể chứ không chờ đợi. Mặc khác, cô tự lấy mình ra làm hình mẫu cho các thành viên trong nhóm làm theo, nhờ đó mà môi trường làm việc của công ty Jeff luôn được đánh giá rất cao.

Đừng sợ sự thay đổi

Jeff chấp nhận sự thay đổi như một phần tất yếu của quá trình sáng tạo, thường giúp đỡ và khuyến khích các thành viên trong nhóm thỏa sức sáng tạo và suy nghĩ một cách thoáng hơn.

Tò mò là tài sản vô giá của bạn

Jeff rất tò mò và ham học hỏi, không quan tâm là mình đúng mà chỉ thích thú với câu trả lời đúng. Vì thế mà Jeff rất quan tâm tới nhiều ý kiến và cách nhìn nhận khác nhau về cùng một vấn đề.

Data chính là sự thật

Mỗi khi phải đưa ra quyết định quan trọng, Jeff luôn ưu tiên việc thu thập thông tin và phân tích chúng. Cô làm một cách nghiêm túc, rất hiệu quả và sử dụng những tool trợ giúp mỗi khi có thể. Jeff hiểu Data chỉ sẽ cho ta biết một phần của câu chuyện và việc thu thập thông tin sẽ chỉ đạt được được một phần nào đó trước khi nó bắt đầu trở nên thiếu hiệu quả và lúc đó Jeff sẽ đưa ra quyết định của mình.  

 

Đơn giản hóa mọi thứ

Khi gặp phải một vấn đề, Jeff sẽ chia nó thành nhiều phần nhỏ và đưa ra từng giải pháp cho chúng. Mỗi khi bắt đầu một bài diễn thuyết hoặc chia sẻ thông tin, cô luôn tự hỏi người nghe cần biết những gì? thay vì là tôi có thể nói cho họ nghe những điều đó không?. Jeff luôn tính trước những khó khăn mà cô có thể gặp phải nhưng tập trung nhiều hơn về những nguy cơ tiềm ẩn hơn là tự hỏi điều gì sẽ xảy ra.

Giá trị hơn là nói nhiều, ảnh hưởng hơn là số lượng, sáng tạo hơn là bắt lỗi

Jeff là một người rất chủ động, cô luôn là đưa ra hành động đầu tiên và kết thúc những cuộc tranh luận dài dòng ngay khi có thể. Jeff ưu tiên những giải pháp mang tính thiết thực và tốn ít thời gian nhất có thể. Cô cho rằng một ý tưởng mà lại thực tiễn luôn tốt hơn một ý tưởng tuyệt vời mà lại viễn vông. Jeff không ngại việc khó và sẵn sàng bắt tay vào làm mỗi khi team cần mình.

 

Quan sát từ nhiều khía cạnh

Hay còn gọi là “Systems Thinking”, Jeff có khả năng chú ý đến chi tiết một cách đáng kinh ngạc nhưng vẫn nhận ra được bức tranh toàn cục. Cô xác định được mục tiêu không chỉ ở ngắn hạn mà còn trong tương lai. Nhờ đó mà khả năng lãnh đạo của Jeff được đánh giá rất cao.

Có cách nhìn nhận, quan điểm rõ ràng nhưng không cứng đầu bám giữ nó

Lúc đương đầu với khó khăn cũng chính là khi quan điểm của chúng ta bị đem ra thử thách. Jeff có cách nhìn nhận rất rõ ràng, tuy đó là quan điểm của cô nhưng Jeff không bám víu lấy nó. Nhờ đó mà việc trao đổi diễn ra trong team rất dễ dàng và luôn có trật tự. Mỗi khi phải đưa ra ý tưởng mới, Jeff sẽ cùng với các thành viên trao đổi cũng như thử đặt mình vào quan điểm của người khác. Nhờ đó, với lượng thông tin và bằng chứng phù hợp, cô sẽ chọn ra được ý tưởng tốt nhất.

Tạo ra những sản phẩm hay, phù hợp với mục đích của mình

Jeff được xem là một chuyên gia tạo ra content – không chỉ là để ghi chép mà còn giúp đỡ, chia sẻ cũng như hỗ trợ ý tưởng. Cô hiểu tầm quan trọng của các thiết bị và tùy thuộc vào mỗi hoàn cảnh và vị trí của mình mà sẽ có một tool/sản phẩm phù hợp nhất để sử dụng. Vì thế, cô luôn sử dụng những thứ đơn giản nhất có thể và nó phải phù hợp với mục đích của Jeff.

Luôn đón nhận Feedback cũng như đưa ra feedback

Hãy cố gắng đưa ra những lời nhận xét càng chi tiết càng tốt. Ngoài ra, feedback nên hữu ích cho người nghe và đừng nên vì một động cơ nào cả. Câu hỏi bạn cần phải trả lời là liệu nó có giúp ích được không? chứ không phải là nên nói gì? Nhờ vào feedback mà sản phẩm không chỉ được cải thiện mà nó còn trở thành tâm điểm, lôi kéo sự chú ý. Vì thế Jeff luôn chia sẻ thông tin về công việc của mình sớm nhất có thể nhằm tránh việc ảnh hưởng tiêu cực từ việc thay đổi trong sản phẩm.

Nguồn: blog.topdev via Hackernoon

Tại sao các engineer lại lo xanh mặt khi nghe tới scaling?

scaling

Nếu bạn là một CEO hoặc làm trong kinh doanh, khi nhắc tới việc “Scaling” bạn sẽ nghĩ rằng “Thật là tuyệt khi công ty có thể tăng qui mô làm việc của mình”

Còn nếu bạn là dev backend, thì khi nghe sếp nhắc tới “Scaling” là bạn sẽ muốn hét lên “Ôi thánh thần ơi! Liệu Platform của mình chịu nổi không?”

Là một CTO, scaling luôn là thứ khiến tôi điên đầu nhất. Nhớ lại hồi trước khi còn làm ở công ty cũ, sếp thông báo rằng công ty sẽ được featured trên Shark Tank, mọi người đều ăn mừng còn tôi thì sợ xám mặt luôn. Với hơn triệu lượt người dùng sẽ truy cập vào platform, ngay trong cùng một lúc đủ khiến mọi thứ hỗn loạn rồi. Đã thế đây lại là cơ hội duy nhất, chỉ có thể thành công.

Nguyên nhân chính khiến cho việc scaling cực kì áp lực là bởi vì nó không nhất quán: hệ thống của bạn có thể trông như hoạt động tốt chỉ mới một phút trước đó thôi nhưng với một lượng số người dùng tăng tiếp đó ngay lập tức khiến cho nó bị sập. Đã thế, bạn cũng không thể nói với CEO rằng ta phải giảm số lượng người dùng lại trừ khi bạn muốn được cho nghỉ việc. Ngoài ra, để giải quyết vấn đề về scaling còn khó khăn hơn việc gỡ bug rất nhiều lần, bởi bạn chỉ có thể copy toàn bộ production environment, cực kì tốn kém, hoặc là chạy performance test cho production vốn làm ảnh hưởng tiêu cực lên trải nghiệm của người dùng.

Một trong những lỗi mà các startup mắc phải là ra quyết định quá sớm khi mà bạn còn trong giai đoạn prototype như làm việc với outsourced developer nhằm tiết kiệm tiền. Và nếu bạn chọn sai database hoặc hosting platform, nó có thể tốn tới vài năm công sức chỉ để cải thiện và sửa chữa.

Nhiều người lầm tưởng rằng sử dụng các hosting platforms như AWS sẽ giúp giải quyết vấn đề scaling và chỉ cần nâng cấp phần cứng thôi. Tuy nhiên, AWS thực chất chỉ là một phần của quá trình và nó chỉ giúp việc scaling trở nên đơn giản hơn. Ngay cả full-service platforms như Heroku, Firebase, và Lambda cũng chật vật trong việc giải quyết vấn đề scaling. Mặt khác, qui mô càng lớn thì tiền tốn càng nhiều.

Điều đáng sợ nhất khi nói về scaling là tình trạng outage liên quan đến scaling thường diễn ra vào thời điểm then chốt như thời điểm ra mắt tầm cỡ, thời điểm đẩy Marketing… Và thường là khi nó đã xảy ra thì bạn chỉ có thể giảm thiểu thiệt hại bởi dù các developer làm việc ngày đêm thì bản fix chỉ xuất hiện sau một thời gian. Mà nếu có thì chắc là chỉ khi bạn giàu nứt vách và mua những phần cứng khủng để giải quyết một cách nửa vời.

Vì thế khi backend dev nói với bạn rằng cần thêm thời gian để hoàn thiện thì hãy nghe lời họ. Có thể nó khiến việc tung ra tính năng mới bị chậm cũng như phải bỏ đi một vài thứ nhưng thế thì còn đỡ hơn là khi sản phẩm tung ra thị trường và thất bại một cách ê chề.

Nguồn: topdev.vn via hackernoon

Nâng cấp từ Node 6 lên Node 8: Có nên không?

Nâng cấp từ Node 6 lên Node 8

Node 8 đã ra mắt và tôi nghe thiên hạ đồn rằng nó nhanh hơn phiên bản cũ. Tuy nhiên tất cả cũng chỉ là tin đồn và không có bất kì một số liệu thực tế nào để chứng minh điều đó.

May mắn thay, tôi có một trang React đang chạy trên Node 6 cùng với 2 tiếng đồng hồ để lãng phí nhằm kiểm chứng điều này.

Rất dễ dàng để nâng cấp lên Node 8 (chỉ khoảng 10 phút) mà không có bất cứ library nào bị break. Tôi đã install lên macOS với tập tin .pkg từ website, và mọi thứ đều diễn ra rất nuột. Mặc dù tôi vẫn phải remove bằng tay usr/local/lib/node_modules/.

Mọi thứ đều rất tốt cho đến hiện tại và có thể tôi sẽ thử sau trên một máy Windows.

Edit: Không thể tin được, mọi thứ còn nuột hơn trên Windows. Không hề có một bước manual nào, không có package nào bị break, không có một thông báo lỗi nào hiện lên.

Tham khảo thêm Tuyển dụng NodeJS lương cao tại TOpdev

Tổng quan

Những số liệu so sánh thu thập được từ thử nghiệm này phù hợp với những trang React từ trung bình đến lớn với single page. Trên server cần có một JSON object với vài nghìn property và HTML return với 2113 DOM nodes.

Bắt đầu buổi thử nghiệm thôi.

Thời gian render server

Hãy bắt đầu với số liệu quan trọng nhất, thời gian cần để server render trang

Ở những lần thử đầu tiên, ta sẽ thấy không có sự khác biệt quá lớn giữa 2 phiên bản. Tuy nhiên khi chạy đến lần thứ 8, thời gian render gần như đã được định đoạt với 104ms của Node 6 và 80ms của Node 8.

Nâng cấp từ Node 6 lên Node 8

Thời gian render giảm 23% là một con số rất đáng cân nhắc. Hay nói cách khác, chúng ta có thể giảm 23% phần cứng cần thiết để render site.

Tôi dự định sẽ yêu cầu các nhân viên upgrade lên Node 8 và giảm instance Amazon của chúng tôi xuống từ 25 còn 20, và quyên góp tháng tiền tiết kiệm đầu tiên cho Node.js.

Đây là một bài test tương tự trong Dev mode:

Nâng cấp từ Node 6 lên Node 8

Chạy một test suite.

Suit này có khoảng 500 Jest dùng để thử nghiệm phần lớn về mounting và un-mounting những component của React, và dĩ nhiên chỉ cho JavaScriptery tổng quát.

Nâng cấp từ Node 6 lên Node 8

Thời gian giảm khoảng 10%. Có lẽ sự cải thiện là không đáng kể bởi vì engine của JavaScript không hề có bất cứ hành động optimization nào (mỗi lần chạy đều là lần chạy mới từ Node). Tất nhiên đó chỉ là phỏng đoán của cá nhân tôi, nếu bạn biết nguyên nhân chính xác có thể comment ở bên dưới để mọi người cùng biết nhé.

Webpack build

Webpack build có một chút disk I/O, một vài Babel transpiling, JS uglifying/minifying, tất cả có kích thước khoảng 500KB JavaScript.

Không có quá nhiều điều để nói về cái này. Thời gian chạy giảm xuống khoảng 7%

Install NPM

Bây giờ tôi sẽ chuyển qua Windows, hệ điều hành thường được sử dụng nhất cho NPM. Có 40 packages trong package.json ; 445 package tổng cộng trong cây dependency.

Trong những lần chạy đầu tiên, tôi remove các NPM cache và node_modules directory trong project, vì vậy bài test fetch package thông qua internet.

Rất thú vị là NPM 3 dừng lại ở mức 7Mbps download, còn NPM 5 đạt đến 20 Mbps.

Tôi tiếp tục cho vào yarn  để bài test thêm phần thú vị

Nâng cấp từ Node 6 lên Node 8

Tiếp đến, tôi chạy npm installvới npm cache nhưng node_modulessẽ bị remove giữa những lần chạy. Tôi đã tưởng rằng đây sẽ chủ yếu là disk I/O (copy từ cache vào project directory), nhưng rõ ràng có cái gì đó hơn thế nữa.

Nâng cấp từ Node 6 lên Node 8

Trong cả 2 tình huống, NPM 5 khiến thời gian install giảm khoảng ⅓. Và cũng trong cả 2 trường hợp, Yarn đều nhanh hơn 1 cách đáng kinh ngạc.

Đó là tất cả những gì tôi test được.

Thật lòng mà nói, tôi đã từng nghĩ Node 8 sẽ chỉ cải thiện hiệu năng thêm vài %, và sẽ không bất ngờ nếu đó chỉ là những con số trên bàn giấy và không hề có thực ngoài đời. Nhưng sau buổi test này, việc Node 8 cắt giảm thời gian render xuống ¼ và thời gian install xuống ⅓ thật sự là rất đáng kinh ngạc.

Có thể nói đây là một tín hiệu rất đáng mừng, và tôi xin dành lời khen ngợi đến đội ngũ đã tạo ra sự phát triển này của Node.

À tí nữa thì quên, ngoài hiệu suất được cải thiện thì cũng có một vài tính năng mới đấy.

Nguồn: topdev via hackernoon

Java – ngôn ngữ không mới nhưng chưa bao giờ ngừng “hot”

Có thể nói Java ngày nay không còn là ngôn ngữ lập trình xa lạ với các developer, và dường như đã trở thành ngôn ngữ có sức ảnh hưởng tuyển dụng hàng đầu trong lĩnh vực công nghệ thông tin. Java – một ngôn ngữ không phải là mới mẻ nhưng chưa bao giờ ngừng “hot”.

Theo bảng xếp hạng của tổ chức IEEE thì Java là ngôn ngữ lập trình đứng thứ 2 bởi khả năng và sự phổ biến. “Hầu như tất cả các enterprise desktop đều chạy Java và nó hiện có mặt trên 3 tỷ điện thoại di động” . Ở Java còn có một sự đặc biệt khác với các ngôn ngữ còn lại, với câu khẩu hiệu: “viết một lần, chạy mọi nơi”. Chính sự phổ biến và đặc biệt này đã giúp Java trở thành “điểm nóng” cho nhu cầu tuyển dụng của các doanh nghiệp về sau.

Các lập trình viên Java thường rất được ưu ái về lương bổng và đãi ngộ. Một lập trình viên Java tại Mỹ thường có mức lương trung bình 1 năm là $88K đô-la (hơn 1,8 tỷ VNĐ/năm). Ngay cả tại Việt Nam, các Junior hay Fresher Java Developer đều rất hào hứng với những đãi ngộ hấp dẫn, lương bổng cao cũng như cơ hội thăng tiến tốt. Nhiều doanh nghiệp còn sẵn sàng đưa ra mức lương cực cao dành riêng cho Senior lập trình Java, thậm chí còn tặng cả khoản bonus khi mới gia nhập lên đến $4000!

Chính vì lẽ đó mà ngày nay Java đang ngày càng trở nên “đắt giá”. Và nó đã mở ra một cơ hội thật sự tiềm năng cho những ai đang theo đuổi về ngôn ngữ lập trình này.

Tại sao Fullstack là hướng đi tốt trong năm 2022

Trở thành một nhà phát triển phần mềm đồng nghĩa bạn sẽ học suốt đời. Vì xu hướng và công nghệ thay đổi thường xuyên trong lĩnh vực phần mềm, chúng ta nên sẵn sàng để đối mặt với sự thay đổi đột ngột. Công việc này đòi hỏi liên tục vận động bộ não, nơi thư giãn hiếm khi là một sự lựa chọn.

Công việc liên quan phát triển phần mềm và kỹ thuật đang tràn ngập trên thị trường việc làm hiện tại. Nếu chúng ta phân tích xu hướng, chỉ có một vài lĩnh vực sẽ được đánh dấu có tác động mạnh trong khi những cái khác có tác động rất ít hoặc ít quan trọng. Mặc dù nhu cầu của các chuyên gia dữ liệu và phân tích, các chuyên gia Big Data, AI đã tăng lên trong suốt ba năm qua, nhưng chúng vẫn không bằng như cầu về một nhà phát triển full stack hoặc một kỹ sư full stack. Có vài lý do cho việc này.

Trước đây, tất cả chúng ta đều biết những vai trò này tồn tại trong thế giới phần mềm từ một thời kỳ xưa xa và một số những cái mới đây:

  • System Analyst
  • Software Developer
  • Software Engineer
  • Database Analyst/ Admin
  • Data Analyst/ Scientist
  • Big Data Developer
  • Game developer
  • Network Security Professional
  • Operations Engineer
  • Front-end Developer
  • Web Developer
  • Full Stack Developer
  • Back-end Developer
  • DevOps Engineer

Trong số những chuyên ngành này, chỉ một số rất hot ngay từ đầu năm 2017. Lý do là gì? Đó là do sự bão hòa của một số công nghệ và phát hiện ra các doanh nghiệp mới dưới hình thức start-up. Sự bùng nổ của các doanh nghiệp mới thành lập và doanh nghiệp nhỏ đã hình thành một loạt các kỹ năng cần thiết để làm điểm chuẩn. Trong đó, full stack web development là một.

Nếu bạn xem xét các vị trí trong ngành công nghệ được yêu cầu trước đây ở các tiểu bang khác nhau của Hoa Kỳ:

Vì sao Full Stack Development nổi bật trong nhóm?

Định nghĩa thông thường của full stack developer là

“Thuật ngữ full-stack nghĩa là các lập trình viên có thể làm việc thuận tay với cả back-end và front-end”

Nói một cách chuyên môn thì nó không phải là một yêu cầu tiêu chuẩn của ngành công nghiệp. Đây là một khía cạnh tiến hóa về kỹ năng. Một lập trình viên full stack luôn luôn cố gắng để tìm hiểu các công nghệ mã nguồn mở để áp dụng chúng trong công việc của mình. Theo tôi, full stack development là một sự kết hợp tối thiểu (ít nhất) của những điều sau đây

Front-end Development + Back-end Development + DevOps + Thiết kế

Ngoài việc xây dựng ứng dụng web dễ dàng, một lập trình viên full stack nên biết làm thế nào để deploy, tối ưu hóa, tự động hóa ứng dụng.

Full Stack Development là Tìm kiếm theo chiều rộng ( Breadth First Search – BFS )

Nếu bạn nghiên cứu lý thuyết đồ thị, có bạn có thể đã gặp đồ thị giải thuật duyệt. Tất cả sinh viên ngành khoa học máy tính đều biết chúng rất rõ.

  • BFS (Breadth First Search)
  • DFS (Depth First Search)

Tôi ở đây sẽ so sánh điểm giống nhau giữa full stack development với các chuyên ngành khác trong thế giới công nghệ và các lĩnh vực.

BFS là một giải thuật duyệt mà trong lần lượt lượt truy cập tất cả các điểm giao lân cận đến một điểm giao gốc và sau đó bắt đầu nghiên cứu sâu hơn.

DFS là một giải thuật duyệt mà việc đầu tiên là chạm vào đáy của chiều sâu tối đa của điểm giao child đầu tiên và sau đó trả về phía sau và bắt đầu quá trình từ một child thứ hai.

Cái bạn nên học là gì? DFS hay BFS?

Trả lời cho điều này là tuỳ theo sự lựa chọn bản thân. Dr.D sinh viên thích học Depth First bởi vì họ muốn thu hẹp công việc của mình cho một unit cùng một lúc. Nhưng như mô hình phát triển phần mềm chuyên nghiệp vào năm 2017, bạn không có thời gian để build, test và fix mọi thứ. Tìm người quản lý là một sự lựa chọn bình thường cho các doanh nghiệp nhưng đối với những người mới thành lập, họ không thể tạo ra hàng trăm vị trí cho hàng trăm thứ.

Full stack development là tìm hiểu Breadth First, đầu tiên bạn phải cố gắng biết cách điều hành mọi thứ và sau đó cố gắng nghiên cứu sâu hơn bằng cách làm việc liên tục. Thời đi học, chúng tôi thực hiện BFS này bằng cách học các môn học khác nhau cùng một lúc. Không có gì mới trong kỹ thuật này.

Hình ảnh cho thấy sự đa dạng của các lĩnh vực mà một lập trình viên full stack hoạt động và đạt được kinh nghiệm. Vì họ cần chăm sóc mọi thứ từ đầu đến cuối của một ứng dụng web, lập trình viên thường tự tay làm tại những điểm cao nhất trước tiên và sau đó nghiên cứu sâu hơn. Càng học nhiều hơn, càng trở nên mạnh mẽ và hữu ích hơn cho bạn.

Năm 2017, các công ty cần những người có nhiều kỹ năng. Họ không tìm kiếm ứng cử viên bảo thủ có kinh nghiệm trong một công cụ hoặc công nghệ mà không ai biết. Nắm bắt kiến thức về nguồn mở sẽ giúp các nhà tuyển dụng xếp hàng để tuyển bạn (sau đó sử dụng dịch vụ của bạn).

Bạn có đam mê học hỏi?

Nếu bạn là một lập trình viên những người học nhanh chóng và luôn luôn sốt sắng để thử những điều mới lạ bằng cách nào đó, thì hướng đi này phù hợp nhất với bạn. Full stack development là thực hiện mọi thứ, hiểu chúng và cải thiện chúng.

Công việc này liên tục cho bạn nhiều sự hiểu biết sâu sắc hơn về lập trình. Là một lập trình viên full stack, để giải quyết một vấn đề bạn sẽ biết bắt đầu từ đâu, những gì để sử dụng và làm thế nào để phản ứng với yêu cầu mới.

Đẩy mạnh các giới hạn của một lập trình viên web

Trong tennis, tốc độ di chuyển và sức mạnh từng cú đánh được cải thiện. Sự phát triển đang tăng gấp đôi mỗi thập kỷ, làm cho môn thể thao trở nên thú vị hơn. Tất cả các ngành nghề đang phát triển quá nhanh. Khoa học máy tính và phát triển phần mềm không phải là ngoại lệ. Trong những năm trước, người ta thường thuê một chuyên gia để thực hiện một nhiệm vụ. Nhưng bây giờ, trong thời đại điện toán đám mây, sự phát triển trong học tập và thay đổi là chuyện bình thường.

Giống như trong Pokémon, làm thế nào một Pikachu tiến hóa thành một Raichu, một lập trình viên web bình thường đang phát triển thành một lập trình viên full stack.

Ai là lập trình viên full stack?

Full stack development là một thuật ngữ tương đối “tù”. Các kỹ năng cần có của lập trình viên full stack có thể khác nhau tùy theo yêu cầu. Nhưng theo tôi một lập trình viên có thể trở thành một lập trình viên full stack nếu họ là:

  • Có khả năng làm việc với CSS & JS tốt (Truy vấn media, Ứng dụng trang đơn và DOM, ES6). Biết các công cụ như Grunt, Gulp & Browserify
  • Biết các framework web (ít nhất một). Ví dụ: Django hoặc Node JS
  • Làm việc với SQL và NoSQL trong một khoảng thời gian đáng kể (MySQL, Mongo DB). Có thể thiết kế mô hình relation tốt. Có thể thực hiện các truy vấn tiên tiến và SQL Joins
  • Biết cách deploy code của mình trên AWS EC2 bằng Apache2 hoặc Nginx như web server. Nên có kiến thức làm việc với Docker và Virtualization.
  • Có thể thiết kế một ứng dụng web hoàn chỉnh với nhiều thành phần dễ thay đổi. Nên dũng cảm để đề xuất những thay đổi kiến trúc nếu bạn có một lý do chính đáng để làm như vậy.
  • Chọn các giải pháp đơn giản hiệu quả và cải thiện nó trong suốt thời gian
  • Có thể tạo chu kỳ tự động với kiến thức về Chef hoặc Ansible. Tự động logging và truy xuất lỗi.
  • Thích chuyển đổi context từ domain này sang cái khác, một công nghệ khác và nhanh chóng hoàn thành công việc trong thời gian đó.
  • Có kiến thức từ cơ bản đến trung bình về phát triển ứng dụng di động cùng với JS, tiện ích mở rộng Chrome và ứng dụng web hiện đại.

Tham khảo thêm các việc làm Full stack:

Tại sao bạn nên hướng tới Full Stack Development?

Khi có rất nhiều lựa chọn nghề nghiệp sẵn có, tại sao chúng ta nên bắt tay của mình vào full stack development. Thứ nhất, nó làm cho bạn học những điều mới mọi lúc. Công nghệ đang thay đổi nhanh chóng nên gắn bó với cùng một công việc không phải là lựa chọn cho sự nghiệp của bạn. Bạn  giá trị hơn cho một nhóm và có thể tự đánh giá các quyết định liên quan đến bất kỳ khía cạnh nào.

Thứ hai, vị trí này mang lại cho bạn nhiều tiền hơn. Nếu bạn là một lập trình viên full stack, rất có thể là tiền lương của bạn là ngất ngưỡng. Một nghiên cứu về mức lương từ Indeed.com cho biết rằng một lập trình viên full stack trung bình tại San Francisco, CA kiếm được gần $ 1,30,576 một năm, trong khi một lập trình viên web thông thường là khoảng $ 94,614

Ngay cả ở Ấn Độ, những người có kỹ năng full stack development đang có nhu cầu cao vào năm 2017. Thị trường startup Ấn Độ nhận ra tầm quan trọng của việc full stack development gần đây. Các công ty phần mềm từ các thành phố lớn như Delhi, Mumbai, Chennai, Bengaluru đang đăng tuyển vị trí lập trình viên full stack trong linkedIn.

Điểm tiêu cực đáng để suy ngẫm một cách rõ ràng

Full stack development cũng có thể mang lại một số hạn chế và có thể không phù hợp với mọi loại người. Nó có những nhược điểm sau:

  • Mọi người có thể gọi bạn là “Biết mọi thứ” nhưng “Không chuyên sâu”. Mặc dù nó là một phần của sự thật, bạn cũng có thể theo kịp với những kiến thức bạn có được. Chia sẻ một kỹ thuật đã biết trong một blog, ghi chép có thể giúp bạn nhớ các thủ thuật của công việc hiện tại của bạn cho giai đoạn sau.
  • Công việc hiện tại của bạn có thể chưa thể áp dụng kiểu “làm từ A tới Z” này.
  • Đối với người mới, họ cần phải làm việc và chứng minh trong startups là một lập trình viên full stack. Chỉ một số ít được tự do làm những gì họ thích trong giai đoạn đầu. Vì vậy, công ty của bạn sẽ quyết định những gì bạn sẽ làm khi mới bắt đầu sự nghiệp. Vì vậy, lên một kế hoạch rõ ràng trước khi tốt nghiệp.

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

Nguồn: Techtalk via Medium

10 điểm nhấn về phát triển web trong mà bạn cần phải biết

10 điểm nhấn về phát triển web

Trong 5 năm vừa qua, lĩnh vực phát triển web đạt được những bước phát triển vượt bậc với những frameworks, libraries, tools, ngôn ngữ lập trình và power factors mới. Sau hơn nửa năm 2017, chúng ta có thể thấy sự phát triển vẫn rất rõ ràng dánh dấu một năm quan trọng.

Trong bài viết này chúng tôi sẽ nói về những sự kiện nổi bật của thế giới web developer trong nửa năm đầu 2017.

Yarn — Kẻ đã giết chết NPM?

Yarn được tạo ra với mục đích trở thành package manager tốt nhất cho JavaScript. Là một project được phát triển dưới sự hợp tác của Facebook, Google, Exponent, và Tilde. Với Yarn, ta vẫn có thể truy cập vào npm registry. Hơn nữa, Yarn cài đặt khá dễ dàng cũng như nó giúp việc quản lí dependencies giữa các máy và trong một môi trường offline khép kín, an toàn. Yarn còn cho phép việc chia sẻ code tiện lợi hơn. Nhiều chuyên gia tin rằng Yarn sẽ được tích hợp vào NPM để Users hai bên đều được hưởng lợi.

Angular 1, 2, 4

Angular là một framework được sử dụng rộng rãi trong JavaScript. Google vừa mới tung ra Angular phiên bản 2 vào tháng 9, 2016, như là một bản cải thiện của Angular 1. Google dùng phương pháp semantic versioning cho Angular. Và chỉ sau 6 tháng, phiên bản 4 của framework đã được tung ra.

Trong khi đó phiên bản 3 bị bỏ qua do gặp trục trặc kĩ thuật. Do vậy Angular 1 được gọi là AngularJr trong khi phiên bản 2 sẽ được gọi là Angular luôn. Cộng đồng IT đã rất yêu thích framework này và tin rằng nó sẽ càng trở nên nổi tiếng hơn trong tương lai.

Tham khảo thêm các vị trí tuyển dụng Angular lương cao mới nhất trong tháng

React Fiber — Thế hệ tương lai của React

React Fiber hiện đang được sử dụng cho các core thuật toán React. Là thành quả từ quá trình nghiên cứu hơn 2 năm của React team. Một trong những điều lo ngại với React là scheduling. Scheduling ám chỉ tính năng cho phép pause, resume và cancel quá trình update nhằm ưu tiên cho các task khác quan trọng hơn – còn được gọi là Incremental Rendering.

Đặc biệt là task liên quan tới Animation. Đây là một tính năng rất quan trọng bởi mắt người sẽ cho rằng ứng dụng bị “lag” nếu thời gian xử lí quá lâu. React 16.0 sẽ được tung ra vào cuối năm 2017, và khác so với Angular, các ứng dụng sử dụng bản React cũ vẫn hoạt động được bình thường.

Tham khảo thêm các vị trí tuyển dụng React không yêu cầu KN

Vue.js —Long tranh hổ đấu với React và Angular

Đối với front end frameworks, React và Angular là 2 lựa chọn nổi bật nhất. Trong khi đó, Vue.js là một JavaScript framework trẻ hơn nhưng đầy hứa hẹn bởi nó tập trung vào user interfaces.

Ngoài ra, Vue.js còn tích hợp nhiều tính năng hữu ích cho view layer. Với tiềm năng mạnh mẽ cùng sự nổi tiếng, được cộng đồng deverloper quan tâm, Vue.js đã chứng tỏ mình không chỉ đơn thuần là một framework bình thường mà còn có khả năng cạnh tranh với 2 ông lớn React và Angular. Tin rằng buổi công bố về Vue.js trong tháng 6 này sẽ là một sự kiện quan trọng không thể bỏ qua.

THam khảo thêm các việc làm VueJS mới nhất từ các công ty HOT

Sự mạnh mẽ của Webpack

Webpack là một JavaScript module bundler tool. Với chức năng chính là bundle JavaScript file để dùng trong trình duyệt web. Nhưng nó cũng có khả năng transforming, bundling, hoặc packaging bất cứ resource và asset nào. Không những thế, Webpack Plugin system còn cực kì mạnh mẽ và rất dễ tinh chỉnh.

Để sử dụng một plugin, bạn chỉ cần thêm require() và bỏ vào trong plugins array. Webpack có mục đích chính là nhầm thể hiện được dependency graph. Nhờ đó mà nó có tiềm năng rất lớn. Webpack 2 & Webpack-cli hiện đã available và được dùng bởi nhiều ứng dụng như Angular-cli.

Những tính năng của ES6

ES6 hoặc ES2015 là phiên bản mới nhất của ECMAScript, từng gây làn sóng bàn luận sôi nổi do phiên bản update trước đó đã ra mất từ tận 2009. Mục đích của ES6 là nhằm hỗ trợ cho các ứng dụng lớn, library và cho việc sử dụng EcmaScript nhằm compile cho các ngôn ngữ lập trình khác.

ES6 mang tới vô số tính năng và cải tiến như promises, lexical block scoping, iterators, generators, modules, class declarations và cả destructuring patterns. Hiện nay, những tính năng này đang được tích hợp vào các JavaScript engine

Prepack —Một Optimizer mạnh mẽ

Prepack là một tool cho phép ta chỉnh sửa và tối ưu hóa mã nguồn của JavaScript. Giúp cho việc xử lí diễn ra nhanh hơn. Có thể xem Prepack là một phần mềm đánh giá chất lượng cho JavaScript. Prepack sẽ rewrite lại JavaScript bundle nhằm tăng hiệu quả cho JavaScript code.

Prepack hiện tại vẫn còn đang trong giai đoạn phát triển nhưng với tiềm năng mạnh mẽ, nó được kì vọng sẽ mang đến thay đổi lớn cho JavaScript. Ứng dụng được tài trợ bởi người khổng lồ – Facebook. Hãng muốn tích hợp Prepack vào React và sẽ biến nó thành một platform trong tương lai.

Firebase dành cho các ứng dụng không có server

Các ứng dụng không có server sẽ phải phụ thuộc vào dịch vụ của bên thứ 3 (3rd party service). Trong khi đó Firebase là một platform dành cho việc phát triển app trên mobile hoặc web. Do được tạo ra dựa trên cấu trúc của chính Google nên nó sẽ tự động tính toán nên bạn không cần lo lắng đối với vấn đề liên quan đến yêu cầu từ người dùng.

Firebase sẽ cho phép bạn code một cách thoải mái mà không cần phải lo đến vấn đề cấu trúc và backend. Cloud Functions, Realtime Database, Crash Reporting, Authentication, Cloud Storage, Hosting, Firebase Notifications và Android Test Lab là một vài tính năng vô cùng hữu ích sẽ giúp cho cuộc sống của bạn dễ dàng hơn.

Tuy vậy, bạn cũng cần để ý đến một số khó khăn khi sử dụng Firebase như thiếu lựa chọn cho việc local development, hạn chế trong JavaScript SDK cũng như sự liên quan tới NoSQL DBs. Tuy vậy, integration với Firebase sẽ dễ dàng hơn với sự giúp đỡ của libraries như angularfire2, reactfire vuefire

Redux – Luồng Data không theo chiều hướng

Khi trang web của bạn trở nên đồ sộ với lượng content dồi dào thì các trang static html bắt đầu thể hiện sự yếu kém của mình bởi việc chỉ lưu dữ liệu trong một object là không đủ. Redux là một predictable state container dành riêng cho các ứng dụng của JavaScript. Cấu trúc của Redux quay quanh khái niệm luồng Data không theo chiều hướng. Dựa trên cách thức hoạt động từ Facebook’s Flux và ngôn ngữ lập trình function Elm. Được đánh giá là một trong những libraries nổi bật nhất,  Redux là lựa chọn tuyệt vời cho front-end development. Với sự đơn giản, thân thiện với người dùng, lại có thể dùng cả trên React và bất cứ JavaScript framework nào.

Microservices – Tối ưu hóa với sự tự do trong tinh chỉnh

Microservices là một kiểu kiến trúc để tạo ra các ứng dụng với cấu trúc của tập hợp loosely coupled services. Mỗi dịch vụ trên có thể tập trung vào một sub-domain của ứng dụng. Nhờ đó mà Microservices cho việc liên tục xử lý các ứng dụng lớn và phức tạp. Ngoài ra, người dùng còn có khả năng cải tiến technology stack bởi từng service là một autonomy và có API riêng của nó. Microservices còn giúp việc xác định và cách ly lỗi, loại trừ long-term commitment của một technology stack cũng như developer hiểu cách hoạt động của ứng dụng nhanh hơn. Đây là một ý tưởng với tiềm năng rất lớn, được các công như eBay, Amazon và Netflix áp dụng.

Lời kết

Sự phát triển của công nghệ và lập trình web là điều không thể tránh khỏi, vì thế mà ta phải luôn luôn học hỏi và bắt kịp với xu thế của thời đại. Năm 2017 đánh dấu sự thăng tiến vượt bậc mà các developer phải luôn chú ý.

Nguồn: blog.topdev.vn via hackermoon

8 highlight từ sự kiện Apple WWDC 2017 mà bạn cần phải biết

Sự kiện WWDC 2017 của Apple vừa mới kết thúc với các key executive như Craig Federighi, Phil Schiller và Tim Cook cùng tham gia diễn thuyết, công bố các update quan trọng được hãng dự kiến sẽ cập bến cho iPhones, MacBooks, Apple TV và những thiết bị khác trong tương lai.

Các tín đồ về công nghệ đặc biệt rất mong chờ WWDC bởi tin đồn về sự xuất hiện của thiết bị cũng như phần mềm ứng dụng mới dành riêng cho developer nhằm chuẩn bị cho phiển bản cập nhật lớn dành cho người dùng vào mùa thu này. Ngoài ra, mọi người cũng dự đoán về việc hãng đưa ra một phiên bản cải thiện Siri – Apple HomePod nhằm cạnh tranh trực tiếp với Amazon Alexa và Google Assistant trong lĩnh vực hardware và smart home front.

Sau đây là 8 highlight từ sự kiện công nghệ WWDC 2017 của ông lớn Apple

Apple công bố HomePod nhằm tranh đấu với Amazon và Sonos

Đầu tiên là tin đồn về một phiên bản Siri speaker, hóa ra, Apple lại không hề có ý định cạnh tranh chỉ với Amazon Echo và Google Home mà còn nhắm tới Sonos home entertainment speakers. Với sản phẩm HomePod, Apple cho biết nó sử dụng công nghệ “nhận biết không gian” (spacial awareness) để đưa ra âm thanh sống động và trung thực dựa vào không gian xung quanh. HomePod còn tích hợp tính năng “Musicologist”, hoạt động được với Apple Music, cho phép bạn stream music. Thậm chí là nó còn có khả năng trả lời được những câu hỏi phức tạp hơn như “Người hát bài này là ai?” hoặc “Album này xuất bản từ năm nào?”

The HomePod sẽ cho người mua được lựa chọn giữa 2 màu là đen hoặc trắng – và có tích hợp Siri trong một case có hình dạng tựa như Amazon Echo / Google Home. Bạn có thể yêu cầu HomePod quản lí các thiết bị thông minh trong nhà cũng như kiểm tra thời tiết và đọc báo. Apple cho biết giá của sản phẩm sẽ là $349, và dịch vụ shipping sẽ được ưu tiên trước cho người mua tại US, UK, và Australia trong tháng 12 này. Hãng dự kiến sẽ tung ra thị trường các khu vực khác vào năm sau.

iMac Pro lộ diện với sức mạnh mới

Apple thông báo iMac Pro sẽ được nâng cấp với phiên bản Retina discụng play tốt hơn, khả năng xử lý graphics được cải thiện, Kaby Lake processors, và tích hợp cả USB-C. Ngoài ra, hãng cũng cho biết sẽ hỗ trợ cho những nội dung về VR. Trong buổi thuyết trình, Apple khoe sức mạnh của iMac Pro và các ứng dụng về VR thông qua một mini game về Darth Vader, với một thanh lightsaber và TIE fighter.

Ngoài ra phần cứng của iMac Pro phiên bản mới cũng sẽ được cải thiện với màn hình chuẩn 5K với khả năng làm mát, chip 8-core Xeon processor (nâng cấp được lên thành 18-core), hơn 4TB SSD, 128GB ECC memory, 4 Thunderbolt 3 port và 10GB Ethernet.

Phiên bản iMac mới này sẽ được niêm yết giá $1,099 với phiên bản 21.5-inch và $1,299 dành cho phiên bản 4K. Ngoài ra, Macbook cũng được nâng cấp và có giá $1,299 với MacBook Pro (bao gồm chip mới Kaby Lake processor). Hãng cho biết iMac Pro sẽ được bán ra với giá $4,999.

IOS 11- Hệ điều hành đầy quyền năng

Trong bản update lần này dành cho iOS, có khá nhiều cập nhật dành cho mảng interact và social với người dùng. Bao gồm, update cho Siri để cải thiện câu nói, khả năng phiên dịch ra nhiều ngôn ngữ và cũng như khả năng đưa ra lời khuyên dựa trên hành động của người dùng trên iPhone và iPad. Ngoài ra, hãng cũng cho biết iMessages giờ cũng sẽ được kết nối với iCloud, với khả năng trò chuyện đồng bộ (synchronized conversation) cho phép bạn xóa nội dung từ bất cứ thiết bị nào miễn là có cùng account. Giờ đây người dùng cũng có thể chi trả và nhận payment từ iMessage.

Khả năng Photo capture cũng được cải thiện, với low-light performance tốt hơn, kèm theo là tính năng edit Live Photo cho phép bạn chỉnh sửa ảnh ngay khi đang quay. Hơn nữa, với phiên bản control center mới cho phép khả năng sử dụng 3D Touch với nửa dưới màn hình một cách trơn tru.

Mặc khác, tính năng an toàn cũng được Apple chú trọng như nhận biết khi người dùng đang tập trung chạy xe và tự động chuyển chế độ tránh làm phiền. iOS 11 cũng cho phép người dùng truy cập Apple Music để xem bạn bè đang nghe nhạc gì cũng như vào shared playlist.

Giao diện của App Store cũng được thay đổi nhằm giúp discovery dễ dàng hơn cũng như thêm How To section để hướng dẫn người dùng cách sử dụng các app nổi tiếng. Ngoài ra, tính năng “App of the Day” cũng đã trở lại nhằm giúp tăng lượng người dùng cho App Store.

IOS 11 cho phép multi tasking với nhiều màn hình hiển thị cùng lúc

Trên iPad, iOS 11 tiếp tục cải thiện trải nghiệm multi tasking khi cho phép người dùng kéo một app từ dock lên screen nhằm chia màn hình hiển thị thành nhiều phần. Tương tự như MacBook, bạn có thể dùng touch để kéo và giữ folders, files, hoặc photos để bỏ chúng vào một app khác như Mail hoặc iMessage. Chữ viết tay từ Apple Pencil cũng có thể tìm thấy trong Notes app. Apple cho biết nó dùng “deep learning” để phân tích và xác định nét chữ.

Apple cũng nói sơ lược qua việc một số Files app bị leak vài giờ trước đó trước khi sự kiện bắt đầu, vốn chỉ là của một system quản lí cho việc sort files dựa trên size và date, tương tự như trên desktop và laptop.

ARKIT cho phép developer viết ra nhiều App ấn tượng hơn

Như Lauren Goode dự đoán, Apple vừa trình làng một phiên bản ARKit mới cho phép developer tạo ra augmented reality app dành cho iphone. ARKIT giúp tìm kiếm planes, track motion, và dự đoán scale và ambient lighting. Các ứng dụng như Pokémon Go sẽ dùng ARKit để cải thiện real-time renders.

Thay vì yêu cầu external hardware như Microsoft’s HoloLens, Apple ARKit  lại cho ra chất lượng ảnh khá ấn tượng thông qua thiết bị mà người dùng đã có là iPhone. Tuy nhiên, để đưa ra nhận xét chính xác hơn, chúng ta cần phải đợi đến khi nó được Apple tung ra thị trường.

Ra mắt Ipad pro 10.5-inch

Trong tương lai, chiếc iPad Pro sẽ được sản xuất ở 3 kích thước khác nhau. Ngoài việc sở hữu camera 12-megapixel tương tự như iPhone 7, cùng với camera selfie 7-megapixel, chiếc iPad Pro lần này còn hỗ trợ USB 3.0 và có thời lượng pin lên đến 10 giờ.

Cùng với đó, độ trễ của Apple Pencil sẽ giảm xuống chỉ còn 20 mili-giây với tính năng mới có tên gọi ProMotion. Ngoài ra, nó còn có khả năng tự điều chỉnh refresh rate dựa trên định dạng bạn đang theo dõi (video chuyển động nhanh hoặc hình ảnh tĩnh). Tính năng ProMotion cũng sẽ tăng gấp đôi refresh rate hiện tại, khiến nó tăng lên đến 120Hz

Phiên bản 64GB của chiếc iPad Pro 10.5-inch sẽ được ra mắt với giá $649 (khoảng 15 triệu đồng). Nếu đặt hàng vào lúc này, khách hàng sẽ nhận được sản phẩm sau khoảng 1 tuần.

Hệ điều hành MACOS mới sẽ được đặt tên là High Sierra

Phiên bản tiếp theo của hệ điều hành macOS sẽ được đặt tên là High Sierra. Apple cho biết khi tung ra hệ điều hành này, Safari sẽ có khả năng chặn site tracker và autoplay video. Bên cạnh đó, Apple cũng thêm một số tính năng điều chỉnh hình ảnh như curves để hỗ trợ những người dùng không đủ khả năng chi trả cho Adobe Photoshop. Ngoài ra, Apple cũng sẽ cho ra mắt những công cụ lọc tốt hơn để sort hình ảnh theo keyword hoặc gương mặt.

Cũng theo Apple, phiên bản macOS mới sẽ đi kèm với hệ thống quản lý tập tin mới với tốc độ ghi được tối ưu hơn. Một phiên bản Metal mới cũng sẽ được ra mắt để hỗ trợ công nghệ thực tế ảo, cùng với đó là một bộ Metal 2 kit dành cho developer.

WatchOS 4 với Siri WatchFace mới, tích hợp Fitness Coaching và App-Browsing UI mới

Một bản update dành riêng cho Apple Watch trong tương lai cũng được công bố với tính năng và khả năng hiển thị mới, giúp trải nghiệm user trở nên dễ dàng hơn. Ngoài ra còn có bản update tập trung vào fitness, bao gồm monthly challenge nhằm tăng tính tương tác cũng như cho phép người dùng chia sẻ thông tin về work out, lượng calorie tiêu hao và những thứ khác.

Ngoài ra, app mới cũng cho phép việc tìm kiếm bài hát dễ dàng hơn trên apple watch.

Techtalk via theverge

Tại sao các công ty Software Outsourcing hoạt động không giống những gì bạn nghĩ?

Bài viết của tác giả Filip Jaskiewicz cho Hongkiat.com. Filip là COO của Magently- công ty có uy tín và nhiều năm kinh nghiệm trong lĩnh vực thương mại điện tử Magento.

Các công ty outsourcing thường chỉ được xem như một “bể chứa nhân sự”,  vì không có sản phẩm riêng của mình. Tuy nhiên, là một phần của công ty tôi nghĩ rằng quan điểm này không còn phù hợp nữa. Trước đây, tôi từng đọc một bài báo của tác giả Yegor Bugayenko.

Nó cho thấy một quan điểm khác bên cạnh những quan điểm tranh luận về các dịch vụ phát triển web outsourcing (đặc biệt là các nước đang phát triển như ở Đông Âu), trong đó nhiều quan điểm được đưa ra khá thú vị.

Một mặt, ông bác bỏ các cáo buộc chống lại outsourcing, mặt khác, ông cố gắng chứng minh rằng outsourcing đã là quá khứ.

Outsourcing có thực sự kết thúc?

Tôi cũng muốn bày tỏ quan điểm của mình về cuộc tranh luận này với tư cách là một chuyên gia có 7 năm kinh nghiệm hoạt động trong lĩnh vực web development, 4 năm dẫn dắt đội ngũ phát triển web, cũng như là một doanh nhân chuyên tư vấn và làm việc với nhiều khách hàng của Magently .

Theo quan điểm của tôi, outsourcing vẫn hoạt động, nhưng theo một cách thức hoàn toàn khác cách đây 10 năm , điều mà những người từng tham gia vào cuộc tranh luận này đã không chú ý tới.

Ngành dịch vụ vẫn tiếp tục phát triển và chúng tôi cần phải theo kịp với nó. Quy luật thị trường không thay đổi, nhưng điều kiện kinh doanh và nhu cầu của khách hàng chắc chắn sẽ thay đổi

Công ty Outsourcing có trốn tránh trách nhiệm ?

Bugayenko tuyên bố rằng với các công ty Outsourcing không bao giờ có chuyện đôi bên cùng có lợi bởi mục tiêu của cả hai bên rất khác nhau. Như ông đã nói: “ Lợi ích doanh nghiệp của bạn  không thể phù hợp với lợi ích của đối tác Outsourcing .”

“Đó là lý do tại sao một khách hàng tốt với họ là khách hàng trả tiền. Không phải là khách hàng với một dự án thành công, cũng không phải là khách hàng có vấn đề được giải quyết thỏa đáng, càng không phải là khách hàng với chi phí tối ưu. Và cũng không phải là một khách hàng sử dụng công nghệ tốt nhất. Tất cả đều không phải. Khách hàng tốt nhất là người trả tiền, trả rất nhiều và trả đúng thời hạn. “

“Đó là nguyên nhân gốc rễ của tất cả mọi vấn đề với công ty outsourcing.”

Một số công ty outsourcing bạn có thể tham khảo:

Nó có thực sự là như vậy hay không?

Không hẳn là như vậy. Hãy so sánh thử việc đó với một vấn đề thường nhật chuyện đi ăn ngoài. Có phải chúng ta luôn thất vọng khi đi đến một nhà hàng thay vì tự chuẩn bị bữa ăn cho mình?

Nếu tuyên bố của Yegor được xem là hoàn toàn đúng đắn thì điều duy nhất mà quản lý nhà hàng nên quan tâm là kiếm tiền và trả lương cho nhân viên.

Họ sẽ không quan tâm liệu rằng  khách hàng của họ có hài lòng với bữa ăn và có   khoảng thời gian tuyệt vời hay không, điều đáng lưu tâm là họ có thể trả giá đắt như bị đau bụng sau bữa ăn. Đây có phải là cách nó hoạt động? Tất nhiên là không!

Khi ăn ngoài, bạn thuê việc chuẩn bị bữa ăn cho mình và (trừ khi bạn đi đến một nơi không ai muốn ăn) thường thì mọi người đều muốn bạn thưởng thức nó. Họ thực sự quan tâm tới việc cung cấp một bữa ăn ngon và làm cho bạn hài lòng với dịch vụ của họ. Ngày nay, nếu một công ty đối xử với khách hàng của họ như “cash cows- con bò vắt ra tiền”, thì thường không không tồn tại lâu. Cách tiếp cận như vậy dẫn đến các dự án thất bại, khách hàng không hài lòng, họ không bao giờ trở lại, trì hoãn thanh toán và hoàn trả.

Outsourcing có mang lại lợi ích cho khách hàng?

Một dự án tốt đòi hỏi sự hợp tác của tất cả các bên liên quan. Nó phải được thực hiện đúng, quản lý tốt và khách hàng phải nắm được toàn bộ quá trình từ lúc bắt đầu đến khi kết thúc. Tuy nhiên, điều quan trọng là một dự án tốt là dự án thương mại thành công cho khách hàng. Nếu khách hàng hài lòng với dịch vụ được cung cấp, và sau đó:

  • Họ sẵn lòng chi trả. Chúng ta nhận được phần thưởng xứng đáng cho những nổ lực của mình còn khách hàng cảm thấy rằng họ đã hưởng lợi từ sự hợp tác. Sự hài lòng và cảm giác an tâm khi đầu tư hợp lý có ý nghĩa quan trọng quyết định việc khách hàng của bạn có quay trở lại hay không.
  • Khách hàng truyền tai nhau, khi đó chúng ta có được khách hàng mới và uy tín cũng được tăng thêm.
  • Khách hàng quay trở lại. Cho dù họ muốn phát triển dự án của họ hay để bắt đầu một dự án mới thì việc quay  trở lại của khách hàng có ý nghĩa vô cùng to lớn.
  • Khách hài lòng là một thành công mà bất cứ doanh nghiệp nào cũng mong muốn, nó tạo nguồn động lực cho sự phát triển của bất cứ doanh nghiệp nào: từ các cửa hàng nhỏ  đến các xưởng đóng giày, nhà hàng và cả các công ty phát triển web.

Tất cả có phải chỉ vì tiền?

Các doanh nghiệp đều biết rằng việc cân đối giữa ngân sách và thời hạn không phải lúc nào cũng dễ dàng. Đặc biệt đúng đối với các công ty phát triển web, khi mà các dự án luôn tìm ẩn những yếu tố bất ngờ không mong muốn.

Yegor Bugayenko có lý lẽ riêng về cách thúc đẩy các nhà phát triển web:

Động lực duy nhất thúc đẩy bạn là tiền. Không có vấn đề gì. Dự án càng dài, thì càng tốt. Chất lượng code càng tệ thì càng có nhiều tiền để bảo trì. Càng có nhiều cuộc điện thoại, các cuộc họp, các sự kiện lãng phí thời gian càng tốt.  Càng có nhiều vấn đề kỹ thuật rắc rối càng tốt. Chỉ cần làm bất cứ điều gì để lấy được càng nhiều tiền từ khách hàng càng tốt.

Là quản lý nhóm phát triển web tại Magently trong nhiều năm và cho tới tận bây giờ,  tôi biết rằng với công thức trên sẽ chỉ mang lại những thiệt hại và mất mát to lớn đối với công ty mà thôi.

Tôi không thể tưởng tượng được việc bỏ mặt khách hàng ở giữa vũng lầy- khi mà khách hàng đã đầu tư hàng ngàn đô la vào dự án của họ (thường là từ khoản tiết kiệm của họ) rồi bị bỏ lại với đống code chưa hoàn chỉnh và một sản phẩm không hoạt động.

Chúng tôi luôn cung cấp tài liệu và giải thích mọi thứ cho khách hàng tại các buổi Pre-sale meeting để họ biết họ đang trả tiền cho cái gì, họ sẽ nhận những gì và họ có thể mong đợi gì từ sự hợp tác với chúng tôi.

Bất kỳ cách tiếp cận nào khác cũng sẽ là vô trách nhiệm và tôi tin rằng tôi không phải là người duy nhất nghĩ như vậy.

Trong thực tế nó giống việc ai đó nói rằng nếu một chiếc xe hơi thường xuyên bị  hư hỏng thì chủ nhân của nó sẽ phải mua các linh kiện  sửa chữa đắt tiền từ nhà sản xuất thay vì nghĩ đến việc mua một chiếc xe mới. Hay như việc một công ty creative agency liên tục tạo ra những chiến dịch không hiệu quả, điều đó khiến khách hàng của họ quay lại nhiều hơn.

Đơn giản là cách này không hiệu quả

Chìa khóa thành công nằm ở việc đó phải là một thương hiệu mạnh và thực sự đáng tin cậy. Một thương hiệu như vậy chỉ  được xây dựng dựa trên các sản phẩm tuyệt vời và dịch vụ xuất sắc. Lừa dối và chặt chém khách hàng sẽ chẳng đưa bạn đi tới đâu. Bởi vì thị trường cạnh tranh khốc liệt và sẽ chẳng có ai gắng bó với  bạn lâu dài.

Thời thế đang thay đổi

Sau tất cả những gì đã nói, tôi muốn trở lại vấn đề đã đề cập ở đầu: thời thế đang thay đổi và đó là cách Outsourcing hoạt động.

Đã qua rồi cái thời bạn có thể thuê một Developer  từ Ukraine hoặc Ba Lan, trả cho họ một đô la và kiếm 100.000 đô la cho sản phẩm của bạn. Tình hình kinh tế ở những quốc gia nổi tiếng về nguồn nhân lực giá rẻ đã thay đổi, lương theo giờ ngày càng tăng

Các công ty ở các nước đang phát triển trở nên tham vọng hơn và bây giờ họ có thể cạnh tranh với hầu hết các công ty khác trên thế giới

Họ không chỉ cung cấp nhân lực mà còn là một lựa chọn thay thế hoàn hảo về marketing, ý tưởng, thiết kế , khả năng ngôn ngữ,.. Bằng cách này, họ bỏ qua giai đoạn trung gian và bắt đầu hợp tác trực tiếp với khách hàng cuối cùng.

Họ tiếp thu các bài học kinh nghiệm về kinh tế,  bởi họ đọc cùng một cuốn sách, cùng tham gia các hội nghị và chia sẻ cùng một kiến ​​thức – chỉ đơn giản là ở những nơi khác nhau.

Các tập đoàn lớn vẫn đặt các văn phòng đại diện của họ tại các nước đang phát triển, tuy nhiên điều này không mang lại lợi ích cho các doanh nghiệp vừa và nhỏ. Chúng tôi đang chứng kiến ​​sự thay đổi nhóm đối tượng mục tiêu đối với các công ty như Magently – mục tiêu không phải là công ty IT từ một quốc gia giàu có, mà là khách hàng cuối cùng muốn chúng tôi quản lý các dự án của họ. Đây là bước tiến của các công ty outsourcing: bây giờ bạn không cần tìm kiếm một công ty trung gian thay bạn làm việc với nhà cung cấp nước ngoài, bạn có thể  trực tiếp thảo luận với nhà cung cấp về định hướng phát triển của công ty, bởi vì họ đã được hoàn thiện và sẵn sàng đáp ứng yêu cầu của bạn.

Tôi chắc chắn rằng đây là lý do tại sao các công ty trước đây sử dụng lao động giá rẻ từ nước ngoài bây giờ tin rằng outsourcing không còn ý nghĩa. Họ nói đúng – nó không hiệu quả với họ, bởi vì họ không phải là nhóm mục tiêu nữa.

Kết luận: Chúng ta đang ở đâu?

Tóm lại, tôi không nghĩ rằng các công ty outsourcing đã chết dù dưới bất kỳ phương diện nào. Tôi tin rằng nó đã thay đổi đáng kể và sẽ tiếp tục phát triển.

Các công ty outsoucing đã đi một chặng đường dài từ cung cấp nguồn nhân lực giá rẻ đến các đối tác bình đẳng trong cuộc thảo luận và trong thế giới ngày nay vị trí  của bạn không cản trở bạn lựa chọn những người tài năng bạn muốn làm việc cùng.

Vẫn có thể được tìm thấy các công ty outsourcing ở Ấn Độ hay Trung Quốc nếu bạn vẫn muốn giá rẽ, nhưng có lẽ sự lựa chọn đắt tiền hơn có thể đưa công ty của bạn lên một tầm cao mới và mang lại cho bạn một số cộng sự tuyệt vời.

Nguồn: blog.topdev.vn via hongkiat

Vietnam Mobile Day – Hẹn gặp lại ngày nắng đẹp!

Sáng ngày 03/06, sự kiện Ngày Hội Di Động Toàn Quốc chính thức khép lại với những dư âm khó quên giữa cơn nắng nóng đổ lửa ở trung tâm của mảnh đất miền Trung.

Tiếp nối hành trình kết nối cộng đồng Mobile, chia sẻ giá trị kiến thức và cập nhật xu hướng mới, ngày cuối cùng của Vietnam Mobile Day tại Đà Nẵng đã tiếp đón gần 1000 khách tham dự cùng lắng nghe chia sẻ đến từ các chuyên gia của Google, Microsoft, MasterCard…

Mở đầu sự kiện là topic Digital Transformation của diễn giả Francis Tuấn Anh – Giám đốc truyền bá công nghệ của Microsoft Việt Nam về ứng dụng Digital Transformation vào 4 giai đoạn Engaging Customers,  Empowering Employees, Optimizing Operations và Transforming Products. Với mỗi giai đoạn, anh Tuấn Anh lại đề cập đến những công nghệ mới như Advanced analytics, IoT, Realtime operations… đi kèm với các ứng dụng thực tế trong nhiều ngành nghề khác nhau tại Việt Nam và thế giới.

Tiếp theo chương trình là hàng loạt các topic khác, đi từ vĩ mô đến vi mô như ảnh hưởng của Digital, toàn cảnh Mobile app user tại Việt Nam, những ưu điểm nổi bật của Xamarin, 5 yếu tố ảnh hưởng đến doanh thu quảng cáo di động, cách monetize ứng dụng hiệu quả…

TopDev 发布于 2017年6月2日

Phần trình bày của diễn giả Nguyễn Anh Khoa

TopDev 发布于 2017年6月2日

Phần trình bày của diễn giả Francis Tuấn Anh

Như vậy, sau hơn 3 tuần “chinh chiến” khắp 3 miền đất nước, Vietnam Mobile Day – Ngày hội thường niên lớn nhất trong lĩnh vực ứng dụng di động đã nói lời tạm biệt với cộng đồng Developer, Marketer, Designer đang hoạt động trong lĩnh vực Mobile.

BTC hy vọng sự kiện đã góp phần cập nhật những kiến thức mới, chuyên sâu từ các diễn giả được chọn lọc mời từ các công ty công nghệ tiên phong, cùng đưa ngành công nghiệp Mobile đi lên, xứng tầm với sự phát triển chung của thế giới.

Bí kiếp giúp các coder tiến bộ thần tốc

Bí kiếp giúp các coder tiến bộ thần tốc

Thông thường, các bạn mới học lập trình sẽ thấy phần cơ bản rất dễ học như viết expressions, conditions, loops và object-oriented programming. Những site Code Academy, Code School còn giúp mọi chuyện đơn giản hơn nữa. Thế nhưng khi bị yêu cầu làm ra một site như trang Medium.com. Rất nhiều bạn gặp khó khăn.

Đó là bởi vì quá trình học cách tạo ra một ứng dụng hoàn chỉnh từ con số không sẽ tốn không ít thời gian. Bạn sẽ phải đầu tư công sức, xem qua một series video hoặc đọc hết ít nhất một quyển sách mới có thể hiểu hết cách làm.

Một số bạn được công ty đào tạo, cho bắt đầu với những project nhỏ và độ khó, thử thách tăng dần. Sau vài tháng, họ bắt đầu học được cách tạo ra ứng dụng dưới sự chỉ dạy và giám sát của sếp.

Nhưng vẫn còn một cách khác mà tôi gọi là cách của hacker. Dành cho những người không có sự kiên nhẫn để đọc hoặc xem hết một khóa học, sách. Họ học bằng cách vọc và thử nghiệm. Trong bài viết này, tôi sẽ chỉ bạn cách thức để làm được điều đó.

Hãy tự thử thách bản thân

Đừng chọn những project đã có sẵn mã nguồn code. Thay vào đó, tôi khuyên các bạn hãy nhắm tới các project thực thụ ngoài đời. Có thể nó đến từ một ý tưởng của người bạn. Hãy chủ động biến nó thành một project, tất nhiên với một phí nho nhỏ. Như vậy, bạn sẽ có động lực mà bạn của bạn cũng sẽ nghiêm túc trong việc này.  

Chia chúng ra và xử từng đứa một

Hãy cắt nhỏ project của bạn ra thành nhiều module nhỏ. Bạn sẽ cần cẩn thận khi chia những module này. Bởi các module đều có tính năng gì đó mà user có thể dùng. Với ví dụ là trang Medium, bạn có thể chia thành:

  1. User registration & login
  2. Story editor dành cho việc post bài
  3. Story lists
  4. Notifications
  5. Stats

Bạn có thể thấy project đã trở nên đơn giản hơn nhiều.

Hãy tạo những module nhỏ

Có tới 90% khả năng những mã nguồn của các module nhỏ này đã có sẵn (bạn có thể lấy từ nhiều nguồn mở khác nhau). Đây là điều hoàn toàn có thể chấp nhận được miễn là project của bạn xét tổng thể vẫn không phải là nguồn mở. Điều kì diệu là khi bạn kết nối tất cả các module lại với nhau và chứng kiến chúng hoạt động hòa hợp.

Vậy để tạo ra những module nhỏ thì bạn cần phải làm cho chúng thật sự hoạt động được. Vì vậy đừng suy nghĩ nhiều, trước hết cứ làm sao để nó chạy được đã. Sau đó thì cứ thử nghiệm và kiểm trả kết quả thu được. Đây là bước quan trọng nhất bởi quá trình học thật sự diễn ra từ đây. Nếu bạn vội vàng bỏ qua chỉ vì thấy nó chạy được thì sản phẩm là ra cũng chỉ là nửa vời. Hãy luôn chắc chắn rằng bạn hiểu được vì sao nó hoạt động.

So sánh

Sau khi bạn đã hiểu được cách thức thì Google sẽ là người cứu cánh cho bạn. Hãy search những framework tương tự và so sánh chúng với project của bạn. Tìm ra điểm mà bạn có thể cải thiện. Nhờ đó bạn sẽ học cách rút gọn code của mình, giúp cho chúng dễ đọc hơn và tăng hiệu năng cho ứng dụng.

Đừng để mình bị mắc kẹt

Bạn sẽ luôn gặp phải những vấn đề khó khăn, khiến bị mắc kẹt tại một thời điểm nào đó trong quá trình phát triển project. Có là do một lỗi nào đó hoặc đơn giản là nó không thể chạy được. Một lần nữa, Google sẽ cứu bạn nhờ vào khả năng tìm kiếm bá đạo. Có đến 99% khả năng, bạn sẽ tìm được phương pháp trên overflow. Còn nếu vẫn không có thì có lẽ do bạn xác định vấn đề vẫn chưa đúng. Lỡ xui xẻo nữa thì cứ up vấn đề đó lên StackOverFlow. Bạn sẽ được giúp trong vài tiếng đồng hồ.

Còn nếu bạn sử dụng open source frameworks. Thì hãy vào Github repo, cái động của developer. Và nếu framework đó có cộng đồng tốt thì vấn đề của bạn sẽ nhanh chóng được giải quyết.

Code Review

Tương tác và từ học sẽ chỉ giúp bạn được một phần thôi. Nếu bạn quen biết một coder kinh nghiệm thì hãy nhờ họ review cho code của bạn. Những lời nhận xét của họ quí giá như vàng vậy đó. Còn nếu không, bạn có thể post lên CodeReview.

Nguồn: blog.topdev.vn via hackernoon