Làm thế nào tôi có thể cảm thấy tự tin hơn về các kỹ năng lập trình của mình? [đóng cửa]


37

Lập trình không xa lạ với tôi. Lần đầu tiên tôi bắt đầu thực hiện đánh dấu (HTML, bây giờ xin đừng cười tôi) khi tôi 12 tuổi và một chút BASIC khi tôi 13 tuổi (tôi biết nhiều về Flowcharts, Pseudocodes tại thời điểm này), nhưng sau đó tôi đã được khuyên răn Sinh học ở trường trung học và do đó đã bỏ lỡ kiến ​​thức lập trình "thực" về các ngôn ngữ như C, Java, vân vân. Tôi đã lấy CS cho UG BE của tôi (tương tự như BS, nhưng theo lý thuyết hơn). Tôi đã tự học C & C ++ (ở mức độ thấp hơn) (prof của tôi là một nỗi đau hoàn toàn và lớp học chứa đầy những kẻ giật mã (người đã học nó ở trường, và do đó không chú ý đến lớp học và không hãy để những người ít hơn như tôi chú ý đến lớp học)) và có thể tạo ra một chương trình nhân hoặc bổ sung tuyệt vời (những chương trình mà ngay cả những người làm vườn tốt hơn '

Vấn đề chính của tôi là tôi luôn cảm thấy không thỏa đáng và bị bóp nghẹt bởi các kỹ năng lập trình hạn chế của mình và bị coi thường bởi các đoạn mã (tin tôi đi, tôi đã đi qua trang web này từ lâu, nhưng giờ đây tôi có thể xây dựng lòng can đảm để thực sự đăng bài một câu hỏi) và đôi khi thậm chí chán nản vì không nói được. Hầu hết mọi người nói rằng Lập trình không nhất thiết là về ngôn ngữ mà là trạng thái của người đó và các kỹ thuật họ sử dụng để giải quyết các vấn đề / vấn đề. Tôi đồng ý với những tình cảm như vậy, nhưng tôi có thể có được "trạng thái tâm trí" như vậy không, và nếu tôi nên tiếp cận với "Lập trình / Mã hóa" như thế nào, và nếu có bất kỳ cách nào được đặt ra và bước đi nhất để đạt được "Thiền của mã hóa ". Làm thế nào để tôi làm như vậy? Ngoài ra, sẽ không đau nếu một số Thánh muốn cố vấn cho đoạn suy thoái $ #! ^ Này.

Tái bút: Tôi sẽ mãi mãi biết ơn bất kỳ ai coi tôi xứng đáng với thời gian của họ và như một phần thưởng sẽ đặt tên cho phần mềm đầu tiên của tôi, tôi gửi cho họ. (Nếu tôi từng nhận được một, tức là,)

TL; DR: Chưa bao giờ thực sự học "Lập trình / Mã hóa", không thể giải quyết vấn đề ngay cả khi tôi cố gắng. Giúp tôi!


22
Đừng quá coi thường bản thân. Không ai ra khỏi chương trình tử cung. Bạn càng viết mã, bạn sẽ càng nghĩ nhiều về mã. Hãy vui vẻ với nó.
Steven Evers

9
Nếu bạn đang nghĩ "Hừm, lỗi có lẽ nằm trong mã của tôi chứ không phải trình biên dịch", bạn đang trên đường suy nghĩ như một lập trình viên (tốt, giống như hầu hết các lập trình viên).
gablin

5
@SnOrfus: Không ai ngoại trừ Jon Skeet;)
back2dos

4
từ noob này sang noob khác: Thực hành là chìa khóa!
Chani

1
@Snorfus Tôi cá là một vài người đã làm! : P
Đánh dấu C

Câu trả lời:


26

Tôi tranh luận cách tốt nhất là chỉ cần dành nhiều thời gian hơn cho nó (tìm kiếm quy tắc 10000 giờ). Tìm một cái gì đó bạn muốn hoàn thành và đặt ra để hoàn thành nó. Chọn một cái gì đó vượt quá khả năng hiện tại của bạn, nhưng không quá xa mà bạn sẽ không thể hoàn thành trong một khoảng thời gian hợp lý. Nếu bạn thực sự thích nó, bạn sẽ thấy mình lặp lại điều này cho đến khi bạn thực sự giỏi về nó. Nếu bạn không thích nó, thì có lẽ đó không phải là điều phù hợp với bạn. Hãy thử thách bản thân, có lẽ bạn sẽ thích nó.


