Monthly Archives: July 2012

Những website hỗ trợ cho việc lập trình Iphone

http://fukyo-it.blogspot.com/

DataSource Bind với Entity FrameWork của Microsoft

Entity Framework trong ngôn ngữ C# là một framework cực mạnh hỗ trợ tương tác giữa chương trình và cơ sở dữ liệu. Một trong những tình năng hỗ trợ lập trình viên tốt nhất chính là Binding Data với DataGridView.

 

namespace LaPKan.TestingNew

{

   public partial class BindingData : Form

   {

       TamDucEntities entity;

 

       public BindingData()

       {

           InitializeComponent();

           entity = new TamDucEntities();

 

           dgvChucDanh.AutoGenerateColumns = false;

           dgvChucDanh.DataSource = entity.DM_ChucDanh;

       }

 

       private void btn_Save_Click(object sender, EventArgs e)

       {

           entity.SaveChanges();

       }

   }

}


Đây là cách sử dụng đơn giản của entity trong việc kết nối 1 datagridview với một database.
Trong ví dụ trên:
Ta đã kết nối bảng DM_ChucDanh với DatagridView.
btn_save làm nhiệm vụ update phần cập nhật của chương trình lên trên Database.

Lưu ý: Các Column trên được tạo ngoài giao diện và dùng thuộc tính DataPropertiesName để set mối liên hệ giữa Column với thuộc tính trên bảng. Chúng kết nối với nhau thông qua entity và có khả năng sửa chữ đồng thời.
– Có thể sử dụng CellBeginEdite và CellEndEdite để xem xét những thay đổi có phù hợp với những tiêu chuẩn mà mình đã set trong database hay không.

Thuộc tính phụ thuộc trong lập trình C#

Trong một class của C# có khả năng các thuộc tính trong nó tương tác lẫn nhau tạo ra các công thức chung nằm trong mỗi class.

Ví dụ: Trong toa thuốc, một loại thuốc có ID, tên thuốc, đơn giá và số lượng bán được. Những thứ này cần được lưu vào trong cơ sở dữ liệu đầu đủ chứ không thể lấy từ bàng (table) khác qua để sử dụng được. Đơn giản vì:
* ID và tên thuốc có thể sử dụng bên bảng Danh mục thuốc (DM_Thuoc)
* Đơn giá và số lượng không thể sử dụng trên bảng danh mục được vì mỗi toa thuốc có đơn giá và số lượng khác nhau.
* Có một cái thuộc tính sẽ phát sinh trong quá trình làm việc đó là Tổng tiên được tính ra. Tổng tiền này thường có giá trị bằng < Đơn giá  x Số lượng > nhưng lại không phải lúc nào cũng thế. Có khả năng nhà thuốc sẽ giảm giá cho người mua với số lượng lớn hay do người quen mà giảm giá như vậy sẽ ảnh hưởng để tốc độ xử lý của phần mềm nên ta cho TongTien vào như một thuộc tính căn bản để có thể lưu trữ lại dễ dàng.

public class ThuocNgoaiTru

   {

       private Double myTongTien = 0;

       private Double mySoLuong = 0;

       private Double myDonGia = 0;

 

       public int STT { get; set; }

       public String TenDuoc { get; set; }

       public Double DonGia

       {

           get

           {

               return myDonGia;

           }

           set

           {

               myDonGia = value;

           }

       }

       public Double SoLuong

       {

           get

           {

               return mySoLuong;

           }

           set

           {

               myTongTien = myDonGia * value;

               mySoLuong = value;

           }

       }

 

       public Double TongTien {

           get

           {

               return myTongTien;

           }

           set

           {

               myTongTien = value;

           }

       }

 

       public override string ToString()

       {

           return TenDuoc + “. Đơn giá: ” + myDonGia + “\r\n Số lượng: ” + mySoLuong + “\r\n Tổng tiền: ” + myTongTien + “\r\n”;

       }

   }


Cuối cùng override hàm ToString để có được kết quả như ý. Lúc này không thể dùng hàm get và set default được mà phải sử dụng một thuộc tính trung gian để lưu trữ lại dữ liệu trong đối tượng là cái thuộc tính riêng (private property).

Khởi động lập trình Object C

B. Lập trình khởi động:

Lập trình IOs rất khó, không phải vì bản thân nó khó mà vì cách mà Apple làm nó khó. Hầu hết các ngôn ngữ đều có những biến chung (int, String), cách vận hành chung (. để gọi các thuộc tính) trong khi ngôn ngữ của Apple lại có các sử dụng hoàn toàn khác. Đây chính là khẩu hiệu của Apple “Think Different” (Nghĩ khác).

Làm quen với C Object:

I. Những khác biệt giữa C và Object C:

1. Những khác biệt căn bản:
a. Các khác biệt:
Mặc dù cũng là ngôn ngữ C nhưng C Object có cấu trúc hoàn toàn khác so với C/C++. Là một lập trình C# hơn một năm trời, nhưng khi nhìn vào C Object của Apple, tôi hoàn toàn chả hiểu cái gì về nó. Nó giống như việc đang sử dụng tiếng Việt, tiếng Anh (cùng dùng chữ Latin) mà lần đầu tiên nhìn thấy chữ Hán, tiếng Nhật (chữ tượng hình).

Đối với Việt Nam, ít nhật chúng ta đã dùng chữ Hán-Việt (chữ Trung Quốc được dịch theo chữ Nôm) còn đỡ, mấy thằng Tây nhìn vào là không hiểu gì luôn.

