7 kỹ năng cần có của lập trình viên trong năm 2013

Người đăng: share-nhungdieuhay on Thứ Bảy, 30 tháng 11, 2013

1. HTML5 / CSS
      Chắc hẳn các bạn lập trình web đều biết HTML không thể thiếu khi viết web. Nó là một ngôn ngữ cơ bản đơn giản để thể hiện một trang web. Để thể hiện được 1 trang web đẹp thì html thường được kết hợp với CSS để định dạng căn chỉnh, màu sắc. Ngoài ra còn kết hợp cả Javascript để thể hiện các hiệu ứng hoặc xử lý các event cơ bản trên trình duyệt client.

     Có thể nói html là ngôn ngữ cơ bản là trái tim của web, thậm chí được sử dụng trên cả các thiết bị di động và các hệ thống thiết kế cao cấp ví dụ như các máy tính bảng hay các dịch vụ SaaS cho phép người quản trị thông qua giao diện web.

     Gần đây html có sự phát triển lớn hơn nữa đó là sự ra đời HTML5 và hiện nay hầu hết các trình duyệt mới nhất đều đã hỗ trợ HTML5. Cùng với đó là các tùy chọn thiết kế có sẵn của CSS3 và tính tương tác của JavaScript đã đẩy các trang web linh hoạt hơn, hầu như không còn nhận ra sự khác nhau giữa ứng dụng dựa trên Web và các ứng dụng chương trình.

2. iOS Development
     Không phải quá ngạc nhiên khi nhắc đến các lập trình viên iOS, vì hầu hết các nguồn đáp ứng được công việc có liên quan đến XCode và Objective-C đều được đánh giá và tuyển dụng rất cao. Chính vì Apple bán cả di động và máy tính bảng nên yêu cầu các lập trình viên có thể viết các app trên cả 2 dòng thiết bị là khá nhiều.


     Trào lưu phát triển app cho Iphone và Ipad cách đây vài năm nhưng mạnh mẽ nhất là khoảng 2 năm trở lại đây. Chính vì thế nếu bạn đang có ý định phát triển app cho Iphone, Ipad và Ipod Tough thì đây chính là lúc bạn nên thử làm việc với nó.

3. PHP / MySQL
     Có lẽ không hấp dẫn bằng việc lập trình phát triển cho các thiết bị di động hay các công nghệ web mới hơn nhưng PHP vẫn quan trọng. Một ngôn ngữ lập trình mã nguồn mở đang được sử dụng bởi hơn 20 triệu website, và các website lớn đang sử dụng hiện nay có thể kể đến 2 đại diện như Facebook và Wikipedia. Bất kì blog, site tin tức nào được xây dựng trên WordPress hay Drupal cũng là mã nguồn được viết trên PHP.

     Có thể nói lập trình viên php đang là những người đang được tuyển dụng nhiều nhất theo đánh giá trên Elance. Kết hợp với MySQL thì WordPress đang được đứng hạng nhất trong số lượng các website được sử dụng.

4. Java / J2EE
    Việc phát triển dựa trên nền tảng Java và J2EE đang ngày càng được trọng dụng và các lập trình viên càng ngày càng được tuyển dụng cao trên nền tảng này trong năm 2013
Không giống các công nghệ kỹ thuật mới như phát triển hệ điều hành như Android và HTML5 thì nhu cầu kỹ năng lập trình Java luôn cần thiết và nó đang dần được trọng dụng trong vài năm gần đây

5. JavaScript
     Đối với web, JavaScript làm cho tính tương tác cao hơn đặc biệt hiện nay sự phát triển của các máy tính bảng và điện thoại di động đã loại bỏ Flash ra khỏi hệ điều hành. Bên cạnh đó là các thư viện JQuery hoặc định dạng dữ liệu chuẩn JSON phát triển khiến các công ty cần các lập trình viên giỏi JavaScript hơn bao giờ hết.


     Nếu bạn đang tìm kiếm để học lập trình Web, JavaScript chính là cái bạn cần học. Nếu bạn muốn bắt đầu Javascript thì bạn có thể tìm hiểu qua jQuery.

