Thứ Ba, 26 tháng 5, 2015

SQL - Bài 5: Các ràng buộc toàn vẹn

Trong phần 3 của series học SQL, chúng ta đã biết cách tạo ra các bảng (tblPerson and tblGender) và thực thi các ràng buộc khóa chính và khóa ngoại. Trong phần 4 chúng ta lại được học về các ràng buộc mặc định. Bạn nên xem lại phần 3 và phần 4 trước khi học bài hôm nay.


Cascading ràng buộc toàn vẹn cho phép xác định các hành động của Microsoft SQL Server nên thực hiện khi người dùng cố gắng xóa hoặc update một khóa mà nó tồn tại các khóa ngoại tham chiếu đến.

Ví dụ, hãy xem xét 2 bảng bên dưới. Nếu bạn xóa dòng với ID = 1 trong bảng tblGender, sau đó dòng với ID = 3 tỏng bảng tblPerson sẽ là một bản ghi thiếu mất gốc (nói cho dễ hiểu là trẻ mồ côi ấy ^^). bạn sẽ không thể nói Gender sẽ như thế nào cho bảng này. Cascading ràng buộc toàn vẹn có thể được sử dụng để định nghĩa các hành động của Microsoft SQL Server khi điều này xảy ra. Theo mặc định chúng ta nên xóa hoặc update.


Tuy nhiên, bạn có những lựa chọn sau đây khi cài đặt Cascading ràng buộc toàn vẹn
1. No Action: là hành vi mặc định. Không có quy định một hành động để cố xóa hoặc update 1 dòng với 1 khóa được tham chiếu tới các khóa ngoại trong các hàng tồn tại trong các bảng khác. Một lỗi được nêu ra và lênh DELETE hoặc UPDATE được quy thành roll back (thao tác lùi cơ sở dữ liệu về một trạng thái cũ)

2. Cascade:  Nó chỉ định rằng nếu một nổ lực để xóa hoặc update một dòng với một khóa có nhiều khóa ngoại tham chiếu tới từ các bảng khác, tất cả các dòng chứa khóa ngoại cũng sẽ bị xóa hoặc update.

3. Set NULL: Nó chỉ định rằng nếu một nổ lực để xóa hoặc update một dòng với một khóa có nhiều khóa ngoại tham chiếu tới từ các bảng khác. Tất cả các dòng chứa khóa ngoại tham chiếu đến sẽ được gán cho giá trj NULL.

4. Set Default: Nó chỉ định rằng nếu một nổ lực để xóa hoặc update một dòng với một khóa có nhiều khóa ngoại tham chiếu tới từ các bảng khác.Tất cả các dòng chưa khóa ngoại tham chiếu đến đều sẽ được gán cho 1 giá trị mặc định.


SQL - Bài 4: Ràng buộc mặc định

Trong phần 3 của series học SQL, chúng ta đã biết cách tạo ra các bảng (tblPerson and tblGender) và thực thi các ràng buộc khóa chính và khóa ngoại. Bạn nên xem lại phần 3 trước khi học tiếp bài học này.


Trong phần này chúng ta sẽ học cách thêm vào ràng buộc măc đinh. Một cột mặc định có thể được chỉ định sử dụng ràng buộc mặc định. Các ràng buộc mặc định được sử dụng để chèn các giá trị mặc định vào cột. Các giá trị mặc định sẽ được thêm vào tất cả các dòng mới. Nếu không có giá trị xác định nó sẽ tự động thêm vào NULL.

Thay đổi một cột hiện có bằng các thêm vào ràng buộc mặc định
ALTER TABLE { TABLE_NAME }
ADD CONSTRAINT { CONSTRAINT_NAME }
DEFAULT { DEFAULT_VALUE } FOR { EXISTING_COLUMN_NAME }

Thêm một cột mới với giá trị mặc định vào một bảng hiện có
ALTER TABLE { TABLE_NAME } 
ADD { COLUMN_NAME } { DATA_TYPE } { NULL | NOT NULL } 
CONSTRAINT { CONSTRAINT_NAME } DEFAULT { DEFAULT_VALUE }

