Nơi tốt nhất để một lập trình viên trung học khiến công việc của mình được chú ý là gì? [đóng cửa]


52

Tôi là một học sinh trung học 16 tuổi, có đam mê lập trình máy tính. Tôi đang học lớp 11, và tôi đã học nó như một phần của giáo trình của trường trong khoảng 8 tháng. Tôi đã vượt xa những gì được dạy ở trường, và đã viết một vài ứng dụng (khá tốt). Ngôn ngữ mà tôi lập trình là C ++, trên nền tảng windows. Cuối cùng, tôi muốn học chuyên ngành CS tại một trường đại học tốt và sau đó làm lập trình viên.

Các câu hỏi cụ thể mà tôi có là:

  • Một nơi tốt để tôi làm cho công việc của tôi được chú ý là gì?
  • Có bất kỳ tạp chí, hoặc ấn phẩm đặc biệt cho các lập trình viên trẻ?
  • Nếu không phải là ấn phẩm, thì có blog nào tốt không, hay chỉ là tốt hơn để bắt đầu của riêng bạn?
  • Có điều gì khác, điều đó sẽ giúp tôi được chú ý như một lập trình viên?

Tôi đã cố gắng trở nên khách quan nhất có thể.

Nếu tất cả điều này là tl; dr: Cách tốt nhất để được chú ý như một lập trình viên trẻ là gì?

Chỉnh sửa: Tôi không muốn được tuyển thẳng ra khỏi trường trung học Mục đích không phải là để gây ấn tượng với cộng đồng như một lập trình viên chuyên nghiệp. Điều này nhằm mục đích hướng tới các ứng dụng đại học nơi mà công việc của bạn được người khác nhìn thấy và phê bình sẽ cải thiện ứng dụng của bạn. Tôi không muốn kiếm tiền từ những gì tôi đã viết (cho đến nay).


12
Điều gì khiến bạn nghĩ rằng những người khác muốn được chú ý về một nhà kính 16 tuổi ;-)?
Doc Brown

27
Stack Overflow là một nơi tuyệt vời! Đưa ra một số câu trả lời hay, hữu ích (và hỏi một số câu hỏi hay, hữu ích!), Sau đó hướng nhà tuyển dụng tiềm năng của bạn vào hồ sơ của bạn.
Cody Gray

24
@viraj Tôi hoan nghênh sự nhiệt tình của bạn và câu trả lời tốt ở đây. Tuy nhiên, gợi ý của tôi cho bạn là đừng để nó tiêu tốn cuộc sống ban đầu của bạn. Từ bỏ những sở thích và sở thích khác, giao tiếp xã hội và vui chơi, bạn chỉ có thể là một đứa trẻ một lần trong đời, nơi bạn có thể làm hỏng mọi thứ và bật lại không hề hấn gì. Một khi bạn lớn lên và có một sự nghiệp, bạn có thể sẽ có nó cho đến hết cuộc đời . Đó là một cam kết khá nghiêm túc để thực hiện ở độ tuổi như vậy. Bạn không muốn trở nên giống như nhiều người mà họ bị ám ảnh bởi sự nghiệp từ nhỏ và sau đó ghét cuộc sống của họ sau đó và có một cuộc khủng hoảng giữa cuộc đời khủng khiếp.
maple_shaft

4
@FrustratedWithFormsDesigner Nếu bạn muốn vào một trường hàng đầu mà không có tiền hàng đầu thì khó vào hơn.
maple_shaft

10
@maple_shaft Quan điểm của bạn là tốt nhưng nếu anh ấy thực sự đam mê lập trình, bạn không muốn từ chối nó - hãy tưởng tượng nói với Bill Gates / Mark Zuckerberg trẻ tuổi "đừng dành quá nhiều tuổi trẻ cho lập trình, bạn có phần còn lại của cuộc sống của bạn ". Lời khuyên nên tập trung vào sở thích và đam mê của bạn chứ không phải sự nghiệp của bạn .
Kirk Broadhurst

Câu trả lời:


61

Tôi muốn cho bạn một số cảnh báo và một số gợi ý.

Cảnh báo:

  • Đừng đánh giá quá cao kiến ​​thức của bạn: ngay bây giờ tôi có thể cho rằng bạn biết đủ để viết một ứng dụng đơn giản và hơn cả những gì thực sự được dạy trong lớp. Nhưng điều đó không làm cho bạn trở thành một "lập trình viên chuyên nghiệp"; nó có thể làm cho bạn trở thành một "freelancer".

  • Đừng đánh giá thấp giá trị của những gì được dạy ở trường. Ngay cả khi điều gì đó có vẻ rõ ràng đối với bạn, hãy nghiên cứu nó: bạn sẽ thấy "các khía cạnh mới" (tôi sẽ nói rõ hơn sau) khi bạn sẽ tiếp tục.