6. IT Project Management
     Một trong những công việc liên quan đến đằng sau những kỹ năng công nghệ không phải tất cả phải là kỹ thuật. Việc góp nhặt code, bảo trì, thiết kế phần mềm tất cả đều quan trọng. Nhưng sẽ vô ích nếu không có ai là người theo dõi và giám sát trong suốt quá trình hoàn thành dự án. Đó là lý do tại sao quản lý dự án được chứng nhận có thể tạo ra thêm lợi nhuận và lý do tại sao 40% các nhà quản trị CNTT đang tìm kiếm để thuê quản lý dự án trong năm 2013.

7. All Things “Cloud”
     Điện toán đám mây đang ngày càng phát triển mạnh, và việc tìm kiếm nhân lực về điện toán đám mây cần thiết ở bất cứ vị trí nào. Các công ty luôn tìm kiếm lập trình viên chuyên viên có thể ảo hóa hoặc phát triển các hệ thống Software-as-a-Service (SaaS), nó gần giống với Platform-as-a-Service (PaaS)

    Theo các khảo sát thì có khoảng 25% các công ty có kế hoạch tuyển dụng những người am hiểu SaaS và các dịch vụ liên quan đến “đám mây” trong năm 2013. Hay nói tóm lại là SaaS và các thuật ngữ sẽ càng ngày càng xuất hiện nhiều trên các website tuyển dụng việc làm.
    Và tất nhiên, SaaS và PaaS có thể sử dụng bất kỳ ngôn ngữ lập trình và các công nghệ cụ thể nào đó đáp ứng được chứ không nhất thiết phải là các ngôn ngữ hay công cụ nào trong bài viết này.
More about

Quy tắc đặt tên và tiêu chuẩn lập trình trong C#

Người đăng: share-nhungdieuhay on Thứ Sáu, 15 tháng 11, 2013


Quy ước đặt tên và tiêu chuẩn

1. Quy tắc Pascal: Viết hoa chữ cái đầu tiên của mỗi từ (VD: Student, StudentDetail, ...)
* Sử dụng cho: Phương thức (method), Giao tiếp (Interface), Tập hợp (Enum), Sự kiện (Events), Ngoại lệ (Exception), Không gian tên (NameSpace), Thuộc tính (Property)
2. Quy tắc Camel: Viết thường từ đầu tiên và viết hoa chữ cái đầu tiên của từ kế tiếp (VD: student, studentDetail,...)
* Sử dụng cho: Tầm vực biến (Protected/Private), các Tham số (Parameter)

Sử dụng quy tắc Pascal cho phương thức:
public class HelloWorld{  
  ...  
}  
Sử dụng quy tắc Pascal cho phương thức:
public class HelloWorld{
  void SayHello(string name){
      ...
  }
}
Sử dụng quy tắc Camel cho biến và tham số của phương thức 
public class HelloWorld{
 int totalCount = 0;
 void SayHello(string name){
  string fullMessage = "Hello " + name;
  ...
 }
}
- Không nên sử dụng các tiền tố kèm dấu như: M_ để đặt tên biến, ví dụ như 
       string m_sName;
       int nAge;
Mặc dù khai báo như vậy hợp lệ, nhưng chuẩn viết code .NET không khuyến cáo sử dụng. Tất cả biến nên dùng quy tắc Camel, sử dụng các từ có nghĩa, mô tả được tên biến 

- Không dùng chữ viết tắt, tên, từ địa phương,... mà hãy dùng từ rõ nghĩa như: name, address, phone,...
- Không đặt tên biến một ký tự như: i, x, n,... mà hãy đặt tên biến như index, temp. Ngoại trừ trường hợp sử dụng trong vòng lặp như sau: 
for ( int i = 0; i < count; i++ ){
     ...
}
Nếu biến chỉ được sử dụng để đếm và không sử dụng ở bất kì nơi nào ngoài vòng lặp, nhiều người thích dùng (i) để đặt tên cho biến. 

- Không dùng dấu gạch dưới (_) trong tên biến
Tên NameSpace nên theo chuẩn như sau
<company name="">.<product name="">.<top level="" module="">.<bottom level="" module=""></bottom></top></product></company>

