Loading Now

Học cách trân trọng nghệ thuật lập trình máy tính?

Tôi chưa bao giờ có ý định làm việc trong ngành công nghệ; sau khi học báo chí, tôi đã sẵn sàng cho sự nghiệp làm một phóng viên nước ngoài cho một tờ báo in. Thật đáng tiếc, tôi tốt nghiệp vào đúng thời điểm đỉnh cao của cuộc khủng hoảng kinh tế, và sự suy giảm nghiêm trọng của truyền thông in.

Vì vậy, sau khi đổ một vài giọt nước mắt, tôi đã tìm được một việc làm tại một công ty xuất bản chuyên về công nghệ B2B. Lúc đó, công ty đang cố gắng thiết lập một sự hiện diện mạnh mẽ trên các trang tin tức trực tuyến và cần một nhà báo có kỹ năng lập trình cơ bản. Mặc dù lúc đó tôi không biết lập trình, nhưng tôi đã sẵn sàng thử sức. Tôi rất đam mê việc học hỏi và yêu thích giải quyết vấn đề, vì vậy lập trình máy tính dường như là một sự phù hợp hoàn hảo.

Việc đầu tiên mà tôi đã phải làm là tìm hiểu chính xác xem lập trình máy tính bao gồm những gì, và tôi sẽ tự học lập trình như thế nào. Sau nhiều giờ nghiên cứu và với sự trợ giúp từ bạn bè và gia đình đang làm việc trong ngành, cuối cùng tôi đã nắm được một chút ít về nó đủ để có thể giải thích cho những người mới bắt đầu khác.

Lập trình máy tính là gì?

Lập trình máy tính là một cách để cung cấp cho máy tính các hướng dẫn về những việc chúng nên làm tiếp theo. Những hướng dẫn này được gọi là mã nguồn (code), và lập trình viên viết code để giải quyết các vấn đề hoặc thực hiện một nhiệm vụ.

Mục tiêu cuối cùng là tạo ra một cái gì đó: đó có thể có là bất cứ thứ gì từ một trang web, hoặc một phần mềm, hoặc thậm chí chỉ là một bức tranh đẹp. Đó là lý do tại sao lập trình máy tính thường được mô tả là sự kết hợp giữa nghệ thuật và khoa học; nó mang tính kỹ thuật và phân tích, nhưng cũng rất sáng tạo.

Khi tôi bắt đầu tìm kiếm các khóa học để tự mình học cách lập trình, tôi nhận ra rằng mình không biết rất nhiều điều. Các anh trai của tôi là những lập trình viên, vì vậy tôi đã từng thấy hàng loạt dòng chứa những ký tự và chữ cái mà họ viết, nhưng tôi không biết chúng có ý nghĩa gì. Tôi thậm chí không biết những gì tôi thấy trên màn hình khi thực hiện các tác vụ đơn giản như mua sắm trực tuyến hoặc duyệt mạng xã hội có liên quan đến những ngôn ngữ bí ẩn này như thế nào.

Tôi đã nghiên cứu kỹ về chủ đề này, nhưng hầu hết các bài viết tôi đọc đều chứa đầy những thuật ngữ kỹ thuật mà tôi không hiểu. Trong một vấn đề đáng lẽ ra là khá phổ biến trong thế giới công nghệ B2B, tôi không thể tìm thấy bất cứ thứ gì giải thích một cách rõ ràng và đơn giản.

Định nghĩa trên là nỗ lực của tôi – với tư cách là một nhà báo trước và một chuyên gia công nghệ sau – để giải thích chính xác điều đó là gì, một cách đơn giản nhất có thể.

Mã hóa so với lập trình (Coding vs Programming)

Khi tôi đang tìm kiếm các tài nguyên để học lập trình,  tôi biết đến HTML. Tôi nói với những người bạn của mình trong lĩnh vực công nghệ về những gì tôi đang học, họ cho tôi biết rằng HTML không được coi là một ngôn ngữ lập trình. Tôi đã dò xét trên Stack Overflow để tìm hiểu thêm, và tôi khám phá ra rằng trong khi một số lập trình viên lâu năm coi nó là một ngôn ngữ lập trình, những người khác thì không.

Lấy câu trả lời này:

Bất cứ hướng dẫn nào yêu cầu máy tính làm một việc gì đó đều là một ngôn ngữ lập trình.

So với câu trả lời này:

Không, HTML không phải là một ngôn ngữ lập trình. “M” đại diện cho “Markup”. Nói chung, một ngôn ngữ lập trình cho phép bạn mô tả một quy trình nào đó để thực hiện một việc gì đó, trong khi HTML là một cách để thêm ngữ cảnh và cấu trúc vào văn bản.

