Tôi đã nhúng ngón chân vào lập trình C ++ nhưng tôi chưa thực sự đào sâu vào nó. Tôi muốn biết nếu tôi thực sự cần phải học nó hoặc bất kỳ ngôn ngữ nào khác trước khi tôi học đại học về Kỹ thuật Máy tính hay tôi sẽ chỉ học nó ở trường chứ?
Tôi đã nhúng ngón chân vào lập trình C ++ nhưng tôi chưa thực sự đào sâu vào nó. Tôi muốn biết nếu tôi thực sự cần phải học nó hoặc bất kỳ ngôn ngữ nào khác trước khi tôi học đại học về Kỹ thuật Máy tính hay tôi sẽ chỉ học nó ở trường chứ?
Câu trả lời:
Vâng, vì nhiều lý do.
Là một sinh viên tốt nghiệp CS (BS, MS, Tiến sĩ), tôi khuyên bạn nên để chân ướt càng sớm càng tốt. Bạn sẽ có đủ những thứ khác diễn ra trong năm đầu đại học. Đặc biệt cho lập trình:
Kiểm tra trang web của trường đại học mục tiêu của bạn và xem danh mục lớp dưới hoặc trang web của giáo trình hướng dẫn cho các lớp lập trình giới thiệu. Tìm kiếm ngôn ngữ lập trình đang được dạy và xem những thứ được bao phủ trong lớp đầu tiên. Cố gắng đọc lên tài liệu đó trước khi bạn bắt đầu.
Một lần nữa, nhìn vào trang giáo trình lớp, nhìn vào các bài tập lập trình trước đó và xem loại công cụ và môi trường lập trình phần mềm nào đang được sử dụng. Có phải vi và gcc (đây là những gì đàn ông thực sự sử dụng)? Microsoft Visual Studio? Nhật thực? Cố gắng sử dụng các công cụ này trước khi bạn bắt đầu.
Lập trình phần mềm chỉ là một trong những điều được dạy trong chương trình giảng dạy CS. Các thuật toán khác là thuật toán (ví dụ QuickSort), cấu trúc dữ liệu (cây, danh sách được liên kết, bảng băm) và lý thuyết thuần túy (tính đầy đủ NP và logic thiết lập). Tôi muốn nói rằng những điều này ít nhất cũng quan trọng như bất kỳ ngôn ngữ lập trình nào bạn học.
Nó phụ thuộc vào các trường đại học. Khi tôi nghiên cứu cái mà họ gọi là "Khoa học máy tính" tại Đại học bang California, họ (đúng, theo ý kiến của tôi) tập trung vào khía cạnh khoa học của nó, và họ mong mọi người (ngay cả sinh viên năm nhất) đã biết cách sử dụng hệ điều hành và làm thế nào để viết mã bằng một số ngôn ngữ phổ biến. Họ không chấp nhận chuyển một số tín dụng mà tôi đã đạt được khi tham gia các khóa học ngôn ngữ tại Đại học Bang Ohio. . Giáo sư không thể đọc C, vì vậy ông yêu cầu tôi viết lại bằng Pascal. Tôi đã hỏi người đứng đầu bộ về tính đúng đắn của yêu cầu này và anh ta nói rằng vì họ không dạy ngôn ngữ, họ cũng không thể mong đợi bất cứ ai hoàn thành một bài tập về bất kỳ ngôn ngữ cụ thể nào. Vì vậy, giáo sư của tôi đã phải sống với bài tập của tôi được viết bằng C. Vì vậy, điểm mấu chốt là, kiểm tra với trường đại học bạn sẽ theo học. Nhưng nếu bạn muốn lời khuyên của tôi, không bao giờ đau lòng để học càng nhiều càng tốt trước đó.
Nếu bạn phải đặt câu hỏi liệu bạn có nên học một ngôn ngữ lập trình ngay từ đầu không, hãy tự hỏi bản thân xem đó có thực sự là điều bạn muốn làm không. Hầu hết các ngành khoa học máy tính những năm đầu tiên đã khá giỏi lập trình trước khi chúng bắt đầu, vì vậy bạn sẽ phải cạnh tranh với những loại có xu hướng tự nhiên. Hoặc nhảy vào đầu nó trước hoặc làm một cái gì đó bạn yêu thích. Đừng ở trên hàng rào. Yêu những gì bạn làm. Tôi không cần hoặc muốn bình chọn cho cái này, chỉ muốn nói chuyện thẳng với bạn.
Tôi không nghĩ bạn cần học nó trước khi học đại học. Tuy nhiên tôi tin rằng giống như hầu hết mọi thứ trong cuộc sống, nếu bạn đã chuẩn bị trước khi tham dự một số sự kiện, v.v. thì rất có thể bạn có thể đưa ra quyết định sáng suốt hơn về những thông tin nào cần hấp thụ và những thông tin nào cần loại bỏ.
Cụ thể hơn bằng cách ít nhất là nhúng ngón chân, bạn có thể lắng nghe những gì giảng viên của bạn đang nói thay vì chỉ sao chép những gì họ nói nguyên văn nhưng không thực sự tiếp thu các khái niệm mà họ đang cố gắng vượt qua, mà theo tôi là quan trọng nhất một phần của trường đại học (không phải là phần thực sự học của ngôn ngữ, v.v.).
Đối với những gì ngôn ngữ lập trình để học. Có lẽ không thành vấn đề nhưng có thể hữu ích để bắt đầu đọc những thứ bạn có khả năng sẽ chi trả trong năm đầu tiên.
Tuy nhiên, mặt trái của việc học trước là khi bạn bắt đầu vài tháng đầu tiên, bạn có thể thấy các bài giảng nhàm chán và sơ cấp. Điều này sau đó có thể dẫn đến việc bạn không tham dự các lớp học hoặc loại bỏ những gì các giảng viên đang cố gắng vượt qua do đó thiếu một số thông tin quan trọng như nhận ra cách bạn thực sự học được điều gì đó không đúng cách tức là bạn đã học được thói quen xấu trước khi học đại học.
Bằng cách đào sâu vào các loại trang web này, có lẽ bạn đã đi trước một bước để có thể học tập trong thời gian học đại học. Dù bằng cách nào, những gì bạn học trước có lẽ sẽ chỉ là phần nổi của tảng băng chìm. Bạn sẽ cần phải tiếp tục học tập này trong và ngoài tài liệu đại học nếu bạn muốn thực hiện những lợi ích mà nó có thể cung cấp.
Có, nhưng đừng bắt đầu với ngôn ngữ phức tạp nhất, sẽ có nhiều thời gian cho việc đó sau.
Bắt đầu với một cái gì đó đơn giản để có được bàn chân ướt. Việc quấn đầu quanh các khái niệm lập trình sẽ dễ dàng hơn nhiều khi bạn không bị gánh nặng bởi chính ngôn ngữ này. Tương tự như vậy, một số ngôn ngữ làm mọi thứ tốt hơn những ngôn ngữ khác.
Học Python để lập trình động, các kỹ thuật lập trình hướng đối tượng đơn giản và thụt lề thích hợp. Tìm hiểu javascript + JQuery hoặc Lua để tìm hiểu về các bao đóng. Tìm hiểu Java hoặc C # để tìm hiểu về gõ tĩnh. Tìm hiểu các biểu thức chính quy để phân tích chuỗi. Và học một ít SQL vì mọi lập trình viên phải chạm vào cơ sở dữ liệu tại một số điểm. Sau đó học PHP để bạn có thể xác định mã spaghetti.
Danh sách này có thể khác nhau, nhưng về cơ bản chọn một vài ngôn ngữ thú vị và sử dụng chúng để tìm hiểu các khái niệm . Sau đó, bạn sẽ học cách thích nghi, thay vì trì trệ một ngôn ngữ trong suốt quãng đời còn lại và giận dữ cố gắng bảo vệ nó trên internet mọi lúc.
Tôi sẽ nói rằng tôi không nghĩ nó sẽ quan trọng quá nhiều ngôn ngữ mà bạn biết khi bạn bắt đầu, nhưng nó có thể sẽ mang lại cho bạn một lợi thế theo nghĩa là khi bạn nhận được bài tập lập trình đầu tiên, bạn không có để đấu tranh với vấn đề tư duy về mã - bạn sẽ có một số kinh nghiệm ở đó. Một ít học đường để vượt qua là một điều tốt. Tiền thưởng nếu bạn học ngôn ngữ họ dạy trong năm đầu tiên, nhưng không cần thiết.
Bạn sẽ không biết liệu Kỹ thuật máy tính có thực sự là chương trình cấp bằng phù hợp với bạn hay không cho đến khi bạn ít nhất tìm ra việc bạn thấy lập trình trở nên khó khăn hay dễ dàng như thế nào, cũng như bạn giỏi như thế nào. Cách duy nhất để thực sự biết là thử và học ít nhất một ngôn ngữ lập trình và thực hiện nhiều mã hóa, càng sớm càng tốt.
Một số điều bạn có thể quan tâm đến việc học trước khi vào Đại học (chọn một trong số đó):
Tôi sẽ không khuyên bạn nên tập trung theo cách hẹp vào C ++; ngôn ngữ, sách, kỹ năng khác sẽ mang lại cho bạn nhiều hơn nữa. Đừng dành tất cả nỗ lực của bạn cho C ++.
Tận hưởng việc học của bạn.
Thành thật mà nói, nếu bạn có thời gian hãy dành cho nó. CNTT sẽ có ý nghĩa hơn trong khi giáo viên đang giảng dạy. Bạn sẽ nhận được nhiều nhất từ nó hơn những sinh viên chưa bao giờ lập trình.
Chắc chắn rồi! Nếu bạn chưa lập trình trước đó, học C ++ hoặc C hoặc Java hoặc C # sẽ giúp bạn bắt đầu ngay. Tất cả các ngôn ngữ đó đều dựa trên Algol (đại khái) - một khi bạn đã học một trong số chúng, hãy học Lisp hoặc Haskell. Sự thay đổi mô hình tuyệt vời giữa hai gia đình sẽ hỗ trợ bạn cho dù khóa học của bạn có đòi hỏi gì.
Cá nhân tôi muốn giới thiệu nó. Điều này sẽ không áp dụng cho tất cả các trường, nhưng tôi đã đi đến nơi được coi là một trường kỹ thuật rất tốt và các lớp lập trình giới thiệu là khủng khiếp. Biết những điều cơ bản sẽ giúp bạn tránh được nhiều thực hành xấu / kiến thức không chính xác có thể được dạy cho bạn. Và như một câu trả lời khác đã đề cập, bạn sẽ tìm hiểu các lớp giới thiệu dễ lập trình đó trong khi các lớp khác phải vật lộn. Và nếu bạn giống như tôi, điều đó mang đến cho bạn nhiều cơ hội hơn để giúp đỡ những người bạn đang phải vật lộn với chính họ.
Tôi nghĩ bạn nên. Bên cạnh những lý do được đưa ra bởi những người khác ở đây, tôi sẽ nói thêm rằng rất nhiều giáo sư đại học không giỏi giảng dạy và do đó bạn không thể dựa vào họ để dạy những gì bạn đang học rất tốt. Bạn sẽ hiểu những gì họ đang nói tốt hơn rất nhiều nếu bạn đã nắm được những điều cơ bản.
Thêm vào đó, tỷ lệ tài liệu khóa học trên giờ học thường quá cao trong các trường đại học, vì vậy ngay cả khi giáo sư là một giáo viên đàng hoàng, anh ta cũng không thể dạy bạn hiệu quả trong giờ học. Vì vậy, bất kỳ kiến thức nào bạn có được trước sẽ giúp bạn theo kịp tốc độ nhanh chóng của lớp học.
IMO C ++ là một trong những ngôn ngữ tồi tệ nhất cho người mới bắt đầu. Hãy tiếp tục và nghiên cứu C ++ nếu bạn không thấy quá khó, nhưng các ngôn ngữ khác như C #, VB, Ruby hoặc Python thì dễ hơn một chút.
Sẽ là một động thái rất thông minh để biết một số ngôn ngữ trước khi vào đại học. Hướng dẫn đại học về Khoa học Máy tính thường có chất lượng ảm đạm, được đưa ra bởi các TA không được đào tạo hoặc không nói tiếng Anh. Các khóa học giới thiệu không phải là một ưu tiên và hướng dẫn kém là quy tắc. Các trường đại học kiếm tiền từ trợ cấp; nhận được tài trợ là ưu tiên của hầu hết các giảng viên đại học, không giảng dạy sinh viên đại học. Đây là một quy tắc buồn với một vài ngoại lệ.
Tuy nhiên, chất lượng chương trình ở các trường trung học cũng có thể kém. Nhiều chính quyền nhà trường nghĩ rằng đào tạo sử dụng Micosoft Word là khoa học máy tính. Ah, những điều vô nghĩa phát ra từ các trường ed!
Tôi ước tôi có thể lạc quan hơn. Nếu bạn có một chương trình compsci tốt ở trường trung học của bạn, hãy bám lấy nó. Vượt ra ngoài giới hạn và tích cực học tập. Nếu bạn khá dám nghĩ dám làm, không khó để dạy bản thân Python và để có được một số kỹ năng về nó. Một khi bạn học nó, học các ngôn ngữ khác không phải là khó. Ngữ pháp đơn giản của Python làm cho việc học nó tương đối dễ dàng.
Đúng.
Cái nào bạn nên học phụ thuộc vào "Kỹ thuật máy tính" nghĩa là gì. Đó là một thuật ngữ không chuẩn. Nơi tôi học, đó là sự kết hợp giữa điện tử và khoa học máy tính.
Nếu bạn mong đợi chủ yếu làm việc với phần cứng máy tính, tôi khuyên bạn nên học C và Forth. Nếu bạn chủ yếu sẽ làm những gì tôi cho là "khoa học máy tính", tôi sẽ khuyên bạn nên học một cái gì đó như Python hoặc Smalltalk để thử "công việc thực tế" và ngôn ngữ lập trình chức năng mà bạn chọn (tôi sẽ đề xuất một số biến thể của lisp hoặc lược đồ, nhưng chọn những gì dễ nhất và thú vị nhất).
Tôi sẽ chia sẻ kinh nghiệm của riêng tôi.
Tôi bắt đầu lập trình khoảng 10-11 tháng trước. Lần đầu tiên tôi tiếp xúc thực sự với nó là với PHP, nhưng sau đó, tôi thấy mình học C # trong một khóa học giới thiệu (CS 140) tại trường đại học cộng đồng địa phương. Sau khi tôi học được những điều cơ bản, tôi đã bay khá nhiều và không dừng lại kể từ đó. Sau C #, tôi quyết định bắt đầu học các cơ chế cấp thấp hơn về cách máy tính làm việc. Tôi đang làm việc trên một ứng dụng được cho là đa nền tảng và có nhiệm vụ giúp các công cụ trò chơi video tương tác với nhau (tương tự SDL, nhưng có thể ở mức độ thấp hơn thế, với sự tập trung nghiêm ngặt vào GUI, toán học và các chức năng trợ giúp khác).
Về cơ bản, nếu nó không dành cho lớp học đó, tôi sẽ không tìm thấy những gì tôi yêu thích cho đến tận sau này. Bạn không thực sự biết rằng bạn thích lập trình cho đến khi bạn thực sự hiểu các khái niệm đằng sau nó. Nếu bạn muốn tìm hiểu, tôi khuyên bạn nên chọn phần giới thiệu về sách lập trình và bắt đầu với C / C ++ vì bạn cần hiểu những gì bạn đang làm, thay vì sử dụng ngôn ngữ sẽ nắm trong tay bạn như Java hoặc C # hoặc chỉ cần một số ngôn ngữ kịch bản - hãy nhớ rằng, chúng có vị trí của chúng và là những công cụ tốt để sử dụng, nhưng điều bắt buộc là bạn phải hiểu các khái niệm cấp thấp hơn lúc đầu. Đây là một sai lầm tôi đã làm lúc đầu.
Sau đó, tiếp tục lập trình nếu bạn thích nó. Nếu không, hãy học cái gì đó khác. Dù bạn quyết định làm gì, bạn nên dành nhiều thời gian nhất có thể cho nó trước khi bạn học một trường đại học 2-4 năm để học nó, vì nó sẽ THỰC SỰ giúp bạn vượt lên trước trò chơi. Nó cũng sẽ cho thấy động lực cho bất kỳ nhà tuyển dụng nào có khả năng thuê bạn.
Tôi có thể nói với bạn rằng các ngành khoa học máy tính / kỹ thuật điện cho đến nay là nhanh nhất về tốc độ tiến hóa của chúng (tiếp tục tăng lên hàng năm), và bạn sẽ phải tiếp tục học các công nghệ mới để theo kịp những gì mới nhất và lớn nhất (mà bạn nên tìm thấy ít nhất là hơi thú vị, mặc dù nó thực sự phụ thuộc vào lĩnh vực chuyên môn mà bạn chuyên về. Ví dụ, tôi ghét lập trình web và tôi không quan tâm đến tất cả các công nghệ tồn tại cho nó, nhưng một số người thực sự thích nó và quan tâm đến nó). Mặc dù vậy, C / C ++ là những ngôn ngữ tuyệt vời để học, trong khi nhiều ngôn ngữ khác (ví dụ C #, Java), có các API dựng sẵn để "làm cho cuộc sống dễ dàng hơn", bạn sẽ không học được một điều chết tiệt nào về những gì đang thực sự xảy ra dưới mui xe cho đến khi bạn "
Về cơ bản, tôi đã lập trình được 10-11 tháng và tôi chưa từng theo học bất kỳ trường đại học nào. Tôi đã học lớp C # tại một trường cao đẳng cộng đồng (lớp lập trình đầu tiên của tôi, nơi dạy tôi các nguyên tắc cơ bản), và ít nhất 95% phần còn lại tôi tự học. Điều này là bởi vì, sau khi tham gia lớp học đó, tôi biết tôi muốn trở thành một lập trình viên. Bạn sẽ biết điều đó một khi bạn hiểu nó. Dù bạn chọn con đường nào, bạn nên nghiên cứu nó một cách độc lập nếu bạn thực sự muốn thành công với nó, bởi vì nó làm tăng khả năng thúc đẩy và cam kết của bạn. Một lập trình viên cóđể có động lực để thành công. Họ đối phó với rất nhiều, không chỉ đơn giản là "viết mã". Một ứng dụng liên tục phải được kiểm tra, gỡ lỗi và hiểu từ đầu. Thông thường, dù nhỏ hay lớn, bạn gần như sẽ học được điều gì đó mới cho mọi dự án bạn thực hiện. Đây là một điều tốt, bởi vì bạn cần phải giữ cho bộ não đó hoạt động.