- Tên file nên đặt trùng với tên lớp. Ví dụ: với lớp HelloWorld thì tên file nên là HelloWorld.cs (or HelloWorld.vb)
- Thụt lề: Nên dùng TAB thay về space (phím cách)
- Ghi chú (comment) nên cùng cấp với đoạn mã muốn comment. Cặp dấu ngoặc nhọn ({}) cũng nên cùng cấp với đoạn mã.
Cách ra một dòng để tăng tính rõ ràng của mã
bool SayHello (string name){
  string fullMessage = "Hello " + name;
  DateTime currentTime = DateTime.Now;
    string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();
  MessageBox.Show ( message );
  if ( ... ) {
        // Do something
        // ...
        return false;
  }
        return true;
  }
- Với if, if-else, for, while, do-while dù chỉ có một hay nhiều dòng lệnh, cũng nên cho vào trong cặp dấu ngoặc nhọn ({}) 
if ( ... ) {
      // Do something
}
Nguyên tắc viết code:

Để tránh trường hợp file (.cs, .vb) quá lớn.

Nếu một file có hơn 300-400 dòng lệnh, bạn nên nghĩ đến việc chia nhỏ nó vào các Class
Tránh viết các phương thức dài, một phương thức thông thường chỉ nên từ 1-25 dòng lệnh. Nếu một phương thức có hơn 25 dòng lênh, bạn nên chia nhỏ thành các phương thức xử lý riêng. 
Tên phương thức cần rõ ý, nêu được mục đích của phương thức. Nếu bạn đặt tên phương thức rõ ràng, bạn sẽ không cần phải viết tài liệu miêu tả về ý nghĩa của phương thức.
Tốt - Tên phương thức rõ nghĩa 
void SavePhoneNumber ( string phoneNumber )
{
  // Save the phone number.
}
Không tốt - Tên phương thức không rõ nghĩa 
// This method will save the phone number.
void SaveData ( string phoneNumber )
{
  // Save the phone number.
}
Một phương thức chỉ nên xử lý một công việc. Không nên gộp quá nhiều "trách nhiệm" cho một phương thức
Tốt 
 void SaveAddress ( string address )
 {
  // Save the address.
  // ...
 }

 void SendEmail ( string address, string email )
 {
  // Send an email to inform the supervisor that the address is changed.
  // ...
 }
Không tốt 
 // Save address and send an email to the supervisor
 // to inform that the address is updated.
 SaveAddress ( address, email );
 void SaveAddress ( string address, string email )
 {
  // Job 1.
  // Save the address.
  // ...
 // Job 2.
  // Send an email to inform the supervisor that the address is changed.
  // ...
 }
Sử dụng kiểu dữ liệu đặc trưng thay vì sử dụng từ lớp
Tốt 
 int age;
 string name;
 object contactInfo;
Không tốt 
 Int16 age;
 String name;
 Object contactInfo;
Nên sử dụng Enum ở bất kì nơi nào cần thiết. Không nên dùng số hay chuỗi để kiểm tra các giá trị
Tốt 
enum MailType
 {
  Html,
  PlainText,
  Attachment
 }
 void SendMail (string message, MailType mailType)
 {
  switch ( mailType )
  {
   case MailType.Html:
    // Do something
    break;
   case MailType.PlainText:
    // Do something
    break;
   case MailType.Attachment:
    // Do something
    break;
   default:
    // Do something
    break;
  }
 }
Không tốt 
void SendMail (string message, string mailType)
{
  switch ( mailType )
  {
   case "Html":
    // Do something
    break;
   case "PlainText":
    // Do something
    break;
   case "Attachment":
    // Do something
    break;
   default:
    // Do something
    break;
  }
}
      Nên sử dụng private thay vì public hay protected cho biến. Nếu muốn, hãy dùng properties và thiết lập code để bảo vệ tài nguyên. 
      Không sử dụng được dẫn tĩnh cục bộ trong lập trình ("D:\software\..."). Hãy sử dụng đường dẫn tương đối ("../images/home.jpg")
      Trước khi chương trình hiển thị, hãy kiểm tra lại toàn bộ các yêu cầu về tập tin, ràng buộc, kiểm tra liên kết cơ sở dữ liệu, ... để đảm bảo rằng chương trình sẽ hoạt động tốt
      Nếu phát hiện lỗi phát sinh, nên thông báo cho người dùng biết và "ghi chú" lại để có thể thực hiện các bước kiểm tra và khắc phục lỗi hoặc tạo các bản cập nhật.