Đề xuất quy tắc 10000 giờ nghe có vẻ công bằng. Thực sự hấp dẫn, nhưng tôi nên chọn ngôn ngữ nào vẫn phù hợp và cung cấp tính linh hoạt tương tự của các ngôn ngữ mới (ví dụ: Nếu tôi học Java sâu với tất cả các khái niệm, tôi sẽ có thể di chuyển sang Scala, Xử lý, Clojure, vv khá dễ dàng).
Ameen

11
Ameen: Đừng lo lắng về các ngôn ngữ khác. Học một cái. Tiếp tục sau, sau khi bạn đã đặt 10.000 giờ vào Java. Cuộc sống còn dài, có rất nhiều ngôn ngữ, bạn sẽ không học hết chúng. Những cái mới được phát minh mọi lúc. Học một điều bây giờ. Lo lắng về tương lai sau đó.
S.Lott

2
"Dành nhiều thời gian hơn cho nó" một cách mơ hồ là không hiệu quả.
Rein Henrichs

1
Ngoài ra một chiến lược tốt là học một ngôn ngữ lập trình hướng đối tượng và học ngôn ngữ lập trình hàm. Tìm hiểu một ngôn ngữ gõ tĩnh và ngôn ngữ gõ động. Bạn sẽ là một nhà phát triển tròn trịa.
Chiron

1
@BSeven Bạn cần xem bài tiểu luận của Peter Norvig về "Học lập trình trong 10 năm" tương tự như thế này và làm sáng tỏ một vài vấn đề lớn mà những người mới tham gia lập trình phải đối mặt.
Ameen

16

Vận chuyển đồ đạc . Đó là cách duy nhất. Hoàn thành công việc Trong công việc, các dự án của riêng bạn, các dự án nguồn mở. Bắt đầu vận chuyển mọi thứ. Chúng có thể là những thứ rất nhỏ, như sửa lỗi hoặc một tính năng thị trường tối thiểu. Chỉ cần bắt đầu vận chuyển mọi thứ . Không có gì thỏa mãn hay tự tin hơn là thành công.

Chỉnh sửa: Bạn nên đọc Ship It . Thật tuyệt vời.

Chỉnh sửa lại: Kinh nghiệm làm bất cứ điều gì khác ngoài vận chuyển chỉ là kinh nghiệm thất bại. Tôi đã thấy rất nhiều nhà phát triển "cao cấp" có kinh nghiệm chính là không vận chuyển đồ đạc (và tìm lý do để không vận chuyển chúng). Nghệ sĩ thực sự xuất xưởng .


12

'Vấn đề', 'không thỏa đáng', 'bóp nghẹt', 'kỹ năng X hạn chế', 'coi thường', 'chán nản', 'không có khả năng' trong một câu, tất cả đều hướng về bản thân gợi cho tôi một số vết thương chưa lành từ quá khứ vẫn còn đau bạn. Nếu bạn tìm cách khắc phục những điều đó, lập trình hoặc bất kỳ nghệ thuật / thủ công nào như vậy sẽ rất dễ dàng để làm chủ. Có lẽ đọc về khả năng phục hồi của người khác sẽ giúp ở đây. Mọi người đều trải qua những lần đau đớn trong cuộc đời. Nếu những vết thương / vết thương đó không được chữa lành, những thành công của họ sẽ không xảy ra. Chữa lành vết thương của bạn / s đầu tiên. Lập trình có thể đợi sau.

Đối với kỹ năng lập trình, cách tôi học một ngôn ngữ mới và bắt đầu suy nghĩ như những người khác đã lập trình bằng ngôn ngữ đó, trước tiên, hãy đọc tất cả mọi thứ tôi có thể đặt tay lên đó có liên quan đến ngôn ngữ đó. Sau đó, khi tôi đã đọc đủ, bắt đầu viết các chương trình nhỏ.


2
Cũng vậy, nếu bạn muốn thấy ai đó có cùng vấn đề và một cuộc biểu tình của cộng đồng xung quanh anh ta và các vấn đề của anh ta, hãy chắc chắn đọc chủ đề Hacker News này .
Wes Baker

3
+1 cho đề xuất để đọc lên tài liệu và hướng dẫn. Và về phần đầu tiên, tôi đồng ý rằng rất nhiều vết thương chưa lành. (Một nhà tâm lý học đang làm gì trên trang web này?) Nhưng thật không may, một số vết thương không thể được chữa lành dễ dàng như những người khác. Nhưng tôi đã đồng ý với họ, và thật lòng mà nói họ không còn đau đớn như trước đây. Và việc nhàn rỗi chỉ đẩy tôi đến những suy nghĩ tiêu cực như vậy và cách duy nhất để làm điều đó là thông qua việc giữ bản thân bị Mã hóa chiếm đóng, v.v ... Cảm ơn rất nhiều vì những lời đề nghị của bạn, và bạn của tôi đã làm tôi bối rối với các kỹ năng ngoại cảm của bạn.
Ameen

