45
Power your PHP Skill Đặng Minh Tuấn - hoctudau.com How a web developer make more MONEY

Power your web skills

Embed Size (px)

Citation preview

Power your PHP Skill

Đặng Minh Tuấn - hoctudau.com

How a web developer make more MONEY

Power your Web Skills

Đặng Minh Tuấn - hoctudau.com

How a web developer make more MONEY

PHP

Để chống lại khủng hoảng!

howto = array("Thất nghiệp?" => "Có việc","Thu nhập thấp?" => "Thu nhập cao","Ước mơ lớn?" => "Đạt được ước mơ");

HOCTUDAU.COM DANG MINH TUAN

2 chiến lược? bạn chọn cách nào?

1. Đào sâu kiến thức PHP đang có2. Mở rộng sang kiến thức khác (không phải

PHP)3. Hay cả 2?

HOCTUDAU.COM DANG MINH TUAN

Who am I?

Đặng Minh Tuấn● www.ddth.com/member.php/51960-zmt264● linkhay.com/u/ohisee● www.facebook.com/dangminhtuan● www.youtube.com/hoctudau● hoctudau.com

Diễn giả PHP Day nhiều năm:● 2008: HTML, CSS, JS Best Practices● 2009: HTML, CSS Trends● 2010: HTML5, CSS3, JS● 2012: Javascript for PHP Developer

HOCTUDAU.COM DANG MINH TUAN

Tôi chọn chiến lược nào?

1. Đào sâu kiến thức PHP đang có => vấn đề: hơi mạo hiểm

2. Mở rộng sang kiến thức khác (không phải PHP) => vấn đề: biết rộng nhưng nông

3. Cả 2 => vấn đề: tốn thời gian

PHP Day 2012: HTML, CSS, JS...

Tôi chọn giải pháp an toàn:● học rộng và vững nền tảng web

Tại sao tiêu đề ban đầu lại là: ● Power your PHP Skill?

Một số tiêu đề tôi từng nghĩ:● Power your Web Skill?● Web Developer - Survival Tips● PHP Developer - Overcome 2012

HOCTUDAU.COM DANG MINH TUAN

Lý thuyết hay ví dụ trước?

1. Trình bầy những thứ nên học rồi mới đến ví dụ về những tấm gương thành công vì đi theo con đường đó?

2. Hay là kể về các tấm gương trước rồi đến những thứ nên học sau?

HOCTUDAU.COM DANG MINH TUAN

Tấm gương

● Đào Công Văn: mobile app● Đỗ Xuân Tiến: freelancer team● Phan Thành Công: freelance● Mai Duy Quang: startup● Phan Văn Đạt: award● Mark Zuckerbug: Facebook

HOCTUDAU.COM DANG MINH TUAN

Các nền tảng cần học

Nền tảng client side:● HTML, CSS, JS, jQuery

Nền tảng server side● PHP

Nền tảng SQL● MySQL

HOCTUDAU.COM DANG MINH TUAN

Tại sao lại là HTML, CSS, JS?

Tại sao lập trình viên PHP nên bỏ thêm thời gian cho HTML, CSS, JS?● buộc phải biết do nhu cầu làm việc● dễ tiếp cận● làm được nhiều việc, mở ra nhiều cơ hội● thú vị, luyện trí óc, luyện cách học● an toàn, không cần phải từ bỏ PHP, vẫn

phối hợp tốt với PHP● dễ làm freelance hoặc one-man project.

HOCTUDAU.COM DANG MINH TUAN

HTML, CSS, JS có thể làm gì?

Dựng (render) web ở client-side

=> Lập trình viên PHP buộc phải biết, và giỏi thì càng tốt

HOCTUDAU.COM DANG MINH TUAN

HTML, CSS, JS có thể làm gì?

Một số ứng dụng:● Web Application: Game trên nền web● Browser (Google Chrome, Firefox ... )

Extension● Google Script: Enterprise Application

Essentials (Google Forms, Spreadsheet...)

HOCTUDAU.COM DANG MINH TUAN

HTML, CSS, JS có thể làm gì?

Mobile Application

Firefox OS

HOCTUDAU.COM DANG MINH TUAN

HTML, CSS, JS có thể làm gì?

Desktop Application

HOCTUDAU.COM DANG MINH TUAN

HTML, CSS, JS có thể làm gì?

Google Chrome Packaged Applications (Desktop Application)

HOCTUDAU.COM DANG MINH TUAN

HTML, CSS, JS có thể làm gì?

Thậm chí có áp dụng ở server-side