Nhưng dần dần cũng khám phá ra rằng C Object chỉ thay đổi về cấu trúc của nó chứ hoàn toàn có những lệnh giống nhau như sau:

C/C ++

Objective-C

#include “library.h” #import “library.h”
this self
private: @private
protected: @protected
public: @public
Y = new MyClass() Y = [[MyClass alloc] init];
try, throw, catch, finally @try, @throw, @catch , @finally

Tất cả những class trong Object-C đều có chung cấu trúc (Struct “id”)

– @systhesizel là một dạng viết tắt trong Object-C cho phép tạo hàm Getter/Setter mà không phải tự đánh vào. Tuy nhiên sau phiên bản Xcode 4.3 thì dòng này là dư thừa vì Xcode 4.3 tự động thêm ẩn vào khi chương trình chạy với cấu trúc (tên => _tên), bạn không cần phải @synthesize trong file .m nữa.
– IB là viết tắt của Interface Builder dành riêng cho những trình điều khiển dành riêng cho interface (Controller)

b. Các phương thức làm việc trong Xcode:
– Muốn cho một controller được kết nối (delegate) với một hàm (function) trong Xcode, giữ phím control để kéo vào trong Action muốn được liên kết

2. Cách gọi hàm:
– Cách gọi hàm trong Object C rất giống với C#/C++ tuy nhiên cách viết của nó khác tạo nên cảm giác chúng ta không thể hiểu nổi nhưng nếu xem kỹ lại và quen thuộc với nó thì cúng chả có gì khác (Sao không để quách nó giống nhau đỡ cho tôi phải mất thời gian nghiên cứu không):
+ Trong C++/C#, method được sử dụng như sau:
myObject.SomeMethod();
+ Trong Object , method nó thành:
[myObject SomeMethod]

– Trong trường hợp có Parameter:
+ Trong C++/C#, method được sử dụng như sau:
myObject.SomeMethod(20);
+ Trong Object , method nó thành:
[myObject SomeMethod:20]

– Trong trường hợp có nhiều Parameter:
+ Trong C++/C#, method được sử dụng như sau:
myObject.SomeMethod(20, 40);
+ Trong Object , method nó thành:
[myObject SomeMethod:20: 40]

– Gọi hàm theo nhiều lớp:
+ Trong C++/C#, chúng được sử dụng như sau:
myObject.SomeMethod().OtherMeThod();
+ Trong Object , nó trở thành:
[[myObject SomeMethod] OtherMethod];

3. Kết luận:

Bạn sẽ thấy cách gọi hàm của của Object C dài hơn, khác biệt với những ng6n ngữ khác nhưng nó có dụng ý riêng. Các gọi hàm của Object C có khác biệt so với cách gọi hàm bình thường tuy nhiên nếu đã dùng quen thì bạn sẽ thấy nó rất tuyệt bởi vì IDE Xcode hỗ trợ cực tốt cho việc lập trình với cấu trúc đó.

Chuẩn bị tư tưởng cho việc lập trình Iphone

II. Tư tưởng:

* Những lời khuyên dành cho việc bắt đầu ra riêng:

Đây là những lời khuyên của một dân thiết kế chuyên nghiệp rất nổi tiếng, với kinh nghiệm 7 năm làm một thiết kế tự do (Daive Airey)

I. Nhìn vào một bức tranh lớn:

Tạo ra một kế hoạch kinh doanh hiện đại ngay từ đầu sẽ giúp bạn có khả năng vượt qua những khó khăn của ngày đầu lập nghiệp. Nó cũng chỉ ra cho bạn những mục tiêu cần hoàn thành để bạn không lạc lối khi đi trên con đường lập trình. Lập trình không đơn giản như bạn nghĩ, nó bao gồm rất nhiều những nhánh riêng mà mỗi nhánh có những đặc điểm cần phải lưu ý. Thêm vào đó mỗi hướng đi đều sẽ mang lại cho bạn tiền bạc rất lớn nhưng đòi hỏi bạn phải chú tâm vào một nhánh chứ không phải cứ bao hết cái này đến cái khác.

Lập trình chung có thể chia làm các nhánh sau:

– Lập trình các ứng dụng dành riêng (cho một ngành, cho một dịch vụ, cho một mảng nào đó) và những mảng này khá nhỏ và riêng biệt. Chẳng hạn như về giáo dục, học tập.

– Lập trình webs, đơn giản nhưng chú trọng vào đồ họa và có số lượng lớn người sử dụng.

– Lập trình Mobile (IOS, Android và có thể có cả Windows Phone) hiện tại đang là ngành hot nhất vì lịch sử chưa dài, đang rất cần lao động, tiếp cận được với thị trường thế giới.

– Lập trình ứng dụng thương mại, áp dụng không phân biệt ngành nghề hoặc ít kén chọn ngành nghề, ứng dụng IDM, Office


* Những đức tính mà bạn cần có:

– Trung thực: theo David thì đây là điều cần có khi bạn làm bất cứ hoạt động kinh doanh nào nhưng theo tôi thì không vì nó phụ thuộc vào vị trí địa lý, văn hóa của quốc gia. Ở Việt Nam, việc bạn trung thực chả giúp bạn được thêm chút nào đâu, nhưng ở thị trường thế giới thì khác, trung thực là đức tính hàng đầu. Gia nhập AppStore chính là gia nhập thị truờng thế giới, hãy bỏ đi cái tính cơ hội, nịnh bợ để hòa mình vào thế giới, tỏa sáng tài năng