@Wes Baker: Cảm ơn bạn rất nhiều vì chủ đề Hacker News đó. Tôi chắc chắn có thể liên quan đến suy nghĩ của OP (mặc dù tôi không có nó quá tệ). Tôi (nghĩ) có kiến ​​thức khá tốt về Hệ điều hành, Kiến trúc máy tính, Thuật toán, Cấu trúc dữ liệu, Mạng máy tính, Mật mã, Kho dữ liệu, v.v. (mặc dù tôi cần phải cải thiện chúng). Như tôi đã nói, tôi biết tất cả các môn học này từ một POV lý thuyết, và thực tế chưa thực hiện những thứ thực tế về nó. Chắc chắn sẽ lướt qua chủ đề đó, rất nhiều lời khuyên tuyệt vời ở đó là tốt. Tyvm!
Ameen

@Ameen Bởi 'mọi thứ', tôi không giới hạn tài liệu và hướng dẫn. Mã người khác đã viết, thành ngữ họ đã sử dụng, lỗi, ngoại lệ, vv những người khác đã phải đối mặt và giải pháp của họ, vv là tốt. Tôi không phải là một nhà ngoại cảm hoặc tâm lý học bằng mọi cách.
vpit3833

9

Một vài điều bạn sẽ cần thực sự bắt đầu:

Sự kiên trì: Trở thành một lập trình viên giỏi cần có thời gian thực hành. Bạn sẽ cần phải viết rất nhiều mã xấu trước khi bạn viết bất kỳ mã tốt nào - rất nhiều mã xấu. Rất may, bạn có tài nguyên như trang web này để giúp bạn. Miễn là bạn luôn cam kết học lập trình, bạn sẽ có thể kết hợp các trò chơi và tiện ích đơn giản ngay lập tức!

Mục tiêu: Đặt ra một số mục tiêu cho bản thân. Nói học cách sử dụng STL trong C ++ trong hai tuần. Xem bạn làm tốt như thế nào. Nếu bạn mất nhiều thời gian hơn, hãy theo dõi thời gian lâu hơn, nó sẽ giúp bạn làm tốt hơn trong tương lai. Tôi đã học được mẹo này từ một đồng nghiệp; anh ta có thể ước tính, cho đến ngày, gần như bất kỳ nhiệm vụ nào sẽ đưa anh ta. Việc làm này đã giúp tôi theo dõi thời gian tôi dành cho các dự án cá nhân và giúp tôi không bị mất kiểm soát (quản lý phạm vi mà họ gọi là).

Tò mò: Bạn phải quan tâm và tham gia. Nếu bạn không phải là kiểu người không tiếp cận vấn đề với mong muốn tìm giải pháp, thì việc bắt đầu lập trình sẽ khó khăn ngay từ đầu và việc gỡ lỗi có thể là ác mộng. Nhưng nó không phải như vậy. Nếu bạn gặp vấn đề, hãy hỏi trên các trang web như thế này, google lỗi của bạn. Nếu bạn không thể tìm ra cách để thực hiện một cái gì đó, hãy hỏi! Luôn có những người sẵn sàng giúp đỡ!

Tự tin: Hãy tự tin vào những gì bạn muốn làm, và đủ tự tin để đặt câu hỏi. Nếu ai đó chỉ cho bạn một cách khác để làm điều gì đó, đừng phòng thủ, hoặc tự hạ thấp bản thân bạn nghĩ rằng bạn đã làm sai; nghĩ về nó khi bạn được dạy một cách tiếp cận khác để giải quyết vấn đề của bạn!

Trên hết, hãy giữ một cái nhìn tích cực, đọc nhiều hướng dẫn và đặt nhiều câu hỏi, và bạn sẽ là một lập trình viên hạnh phúc! Một lời khuyên khác tôi phải đưa ra là chọn một ngôn ngữ, gắn bó với điều đó cho đến khi bạn tự tin hơn. Bạn có nhiều thời gian để học một loạt các ngôn ngữ, nhưng khi bạn bắt đầu, chỉ cần làm việc với một ngôn ngữ.

Chúc may mắn! Và hãy nhớ rằng, điều này được cho là vui vẻ! = D