Các lệnh sau đây sẽ thêm vào ràng buộc mặc định DF_tblPerson_GenderId
ALTER TABLE tblPerson
ADD CONSTRAINT DF_tblPerson_GenderId
DEFAULT FOR GenderId

Câu lênh chèn dữ liệu dưới đây không cung cấp giá trị cho cột GenderID, vậy nên mặc định giá trị của nó sẽ là 1 theo ràng buộc trên. 
Insert into tblPerson(ID,Name,Email) values(5,'Sam','s@s.com')


Mặc khác, lệnh chèn sau đây sẽ thêm vào NULL, thay vì sử dụng mặc định.
Insert into tblPerson(ID,Name,Email,GenderId) values (6,'Dan','d@d.com',NULL)

Câu lệnh để xóa một ràng buộc
ALTER TABLE { TABLE_NAME } 
DROP CONSTRAINT { CONSTRAINT_NAME }

















SQL - Bài 3: Tạo và làm việc với bảng

Mục đích của bài viết này là tạo ra 2 bảng tblPerson and tblGender  và thiết lập khóa chính và các ràng buộc khóa ngoại. Trong SQL Server, các bảng cỏ thể được tạo bằng cách sử dụng màn hình đồ họa sử dụng SQL Server Management Studio (SSMS) hoặc sử dụng câu lệnh truy vấn.

Tạo bảng tblPerson trên màn hình đồ họa, sử dụng SQL Management Studio (SSMS)
1. Click chuột phải vào Tables folder trong cửa sổ Object explorer
2. Chọn New Tables
3. Điền Column Name(tên cột), Data Type (kiểu dữ liệu), và All Nulls (cho phép Null hay không) và lựu lại với tên tblPerson

Các lệnh dưới tạo bảng tblGender, với 2 cột ID và Gender. Cột ID là khóa chính (primary key). Khóa chính được tạo để xác định thuộc tính duy nhất của một bảng nhằm phân biệt với các bảng khác (khóa chính có thể gồm một hoặc nhiều thuộc tính), khóa chính không được phép Null. 
Create Table tblGender
(ID int Not Null Primary Key,
Gender nvarchar(50))

Trong bảng tblPerson thuộc tính GenderID là khóa ngoại (foreign key) referencing đến cột ID trong bảng tblGender. Khóa ngoại có thể được tạo bằng cách sử dụng SSMS hoặc dùng câu lệnh truy vấn.

Cách sử dụng màn hình giao diện để thiết lập khóa ngoại
Phương pháp này khá dài dòng và không hữu dụng nên tôi sẽ bỏ qua, bạn nào muốn có thể tìm hiểu thêm.

Cách sử dụng cậu lệnh truy vấn SQl để tạo ràng buộc khóa ngoại
Alter table tblPerson 
add constraint tblPerson_GenderId_FK FOREIGN KEY (GenderId) references tblGender(ID)
To add a foreign key reference using a query


Công thức chung ở đây là:
Alter table ForeignKeyTable add constraint ForeignKeyTable_ForiegnKeyColumn_FK 
FOREIGN KEY (ForiegnKeyColumn) references PrimaryKeyTable (PrimaryKeyColumn)

Khóa ngoại được sử dụng để thực thi trọn vẹn cơ sở dữ liệu. Một khóa ngoại trong một bảng chỉ tới khóa chính trong bảng khác. Các ràng buộc khóa ngoại ngăn không cho dữ liệu không hợp lệ đưa vào các cột bên ngoài. Các giá trị nhập vào một cột ở bên ngoài phải là một trong những giá trị khóa chính trỏ tới










Thứ Bảy, 23 tháng 5, 2015

SQL - Bài 2: Tạo, thay đổi và xóa một cơ sở dữ liệu

Trong phần một của SQL Server, chúng ta đã thấy cách sử dụng SSMS để kết nối với SQL Server. Trong phần này, chúng ta sẽ học cách tạo, sửa, và xóa một cơ sở dữ liệu.

Một cơ sở dữ liệu SQL Server có thể được tạo, sửa và xóa theo 2 cách

1. Trên đồ thị sử dụng SQL Server Management Studio (SSMS) hoặc
2. Sử dụng Query, câu lệnh truy vấn