– Chúng ta, những người thiết kế, lập trình không phải là những con buôn, những thằng marketing. Chúng ta khó mà lừa gạt người khác. Cứ sử dụng khả năng của mình, nó sẽ đem lại thu nhập lớn hơn vì nó có lợi ích cho mọi người. Đừng cư xử như những loại lừa lọc như thế.

– Cương quyết: Đây chính là những gì tôi muốn nói ở phía trên, lập trình có rất nhiều những thứ có thể phát triển. Chọn một cái và thật giỏi nó trước đã sau đó hãy nhào qua những thứ khác. Hãy dũng cảm bỏ qua những thứ khác, đừng nhìn người ta kiếm tiền được từ những thứ đó mà cảm thấy những gì mình đang làm thật uổng phí. Bạn đang lập trình mobile, thấy thằng làm website kiếm nhiều tiền lại chạy qua làm website. Rut cuộc bạn chả giỏi thứ nào, cái gì cũng không kiếm được tiền vì bạn dở dở ương ương ở giữa.

– Những lựa chọn phụ: Thành thực mà nói, lớp trẻ bây giờ coi phim quá nhiều. Những gì trên phim là những thứ được làm cho nghiêm trọng hơn, những lựa chọn gần như chỉ có một, những cách đơn giản bị bỏ qua vì phim cần tạo kịch tính. Trong cuộc sống thực, quyết định không phải là đường đi duy nhất, hãy chọn những thứ dễ dàng mà đem lại lợi ích cao, làm những thứ phức tạp mà người khác không cần thì cũng vậy thôi.

– Quan trọng nhất, bạn hãy luôn nghĩ về những lối đi phụ, những gì bạn có thể làm được nếu không thành công. Khi kế hoạch chính của bạn sụp đổ, nó không phải là ngày tận thế. bạn nên biết rằng tất cả những gì bạn làm đều được mọi người đánh giá. Bạn cố gắng xây dựng một công ty, một thương hiệu, những việc bạn làm sẽ có rất nhiều người biết đến. Những thứ bạn làm luôn luôn có ưu và khuyết điểm và người ta luôn biết điều đó. Vậy bạn đừng lo, nếu nhưng bạn thất bại sẽ luôn có người khác mướn bạn nếu họ thấy được sự cố gắng của bạn khi bạn làm việc. Vậy hãy luôn cố gắng, dù thành công hay thất bại bạn luôn luôn đạt được một thứ gì đó, nếu đó không phải là thành công thì đó chính là kinh nghiệm. Những người không làm được gì là những người chẳng có chút cố gắng nào cho công việc của mình.

– Con người: Chính là yếu tố quan trọng nhất khi làm việc. Đừng bao giờ coi thường phần này. Bạn và những người trong team phải là những người giỏi nhất. Đừng tìm những người quen để cảm thấy sự an tòan khi làm việc vớii những người quen. Lý do là người càng quen thì làm việc càng cẩu thả bết bát, càng làm kế hoạch chậm hơn, mà chậm hơn thì nghĩa là bạn đang mất đi rất nhiều tiền. Những người bạn hợp tác phải là những người giỏi nhất với giá tiền đó, với khả năng của bạn. Hãy đi tìm những người giỏi và chứng tỏ bạn giỏi hơn người khác ở những điểm khác. Một điều quan trọng hơn nữa, không đưa hết những gì bạn có cho người khác trước khi bạn có một sự hợp tác chắc chắn. Bạn cần làm cho người khác hiểu rằng bạn giỏi hơn người ta nhưng cũng phải làm cho người ta cần bạn.

– Việc đầu tiên chính là bạn phải làm cho chính bạn trở nên giỏi hơn trong số việc nào đó. Sau đó là tích lũy những điểm mà chỉ bạn có đươc, đó là những chìa khóa không phải ai cũng giao ra. Những người đã có một số thứ trong tay rất dễ để tìm người tài giỏi hơn bạn. Hãy giữ lại những chìa khóa và giao ra những cánh cửa. Ngoài ra, Việt Nam chính là nơi mà người ta sẵn sàng làm những việc như thế, hãy đề phòng

– Tiền cũng là một thứ cực kì quan trọng. Chi dùng không đúng thì không thể nào làm cho công ty lớn mạnh lên nổi, có thể chết trước khi kịp phát triển. Hãy sử dụng tiền một cách khôn ngoan. Tiền cũng là một trong những cách làm thắt chặt sự liên kết. Đừng bao giờ dùng toàn bộ tiền của bạn, hãy để ngừơi khác góp vốn vào và làm cho người ta cảm thấy có sự liên kết.

II. Bàn bạc với bạn bè và gia đình về kế hoạch của mình:

Trừ phi bạn có vấn đề với gia đình không thì hãy bàn bạc với họ. Đơn giản là vì kế hoạch bạn nghĩ trong đầu không thể hoàn hảo, nói chuyện với họ là cách bạn làm cho nó hoàn hảo. Đối với những người không chuyên không rành mà bạn còn không thể trả lời được những câu hỏi của họ thì bạn không thể nào có thể đối thoại với những người đang trong nghề đâu

Khi đi làm ăn riêng, bạn cần mở rộng quan hệ hết mức có thể, những người bạn không ngờ đến sẽ đem lại khách hàng cho chính bạn.


III. Ban sẽ mất một vài khác hàng vì giá bạn quá cao:

– Hãy giữ giá của chính mình, nếu người ta chấp nhận thì bạn sẽ làm việc rất thoải mái không thì bạn cũng thoải mái vì không phải ức chế khi cảm thấy công việc của mình không được đánh giá cao

– Đặc biệtm bạn cũng sẽ mất khách hàng nếu giá của bạn đưa ra quá thấp. Dù bạn thích hay không, khả năng của bạn cũng phải phù hợp với giá tiền đưa ra và đòi hỏi của khách hàng.


