Lập Trình

Duyệt các bài viết được gắn thẻ Lập Trình

1677 bài viết

Lập trình viên nên HỌC NHIỀU HƠN một ngôn ngữ lập trình?

Lập trình viên nên HỌC NHIỀU HƠN một ngôn ngữ lập trình?

Bài viết được sự cho phép của blogchiasekienthuc.com Chào anh em, có lẽ việc học một ngôn ngữ lập trình nào đó là bắt buộc nếu như anh em có ý định làm về IT nói chung, hay làm về lập trình nói riêng. Thực ra nếu dùng từ “bắt buộc” là không đúng, vì thực tế có nhiều hướng đi trong ngành IT không yêu cầu anh em phải nắm rõ một ngôn ngữ lập trình nào đó. Nhưng cũng giống như việc ăn cơm, nếu như anh em biết một ngôn ngữ lập trình thì nó cũng giống như kiểu anh em có một đôi đũa trong tay vậy, và mọi việc sẽ trở nên dễ dàng hơn rất nhiều. 10 lý do cho thấy tại sao bạn nên theo học ngôn ngữ lập trình Java 4 ngôn ngữ phát triển game indie phổ biến Nhưng liệu lập trình viên có nên học nhiều hơn một ngôn ngữ lập trình hay không? Đã có rất nhiều ý kiến trái chiều xoay quanh vấn đề này, vậy nên trong bài viết ngày hôm nay mình sẽ đưa ra 5 lý do để các bạn nên học nhiều hơn một ngôn ngữ lập trình. Do là ý kiến chủ quan của mình nên có thể đúng với người này, không đúng với người khác mong anh em góp ý nha. #1. Rèn luyện khả năng tiếp cận công nghệ mới Anh em làm về IT thì biết rồi đấy, công nghệ mới thay đổi liên tục từng giây. Nhiều khi chưa kịp làm chủ công nghệ này thì đã có công nghệ khác tốt hơn và tối ưu hơn rồi. Tất nhiên, việc chạy theo công nghệ không phải lúc nào cũng tốt, nhưng ngược lại, cứ khư khư mãi...

By stationd
Hướng dẫn và mô phỏng thuật toán sắp xếp Selection Sort

Hướng dẫn và mô phỏng thuật toán sắp xếp Selection Sort