Tạo cơ sở dữ liệu bằng cách sử dụng đồ thị nhánh
1. Click chuột phải vào Databases folder trong Object explorer
2. Chọn New Database
3. Trong ộp thoại New Database, nhập  vào tên  Database  và click OK

Tạo cơ sở dữ liệu sử dụng câu lệnh truy vấn
Create database DatabaseName
Cho dù bạn tạo một sở sở dữ liệu bằng cách nào thì 2 tập tin sau đây cũng được tạo ra
.MDF file - Tập tin dữ liệu (chứa dữ liệu thực tế)
.LDF file -  Transaction Log file (dùng để khôi phục lại cơ sở dữ liệu)

Để thay đổi tên một cơ sở dữ liệu khi nó đã được tạo ra
Alter database DatabaseName Modify Name = NewDatabaseName

Ngoài ra bạn cũng có thể sử dụng hệ thống Store Procedure
Execute sp_renameDB 'OldDatabaseName','NewDatabaseName'

Để xóa hoặc bỏ một cơ sở dữ liệu
Drop Database DatabaseThatYouWantToDrop

Xóa một database tức là xóa 2 file .LDF và .MDF

Bạn không thể xóa 1 database, nếu nó vẫn đang trong quá trình sử dụng. Lúc đó bạn sẽ gặp phải lỗi -  Cannot drop database "NewDatabaseName" because it is currently in use. Vậy nên, nếu người dùng khác kết nối, bạn cần đặt sơ sở dữ liệu trong chết độ single user rồi sau đó mới xóa nó.
Alter Database DatabaseName Set SINGLE_USER With Rollback Immediate

Với RollBack thì ngay lập tức nó sẽ đóng tất cả các kết nối tới database.

Chú ý: Hệ thống các cơ sở dữ liệu không thể bị xóa.



Thứ Sáu, 22 tháng 5, 2015

SQL - Bài 1: Kết nối SQL server sử dụng SSMS

SQL Server Management Studio (SSMS) là một công cụ cho phép chúng ta có thể viết và thực thi các truy vấn SQL. Để kết nối với SQL Server Management Studio chúng ta, tìm trong gói cái đặt SQL đi kèm và kích vào shortcut SQL Server Management Studio.
Bây giờ các bạn sẽ thấy các kết nối ở cửa sổ của server.
1. Chọn kiểu server Database Engine. Các tùy chọn khác mà bạn có thể thấy tại đây là dịch vụ phân tích  Analysis Services(SSAS), dịch vụ báo cáo Reporting Services(SSRS) và dịch vụ tích hợp(SSIS).
Server type = Database Engine

2. Tiếp theo bạn phải xác định Server Name. Tại đây chúng ta cần phải xác định tên server hoặc địa chỉ IP của nó. Ở đây tôi dùng Server cục bộ chúng ta sẽ gõ vào (local) hoặc 127.0.0.1
Server name = (local)

3. Bây giờ chọn Authentication. Các tùy chọn có sẵn tại đây, tùy thuộc vào quá trình cài đặt SQL Server. Trong lúc cài đặt, nếu bạn chọn chế độ mixed mode authentication, bạn sẽ có cả 2 tùy chọn là Windows Authentication và SQL Server Authentication. Nếu không, bạn chỉ có thể kết nối bằng cách sử dụng Windows Authentication (cửa sổ chứng thực).

4. Nếu bạn chọn Windows Authentication, bạn không nhập user name và password, nếu không bạn nhập user name và password rồi click connect.

Bây giờ bạn sẽ kết nối với SQL Server. Click vào New Query, ở góc bên trên, phía tay trái của SSMS. Nó sẽ mở ra một cửa sổ soạn thảo truy vấn mới, tại đây chúng ta có thể gõ truy vấn sql và thực thi chúng.

SSMS là một công cụ client và Server không được tạo ra bởi nó. Thông thường  database server(SQL server) sẽ ở trên một máy chuyên dụng, và các developers kết nối tới server sử dụng SSMS từ các máy tính của mình.