Node.js: Event-driven I/O server-side JavaScript environment based on V8.

Node.js is something that PHP developers in general should learn. It's easy (assuming you've done at least a bit of JavaScript) and it's useful.

HOCTUDAU.COM DANG MINH TUAN

HTML, CSS, JS là chủ đề hot

HTML5, CSS3Hot ngay ở các hội thảo PHP hàng năm ở Việt Nam và trên thế giới .

HOCTUDAU.COM DANG MINH TUAN

Kiến thức HTML, XHTML cần biết

● HTML Decoration & Deprecated Tags: Cần biết các thẻ HTML lạc hậu vì đã bị lạm dụng cho chức năng decoration như: center, font, br, b, i, ...

● HTML Semantic: Ý nghía của một số thẻ cơ bản và sự liên quan giữa Semantic và SEO

● HTML Entities: cách viết đúng các ký tự như <, >, &, © ..

● Khái niệm về XML và DOCTYPE● Cách đọc DOCTYPE● HTML5● Quick Editing: ZenHTML (ZenCoding)

HOCTUDAU.COM DANG MINH TUAN

Hỏi xoáy, đáp xoay HTML:

thẻ <b> và thẻ <strong> giống và khác nhau ra sao?

HOCTUDAU.COM DANG MINH TUAN

Kiến thức CSS cần biết

● CSS Selector: là cách dùng CSS tác động đến một phần tử HTML, quan trọng và phổ biến nhất là cascading selector.

● CSS Decoration: trang trí màu sắc, kích thước chữ ...● CSS Box Model & Default CSS (& CSS Reset): khái

niệm về width, height, margin, padding ... và CSS mặc định (default)

● CSS Float and Clear: để định vị phần tử● CSS Position: một cách khác để định vị phần tử● CSS Frameworks & CSS preprocessors● CSS3● Quick Editing: ZenCSS (ZenCoding)

HOCTUDAU.COM DANG MINH TUAN

Hỏi xoáy, đáp xoay CSS:

nêu CSS mặc định của phần tử h1 trong một trình duyệt bất kỳ?

HOCTUDAU.COM DANG MINH TUAN

Kiến thức về Javascript cần biết

● JS & DOM: các hàm cơ bản về DOM: getElementById, getElementsByTagName ... DOM tree: parent, child

● JS & HTML Attribute & Style: .id, .style ... (cái này thực ra cũng là một phần của DOM mà tôi tách riêng ra để nhấn mạnh sự phổ biến của nó)

● JS Events & Unobstrusive Javascript● JS Frameworks: jQuery,...● JS Animation

HOCTUDAU.COM DANG MINH TUAN

Hỏi xoáy, đáp xoay Javascript:

Hãy thêm sự kiện click vào nút bấm mà không dùng onlick

HOCTUDAU.COM DANG MINH TUAN

Some Tools, Frameworks, Libraries

CSS Frameworks:● Twitter Bootstraps● Zurb's Foundation● 960gs● YUI● blueprintCSS Preprocessors:● SASS● LESS

JS "Frameworks":● jQuery● Require.js● Underscore.js● modernizr● history.js● backbone.js● KnockoutJS● YUI

HOCTUDAU.COM DANG MINH TUAN

Kiến thức về jQuery cần biết

● CSS Selector: vì cách chọn phần tử của jQuery và CSS giống hệt nhau

● Kiến thức Javascrip căn bản: Biến, lệnh điều kiện, vòng lặp, vì jQuery cũng là Javascript

● jQuery & DOM: các hàm liên quan đến DOM của jQuery như: next() ...

● jQuery & animation: các hàm liên quan đến điều khiển chuyển động của jQuery

● jQuery & UI: jQueryUI, thư viện hỗ trợ giao diện chính thức của jQuery

● jQuery Plugin: cách tìm, dùng ... Plugin. và thuộc tên các Plugin thường gặp

HOCTUDAU.COM DANG MINH TUAN

Hỏi xoáy, đáp xoay jQuery:

ready của jQuery khác onload của Javascript như thế nào?

HOCTUDAU.COM DANG MINH TUAN

Kiến thức về PHP, MySQL cần biết

● Tư duy lập trình: Biến, lệnh điều kiện, vòng lặp, toán tử, hàm thông dụng (toán học, thời gian, chuỗi, mảng ...)

● MySQL: các lệnh query của MySQL (CRUD) và dùng vài hàm PHP tương tác với chúng: mysql_query ...