Cảm ơn cho đầu vào sâu sắc của bạn. Một trong những vấn đề của tôi luôn là việc tôi (thường) nhắm quá cao và ngã sấp mặt xuống trước. Tiềm thức của tôi có thể đã thực hiện một cách tiếp cận "Đốt cháy một lần, hai lần ngại ngùng" và có thể ngăn chặn nỗ lực của tôi để khắc phục điều đó. Tôi luôn tò mò, nhưng việc thiếu một người cố vấn đã khiến tôi bỏ qua sự tò mò của mình. Và nghiêm túc, SE đang tìm kiếm nhiều điều tuyệt vời hơn khi thời gian trôi qua, tôi chắc chắn sẽ kiểm tra nguồn tài nguyên tuyệt vời này và đạt được mục tiêu trở thành một lập trình viên phù hợp. Cảm ơn rất nhiều, tôi thực sự không thể nói bài viết của bạn có ý nghĩa với tôi như thế nào.
Ameen

Tôi rất vui khi được giúp đỡ! = D
bryanegr

Mục tiêu tốt nhất: mã tàu!

7

Trong sự phát triển dường như nghịch lý "bạn càng biết nhiều, bạn càng biết nhiều bạn không biết" đúng.

Nếu bạn là một người chu đáo, trung thực, bạn sẽ cần chấp nhận sự thật này và học cách đối phó với nó.

Sự tự tin, theo nghĩa được ngụ ý bởi câu hỏi, là một điều rất riêng mà thực sự không liên quan gì đến một bộ kỹ năng hoặc phương pháp cụ thể.

Trên một ghi chú nông cạn hơn, tình cảm được mô tả trong http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ (phần: Bạn đánh giá quá cao kỹ năng trung bình của cuộc thi vì đám đông bạn quanh quẩn cùng) đã luôn giúp tôi.

Tôi sẽ đề nghị bạn học cách tự tin hơn trong công việc mà bạn đã làm trái ngược với việc xây dựng sự tự tin về các kỹ năng của bạn nói chung. Cách tốt nhất để làm điều này là viết các bài kiểm tra lặp lại cho tất cả các mã của bạn. Nó sẽ làm việc kỳ diệu trên tâm lý của bạn.


4

WhiteFang34 hoàn toàn đúng. Là một nhà sinh vật học, tôi thấy rằng cách duy nhất tôi phải học lập trình là bắt đầu thực hiện nó. Đọc một vài cuốn sách, luôn có google và SO trong tầm tay và "cứ làm đi". Các chương trình của bạn sẽ rất cơ bản, mã hóa kém và lỗi ngay từ đầu, và bạn sẽ ngày càng tốt hơn theo thời gian. Tôi không có thời gian để tham gia các lớp lập trình, nhưng tôi dành rất nhiều thời gian để viết mã (vì thật thú vị khi làm điều đó).

Chọn một ngôn ngữ sẽ cho phép bạn suy nghĩ nhiều hơn về những gì bạn muốn làm và ít làm thế nào để làm điều đó. c không phải là một ví dụ rất tốt về điều đó. Hãy thử các ngôn ngữ cấp cao hơn như java hoặc c #, vì chúng sẽ cho phép bạn làm nhiều hơn, vì vậy bạn sẽ có được sự can đảm để cố gắng nhiều hơn nữa.

(Tất nhiên, đó là giả sử rằng bạn không theo đuổi nghề lập trình viên chuyên nghiệp, trong trường hợp đó tôi sẽ chỉ nói đi học lại ...)

Chúc may mắn và có một mã hóa hạnh phúc

Tái bút: Ồ, và bạn sẽ cần rất nhiều sự lười biếng, thiếu kiên nhẫn và kiêu ngạo

http://c2.com/cgi/wiki?LazinessImpatienceHubris


4

Điều buồn cười là:

Tâm trí của lập trình viên không phải là nhiều về máy tính, ngôn ngữ lập trình,
mẫu thiết kế hoặc thuật toán

Đó là về sự hiểu biết tinh tế của thế giới thực, sự tương tác giữa các sự vật. Có khả năng suy nghĩ trừu tượng . Có khả năng chú ý mọi thứghi nhớ chúng. Điều đó chắc chắn dẫn đến giải quyết vấn đề tốt.

Việc thực hiện, bản thân mã chỉ xuất hiện sau đó - sau khi Bạn đã
giải quyết thành công vấn đề được đưa ra trong tâm trí của bạn.


4

Tự tin không phải là thứ bạn nên cố gắng cảm nhận về kỹ năng của mình. Sự tự tin là kém (thậm chí có thể tiêu cực) tương quan với kỹ năng thực tế. Bạn nên làm việc để cải thiện bộ kỹ năng chuyên nghiệp (hoặc sở thích có giá trị) của bạn bất kể bạn cảm thấy thế nào về trình độ kỹ năng hiện tại của mình.