Bài viết được sự cho phép của tác giả Phạm Công Sơn Chọn phần tử nhỏ nhất trong n phần tử ban đầu, đưa phần tử này về vị trí đúng là đầu tiên của dãy hiện hành. Sau đó không quan tâm đến nó nữa, xem dãy hiện hành chỉ còn n-1 phần tử của dãy ban đầu, bắt đầu từ vị trí thứ 2. Lặp lại quá trình trên cho dãy hiện hành đến khi dãy hiện hành chỉ còn một phần tử. Dãy ban đầu có n phần tử, vậy tóm tắt ý tưởng thuật toán là thực hiện n-1 lượt việc đưa phần tử nhỏ nhất trong dãy hiện hành về vị trí đúng ở đầu dãy. Một vài “trick” khi sử dụng Xpath và CSS selector trong Selenium Download, Export file tự động với Selenium Webdriver Các bước thực hiện thuật toán 1. Chọn phần tử đầu tiên i = 0 2. Tìm phần tử a[min] nhỏ nhất trong mảng từ a[i] tới a[n]. Với n là độ dài của mảng 3. Hoán đổi vị trí a[i] với a[min] 4. Tiếp tục chọn phần tử i = i + 1 và quay về bước 1 Mã nguồn được thực hiện trên javascript Tạo dãy số ngẫu nhiên để mô phỏng sắp xếp Tổng số Tạo dãy số 93 93 10 40 28 30 12 16 71 26 ? ? ? Tốc độ Thực hiện sắp xếp Mã nguồn được thực hiện trên javascript var SelectionSort = function () { $.extend(this, new SortX()); this.name = "SelectionSort"; this.onCreateScripts = function (array, scripts) { var $this = this; var addScript = function (a1, a2, action) { scripts.push($this.createScript0(a1, a2)); // Script lấy ra 2 số cần so sánh scripts.push($this.createScript1(a1, a2)); // Script để thực hiện so sánh giữa 2...

By stationd
Có cần bằng cấp về khoa học máy tính để được làm việc trong lĩnh vực công nghệ?

Có cần bằng cấp về khoa học máy tính để được làm việc trong lĩnh vực công nghệ?

Tác giả: Dave Gray Nếu muốn tìm hiểu và gia nhập lĩnh vực công nghệ thông tin, có lẽ không ít người trong số chúng ta đã nghe đến việc cần phải có chứng chỉ hay bằng cấp liên quan đến lĩnh vực này, trong số đó có những loại bằng liên quan đến ngành khoa học máy tính. Tuy nhiên, có thật sự như vậy không? 1. Những điều bạn cần biết nếu đang xem xét học thêm một tấm bằng Bạn nên tập trung vào những gì bạn thật sự muốn làm. Lên một kế hoạch cụ thể và biến nó thành hành động để đạt được loại bằng cấp mà mình mong muốn. Nếu bạn không tập trung vào những gì bạn muốn làm, bạn có thể lãng phí tiền bạc và thời gian (điều này thậm chí còn có giá trị hơn) để tham gia các lớp học mà bạn không hứng thú và tốn rất nhiều tiền bạc. Hãy xác định xem bạn thật sự muốn làm gì? Tôi học đại học ngay sau khi tốt nghiệp trung học vì bố mẹ tôi nhất quyết không đồng ý cho tôi theo đuổi con đường riêng của mình. Tôi đã kết thúc việc thay đổi chuyên ngành nhiều lần trong 4 năm rưỡi vì tôi thật sự không tìm thấy được đam mê trong chúng. Tôi muốn trở thành một nhạc sĩ trên con đường tương lai với một ban nhạc chứ không phải là một sinh viên. Cha mẹ tôi cần để cho tôi tìm thấy chính mình, tôi nghĩ vậy. Xem thêm các việc làm tuyển dụng Tester HCM hấp dẫn tại Station D 2. Khám phá giá trị của bản thân Tương tự như vậy, tôi nghĩ học đại học để khám phá...

By stationd
Thói quen viết code an toàn trong khi xây dựng ứng dụng PHP

Thói quen viết code an toàn trong khi xây dựng ứng dụng PHP

Bài viết được sự cho phép của tác giả Lê Chí Dũng Bất cứ khi nào bạn xây dựng một hệ thống xong xui và hệ thống đang chạy ngon lành đều bị phá hoại vào ngày đẹp trời nào đó.!? Vì lý do bla, bla,… gì đó họ sẵn sàng dùng mọi cách phá hoại dự án kỳ công của bạn chính vì thế xây dựng code an toàn từ lúc xuất xưởng là cần thiết, hãy áp dụng thói quen này để đảm bảo rằng các ứng dụng của bạn là an toàn mức cao nhất có thể nhé. Kiểm tra hợp lệ đầu vào (validate ngoài form) Bảo vệ post form (validate trong file xử lý) Bảo vệ hệ thống file (ghi logs khi phát sinh tải file mà mình giới hạn) Bảo vệ cơ sở dữ liệu (Chống lại sự tấn công SQL INJECTION) Bảo vệ dữ liệu phiên làm việc (đảm bảo hệ thống luôn chạy tốt) Bảo vệ chống lại các sơ hở của ứng dụng lệnh xuyên các trang (Cross-Site Scripting – XSS) Bảo vệ chống lại các giả mạo yêu cầu xuyên các trang (Cross-Site Request Forgeries – CSRF) 10 Frameworks tốt nhất hiện nay cho PHP Kiểm tra hợp lệ đầu vào (validate ngoài form) Đây là quy tắc cơ bản trong lập trình và nó cũng có 4 bước cơ bản, bạn làm theo thì chắc chắn sẽ K.O. Lập ra danh sách hợp lệ(while list) vs bất hợp lệ (black list) Luôn luôn kiểm tra hợp lệ trong black list. Kiểm tra kiểu dữ liệu đúng. ví dụ như là các số, chuỗi,… Trong quá trình xử lý danh sách bất hợp lệ cần dùng hàm thoát để giảm tải quá trình xử lý. Tuy nhiên hiện nay các...

By stationd
YAML là gì?

YAML là gì?

Bài viết được sự cho phép của tác giả Lê Chí Dũng YAML là gì? YAML là 1 định dạng dũ liệu trung gian được thiết kế để người dùng và các ngôn ngữ lập trình cùng hiểu được. YAML được dùng vào mục đích tương tự JSON, XML nhưng nó lại có nhiều tính năng nổi bật hơn vì cấu trúc dữ liệu linh hoạt hơn, hỗ trợ nhiều ngôn ngữ lập trình, diễn đạt và mở rộng dữ liệu hơn và dễ sử dụng vì khá có nhiều kiểu dữ liệu lập trình. chi tiết tại http://www.yaml.org/ Yaml cho web developer "Bắt đầu từ vị trí dev, làm tốt sẽ được trao cơ hội trở thành leader" Ví dụ về 1 đoạn YAML được biểu diễn như sau: - name: dung mail: me@lcdung.top - name: admin mail: admin@lcdung.top http://yaml-online-parser.appspot.com/ Là 1 trang chuyển đổi YAML sang JSON. Bạn nên dùng trang này trong lúc đọc sẽ nhanh hiểu hơn. YAML dùng làm gì? Tương tự JSON hay XML, YAML có thể dùng để chứa đựng thông tin ở dạng text. Dùng cho các file config, lưu giá trị hằng… YAML và JSON – JSON là YAML, nói cách khác JSON có thể đọc được bởi các trình đọc YAML, điều ngược lại không đúng. – JSON đáp ứng tốt hơn mục đích trao đổi dữ liệu ( thông qua AJAX…), YAML để xử lý các dữ liệu offline (file config…). Chắc vì JSON thường được xử lý nhanh hơn ( http://stackoverflow.com/questions/2451732/how-is-it-that-json-serialization-is-so-much-faster-than-yaml-serialization-in-p ) YAML và XML – YAML không có các thẻ thuộc tính như XML nhưng thay vào đó nó hỗ trợ các kiểu khai báo để xử lý dữ liệu. Ví dụ 1 đoạn XML < user id = " babooey " on = " cpu1 "...

By stationd
Flask python là gì? – Những điều cần biết

Flask python là gì? – Những điều cần biết

Flask Python WTF, xin lỗi anh em nhưng không có gì là bậy bạ ở đây nha. FlaskWTF mà F ở đây là Forms. Ông này là một plugin hỗ trợ integration giữa Flask và WTForms. Ông WTForms lại là form validation và form render viết bằng Python. Ối dồi sao cái tên nhạy cảm thế. Bậy nào bậy nào À mà giật tít vậy thôi chứ bài viết này tập trung nhấn nhá, nhấn tới nhấn lui và giải thích về Flask Python nha. 1. Flask Python là gì? Flask Python là web framework (giúp anh em xây dựng và phát triển web application). Framework thì anh em biết rồi, thay vì phải dựng trăm thứ bằng tay thì framework sẽ xử giúp anh em. Cứ xài là có, cứ cần là dùng. Flask Python giúp phát triển web nhanh hơn, dễ dàng hơn. Nói chung chung vậy chứ cũng phải tổng kết lại một vài ý ha. Đầu tiên Flask xây dựng trên ngôn ngữ Python Flask xây dựng một phần core nhỏ gọn, dễ dàng mở rộng gọi là microframework Microframework này của Flask tất nhiên không bao gồm trong đó phần ORM (Object Relational Manager). Core chỉ là core và nó chứa những thứ cơ bản nhất. Flask có nhiều thứ hay ho như url routing, template engine (kỹ hơn sẽ nói ở phần sau nha anh em). Xin mạn phép đá qua tí về microframework. Sợ là sợ đôi khi đọc microframework anh em lại tò mò. Mà tò mò lại không nói ra thì cũng dở. Nên thôi cứ viết ra đây cho anh em. Python là gì? Tổng hợp kiến thức cho người mới bắt đầu 2. Microframework Anh em cứ tách keywork ra thành micro (nhỏ) và framework. Hai thứ này làm...

By stationd
Sử dụng Lombok để rút gọn code trong Java

Sử dụng Lombok để rút gọn code trong Java

Bài viết được sự cho phép của Tạp chí Lập trình Giới thiệu Lombok là một thư viện Java giúp sinh các mã getter & setter tự động. Bên cạnh đó còn hỗ trợ sinh các hàm khởi tạo (constructor) với tham số, hoặc không có tham số. Nếu là lập trình viên Java, chắc hẳn ai cũng biết getter/setter, constructor. Với những lớp mô tả dữ liệu (Entity class), chúng ta thường lặp lại các thao tác tạo mã getter/setter và constructor một cách nhàm chán. Lombok giúp mã ngắn gọn hơn trong những trường hợp này. Tuyển dụng lập trình viên Java lương cao Hãy xem ví dụ sau! Giả sử, chúng ta xây dựng chương trình quản lý danh sách việc cần làm (Todo List). Lớp mô tả dữ liệu Todo sẽ có 2 thuộc tính: title, complete . public class Todo { private String title; private boolean complete; public Todo() { } public Todo(String title, boolean complete) { this.title = title; this.complete = complete; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public boolean isComplete() { return complete; } public void setComplete(boolean complete) { this.complete = complete; } } Nếu sử dụng Lombok, đoạn mã trên có thể được viết lại như sau: @Getter @Setter @NoArgsConstructor @AllArgsConstructor public class Todo { private String title; private boolean complete; } Ở trên sử dụng 4 anotation: – @Setter để thay thế các phương thức: setTitle, setComplete – @Getter để thay thế các phương thức: getTitle, isComplete – @NoAgrsConstructor thay thế phương thức khởi tạo không có tham số Todo() – @AllArgsConstructor thay thế phương thức khởi tạo có tham số Todo(…) Nếu muốn gọn hơn nữa, chúng ta có thể viết như sau: Ở trên sử dụng 4 anotation:...

By stationd
Xây dựng một ứng dụng trò chuyện bằng ReactJS trong 10 PHÚT (Phần 1)

Xây dựng một ứng dụng trò chuyện bằng ReactJS trong 10 PHÚT (Phần 1)

Biên dịch: Nguyễn Quốc Đại Trong bài viết này, tôi sẽ chỉ cho bạn cách dễ nhất có thể để xây dựng một ứng dụng trò chuyện bằng React.js. Nó sẽ được xây dựng hoàn toàn mà không có code phía máy chủ, vì chúng tôi sẽ cho phép API Chatkit xử lý phía back-end. Tôi giả sử rằng bạn biết JavaScript cơ bản và bạn có tìm hiểu một chút React.js trước đây. Ngoài ra, không có điều kiện tiên quyết. Lưu ý : Tôi cũng đã tạo một khóa học miễn phí có thời lượng đầy đủ về cách tạo ứng dụng trò chuyện React.js tại đây . Nếu bạn làm theo hướng dẫn này, bạn sẽ hoàn thành được ứng dụng trò chuyện của riêng bạn, và sau đó bạn có thể xây dựng thêm nếu bạn muốn. Let’s get started! Bước 1: Cắt giao diện người dùng thành các components( thành phần nhỏ) React được xây dựng xung quanh các components, vì vậy điều đầu tiên bạn muốn làm khi tạo ứng dụng là cắt giao diện người dùng thành các components. Hãy bắt đầu bằng cách vẽ một hình chữ nhật xung quanh toàn bộ ứng dụng.Đây là thành phần gốc của bạn và tổ tiên chung cho tất cả các thành phần khác. Hãy gọi nó App : Khi bạn đã xác định thành phần gốc của mình, bạn cần tự hỏi mình câu hỏi sau: Đường dẫn con có thể có thành phần nào? Trong trường hợp của chúng tôi, nó có ý nghĩa để cung cấp cho nó ba thành phần con, mà chúng tôi sẽ gọi như sau: Title MessagesList SendMessageForm Hãy vẽ một hình chữ nhật cho mỗi cái: Điều này cho chúng ta một cái nhìn tổng quan tốt...

By stationd
[Python cơ bản thường dùng trong công việc] Phần 2 : Cú pháp thông dụng

[Python cơ bản thường dùng trong công việc] Phần 2 : Cú pháp thông dụng

2.1. Biến số Khai báo biến bằng một câu lệnh gán. a = 1 bạn có thể gán nhiều loại giá trị (số, chuỗi) cho một biến. a = 1 a = 'Hello World' = [1, 2, 3] = [1.2, 'Hello', 'W', 2] 2.2. Toán tử số học Python cũng hỗ trợ một số toán tử toán học thông dụng như: + phép cộng - phép trừ * phép nhân / phép chia % phép chia lấy dư (modulo) Việc làm lập trình python lương up to 20M 2.3. Boolean và Toán tử logic Giá trị đúng và sai tương ứng là True và False . not để đảo giá trị. and phép tính logic và (AND). or phép tính logic hoặc (OR). Một số phép so sánh thông thường như < (bé hơn), <= (bé hơn hoặc bằng), > (lớn hơn), >= (lớn hơn hoặc bằng), == (bằng), != (khác) để so sánh 2 giá trị. Hỗ trợ dạng so sánh kép như: x = 2 1 < x < 3 # True 10 < x < 20 # False 3 > x <= 2 # True 2 == x < 4 # True Toán tử kiểm tra phần tử trong một tập hợp: – in kiểm tra có tồn tại – not in kiểm không tồn tại 'good' in 'this is a greate example' # False 'good' not in 'this is a greate example' # True 2.4. Cấu trúc điều khiển Python hỗ trợ một số cấu trúc điều khiển thông dụng. Hầu hết các cấu trúc điều khiển đều dựa vào thụt đầu dòng (indention) để tạo thành một block xử lý, thay vì sử dụng { … } như các ngôn ngữ khác (PHP, Javascript) 2.4.1. If…elif…else if condition1 : indentedStatementBlockForTrueCondition1 elif condition2 : indentedStatementBlockForFirstTrueCondition2 elif...

By stationd
JQuery Ajax và kiến thức cơ bản

JQuery Ajax và kiến thức cơ bản

Bài viết được sự cho phép của tác giả Bui Thu Huyen Giới Thiệu AJAX – “Asynchronous JavaScript and XML” – là một bộ công cụ cho phép load dữ liệu từ server mà không yêu cầu tải lại trang. Nó sử dụng chức năng sẵn có XMLHttpRequest(XHR) của trình duyệt để thực hiện một yêu cầu đến server và xử lý dữ liệu server trả về. jQuery cung cấp method $.ajax và một số methods tiện lợi giúp bạn làm việc với XHRs thông qua trình duyệt một cách dễ dàng hơn. Download thư viện jQuery Bạn có thể lên trang chủ jquery để download bộ mới nhất. http://jquery.com/download/ Phương thức “load()” Sau đây là cú pháp đơn giản cho phương thức load() trong jQuery: [selector].load( URL, [data], [callback] ); Miêu tả chi tiết về các tham số: URL − URL của ngồn Server-Side để Yêu cầu (Request) được gửi tới. Nó có thể là CGI, ASP, JSP, hoặc PHP script mà tạo dữ liệu động hoặc ra khỏi database Data − tham số tùy ý này biểu diễn một đối tượng mà các thuộc tính của nó được xếp theo thứ tự vào trong các tham số được mã hóa một cách thích hợp để được truyền tới Yêu cầu (Request). Nếu được xác định, Request được tạo bởi sử dụng phương thức POST. Nếu bị bỏ qua, phương thức GET được sử dụng. Callback − Một hàm callback được gọi sau dữ liệu phản hồi đã được tải vào trong các phần tử của tập hợp đã kết nối. tham số đầu tiên được truyền tới hàm này là văn bản phản hồi từ Server và tham số thứ hai là mã hóa trạng thái. Ví dụ <html> <head> <title>The jQuery Example</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script type="text/javascript"...

By stationd
[Python cơ bản thường dùng trong công việc] Phần 4 : Class

[Python cơ bản thường dùng trong công việc] Phần 4 : Class

Lập trình hướng đối tượng là một khái niệm không thể thiếu trong hầu hết các ngôn ngữ thông dụng hiện nay. Python cũng hỗ trợ lập trình hướng đối tượng với các khái niệm Class, Object, Override… Tìm việc làm python lương cao cho bạn 4.1. Khai báo một Class Khai báo một class theo cú pháp sau: class myclass([parentclass]): assignments def __init__(self): statements def method(): statements def method2(): statements Ví dụ một class: class animal(): name = '' age = 0 def __init__(self, name = '', age = 0): self.name = name self.age = age def show(self): print 'My name is ', self.name def run(self): print 'Animal is running...' def go(self): print 'Animal is going...' class dog(animal): def run(self): print 'Dog is running...' myanimal = animal() myanimal.show() myanimal.run() myanimal.go() mydog = dog('Lucy') mydog.show() mydog.run() mydog.go() Sau khi thực thi sẽ cho ra kết quả: My Name is Animal is running... Animal is going... My Name is Lucy Dog is running... Animal is going... Trong ví dụ trên thì: animal và dog là 2 class. Trong đó class dog kế thừa từ class cha là class animal nên sẽ có các phương thức của class animal . name và age là thuộc tính (Attribute) của class. Phương thức __init__(self) là hàm tạo của class. Hàm này sẽ được gọi mỗi khi có một object mới được tạo (từ một class), gọi là quá trình tạo instance. show() , run() và go() là 2 phương thức của 2 class. Khi khai báo phương thức có kèm tham số self dùng để truy cập ngược lại object đang gọi. Lúc gọi phương thức thì không cần truyền tham số này. Phương thức run() của class dog gọi là override của phương thức run() của class animal . << Phần 3: phân...

By stationd
5 tính năng mới trong PHP 7 cần phải biết

5 tính năng mới trong PHP 7 cần phải biết

Sau khi PHP 5 ra mắt vào năm 2004 thì từ đó đến 2015 không hề có một phiên bản nâng cấp lớn nào của PHP, chủ yếu là các bản vá lỗi, cải thiện hiệu suất và một vài tính năng mới mới như lập trình hướng đống tượng, … cộng đồng PHP luôn luôn mong chờ có một cái gì đó thật sự đổi mới đối với PHP và vào cuối tháng 12 năm 2015 PHP 7 đã ra mắt chính thức với hàng loạt tính năng mới sau một thời gian dài beta (PHPNG). Trong bài này mình sẽ nói về 5 điểm mới trong PHP 7 mà theo mình là rất đáng giá. 1. PHP 7 cho tốc độ nhanh hơn 2 lần PHP 5 Tốc độ trong PHP 7 được cải thiện đến đáng kinh ngạc khi nó nhanh hơn PHP 5 ít nhất 2 lần, nếu bạn biết tối ưu thì nó còn nhanh hơn nữa, có thể lên đến 3-4 lần. Bảng benmark tốc độ dưới đây sẽ cho bạn thấy điều đó, khi test thử trên 2 CMS nổi tiếng đó là Drupal và WordPress, chưa cần tối ưu gì tốc độ cũng đã nhanh hơn 2 lần, đặc biệt hiện có 25% các trang web đang chạy trên WordPress, đây là điều tuyệt vời cho tất cả mọi người. 2. PHP 7 cho phép khai báo kiểu của biến Tính năng này trong PHP7 gọi là Tyle Declarations, nó cho phép khai báo kiểu của biến thay vì để PHP tự động quyết định kiểu như trước kia. Trước PHP 7 nó vẫn bị chê là ngôn ngữ không chặt chẽ, weak typed language nhưng với tính năng này bạn có thể sử dụng để ràng buộc biến vào một kiểu...

By stationd