24/08/2018, 22:43
Học lập trình bắt đầu từ đâu ?
Lập trình là công việc tạo ra ứng dụng, chương trình thực thi trên máy tính, thiết bị để phục vụ cho cuộc sống, làm cho cuộc sống tiện nghi hơn, tốt đẹp hơn và có thêm nhiều niềm vui hơn. Bạn có thể thấy Lập trình rất gần với chúng ta, đó là: Hệ thống website tin tức xã ...
Lập trình là công việc tạo ra ứng dụng, chương trình thực thi trên máy tính, thiết bị để phục vụ cho cuộc sống, làm cho cuộc sống tiện nghi hơn, tốt đẹp hơn và có thêm nhiều niềm vui hơn.
Bạn có thể thấy Lập trình rất gần với chúng ta, đó là:
- Hệ thống website tin tức xã hội, chỉ số thị trường, phát minh công nghệ,… trên khắp thế giới được cập nhật và lan truyền, chỉ trong tích tắc có thể hiển thị ngay trên thiết bị trong lòng bàn tay ta.
- Ứng dụng tin nhắn chúc mừng sinh nhật được tự động gửi đến sớm mai, lúc ta chưa kịp nhớ ra hôm nay là ngày quan trọng thế nào.
- Ứng dụng trên những dây chuyền sản phẩm tự động lắp ráp, đóng gói chính xác đến từng milimet chỉ với những phím nhấn từ anh kỹ sư điều khiển quy trình.
- Những ứng dụng quản lý mà chỉ cần vài cú click chuột, phím nhấn là chị bán hàng siêu thị, cô giao dịch viên ngân hàng, cô thủ kho,… có thể xong một tác vụ mà trước đây cần cả buổi để thực hiện.
- Những xử lý báo cáo tổng hợp số liệu mà ban giám đốc dù đang ở đâu cũng có thể biết được tình hình kinh doanh trên toàn hệ thống chỉ “trong vòng 3 nốt nhạc”.
- Những chương trình học trực tuyến ghi nhớ lộ trình học, nhắc nhở chúng ta làm bài tập, khen tặng khi chúng ta nỗ lực để việc học tập được liên tục cho đến khi chúng ta đến đích.
- Những ứng dụng trò chơi đấu trí, đánh cờ, đố vui, nấu ăn, tập thể thao, theo dõi sức khỏe, đánh trận giả hay gần đây nhất là trò chơi Pokemon – thực tế ảo làm cho người chơi phát hiện ra rất nhiều điều thú vị trong cuộc sống.
Và còn nhiều nhiều nữa…
Học lập trình để làm gì ?
Trước khi quyết định sẽ học ngôn ngữ gì, đầu tư thời gian như thế nào thì bạn nên dừng lại và nghĩ xem mình học lập trình để làm gì? Đây là điều quan trọng vì chỉ khi bạn biết mình sẽ đến đâu thì việc lựa chọn con đường và cách đi lúc này mới thật sự có ý nghĩa. Thế giới lập trình vô cùng rộng lớn, có rất nhiều ngã rẽ và với mỗi hướng đi đều có nhiều cơ hội và thử thách đang chờ bạn.
- Lập trình di động: Nếu bạn muốn gia nhập vào “nền kinh tế trên di động” với khoảng 2 tỷ người dùng điện thoại thông minh và gần 6 triệu đủ loại ứng dụng di động từ game giải trí đến tiện ích, tin tức, kinh doanh, sức khỏe, học hành…
- Lập trình web: Internet gắn liền với website và bạn muốn tham gia phát triển các hệ thống website kinh doanh online, bán hàng trực tuyến, giới thiệu doanh nghiệp, mạng xã hội,…. Hay bạn muốn làm chủ website thương hiệu cá nhân của mình, mang dấu ấn của riêng mình để có nhiều cơ hội phát triển và thành công hơn.
- Chuyên viên ứng dụng, hệ thống thông tin: Gắn liền với các hoạt động của đơn vị, doanh nghiệp là các phần mềm quản lý như: kế toán, nhân sự, bán hàng, quản lý kho… hay là hệ thống giải pháp phần mềm quản lý tổng thể như phần mềm ERP, CRM, quản lý bệnh viện, quản lý trường học,…Đó chính là “sân chơi” của các các chuyên viên hệ thống thông tin với nhiều vai trò khác nhau như: quản lý dự án, phân tích, lập trình, quản trị cơ sở dữ liệu,… Đây cũng là cơ hội dành cho các bạn đã có kiến thức chuyên môn ở lĩnh vực khác khi có thêm kiến thức về cơ sở dữ liệu, lập trình phần mềm,…
- Kiểm thử phần mềm: Phần mềm cũng như con người, phụ thuộc vào nhiều yếu tố khác có liên quan như các lớp thư viện hệ thống,hệ điều hành, phần cứng máy tính, tốc độ đường truyền, …Và một phần mềm chất lượng là phần mềm chạy chính xác và ổn định trên nhiều kịch bản thực tế khác nhau nên rất cần những chuyên viên kiểm thử phần mềm để thực hiện công việc đó.
- Chuyên gia Big Data: Công việc của bạn là thực hiện các xử lý trên tập dữ liệu rất lớn và phức tạp mà các hệ thống xử lý dữ liệu truyền thống không thể đáp ứng được. Đây là lĩnh vực cũng đang rất “hút” nhân sự khi dữ liệu lưu trữ ngày càng lớn.
- Lập trình IOT: Lúc này bạn sẽ lập trình trên các thiết bị, các vi mạch,… và điều khiển, kết nối chúng lại với nhau. Đây là xu hướng dự báo trong tương lai với sự xuất hiện của ngôi nhà “thông minh”, trang trại “thông minh”, bệnh viện “thông minh”,…
- Hay đơn giản hơn, bạn có thể muốn học lập trình để tự xây dựng các tiện ích hỗ trợ cho công việc, cuộc sống của mình, hay bạn muốn có kiến thức để dễ dàng cập nhật công nghệ cũng như sử dụng hiệu quả hơn các phần mềm đang dần “bước” vào cuộc sống của bạn.
Học Lập trình, bạn cần kiên nhẫn – từng bước, từng bước một…
Học lập trình cũng giống như học ngoại ngữ nhưng chỉ khác là ngoại ngữ dùng để giao tiếp với người thì học lập trình là bạn học cách giao tiếp với máy tính. Đầu tiên bạn sẽ phải học các khái niệm cơ bản, cú pháp (từ vựng) rồi bạn sẽ học các quy tắc, cấu trúc kết hợp (văn phạm). Mọi thứ đều mới lạ nhưng không khó như bạn từng nghĩ vì có rất nhiều loại ngôn ngữ lập trình để bạn chọn học tùy theo mục tiêu của mình. Bên cạnh các ngôn ngữ lập trình đòi hỏi kỹ năng chuyên môn nhất định như C, C++, Java, C#, PHP, Objective-C… còn có cả những ngôn ngữ lập trình trực quan, sinh động giúp cho trẻ em và người mới bắt đầu muốn tìm hiểu về tư duy lập trình như Scratch, Alice, Logo,…
Bạn hãy bắt đầu từ dễ đến khó hơn, từ những điều cơ bản, những bài tập đơn giản, dễ hiểu rồi dần đến những bài toán lớn, phức tạp hơn và cứ thế bạn sẽ lập trình được theo ý muốn. Bạn sẽ học trước các khái niệm lý thuyết để biết đó là gì, sau đó là thực hành lập trình những bài tập minh họa để hiểu rõ và biết cách ứng dụng các lý thuyết như thế nào. Ớ mỗi bài tập thực hành, bạn nên tập kiểm tra với nhiều giả định khác nhau, các trường hợp đặc biệt để đảm bảo tính đúng đắn của chương trình và qua đó nắm vững hơn khái niệm đó trước khi chuyển sang khái niệm tiếp. Các kiến thức nền tảng lập trình thường có liên quan chặt chẽ với nhau nên nếu kiên trì từng bước, từng bước bạn sẽ nắm vững để có thể đi xa và đi nhanh sau này hơn.
Không ai có thể học hết một ngoại ngữ cũng như không ai có thể khẳng định mình đã học xong một ngôn ngữ lập trình nào đó. Càng học hỏi, tìm hiểu, khám phá bạn càng thấy nhiều khả năng “vi diệu” của ngôn ngữ lập trình để xử lý vô vàn bài toán trong thực tế. Và một điều nữa là khi bạn nắm khá vững một ngôn ngữ lập trình, thì việc chuyển sang một ngôn ngữ lập trình khác là hoàn toàn có thể. Do đó, có khá nhiều người lập trình thông thạo nhiều ngôn ngữ lập trình để có thể sử dụng hiệu quả trong nhiều tình huống khác nhau.
Học lập trình – Đơn giản thôi, nếu có SAI thì SỬA
Không ai có thể chơi guitar giỏi khi chỉ đọc sách và nắm vững về nhạc lý, cấu trúc của đàn guitar mà không “bấm dây khẩy ngón”. Lập trình cũng vậy, bạn đã vững lý thuyết nhưng cũng cần phải viết lệnh thường xuyên để hiểu thực sự và biết cách ứng dụng những kiến thức ấy. Lúc này, bạn sẽ gặp đủ lỗi như: cú pháp không đúng, ứng dụng không chạy, kết quả không đúng hay có khi chương trình chạy không ổn định, có lúc chạy đúng nhưng có lúc thì sai,… Bạn sẽ phải thừa nhận có thể mình lập trình SAI để kiểm tra và phát hiện ra lỗi, tìm cách khắc phục và chạy lại. Qua mỗi sai lầm bạn lại phát hiện là điều gì đó và bạn sẽ thấy mình càng hiểu rõ hơn, và bạn sẽ lập trình nhanh hơn khi bạn càng lập trình nhiều hơn.
Học ngoại ngữ chỉ giỏi hơn nếu bạn có quá trình thực hành giao tiếp, sử dụng và liên tục sửa sai nhiều thì kỹ năng ngoại ngữ sẽ được cải thiện. Học lập trình cũng tương tự, bạn phải chấp nhận là có thể có SAI, nhưng thì đã sao vì có SAI-thì SỬA và quan trọng là rút kinh nghiệm ở những lần sau. Trong quá trình học hỏi, bạn hoàn toàn có thể phạm SAI lầm nhưng trong kỳ thi, SAI lầm đó sẽ phải trả giá để giúp bạn hoàn thiện hơn để đến lúc đi làm, tham gia dự án thực tế với khách hàng, bạn phải hạn chế tối đa SAI lầm có thể.
Bạn nên nhớ rằng ngôn ngữ chỉ là công cụ, điều làm nên người lập trình giỏi không phải vì người đó có thể biết bao nhiêu ngôn ngữ, biết bao nhiêu “chiêu”, mà quan trọng người đó làm được gì có ích hay áp dụng hiểu biết của mình vào ứng dụng thực tế hiệu quả như thế nào .
Và nhớ là càng thực hành nhiều, càng không sợ sai lầm những khi còn có thể, bạn sẽ càng hiểu rõ vấn đề và lập trình giỏi hơn.
Học lập trình – Bạn sẽ bắt đầu với ngôn ngữ nào ?
Giờ đã đến lúc bạn cần quyết định mình sẽ học thôi, nhưng bạn phân vân không biết mình nên bắt đầu với ngôn ngữ nào. Bạn biết không Wikipedia đã thống kê trên thế giới có khoảng hơn 200 ngôn ngữ lập trình, mỗi ngôn ngữ lập trình có đặc trưng riêng và phạm vi ứng dụng riêng nên tốt nhất bạn chọn ngôn ngữ phù hợp với mục tiêu của bạn và kiên trì theo đuổi từ ban đầu.
Thống kê 10 ngôn ngữ lập trình phổ biến nhất năm 2016 (IEEE Spectrum)
Bạn có thể thấy Java là ngôn ngữ lập trình phổ biến nhất, có thể làm được ứng dụng Web, ứng dụng Mobile và các ứng dụng quản lý doanh nghiệp. Nhu cầu tuyển dụng của Java hiện nay khá cao, đặc biệt khi Java là ngôn ngữ chính để phát triển các ứng dụng Android. Tuy nhiên, Java là ngôn ngữ có thể xem là khá khó, bạn nên cân nhắc nếu mình chọn bắt đầu với Java thì phải chấp nhận vượt qua thử thách.
C và C++ là ngôn ngữ lập trình hiện đang được chọn giảng dạy trong các chương trình cho sinh viên CNTT từ những năm đầu tiên với các môn như Nhập môn Lập trình, Kỹ thuật Lập trình, Thuật giải và Cấu trúc dữ liệu, Lập trình hướng đối tượng,… Đây là những ngôn ngữ khá cơ bản, giúp bạn dễ nắm bắt được những nguyên lý của lập trình và hiểu được cách hoạt động của máy tính như thế nào. Khá nhiều ngôn ngữ lập trình khác có nhiều khái niệm tương tự như C và C++, nên khi đã hiểu rõ C và C++ bạn có thể dễ dàng chuyển sang ngôn ngữ khác.
Nếu muốn chuyên về lập trình Web, bạn cần xác định mình sẽ đi theo hướng front-end, back-end hay full-stack. Trong đó, các bạn lập trình viên web front-end sẽ chịu trách nhiệm về mặt giao diện, tương tác người dùng sau khi đã có thiết kế. Đây là phần rất quan trọng, “đập vào mắt” người xem đầu tiên nên nhiệm vụ của bạn là làm sao để người xem dừng chân và “dán mắt” vào website đó. Cũng thách thức lắm, nhưng sẽ rất thú vị nếu bạn yêu thích cái đẹp và sự sáng tạo, ngoài kỹ năng chuyên môn đã có (HTML, CSS và Javascript). Nhưng để được những gì thể hiện trên website ở front-end phải có các dữ liệu, thông tin từ các chức năng do lập trình web back-end cung cấp. Từ “hậu trường”, lập trình viên back-end sẽ xây dựng và thực hiện các giải thuật để tính toán, truy cập và xử lý dữ liệu để cung cấp chính xác, nhanh chóng theo các yêu cầu nhận được trên các ngôn ngữ Java, .NET, PHP, Python …Để website hiệu quả, rất cần sự phối hợp nhịp nhàng giữa 2 bộ phận này. Do đó, nếu như bạn biết back-end và một phần front-end thì bạn là người đa năng và website đối với bạn chỉ là “chuyện nhỏ”.
Một điểm đặc biệt của PHP là mã nguồn mở, do đó bạn được phép tùy nghi sử dụng các kho thư viện tiện ích lập trình Web miễn phí hay chủ động hiệu chỉnh các CMS sẵn có (WordPress, Joomla, Drubal,…) để nhanh chóng có được website theo ý mình. PHP cũng là ngôn ngữ theo đánh giá cũng không quá khó cho người mới bắt đầu, nên được khá nhiều người chọn học khi mới đến lĩnh vực Web.
Tuy nhiên, bạn đừng nghĩ mình chỉ cần biết một và duy nhất một ngôn ngữ. Bạn nên xác định mục tiêu theo từng giai đoạn. Nếu trước mắt bạn cần biết về nguyên lý lập trình, rèn luyện tư duy lập trình thì có thể bắt đầu với C, C++ trong 3-6 tháng. Sau đó, khi đã biết lập trình là gì rồi và xác định mình sẽ đi theo hướng Lập trình di động thì mình sẽ chọn Java (Lập trình Android) hay Objective-C, Swift (Lập trình iOS), hoặc C# (Lập trình Windows Phone) và bắt đầu học chuyên sâu về hướng này. Thật ra, trong lập trình điều quan trọng là bạn phải biết cách giải quyết vấn đề, biết cách tư duy lập trình để giải quyết hiệu quả vấn đề trước thì sau đó bạn mới cấu trúc chương trình và viết mã lệnh yêu cầu máy tính thực hiện được. Do đó, ngôn ngữ nào ban đầu giúp bạn dễ dàng nắm được nguyên lý lập trình mà bạn cảm thấy phù hợp đều có thể chọn để khởi đầu. Sau đó, phần quan trọng nữa là kiến thức lập trình hướng đối tượng, vì các ngôn ngữ về sau đều dựa trên kiến thức nền tảng này. Đây cũng là 2 yếu tố quan trọng mà các công ty tuyển dụng nào cũng sẽ hỏi bạn khi ứng tuyển.
Học lập trình – Bạn phải thường xuyên cập nhật kiến thức mới
Bạn thấy đó phần mềm thường xuyên được cập nhật phiên bản mới, nhiều ngôn ngữ lập trình hơn, nhiều hướng ứng dụng mới mở ra,….nên bạn phải thường xuyên cập nhật tri thức mới để không là người đứng bên lề thời đại. Bạn phải xác định là mình sẽ học cả đời. Bạn có thể học qua sách tạp chí, các e-book, các diễn đàn, các website, các fanpage uy tín, các khóa học,… và quan trọng là áp dụng các kiến thức được học đó vào thực tế cuộc sống. Ngay cả khi bạn đã đi làm và có việc làm tốt, bạn vẫn nên tiếp tục học hỏi, tìm hiểu những điều mới vì nếu không, sẽ có lúc các kỹ năng bạn đã được học từ lúc đi học ở trường không còn phù hợp nữa. Thế giới phẳng, toàn cầu hóa đang dần hiện thực và bạn sẽ thấy có nhiều người bạn của mình sẽ làm trong các công ty cách nửa vòng trái đất mà không hề có trở ngại gì và ngược lại, cũng sẽ có nhiều nhân sự ở khắp nơi đang phối hợp công việc cùng với bạn. Ban đang dần phải cạnh tranh với thị trường lao động rộng lớn chứ không chỉ trong khu vực, thành phố bạn sinh sống.
Bạn cần phải thường xuyên tìm hiểu xu hướng phát triển của các công nghệ trên thế giới, các công nghệ mới có thể ảnh hưởng đến nghề nghiệp, công việc của bạn và quyết định xem mình nên cập nhật, học hỏi những điều gì là cần thiết. Đó là lựa chọn cần thiết và bạn nên học, học nữa để không phải phí…
Một số chia sẻ, chúc bạn sẽ thêm “yêu” và thêm “say” khi học lập trình….
Techtalk via t3h