IV. Đừng lo lắng về giá:

– Mức giá của một dự án phụ thuộc vào:

– Kinh nghiệm

– Đặc điểm dự án

– Thời gian hoàn thành

– Các hỗ trợ

– Mức độ yêu cầu

– Tình hình kinh tế hiên tại

– Đặc điểm đia lý vùng miền

– Việc định giá sẽ cho bạn nhiều kinh nghiệm đau thương, nhưng rất cần thiết để cho bạn biết mình đang ở đâu. Vì vậy, quan trọng là bạn vui vẻ với giá mà mình đưa ra, đừng câu nệ quá vào những thời điểm ban đầu. Luôn cảm thấy giá mình đưa ra quá thấp, nếu thế thì đừng làm, ức chế sẽ chả giúp gì được cho bạn đâu. Hãy nhớ rằng mình đang làm những gì mình yêu thích và tiền bạc là phần thưởng phụ thêm.


V. Bạn sẽ mắc sai lầm:

– Bạn chắc chắn sẽ mắc sai lầm, cho dù bạn có nghiên cứu kĩ đến đâu đi chăng nữa thì sai lầm vẫn luôn luôn tồn tại. Vấn đề quan trọng là chúng ta sẽ đứng dậy như thế nào. Có những người ngay khi thấy sai lầm là đổ thừa tất cả cho hoàn cảnh và luôn coi mình không thể thất bại nếu không tại hoàn cảnh như thế. Thế giới luôn gắn liền với những thứ làm cho chúng ta phạm sai lầm. Tránh những thứ có thể làm cho chúng ta thất bại là nhiệm vụ của chính bạn và chỉ của bạn thôi. Nhược điểm chí mạng của dân Việt Nam là luôn có lý do cho việc thất bại và luôn luôn là do những thứ khác (“thời tiết”, “người khác”) nếu không có những thứ đó thì ai cũng sẽ thành công thưa quý vị. Hãy thừa nhận trung thực và tránh xa những thứ đã làm cho ta từng thất bại, từng chút môt chúng ta sẽ có thành công.

“Loại bỏ mọi yếu tố làm ta thất bại, ta sẽ thành công, khó mà làm khác được”

– Trong quá trình làm việc, bạn sẽ nhận được những than phiền, các xung đột. Hãy trung thực lắng nghe nó và cố gắng giải quyết nó, đời không giống như phim, không phải chỉ có một cách giải quyết duy nhất và cách giải quyết đó không phải lúc nào cũng khó khăn nhất và luôn có sai phạm.


IX. Viết blog:

– Những gì bạn biết cần được chia sẽ cho cộng đồng cho mọi người. Đó là điều nên làm. Dân Việt Nam lại ngược với người ta khi giấu tất cả những gì mình biết lại không lưu truyền. Đó là cái thói ích kỉ của những thằng Trung Quốc đã truyền qua đây. Trung Quốc luôn có những thứ bí truyền, gia truyền chỉ truyền trong những người trong một tập hợp nhỏ. Lỡ xảy ra chuyện gì thì coi như xong, bí truyền thành thất truyền luôn. Trong khi phương Tây thì ngược lại, họ chia sẽ mọi thứ nhưng có những chia sẽ là chia sẽ tính tiền. Bạn muốn sử dụng, vậy thì chi tiền ra đây, điều đó lam họ giàu.

– Viết những điều bạn biết chỉ làm hiểu biết của bạn thêm vững chắc, và được sự đóng góp của cộng đồng vào những gì mà bạn biết thôi. Bạn sẽ chẳng có thiệt hại nào đâu.


X. Cân nhắc về sự cộng tác:

– Mỗi dự án lớn đều đòi hỏi rất nhiều kỹ năng như web, minh họa, coding, flash, branding, planning, … Sụ tham lam sẽ giết chết chính bạn khi kéo dài dự án hoặc cho ra một dự án với chất lượng không cao. Bạn cần những người giỏi nhất (Con người).

– Một danh sách những người cộng tác có tiếng tăm chỉ khiến bạn được “cộng điểm” trong mắt khách hàng.

– Đừng vì những lợi ích nhỏ mà bỏ qua những dự án lớn và như đã nói ban đầu, hãy chọn cho mình một lãnh vực trước, nó sẽ giúp bạn nhiều hơn so với bao hàm tất cả.


XI. Làm việc với những người khó tính nhất:

– Khách hàng luôn là những người khó tính hơn hẳn những gì bạn nghĩ. Nếu khách hàng không hề phàn nàn hay có ý kiến gì về công việc, họ đang mất hứng thú và chú ý đến công việc của bạn. Hãy lấy lại sự chú ý của họ, nếu không bạn sẽ không có lần sau hay chính xác hơn bạn sẽ không bán được thêm bất cứ thứ gì cho họ nữa.

– Khách hàng phàn nàn nhiều, chứng tỏ họ đang chú ý và đang muốn sử dụng phần mềm của bạn. Hãy làm cho họ hài lòng, họ sẽ tiếp tục sử dụng phần mềm của chính bạn và giới thiệu nó cho những người khác. Đừng sợ hãi khi có những phàn nàn từ những khách hàng đang sử dụng, họ đang muốn thứ họ sử dụng hoàn chỉnh hơn vì họ đang muốn tiếp tục sử dụng nó.


XII. Thế bạn còn chờ gì nữa?

