Làm thế nào tôi có thể có thêm kinh nghiệm lập trình [đóng]


9

Tôi sắp trở thành sinh viên khoa học máy tính năm thứ ba và tôi đã đọc Head First Java, Head First C và tôi hiện đang đọc C ++, ngôn ngữ mà tôi thích nhất vì nó có phong cách giảng dạy tốt cho những người có kinh nghiệm. Tôi đang lên kế hoạch học cách tạo phần mềm với QT, học object-C (cho iphone) hoặc đọc C ++ hiệu quả.

Làm thế nào tôi có thể có kinh nghiệm làm lập trình viên? Tôi có các kỹ năng để tham gia một dự án nguồn mở hay tôi cần học php, mySQL hoặc bất kỳ ngôn ngữ nào khác. Tôi yêu thích lập trình và khoa học máy tính nói chung mặc dù một số lớp học có thể cực kỳ khó khăn (khoa học máy tính lý thuyết). Tôi cũng có kế hoạch trở thành một bậc thầy trong c ++ nhưng điều đó sẽ không sớm thôi.


1
Bạn đã viết bất kỳ chương trình mà người khác sử dụng? Nếu không, hãy viết một cái mà một thành viên gia đình thân yêu cần, và làm cho nó hữu ích cho anh ấy hoặc cô ấy (có thể mất vài lần lặp lại). Phần cuối cùng là nơi bài học thực sự.

Làm thế nào để bạn đến Carnegie Hall?
jfrankcarr

1
Tôi sẽ nghe như một lỗ đít trong một giây nhưng ... kinh nghiệm - Tham gia tích cực vào các sự kiện hoặc hoạt động, dẫn đến tích lũy kiến ​​thức hoặc kỹ năng. Vì vậy, hãy bắt đầu tích cực tham gia lập trình.
Steven Evers

1
BTW, sự khác biệt giữa StackOverflow và lập trình viên là gì? Là mô hình của các câu hỏi đóng có nghĩa là làm cho các lập trình viên chỉ là một StackOverflow khác? Điểm sau đó là gì - chỉ cần hợp nhất hai. Chúng tôi đã từng có thể hỏi những câu hỏi bí truyền về Lập trình viên mà chúng tôi không thể có trong StackOverflow.
שינתיא אבישגנת

Câu trả lời:


11

ABC - LUÔN LUÔN ĐƯỢC. Nó thực sự đơn giản. Một trong những cách yêu thích của tôi để làm quen với một ngôn ngữ là viết một trình thông dịch đồ chơi cho một tập hợp ngôn ngữ trong chính ngôn ngữ đó hoặc nếu đó không phải là vấn đề của bạn thì có thể là một máy dò tia hoặc một thứ khác đủ lớn để không tầm thường nhưng không lớn đến mức không thể hoàn thành sau một tháng nữa. Vấn đề là làm việc trên một cái gì đó sẽ buộc bạn nhìn vào thư viện tiêu chuẩn và các phương tiện trừu tượng hóa dữ liệu mà ngôn ngữ cung cấp. Đôi khi dự án là một thành công đôi khi không, nhưng cuối cùng, tôi biết đủ về một ngôn ngữ để biết điểm mạnh và điểm yếu của nó là gì và liệu tôi có muốn tiếp tục học hỏi thêm không. Nếu tôi thích ngôn ngữ này thì mỗi khi tôi đọc một bài viết hoặc bài đăng trên blog thú vị, tôi sẽ cố gắng bắt đầu một dự án trong đó tôi thực hiện một số ý tưởng được trình bày trong bài báo hoặc bài đăng trên blog. Bằng cách này, tôi luôn luôn được thực hành và học hỏi những ý tưởng mới để nó trở thành một chu kỳ đạo đức.

Một số dự án đã làm việc rất tốt cho tôi trong quá khứ: trình thông dịch cho một tập hợp con của một số ngôn ngữ, trình theo dõi tia, trình tạo trình phân tích cú pháp PEG, trình phân tích cú pháp tiêu đề HTTP, máy khách / máy chủ echo đơn giản, bot bot để tự động đăng tweet từ hàng đợi, sản phẩm amazon cạp để tìm kiếm giao dịch.


+1 Bạn đã đề cập đến một số dự án thực sự thú vị, cảm ơn.
Anthony

8

Như đã giải thích độc đáo trong Dạy học lập trình trong mười năm , bạn nên làm theo các bước tiếp theo:

  • Hãy quan tâm đến lập trình, và làm một số bởi vì nó là niềm vui. Hãy chắc chắn rằng nó vẫn đủ vui để bạn sẵn sàng đặt trong mười năm / 10.000 giờ của mình.

  • Chương trình . Loại học tốt nhất là học bằng cách làm. Nói một cách kỹ thuật hơn, "mức hiệu suất tối đa cho các cá nhân trong một miền nhất định không được tự động đạt được như một chức năng của trải nghiệm mở rộng, nhưng mức độ hiệu suất có thể tăng lên ngay cả bởi những cá nhân có kinh nghiệm cao do nỗ lực cải thiện có chủ ý để cải thiện . " (p. 366) và "việc học hiệu quả nhất đòi hỏi một nhiệm vụ được xác định rõ ràng với mức độ khó thích hợp cho từng cá nhân cụ thể, phản hồi thông tin và cơ hội để lặp lại và sửa lỗi." (trang 20-21) Cuốn sách Nhận thức trong thực tiễn: Tâm trí, Toán học và Văn hóa trong cuộc sống hàng ngày là một tài liệu tham khảo thú vị cho quan điểm này.

  • Nói chuyện với các lập trình viên khác; đọc các chương trình khác . Điều này quan trọng hơn bất kỳ cuốn sách hoặc khóa đào tạo.

  • Nếu bạn muốn, đặt trong bốn năm tại một trường cao đẳng (hoặc nhiều hơn tại một trường đại học). Điều này sẽ cung cấp cho bạn quyền truy cập vào một số công việc yêu cầu thông tin xác thực và nó sẽ giúp bạn hiểu sâu hơn về lĩnh vực này, nhưng nếu bạn không thích đi học, bạn có thể (với một số cống hiến) có được kinh nghiệm tương tự với chính bạn hoặc trong công việc . Trong mọi trường hợp, học sách một mình sẽ không đủ. "Giáo dục khoa học máy tính không thể khiến bất cứ ai trở thành một lập trình viên chuyên gia, ngoài việc nghiên cứu bút vẽ và bột màu có thể khiến ai đó trở thành họa sĩ chuyên gia", Eric Raymond, tác giả của Từ điển mới của Hackman nói. Một trong những lập trình viên giỏi nhất tôi từng thuê chỉ có bằng Trung học; ông đã sản xuất rất nhiều phần mềm tuyệt vời, có nhóm tin tức của riêng mình và kiếm đủ các lựa chọn cổ phiếu để mua hộp đêm của riêng mình.

  • Làm việc trên các dự án với các lập trình viên khác . Hãy là lập trình viên tốt nhất trong một số dự án; là tồi tệ nhất trên một số người khác. Khi bạn là người giỏi nhất, bạn sẽ kiểm tra khả năng của mình để dẫn dắt một dự án và truyền cảm hứng cho những người khác bằng tầm nhìn của bạn. Khi bạn là người tồi tệ nhất, bạn học những gì các bậc thầy làm và bạn học những gì họ không muốn làm (vì họ bắt bạn làm điều đó cho họ).

  • Làm việc trên các dự án sau khi lập trình viên khác . Hiểu một chương trình được viết bởi người khác. Xem những gì nó cần để hiểu và sửa chữa nó khi các lập trình viên ban đầu không có mặt. Hãy suy nghĩ về cách thiết kế chương trình của bạn để giúp những người sẽ duy trì chúng sau bạn dễ dàng hơn.

  • Học ít nhất nửa tá ngôn ngữ lập trình. Bao gồm một ngôn ngữ hỗ trợ trừu tượng lớp (như Java hoặc C ++), một ngôn ngữ hỗ trợ trừu tượng hóa chức năng (như Lisp hoặc ML), một ngôn ngữ hỗ trợ trừu tượng cú pháp (như Lisp), một ngôn ngữ hỗ trợ các đặc tả khai báo (như các mẫu Prolog hoặc C ++), một ngôn ngữ có hỗ trợ coroutines (như Icon hoặc Scheme) và một hỗ trợ song song (như Salu).

  • Hãy nhớ rằng có một "máy tính" trong "khoa học máy tính". Biết máy tính của bạn mất bao lâu để thực hiện một lệnh, lấy một từ từ bộ nhớ (có và không có lỗi bộ nhớ cache), đọc các từ liên tiếp từ đĩa và tìm đến vị trí mới trên đĩa. (Câu trả lời ở đây.)

  • Tham gia vào một nỗ lực tiêu chuẩn hóa ngôn ngữ. Nó có thể là ủy ban ANSI C ++ hoặc có thể quyết định xem phong cách mã hóa cục bộ của bạn sẽ có 2 hoặc 4 cấp độ thụt lề không gian. Dù bằng cách nào, bạn tìm hiểu về những gì người khác thích trong một ngôn ngữ, họ cảm thấy sâu sắc như thế nào, và thậm chí có thể một chút về lý do tại sao họ cảm thấy như vậy.

  • Có ý thức tốt để thoát khỏi nỗ lực tiêu chuẩn hóa ngôn ngữ càng nhanh càng tốt.


3

Tôi khuyên bạn nên tự rèn luyện bằng cách viết các chương trình chức năng một cách hiệu quả. Thực hiện một dự án lớn hơn một khi bạn nghĩ rằng bạn đã có những điều cơ bản. Tìm hiểu khung qt để phát triển phần mềm và tiếp tục thực hành. Cách tốt nhất để học lập trình là thực sự viết mã.

Tôi muốn nói rằng việc đọc cũng đóng một vai trò quan trọng, bạn có thể tìm kiếm một nhóm các nhà phát triển đang lưu trữ một dự án nguồn mở (Tìm kiếm trên github hoặc các trang web tương tự khác) bởi vì họ có thể cung cấp cho bạn kinh nghiệm phát triển nhóm có giá trị.


2

Đôi khi những nơi như sourceforge ban đầu hơi nản chí. Một cách thực sự tốt để tìm một cái gì đó để làm, là duyệt qua các trình theo dõi vấn đề của các dự án và tìm một lỗi / vấn đề bạn thích âm thanh của việc sửa chữa.

Trên một số dự án github quy mô nhỏ, điều này trở nên dễ tiếp cận hơn nhiều. Bạn thực sự có một định hướng và mục đích trong việc cố gắng mò mẫm mã, thay vì lội qua nó một cách mù quáng.


1

Các mẫu trong sách hoặc bài tập ở trường đại học là điểm khởi đầu tốt để hiểu cách thức lập trình hoạt động và chúng cho thấy các khả năng cho các dự án trong tương lai của bạn.

Làm việc trên các dự án thực tế

Nhưng không có kinh nghiệm dự án thực sự, bạn có xu hướng quên những điều bạn đã học.

Vấn đề là cơ hội để thể hiện những gì bạn có thể

Ngoài ra, bạn thấy trong dự án thực tế các yêu cầu có thể phức tạp đến mức nào và bạn gặp khó khăn trong việc khắc phục các vấn đề. Những vấn đề này là cơ hội để thể hiện những gì bạn có thể. Bạn có thể thấy những mặt yếu của mình mà bạn nên cải thiện.


-1

Tôi có cần học php, mySQL hay bất kỳ ngôn ngữ nào khác không.

Vâng thưa ngài, xin vui lòng xem xét các ngôn ngữ của thế giới web. HTML5, CSS3 và JavaScript.

Đây là lý do tại sao:

  1. Họ nhanh chóng học hỏi, và ngày càng giàu có để thực hiện.

  2. Họ không còn chỉ viết web, mà cả os, máy chủ và cơ sở dữ liệu nữa.

  3. Quan trọng nhất *

    Chúng hiện đang được sử dụng để định nghĩa lại Khoa học máy tính 101 - bởi người tạo ra jQuery, John Resig.

Đừng bắn tin nhắn, chỉ cần kiểm tra liên kết này đến học viện khan .

Các mẫu thiết kế c / c ++ / c # chuyển sang JS ở đó.

Mong rằng sẽ giúp.


+1 - Thật sai khi điều này bị hạ cấp. Thông tin có giá trị. Liên kết là đáng tin cậy. Nguồn là thiên tài jQuery John Resig - bắt đầu một khóa học lập trình 101 với JavaScript và nó sẽ hoạt động. Kiểm tra Khan Academy. Upvote cho tiềm năng để nâng cao giáo dục; trong ít nhất Cám ơn.
Jack Stone
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.