Gợi ý:

  • Các ứng dụng chuyên nghiệp có vòng đời điển hình là 3-5 năm và cần hàng nghìn (lên đến hàng triệu) giờ làm việc. Chúng không thể được triển khai bởi một nhà phát triển. Lập trình viên chuyên nghiệp phải làm việc với những người khác. Đây không chỉ là vấn đề về kiến ​​thức tốt về các công cụ (như ngôn ngữ, IDE, v.v.) mà còn về kỹ thuật, phương pháp và thành ngữ.

  • Trong khi các công cụ có thể được dạy bằng các mẫu chính thức và bài tập, các kỹ thuật và thành ngữ chỉ có thể được "mô tả". Để "học" chúng, bạn phải trải nghiệm và chia sẻ kinh nghiệm với người khác. Chúng liên tục được phát minh và cải tiến.

  • Các công ty, khi tuyển dụng từ trường học, kiểm tra sự hiểu biết của bạn về các công cụ và khả năng của bạn với các kỹ thuật cơ bản, nhưng - quan trọng nhất - kiểm tra khả năng của bạn trong việc học nhanh những điều mới và "nắm bắt công việc" khi cần thiết.

  • Khi tuyển dụng cho những người có kinh nghiệm, họ nhìn vào có bao nhiêu điều họ đã làm và kinh nghiệm họ có được từ những điều đó.

Đạo đức:

  • Nếu bạn muốn được "đánh giá" nhiều hơn, hãy học cách làm việc với người khác, bằng cách tham gia vào các vấn đề khác (như trên stackoverflow ) hoặc các dự án mở (như trên sourceforge )

  • Ngoài ra, đừng quá nhanh để xin tiền; chia "sản xuất mã" của bạn thành "thứ gì đó để chia sẻ" và "thứ gì đó để bán". Những gì bạn có thể chia sẻ có thể được người khác sử dụng nhưng cũng có thể thu hút sự tham gia của người khác để mở rộng dự án ban đầu. Những gì bạn có thể bán là những gì làm cho ứng dụng của bạn "độc nhất" đối với các dự án tương tự khác, dẫn đến việc nó trở thành một sản phẩm thương mại thực sự.
    Mã chia sẻ với người khác, bạn có thể tham khảo trang web CodeProject hoặc SourceForge . Đánh giá của họ cũng cho một ý tưởng về những gì bạn đã làm thú vị với người khác.


30
+1 để đề cập đến việc đánh giá quá cao kiến ​​thức của bạn. Khi tôi học cấp ba, tôi đã viết một số thứ hay ho và nghĩ rằng tôi là một lập trình viên đàng hoàng. Sau đó, tôi bắt đầu đi học đại học và nhận ra rằng tôi thậm chí còn không đạt được trình độ chuyên nghiệp.
Mike L.

1
+1 mặc dù OTOH, tôi biết những người (không phải cá nhân), người đã viết những điều ở trường trung học mà tôi vẫn không thể hiểu được
BlueRaja - Danny Pflughoeft

+1, Khi tôi lần đầu tiên đi học đại học, tôi đã nghĩ rằng việc lấy chứng chỉ về các kỹ năng đã có của tôi là nhiều hơn. Trong khi tôi vượt xa các sinh viên khác ở một số khu vực, tôi vẫn không ở gần trình độ chuyên môn.
dùng606723

4
+1 để đánh giá quá cao kiến ​​thức của bạn. Tôi không thể cho bạn biết có bao nhiêu hồ sơ tôi nhận được trong một tuần nói rằng họ là "chuyên gia" ở mọi kỹ năng được liệt kê. Làm điều đó chỉ cho thấy sự ngây thơ của bạn.
Jesse Bunch

6
Thật buồn cười, tôi biết một vài người làm việc chuyên nghiệp viết mã với bằng 3-5 năm về khoa học máy tính không thể tự lập trình ra khỏi hộp giấy ... Chỉ cần nói rằng ai đó có động lực để thực sự học các thực hành tốt ở nhà là thường đi trước nhiều người làm việc chuyên nghiệp.
Tối đa

35

Bạn đã nghĩ về việc tạo các dự án nguồn mở cho các ứng dụng bạn đã viết và lưu trữ chúng trực tuyến chưa? SourceForge.net hoặc GitHub.com là những máy chủ dự án nguồn mở tốt. Điều này sẽ giúp đạt được khả năng hiển thị cho các ứng dụng của bạn.


11
Phản hồi trên các trang này cũng có thể là trực tiếp, tàn bạo hoặc có thể các dự án của bạn sẽ bị bỏ qua. Điều quan trọng để có phản hồi cho những gì nó là, và cải thiện. Hãy chắc chắn nghĩ về cộng đồng như một cái gì đó có sẵn để giúp bạn và nó sẽ.
jefflunt

26

Trước hết, hãy rõ ràng: hầu hết 16 lập trình viên YO sẽ không thực sự gây ấn tượng với cộng đồng.