– Đây là lúc để bắt tay vào làm việc rồi. Bạn còn chần chờ gì nữa. Với những lý do như “tôi chưa có đủ tiền”, “tôi chưa có kinh nghiệm”, … Đó hoàn toàn là những lời biện hộ vô lý nhất mà bạn đang cố để ngăn cản chính mình. Bạn là một lập trình viên, một nhà thiết kế, bạn không cần nhiều tiền để bắt đầu. Hãy làm từ những cái nhỏ trước, những gì mà bạn đã có đầy đủ công cụ để làm, không thì “hãy lên kế hoạch đi” và tìm kiếm những gì cần thiết đê giúp bạn phát triển. Kinh nghiệm là thứ bạn sẽ đạt được sau khi làm việc chứ không phải trước khi làm việc, đừng cố gắng có kinh nghiệm trước khi làm việc, đó chỉ là lý thuyết.

– Một ghi chú quan trọng cho bạn, đừng có cố tạo ra một thứ gì chưa từng có trên thế giới. Ngay cả Facebook, Google trong thời điểm nó ra đời, nó cũng không phải là duy nhất, nó chỉ làm tốt công việc của nó và trở nên lớn mạnh thôi. Nhất là khi bạn không có kinh nghiệm thì đừng bao giờ cố gắng làm chuyện đó. Nếu bạn thấy, bạn làm được, bạn là siêu nhân thì bạn đã có thành công nào đó rồi, khỏi cần phải đọc thứ này. Nhưng nói thật, những người như vậy thường chỉ là những thằng ngu thật sự chỉ biết nói mà thôi.

Link tham khảo:

http://idesign.vn/content/an-tuong/kien-thuc/nhung-loi-khuyen-cho-viec-ra-rieng-cua-david-airey/

Lập trình IOS: Những bước đi đầu tiên

A. Các điều kiện để bắt đầu lập trình với IOS:

I. Phần cứng:

– Máy Macintosh: Đừng lý luận với tôi về vấn đề này, lập trình IOS cần máy Mac, vậy thôi

+ Bạn giả lập được máy Mac, tốt thôi nhưng nó chạy không ổn định, khó nâng cấp và đủ thứ những điều khó chịu nữa. Bạn muốn khổ, muốn nhiều thử thách thì cứ việc, tớ không quan tâm. Lập trình và thiết kế chương trình đủ khổ rồi, tớ không muốn khổ thêm.

+ Mua máy Mac cũ, okie thôi. Nhưng tớ thì không thích, vì máy cũ của Mac vừa khó kiếm lại chả tiết kiệm được bao nhiêu. Máy của Apple rất ít mất giá (so với máy cái máy khác thôi, ví dụ như PC sau 3-5 năm bạn bán còn được bao nhiêu tiền thì biết).

+ Mua máy mới thì sợ những nhà cung cấp dỏm, thay linh kiện. Thật là hết biết loại người này. Apple nổi tiếng là nhà cung cấp và bảo hành toàn cầu. Bạn đem ra bảo hành là nó bảo hành, đừng có nghe những thằng ngu khác lý luận. Chuyện bóc seal trước, thay đồ của Apple sẽ không thể xảy ra được đâu. Nếu có thì bạn nên mua vé số đi.

– Ngoài ra, có những người chỉ muốn thử nghiệm, cưỡi ngựa xem hoa thì lời khuyên là “Đừng vào học lập trình IOS làm gi” những kiến thức nền tảng này chả giúp đỡ gì cho bạn đâu. Rồi lấy lý do này ẻể cố gắng giả lập Mac (“Hackintosh”), làm vậy để làm gì?

+ Nếu bạn là người phát triển, việc xem xét bên ngoài chả thể tạo ra một phần mềm thật sự để đưa lên AppStore vì yêu cầu của Apple ngày càng cao. Phần mềm không có khả năng tương tác với người dùng sẽ bị loại ngay từ vòng gửi xe. Những ứng dụng vớ vẫn sẽ không có cơ hội lên Store để ra mắt thế giới mà có ra cũng chả ai mua khi có tới cả trăm ngàn phần mềm khác.

+ Nếu bạn muốn học qua tất cả các nền tảng và nghĩ rằng học lập trình Iphone sẽ có thể học được những thứ khác một cách dễ dàng thì bạn lầm rồi. Lập trình IOS khó hơn và khác biệt rất nhiều so với các ngôn ngữ khác. Chỉ những người có kinh nghiệm mới nên thử sức với nó. Lý do là vì lập trình IOS có tuổi đời thấp hơn nhiều so với các ngôn ngữ khác. Trong khi các ngôn ngữ khác đã đạt đến độ hoàn hảo của nó (98-99% thôi) thì IOS đang ở giai đoạn phát triển còn rất nhiều thứ để có thể định hình. Vì vậy mới lập trình thì đi học cái khác đi nhé.

* Ghi chú cho những ai chưa từng lập trình với hệ di động: Các lập trinh Mobile làm việc trên một màn hình rất nhỏ 3.5 inches như Iphone, với bộ nhớ không lớn và khả năng xử lý dữ liệu cũng không cao.

Việc này giống như ngành công nghệ thông tin được dịch chuyện thời gian về 20 năm trước khi những máy tính đầu tiên ra đời và chúng ta lập trình bằng các ngôn ngữ đời đầu

– Ngoài ra, do sự bảo mật của Apple nên việc can thiệp của chương trình vào hệ thống là cực kì hạn chế. Kể cả việc chạy nền hay sử dụng bất cứ tài nguyên nào của máy cũng là hữu hạn.

II. Tư tưởng:

* Những lời khuyên dành cho việc bắt đầu ra riêng:

