Một trong những câu hỏi thường gặp từ bạn đọc là “làm thế nào để bắt đầu học kỹ năng lập trình hoặc học một ngôn ngữ lập trình?”. Thông tin bên dưới sẽ cung cấp một số định hướng và tổng hợp một nguồn tham khảo để giúp bạn tiếp cận với ngôn ngữ lập trình.
Tôi nên học ngôn ngữ lập trình nào
Câu trả lời không phải là bạn nên học ngôn ngữ lập trình nào mà là cách bạn học (một ngôn ngữ) lập trình. Yếu tố quan trọng nhất trong việc học lập trình là tư duy lập trình. Như những mặt khác về việc tư duy, tư duy lập trình cần thời gian để phát triển. Tuy vậy, một vài loại ngôn ngữ sẽ giúp bạn rèn luyện tư duy lập trình tốt hơn những ngôn ngữ khác.
Theo chúng tôi, ngôn ngữ dễ học nhất cho người mới bắt đầu và được sử dụng rộng rãi trong các lớp căn bản về lập trình là Python bởi vì nó gần giống như ngôn ngữ tự nhiên (tiếng Anh). Một vài khái niệm và tư duy lập trình khác lại được thể hiện tốt hơn ở những ngôn ngữ như C hay C++. Nhiều khóa học lập trình ở các trường đại học vẫn còn sử dụng C và C++ cho những lớp căn bản. Một ví dụ nổi tiếng là lớp CS50 của Đại học Harvard.
Để thuận tiện thì bạn nên theo ngôn ngữ trong lớp học lập trình mà bạn chọn.
Tôi nên học lập trình ở đâu
Có rất nhiều cách để bạn học lập trình. Học chính quy theo ngành Khoa học máy tính ở những trường đại học, trường nghề là một lựa chọn. Ngoài ra, các trung tâm ngoài giờ cũng cung cấp nhiều lựa chọn ngoài chính quy cho những người đang đi làm. Một lựa chọn khác là tự học theo những khóa học trực tuyến hoặc các tài liệu khác. Các lựa chọn này sẽ lần lượt được trình bày dưới đây:
Theo học chính quy hoặc ở những trung tâm ngoài giờ. Đây là những hình thức học trực tiếp (offline). Nếu có thể, đào tạo chính quy ở trường đại học hoặc trường nghề là một lựa chọn rất tốt. Nhưng đây cũng là lựa chọn tốn nhiều chi phí nhất cả về thời gian lẫn tiền bạc. Lựa chọn này không phù hợp với những người đã đi làm hoặc đã học một ngành khác không phải Khoa học máy tính hoặc Lập trình viên. Những khóa ngắn hạn (từ 3 tới 6 tháng), đa phần ngoài giờ làm việc, là lựa chọn tiếp theo cho những người đang đi làm. Những khóa học offline (chính quy và ngoài giờ) giúp người học tương tác trực tiếp với giảng viên sẽ rút ngắn được thời gian so với tự học. Những khóa học hình thức này cũng giúp người học dễ dàng tạo cộng đồng những bạn đồng học cho quá trình học tập lâu dài. Tóm lại, nếu có thể, những khóa học offline nên được cân nhắc một cách nghiêm túc.
Những khóa học và tài liệu học lập trình trực tuyến. Một vài khóa học nổi bật mà người mới bắt đầu có thể hướng tới là những nền tảng giúp học code trực tiếp trên trình duyệt như là Codecademy và CodeSchool; những cộng đồng học trực tuyến hoặc những chợ bán khóa học trực tuyến như là Skillshare và Udemy; và những nền tảng cung cấp những khóa học chính quy trực tuyến như là Coursera, edX, và Udacity. Mỗi nền tảng có thế mạnh và hạn chế khác nhau cho việc học lập trình.
Nền tảng học lập trình trực tiếp trên trình duyệt. Có rất nhiều nền tảng như thế này trên thế giới. Hai nền tảng được nhiều người biết đến nhất là Codecademy và CodeSchool. Cả hai đều cung cấp rất nhiều khóa học cho mọi cấp độ từ cơ bản đến nâng cao với rất nhiều ngôn ngữ (ví dụ như Python, Java).
Điểm mạnh của những nền tảng này là người học có thể thử và sử dụng ngôn ngữ lập trình ngay trên trình duyệt, không cần phải cài đặt và cấu hình ngôn ngữ lập trình cùng với những công cụ hỗ trợ lập trình trên máy. Điều này giúp người mới bắt đầu tiếp cận với ngôn ngữ lập trình tốt hơn. Tuy nhiên, cách học này không giúp người học biết được cách một ngôn ngữ hoạt động thực tế trong hệ thống máy tính như thế nào. Khi phải phát triển một chương trình chạy trên một hệ thống thật, nhiều khả năng người học sẽ phải học thêm về quy trình phát triển phần mềm cũng như hệ thống máy tính.
Nền tảng bán khóa học hay những cộng đồng học tập trực tuyến. Hai nền tảng nổi tiếng ở dạng này là Udemy và Skillshare. Tại đây người học có thể tìm được rất nhiều các khóa học liên quan đến lập trình như Python, Java v.v. Những khóa học này được biên soạn bởi những người sáng tạo nội dung độc lập trên các nền tảng đó. Sự đa dạng về khóa học sẽ giúp người học dễ dàng tìm được hướng tiếp cận và nội dung phù hợp với bản thân mình. Tuy nhiên, vì có quá nhiều sự lựa chọn và đa số những lớp này sẽ không miễn phí, người học có thể gặp khó khăn trong việc lựa chọn khóa học phù hợp với nhu cầu của bản thân.
Nền tảng cung cấp khóa học chính quy trực tuyến. Đây là những nền tảng khóa học mở trực tuyến lớn (MOOCs –Massive Open Online Courses) đầu tiên, được ra đời vào những năm 2011 và 2012 bởi những giáo sư ở Đại học Stanford (Coursera, Udacity), Đại học Harvard và MIT (edX).
Những nền tảng này cung cấp những khóa học từ chương trình chính quy của các trường đại học hàng đầu trên thế giới. Những khóa học này có thể xem là một lựa chọn thay thế cho những lớp học trực tiếp truyền thống ở trường đại học. Dần dần, những nền tảng này đã cấu trúc chương trình của họ để phù hợp hơn với người học trực tuyến.
Ví dụ, một khóa học lúc đầu kéo dài vài tháng (thông thường là 03 tới 04 tháng) được chia nhỏ ra thành nhiều khóa học 1-tháng để người học có thể theo kịp dễ dàng hơn. Đây là lựa chọn gần sát nhất với những khóa học trực tiếp truyền thống ở trường đại học. Và người học có thể mong đợi tiếp thu kiến thức về lập trình từ khởi đầu ở nhiều ngôn ngữ khác nhau. Tuy vậy, đối với những người học không thích cách học truyền thống, để theo được những khóa học này có thể khó khăn và đôi khi gây nhàm chán.
Tựu chung, dù là lớp học trực tiếp hay trực tuyến, người học cần cân nhắc kỹ giữa nhu cầu của họ và công sức (về thời gian và tiền bạc) có thể bỏ ra để chọn cho mình một giải pháp phù hợp. Có một mục tiêu thật sự rõ ràng, ví dụ mục tiêu có thể lập trình được một chương trình Python nhỏ trong 6 tháng trong khi vẫn làm việc, sẽ giúp ích rất nhiều cho người học trên con đường học lập trình.
Nếu không có đủ thời gian lẫn tiền bạc để học lập trình nhưng vẫn muốn làm giao dịch thuật toán thì làm thế nào
Đây cũng chính là câu hỏi mà các thành viên ALGOTRADE đặt ra khi vừa thành lập. Mục tiêu ngắn hạn của chúng tôi là làm ra những công cụ để bạn không cần phải biết lập trình vẫn có thể tham gia vào cuộc hành trình với giao dịch thuật toán. Chúng tôi đang nỗ lực hết sức để đưa ra công cụ này cho khách hàng dùng thử vào tương lai rất gần. Hãy chờ nhé!