Đây là hình ảnh minh họa các nhà phát triển 1, 2, 3, 4 kết nối đến SQL Server thông qua máy tính của mình sử dụng SSMS.



Chủ Nhật, 10 tháng 5, 2015

Tỷ phú dạy cách mua nhà, xe hơi trong 5 năm

Giả sử thu nhập mỗi tháng của bạn chỉ là 2.000 tệ (khoảng 7 triệu đồng), bạn vẫn có thể sống tốt – ông Li nói. Bạn hãy chia khoản thu nhập đó thành 5 phần: 600 tệ, 400 tệ, 300 tệ, 200 tệ và 500 tệ.
Khoản 600 tệ là để chi tiêu cho ăn uống, nhà cửa. Với cách sống rất giản tiện, bạn có thể chỉ tốn chưa đến 20 tệ mỗi ngày. Bữa sáng bạn có thể ăn bún, trứng và một cốc sữa. Bữa trưa ăn nhẹ và hoa quả. Bữa tối hãy tự nấu nướng, có thể là 2 món rau và một cốc sữa trước khi đi ngủ. Với cách ăn uống như thế này, bạn chỉ tiêu tốn khoảng 500-600 tệ/ tháng. Khi còn trẻ, cơ thể sẽ không gặp quá nhiều vấn đề trong vài năm với cách sống này.
Khoản 400 tệ sẽ được chi cho các mối quan hệ. Tiền điện thoại có thể là 100 tệ. Bạn có thể mời bạn bè 2 bữa trưa mỗi tháng, mỗi bữa có giá 150 tệ. Vậy bạn nên mời ai đây? Hãy luôn nhớ mời những người hiểu biết hơn bạn, giàu có hơn bạn hoặc những người có thể giúp bạn trong sự nghiệp sau này. Hãy nhớ làm việc này đều đặn mỗi tháng. Sau một năm, những mối quan hệ này chắc chắn sẽ tạo ra những giá trị to lớn cho bạn. Bạn cũng sẽ xây dựng cho bản thân một hình ảnh tốt bụng và hào phóng.
300 tệ hãy đầu tư cho học tập. Hãy dành khoảng 50-100 tệ để mua sách. Vì bạn không có nhiều tiền nên bạn phải tập trung vào học tập. Khi bạn mua sách, hãy đọc chúng cẩn thận và rút ra những bài học, chiến lược từ cuốn sách. Mỗi cuốn sau khi đọc, hãy nhớ về chúng theo ngôn ngữ riêng của mình để có thể kể lại như những câu chuyện. 200 tệ còn lại trong khoản 300 tệ này nên dành cho các khóa học đào tạo. Khi bạn có thu nhập cao hơn hoặc có tiền tiết kiệm, hãy cố gắng tham gia vào nhiều khóa đào tạo hơn. Khi bạn tham gia vào những khóa đào tạo thú vị, bạn không chỉ có thêm kiến thức mà còn được gặp gỡ những người bạn cùng chí hướng.
200 tệ để dành cho đi du lịch nước ngoài. Tự thưởng cho mình ít nhất một chuyến du lịch trong năm để có nhiều hơn trải nghiệm trong cuộc sống. Hãy chọn những nhà nghỉ dành cho thanh niên để tiết kiệm chi phí. Trong vài năm, bạn sẽ đi được một số nước và có nhiều trải nghiệm khác nhau. Hãy sử dụng trải nghiệm đó để tạo cảm hứng cho bản thân, kích thích niềm đam mê trong công việc.
500 tệ cuối cùng hãy dùng để đầu tư kinh doanh. Tiết kiệm 500 tệ trong ngân hàng, tích lũy dần để có số vốn khởi nghiệp. Số tiền này nên dùng để kinh doanh nhỏ lẻ thôi vì nó an toàn hơn. Hãy tìm nguồn hàng để mua buôn, tìm kiếm sản phẩm để bán. Trường hợp xấu nhất là thua lỗ thì bạn cũng không mất quá nhiều. Tuy nhiên, khi mới bắt đầu kiếm tiền, bạn sẽ tự tin và can đảm hơn, đồng thời có cả những kinh nghiệm trong việc quản lý những thương vụ nhỏ. Tích lũy dần dần rồi bạn sẽ có những kế hoạch đầu tư dài hạn.
Nếu sau một năm nỗ lực, mức lương của bạn vẫn là 2.000 tệ, hãy xem lại bản thân.
Bạn cũng nên tìm những công việc bán thời gian. Bán hàng là một công việc đầy thách thức nhưng đó là cách nhanh nhất để tiếp thu được nghệ thuật bán hàng. Tất cả những doanh nhân thành công đều từng là người bán hàng xuất sắc. Họ có khả năng bán những giấc mơ và tầm nhìn.
Cố gắng mua quần áo, giày dép hạn chế nhất có thể. Bạn có thể mua tất cả chúng khi bạn giàu. Hãy tiết kiệm tiền và mua một số món quà cho người thân và kể với họ những kế hoạch, mục tiêu tài chính của bạn. Nói với họ tại sao bạn phải sống tiết kiệm, những nỗ lực, hướng đi và ước mơ của mình.
Vấn đề không phải là bạn kiếm được bao nhiêu, mà hãy luôn nhớ chia thu nhập thành 5 phần. Tích cực đầu tư vào mối quan hệ, bạn sẽ mở rộng mạng lưới liên lạc, thu nhập sẽ tăng lên. Tích cực đầu tư vào học tập, bạn sẽ tăng sự tự tin. Tăng cường đầu tư vào kỳ nghỉ, bạn sẽ mở mang tầm nhìn. Tăng cường đầu tư vào tương lại sẽ giúp bạn tăng thu nhập.
Cuộc sống có thể được gây dựng. Sự nghiệp có thể được lên kế hoạch. Hạnh phúc có thể được chuẩn bị. Hãy nên lên kế hoạch ngay từ bây giờ. Khi bạn nghèo, hãy ở nhà ít thôi, ra ngoài nhiều hơn. Khi bạn giàu, hãy ở nhà nhiều hơn và ra ngoài ít hơn. Đó là nghệ thuật sống. Khi bạn nghèo, hãy tiêu tiền cho người khác, Khi giàu, hãy tiêu tiền cho bản thân. Nhiều người đang làm ngược lại điều này.
Khi nghèo, hãy đối tốt với người khác, đừng tính toán. Khi giàu, hãy học cách để người khác đối tốt với mình, Khi nghèo, hãy ném mình ra ngoài và để người khác vắt kiệt bạn, Khi giàu, hãy giữ gìn bản thân, đừng cho phép người khác lợi dụng bạn. Đây là những bí quyết phức tạp trong cuộc sống mà nhiều người không hiểu.
Khi giàu, hãy tiêu tiền để người khác thấy bạn nổi bật. Khi giàu, đừng khoe khoang. Hãy lẳng lặng tiêu tiền cho bản thân mình, Khi nghèo, hãy hào phóng. Khi giàu, đừng để người khác nhìn bạn như một người hoang phí.
Chẳng có gì sai trái khi bạn còn trẻ. Không phải sợ nghèo. Bạn cần biết cách đầu tư vào bản thân, hãy khôn ngoan và nhìn xa hơn. Bạn cần biết điều gì là quan trọng trong cuộc sống và cái gì đáng để đầu tư.
Khi chi phí sinh hoạt không còn là vấn đề gì nặng nề, hãy sử dụng số tiền dư để theo đuổi ước mơ. Mở rộng đôi cánh và dám ước mơ.
Lý thuyết nổi tiếng của Harvard là: Sự khác nhau giữa số phận của con người khác nhau được quyết định bởi việc mà người đó làm trong lúc rảnh rỗi từ 20h tới 22h. Hãy sử dụng 2 giờ này để học tập, suy nghĩ và tham gia vào những bài học có ý nghĩa. Nếu bạn kiên trì trong nhiều năm, thành công sẽ đến.