Đây là những lời khuyên của tôi sau 2 năm nghiên cứu về lập trình IOS và làm việc lập trình. Nhận xét nếu bạn cảm thấy nó không đúng

I. Nhìn vào một bức tranh lớn:

Tạo ra một kế hoạch kinh doanh hiện đại ngay từ đầu sẽ giúp bạn có khả năng vượt qua những khó khăn của ngày đầu lập nghiệp. Nó cũng chỉ ra cho bạn những mục tiêu cần hoàn thành để bạn không lạc lối khi đi trên con đường lập trình. Lập trình không đơn giản như bạn nghĩ, nó bao gồm rất nhiều những nhánh riêng mà mỗi nhánh có những đặc điểm cần phải lưu ý. Thêm vào đó mỗi hướng đi đều sẽ mang lại cho bạn tiền bạc rất lớn nhưng đòi hỏi bạn phải chú tâm vào một nhánh chứ không phải cứ bao hết cái này đến cái khác.

Lập trình chung có thể chia làm các nhánh sau:

– Lập trình các ứng dụng dành riêng (cho một ngành, cho một dịch vụ, cho một mảng nào đó) và những mảng này khá nhỏ và riêng biệt. Chẳng hạn như về giáo dục, học tập.

– Lập trình web, đơn giản nhưng chú trọng vào đồ họa và có số lượng lớn người sử dụng.

– Lập trình Mobile (IOS, Android và có thể có cả Windows Phone) hiện tại đang là ngành hot nhất vì lịch sử chưa dài, đang rất cần lao động, tiếp cận được với thị trường thế giới.

– Lập trình ứng dụng thương mại, áp dụng không phân biệt ngành nghề hoặc ít kén chọn ngành nghề, ứng dụng IDM, Office

* Những đức tính mà bạn cần có:

– Trung thực: theo tôi thì đây là điều cần có khi bạn làm bất cứ hoạt động kinh doanh nào nhưng theo tôi thì không vì nó phụ thuộc vào vị trí địa lý, văn hóa của quốc gia. Ở Việt Nam, việc bạn trung thực chả giúp bạn được thêm chút nào đâu, nhưng ở thị trường thế giới thì khác, trung thực là đức tính hàng đầu. Gia nhập AppStore chính là gia nhập thị trường thế giới, hãy bỏ đi cái tính cơ hội, nịnh bợ để hòa mình vào thế giới, tỏa sáng tài năng

– Chúng ta, những người thiết kế, lập trình không phải là những con buôn, những thằng marketing. Chúng ta khó mà lừa gạt người khác. Cứ sử dụng khả năng của mình, nó sẽ đem lại thu nhập lớn hơn vì nó có lợi ích cho mọi người. Đừng cư xử như những loại lừa lọc như thế.

– Cương quyết: Đây chính là những gì tôi muốn nói ở phía trên, lập trình có rất nhiều những thứ có thể phát triển. Chọn một cái và thật giỏi nó trước đã sau đó hãy nhào qua những thứ khác. Hãy dũng cảm bỏ qua những thứ khác, đừng nhìn người ta kiếm tiền được từ những thứ đó mà cảm thấy những gì mình đang làm thật uổng phí. Bạn đang lập trình mobile, thấy thằng làm website kiếm nhiều tiền lại chạy qua làm website. Rút cuộc bạn chả giỏi thứ nào, cái gì cũng không kiếm được tiền vì bạn dở dở ương ương ở giữa.

– Những lựa chọn phụ: Thành thực mà nói, lớp trẻ bây giờ coi phim quá nhiều. Những gì trên phim là những thứ được làm cho nghiêm trọng hơn, những lựa chọn gần như chỉ có một, những cách đơn giản bị bỏ qua vì phim cần tạo kịch tính. Trong cuộc sống thực, quyết định không phải là đường đi duy nhất, hãy chọn những thứ dễ dàng mà đem lại lợi ích cao, làm những thứ phức tạp mà người khác không cần thì cũng vậy thôi.

– Quan trọng nhất, bạn hãy luôn nghĩ về những lối đi phụ, những gì bạn có thể làm được nếu không thành công. Khi kế hoạch chính của bạn sụp đổ, nó không phải là ngày tận thế. bạn nên biết rằng tất cả những gì bạn làm đều được mọi người đánh giá. Bạn cố gắng xây dựng một công ty, một thương hiệu, những việc bạn làm sẽ có rất nhiều người biết đến. Những thứ bạn làm luôn luôn có ưu và khuyết điểm và người ta luôn biết điều đó. Vậy bạn đừng lo, nếu nhưng bạn thất bại sẽ luôn có người khác mướn bạn nếu họ thấy được sự cố gắng của bạn khi bạn làm việc. Vậy hãy luôn cố gắng, dù thành công hay thất bại bạn luôn luôn đạt được một thứ gì đó, nếu đó không phải là thành công thì đó chính là kinh nghiệm. Những người không làm được gì là những người chẳng có chút cố gắng nào cho công việc của mình.

– Con người: Chính là yếu tố quan trọng nhất khi làm việc. Đừng bao giờ coi thường phần này. Bạn và những người trong team phải là những người giỏi nhất. Đừng tìm những người quen để cảm thấy sự an toàn khi làm việc với những người quen. Lý do là người càng quen thì làm việc càng cẩu thả bết bát, càng làm kế hoạch chậm hơn, mà chậm hơn thì nghĩa là bạn đang mất đi rất nhiều tiền. Những người bạn hợp tác phải là những người giỏi nhất với giá tiền đó, với khả năng của bạn. Hãy đi tìm những người giỏi và chứng tỏ bạn giỏi hơn người khác ở những điểm khác. Một điều quan trọng hơn nữa, không đưa hết những gì bạn có cho người khác trước khi bạn có một sự hợp tác chắc chắn. Bạn cần làm cho người khác hiểu rằng bạn giỏi hơn người ta nhưng cũng phải làm cho người ta cần bạn.