Có một lý do cho điều đó theo ý kiến ​​của tôi. Trở thành một lập trình viên giỏi không chỉ dựa vào kỹ năng lập trình. Như bạn hy vọng trong chuyên ngành CS của mình, lập trình chỉ là một tập hợp con của khoa học máy tính và hầu hết những người giành giải thưởng (ít nhất là giải thưởng học thuật) sẽ làm như vậy vì họ đã chứng minh điều gì đó mới (ví dụ một định lý mới) hoặc được phát hiện một cách mới để đạt được một số loại nhiệm vụ (mẫu thiết kế). Để làm như vậy, bạn cần (ít nhất):

  • Để có một nền tảng tốt về toán học, cần phải hiểu thuật toán và do đó nắm vững các cấu trúc dữ liệu khác nhau.
  • Hiểu rằng một lập trình viên giỏi trước tiên phải hiểu các mô hình (hướng đối tượng, chức năng, ...) trước khi được quan tâm bởi một ngôn ngữ "cụ thể".
  • Hiểu rằng lập trình tốt thường đi kèm với mô hình mã và tìm hiểu các mẫu thiết kế hiện có.

Nếu bạn cảm thấy bạn đã thành thạo tất cả những điều đó, thì có, bạn có thể sẽ gây ấn tượng với cộng đồng.

Bạn luôn có thể cố gắng đóng góp cho một dự án nguồn mở, nhưng bạn cũng có thể khá ngạc nhiên về việc bạn phải bắt kịp bao nhiêu trước khi thực sự có thể đóng góp.

Cuối cùng, hãy xem qua StackOverflow và xem bạn có thể trả lời được bao nhiêu trong ngôn ngữ yêu thích của mình ... bạn sẽ có một proxy tốt về trình độ của mình.


2
+1: Không có thay thế cho kinh nghiệm. Khi tôi tuyển dụng, tôi thường muốn thấy rằng ai đó đã có rất nhiều lần lặp lại lỗi dùng thử trong vành đai của họ.
JohnFx

3
+1: Rất nhiều lập trình viên mà tôi làm việc cùng dường như nghĩ rằng toán học không quan trọng đối với họ. Và sau đó họ sẽ quay lại và tranh luận về hiệu quả thuật toán trong cùng một hơi thở.
kojiro

+1: Toán học là một trong những yếu tố cơ bản nhất trong Khoa học máy tính. Khoa học máy tính như một lĩnh vực không thể tồn tại nếu không có Toán học. Người ta không thể một nhóm byte đến một nhóm byte khác mà không có toán học. Ngoài ra, thật khó để làm cho nó trong lĩnh vực này nếu bạn không hiểu cách thức máy tính hoạt động, nếu bạn không hiểu cách hai thanh ghi byte được thêm vào với nhau (nó không phải là một quá trình đơn giản), thì bạn sẽ không bao giờ hiểu máy tính khoa học. Bản thân lập trình đòi hỏi kỹ năng giải quyết vấn đề, học một ngôn ngữ lập trình và khung gạch chân là phần dễ dàng, trong khoa học máy tính.
Ramhound

1
Phần khó nhất về việc trở thành một chuyên gia trong lĩnh vực khoa học máy tính là có thể xác định cách tốt nhất để giải quyết vấn đề. Học một ngôn ngữ lập trình mới là một phần dễ dàng, học cách khai thác điểm mạnh và tránh những điểm yếu trong một ngôn ngữ nhất định là một công việc khó khăn hơn rất nhiều, để có thể thực hiện điều này tách biệt "khỉ mã" từ các "chuyên gia".
Ramhound

13

Cố gắng để có được danh tiếng thực sự cao trên Stack Overflow. Hầu như cùng một chủ đề đã được thảo luận ở đây:

Danh tiếng cao trong Stack Overflow sẽ giúp có được một công việc tốt?


5
Ngoài ra, nhận được đại diện cao trên SO là niềm vui lớn và bạn học được rất nhiều trong quá trình từ đọc, đăng và trả lời câu hỏi.
Paul Hiemstra

1
Theo tôi, uy tín cao về SO có nghĩa là "Tôi dành nhiều thời gian trên trang web để trả lời hàng tấn câu hỏi cơ bản mà mọi lập trình viên có thể liên quan đến". Tôi sẽ không suy nghĩ nhiều về nó. (Lưu ý: bạn vẫn có thể là một chuyên gia VÀ có uy tín cao về SO)
siamii

8

Một vài điều bạn có thể muốn thử:

  • Viết phần mềm giải quyết các vấn đề thực sự, các vấn đề lý tưởng chưa được giải quyết trước đó (hoặc ít nhất là không thỏa mãn như vậy). Nếu không ai sử dụng phần mềm của bạn bất chấp những nỗ lực quảng cáo tốt nhất của bạn, rất có thể họ chỉ đơn giản là không cần nó một cách tuyệt vọng.
  • Thông báo công việc của bạn trên danh sách gửi thư có liên quan, các kênh IRC và diễn đàn internet. Nếu chương trình của bạn sử dụng rộng rãi một số thư viện, hãy xem xét đăng lên cộng đồng của thư viện; nếu nó bổ sung cho các phần mềm hiện có khác, hãy thông báo cho cộng đồng của họ, v.v.
  • Nếu đó là một dự án đủ nghiêm túc, hãy thiết lập một trang web dành riêng cho nó. Trang web sẽ cung cấp một bản tóm tắt tính năng, liên kết đến các bản tải xuống và tài liệu và (nếu có) một vài ảnh chụp màn hình. Hãy chắc chắn rằng đó là một trang web phù hợp, không phải là một sự ghê tởm kiểu địa lý giá rẻ quảng cáo - bạn muốn được thực hiện nghiêm túc, vì vậy hãy hành động theo nó. Thêm một phần tin tức, wiki và / hoặc trình theo dõi lỗi cung cấp cho người dùng tiềm năng một dấu hiệu cho thấy dự án đang hoạt động như thế nào, có thể làm việc cho bạn hoặc chống lại bạn (nếu dự án không hoạt động nhiều).
  • Nếu đó là một dự án nguồn mở, hãy lưu trữ nó trên một trong những trung tâm FOSS phổ biến (github, bitbucket, sourceforge nếu bạn phải) và (xem ở trên) để lộ wiki và trình theo dõi lỗi (nhưng chỉ khi bạn sử dụng chúng thường xuyên).
  • Bất cứ điều gì bạn làm, cung cấp tài liệu tốt. Bạn cần cả "bắt đầu" ngắn và tham khảo đầy đủ. Nếu bạn không có cái đầu tiên, mọi người sẽ thấy chương trình của bạn quá khó sử dụng. Nếu bạn không có thứ hai, mọi người sẽ ngừng sử dụng vì họ không thể tìm thấy thông tin họ cần.

7

Tôi sẽ làm theo câu trả lời của Bernard và thêm một chút nữa. Có rất nhiều dự án OSS ngoài kia đến nỗi vẫn khó có thể được chú ý trừ khi bạn tạo một dự án phổ biến, điều này sẽ không dễ dàng cho một lập trình viên mới bắt đầu.

Giả sử bạn đang cố gắng để được chú ý trong cộng đồng lập trình, tôi khuyên bạn nên xuất bản các tiện ích bổ sung (OSS hoặc nguồn đóng) cho các công cụ mà lập trình viên sử dụng. Hãy tưởng tượng đi vào một cuộc phỏng vấn việc làm và có thể nói rằng công ty đã sử dụng phần mềm mà bạn đã viết. Rất nhiều công cụ dành cho nhà phát triển có API để tạo các tiện ích bổ sung và một số thậm chí lưu trữ "Cửa hàng ứng dụng" nơi bạn có thể tiếp xúc với công cụ của mình mà không phải lo lắng quá nhiều về việc tiếp thị nó.

Dưới đây là một số ví dụ ngoài đỉnh đầu của tôi:

Tùy thuộc vào công cụ bạn chọn, bạn có thể nhắm mục tiêu vùng kín cụ thể của cộng đồng lập trình mà bạn muốn được chú ý.


4
  1. Đi đến các cuộc thi như Tưởng tượng Cup hoặc, ít nhất, các cuộc thi của trường bạn (nếu có)
  2. Đặt các ứng dụng của bạn trực tuyến, có thể cung cấp mã nguồn và, mặc dù không liên quan đến câu hỏi của bạn, hãy lắng nghe phản hồi từ người khác và học hỏi từ nó
  3. Cố gắng đóng góp cho các cộng đồng khác nhau

4

Tôi có một quan điểm hơi khác ở đây.

Nếu bạn muốn làm cho phần mềm của bạn được chú ý, cách tốt nhất là có người sử dụng nó. Mặc dù Bill Gates và Mark Zuckerberg là những lập trình viên trẻ tuyệt vời, nhưng có rất nhiều lập trình viên giỏi hơn. Nhưng hai quý ông này đã có rất nhiều người sử dụng sản phẩm của họ và do đó được biết đến nhiều hơn với công việc của họ.

Để khiến mọi người sử dụng mã của bạn, bạn có thể:

  • Bán sản phẩm của bạn cho nhiều người. Ví dụ: đưa lên một ứng dụng di động tại một cửa hàng ứng dụng và theo dõi các lượt tải xuống, mua hàng và tiếp tục sử dụng.
  • Thu hút nhiều người sử dụng sản phẩm của bạn và tạo doanh thu quảng cáo.
  • Nhận nhiều nhà phát triển để phát triển các sản phẩm phù hợp với sản phẩm của bạn. Điều này thật khó.
  • Đóng góp cho một dự án nguồn mở phổ biến để đóng góp của bạn sẽ được nhiều người sử dụng.

Theo tôi, phần mềm gần như không liên quan mà không mang lại lợi ích cho người dùng. Và bạn sẽ được chú ý để giải quyết các vấn đề mà mọi người quan tâm, và đó là một kỹ năng rất hiếm.


3

Một câu trả lời tôi chưa đọc: Google Summer Code.

Từ trang web :

Google Summer of Code là một chương trình toàn cầu cung cấp cho các nhà phát triển sinh viên quy định viết mã cho các dự án phần mềm nguồn mở khác nhau. [...] Thông qua Google Summer Code, các ứng viên sinh viên được chấp nhận được kết hợp với một người cố vấn hoặc cố vấn từ các dự án tham gia, do đó tiếp xúc với các kịch bản phát triển phần mềm trong thế giới thực.

Bạn phải đủ 18 tuổi để tham gia, nhưng điều đó không còn xa. Tôi biết một số người đã tham gia và có một trải nghiệm tuyệt vời. Bởi vì tất cả các đóng góp của bạn là cho các chương trình nguồn mở, chúng là công khai, vì vậy chúng sẽ được chú ý.

Vì bạn dưới 18 tuổi, Google cũng có một chương trình giống như GSOC dành cho sinh viên dự bị đại học (13-17 tuổi) được gọi là Google Code IN .


3

Theo quan điểm của tôi, có những loại người lập trình.

  1. "Lập trình viên" - Những người này bao gồm 16 tuổi tự học và 99% lực lượng lao động "nhà phát triển phần mềm" có sẵn tại Trung Quốc. Họ có thể hoàn thành công việc ... một cách tối thiểu, nhưng có rất ít ý tưởng về các khái niệm như thiết kế, khả năng bảo trì, mã hóa mạnh mẽ / phòng thủ, thuật toán / cấu trúc dữ liệu và những thứ khác như sử dụng hiệu quả nguồn phần mềm điều khiển. Họ có khả năng đọc tài liệu hiệu quả và sử dụng hầu hết các API.
  2. "Kỹ sư điện trung bình" - 80% Điện, 10% khoa học máy tính, 10% kỹ sư phần mềm. Thành thạo với thiết bị điện tử, nhưng chỉ là lập trình nhiều như "lập trình viên" điển hình. Logic và tư duy phê phán, và kỹ năng quản lý từ phía điện sẽ giúp.
  3. "Tốt nghiệp BS khoa học máy tính trung bình" - lập trình viên 25%, kỹ sư phần mềm 25%, nhà khoa học máy tính 25%, điện tử ứng dụng 25% (bao gồm logic).
  4. "Kỹ sư máy tính trung bình" - Những người này là sự kết hợp của 50% kỹ sư điện, 50% tốt nghiệp khoa học máy tính.

Định nghĩa:

  1. "Khoa học máy tính" - Dijkstra từng tuyên bố: "Khoa học máy tính không liên quan nhiều đến máy tính hơn thiên văn học là về kính viễn vọng". Khoa học máy tính thiên về toán học hơn là về máy tính. Điều này bao gồm khả năng phát triển, hiểu và phân loại các thuật toán và cấu trúc dữ liệu phức tạp.
  2. "Kỹ thuật phần mềm" - Mẫu thiết kế, sơ đồ đại diện cho các chương trình (Tôi không thể nhớ chúng được gọi là gì). những thứ như thế. Mã hóa phòng thủ .. Sử dụng kiểm soát nguồn,

Lưu ý, tôi đã sử dụng từ "Trung bình" ở trên. Tùy thuộc vào sở thích cá nhân và kinh nghiệm làm việc, các tỷ lệ phần trăm này có thể thay đổi mạnh mẽ. Đây chỉ là những khuôn mẫu quá khái quát. Đừng đánh giá một cuốn sách bằng bìa của nó. Tôi cũng chỉ là phần trăm BSing từ kinh nghiệm của tôi.


1
Các loại lập trình viên khác nhau của bạn là hoàn toàn vô nghĩa. Bạn không thể là một lập trình viên hiệu quả mà không cần phần mềm tiên tiến. Các nhà khoa học máy tính sử dụng kỹ thuật phần mềm mọi lúc. Sự tách biệt của bạn về "kỹ sư điện" là hoàn toàn vô nghĩa, có rất ít sự khác biệt giữa một kỹ sư máy tính và một nhà khoa học máy tính.
Ramhound

Tôi đã viết điều này một chút kỳ lạ. Tôi đã sửa nó bằng cách tái cấu trúc nó một chút. Nó vẫn không hoàn toàn đúng. Phản hồi: a) Đó là điểm, một "lập trình viên" trong danh sách của tôi hoàn toàn không phải là một progammer hiệu quả. b) Khoa học máy tính không phải là phát triển phần mềm và do đó họ không sử dụng kỹ thuật phần mềm. c) Kỹ thuật máy tính là một lĩnh vực lai giữa comp sci và kỹ thuật điện. vi.wikipedia.org/wiki/Computer_engineering
user606723

1

Tôi là một lập trình viên tự do. Lập trình là thu nhập chính của tôi kể từ khi tôi tốt nghiệp trung học 9 năm trước. Tôi vẫn có ý định lấy bằng, nhưng hiện tại thời điểm đó vẫn không phù hợp với tôi.

Con đường của tôi để nhận ra tự lái là như sau. Tôi không nói rằng những bước này sẽ khiến bạn được cộng đồng lập trình công nhận, nhưng nó sẽ giúp tăng uy tín của bạn khi đến lúc phỏng vấn.