Sự tự tin là điều mà những người khác, những người mà bạn nghĩ là có năng lực, nên đến để cảm nhận về các kỹ năng của bạn sau khi làm việc với bạn hoặc nhìn thấy công việc của bạn.


3

Rất đơn giản: hãy quan tâm đến nó ! Dường như bạn đã sẵn sàng, vì vậy hãy tìm một thứ gì đó mà bạn nghĩ rằng nó sẽ rất tuyệt để làm, và sau đó làm nó, hỏi bất kỳ câu hỏi nào bạn cần trên đường, sử dụng bất kỳ tài nguyên nào bạn có thể, để kết hợp dự án theo cách bạn muốn nó. Rửa sạch và lặp lại, và bạn sẽ thấy mình là một lập trình viên tuyệt vời mà thậm chí không cần nỗ lực nhiều, vì nó rất thú vị / vui vẻ trên đường đi.

Ngoài ra, đạt được sự cân bằng tốt giữa việc tìm ra công cụ và đặt ra nhiều câu hỏi. Ban đầu, đặc biệt, đó là một sự trợ giúp to lớn để người khác nói cho bạn biết bạn đang sai ở đâu, để thúc đẩy bạn vượt qua phần đầu tiên của quá trình học tập. Từ đó, cố gắng tự mình tìm ra mọi thứ, và nếu bạn gặp khó khăn sau một thời gian thì hãy đặt câu hỏi về nó. Những gì tôi thường làm là đăng một câu hỏi trên SO, và sau đó đi tìm câu trả lời, thỉnh thoảng kiểm tra SO trong quá trình này. Đôi khi tôi tìm thấy câu trả lời trước, đôi khi nó tìm thấy tôi trước.

Đừng lo lắng quá nhiều về công nghệ nào, mặc dù có thể thực sự thú vị khi làm đồ họa với HTML5 + JavaScript + thẻ canvas, vì nó khá dễ cài đặt, phần thưởng ngay lập tức và bạn có thể chia sẻ chúng.


Cảm ơn nhiều. Tôi rất quan tâm đến Lập trình (tôi giải quyết các vấn đề trong đầu - và tất nhiên là về thuật toán, biểu đồ dòng chảy, v.v.) Tôi dường như đang thiếu gắn bó với một dự án và tiếp tục với nó và yêu cầu giúp đỡ khi bị mắc kẹt vào một ngõ cụt. (tất cả những điều đó phải kết thúc ngay bây giờ :) Cảm ơn SE) Ngoài ra, tôi đã rất quan tâm đến công cụ HTML5 + JavaScript (tải một phần trang - Mashable thực hiện điều này theo cách tuyệt vời, Trả lời tải trên SE, v.v.). Mặc dù vậy, đừng thực sự biết các nguồn lực tốt để họ học hỏi (W3C-Các trường được cho là lang băm; W3Fools nói vậy!)
Ameen

3

Tiếp cận lập trình với thái độ tích cực hơn, người học. Không ai biết tất cả mọi thứ. Thứ hai, Tìm hiểu lý do tại sao bạn quan tâm đến lập trình mà bạn thích:

  • giải quyết vấn đề
  • Học những thứ mới
  • làm cho một máy tính uốn cong theo ý muốn của bạn
  • thứ gì khác...

Một khi bạn biết những gì bạn yêu thích về lập trình, bạn có thể tập trung nỗ lực học tập của mình theo hướng đó. Tôi là một tinkerer / người giải quyết vấn đề. Nó làm cho tôi vô cùng thực dụng. Các thuật toán và cấu trúc dữ liệu, lý thuyết khoa học máy tính nói chung đưa tôi vào giấc ngủ.

Nền của tôi tương tự như của bạn Bắt đầu xây dựng máy tính ở tuổi 10. Có một chút HTML / C ++ ở tuổi thiếu niên của tôi ... đã chán với nó ... bỏ trong vài năm. Tôi chưa bao giờ ngừng chơi xung quanh với máy tính.

Bây giờ, tôi yêu lập trình. Vậy điều gì đã thay đổi? Tôi tìm thấy động lực của mình. Tôi bắt đầu làm việc khi tôi đưa ra rất nhiều vấn đề cần giải quyết. Tìm kiếm các giải pháp thông minh, đơn giản cho các vấn đề phức tạp thực sự khiến tôi bùng cháy.

Cuối cùng, đừng lo lắng về cách người khác viết mã hoặc "đúng" hay không. Nó đúng nếu nó làm những gì bạn muốn nó làm. Một khi bạn bắt đầu làm việc trên một nhóm thì các tiêu chuẩn trở nên quan trọng. Điều này là nhiều do thực tế là những người khác sẽ cần có thể giải thích và sửa đổi công việc của bạn. Tiêu chuẩn thiết kế không phải là điều mà một lập trình viên mới nên quan tâm.


3

Luôn có quán tính để vượt qua khi học những điều mới. Các lập trình viên tò mò tôi đã biết đấu tranh để tìm động lực để tiếp tục học các ngôn ngữ và mô thức mới. Họ sẽ nói: "Tôi cần một dự án để thử X." để học X. Một số ít sẽ thực sự tìm / phát minh dự án đó.

Hãy lưu ý rằng một nghề nghiệp trong lập trình sẽ là một quá trình thất vọng, nghiên cứu, thử nghiệm và nghiêng về các cối xay gió suốt đời. Cho đến khi các AI chiếm lấy mọi thứ.

Nếu bạn vẫn đang làm khoa học thực sự, thì bạn sẽ có thể tưởng tượng một dự án / nhu cầu nào đó. Ví dụ: kết hợp dữ liệu từ nhiều nguồn trên hoặc ngoài internet. Điều này có thể truyền cảm hứng cho bạn đang học javascript hoặc R hoặc thậm chí Excel / VBA. Nếu bạn có thể kết nối một số dấu chấm cho những người khác trong lĩnh vực của mình, bạn sẽ được công nhận, et voila, bạn sẽ là một lập trình viên.

Sử dụng nhưng hãy cảnh giác với các cố vấn. Câu hỏi thẩm quyền.

Và nhân tiện, "mã hóa zen" là một oxymoron.


3

Bạn sẽ không bao giờ cảm thấy tự tin về kỹ năng lập trình của bạn.

Cách bạn mô tả các kỹ năng của bạn, chỉ ra một tư duy mà bạn sẽ không bao giờ hài lòng với các kỹ năng của mình. Bạn thành thạo C ++? Đợi đã có Java! Bạn thành thạo Java? Đợi có Lập trình song song. Bạn thành thạo lập trình song song trong C ++ và Java? Đợi đã có SOA! Có há cảo! Và MVC! CHẤT RẮN! Lập trình chức năng! Lập trình web! Lập trình đám mây! Lập trình di động!

Vấn đề là không cảm thấy chán nản vì điều này. Bạn cần nhấn một số nút trong đầu: Nghi ngờ về kỹ năng của bạn là nhiên liệu thuần túy. Bạn có thể sẽ không bao giờ đạt được một số mức độ thỏa mãn các kỹ năng lập trình. Miễn là trường hợp này, bạn sẽ tiến về phía trước. Phần khó là nhận ra nó và làm điều gì đó chống lại nó, mặc dù sẽ không bao giờ có mục tiêu. Bạn càng có thể chịu đựng lâu thì mức độ kỹ năng của bạn sẽ càng cao.


Wow, đó là một cách hoàn toàn mới để xem xét điều này. Yêu cách bạn đặt nó, sẽ luôn có điều gì đó bạn muốn làm. Tôi thực sự nên bắt đầu biến tiêu cực của tôi thành tích cực. Cảm ơn rất nhiều. Cảm kích điều đó!
Ameen

3

Tôi đã từng cảm thấy như vậy, và đó thực sự là các trang web Stack Exchange giúp tôi tự tin.

Tôi bắt đầu sử dụng StackOverflow để tìm câu trả lời cho câu hỏi của mình và một ngày tôi thấy một câu tôi biết câu trả lời. Tôi đã đăng câu trả lời, nhận được một số phiếu bầu và một bình luận nói rằng đó là một câu trả lời hay và điều đó khuyến khích tôi tìm kiếm những câu hỏi khác mà tôi có thể trả lời.

Nó nhanh chóng trở thành một cơn nghiện đối với tôi, tìm ra những câu hỏi chưa được trả lời mà tôi có thể giải quyết, và khi thời gian trôi qua, tôi bắt đầu có được niềm tin vào câu trả lời của mình. Tôi không còn phải nói "Tôi nghĩ điều này là do ...." hoặc "Điều này sẽ gây ra ..." mà thay vào đó có thể nói với sự tự tin rằng "Điều này là do ..." hoặc "Điều này gây ra ..."

Tôi thích các câu đố, và với tôi các câu hỏi SO giống như các câu đố lập trình nhỏ, với lợi ích bổ sung là nhận được một số phản hồi tích cực nếu tôi có câu trả lời đúng. Nếu tôi nhận được câu trả lời sai, tôi chỉ cần xóa nó và học hỏi từ các giải pháp của người khác cho cùng một vấn đề.

Vì vậy, đề xuất của tôi sẽ là tiếp tục SO và duyệt các câu hỏi trong bất kỳ thẻ nào bạn quan tâm và tìm kiếm một số bạn nghĩ rằng bạn có thể tìm thấy câu trả lời. Không có gì giống như mọi người nói với bạn câu trả lời lập trình của bạn là hữu ích / tốt để giúp bạn tự tin vào khả năng lập trình của mình :)


Chắc chắn, tôi cần phải làm điều đó. Nhưng cái tôi của tôi bắt đầu và nói rằng "Bạn không đủ tốt để người khác làm việc, quái gì bạn thậm chí không đủ tốt để ở đây". Tôi biết điều đó nghe thật ngớ ngẩn, và như một số người ở đây đã đề cập đến nó, có lẽ tôi chỉ sợ làm căng não ra, nhưng tôi sẽ, tôi sẽ nhấn mạnh rằng khối mỡ đó cho đến khi không còn gì. Cảm ơn rất nhiều về lời đề nghị và tôi sẽ cố gắng tuân theo thói quen mới của mình là cọ rửa SE cho những câu hỏi thú vị mỗi ngày để giải quyết. Cảm ơn bạn đã dành thời gian cho bạn và trả lời câu hỏi ngớ ngẩn của tôi. Tôi rất trân trọng điều này!
Ameen

3

Bộ não của bạn không thích làm việc quá sức. Đưa ra lựa chọn, nó thích đi ra ngoài dễ dàng. Đây là lý do tại sao thật dễ dàng để từ bỏ mọi thứ khi bạn cố gắng giải quyết một cái gì đó quá tham vọng - quá nhiều thứ để học, quá nhiều chi tiết khó hiểu để có được đúng, quá nhiều cạo râu.

Có một số điều bạn có thể làm để chống lại điều này. Trước hết là năng lượng. Cố gắng thực hành khi bạn được nghỉ ngơi và ăn uống đầy đủ, hoặc bộ não của bạn theo nghĩa đen sẽ không có đủ nhiên liệu cho những suy nghĩ trừu tượng phức tạp. Bí quyết thứ hai là sự quan tâm hoặc tầm quan trọng. Nếu bạn có thể thuyết phục bộ não của mình rằng biết maven là điều quan trọng để thoát khỏi con hổ đang đuổi theo bạn, bạn sẽ học và giữ lại nhiều hơn khi bộ não của bạn nghĩ rằng đó là một nhiệm vụ phụ vô nghĩa trên con đường bạn thực sự muốn. Một yếu tố thứ ba quan trọng là kéo dài mà không làm quá sức. Một số nỗ lực sẽ mang lại cho bạn tiếng vang từ thành tích, và sẽ giúp hình thành những con đường tinh thần mới, mà không thể thực hiện được.

Cũng có một cái gì đó để nói cho thực hành lặp đi lặp lại. Bạn muốn có đủ biến thể để trở thành tiểu thuyết, nhưng đủ tương đồng để bạn có thể thực hiện các hành động tương tự và ăn sâu vào chúng.

Một điểm nữa là bạn nên cố gắng xắn tay áo lên và làm bẩn tay. Thật dễ dàng để dành nhiều thời gian suy nghĩ về các phương pháp thay thế hoặc giải pháp lý tưởng, đến mức bạn không bao giờ bắt đầu. Đây là một ví dụ về bộ não của bạn đang cố gắng đưa ra cách dễ dàng hơn. Cố gắng nhận ra khi điều này xảy ra với bạn và tránh nó bằng cách cố gắng bắt đầu. Ngay cả một bài kiểm tra hoặc thử nghiệm là tốt. Điều này cũng có lợi ích phụ là làm cho bộ não của bạn muốn đóng cửa hoàn thành nhiệm vụ hoặc tìm giải pháp tốt hơn.


Ồ, bạn vừa đóng đinh thủ phạm lớn nhất mà tôi từng nghi ngờ. Não tôi, tôi luôn gặp vấn đề với việc bị lạnh chân, và hầu hết thời gian tôi tự phá hoại chính mình. Luôn luôn có một số lý do để tôi thực hiện để tránh làm những gì quan trọng. Tôi cần trở thành một hacker và ngừng lo lắng về việc thất bại một cách hoành tráng do những thất bại trong quá khứ. Tôi cần phải hack cuộc sống của mình để trở thành "Người đàn ông" tinh túy. Cảm ơn bạn đã chỉ ra một số sai sót trong tôi mà tôi thực sự cần phải thay đổi, và tôi hy vọng sẽ làm điều đó càng sớm càng tốt. Cảm ơn rất nhiều, và tôi không bao giờ có thể cảm ơn bạn đủ cho điều này! Chúc mừng.
Ameen

2

Ba điều cần xem xét: (Hoặc không, tất nhiên.)

  1. Thực hành. Điều gì xảy ra nếu thất bại không có ý nghĩa gì hơn là một dấu hiệu bạn đang thực hành? Nếu bạn đã từ bỏ việc học đi bộ trong lần đầu tiên ngã, bạn vẫn sẽ bò về.
  2. Chơi với bất cứ điều gì bạn đang làm. Chơi chỉ đơn giản là thử một cái gì đó và nhận thấy những gì xảy ra. Hãy từ bỏ việc đánh giá kết quả tốt / xấu, chỉ cần chơi và xem điều gì sẽ xảy ra. Từ bỏ gắn bó với một kết quả cụ thể, chỉ cần thử một cái gì đó và xem những gì sẽ xảy ra.
  3. Điều gì sẽ xảy ra nếu bạn không phải là lập trình viên duy nhất trên thế giới từng cảm thấy như vậy?

2

Có rất nhiều ý kiến ​​tốt về thực hành ở đây, nó thực sự làm cho tất cả sự khác biệt.

Bạn nên bớt lo lắng về "mã jocks" và nhận lời khuyên hoặc nhận xét của họ về những gì họ đang có. Nếu họ khó đối phó trong một chuỗi, thì có lẽ họ cũng khó đối phó với cuộc sống thực; và thực sự, ai có thời gian để lo lắng về sự bất lực xã hội của họ?

Kết quả cuối cùng là, có hàng ngàn cách để tiếp cận các nhiệm vụ lập trình. Rất nhiều thứ sôi sục theo sở thích cá nhân. Tôi ví dụ, ghét đọc mã với các toán tử tenary. Những người khác, yêu họ. Tôi nghĩ họ đúng hay sai? .. thực ra, cũng không. Đó là sở thích cá nhân mặc dù có rất nhiều cuộc tranh luận sôi nổi về chủ đề này.

Nếu ai đó mắng mã của bạn vì bạn đã lấy 25 dòng thay vì 20, tôi sẽ có xu hướng bỏ qua chúng trừ khi họ đã tìm thấy một lỗ hổng thực tế trong logic. Đôi khi trong thế giới thực, chúng ta chỉ cần hoàn thành công việc (và những người thực sự muốn nghe ai đó nói về việc ... phức tạp, thanh lịch họ đã tạo ra một đoạn mã nên được thực hiện trong 10 phút) . Bạn có thể học được điều gì đó từ những cuộc tranh luận triết học bất tận về những điều trừu tượng đến mức nào không? Chắc chắn ... nhưng có lợi nhuận giảm dần khi bị hút vào sự thanh lịch 100% không đổi. Nó không thực tế mọi lúc nhiều như chúng ta muốn giả vờ rằng nó là. Một số mã thanh lịch nhất của tôi mà tôi muốn sử dụng để chia sẻ với bất kỳ ai (mà tôi đã viết khi bắt đầu sự nghiệp) đã giúp mọi người tiết kiệm hàng tuần sau nhiều tuần,

Có một bài viết tuyệt vời của Joel Spolsky được gọi là Lập trình viên băng keo. Đó là một bài đọc tuyệt vời và IMO đặt một số nỗi sợ hãi của bạn vào quan điểm.

http://www.joelonsoftware.com/items/2009/09/23.html

Tôi không nói viết mã tào lao và bỏ qua các thực tiễn tốt nhất, nhưng hãy dùng các lập trình viên thô lỗ với một hạt muối.


1

Tự hỏi bản thân tại sao bạn thực sự cảm thấy thiếu tự tin. Tôi nghĩ đó là bởi vì bạn quan tâm đến những gì đồng nghiệp của bạn nghĩ, và đó là điều hoàn toàn dễ hiểu. Nhưng để thực sự say mê về nó, bạn cần phải xóa những suy nghĩ như vậy và chỉ so sánh bản thân với chính mình theo thời gian. Được hướng dẫn bởi sự quan tâm của bạn, học hỏi và làm việc chăm chỉ, và bạn sẽ trở thành một lập trình viên giỏi mà không cần BS tâm lý.

Đó không thực sự là sự tự tin mà bạn cần, nó ít ồn ào hơn trên con đường tiến bộ của bạn.

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.