– Việc đầu tiên chính là bạn phải làm cho chính bạn trở nên giỏi hơn trong số việc nào đó. Sau đó là tích lũy những điểm mà chỉ bạn có được, đó là những chìa khóa không phải ai cũng giao ra. Những người đã có một số thứ trong tay rất dễ để tìm người tài giỏi hơn bạn. Hãy giữ lại những chìa khóa và giao ra những cánh cửa. Ngoài ra, Việt Nam chính là nơi mà người ta sẵn sàng làm những việc như thế, hãy đề phòng

– Tiền cũng là một thứ cực kì quan trọng. Chi dùng không đúng thì không thể nào làm cho công ty lớn mạnh lên nổi, có thể chết trước khi kịp phát triển. Hãy sử dụng tiền một cách khôn ngoan. Tiền cũng là một trong những cách làm thắt chặt sự liên kết. Đừng bao giờ dùng toàn bộ tiền của bạn, hãy để người khác góp vốn vào và làm cho người ta cảm thấy có sự liên kết.

II. Bàn bạc với bạn bè và gia đình về kế hoạch của mình:

Trừ phi bạn có vấn đề với gia đình không thì hãy bàn bạc với họ. Đơn giản là vì kế hoạch bạn nghĩ trong đầu không thể hoàn hảo, nói chuyện với họ là cách bạn làm cho nó hoàn hảo. Đối với những người không chuyên không rành mà bạn còn không thể trả lời được những câu hỏi của họ thì bạn không thể nào có thể đối thoại với những người đang trong nghề đâu

Khi đi làm ăn riêng, bạn cần mở rộng quan hệ hết mức có thể, những người bạn không ngờ đến sẽ đem lại khách hàng cho chính bạn.

 

III. Bạn sẽ mất một vài khách hàng vì giá bạn quá cao:

– Hãy giữ giá của chính mình, nếu người ta chấp nhận thì bạn sẽ làm việc rất thoải mái không thì bạn cũng thoải mái vì không phải ức chế khi cảm thấy công việc của mình không được đánh giá cao

– Đặc biệt bạn cũng sẽ mất khách hàng nếu giá của bạn đưa ra quá thấp. Dù bạn thích hay không, khả năng của bạn cũng phải phù hợp với giá tiền đưa ra và đòi hỏi của khách hàng.

– Trong lĩnh vực lập trình IOS, đây là một yếu tố khá là qua trọng. Bạn đã bỏ rất nhiều tiền đầu tư để có khả năng lập trình được với Mac và IOS thì không có lý do gì mà bạn lại đưa ra một cái giá quá thấp để rồi lỗ lại nói rằng lập trình IOS không kiếm tiền. Hãy nhớ rằng không phải ai cũng lập trình được IOS và hãy giữ giá cho chính mình.

 

IV. Đừng lo lắng về giá:

Mức giá của một dự án phụ thuộc vào:

– Kinh nghiệm

– Đặc điểm dự án

– Thời gian hoàn thành

– Các hỗ trợ

– Mức độ yêu cầu

– Tình hình kinh tế hiên tại

– Đặc điểm địa lý vùng miền

Việc định giá sẽ cho bạn nhiều kinh nghiệm đau thương, nhưng rất cần thiết để cho bạn biết mình đang ở đâu. Vì vậy, quan trọng là bạn vui vẻ với giá mà mình đưa ra, đừng câu nệ quá vào những thời điểm ban đầu. Luôn cảm thấy giá mình đưa ra quá thấp, nếu thế thì đừng làm, ức chế sẽ chả giúp gì được cho bạn đâu. Hãy nhớ rằng mình đang làm những gì mình yêu thích và tiền bạc là phần thưởng phụ thêm.

 

V. Bạn sẽ mắc sai lầm:

– Bạn chắc chắn sẽ mắc sai lầm, cho dù bạn có nghiên cứu kĩ đến đâu đi chăng nữa thì sai lầm vẫn luôn luôn tồn tại. Vấn đề quan trọng là chúng ta sẽ đứng dậy như thế nào. Có những người ngay khi thấy sai lầm là đổ thừa tất cả cho hoàn cảnh và luôn coi mình không thể thất bại nếu không tại hoàn cảnh như thế. Thế giới luôn gắn liền với những thứ làm cho chúng ta phạm sai lầm. Tránh những thứ có thể làm cho chúng ta thất bại là nhiệm vụ của chính bạn và chỉ của bạn thôi. Nhược điểm chí mạng của dân Việt Nam là luôn có lý do cho việc thất bại và luôn luôn là do những thứ khác (“thời tiết”, “người khác”) nếu không có những thứ đó thì ai cũng sẽ thành công thưa quý vị. Hãy thừa nhận trung thực và tránh xa những thứ đã làm cho ta từng thất bại, từng chút một chúng ta sẽ có thành công.

“Loại bỏ mọi yếu tố làm ta thất bại, ta sẽ thành công, khó mà làm khác được”

– Trong quá trình làm việc, bạn sẽ nhận được những than phiền, các xung đột. Hãy trung thực lắng nghe nó và cố gắng giải quyết nó, đời không giống như phim, không phải chỉ có một cách giải quyết duy nhất và cách giải quyết đó không phải lúc nào cũng khó khăn nhất và luôn có sai phạm.

 

