Bài viết Nên bắt đầu học lập trình từ đâu?

Thảo luận trong 'Lập trình website' bắt đầu bởi jrjrjr, 23 Tháng năm 2015.

  1. Offline

    jrjrjr

    • Thành Viên Mới

    • http://niit.vn/
    Số bài viết:
    38
    Đã được thích:
    0
    Điểm thành tích:
    0
    1. Lập trình là gì ?

    Lập trình là công việc tạo ra một sản phẩm, một thành quả, và con đường trở thành lập trình viên sẽ rõ ràng hơn khi bạn biết rõ thứ mà các bạn sẽ tạo ra. Nếu mục tiêu của bạn chỉ là “học viết code”, mà không có định hướng rõ ràng về thứ mà các bạn sẽ làm ra và cách chúng sẽ làm cho cuộc sống tốt đẹp hơn, bạn sẽ thấy con đường phía trước đầy chông gai và khó nhọc.
    Lập trình là việc xây dựng ra các sản phẩm CNTT để phục vụ cho cuộc sống hằng ngày, từ các sản phẩm web, các ứng dụng máy tính, ứng dụng di động, các phần mềm, các trò chơi…

    2. Bạn muốn lập trình cái gì ?

    Vậy, bạn muốn lập trình thứ gì? Một website, một trò chơi, hay một ứng dụng iPhone? Hoặc có thể bạn muốn xây dựng hẳn một công ty khởi nghiệp đáng giá hàng triệu USD? Đó cũng có thể là một sản phẩm tương tác mang tính nghệ thuật. Hay bạn muốn sử dụng kiến thức của mình để làm các sếp hài lòng và dành thời gian để làm những việc khác? Hoặc đơn giản bạn chỉ muốn kiếm việc dễ dàng hơn, muốn bổ sung vào hồ sơ của mình những thuật ngữ to tát, hoặc hoàn thiện chương trình học của mình. Tất cả những lí do trên đều có thể trở thành mục tiêu của bạn. Nhưng trên hết, bạn cần phải biết mình cần gì, và hãy học tập phục vụ cho điều đó.

    [IMG]
    Bạn nên xác định rõ mình sẽ làm gì trước khi học lập trình

    3. Không có gì là bí ẩn về lập trình
    Lập trình cũng là một kỹ năng, giống như những việc khác. Giống như việc học ngoại ngữ, lập trình viên cũng phải học những mệnh đề ngữ pháp và từ vựng. Lập trình cũng giống như toán, các bạn sẽ phải theo các bước trong quy trình để giải một đề bài.

    4. Không có gì chạy ngay từ lần thử đầu tiên
    … và chưa chắc đã chạy trong lần thứ hai hoặc thứ 3

    Khi bạn mới học lập trình, bạn sẽ gặp phải tính huống sau: bạn nghĩ rằng tất cả các dòng code đều hoàn hảo và bạn đã kiểm tra kỹ tất cả mọi thứ, nhưng code của bạn không hề chạy! Bạn không biết bắt đầu từ đâu để sửa, và những dòng thông báo (nếu may mắn chúng sẽ được hiện lên màn hình) khó hiểu. Bạn có thể nghĩ tới việc từ bỏ tại đây, bạn nghĩ rằng sẽ không bao giờ có thể tìm ra câu trả lời, bạn không thể có lời giải.

    [IMG]
    Không phải lúc nào code cũng chạy


    Nhưng điều này rất phổ biến với lập trình viên ở bất kỳ trình độ nào. Nó không phản ánh trí tuệ của bạn, cũng như ảnh hướng tới khả năng khám phá công nghệ cũng như cuộc đời lập trình sau này của bạn. Điều này sẽ xảy ra thường xuyên với những người mới, và cả với những lập trình viên chuyên nghiệp. Sự khác biệt thực sự lại là cách mà mọi người xử lí nó.

    Một điểm khác biệt giữa những lập trình ít kinh nghiệm và những người lâu năm trong nghề khi gặp khó khăn là niềm tin. Niềm tin vào việc bản thân họ sẽ tìm ra được cách khắc phục cũng như tìm ra điều chưa đúng trong dòng code. Họ cũng tin rằng sẽ có nhiều hơn một cách để thực hiện mục tiêu. Giải pháp để biến những dòng code vô dụng thành hữu ích có thể không rõ ràng, những với sự kiên trì, họ sẽ tìm ra.

    5. Sẽ có ai đó luôn luôn nói rằng những gì bạn làm là sai
    Những tranh cãi xung quanh việc dùng dấu ngoặc nhọn ( } ) ở cuối dòng lệnh hay ở đầu dòng tiếp theo sẽ diễn ra liên miên. Việc này cũng xảy ra với việc dùng phím tab để lùi vào khi viết code. Đôi khi bạn cũng bị cuốn vào những tranh cãi trái chiều dạng như “phải comment cho từng hàm khi viết code” và “code tốt là không cần dùng comment”.

    [IMG]
    Có rất nhiều phong cách trình bày code, bạn có thể chọn lấy cách phù hợp với mình

    Tất cả những tranh cãi, lời khuyên này đều sẽ làm phiền bạn. Nhưng thực sự thì không bao giờ có một chuẩn mực rõ ràng cho việc lập trình. Rất nhiều lập trình viên đã lựa chọn cách làm việc mà họ cảm thấy phù hợp nhất với mình, nhưng đó chưa chắc đó đã là con đường duy nhất. Việc đối mặt với nhiều người trong nghề và nghe những nhận xét đúng sai của họ về việc lập trình của bạn là một việc vô cùng vất vả khi bạn bắt đầu sự nghiệp.

    Nếu bạn làm trong một nhóm lập trình, sẽ có một vài người sẽ gặp phải khó khăn khi tiếp nhận các dòng code từ bạn. Đôi khi họ đúng, những cũng có khi, họ rất cổ hủ và bắt bạn phải sửa theo cách viết của cả nhóm.

    - Sẽ có những người nhận xét bạn không phải là lập trình viên thực thụ
    - Viết HTML không phải là lập trình!
    - Nếu bạn không dùng vi, bạn không biết cách lập trình đúng nghĩa.
    - Những lập trình viên thực thụ sẽ chỉ dùng C.
    - Windows không phải nơi để lập trình.
    - Những thứ này không phải dành cho tất cả mọi người.
    - Cậu không phải thể trở thành lập trình viên!!!
    Lập trình có ý nghĩa khác nhau với những người khác nhau, và bản thân công việc lập trình cũng đã khác rất nhiều so với thời điểm nó mới xuất hiện. Điều nực cười là rất nhiều công cụ, nền tảng được tạo ra để giúp cho những người mới học lập trình hoặc những lập trình viên lão luyện tạo ra sản phẩm nhanh hơn đều bị gán cho nhãn “không dành cho lập trình viên đích thực”.

    [IMG]
    Comment hay không comment, đó là lựa chọn của bạn

    Có thể thấy ở đây là sự sợ hãi của những lập trình viên. Khi ai cũng có thể dễ dàng tiếp cận với ngôn ngữ lập trình và tự tạo sản phẩm, cũng như tự gọi mình là người lập trình, thì sẽ không còn ai là lập trình viên nữa. Nhưng có lẽ, rào cản về kiến thức này đã bị phá bỏ từ rất lâu rồi.

    Hãy sử dụng những công cụ giúp bạn dễ dàng xây dựng sản phẩm bạn mong muốn. Sẽ không phải xấu hổ nếu bạn nói trò chơi bạn làm ra được dựng trong Stencuyl hoặc GameMaker chứ không phải được viết từ đầu. Hãy lựa chọn cho mình môi trường và công cụ mà bạn cảm thấy thoải mái và có thể gắn bó với nó.

    6. Hãy kiên trì với việc lập trình
    Không có bất cứ tài liệu nào có thể chỉ cho bạn con đường đúng hoặc nhanh nhất để nắm vững kiến thức lập trình. Có rất nhiều cách để có thể học, và thực hành. Bạn có thể học những khái niệm đầu tiên từ sách hoặc những bài học trực quan trên mạng, hoặc có thể bắt đầu ngay bằng việc sửa lỗi sai của người khác. Và tất nhiên, có rất nhiều ngôn ngữ cho bạn lựa chọn để bắt đầu.

    Một vấn đề khá phổ biến khi các bạn tự học lập trình, đó là các bạn sẽ dễ dàng vượt qua những phần đơn giản, nhưng sẽ gặp khó khăn tại những phần rất quan trọng sau đó. Bạn có thể biết cách in một vài dòng lên màn hình, nhưng không thể làm việc được với những dự án thật. Bạn sẽ bắt đầu cảm thấy mất phương hướng và đổ lỗi cho giáo trình.

    [IMG]
    Ngày nay việc học đã không còn khó khăn

    Khi bạn gặp phải tình huống này, tất cả những giáo trình trực tuyến hay tài liệu đều trở nên vô dụng, vì những viết ra nó đều mặc định rằng, bạn đã có kinh nghiệm trong lập trình. Việc khó khăn tiếp theo là bạn sẽ phải tìm ra thứ mình cần phải học tiếp, trong khi bạn không thể biết cái mà bạn không biết.

    Bạn sẽ vấp phải trở ngại này khi học lập trình ở bất kỳ đâu, còn cách giải quyết nó, là hãy tiếp tục kiên trì với việc lập trình. Hãy tiếp tục tìm kiếm những điều mới mẻ xung quanh những thứ đã học, thu nạp thêm thông tin, và tự tay xây dựng những ứng dụng của riêng mình. Bạn sẽ dễ dàng tìm được thành công nếu như bạn biết rõ mục tiêu học lập trình của mình là gì.

    Thành công sẽ đến với bạn nếu bạn kiên trì xây từng viên gạch lên bức tường của mình. Nếu bạn kiên trì và dành thời gian để tìm hiểu nó, việc lập trình sẽ dễ dàng bị bạn chinh phục.

    7. Điểm cốt lõi của việc học lập trình
    Học lập trình không khó . Khó ở chỗ là chúng ta có phương pháp học và có chịu cố gắng học hay không thôi. Khi bắt đầu học một ngôn ngữ lập trình cũng giống như bạn đang bắt đầu vào học một môn ngoại ngữ để giao tiếp với người nước ngoài. Ngôn ngữ lập trình là cách để người lập trình giao tiếp với máy tính , và nhờ nó làm 1 công việc nào đó trong phạm vi khả năng cho phép của nó. Bạn muốn điều khiển được chiếc máy tính của mình không còn cách nào khác là bạn phải nắm được tư duy lập trình (chính yếu) và ngôn ngữ lập trình (thứ yếu).

    Và hãy luôn nhớ điều này bất kỳ một bài toán, một yêu cầu, một công việc dù lớn hay nhỏ thì khi đưa vào lập trình sẽ trải qua 3 giai đoạn : (Nhập – Xử Lý – Xuất)

    [IMG]

    Hãy nhớ kỹ điều này, nó sẽ giúp cho bạn định hình được tư duy lập trình của mình sau này. Và tôi sẽ tiếp tục chia sẽ kiến thức về tư duy lập trình với các bạn trong những phần tiếp theo .Mong các bạn xem tiếp hồi sau . Nói về lập trình thì nó mênh mông, bao la. Có thể nói là chuyện dài nhiều tập . Nhưng một khi các bạn đã nắm được cốt truyện rồi (tư duy lập trình) thì chắc chắn bạn sẽ đam mê và thích thú nó . Tôi tin là như vậy !

    8. Chọn hướng lập trình nào ?
    Có rất nhiều hướng đi, sau đây là một trong các hướng:

    - Lập trình web : Frontend (là làm HTML, CSS, Javascript), Backend(PHP, Java, Ruby, Python, ASP.Net,Perl, …)
    - Lập trình mobile : iOS, Android, Windowphone, …
    - Lập trình mạng
    - Lập trình nhúng
    - Và một số hướng khác mình không thể nói hết được
    Và khi đã chọn được hướng đi, việc bắt đầu từ đầu cũng rất là khó khăn, đòi hỏi bạn phải kiên trì và có lòng đam mê, nếu không 1 tuần hay chừng 1 tháng là bạn sẽ nản và từ bỏ ngay.

    Còn nếu bạn kiên trì, vượt qua nhưng không đam mê, không tò mò lạ lẫm, không tự hỏi mình những câu hỏi về những đoạn mã đó tại sao không nên viết thế này, viết thế kia, chạy sao … rất nhiều câu hỏi. Bạn tự đặt và hỏi thì bạn thích hợp với CNTT vì bạn có đam mê, ngược lại bạn đừng đi theo nó, vì không có đam mê, bạn sẽ không thể bắt kịp mọi người khi mà tốc độ phát triển CNTT rất nhanh, nhanh hơn những ngành khác rất nhiều, điều này bạn nên cân nhắc.

    [IMG]
    Về việc chọn ngành học, là do các bạn tự cân nhắc

    Nếu bạn đi theo lập trình web, đòi hỏi bạn rất nhiều ngôn ngữ cần hiểu biết. Bởi vì làm được 1 trang web cần kết hợp nhiều ngôn ngữ : HTML, CSS, Javascript, và 1 ngôn ngữ server (PHP, Python, Ruby, Java, C#/VB, ….) cùng với 1 database (MySQL, SQL Server, NoSQL, …)

    Về lập trình mobile (di động) thì bạn chỉ cần nắm 1 ngôn ngữ là đủ như : Objective-C dùng cho lập trình iOS, C# dùng cho lập trình Windowphone, Java cho lập trình Android. C# và Java ở đây nó là Java nhưng có biến thể 1 chút, các bạn học là sẽ nắm được sự khác biệt này.

    Lập trình mạng và lập trình nhúng thì mình không dám chia sẻ gì, nhưng những ngành này thì tỉ lệ việc làm kiếm được ít hơn 2 hướng trên là lập trình web và mobile, tuy nhiên ít hơn không có nghĩa là khó xin việc, vẫn có nhiều việc được đăng tuyển đều đều và lương khá cao.

    Vậy chúng ta nên chọn hướng lập trình như thế nào?
    Hướng nào cũng có thể mang lại cho bạn cuộc sống ổn định cả, tuy nhiên thời gian đầu bạn cũng có thể thử, thử hướng này trong một thời gian đủ dài, 3, 4 tháng chẳng hạn, nếu bạn thấy không ổn, bạn có thể đổi sang một hướng khác, cuộc sống rất dài, bỏ ra vài tháng hoặc thậm chí 1 năm để tìm được hướng đi phù hợp cho mình thì cũng không đáng là bao nhiêu, tuy nhiên qua việc thử chọn hướng, các bạn cũng sẽ ngày càng có thêm nhiều kinh nghiệm cho chính bản thân mình.

    9. Nên chọn ngôn ngữ nào để học hoặc học trước các môn lập trình nào?
    Qua kinh nghiệm của tôi, thật sự ngôn ngữ không quan trọng lắm, có nhiều bạn nói tôi rằng nên học Pascal trước khi học C, C++ sẽ dễ hơn, tuy nhiên, với tôi, do là dân tỉnh lẻ, không có điều kiện học Tin học từ nhỏ, nên tôi không được học Pascal từ trường phổ thông.

    Sau khi thi đậu vào trường đại học, chúng tôi được học C và C++ sau đó, tôi thấy vẫn tiếp thu tốt, nhiều bạn bè tôi từng đạt giải quốc gia tin học, tôi thấy chúng tôi không có nhiều khác biệt khi học các môn học về lập trình.

    Do vậy, tôi thấy học ngôn ngữ không quan trọng mấy, thứ mà tôi thấy quan trọng, chính là học cách xử lý vấn đề, suy nghĩ các thuật toán để giải quyết vấn đề, cách tổ chức chương trình, các phần này có thể tìm thấy trong các môn học về Lập trình căn bản, Lý thuyết đồ thị, Cấu trúc dữ liệu và giải thuật, CSDL và một môn học tôi thấy cực kì quan trọng đó chính là Lập trình Hướng Đối Tượng. Tư duy lập trình Hướng Đối Tượng là cực kì quan trọng, cho đến hiện này, tất cả các ngôn ngữ, các phần mềm, các ứng dụng đều phải sử dụng tư tưởng lập trình HĐT này. Do vậy, tôi nghĩ các bạn muốn làm tốt công việc lập trình, các bạn cần phải học tập vào trao dồi nhiều thứ liên quan đến lập trình Hướng đối tượng.

    Về ngôn ngữ lập trình, tôi đã từng lập trình từ C, C++ đến C#, đến Java, PHP, tôi thấy chúng ta chỉ cần học các từ khóa, các khai báo kiểu dữ liệu, viết một chương trình HelloWorld được là chúng ta có thể học ngôn ngữ đó, ngoại trừ một số khai báo đặt biệt, còn đa số là giống nhau về tư tưởng mà thôi.

    Do vậy, theo kinh nghiệm của tôi, tôi thấy rằng tư duy lập trình, lập trình Hướng đối tượng là quan trọng, còn ngôn ngữ, các bạn cứ chọn và thấy phù hợp là mình học, và tập làm các dự án một cách thuần thục về ngôn ngữ đó, khi chuyển qua ngôn ngữ khác thì mọi thứ sẽ dễ dàng.

    Chúc các bạn thành công theo đam mê của mình.

    Nguồn: http://niit.vn/tin-tuc/17345/bat-dau-hoc-lap-trinh-tu-dau.html
    ---
    Học viện CNTT iNET Đà Nẵng
    Lập trình viên Đà Nẵng | Việc làm IT
  2. Offline

    jacklya

    • Thành Viên Mới

    Số bài viết:
    5
    Đã được thích:
    1
    Điểm thành tích:
    0
    Thank chủ thớt bài viết rất hữu ích.
    jrjrjr thích bài này.

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí