Mọi người ứng dụng AI trong công việc và học hành đến đâu rồi? Ai có case nào cần support thì để lại comment nhé, ad sẽ hỗ trợ đến cùng.
VIN Academy - Đào Tạo Lập Trình Theo Dự Án
Vin Academy | Nơi đào tạo lập trình AI, lập trình mobile, lập trình IoT,… hướng thực hành theo dự án thực tại công ty
24/10/2018
Anh không làm Front-end thì thôi chứ mà đã làm là kỹ đến từng chi tiết nhé ^^
31/07/2018
Sự thật là vậy
------------------------
Với 3 năm kinh nghiệm trở lên cho vị trí Lập trình C #, bạn đã sẵn sàng ứng tuyển vào Vinsofts
Đăng ký ứng tuyển tại: http://bit.ly/2LvoihK
31/07/2018
Theo bạn thì cái nào "chất" hơn
----------------------------------------------
31/07/2018
Có anh em nào cuống Vim như mình không?
31/07/2018
Anh em nào có dư cáp mạng thì làm cái cho văn phòng trông tươi mát hơn nhé
-------------------------------------------------------------
31/07/2018
Kỹ năng search Google cũng không phải là dễ :v
31/07/2018
5 ngôn ngữ đang có nhu cầu tuyển dụng nhiều nhất
1. Java
Website chính thức của Java tuyên bố rằng hiện có hơn ba tỷ thiết bị chạy chương trình Java. Điều đó khiến Java trở thành một trong những ngôn ngữ lập trình phổ biến nhất trên thế giới.
Một lý do tại sao Java lại phổ biến là do sự phát triển nhanh chóng của nó. James Gosling, khi làm việc tại Sun Microsystems (hiện là Tập đoàn Oracle), đã giới thiệu Java vào năm 1995. Nó nhanh chóng được nhiều người biết đến nhờ tính đơn giản so với một ngôn ngữ cấp cao và khả năng triển khai trên nhiều thiết bị khác nhau mà không cần biên dịch lại mã nguồn.
Java đi kèm với một công cụ được gọi là Java Virtual Machine (JVM), cho phép bất kỳ chương trình Java hoặc một chương trình nào được biên dịch sang Java bytecode để chạy trên một máy tính có cài đặt JVM. Điều đó có nghĩa là bạn có thể viết một ứng dụng Java và chạy ứng dụng này trên bất kỳ thiết bị nào, từ thiết bị di động, máy tính để bàn, ô tô, tủ lạnh đến các thiết bị có cài đặt JVM.
Hơn nữa, Java hỗ trợ đa luồng, mạng và Unicode mà không cần thư viện bên ngoài. Java còn là ngôn ngữ chuyên về các tính toán chuyên sâu về mạng hoặc yêu cầu phân tích dữ liệu phức tạp. Vì lý do đó, Java là một trong những ngôn ngữ phổ biến nhất trong các gói xử lý dữ liệu lớn như Hadoop và Apache Spark. Đặc biệt, Big Data và Cụm máy tính hiện là một số lĩnh vực công nghệ sinh lợi nhất hiện nay.
Cuối cùng, Java còn có chức năng tương thích ngược. Điều đó có nghĩa là một đoạn mã bạn đã viết một vài năm trước sẽ hoạt động mà không cần phải biên dịch lại, giảm thiểu chi phí bảo trì mã.
Vậy còn chần chừ gì nữa mà không học Java ngay?
2. Python
Python là một ngôn ngữ có lịch sử đủ dài để phát triển thành một nền tảng để phát triển các ứng dụng máy tính.
Chương trình được ra mắt vào năm 1989 bởi Guido van Rossum – người kế thừa ngôn ngữ ABC. Trong thập kỷ qua, Python đã trờ thành một trong những ngôn ngữ lập trình phát triển nhanh nhất, được các công ty công nghệ lớn như Google sử dụng cho các sản phẩm cốt lõi của họ.
Một trong những yếu tố chính thúc đẩy Python trở nên phổ biến như ngày nay là khả năng đọc và linh hoạt của nó. Các câu lệnh Python gần giống với tiếng Anh nếu bạn có chút ít kiến thức về ngôn ngữ lập trình máy tính. Chính vì vậy, Python được những người mới bắt đầu ưa chuộng.
Thứ hai, Python có hệ thống thư viện hữu ích. Nếu bạn muốn phát triển một trang web, Python và framework Django đã tạo nên những ứng dụng tuyệt vời như Instagram, YouTube. Nếu bạn muốn tạo mạng nơ-ron nhân tạo, đi đâu cho xa khi đã có thư viện TensorFlow hoặc Theano.
Tất cả những tiện ích này đã làm cho Python trở thành ngôn ngữ dành riêng cho ngành tài chính và y tế. Nghĩa là bạn có thể làm việc trong các lĩnh vực này sau khi bạn học Python.
3. JavaScript
Bạn hãy biết rằng: nếu không có JavaScript, bây giờ sẽ không có Internet. Từ những khởi đầu khiêm tốn như động cơ cho trình duyệt web Netscape Navigator, JavaScript đã tạo được chỗ đứng trong sự nghiệp phát triển web.
Kể từ đó, JavaScript giữ vững vị trí của nó với vai trò là một trong những công nghệ về Internet cốt lõi. Hầu như mọi trang web đều sử dụng JavaScript. Nếu bạn học JavaScript, bạn sẽ không bao giờ bị thật nghiệp vì nhu cầu về website đang trên đà phát triển.
Hơn nữa, JavaScript đã chuyển từ trang web sang ứng dụng máy tính để bàn thông qua công cụ Runtime Node.js. Các ứng dụng JavaScript hiện đang sẵn sàng để tiếp nhận không gian ứng dụng trên máy tính để bàn và thậm chí cả không gian điện thoại thông minh trong tương lai gần.
4. PHP
PHP, giống như JavaScript, nổi lên với tư cách là một ngôn ngữ lập trình web tự động. Là một ngôn ngữ kịch bản, PHP đã khiến việc cung cấp nội dung từ cơ sở dữ liệu đến người dùng dễ dàng hơn bao giờ hết.
Các trang web như Facebook, Yahoo và Wikipedia sử dụng PHP do tính đơn giản, giấy phép nguồn mở và khả năng tương tác với các nền tảng khác nhau. Đối với các lập trình viên mới, PHP đơn giản là dễ học và dễ tiếp cận.
5. C #
C # vinh dự khi có tên trong danh sách này. Trong những năm qua, C # đã cải thiện nhiều chức năng và khả năng hơn, trở thành một đối thủ thực sự với các ngôn ngữ lập trình phổ biến. C # mang đến những ngôn ngữ khác như C và C++ cho thế giới hiện đại. Đặc biệt, Microsoft Windows rất chuộng ngôn ngữ này đấy.
Hơn nữa, ngôn ngữ này nhanh chóng thay thế các ngôn ngữ phía máy chủ khác để phát triển các ứng dụng web chạy trên máy chủ Windows. C # đi kèm với một thư viện rộng lớn. Và nhà phát triển lẫn nhà tuyển dụng đều muốn ứng viên của họ biết chút ít về C # đấy!
30/07/2018
Giải mã về 3 loại lập trình web: Front-End, Back-End và Full Stack
Bạn mở một tab trình duyệt mới, gõ vào một địa chỉ URL, và nhấn enter. Trang web được tải ngay lập tức. Nó gần như làm bạn nín thở bởi layout gọn gàng, các trang được xây dựng tốt, và hình ảnh rất ấn tượng. Người chịu trách nhiệm cho mọi phần của trải nghiệm đó là ai? Đó chính là các nhà phát triển web.
Tính đến tháng 11 năm 2014, thế giới Internet chứa hơn 680 triệu trang web. Và đang ngày càng tăng lên. Hôm nay chúng ta sẽ nói về một số công việc đối với các lập trình viên web, những người chịu trách nhiệm cho việc lập trình, xây dựng, phân tích, và duy trì tất cả những trang web đó.
Các trang web giờ đây là một thành phần quan trọng cho bất kỳ doanh nghiệp nào để có thể cạnh tranh trên thị trường. Các xu hướng phát triển web và những hiệu ứng tốt nhất thay đổi hầu như theo mùa, vì vậy các lập trình viên không bao giờ lo thiếu việc.
Nhưng làm thế nào để biết chính xác có những loại công việc phát triển web nào để tìm kiếm và đào tạo? Nếu bạn dạo quanh các trang web việc làm hoặc duyệt qua các khóa học trực tuyến, bạn có thể biết rằng phát triển web được chia nhỏ thành 3 mối quan tâm chính: front-end, back-end, và full stack.
Nếu bạn đã biết qua HTML, JavaScript, hoặc có thể một chút Python, nhưng bạn không chắc chắn lắm về con đường để đi tiếp, thì bài viết này là dành cho bạn.
1. Lập trình viên Front-End
Phần front-end của một trang web là phần tương tác với người dùng. Tất cả mọi thứ bạn nhìn thấy khi điều hướng trên Internet, từ các font chữ, mà sắc cho tới các menu xổ xuống và các thanh trượt, là một sự kết hợp của HTML, CSS, và JavaScript được điều khiển bởi trình duyệt máy tính của bạn.
Các kỹ năng và công cụ
Các lập trình viên front-end chịu trách nhiệm cho giao diện của một trang web và kiến trúc những trải nghiệm của người dùng. Để thực hiện được những mục tiêu đó, các lập trình viên front-end phải tinh thông 3 ngôn ngữ chính: HTML, CSS, và ngôn ngữ lập trình JavaScript. Ngoài việc thông thạo các ngôn ngữ đó, các lập trình viên front-end cần phải làm quen với các framework như Bootstrap, Foundation, Backbone, AngularJS, và EmberJS, để đảm bảo nội dung luôn hiển thị tốt trên mọi thiết bị khác nhau, và các thư viện như jQuery và LESS, đóng gói code vào trong một hình thức giúp tiết kiệm thời gian và hữu dụng hơn. Rất nhiều công việc dành cho lập trình viên front-end cũng yêu cầu kinh nghiệm với Ajax, một kỹ thuật được sử dụng rộng rãi bằng cách dùng JavaScript để cho phép các trang load một cách tự động bằng cách tải dữ liệu máy chủ ở phần background.
Sử dụng những công cụ này, các lập trình viên front-end làm việc chặt chẽ với các designer hoặc nhà phân tích trải nghiệm người dùng để biến những mockup, hoặc wireframe, từ phát triển tới sản phẩm thực tế. Các lập trình viên front-end giỏi cũng có thể xác định chính xác các vấn đề cụ thể trong trải nghiệm của người dùng, cung cấp các khuyến nghị và giải pháp hệ thống hóa để ảnh hưởng đến thiết kế đó. Một điều quan trọng là họ có khả năng hợp tác với những nhóm khác trong công ty để hiểu rõ mục đích cụ thể, nhu cầu và cơ hội, và sau đó thực hiện theo những chỉ dẫn đó.
Công việc này bao gồm rất nhiều trách nhiệm, nhưng nó là việc rất đáng để làm. "Tôi là một người làm kỹ thuật, nhưng vẫn là một người có thị giác, và có thể thao tác với những gì chúng ta thấy và tương tác với các nền tảng kỹ thuật số thông qua việc đánh dấu và viết mã một cách tự nhiên," Mikey Ilagan là một lập trình viên front-end với 8 năm kinh nghiệm cho biết. "Vì điều đó, tôi rất thích có khả năng tạo ra một ảnh hưởng lên giao diện người dùng, các khía cạnh của một ứng dụng hoặc trang web mà người dùng tương tác và nhìn thấy."
Nói chung, một lập trình viên front-end chịu trách nhiệm cho thiết kế nội thất của một ngôi nhà đã được xây dựng bởi một lập trình viên back-end. Các hương vị và phong cách trang trí được quyết định bởi chủ nhà. Theo Greg Matranga, Giám đốc tiếp thị sản phẩm tại Apptix, nói về cả hai nhóm lập trình viên front-end và back-end mà ông giám sát, "Các lập trình viên làm việc trên front-end đôi khi hào hứng nhiều hơn về những gì họ làm bởi vì họ thực sự có thể tận dụng khả năng sáng tạo của mình."
Ví dụ
Tất cả mọi thứ bạn đang nhìn thấy trên trang web này ngay bây giờ đều có thể được thực hiện bởi một lập trình viên front-end. Một designer tạo ra logo và đồ họa, một photographer cung cấp hình ảnh, một copywriter viết nội dung. Nhưng một lập trình viên front-end kết hợp tất cả những mảnh ghép đó lại và chuyển nó thành ngôn ngữ web, và tạo ra trải nghiệm mà bạn có khi duyệt qua mỗi trang. Để lấy một ví dụ cụ thể, khi bạn cuộn con chuột lên xuống ở trang chủ của website Udacity. Bạn có để ý thấy rằng chữ "U" biến mất rồi xuất hiện trở lại không? Đó là tác phẩm của một lập trình viên front-end.
2. Lập trình viên Back-End
Thế nhưng điều gì giúp phần front-end của một trang web có thể hoạt động được? Tất cả dữ liệu sẽ được lưu trữ ở đâu? Đó là phần việc của back end. Phần back end của một trang web bao gồm một máy chủ, một ứng dụng, và một cơ sở dữ liệu. Một lập trình viên back-end xây dựng và duy trì công nghệ mà sức mạnh của những thành phần đó, cho phép phần giao diện người dùng của trang web có thể tồn tại được.
Các kỹ năng và công cụ
Để khiến cho máy chủ, ứng dụng, và cơ sở dữ liệu có thể giao tiếp được với nhau, các lập trình viên back-end sử dụng các ngôn ngữ server-side như PHP, Ruby, Python, Java, và .Net để xây dựng một ứng dụng, và các công cụ như MySQL, Oracle, và SQL Server để tìm kiếm, lưu trữ, hoặc thay đổi dữ liệu và phục vụ trở lại tới người dùng trong phần front-end. Các công việc tuyển dụng lập trình viên back-end cũng thường yêu cầu kinh nghiệm về các framework PHP như Zend, Symfony, và CakePHP; có kinh nghiệm với các phần mềm quản lý phiên bản như SVN, CVS, hoặc Git; và kinh nghiệm với Linux trong việc phát triển và triển khai hệ thống.
Các lập trình viên back-end sử dụng những công cụ này để tạo ra hoặc đóng góp vào các ứng dụng web với code sạch, portable, và được viết tài liệu chu đáo. Nhưng trước khi viết code, họ cần phối hợp với bên liên quan về nghiệp vụ để hiểu những nhu cầu cụ thể, sau đó chuyển thành những yêu cầu kỹ thuật và đưa ra các giải pháp hiệu quả nhất cho việc kiến trúc công nghệ.
"Tôi luôn ưa thích việc phát triển back-end bởi vì tôi yêu công việc thao tác với dữ liệu," JP Toto là một lập trình viên back-end lâu năm, hiện đang làm việc tại công ty Wildbit cho biết. "Thời gian gần đây, các thư viện API public và private đã trở thành một phần thiết yếu của việc trao đổi dữ liệu giữa các thiết bị di động, các trang web, và các hệ thống được kết nối khác. Việc làm ra các API khiến cộng đồng cảm thấy hữu ích là một phần tạo ra sự thỏa mãn trong công việc của tôi."
Ví dụ
Khi bạn điều hướng tới trang web này, các máy chủ của Udacity gửi thông tin tới máy tính hoặc thiết bị di động của bạn, rồi chúng được chuyển thành trang web mà bạn đang nhìn thấy ngay bây giờ. Quá trình đó là kết quả công việc của một lập trình viên back-end. Ngoài ra, nếu bạn ghi danh vào một khóa học của Udacity hoặc một khóa nanodegree, việc lưu trữ các thông tin cá nhân của bạn - và thực tế là mỗi lần bạn quay trở lại trang web và đăng nhập, thì dữ liệu của bạn sẽ được gọi trở lại - đó là một phần công việc của lập trình viên back-end.
3. Lập trình viên Full Stack
Thường thì không có một sự phân biệt rõ ràng trắng đen giữa phát triển front-end và back-end. "Các lập trình viên front-end thường cần phải tìm hiểu thêm những kỹ năng back-end, và ngược lại, đặc biệt là trong giai đoạn kinh tế hiện nay," Matranga nói. "Các lập trình viên cần phải có nhiều kỹ năng khác nhau và có kiến thức tổng hợp."
Lập trình viên full stack là những người đa năng.
Khái niệm lập trình viên full stack là vai trò đã được phổ biến cách đây 4 năm bởi bộ phận kỹ thuật của Facebook. Ý tưởng là một lập trình viên full stack có thể làm việc liên chức năng trên "stack" công nghệ, tức là cả front end lẫn back end.
"Làm việc chuyên nghiệp trên cả server side và client side mở ra nhiều cơ hội," Federico Ulfo, một lập trình viên full stack tại công ty Grovo nói. Nhưng, dĩ nhiên, phát triển full stack không phải là không có những thách thức của nó. "Để làm ra một món ăn ngon, bạn có thể giỏi nấu hoặc giỏi nướng, nhưng để làm chủ cả hai kỹ năng này thì cần có thời gian và kinh nghiệm. Và tôi không nói về việc cứ làm theo một công thức nào đó, vì bất kỳ ai cũng có thể làm như vậy. Tôi đang nói về việc có các thành phần nguyên liệu để chuẩn bị cho một cái gì đó thực sự tốt."
Các kỹ năng và công cụ
Các lập trình viên full stack làm việc giống như các lập trình viên back-end ở phía máy chủ của lập trình web, nhưng họ có thể cũng thành thạo các ngôn ngữ front-end để điều khiển nội dung trông như thế nào ở phía giao diện của trang web. Họ là những người đa năng.
Để minh họa sự phức tạp ngày càng tăng của phát triển full stack, sau đây là một ví dụ về những yêu cầu mà một full stack phải có: HTML5/CSS3, ASP.NET, PHP, JSP, iOS, Android, Scala, MongoDB, Amazon, Machine Learning,...
Bất kể là sử dụng công cụ xác định nào, tùy thuộc vào dự án và khách hàng, các lập trình viên full stack nên có kiến thức ở mọi cấp độ về cách web hoạt động: cài đặt và cấu hình các máy chủ Linux, viết các API server-side, nhảy vào phần JavaScript client-side của một ứng dụng, và cũng cần có "con mắt thẩm mỹ" với CSS.
Sử dụng những công cụ này, các lập trình viên full stack cần có khả năng ngay lập tức xác định trách nhiệm của client-side hay server-side, và trình bày rõ ràng về mặt ưu nhược điểm của các giải pháp khác nhau.
Ví dụ
Một lập trình viên full stack sẽ chịu trách nhiệm cho toàn bộ luồng trải nghiệm của bạn với bài viết blog này, từ thời gian tải và bố cục cho tới tính tương tác và cấu trúc của nó.
30/07/2018
Thường mới ra trường, ta luôn có những dự định khủng khiếp vượt qua giới hạn của bản thân
30/07/2018
6 thói quen cần có nếu bạn muốn “thoát kiếp” Junior
1. Đừng quá vội tối ưu code
Hồi mới bắt đầu vào nghề lập trình, cứ mỗi lần “tém” được vài dòng code thành một dòng duy nhất, tôi lại ngồi ngây ngô tự trầm trồ mình “bá đạo” ra sao. Tôi sẽ xóa bay hết tất cả khoảng trống và comment đã viết trước đó; nest một đống function call lại với nhau để thay cho các biến đã đánh dấu rõ ràng, và đủ thứ trò “màu nhiệm” khác. Cứ viết được đoạn nào, tôi sẽ tìm mọi cách tối ưu đoạn đó, lớn hay nhỏ mặc kệ.
Viết ‘code cho rõ ràng’ còn quan trọng hơn là ‘code khôn (vặt)’. Đây là bài học đắng lòng tôi rút ra được khi phải quay lại project cũ bị bỏ ngõ trong 6 tháng trời. Lúc ấy, trước khi bắt tay vào thực hiện thay đổi, tôi phải ngồi mòn mông, đọc đi đọc lại xem thử hồi đó mình viết cái quái gì. Bỗng nhiên, tôi chả thấy hồi đó mình “bá đạo” ở chỗ nào cả.
2. Không bao giờ hack framework
Là lập trình viên, ai cũng bị ám ảnh bởi deadline liên tục bám dai như đỉa (chuẩn bị phiên bản chốt cho project, hay chuẩn bị public demo thì stress khỏi phải nói). Deadline ngày càng sát, và còn biết bao nhiêu code để làm; và bạn bắt đầu tìm đường tắt. Đôi khi, tình thế bắt buộc, và ta chắn chắn có thể refactor ngay sau đó, miễn là refactor cho “đúng cách”.
Tuy nhiên, hack các framework như Bootstrap hay jQuery chưa bao giờ là “lối tắt” cả. Hiển nhiên, cách làm này có thể giúp bạn chạy deadline rất nhanh, nhưng khi bạn muốn fix thì lại là một câu chuyện hoàn toàn khác. Hãy tính đến tình hình tệ nhất đi, nếu bạn đã nhận lời của khách hàng thêm một tính năng mà không cách nào có được từ việc viết thêm code mới, mà chỉ khi thay đổi files framework mới có thể, Lúc này bạn chỉ còn nước kêu trời.
3. Thường xuyên refactor
Tiếp tục nói về “đường tắt”, Tập hợp tất cả các hack lại một chỗ bằng file shame.css cũng là một ý hay. (Bạn hoàn toàn có thể áp dụng ý tưởng này cho các non-web projects.) Khi đã tạm đối phó được với deadline đầy áp lực, bạn hoàn toàn có thể xóa hết “nỗi nhục” và viết lại code cho đúng. Ngay cả khi tôi không tạo quick hack, tôi vẫn dành chút thời gian để xem lại, đối chiếu, và refactor. Ví dụ, khi bạn đọc lại một số đoạn code đầu tiên đã viết, code vẫn còn dễ hiểu chứ? Khi project dần phình to, thói quen này lại càng quan trọng.
Bạn nên refactor vào sáng sớm, hoặc vào đầu tuần. Lúc này, bạn sẽ có cách nhìn mới hơn, đồng thời cũng đây cũng là bước lấy đà trước khi tiếp tục nhảy trở lại vào workflow.
4. Hãy nhớ dùng revision control
Nếu bạn vẫn chưa dùng qua revision control (quản lý phiên bản), hãy bắt đầu ngay luôn đi. Github có cung cấp công cụ miễn phí, hoặc thu phí rất hợp lý (nếu nhu cầu của bạn gia tăng). Viết code không có revision control cũng như lái xe mà không thắt dây an toàn vậy. Sau một đoạn thời gian, mọi thứ vẫn ổn, nhưng khi trục trặc bắt đầu xuất hiện, hậu quả sẽ vô cùng nghiêm trọng.
Tôi đã từng thấy nhiều project với lối code “một người một ngựa” vô cùng bất cẩn, nếu họ có dùng đến revision control, có lẽ công việc đã nhanh hơn nhiều.
5. Dành thời gian học hỏi
Khi bạn phải gồng mình chạy từ deadline này đến hết deadline khác, thời gian dành cho học tập quả thật xa xỷ. Tuy nhiên, lập trình viên nếu không học tập, thì bị tụt hậu là không thể tránh khỏi. Kiến thức càng nhiều, ta càng có thể làm việc hiệu quả và năng suât hơn, phạm ít sai lầm hơn. Khi làm việc nhanh hơn, ta lại có thêm nhiều thời gian cho cuộc sống và phát triển sự nghiệp.
6. Luôn luôn tham khảo code review
Khi hoàn thành tác phẩm của mình, đừng ngần ngại đi hỏi ý kiến “dạo” xem thử phản ứng của mọi người ra sao. Dù đó là đồng nghiệp, thầy cô, cấp trên, hay bạn bè (hiển nhiên phải biết code); ý kiến của họ đều có giá trị vô cùng to lớn. Với những góc nhìn và quan điểm khác nhau, bạn sẽ vô cùng ngạc nhiên trước những giải pháp “kỳ lạ” mà bạn chưa nghĩ đến trước đây.
Click here to claim your Sponsored Listing.
Location
Category
Website
Address
Số 8 Phan Văn Trường
Hanoi
100000