Thứ Bảy, 2 tháng 5, 2015

Kinh nghiệm của anh chị đi trước

Hi mọi người. Mình cũng đóng góp 1 chút.
Bữa nay rảnh nên zô ngồi đọc từ đầu đến cuối thì thấy đa số đều là kinh nghiệm về chọn ngành nghề và về kỹ thuật, còn mình xin góp ý một chút về thái độ và phong cách làm việc.Nói chung là mình làm cũng được một thời gian nên cũng có cơ hội tiếp xúc và transfger với một số bạn mới ra trường, lần đầu đi làm, qua đó thì cũng có vài góp ý:
-Đầu tiên là thái độ tập trung trong công việc, cái này quá cần thiết rồi không nói nhiều, tạo thói quen ghi chép cho bản thân- nhiều bạn rất lơ đễnh, nói trước quên sau, làm lộn rất nhiều mà nhắc note lại vẫn không làm.
Kỹ năng nghe và hiểu: nghe một hiểu mười, cái này được các sếp đánh giá rất cao, một vấn đề mà cấp trên chỉ cần nói sơ qua là bạn đã hiểu và làm tốt thì sẽ ghi điểm rất tốt. còn người lại giai đoạn đầu người ta có thể giành thời gian giải thích nhưng chuyện này không thể kéo dài mãi được. Và kỹ năng này cũng phải rèn luyện để có. Nhân tiện thì vấn đề này cũng liên quan đến kiến thức của bạn nữa. Người nói phải có người nghe, và muốn việc trao đổi thoải mái, dễ dàng thì mình phải nắm vững kiến thức cơ bản, dĩ nhiên là không bằng người kia nhưng phải có cái gì đó để ứng đối, chứ nói trao đổi với 1 người mà như đàn gảy tai trâu thì chẳng ai muốn đúng không? Đặc biệt: khi được giao việc nếu không hiểu vấn đề gì, hay lơ mơ gì đó phải hỏi lại ngay tránh trường hợp làm cho đã đến khi review lại thấy sai yêu cầu, hoặc nghe sơ sơ về tự mò, đến khi sếp qua xem thì vẫn đang mò 
-Kỹ năng thuyết trình: cái này ngày xưa mình không đề cao, nhưng đi làm mới thấy rất cần, các bạn không cần phải đứng trên sân khấu hay trên bục để diễn thuyết mà chỉ đơn gian là trình bày lên quan điểm của mình thôi, đó cũng là một vấn đề quan trọng. Mình đã gặp qua vài trường hợp nắm rõ kiến thức nhưng khi được hỏi lại không thể diễn đạt được, điều này ảnh hường đến đánh giá của người khác về bạn và cũng ảnh hưởng đến cả công việc của bạn và team.
- Quyền lợi của mình thì phải đòi: nghe rất là hợp lý những lại có chỗ không hợp lý nhỉ. Mình là sinh viên mới ra trường, mới zô làm thì không dám đòi hỏi, yêu cầu này nọ (ngày xưa mình cũng thế). Nhưng đó là quyền lợi của mình thì phải mạnh dạn đề nghị nha các bạn. Làm một thời gian nếu cảm thấy mức đãi ngỗ không tương xứng với năng lực thì các bạn có thể mail cho quản lý yêu cầu điều chỉnh trước khi đưa ra quyết định ra đi . 
- Hòa đồng, năng động: năng động thì có thể không , nhưng hòa đồng thì bắt buộc, môi trường làm việc bây giờ chủ yếu là bầy đàn, nếu bạn sống tự kỷ, cô lập sẽ bị đào thải ngay. Phải tạo được mối quan hệ với tất cả các thành phần, từ người xấu kẻ tốt, quản lý, đồng nghiệp, nhân sự, kinh doanh... 
Cuối cùng: cuộc đời cũng như công việc luôn có 30% vất vả và 70% nhẹ nhàng, người thông minh thì người ta tập trung 30% vất vả đó trong khoảng thời gian đầu, ăn ngủ sống chết với nó,giải quyết xong nó thì khoảng thời gian sau sẽ nhẹ nhàng, dễ dàng. Còn những người còn lại lại trộn lẫn 30 và 70 phần đó, có khi đến cuối đời rồi vẫn chưa xong 30% kia. 
Đôi lời chia sẻ. Chúc thành công.
                                                                                Trần Ngô Hoàng Thành                                     


