Một ngôn ngữ để cai trị tất cả

Ẩn bên dưới lớp mã, một ngôn ngữ mòn mỏi, khao khát được học.

Một ngôn ngữ để cai trị tất cả

Tính đến thời điểm viết bài này, truy vấn “lập trình ngôn ngữ nào nên học trước” trả về 517 triệu kết quả tìm kiếm. Mỗi trang web này sẽ ca ngợi một ngôn ngữ cụ thể và 90% trong số họ sẽ đề xuất Python hoặc JavaScript.

Không chần chừ gì nữa, tôi xin khẳng định rằng tất cả 517 triệu trang web này đều sai và ngôn ngữ bạn nên học đầu tiên là logic cơ bản.

Chỉ biết cách viết mã thôi là chưa đủ. Thị trường đã bão hòa số lượng sinh viên tốt nghiệp các học viện và khóa học đến mức vị trí cấp dưới gần như không còn tồn tại*. Để thành công trong thế giới ngày nay, bạn phải vừa viết mã vừa có tư duy logic cơ bản nâng cao.

*sau đây, hãy nhớ rằng đây là bản dịch và tình hình thị trường lao động của tác giả và ở quốc gia của bạn có thể khác (cũng như các sắc thái khác), tuy nhiên, bản thân điều này không làm cho bài viết gốc trở nên tồi tệ hơn - khoảng dịch

Bài học khoa học máy tính đầu tiên của tôi

Lần đầu tiên tôi tiếp xúc với khoa học máy tính là môn tự chọn tôi học năm lớp 10. Ngay ngày đầu tiên bước vào lớp học, tôi đã rất vui mừng khi thấy trước mặt mình có rất nhiều thùng kem và nhiều loại đồ ăn kèm khác nhau. Sau khi mọi người đã ổn định chỗ ngồi, cô giáo tuyên bố:

“Hôm nay chúng ta sẽ nếm thử món kem tự làm. Nhưng với một điều kiện: bạn phải lập danh sách hướng dẫn cụ thể về cách chế biến món tráng miệng và tôi sẽ làm theo."

“Không vấn đề gì,” tôi nghĩ, “bài học này sẽ không kéo dài đâu.” Trong vòng khoảng một phút, tôi đã ghi lại công thức hoàn hảo cho món kem mơ ước của mình:

  1. Múc và đặt ba muỗng kem mâm xôi vào tô
  2. Mở nước sốt sô cô la và thêm hai thìa vào cùng một bát
  3. Thêm kem tươi vào tô
  4. Rắc tất cả bằng que đường và đặt một quả anh đào lên trên

Giáo viên của tôi—“máy tính” trong phép ẩn dụ dễ thương đó—đã thể hiện một màn trình diễn theo đúng nghĩa đen, châm biếm hơn những gì tôi từng thấy trước đây. Cô ấy bắt đầu hăng hái chọc vào thùng kem bằng thìa múc mà không hề chạm vào nắp.

“Được rồi, được rồi, nhưng trước tiên bạn phải mở nó ra đã!” - Tôi kêu lên, cố gắng lấy phần thưởng càng nhanh càng tốt.

“Bạn không viết điều này trong hướng dẫn và tôi không thể làm kem cho bạn. KẾ TIẾP!"

Hãy tua nhanh đến lần thử thứ 2

  1. Mở kem mâm xôi bằng cách tháo nắp
  2. Múc và đặt ba muỗng kem mâm xôi vào tô
  3. Mở nước sốt sô cô la và thêm hai thìa vào cùng một bát
  4. Thêm kem tươi vào tô
  5. Rắc tất cả bằng que đường và đặt một quả anh đào lên trên

Chà, bây giờ chắc chắn sẽ không có vấn đề gì nữa. Để đề phòng, tôi đảm bảo rằng tất cả nguyên liệu để tạo nên kiệt tác ẩm thực của mình đều đã được mở.

Cô giáo mở nắp, múc và cho ba muỗng kem vào tô. “Cuối cùng, món kem xinh đẹp của tôi đã bắt đầu thành hiện thực!” Sau đó, cô mở nước sốt sô cô la và thêm hai thìa vào bát. Cô ấy không “thêm nước sốt sô cô la từ hai muỗng canh” - đừng nghĩ vậy - tất nhiên, cô ấy tự mình đặt những chiếc thìa vào bát. Không có nước sốt trong đó. Một lần nữa, tôi không buồn viết ra chính xác mọi thứ. Sau khi hoàn thành phần còn lại với tinh thần tương tự, tôi nhận được một bát kem và hai thìa canh, hầu như không đáng chú ý dưới biển kem đánh bông. Bên trên là một đôi que đường.

Có vẻ như vào thời điểm này, tôi cuối cùng cũng chợt nhận ra: máy tính là logic trong chân không. Anh ta không nhận thức được hoàn cảnh xung quanh và không đưa ra giả định nào. Anh ta chỉ thực hiện những hướng dẫn được xây dựng rõ ràng và làm theo từng chữ một.

Kết quả cuối cùng của tôi là kết quả của một loạt thử nghiệm và sai sót kéo dài nhưng cần thiết:

  1. Nếu bạn chưa làm như vậy, hãy mở từng gói sau: kem mâm xôi, sốt sô cô la, kem tươi, que đường.
  2. Lấy một cái bát ra và đặt nó trước mặt bạn
  3. Lấy một muỗng kem và đặt lần lượt ba muỗng kem mâm xôi vào một cái bát. Đặt muỗng kem trở lại vị trí cũ.
  4. Lấy một lọ nước sốt sô cô la, múc nước sốt và đổ lượng chứa trong một thìa canh vào tô. Lặp lại quá trình múc và đổ thêm một lần nữa. Đặt thìa và bình trở lại vị trí cũ.
  5. Lấy gói kem lộn ngược và giữ nó trên bát, đổ lên trên kem trong 3 giây, sau đó đặt gói trở lại vị trí cũ.
  6. Lấy một lọ đường, đổ khoảng bốn mươi que vào tô rồi đặt lọ lại.
  7. Lấy một quả anh đào từ bát quả anh đào và đặt nó lên trên lớp kem.
  8. Đưa cho học sinh một cái bát đựng kem đã làm sẵn và một cái thìa.

Điểm cuối cùng đặc biệt quan trọng, vì nếu không có nó thì thời điểm áp chót giáo viên chỉ đơn giản là bắt đầu ăn kem của tôi.

Nhưng đây là lập trình. Sự căng thẳng của việc tạo ra một bộ hướng dẫn cẩn thận cho máy tính. Về cơ bản, đây là điều mà mọi ngôn ngữ lập trình đều hướng tới - viết hướng dẫn.

Nghề lập trình

Lập trình đã đạt đến mức khó có thể thảo luận như một ngành riêng lẻ, cũng như khó có thể sử dụng từ duy nhất “lập trình viên” làm mô tả công việc. Hai nhà phát triển có thể có nhu cầu như nhau trên thị trường, biết các ngôn ngữ hoàn toàn khác nhau, điều đó có nghĩa là khả năng phát triển quan trọng hơn kiến ​​​​thức về một ngôn ngữ cụ thể. Một thuộc tính chung được chia sẻ bởi tất cả các nhà phát triển thành công là logic cơ bản.

Lập trình viên giỏi nhất là người có thể nhìn mã từ một góc độ mới. Và điều này về cơ bản là quan trọng, bởi vì hầu hết các sản phẩm phần mềm là một tập hợp các đoạn mã xấu không có giấy tờ. Họ liên tục cần được tập hợp lại, lấp đầy những khoảng trống khi cần thiết. Những người không thể kết nối các dấu chấm khác nhau bằng một đường duy nhất sẽ mãi mãi phải đứng ngoài cuộc.

Tất cả điều này đưa tôi đến một tuyên bố khác, lần này được in đậm: Kiến thức cơ bản luôn và sẽ là điều tối quan trọng đối với một lập trình viên.

Ngôn ngữ đến và đi. Các khuôn khổ đang trở nên lỗi thời và các công ty đang đáp ứng nhu cầu bằng cách thay đổi nền tảng công nghệ mà họ sử dụng. Có một điều sẽ không bao giờ thay đổi? Đúng - kiến ​​thức cơ bản, gọi là kiến ​​thức cơ bản vì nó làm nền tảng cho mọi thứ!

Cách nâng cao kiến ​​thức cơ bản

Một ngôn ngữ để cai trị tất cảẢnh của Christopher Jeschke trên Unsplash

Nếu bạn đang tìm kiếm điểm khởi đầu để cải thiện tư duy logic cơ bản của mình, hãy thử bắt đầu từ đây:

Biết độ phức tạp của chương trình của bạn

Còn được gọi là O lớn “Độ phức tạp của thuật toán” đề cập đến sự phụ thuộc của thời gian cần thiết để thực thi một chương trình vào kích thước của dữ liệu đầu vào của nó (n). Giữ ngón tay của bạn theo dõi nhịp đập của các thuật toán đang được sử dụng là một bước quan trọng.

Biết cấu trúc dữ liệu của bạn

Cấu trúc dữ liệu là trung tâm của mọi chương trình hiện đại. Biết sử dụng cấu trúc nào trong trường hợp nào là một nguyên tắc tự nó. Cấu trúc dữ liệu liên quan trực tiếp đến độ phức tạp của thời gian chạy và việc chọn sai cấu trúc có thể dẫn đến các vấn đề cơ bản về hiệu suất. Tìm một phần tử trong mảng là O (n), điều này cho thấy chi phí cao khi sử dụng mảng làm dữ liệu đầu vào. Tra cứu bảng băm − O (1), có nghĩa là trong trường hợp này thời gian tìm kiếm một giá trị không phụ thuộc vào số phần tử.

Mọi người đến gặp tôi để phỏng vấn và khẳng định rằng tìm kiếm trong một mảng nhanh hơn tìm kiếm trong bảng băm. Đây là dấu hiệu chắc chắn nhất cho thấy bạn không nên thuê họ - hãy biết cấu trúc dữ liệu của bạn.

Đọc/xem/nghe

Các trang web như UdemyTính đa dạng и CodeAcademy - Một sự lựa chọn tuyệt vời để học các ngôn ngữ lập trình mới. Nhưng đối với những điều cơ bản, hãy tham khảo sách về các nguyên tắc, thực hành và phong cách mã hóa chung. Những cuốn sách được khuyên dùng nhiều nhất là “Mẫu thiết kế”, “Tái cấu trúc”. Cải thiện mã hiện có", "Mã hoàn hảo", "Mã sạch" và "Lập trình viên thực dụng". Cuối cùng, mọi nhà phát triển nên giữ một bản sao của "Thuật toán"trong tầm tay.

Luyện tập!

Bạn không thể nấu trứng bác mà không làm vỡ trứng. Các trang web như Xếp hạng tin tặcCodeWarsCoderByte, TopCoder и LeetCode cung cấp hàng nghìn câu đố thú vị để kiểm tra kiến ​​thức của bạn về cấu trúc dữ liệu và thuật toán. Hãy thử vận ​​​​may trong việc giải quyết vấn đề bạn thích, đăng giải pháp của bạn lên Github và sau đó xem cách những người khác tiếp cận giải pháp đó. Điều này đưa chúng ta đến điểm cuối cùng:

Đọc mã của người khác

Sai lầm lớn nhất bạn có thể mắc phải khi đi theo con đường phát triển là đi một mình. Phát triển phần mềm phần lớn là nỗ lực của nhóm. Chúng ta cùng nhau tạo ra các tiêu chuẩn, cùng nhau phạm sai lầm và cùng nhau trở nên tốt hơn, bất chấp mọi thất bại. Thời gian dành cho việc đọc mã của người khác sẽ được đền đáp xứng đáng. Chỉ cần chắc chắn rằng đó là mã tốt.

Chà, lời khuyên tốt nhất tôi có thể đưa ra là đừng bao giờ xấu hổ vì bạn chưa biết điều gì đó. Như đã nói, ngành công nghiệp của chúng ta rất lớn và lượng công nghệ là vô tận. Phải mất rất nhiều thời gian và công sức để xây dựng một bức tranh tổng thể, thậm chí còn tốn nhiều thời gian hơn để trở thành một chuyên gia trong một lĩnh vực cụ thể nào đó và phải mất nhiều thời gian và công sức hơn nữa để trau dồi kỹ năng trong lĩnh vực của mình. Tôi sẽ cho bạn biết khi tôi đạt được điều này.

Nguồn: www.habr.com

Thêm một lời nhận xét