Lời khuyên tốt nhất của tôi cho các nhà phát triển mới: lời khuyên từ một kỹ sư phần mềm tự học (phần lớn)

Câu hỏi phổ biến nhất mà tôi nhận được từ những người đọc blog là, Lời khuyên của bạn dành cho các lập trình viên mới là gì? Vì vậy, tôi nghĩ rằng đã đến lúc viết ra những suy nghĩ của mình.

Tôi sẽ viết lên câu chuyện đầy đủ của mình trong tương lai, nhưng tôi đã học hai lớp khoa học máy tính ở trường đại học. Sau đó, tôi nhận được một thực tập kỹ thuật phần mềm ngay sau đó. Tôi bắt đầu làm công việc phát triển web. Ban đầu, tôi làm việc ở phần phụ trợ và cuối cùng là ở phần đầu. Trường đại học của tôi chắc chắn không dạy phát triển web trong vài lớp khoa học máy tính đầu tiên, vì vậy tôi đã tự dạy mình.

Tôi không nghĩ rằng câu chuyện của tôi là độc nhất. Tất cả các lập trình viên đều tự học ở một mức độ nào đó, cho dù họ hoàn toàn tự học hoặc có bằng thạc sĩ về khoa học máy tính. Mọi người đã tự dạy mình một cái gì đó giống như RegEx trên đường đi. Trong thực tế, tự học có thể là một trong những kỹ năng quan trọng nhất bạn có thể có với tư cách là một nhà phát triển.

Ngoài kinh nghiệm của bản thân, tôi cũng dạy mọi người viết mã là công việc chính của tôi và cho các tổ chức mà tôi tình nguyện tham gia. Vì vậy, bài viết này được rút ra từ kinh nghiệm đó là tốt.

Vì vậy, đây là lời khuyên của tôi để bắt đầu.

Lời khuyên của tôi dành cho lập trình viên mới

1. Có lý do của bạn, và nhớ nó

Nếu bạn muốn bắt đầu lập trình, phải có một lý do cho điều đó. Lý do đó có thể là bạn thích viết mã hoặc bạn muốn có một sự nghiệp sinh lợi hơn. Có thể là bạn đang thực hiện một loạt các công việc Excel và bạn muốn làm cho việc đó hiệu quả hơn.

Theo dõi lý do đó. Lập trình là khó, và đôi khi bạn sẽ thất vọng. Điều cần thiết là phải giữ lý do đó trong tâm trí và gắn bó với nó. Bạn có thể đặt một ghi chú dán trên máy tính của bạn hoặc một ghi chú trên màn hình chính của bạn. Hoặc (như tôi) viết nó lên gương của bạn bằng bút xóa khô.

2. Xây dựng một nền tảng vững chắc

Đây có thể là một lời khuyên ít phổ biến hơn, nhưng tôi nghĩ nó thực sự hữu ích. Trước khi bạn bắt đầu viết mã, nếu bạn đã xem toán học một thời gian, tôi sẽ xem lại các khái niệm từ Đại số 1. Lập trình được xây dựng trên toán học Đại số 1, như các hàm và biến. Hiểu những khái niệm này bên ngoài lập trình sẽ siêu giá trị trong tương lai. Tôi khuyên bạn nên học Khan Khan Khóa học Đại số 1!

đặt x = 1; // về mặt khái niệm giống như các biến đại số!
hàm add (x, y) {// giống như các hàm đại số!
  trả lại x + y
}

3. Tìm một cộng đồng

Tìm một cộng đồng để hỗ trợ bạn khi bạn bắt đầu viết mã sẽ hữu ích. Cộng đồng này sẽ có giá trị, bởi vì những người khác sẽ ở cùng một nơi với bạn. Họ có thể cung cấp các nguồn lực giúp họ và khuyến khích.

Tôi sẽ đề nghị tìm một cuộc họp trong khu vực của bạn như là giải pháp hàng đầu ở đây. Ngay cả các thành phố nhỏ có xu hướng có một nhóm gần đó. Nếu có một người, tôi sẽ đề xuất dev.to và cộng đồng CodeNewbie là hai lựa chọn thay thế tuyệt vời. CodeNewbie có một cuộc trò chuyện Twitter hàng tuần, một nhóm Slack và podcast để nghe. Dev.to có một loạt các bài đăng trên blog và thẻ #discuss nơi bạn có thể đăng câu hỏi của mình.

4. Chia nhỏ vấn đề thành những vấn đề nhỏ hơn

Một trong những phần quan trọng nhất của lập trình là thực hiện một vấn đề lớn và chia nó thành các phần nhỏ hơn và nhỏ hơn cho đến khi các phần đó có thể giải quyết được. Nếu bạn đang nhìn vào một trình soạn thảo văn bản trống không biết bắt đầu từ đâu, thì có thể là do bạn đã phá vỡ vấn đề đủ rồi!

5. Mã giả

Liên quan đến điểm trước, rất nhiều lần có ích để viết ra chi tiết những gì bạn đang cố gắng làm bằng những từ đơn giản trước khi thậm chí cố gắng viết mã. Quá trình này được gọi là mã giả, và nó có thể có bất kỳ hình thức nào bạn muốn. Nó cũng có thể hữu ích để giải quyết vấn đề thực sự chậm trên giấy trước. Bạn nghĩ về hoặc thậm chí viết ra các bước riêng lẻ bạn sẽ thực hiện để giải quyết vấn đề đó.

// nếu người dùng có nhiều hơn mười điểm
// hiển thị "người chiến thắng" trên trang
// khác
//     tiếp tục chơi

6. Nắm bắt chu kỳ học tập

Nếu bạn học cách viết mã như một nghề nghiệp thứ hai, đặc biệt là nếu bạn rời xa lớp học một thời gian, học cách học sẽ là một phần lớn trong quá trình của bạn. Có rất nhiều thăng trầm liên quan, đó là điều rất tự nhiên! Tôi sẽ chuẩn bị tinh thần cho tàu lượn siêu tốc đó trước khi bắt đầu.

7. Bắt đầu với các tài nguyên miễn phí

Có một triệu và một tài nguyên để học cách viết mã. Một số là miễn phí, và một số được trả tiền. Tôi sẽ bắt đầu với các tài nguyên miễn phí. Hãy chắc chắn rằng bạn thích viết mã đầu tiên. Sau đó, bạn có thể nghĩ về việc chuyển sang các tài nguyên được trả tiền hoặc thậm chí là một bootcamp.

8. Tìm vị trí thích hợp của bạn

Có rất nhiều thế giới trong lập trình, vì vậy hãy cố gắng tìm một thế giới mà bạn yêu thích và tập trung vào đó. Thay vì cố gắng học 8 ngôn ngữ lập trình, frontend và backend, các ngôn ngữ được biên dịch và giải thích, tất cả các trình soạn thảo văn bản, công cụ dành cho nhà phát triển, v.v., hãy tìm một vài điều bạn thực sự quan tâm và hiểu tốt về chúng.

9. Nhận biết tốt về nhận dạng mẫu

Nhận dạng các mẫu trong mã là một trong những kỹ năng quan trọng nhất bạn có thể có. Khi mọi người nói về việc viết mã DRY Cảnh (nghĩa là Don Don Lặp lại chính mình), họ đang nói về việc giảm các mẫu trong mã của bạn. Tôi khuyên bạn nên cài đặt trò chơi để nhận dạng mẫu - thậm chí bạn có thể chơi trực tuyến mỗi ngày trên trang web của Thời báo New York Times!

// không mã DRY
hãy đảo ngượcString = string.split (""). Reverse (). tham gia ("")
hãy đảo ngượcString2 = string2.split (""). Reverse (). tham gia ("")
// mã sạch hơn
const Reverse = string => string.split (""). Reverse (). tham gia ("")
hãy đảo ngượcString = Reverse (chuỗi)
hãy đảo ngượcString2 = Reverse (string2)

10. Tập thói quen tốt từ sớm

Sẽ dễ dàng hơn để viết mã sạch trong tương lai nếu bạn có thói quen sớm. Những thói quen xấu có thể khó phá vỡ. Dưới đây là lời khuyên của tôi để viết mã sạch hơn. Nếu bạn đang thực hiện phát triển web, việc chạy trình xác thực HTML và CSS trên mã của bạn có thể cho bạn biết chính xác những gì cần khắc phục!

// Không tốt
hàm avg (a) {
  hãy để s = a.reduce ((x, y) => x + y)
  trả lại s / a.length
}
// Tốt hơn nhiều!
hàm sumArray (mảng) {
  trả về mảng.reduce ((số, currentSum) => số + currentSum)
}

hàm AverageArray (mảng) {
  trả về sumArray (mảng) / Array.length
}

11. Xác định cách học của bạn

Mọi người học khác nhau. Cho dù bạn là người học trực quan, âm thanh hay động học, bạn học khác với người tiếp theo. Xác định cách bạn học tốt nhất và dựa vào các tài nguyên phù hợp với phong cách đó. Ví dụ, tôi học tốt nhất từ ​​việc đọc tài liệu và các ví dụ mã của nó. Tôi mất tập trung dễ dàng trong hướng dẫn.

12. Đấu tranh, nhưng không quá nhiều

Đấu tranh một chút khi bạn đang học là thực sự quan trọng. Bạn muốn tự giải quyết vấn đề và tìm câu trả lời bằng cách sử dụng các tài nguyên tồn tại. Điều đó nói rằng, nó là không hiệu quả và giảm bớt để đấu tranh với một vấn đề quá lâu. Sau một vài giờ, hãy liên hệ với ai đó để được giúp đỡ!

13. Thoải mái với thất bại

Lập trình rất khó, và việc tìm ra câu trả lời đúng đã thắng ngay lập tức. Một trong những khoảnh khắc quan trọng nhất trong hành trình lập trình của tôi là thất bại trong việc viết một bộ giải Sudoku. Nó có thể là thách thức để điều chỉnh để không nhận được mọi thứ ngay lập tức và nhìn thấy những thông báo lỗi. Nhưng đó là một phần rất lớn của lập trình.

14. Yêu thông báo lỗi của bạn

Thông báo lỗi là siêu hữu ích! Khi bạn đang bắt đầu, thông báo lỗi màu đỏ đó có thể là đáng sợ! Một bước rất lớn cần thực hiện là đọc qua các tin nhắn đó, hiểu chúng và sau đó sử dụng chúng để giải quyết vấn đề. Trong thực tế, bạn sẽ đi đến điểm mà một chương trình thất bại âm thầm sẽ khó chịu hơn nhiều so với một thông báo lỗi hữu ích.

Thông báo lỗi Python

15. Một số ngôn ngữ lập trình dễ hơn các ngôn ngữ khác

Có một câu trả lời đúng cho ngôn ngữ lập trình nào cần học trước. Một số sẽ dễ dàng hơn để nhận. Ba ứng dụng hàng đầu của tôi là Python, Ruby và JavaScript. Tôi thích họ vì họ có một cộng đồng lớn đằng sau họ, có cú pháp đơn giản hơn và được diễn giải, vì vậy bạn không cần phải trải qua quá trình biên dịch.

16. Bạn không cần biết tất cả mọi thứ

Thật thẳng thắn 100% không thể biết mọi thứ về lập trình. Không ai biết mọi ngôn ngữ lập trình, mọi phương pháp mà ra khỏi đó, mọi thư viện và khung hoặc giải pháp hoàn hảo cho mọi vấn đề. Don Tiết lo lắng về việc học mọi thứ, chỉ tập trung vào những gì bạn biết và mở rộng điều đó.

17. Tập trung vào chiều sâu trên bề rộng

Học một điều sâu sắc tốt hơn là học một chút về rất nhiều thứ, đặc biệt là lúc đầu. Kiến thức chuyên sâu đó sẽ tiếp tục và làm cho việc học tiếp theo dễ dàng hơn. Đặt những người mù vào, để bạn không bị cám dỗ bỏ những gì bạn học và chuyển sang một cái gì đó mới.

18. Tập trung vào các nguyên tắc cơ bản đầu tiên

Các nguyên tắc cơ bản của lập trình là vô giá. Bạn sẽ sử dụng chúng cho dù cuối cùng bạn làm gì với lập trình. Tập trung vào việc có kiến ​​thức vững chắc về các vòng lặp, điều kiện, chức năng, kiểu dữ liệu và lập trình hướng đối tượng (trong hầu hết các ngôn ngữ) trước khi chuyển sang tìm hiểu về thư viện tuyệt vời mà mọi người nói về.

Sẽ dễ dàng hơn nhiều để tìm hiểu thư viện đó một khi bạn biết các nguyên tắc cơ bản thực sự tốt. Họ cũng sẽ chuyển từ ngôn ngữ này sang ngôn ngữ khác, vì vậy bạn chỉ phải thực sự học chúng một lần. Sau đó, nó chỉ là cú pháp!

19. Làm tốt việc giải quyết vấn đề

Giải quyết vấn đề là cơ sở của lập trình! Trở nên tốt hơn ở đây là rất quan trọng. Giải câu đố, viết mã trên giấy và phá vỡ các vấn đề thực sự có thể giúp giải quyết vấn đề.

Một cái gì đó đôi khi tôi thấy với các nhà phát triển mới là họ tiếp cận lập trình như một vấn đề nghiên cứu thay vì một dự án giải quyết vấn đề. Nếu họ Google một cái gì đó đủ tốt, thì họ sẽ có một giải pháp. Đúng, Google và Stack Overflow là siêu hữu ích, nhưng đôi khi cũng dựa vào chính bạn. Hãy thử một vài cách khác nhau trước khi nghiên cứu nó. Hoặc, nghiên cứu các phần nhỏ của vấn đề thay vì chính vấn đề - tức là, biến một chuỗi thành một chuỗi JavaScript, thay vì JavaScript đảo ngược chuỗi JavaScript.

20. Học giỏi

Một trong những điều lớn nhất để học là làm thế nào để tìm câu trả lời tốt cho câu hỏi của bạn hoặc tìm hiểu các tính năng mới của ngôn ngữ hoặc thư viện của bạn. Sử dụng Google rất quan trọng, vì vậy, việc tham gia các cộng đồng và đăng ký tài nguyên cũng vậy. Mẫu Google mà tôi thường sử dụng là ngôn ngữ / khung / thư viện vấn đề của Google trong càng ít từ càng tốt và không có phụ. Vì vậy, sắp xếp các mảng JavaScript JavaScript, phần tử quay CSS CSS, hoặc bộ tạo bộ định tuyến Vue.

21. Xây dựng dự án mà bạn yêu thích

Khi bạn học, bạn sẽ xây dựng nhiều dự án khác nhau để rèn luyện (và thể hiện) các kỹ năng của mình. Chọn các ý tưởng dự án thú vị với bạn - bạn sẽ có nhiều khả năng hoàn thành chúng và muốn đưa công việc vào đó. Liên quan: hoàn thành các dự án. Một vài dự án hoàn thành thực sự tốt là cách ấn tượng hơn một loạt các dự án đã hoàn thành một nửa!

22. Chỉ so sánh bản thân với chính mình

Có rất nhiều người học cách viết mã ngoài kia. Don Patrick so sánh sự tiến bộ của bạn với người khác. Thay vào đó, hãy so sánh bản thân với bạn trước đó và tập trung vào sự phát triển của chính bạn.

23. Thực hiện một loạt các thử thách mã

Thực hiện các thách thức mã nhanh chóng thực sự có thể giúp củng cố các nguyên tắc cơ bản. Chúng rất tốt cho việc giải quyết vấn đề và thực hành cho các cuộc phỏng vấn. Tôi đăng một bài trên Twitter mỗi ngày với hashtag #CodingPuheads nếu bạn muốn người khác giải quyết chúng!

"" "
Tìm phần tử trong một mảng chỉ xảy ra một lần
từ https://www.hackerrank.com/challenges/ctci-lonely-integer
"" "
từ bộ sưu tập nhập Counter
def lonely_integer (a):
    a_count = Counter (a)
    cho l, tính vào a_count.items ():
        nếu tính == 1:
            trở lại l

24. Ăn mừng chiến thắng của bạn

Học lập trình có thể là một quá trình thực sự khó khăn, vì vậy khi bạn hoàn thành một việc gì đó, ngay cả khi nó nhỏ, hãy ăn mừng nó! Tôi theo dõi các chiến thắng của mình trong Google Keep vì vậy, nếu tôi có một ngày tồi tệ, tôi có thể quay lại những chiến thắng đó và ghi nhớ chúng.

25. Lập trình thật tuyệt vời

Lập trình thực sự tuyệt vời bởi vì bạn có thể xây dựng mọi thứ. Tôi luôn luôn quay lại với trích dẫn này của Sandi Metz:

Những người trong chúng ta có công việc viết phần mềm là vô cùng may mắn. Xây dựng phần mềm là một niềm vui vô tội vì chúng ta có thể sử dụng năng lượng sáng tạo của mình để hoàn thành công việc. Chúng tôi đã sắp xếp cuộc sống của chúng tôi để có cả hai cách; chúng ta có thể tận hưởng hành động viết mã thuần túy trong kiến ​​thức chắc chắn rằng mã chúng ta viết đã sử dụng. Chúng tôi sản xuất những thứ quan trọng. Chúng tôi là những người thợ thủ công hiện đại, xây dựng các cấu trúc tạo nên hiện thực ngày nay, và không kém gì thợ nề hay thợ xây cầu, chúng tôi tự hào chính đáng về những thành tựu của mình.
Điều này tất cả các lập trình viên chia sẻ, từ người mới nhiệt tình nhất cho đến người lớn tuổi rõ ràng, cho dù làm việc ở công ty khởi nghiệp Internet có trọng lượng nhẹ nhất hoặc doanh nghiệp lâu năm, cố chấp nhất. Chúng tôi muốn làm công việc tốt nhất của chúng tôi. Chúng tôi muốn công việc của chúng tôi có ý nghĩa. Chúng tôi muốn vui chơi trên đường đi.
Sandi Metz

Giữ liên lạc!

Nếu bạn thích bài viết này, thì còn rất nhiều nơi nó đến từ đâu! Tôi gửi một bản tin mỗi tuần với các liên kết yêu thích của tôi và những gì tôi đã viết trong tuần đó. Bạn cũng có thể theo dõi tôi trên Twitter để xem bài viết của tôi khi chúng xuất hiện!

Được xuất bản lần đầu tại zen-of-programming.com.