Ngay cả sau khi tôi khá thành thạo lập trình IMO vào thời điểm đó, tôi đã quay lại những điều cơ bản và xem qua các hướng dẫn và xây dựng cho mình một danh mục đầu tư dựa trên những tác phẩm lấy cảm hứng từ những thứ đó. Tôi cũng bắt đầu buộc bản thân nhận xét mã của mình theo kiểu JavaDoc-esque. Danh mục đầu tư có thể không được lấp đầy bởi sự hào nhoáng và quyến rũ ngay bây giờ, nhưng nó cung cấp cho bạn một đường cơ sở mà bạn có thể xây dựng và cuối cùng thay thế những gì bạn có trong đó. Sau đó tôi đã có một bộ các bản demo và mẫu mã để hiển thị cho các khách hàng tiềm năng. Điều này là cần thiết trong việc có được công việc đầu tiên của bạn. Không ai muốn thuê một người không có kinh nghiệm, tuy nhiên, có một số cá nhân sẽ tạo cơ hội cho một lập trình viên có triển vọng, không có kinh nghiệm chuyên môn.

Sau đó tôi đã phân tích các chương trình này và bắt đầu viết thư viện dựa trên các nhiệm vụ thường được sử dụng của tôi. Với các thư viện mới của mình, tôi bắt đầu xem xét các vấn đề của CompSci trên internet và bắt đầu tự xác định thời gian để tôi mất bao lâu để xây dựng giải pháp với các thư viện của mình. Điều này sẽ cho tôi một cơ sở trong tương lai về những gì tôi nên tính phí cho một nhiệm vụ cụ thể.

Mãi đến lúc đó tôi mới phát hiện ra nguồn mở. Tôi đã xem qua các dự án trên sourceforge bằng ngôn ngữ mà tôi quan tâm và tìm thấy các ứng dụng tôi có thể sử dụng. Tôi đã cài đặt các ứng dụng này và bắt đầu sử dụng chúng như một phần của trải nghiệm điện toán hàng ngày của mình. Tôi đã có thể nhìn thấy những điểm mạnh và điểm yếu của các ứng dụng này theo như sự tương tác hàng ngày của tôi và tôi bắt đầu mở rộng chúng cho phù hợp với nhu cầu của mình. Tôi sẽ gửi các bản vá của mình cho cộng đồng đang phát triển để được xem xét và sau một vài lần tôi sẽ đăng ký để trở thành thành viên của dự án. Đây là nơi tôi học cách sử dụng các công cụ khác nhau được sử dụng khi làm việc trong một nhóm mang "kinh nghiệm rộng lớn" của tôi, khi tôi xem xét nó vào thời điểm đó và đưa nó lên cấp độ tiếp theo.

Tôi đã điều chỉnh tất cả các thực tiễn của mình mà tôi đã chọn làm việc trên các dự án nguồn mở và thực hiện các giải pháp có thể chịu được khi tôi làm việc với tư cách cá nhân. Tôi bắt đầu nghiêm túc theo đuổi sự nghiệp là một nhà phát triển tự do và tham gia một số trang web tuyển dụng tự do. Tôi đã xem xét những công việc phổ biến là gì, và bắt đầu áp dụng. Đối với mọi công việc mà tôi sẽ bị từ chối, tôi vẫn sẽ tự mình hoàn thành nó như thể tôi đã có được công việc để mở rộng kiến ​​thức của mình. Điều này sẽ giúp xây dựng danh mục đầu tư của tôi và giới thiệu cho tôi một số thách thức trong thế giới thực. Khi cuối cùng tôi nhận được cuộc phỏng vấn đầu tiên đó, tôi rất thẳng thắn, nói với họ rằng tôi không có kinh nghiệm chuyên môn. Sau đó tôi bắt đầu nói với họ các dự án nguồn mở mà tôi đã làm việc, những gì tôi đã hoàn thành ở đó. Một số trở ngại lớn mà tôi đã gặp phải, và cách tôi giải quyết chúng.


0
  1. Tìm hiểu càng nhiều càng tốt. Điều này có thể được thực hiện bởi sách, diễn đàn, lớp học, nhưng quan trọng nhất là bằng cách lập trình thực sự (và được phê bình). Nếu bạn đã vượt qua các lớp lập trình ở trường trung học của mình, hãy xem liệu một trường đại học (cộng đồng) địa phương có bất kỳ lớp CS tốt nào mà bạn có thể học (có thể trong một mùa hè hoặc như một lớp học ban đêm); hoặc thử tham gia khóa học mở từ các loại MIT / Stanford.
  2. Thể hiện sáng kiến. Nói rằng bạn biết C ++ sẽ hoàn toàn không được quan tâm. Nói rằng bạn có hàng tá cam kết với một danh sách các dự án nguồn mở chứng tỏ bạn biết điều gì đó, v.v. (mặc dù vậy, hãy cẩn thận; đừng chỉ cam kết vì mục đích cam kết). Bắt đầu các dự án nguồn mở của riêng bạn. Đây sẽ không phải là điều bạn làm vào một buổi chiều; nhưng một cái gì đó trở thành em bé của bạn trong một vài tháng. Viết và xuất bản một ứng dụng android / iphone có chức năng gì đó hữu ích và được mọi người tải xuống.