● Request & Response: mô hình client-server, stateless, phân biệt request: Get, Post, Cookie, AJAX; header, response code, redirect ... Đáng sợ nhất là tưởng đã hiểu rồi mà hóa ra không hiểu!

● Storage: stateful vs stateless: Cookie (client) & Session (server); memory & file & mysql

HOCTUDAU.COM DANG MINH TUAN

Hỏi xoáy, đáp xoay PHP:

Có thể tắt (ngăn không cho trình duyệt sử dụng) cookie được không? Nếu tắt được thì tắt bằng cách nào và nếu tắt cookie đi thì session còn hoạt động không?

HOCTUDAU.COM DANG MINH TUAN

Các khái niệm phải biết

DRY (Don't Repeat Yourself)● external CSS● unobstrusive Javscript● normalization● cache● separation, templateFallback● bullet proofMobile● Responsive Web Design

HOCTUDAU.COM DANG MINH TUAN

Một số kiến thức khác

● Kết hợp và rút gọn (minify) CSS và JS● Kiểm tra thực thi JS: YSlow, Google

Chrome's speed tracer● Kiểm tra network traffic: Fiddler● Kiểm tra web trên nhiều màn hình: Screenly● Kiểm tra thao tác trên mobile, sử dụng công

cụ mô phỏng như: Ripple

HOCTUDAU.COM DANG MINH TUAN

Các công cụ lập trình cần biết

Khảo sát các công cụ (editors, frameworks, ide, db...) được lập trình viên Việt Nam sử dụng (100 người, 1 năm)http://bit.ly/vietdevtools

HOCTUDAU.COM DANG MINH TUAN

Các công cụ lập trình cần biết

Text Editor:● Notepad++● Notepad● Vim● Text Mate● gedit● Sublime Text 2● Emacs

HOCTUDAU.COM DANG MINH TUAN

Các công cụ lập trình cần biết

IDE● Eclipse● Visual Studio● Netbeans● Aptana● phpDesigner● PhpStorm● XCode● Dreamweaver

HOCTUDAU.COM DANG MINH TUAN

Các công cụ lập trình cần biết

Bug Tracking● BugZilla● Jira● Mantis● FogBugz● Trac● Google Docs

HOCTUDAU.COM DANG MINH TUAN

Các công cụ lập trình cần biết

Project Management (& Collaboration)● Redmine● Trac● Basecamp● Jira● TopTeam

HOCTUDAU.COM DANG MINH TUAN

Các công cụ lập trình cần biết

Version control● Subversion● Git● Mercurial

HOCTUDAU.COM DANG MINH TUAN

Các công cụ lập trình cần biết

PHP Frameworks:● CodeIgniter● ZenFramework● Yii

HOCTUDAU.COM DANG MINH TUAN

Các công cụ lập trình cần biết

Database● MySQL● SQLite● MongoDB● Oracle● Redis● PostgreSQL

HOCTUDAU.COM DANG MINH TUAN

Certificate

● ZCE: Zend Certified Engineer● ZFC: Zend Framework Certification● MCSD - Course 20480A: Exam 70-480:

Programming in HTML5 with JavaScript and CSS3

● W3Schools' Certifications: HTML, CSS, JavaScript, jQuery, XML, PHP

● các trang web Freelance

HOCTUDAU.COM DANG MINH TUAN

Kỹ năng khác cần biết

● Cách học: quá nhiều thứ, chọn cái nào? học cách nào cho nhanh?

● Ý tưởng● Giao tiếp, quan hệ● Tiếng Anh

HOCTUDAU.COM DANG MINH TUAN

Kỹ năng học

● Học từ đầu, từ căn bản● Học cách học

Kỹ năng viết CV

● Trình bày nghiêm túc● Không sai chính tả● Chi tiết● Trung thực● Viết đúng tên công ty● Sử dụng ít font chữ, rõ ràng● Đặt tên CV: CV-HoTen● Email có tiêu đề, nghiêm túc● Ghi rõ chức danh ứng cử

Kỹ năng học tiếng Anh, giao tiếp

● Chịu khó đọc sách, blog ... tiếng Anh● Chịu khó tham gia chat, viết bài ở các diễn

đàn, mạng xã hội sử dụng tiếng Anh: http://stackoverflow.com/

● Chăm chỉ tiếp xúc Tây, tham gia offline● Sẵn sàng đi phỏng vấn nhiều nơi● Lịch sự, gọn gàng, vui vẻ

Q&A

& resourceshttp://bit.ly/phpday2012

HOCTUDAU.COM DANG MINH TUAN