Thực tế, Stackify không bao gồm cả HTML và CSS trong danh sách các ngôn ngữ lập trình phổ biến nhất năm 2017 của họ.

Sự không chắc chắn này dẫn tôi đến cuộc tranh luận không ngừng về sự khác biệt giữa coding và lập trình. Một trong những sự khác biệt thường được nêu ra: coding là một phiên bản nhẹ hơn của lập trình. Những lập trình viên viết code nghiêm túc, nhưng những coder thường là những marketers, những người tạo nội dung (như chính tôi) hoặc những nhà thiết kế đồ họa thỉnh thoảng thử sức với HTML hoặc CSS.

Trên thực tế, không có sự khác biệt thực sự giữa hai thuật ngữ này!

Tôi nên học ngôn ngữ lập trình nào?

Tôi đã sống tại cả Pháp và Tây Ban Nha, và một phần lý do tôi quyết định sống tại những quốc gia này là vì tôi nói được các ngôn ngữ ở cả hai nơi. Nếu tôi đạt được ước mơ sống tại Ý, tôi biết chính xác ngôn ngữ nào tôi sẽ học để dễ dàng hội nhập nhất: Tiếng Ý, rõ ràng (hoặc tình yêu và thức ăn, tùy góc nhìn).

Quyết định nên học ngôn ngữ lập trình máy tính nào không hoàn toàn đơn giản như vậy; tất cả phụ thuộc vào mục tiêu của bạn, nhiệm vụ bạn muốn thực hiện, hoặc vấn đề bạn cần giải quyết.

Một số ngôn ngữ phổ biến bao gồm (chúng tôi đang bao gồm cả HTML và CSS đã được đề cập trước đó, bất chấp cuộc tranh luận):

  • HTML
  • JavaScript
  • Python
  • CSS
  • Ruby
  • PHP
  • C++
  • SQL

Một vài trong số những ngôn ngữ này dễ học và được ưa chuộng hơn những ngôn ngữ khác, mặc dù điều đó không khiến những ngôn ngữ còn lại kém hữu ích. Thực tế, có thể sẽ có lợi hơn cho sự nghiệp của bạn nếu học một trong những ngôn ngữ lập trình “đáng sợ”, vì bạn sẽ có nhiều nhu cầu tuyển dụng hơn.

Theo dữ liệu từ Stack Overflow, những ngôn ngữ bị ghét bỏ nhất là Perl, Delphi và VBA, tiếp theo là PHP, Objective-C, CoffeeScript và Ruby.

https://s3-sgn09.fptcloud.com/codelearnstorage/files/thumbnails/image_ad6fdc5101034c7aa1f79e8329c16de5.png

Câu hỏi quan trọng nhất bạn cần tự hỏi trước khi bắt đầu học là:

Bạn có muốn tập trung vào cách người dùng nhìn thấy website của bạn hay bạn quan tâm nhiều hơn đến cách nó hoạt động?

Đó là hai trong số những khác biệt chính giữa những gì được gọi là ngôn ngữ lập trình front-end và back-end.

Lập trình front-end và back-end là gì?

Phát triển front-end liên quan đến làm việc với các code tạo ra các yếu tố mà người dùng có thể nhìn thấy và tương tác với; tất cả là về cách nhìn và cảm nhận một website

Các lập trình viên backend đảm bảo rằng website hoạt động theo cách nó nên hoạt động, và code mà họ viết thường không hiển thị với người dùng. Các lập trình viên backend làm việc với cơ sở dữ liệu lưu trữ các thông tin như chi tiết khách hàng, và các máy chủ (ảo) – nơi lưu trữ cơ sở dữ liệu.

Cả công việc lập trình front-end và back-end đều mang tính sáng tạo theo cách riêng của chúng, nhưng các lập trình viên front-end thường cần có thị giác thẩm mỹ để có thể đánh giá xem điều gì sẽ tạo ra trải nghiệm tốt nhất cho người dùng trang web.

Ví dụ cơ bản về phát triển front-end bao gồm kiểu phông chữ bắt mắt trên trang web yêu thích của bạn, hoặc thanh trượt trên trang chủ của một trang tin tức, hoặc thậm chí menu thả xuống nơi bạn có thể chọn tùy chọn ưa thích của mình. Tất cả, từ bảng màu đến bố cục, vị trí đến kiểu chữ, đều là trách nhiệm của một lập trình viên front-end.

 

Ba ngôn ngữ chính mà các lập trình viên front-end cần biết là:

  • HTML
  • JavaScript
  • CSS

Dưới đây là ví dụ về một số mã HTML cơ bản quyết định vị trí của một hình ảnh, in đậm văn bản và các dấu đầu dòng.