Chào các em.
Anh cũng có một số lời khuyên cho các em như sau:
Tiếng Anh: không có gì phải bàn cãi.
Căn bản: nên học kĩ OOP, Cấu trúc dữ liệu và giải thuật 1, và cơ sở dữ liệu (SQL). 
+Nâng cao: Design Pattern ( học 23 mẫu cơ bản).
- Technical 
+ Java Dev: Framework: Spring, Hirbernate ( hay JPA), jsp, servlet, jUnit, Nio, Netty
+ .Net Dev: Asp.net MVC, Unity or Mef ( giống Spring bên Java), Entity ( giống Hibernate), Enterprise library.
+ Web: HTML, CSS, jQuery, PHP, Angular Js, Node Js, Ruby on Rails.
Theo anh, nếu muốn đi làm ở một công ty lớn, việc đầu tiên nên tham gia và các đợt thực tập hay fresher để có thể thích nghi với môi trường làm việc và đồng thời thể hiện khả năng của mình. Vì là thực tập nên không bị gò bó quá nhiều vào deadline, release cho khách nên đây là cơ hội cho các em thể hiện khả năng của mình, và lý do cuối cùng là nếu được deal lương khi phỏng vấn chính thức thì người phỏng vấn đã biết phần nào năng lực của mình, nên không quá khó cho 2 bên. (tầm 350 - 400 ( đã tính phụ cấp - bảo hiểm thất nghiệp) cho SV mới ra trường là OK).
p/s: Nhiêu đó thôi, chúc các em có những quyết định tốt cho tương lai của mình.
thôi anh đi ASUS Expo 2014 đây. )
                                                                                   Nguyễn Hoàn                                                    

Mình mới đi làm cũng hơn 3 tháng thôi, nhưng cũng có cơ hội làm cho 2 công ty và tiếp xúc, quen biết với nhiều nhà tuyển dụng, mình muốn chia sẻ cho các bạn chưa có nhiều kinh nghiệm một vài điều như sau:
1. Về Kỹ thuật, chuyên môn: Mình thấy rất nhiều bạn hỏi về vấn đề là nên đi theo hướng nào, ngôn ngữ nào thì lương cao. Việc này thật ra không quá quan trọng, chỉ trừ khác biệt quá lớn như phần cứng với phần mềm. Còn các ngôn ngữ như Java, .Net, PHP, Ruby on Rails... đều có thể exchange qua lại chỉ cần bạnvững lập trình căn bản và có khả năng đọc hiểu các framework, thuật toán . Ở đại học, mình chỉ biết .Net, chưa bao giờ làm front-end, giờ mình code Java, CSS, HTML, Jquery, Javascript, cũng không có vấn đề quá lớn.

2. Việc chọn công ty: Theo ý kiến riêng của mình, với những bạn chưa có kinh nghiệm, lập trình chưa vững, hãy chọn công ty lớn có các chương trình cho intership, fresher, nơi có không gian, có thời gian cho các bạn học hỏi. Có thể một số công ty tuyển đại trà và lương ở mức tương đối thật, nhưng với các công ty lớn như vậy bạn có thể học rất nhiều kinh nghiệm lập trình, mô hình, quy trình của họ. Ở một số công ty nhỏ, lương cao thì cao thiệt, nhưng việc tự bơi và chạy theo tiến độ project khá nặng nên cơ hội cho các bạn nâng cao kĩ năng rất ít. Đừng nghĩ là cty được llợi gì mà hãy nghĩ mình được lợi gì từ cty

3. Full stack: Mình nghĩ đi theo hướng full stack (Có nghĩa là biết làm tất cả mọi việc trong quy trình làm phần mềm, biết hết từ server, data đến Backend, UI, UX,... bạn sẽ kiêm cả BA, Dev Back-end, Dev Front-end, quản trị database, tester... ) rất dễ mang đến thành công cho các bạn, đi đâu cũng làm được, dễ lên vị trí cao hơn. Các công ty lập trình giờ cũng bắt đầu tìm hiểu và theo hướng này. Các bạn có thể tìm hiểu về scrum và agile.