IX. Viết blog:

– Những gì bạn biết cần được chia sẽ cho cộng đồng cho mọi người. Đó là điều nên làm. Dân Việt Nam lại ngược với người ta khi giấu tất cả những gì mình biết lại không lưu truyền. Đó là cái thói ích kỉ của những thằng Trung Quốc đã truyền qua đây. Trung Quốc luôn có những thứ bí truyền, gia truyền chỉ truyền trong những người trong một tập hợp nhỏ. Lỡ xảy ra chuyện gì thì coi như xong, bí truyền thành thất truyền luôn. Trong khi phương Tây thì ngược lại, họ chia sẽ mọi thứ nhưng có những chia sẽ là chia sẽ tính tiền. Bạn muốn sử dụng, vậy thì chi tiền ra đây, điều đó lam họ giàu.

– Viết những điều bạn biết chỉ làm hiểu biết của bạn thêm vững chắc, và được sự đóng góp của cộng đồng vào những gì mà bạn biết thôi. Bạn sẽ chẳng có thiệt hại nào đâu.

 

X. Cân nhắc về sự cộng tác:

– Mỗi dự án lớn đều đòi hỏi rất nhiều kỹ năng như web, minh họa, coding, flash, branding, planning, … Sụ tham lam sẽ giết chết chính bạn khi kéo dài dự án hoặc cho ra một dự án với chất lượng không cao. Bạn cần những người giỏi nhất (Con người).

– Một danh sách những người cộng tác có tiếng tăm chỉ khiến bạn được “cộng điểm” trong mắt khách hàng.

– Đừng vì những lợi ích nhỏ mà bỏ qua những dự án lớn và như đã nói ban đầu, hãy chọn cho mình một lãnh vực trước, nó sẽ giúp bạn nhiều hơn so với bao hàm tất cả.

 

XI. Làm việc với những người khó tính nhất:

– Khách hàng luôn là những người khó tính hơn hẳn những gì bạn nghĩ. Nếu khách hàng không hề phàn nàn hay có ý kiến gì về công việc, họ đang mất hứng thú và chú ý đến công việc của bạn. Hãy lấy lại sự chú ý của họ, nếu không bạn sẽ không có lần sau hay chính xác hơn bạn sẽ không bán được thêm bất cứ thứ gì cho họ nữa.

– Khách hàng phàn nàn nhiều, chứng tỏ họ đang chú ý và đang muốn sử dụng phần mềm của bạn. Hãy làm cho họ hài lòng, họ sẽ tiếp tục sử dụng phần mềm của chính bạn và giới thiệu nó cho những người khác. Đừng sợ hãi khi có những phàn nàn từ những khách hàng đang sử dụng, họ đang muốn thứ họ sử dụng hoàn chỉnh hơn vì họ đang muốn tiếp tục sử dụng nó.

 

XII. Thế bạn còn chờ gì nữa?

– Đây là lúc để bắt tay vào làm việc rồi. Bạn còn chần chờ gì nữa. Với những lý do như “tôi chưa có đủ tiền”, “tôi chưa có kinh nghiệm”, … Đó hoàn toàn là những lời biện hộ vô lý nhất mà bạn đang cố để ngăn cản chính mình. Bạn là một lập trình viên, một nhà thiết kế, bạn không cần nhiều tiền để bắt đầu. Hãy làm từ những cái nhỏ trước, những gì mà bạn đã có đầy đủ công cụ để làm, không thì “hãy lên kế hoạch đi” và tìm kiếm những gì cần thiết đê giúp bạn phát triển. Kinh nghiệm là thứ bạn sẽ đạt được sau khi làm việc chứ không phải trước khi làm việc, đừng cố gắng có kinh nghiệm trước khi làm việc, đó chỉ là lý thuyết.

– Một ghi chú quan trọng cho bạn, đừng có cố tạo ra một thứ gì chưa từng có trên thế giới. Ngay cả Facebook, Google trong thời điểm nó ra đời, nó cũng không phải là duy nhất, nó chỉ làm tốt công việc của nó và trở nên lớn mạnh thôi. Nhất là khi bạn không có kinh nghiệm thì đừng bao giờ cố gắng làm chuyện đó. Nếu bạn thấy, bạn làm được, bạn là siêu nhân thì bạn đã có thành công nào đó rồi, khỏi cần phải đọc thứ này. Nhưng nói thật, những người như vậy thường chỉ là những thằng ngu thật sự chỉ biết nói mà thôi.

* Lưu ý: Đây là phần chuẩn bị tư tưởng không phải là phần bắt đầu lập trình. Đây mới là phần bắt đầu lập trình:

https://huygamer.wordpress.com/2012/10/29/khoi-dau-lap-trinh-iphone/

Tuy nhiên, các bạn nên hiểu rằng lập trình IOS cũng không phải là công cụ thần kì để các bạn có thể học trong 1 tháng mà kiếm triệu đô. Nó là một quá trình lâu dài mà các sinh viên mới bắt đầu thường chỉ trong vòng 3 tháng là bỏ cuộc (đuối sức vì Hackintos hay vì một mình ôm quá nhiều công việc, mất dần hứng thú, không có mục đích,…). Chính vì vậy mới có bài viết này. Đừng chỉ mới đọc xong mà đã nhận xét vớ vẫn. Hãy xem 3 tháng sau bạn có còn hứng thú với lập trình IOS không hãy nói.

Today, this blog is born

Now I am starting a blog to share my information with everyone about what I do and what I will do in my future.

Come and see what can you learn from my exp and give some comment to my blog