https://s3-sgn09.fptcloud.com/codelearnstorage/files/thumbnails/image_14384e1ab0d5425380dc45b8ef694833.png

Bạn cũng có thể đã nghe nói đến các thành phần khác như Bootstrap, AngularJS và EmberJS, với khả năng kiểm soát cách nội dung hiển thị trên các thiết bị khác nhau như smartphone và máy tính bảng. Một lập trình viên front-end thường làm việc với các chuyên gia về trải nghiệm người dùng và giao diện người dùng để đảm bảo rằng cách người dùng nhìn, cảm nhận và hành động trên website tốt nhất cho người dùng.

Mặt khác, những ngôn ngữ back-end phổ biến bao gồm:

  • PHP
  • Ruby
  • Python
  • .NET

Dưới đây là ví dụ về một số mã Python cơ bản cho biết rằng tôi muốn máy tính in ra cụm từ (hoặc chuỗi) “hello” và “Karen McCandless” (tên tôi).

https://s3-sgn09.fptcloud.com/codelearnstorage/files/thumbnails/image_206b56e787f147c1862211cf741e7c6d.png

Để có được sự hiểu biết tốt hơn về khi nào bạn có thể sẽ tương tác với mã front-end hoặc back-end, hãy nghĩ về khi bạn đang thực hiện một giao dịch mua hàng trên Amazon. Khi bạn đang tìm kiếm, lọc và trải qua quá trình mua sản phẩm, bạn sẽ tương tác với công việc của một lập trình viên front-end. Nhưng sự vận hành suôn sẻ của các chức năng như đề xuất, hoặc khi bạn nhập thông tin thanh toán, là công việc của một lập trình viên back-end.

Một số lập trình viên web biết cả ngôn ngữ lập trình front-end và back-end. Họ thường được gọi là lập trình viên full-stack.

Tại sao tôi nên tham gia một khóa học về lập trình máy tính?

Nếu bạn lo lắng về việc tìm kiếm việc làm trong nền kinh tế bất ổn như hiện nay, thì vai trò kỹ thuật là một sự lựa chọn tốt, với 8 trong số 25 công việc hàng đầu năm nay là vị trí công nghệ.

Lập trình viên (hay coder) thường được miêu tả như một loại người nhất định: những người “geek” (chủ yếu là nam giới) ẩn mình sau những cặp kính của họ và kém giao tiếp xã hội, hoặc dành phần lớn thời gian ở nhà chơi game. May mắn thay, chúng ta đã vượt qua định kiến lỗi thời này, và lập trình đang trở nên dễ tiếp cận (và hữu ích) hơn nhiều với nhiều vai trò và công việc khác nhau.

Không chỉ có các công ty và tổ chức phi lợi nhuận đã triển khai các sáng kiến để thu hút một phạm vi đa dạng hơn những người tham gia ngành lập trình, mà số lượng tài nguyên để học lập trình cũng đã tăng lên đáng kể.

Ngoài những nhà báo trực tuyến cần biết để nắm được ít nhất là cơ bản của HTML, có những nghề nghiệp truyền thống ít “kỹ thuật” hơn nhưng lại rất hưởng lợi từ kỹ năng lập trình máy tính.

Ví dụ, với những chuyên gia marketing, nếu muốn xây dựng các trang đích, họ sẽ cần biết các ngôn ngữ phát triển front-end để đảm bảo họ biết điều gì là có thể và không thể, và để đảm bảo họ có thể thực hiện các thay đổi với yêu cầu đầu vào tối thiểu từ nhóm kỹ thuật. Hoặc nếu bạn làm bất kỳ vai trò nào khác tại một công ty phần mềm, bạn cần hiểu cách sản phẩm của bạn được tạo ra và hoạt động, và để làm điều đó, bạn sẽ cần học lập trình.

Tiếp theo sẽ là gì?

Tôi hy vọng rằng, bằng cách sử dụng kỹ năng báo chí của mình để giải thích các chủ đề phức tạp bằng những thuật ngữ đơn giản, bạn bây giờ ddax có thể hiểu được những nguyên tắc cơ bản của lập trình máy tính. Đây là một kỹ năng rất hữu ích để có trong hồ sơ của bạn, bất kể bạn đang ứng tuyển cho công việc gì và ở cấp độ nào.

Các công việc trong tương lai sẽ liên quan đến kỹ năng kỹ thuật, và bạn cần phải bắt đầu ngay bây giờ để chuẩn bị (mặc dù bạn không nên bỏ qua các kỹ năng “mềm” của mình khi robot cuối cùng cũng sẽ thay thế phần lớn nguồn nhân sự kỹ thuật này).

Post Comment

Contact