4. Tố chất để được tuyển dụng: có 2 yếu tố cực kì quan trọng mà đi đâu mình cũng được nhắc tới. 
Thứ nhất là Đạo đức, thái độ: Người giỏi không thiếu, chỉ có người với thái độ tốt là khó tìm. Thái độ tốt ở đây là thái độ nghiêm túc với công việc của mình, cởi mở với những cái mới và sẵn sàng hỗ trợ mọi người. Một bạn Developer mới ra trường có thể được train về Ruby on Rails hoặc iOS trong 1-2 tháng và làm được việc ngay, nhưng một người kênh kiệu và tự cao thì rất khó để thay đổi họ. Mình làm 2 công ty và đã chứng kiến các bạn cực kì giỏi nhưng chỉ biết có một mình mình ra đi rồi. Đạo đức nữa, mình nghĩ các bạn hãy thành thật, thậm chí các bạn xin nghỉ việc vì cty khác offer lương cao hơn, cũng hãy nói thẳng. Mình nghe rất nhiều nhà tuyển dụng nói rằng họ không thích nghe vòng vo, hôm trước vừa nghe bạn báo nghỉ làm để dành thời gian học, hôm sau đã thấy check-in ở cty khác, cái nhìn của họ về bạn sẽ không tốt là một chuyện, chuyện khác là các nhà tuyển dụng dù ở công ty đối thủ, cạnh tranh nhưng vẫn hay đi cafe, liên lạc và trò chuyện với nhau. Những gì bạn đã làm ở cty cũ, đừng nghĩ họ không biết.
Thứ hai là Kỹ năng (làm việc nhóm, giải quyết vấn đề, tiếng anh, giao tiếp...). Theo ý kiến chủ quan của mình, cái này quan trọng hơn cả technical. Các bạn có skill tốt hơn luôn có một bảng đánh giá tốt, lương cao hơn hẳn các bạn dev pro (mà chỉ biết code thôi). Anh manager của mình có chia sẻ trong những đợt interview anh luôn đánh giá các bạn có tham gia hoạt động nhóm, đoàn-hội, các chương trình tình nguyện xã hội hoặc có một team, một club riêng cao hơn các bạn khác vì những bạn này sẽ thân thiện, biết cách làm việc, phối hợp với người khác hơn.
Tiếng Anh cũng rất quan trọng. Có những cty không sử dụng tiếng anh vẫn thích tuyển người giỏi tiếng anh. Và chắc chắn là nếu bạn muốn lên vị trí cao hơn thì yếu tố đó là điều không thể thiếu

5. Hãy tập cái nhìn của user, để cái "tâm" vào việc mình làm: Từ lúc code các phần mềm nhỏ đem bán cho đến lúc làm cty như bây giờ, có một số chuyện làm mình bất ngờ nhưng ngẫm lại thấy rất đúng. Có những chuyện dev hay nghĩ là rất dễ, để từ từ code sau, nhưng với user lại là 1 chuyện rất quan trọng, hơn cả việc bạn release cho họ chức năng mới nữa, chẳng hạn như sort, search, hoặc là hiện giờ theo 24h/12h... mà những việc này bị 1 cái là ở đại học không chú trọng. Các bạn làm đồ án, luận văn, thầy cô thường chú trọng vào các technical mới, các thuật toán. Còn đi làm cty, chỉ cần 2 cái input lệch nhau 1px, hoặc cùng 1 loại input nhưng trang này validation min là 0, trang kia min là 1 thì task của bạn cũng fail rồi (mặc dù trang kia là task của người khác đi chăng nữa). Việc này cho thấy không những bạn phải quan tâm task của bạn mà còn phải quan tâm task của member khác nữa.
                                                                                                                                                09520460                                       


Nắm vững 3 cái này trước: Java Core, OOP và Java Design Pattern.
Từ đó nghiên cứu về các framework của Java sẽ tương đối là suôn sẻ 

Với hướng đi là J2EE thì một số thứ sau nếu biết nhiều sẽ rất lợi hại nè:
1/ Java Annotation
2/ XML
3/ Eclipse (o3o)/
3/ Maven/Ant 

                                                                                                                                               Nguyễn Hoàng Đức