Tái bút: Đã lâu rồi kể từ khi tôi nộp đơn vào đại học - họ vẫn cho bạn cơ hội liệt kê những thứ như thế này, phải không? (Ví dụ: một phần về sở thích hoặc câu hỏi tiểu luận về sở thích của bạn).


0

Tôi nghĩ rằng JohnFX đã đưa ra một câu trả lời tuyệt vời cho câu hỏi này.

Một vài suy nghĩ:

  • Tôi nghĩ jQueryUI có thể là nơi tốt nhất để bắt đầu. Đó là niềm vui và hình ảnh. Vì vậy, bạn có thể vào diễn đàn nhà phát triển jQueryUI trên trang jQuery và yêu cầu làm cộng tác viên.

  • Tôi nghĩ rằng bạn sẽ thể hiện niềm đam mê và cống hiến tuyệt vời cho lập trình nhiều hơn bạn sẽ thể hiện kỹ năng tuyệt vời. Nhưng đừng để điều đó ngăn cản bạn! Tôi rất khuyến khích bạn tham gia.

  • Tại thời điểm này, bạn có thể phải giải quyết để làm QA. QA là nhàm chán nhưng bạn có thể chấp nhận nó và thể hiện sự cống hiến. Nhưng từ đó bạn có thể đóng góp một chút mã và có thể tạo ra các plugin.

  • Nếu bạn yêu cầu được tham gia vào một cái gì đó và họ làm cho nó khó khăn, đó là bởi vì họ là lỗ đít. Chỉ cần tìm kiếm một dự án mà mọi người đang khuyến khích và tốt đẹp.

  • Sau khi bạn tìm thấy một dự án với những người đáng khích lệ, tốt bụng và bạn đóng góp, bạn có thể yêu cầu một trong những người đóng góp trưởng thành hoặc hy vọng một trong những người phụ trách dự án viết cho bạn một lá thư giới thiệu ngắn.


0

Tôi tôn trọng không đồng ý với những người trả lời "đừng đánh giá quá cao bản thân"!

Nếu bạn yêu thích lập trình ở độ tuổi của bạn, hãy tham gia, bạn có thể rất tuyệt vời và vĩ đại hơn những đứa trẻ khác ở độ tuổi của bạn, và khi bạn là một cựu chiến binh, bạn có thể là Brian Kernighan, Edsger Dijkstra hoặc Doug Lea!

Tôi sẽ đề nghị tìm hiểu phát triển IPhone hoặc Android và xây dựng một số ứng dụng thực sự.

Trở nên tuyệt vời ở một cái gì đó và trong khi bạn đang đến đó, nói chuyện tại các hội nghị và viết bài, điều đó sẽ khiến bạn được chú ý, và sẽ đánh bóng các kỹ năng của bạn.

Tôi đã lập trình từ cuối những năm 70 và ở Java từ năm 1996. Tôi có thể nói với bạn cuốn sách Java quan trọng nhất tôi từng đọc là Gang of Four Design Forms, được viết một thập kỷ trước khi Java được phát minh. Đọc nó và trở nên tuyệt vời!

Ngành công nghiệp trả cao nhất hiện nay là tài chính, nhưng điều đó đang thay đổi nhanh chóng. Tôi tin rằng nó sẽ trở lại, nhưng bạn không bao giờ biết!

Hãy là một lập trình viên và tận hưởng việc làm cao và sự hài lòng công việc!

Chúc may mắn, bạn có một sự nghiệp tuyệt vời phía trước của bạn!


0

Xây dựng một ứng dụng web hoạt động tốt trên iPhone và Android (bỏ qua các trình duyệt tiêu chuẩn) và tận dụng các tính năng mở rộng của HTML5 (https://developer.mozilla.org/en/HTML/HTML5) để khắc phục độ trễ, mạng không chính xác, và giới hạn của trình duyệt điện thoại. Điều này rất có thể có nghĩa là cung cấp một ứng dụng trình duyệt javascript + html5 kết nối với api dựa trên máy chủ. (chọn xmlrpc / json / yaml, không phải SOAP). làm cho nó hét lên nhanh chóng Trên máy chủ, tôi khuyên bạn nên sử dụng cherrypy trong linux (debian) trên VPS giá rẻ. Bạn có thể nhận được một số tại 123systems.com, buyvm.net (ưa thích nhưng thường không có sẵn) với giá dưới 4 đô la một tháng. Tìm hiểu cách sử dụng Python và sử dụng Fabric để triển khai công cụ của bạn đến (các) máy chủ của bạn. Nhận tên miền .info tại namecheap.com với giá 2,99 đô la một năm và sử dụng dnsmadeasy.com cho DNS (đắt hơn, nhưng đáng giá - đã sử dụng chúng trong nhiều năm, không bao giờ có một vấn đề duy nhất) nơi bạn có thể thực hiện cân bằng tải thông qua DNS. Ngoài ra, không được tắt bởi cơ sở dữ liệu. Sử dụng sqlite và tìm hiểu để thiết kế các bảng của bạn bằng tay với các câu lệnh sql. Cuối cùng, với một máy bạn có thể có thể xử lý 30.000 người dùng. (2.000 đồng thời tại một lần truy cập vào máy chủ cứ sau 3 giây). Hãy nhớ lưu trữ càng nhiều càng tốt trong bộ lưu trữ của HTML5.

Nếu bạn làm điều này, và bạn viết blog về nó và twit về các mục blog và tiến trình của bạn, bạn chắc chắn sẽ được chú ý. Cấp có rất nhiều thứ để học, nhưng bạn có thể làm được!


-1

Một nơi tốt để tôi làm cho công việc của tôi được chú ý là gì?

Gần như bất cứ nơi nào trên internet - nếu bạn viết một cái gì đó đáng nói, chẳng hạn như một tiện ích làm gì đó gọn gàng hoặc độc đáo, thì một số lượng lớn người sẽ sử dụng / tải xuống - thì bạn đã hoàn thành phần lớn hơn của nhiệm vụ này. Các ứng dụng tuyệt vời, hữu ích và có sẵn, tự quảng cáo.

Có bất kỳ tạp chí, hoặc ấn phẩm đặc biệt cho các lập trình viên trẻ?

Nếu không phải là ấn phẩm, thì có blog nào tốt không, hay chỉ là tốt hơn để bắt đầu của riêng bạn?

Bạn đã ở đây - đây chỉ là một, trong số nhiều cộng đồng, ngoài mong muốn chia sẻ và được biết đến - những người khác rất vui mừng khi liên kết các chủ đề công đức, với cuộc thảo luận hiện tại.

Có điều gì khác, điều đó sẽ giúp tôi được chú ý như một lập trình viên?

Chỉ cần lập trình vì mục đích lập trình - miễn là nó có hiệu quả, sáng tạo và hữu ích - sẽ được thông báo.

Một điểm mà tôi thấy được đề cập trong các bài trả lời khác, mà tôi cũng đồng ý, là những đóng góp được thực hiện cho các dự án nguồn mở. Cách duy nhất để có được mã hóa tốt hơn, là viết mã - và cách nào tốt hơn để làm điều đó, hơn là giải quyết các vấn đề hiện tại. Bởi vì, không có vấn đề gì cần giải quyết, bạn đang viết mã vô ích ... ồ, một điều nữa, đừng bận tâm đến những ông già gắt gỏng, với những lời bình luận cộc cằn và cố tình làm nản lòng, "bạn trẻ cá hồng" - bạn còn trẻ và nhiệt tình, đó là tất cả những gì bạn cần.


-1

Nếu tôi là bạn, tôi sẽ làm cho kiến ​​thức của mình được biết đến đã ném công việc của tôi, bạn nói rằng bạn hãy lập trình cđể bắt đầu thực hiện các chương trình hướng đến trải nghiệm hàng ngày của người dùng Pc, tạo ra những thứ như youtube downloadervà bắt đầu dev teamngười đàn ông của riêng bạn chỉ 19 tuổi và tôi bắt đầu lập trình 4 năm Trước đây và nhận được điều này là một anh chàng da đen trẻ tuổi từ mui xe .... vì vậy tôi có thể hiểu niềm đam mê bạn có thể dành cho lập trình nhưng đồng thời lập trình có thể mất rất nhiều thời gian và công sức của bạn, hãy cho mình thời gian để sống .. có nghĩa là tất cả thời gian ngồi máy tính có thể gây căng thẳng cho một cậu bé.


-1

Có rất nhiều nơi để đưa công việc của bạn lên để được công nhận, nhưng trong khi bạn có thể xem xét công việc hàng đầu của mình, thì đó có thể chỉ là một ngày làm việc đơn giản đối với một số người. Khi tôi 16 tuổi, tôi nghĩ công việc của mình thật tuyệt vời, tôi đang làm một số thứ tuyệt vời, nhưng tôi thực sự đang làm việc trong các lĩnh vực này và bây giờ tôi không là gì so với hiện tại và tôi vẫn còn là một chặng đường dài tắt từ nơi tôi muốn được.


-2

Nếu bạn tham gia vào các trò chơi, hãy thử tham gia Ludum Dare. Một trò chơi tốt sẽ có một số nổi tiếng.


-3

Nếu bạn muốn được chú ý VÀ kiếm một số tiền, tôi khuyên bạn nên phát triển di động trên iPhone hoặc Android. Bạn đã biết C ++, đó là một khởi đầu tuyệt vời. Để phát triển tự nhiên trên iPhone, bạn sẽ cần Objective C và đối với Android, bạn sẽ cần Java. Cả hai đều tương tự như C ++ (Java dễ dàng hơn vì không quản lý bộ nhớ) và sẽ không quá khó để học. Vì vậy, không chỉ bạn sẽ viết các ứng dụng sẽ khiến bạn chú ý và kiếm được tiền, mà bạn sẽ học các ngôn ngữ mới và các nền tảng nóng trong quá trình này.

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.