More about

Shell: Viết script tính tổng S = 1 + ½ + 1/3 + ¼ + ... + 1/n (n nguyên, nhập từ bàn phím)

Người đăng: share-nhungdieuhay on Thứ Tư, 13 tháng 11, 2013


Mã nguồn:
clear
echo "n="
read n
i=1
s=0
while [ $i -le $n ]
do
  x=$(echo "scale=4; 1 / $i" | bc)
  s=$(echo "scale=4; $s + $x" | bc)
  i=`expr $i + 1`
done
echo "tong la: $s"
Tags: Lập trình Shell, lập trình Linux, Ubuntu, Script tính tổng
More about

Shell: Viết script tính can chi của năm dương lịch.

Người đăng: share-nhungdieuhay

clear
echo "nam bang"
read nam
case `expr $nam % 10` in
    0)can="canh" ;;
    1)can="tan" ;;
    2)can="nham" ;;
    3)can="quy" ;;
    4)can="giap" ;;
    5)can="at" ;;
    6)can="binh" ;;
    7)can="dinh" ;;
    8)can="mau" ;;
    9)can="ky" ;;
esac
case `expr $nam % 12` in
    0)chi="than." ;;
    1)chi="dau." ;;
    2)chi="tuat." ;;
    3)chi="hoi." ;;
    4)chi="ty." ;;
    5)chi="suu." ;;
    6)chi="dan." ;;
    7)chi="mao." ;;
    8)chi="thin." ;;
    9)chi="ti." ;;
    10)chi="ngo." ;;
    11)chi="mui." ;;
esac
echo "$can - $chi"
Tags: Lập trình Shell, lập trình Linux, Ubuntu, Script tính tổng
More about

Shell: Viết Script tính tổng các số lẻ từ 1-n (n nguyên, nhập từ bàn phím)

Người đăng: share-nhungdieuhay

clear
echo "n="
read n
i=1
tong=0
while [ $i -lt $n ]
do
  if [ `expr $i % 2` -ne 0 ]; then
      tong=`expr $tong + $i`
  fi
  i=`expr $i + 1`
done
echo "tong la: $tong"
Tags: Lập trình Shell, lập trình Linux, Ubuntu, Script tính tổng lẻ
More about

Shell: Viết chương trình Shell giải phương trình bậc nhất : Ax + B = 0 (a, b nguyên, nhập từ bàn phím)

Người đăng: share-nhungdieuhay


clear
echo "Chuong trinh giai phuong trinh bac nhat"
echo "Nhap gia tri a = "
read a
echo "Nhap gia tri b = "
read b

if [ $a -eq 0 ];then
            if [ $b -eq 0 ];then
                        echo "Phuong trinh vo so nghiem"
            else
                        echo "Phuong trinh vo nghiem"
            fi
else
            x=$(echo "scale=3; (-$b)/$a" | bc)
            echo "Phuong trinh co 1 nghiem x = $x"
fi
Tags: Lập trình Shell, lập trình Linux, Ubuntu, Script tính tổng, giải phương trình bậc nhất
More about

Shell: Viết Script giải hệ phương trình bậc nhất 2 ẩn.

Người đăng: share-nhungdieuhay on Thứ Bảy, 9 tháng 11, 2013

Ax + By = C
A1x + B1y = C1


hpt(){
          D=$(echo "scale=3; $1 * $5 - $2 * $4" | bc)
          Dx=$(echo "scale=3; $3 * $5 - $2 * $6" | bc)
          Dy=$(echo "scale=3; $1 * $6 - $3 * $4" | bc)
          if [ $D -ne 0 ];then
                   x1=$(echo "scale=3; $Dx/$D" | bc)
                   x2=$(echo "scale=3; $Dy/$D" | bc)
                   echo "Phuong trinh co nghiem duy nhat: x = ($x1,$x2)."
          elif [ $D -eq 0 ] && [ $Dx -eq 0 ] && [ $Dy -eq 0 ];then
                   echo "Phuong trinh vo so nghiem"
          else
                   echo "Phuong trinh vo nghiem"
          fi
}

hpt $1 $2 $3 $4 $5 $6

#Lưu ý: khi chạy admin@ubuntu~#/demo/bai1.sh  4 3 8 5 1 6

Tags: Lập trình Shell, lập trình Linux, Ubuntu, Script tính tổng, giải hệ phương trình bậc nhất 2 ẩn
More about

Shell: Viết script in ra chuỗi đảo ngược từ chuỗi ban đầu.

Người đăng: share-nhungdieuhay on Thứ Sáu, 8 tháng 11, 2013

Ví dụ: Chuỗi ban đầu: 123. Chuỗi đảo ngược: 321.
clear
echo -e -n "Nhap chuoi:\t"
read sau
h=${#sau}
until [ $h -le 0 ]
do     
          echo -n `expr substr $sau $h 1`
          h=$(($h - 1))
done
echo -e "\n"
Tags: Lập trình Shell, lập trình Linux, Ubuntu, Script tính tổng, in chuỗi, chuỗi đảo ngược
More about

Shell: Viết script tính tổng các chữ số của 1 số nguyên được nhập vào từ bàn phím.

Người đăng: share-nhungdieuhay

clear
t=1
while [ $t -eq 1 ]
do
          clear
          echo -e -n "Nhap so:\t"
          read so

          if [ ${#so} -eq 3 ]; then
                   a=$(($so % 10))
                   b=$((($so / 10) % 10))
                   c=$((($so / 100) % 10))
                   echo -en "Tong cac ky so la: `expr $a + $b + $c`"
          else
                   echo -en "\nNhap so trong pham vi tu 100 -> 999."
          fi
         
          while [ $t -ne 0 ]
          do
                   echo -en "\nBan co muon tiep tuc? (Nhap 0 hoac 1)\t"
                   read t
                   if [ $t -eq 1 ];then
                             break
                   fi
          done
done
Tags: Lập trình Shell, lập trình Linux, Ubuntu, Script tính tổng
More about

Shell: Viết script tìm số lớn nhất, nhỏ nhất trong 3 số được nhập từ dòng lệnh

Người đăng: share-nhungdieuhay

clear
declare -a a
a=( [0]=$1 [1]=$2 [2]=$3 )
max=${a[0]}
min=${a[0]}
l=${#a[*]}
for ((i=0;i<$l;i++))
do
          if [ $max -le ${a[i]} ];then
                   max=${a[i]}
          else
                   min=${a[i]}
          fi
done
echo "Phan tu lon nhat la: $max"
echo "Phan tu nho nhat la: $min"

#Chạy lệnh:” admin@ubuntu~#/demo/test.sh 5 2 9 
More about

JavaScript: Kiểm tra số n (nguyên, nhập từ bàn phím) có phải số nguyên tố không ?

Người đăng: share-nhungdieuhay

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<script>
var i,n,nt=1;
function nguyento(x){
if(x==1 || x==2) nt=1;
if(x>2){
for(i=2;i<=Math.sqrt(x);i++){
if(x%i==0){nt=0; break;}
}
}
return nt;
}
n=prompt("Nhap gia tri n:");
if(nguyento(n)==1) document.write(n + " LA so nguyen to")
else document.write(n + " KHONG la so nguyen to")
</script>
</body>
</html>

More about

JavaScript: Tìm UCLN, BCNN của 2 số a, b (nguyên, nhập từ bàn phím)

Người đăng: share-nhungdieuhay on Thứ Hai, 4 tháng 11, 2013

<html>
<head>
<title>UCLN</title>
</head>
<body>
<script language="JavaScript">
var a,b;
function UCLN(x,y){
while(x!=y)   {
            if(x>y) x=x-y;
            else y=y-x;
}
return x;
}
a=prompt("Nhap gia tri a:");
b=prompt("Nhap gia tri b:");
document.write("Uoc chung lon nhat: " + UCLN(a,b))
document.write("Boi chung nho nhat: " + a*b/UCLN(a,b))
</script>
</body>
</html>
Tags: Lập trình, JavaScript, BCNN, UCLN
More about