Hacker là người hiểu rõ hoạt động của hệ thống máy tính, mạng máy tính, có thể viết hay chỉnh sửa phần mềm, phần cứng máy tính để làm thay đổi, chỉnh sửa nó với nhiều mục đích tốt xấu khác nhau. Công việc của hacker bao gồm lập trình, quản trị mạng và bảo mật.
Trên phương diện tích cực, người hacker lập trình giỏi là người hiểu biết rất sâu về các ngôn ngữ lập trình và có khả năng lập trình rất nhanh và hiệu quả. Những người hacker thuộc phân loại này là những chuyên gia được đánh giá cao và có khả năng phát triển chương trình mà không cần đến các quy trình truyền thống hoặc trong các tình huống mà việc sử dụng các quy trình này không cho phép. Thực tế là có những dự án phát triển phần mềm đặc thù rất cần đến sự tự do sáng tạo của hacker, đi ngược những quy trình thông thường. Tuy vậy, mặt trái của sự tự do sáng tạo này là yếu tố khả năng bảo trì lâu dài, văn bản lập trình và sự hoàn tất. Với tính cách luôn ưa thích "thách thức và thử thách", người hacker tài năng thường cảm thấy buồn chán khi họ đã giải quyết được tất cả những vấn đề khó khăn nhất của dự án, và không còn hứng thú hoàn tất những phần chi tiết. Thái độ này sẽ là rào cản trong môi trường cộng tác, gây khó khăn cho những lập trình viên khác trong vấn đề hoàn tất dự án. Trong một số trường hợp, nếu người hacker không mô tả bằng văn bản kỹ lưỡng các đoạn mã lập trình, sẽ gây khó khăn cho công ty tìm người thay thế nếu người này rời vị trí.
Hacker thường có kiến thức chuyên sâu về Kỹ nghệ đảo ngược (reverse engineering). Kỹ năng này là một trong các kỹ năng quan trọng nhất cho phép hacker phân tích tìm ra các lỗ hổng bảo mật trong phần mềm (software vulnerability), firmware hoặc thậm chí là các thiết bị điện tử. Kỹ năng này cũng cho phép hacker thực hiện bẻ khóa phần mềm hoặc tìm các phương thức mã hóa/giải mã trong code đã biên dịch. Nếu chỉ xét riêng lĩnh vực phần mềm, kiến thức reverse engineering bao gồm cả các kỹ năng dịch ngược (decompiler) và phân tích code (reverse code engineering, viết tắt RCE).[1] Kỹ thuật đảo ngược phần mềm được bảo vệ ở Mỹ theo ngoại lệ sử dụng hợp pháp trong luật bản quyền.[2]
Về lĩnh vực mạng và hệ thống, hacker là người có kiến thức chuyên sâu về các giao thức và hệ thống mạng. Có khả năng hoàn thiện và tối ưu hóa hệ thống mạng. Mặt tối của những hacker này là khả năng tìm ra điểm yếu mạng và lợi dụng những điểm yếu này để đột nhập vào hệ thống mạng. Đa số những hacker mũ đen hiện nay có kiến thức sơ đẳng về mạng và sử dụng những công cụ sẵn có để đột nhập, họ thường được gọi là "script kiddies".
Một loại hacker khác là những người yêu thích và có kiến thức sâu về phần cứng, họ có khả năng sửa đổi một hệ thống phần cứng để tạo ra những hệ thống có chức năng đặc biệt hơn, hoặc mở rộng các chức năng được thiết kế ban đầu. Các ví dụ về hacker ở phân loại này bao gồm: