JavaRush /Blog Java /Random-VI /Một ngôn ngữ để thống trị tất cả

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

Xuất bản trong nhóm
Có một ngôn ngữ nằm bên dưới mỗi lớp mã, trong bất kỳ ngôn ngữ lập trình nào. Và anh ấy đang chờ đợi để được khám phá... Bản dịch và chuyển thể một bài báo của Eric Girois từ cộng đồng lập trình Better trên Medium. Một ngôn ngữ thống trị tất cả - 1Khi tôi viết bài này, số lượng truy vấn tìm kiếm theo kiểu “học ngôn ngữ lập trình nào” đã vượt quá 517 triệu (!). Mỗi trang trong danh sách kết quả tìm kiếm cho biết những ưu điểm của một ngôn ngữ cụ thể so với các ngôn ngữ khác và trong 90% trường hợp, bạn sẽ được đề xuất điều tương tự, như Python, JavaSctipt (hoặc thứ gì đó từ 3 xếp hạng có thẩm quyền hàng đầu về ngôn ngữ ngôn ngữ. xếp hạng hiện tại cho tháng 7 là đây ;) Hãy để tôi mạnh dạn và chính thức không đồng ý với tất cả 517 triệu kết quả và nói rằng ngôn ngữ lập trình đầu tiên bạn nên học là logic . Chỉ biết cách viết mã thôi là chưa đủ. Thị trường quá đông với những sinh viên tốt nghiệp các khóa học khác nhau, đó là lý do tại sao vị trí nhà phát triển cấp dưới về cơ bản đã không còn tồn tại. Để thành công trong những thực tế này, bạn không chỉ cần viết mã mà còn phải có đầu óc logic.

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 làm quen với khoa học máy tính là ở một lớp học tự chọn ở lớp mười. Tôi đến lớp và cảm thấy một niềm vui thích: trong lớp có rất nhiều hộp kem và lọ sirô. Khi chúng tôi ngồi vào chỗ, cô giáo thông báo: “Hôm nay chúng ta sẽ làm ngày chủ nhật ( một món tráng miệng làm từ kem và si-rô - ghi chú của biên tập viên ). Nhưng với một điều kiện: bạn phải viết ra những hướng dẫn chính xác để chuẩn bị món tráng miệng và tôi sẽ làm theo.” “ Không còn nghi ngờ gì nữa ,” tôi nghĩ, “ mọi chuyện sẽ dễ dàng thôi .” Chỉ trong một phút, tôi đã ghi lại những hướng dẫn hoàn hảo: Cho ba muỗng kem mâm xôi vào cốc Đổ hai thìa xi-rô sô cô la vào cốc đó Thêm kem tươi vào cốc Thêm rắc rắc và một quả anh đào lên trên cùng của ngày chủ nhật Sau đó, tôi giáo viên—đóng vai trò là “máy tính”—làm theo đúng hướng dẫn, cô ấy đã biểu diễn một màn trình diễn ăn da nhất mà tôi từng thấy. Cô bắt đầu giận dữ “tấn công” hộp kem bằng bìa cứng nhưng chiếc nắp bền bỉ vẫn không hề hấn gì. “Được rồi, trước tiên hãy mở nắp ra,” tôi nói, hy vọng sẽ nhanh chóng có được món tráng miệng. “Bạn đã không viết đúng hướng dẫn cho tôi nên rất tiếc là tôi không thể làm bài Chủ nhật TIẾP THEO cho bạn!”

Chuyển nhanh đến lần thử số 2

Mở hộp kem mâm xôi bằng cách mở nắp Đặt ba muỗng kem mâm xôi vào cốc Mở xi-rô sô cô la và thêm hai thìa vào cốc đó Mở kem đánh bông và thêm một ít vào cốc Thêm rắc và một quả anh đào lên trên vào ngày chủ nhật, tôi tự tin rằng mình đã làm được điều này một lần. Cô giáo mở nắp, múc ba muỗng kem cho vào cốc. Cuối cùng thì ngày Chủ nhật của tôi cũng sắp sẵn sàng! Sau đó, cô mở xi-rô sô cô la và cho hai thìa vào cốc. Nhưng không phải hai thìa xi-rô - chỉ là thìa thôi, không cần nó! Hướng dẫn của tôi một lần nữa không đủ chính xác. Khi mọi việc đã xong, tôi nhận được một cốc kem, hai thìa kim loại, một tấn kem đánh bông và khoảng 300 muỗng rắc. Dường như vào lúc đó mọi thứ trở nên rõ ràng với tôi: máy tính là một thực thể được hướng dẫn bởi logic thuần túy. Anh ta không hiểu bối cảnh và không đưa ra giả định. Anh ta tuân theo một bộ hướng dẫn nghiêm ngặt và làm theo chúng đến từng bức thư. Hướng dẫn cuối cùng để làm ngày Chủ Nhật dài dòng khủng khiếp, nhưng nó cần thiết: ​​Nếu chưa mở, hãy mở bao bì của tất cả các mặt hàng sau: Kem mâm xôi, Xi-rô sô cô la, Lớp trên bề mặt và Kem đánh bông Lấy một cốc từ kệ và đặt trước mặt bạn Lấy một muỗng kem và lần lượt múc và đặt ba muỗng kem vào cốc. Khi mọi thứ đã xong, hãy đặt chiếc thìa lên bàn. Lấy một thìa xi-rô sô-cô-la nếu bạn chưa có. Sau đó lấy một thìa xi-rô sô cô la và đổ vào cốc. Thực hiện hành động này hai lần. Đặt xi-rô sô cô la lên kệ khi hoàn thành. Lật ngược chai kem đánh bông và dùng ngón tay ấn nút gần miệng chai trong ba giây, sau đó đưa chai về vị trí ban đầu. Rắc 40 hạt rắc lên trên kem và xi-rô sô cô la trong cốc, sau đó đưa bình lắc rắc về vị trí ban đầu. Lấy một quả anh đào ra khỏi lọ anh đào và cẩn thận đặt nó lên trên cây chủ nhật. Đưa cho học sinh thìa chủ nhật và món tráng miệng. Lệnh cuối cùng trong phần hướng dẫn rất quan trọng, vì nếu không có nó, cô giáo bắt đầu tự ăn ngày Chủ nhật. Đây là thực tế của lập trình - bạn cần đưa ra những hướng dẫn chính xác nhất cho máy tính. Về bản chất, tất cả các ngôn ngữ lập trình đều được tạo thành từ các hướng dẫn.

Nghề nghiệp trong phát triển phần mềm

Phát triển phần mềm đang ở giai đoạn phát triển mà việc nói về nó như một ngành riêng biệt có vẻ quá chung chung. Và vị trí “nhà phát triển phần mềm” nghe có vẻ mơ hồ về vấn đề này. Hai nhà phát triển với các bộ kỹ năng khác nhau có thể có nhu cầu như nhau trên thị trường việc làm, điều này cho thấy rằng sự nghiệp phát triển thành công đòi hỏi nhiều thứ hơn là chỉ kỹ năng lập trình. Các nhà phát triển có kinh nghiệm có một đặc điểm chung khác với lập trình - logic . Các nhà phát triển giỏi nhất có tư duy phê phán mạnh mẽ. Điều này rất quan trọng vì hầu hết các dự án phát triển phần mềm đều là những cơn ác mộng chắp vá được ghi chép kém. Sẽ cần một người có tư duy phê phán để thu thập tất cả dữ liệu và lấp đầy những khoảng trống. Do đó, những chuyên gia không có khả năng kết nối các sự kiện thành một tổng thể duy nhất sẽ bị tụt lại phía sau. Tất cả điều này dẫn đến một tuyên bố rất quan trọng khác: Các nguyên tắc cơ bản của khoa học máy tính - cả hiện tại và tương lai - đều là chủ yếu. Chúng quan trọng hơn khả năng viết mã. Ngôn ngữ phổ biến đế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 thay đổi của thị trường bằng cách kết hợp nhiều công nghệ được sử dụng. Điều gì vẫn không thay đổi? Cơ bản của cơ bản.

Cách phát triển tư duy logic

Tư duy logic và phê phán có thể và nên được phát triển. Tôi khuyên bạn nên chú ý những điều sau:

1. Nghiên cứu tính hiệu quả của thuật toán trong môi trường thời gian chạy

Ký hiệu Big-O được sử dụng để mô tả độ phức tạp của thuật toán. Nếu bạn có thể đánh giá mã của mình theo thuật ngữ Big O và phân tích số bước được thực hiện so với thời gian đã sử dụng, hãy coi như bạn đã thực hiện bước đầu tiên đúng hướng.

2. Tìm hiểu cấu trúc dữ liệu

Cấu trúc dữ liệu là nền tảng của mọi chương trình phức tạp. Biết loại nào là tốt nhất để sử dụng trong trường hợp nào là một kỹ năng quan trọng. Cấu trúc dữ liệu liên quan trực tiếp đến độ phức tạp của thuật toán, vì việc chọn sai cấu trúc có thể giết chết chương trình.

3. Đọc/xem/nghe

Tất nhiên, bạn cần học lập trình Java bằng JavaRush :)
Chà, để hiểu những điều cơ bản, hãy đọc sách về các khái niệm thiết kế, các phương pháp hay nhất và phong cách viết mã. Những ai đang học lập trình nên đọc:
  • “Kỹ thuật thiết kế hướng đối tượng. Các mẫu thiết kế” (E. Gamma R. Helm R. Johnson J. Vlissides),
  • “Tái cấu trúc. Cải thiện mã hiện có” (M. Fowler),
  • “Mật mã hoàn hảo” (S. McConnell)
  • “Mã sạch” (B. Martin)
  • “Lập trình viên thực dụng” (E. Hunt)
  • “Thuật toán: xây dựng và phân tích” (T. Cormen, C. Leiserson, R. Rivest và K. Stein)

4. Luyện tập!

Bạn không thể trở thành một nghệ sĩ cello giỏi nếu không có hàng trăm giờ luyện tập. Thực hành hàng ngày là chìa khóa thành công trong lập trình. Ngày nay, có rất nhiều nền tảng trực tuyến nơi bạn có thể tìm thấy hàng nghìn tác vụ đòi hỏi sự hiểu biết về cấu trúc dữ liệu và thuật toán (HackerRank, LeetCode, CodeWars và các nền tảng khác).
Các bài toán lập trình Java từ đơn giản đến phức tạp đều có trên JavaRush. Có hơn 1200 trong số đó trong khóa học, cũng như các dự án nhỏ và trò chơi nhiệm vụ .
Đối với tôi, cách hiệu quả nhất để làm việc với những nền tảng như vậy là nghĩ ra một cách tiếp cận độc đáo cho vấn đề và đăng giải pháp của bạn lên Github. Sau đó xem xét các giải pháp hàng đầu cho một vấn đề tương tự và phân tích cách tiếp cận của các lập trình viên khác. Điều này đưa chúng ta đến mẹo cuối cùng:

5. Phân tích mã của người khác

Sai lầm chính khi học lập trình và trong giai đoạn đầu đi làm là tự cô lập. Phát triển phần mềm là một lĩnh vực phụ thuộc phần lớn vào tinh thần đồng đội. Chúng tôi cùng nhau tạo ra các tiêu chuẩn, phạm sai lầm và theo thời gian (một lần nữa, thông qua thử và sai), chúng tôi tìm ra điều gì hiệu quả nhất. Dành thời gian để đọc mã của các nhà phát triển có kinh nghiệm sẽ mang lại hiệu quả. Chỉ cần đảm bảo rằng mã thực sự tốt.

Phần kết luận

Lời khuyên cá nhân: đừng bao giờ xấu hổ về những gì bạn chưa (chưa) biết. Như đã nêu ở trên, ngành này rất lớn, số lượng ngôn ngữ không thể tin được và có rất nhiều thông tin. Phải mất rất nhiều thời gian và công sức để hình thành ít nhất một ý tưởng chung về lập trình, thậm chí nhiều hơn để tích lũy kinh nghiệm và nhiều lần hơn nữa để trở thành một chuyên gia thực sự. Cuối cùng khi nào thành công mình sẽ báo bạn nhé :)
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION