Gửi các developer, làm ơn đừng bỏ việc trước khi bắt đầu!
Lần lập trình gần nhất của tôi …
- Rất suôn sẻ. Thật sự thoải mái, không phải giải quyết quá nhiều vấn đề phức tạp!
- Thật tệ. Tôi viết code như bị ép buộc. Bug liên tục và phải giải quyết. Rất nhiều áp lực tốn thời gian!
Chắc có lẽ bạn sẽ chọn ngay đáp án thứ 2. Vì tôi đã từng như vậy (ngay cả sau 8 năm lập trình).
Nếu thấy ngạc nhiên với đáp án #1. Hãy thắc mắc tại sao họ lại cảm thấy như vậy?
Lần tôi code gần đây nhất
Trong vài năm qua, tôi đã gặp rất nhiều junior developer và cho họ vô số lời khuyên, trong đó bao gồm:
- Mới học lập trình và cảm thấy mất phương hướng
- Luôn phải xem các hướng dẫn và cảm thấy sợ mỗi khi phải code mà không có sự hướng dẫn
- Thực sự tài năng nhưng lại thất bại trong các cuộc phỏng vấn hoặc thậm chí không nhận được lời mời phỏng vấn nào.
Đâu là trọng tâm của vấn đề?
Tôi đã dành thời gian để nghiên cứu các vấn đề này và cố gắng tìm hiểu về nhu cầu của các developer.
Sau khi nói chuyện với các đồng nghiệp tại công ty, nghiên cứu trên các group trên Facebook, diễn đàn, Q&A website, các bài viết trên Reddit và thậm chí đã khảo sát một vài cộng đồng nhỏ, có rất nhiều đáp án cho vấn đề này.
“Tôi cảm thấy như tôi chỉ có thể code giống như video hướng dẫn”
“Tôi phải tìm kiếm trên google các ví dụ mà người khác đã viết. Tôi cảm thấy mình như một đứa trẻ 3 tuổi đang loay hoay cố gắng giải quyết một bài toán. Thật khó chịu.”
“Tôi không thể tư duy như một lập trình viên.”
Và đây là câu trả lời tôi nhận được nhiều nhất:
“Tôi đã học được rất nhiều bài học từ việc code: Cảm thấy bối rối và tiếc nuối với thời gian mình bỏ ra, nhưng một khi giải quyết được một vấn đề nó giống như một phép màu.”
Bạn cảm thấy nhận như thế nào?
Lí do không phải bắt nguồn từ việc họ thiếu nỗ lực hay từ một chiến lược học tập sai hay thậm chí là thiếu kỉ luật. Vậy lý do chính ở đây là gì?
Đơn giản là vì họ thiếu kinh nghiệm
Các vấn đề khó khăn
Tôi nhận ra ở hầu hết các nhà phát triển thiếu kinh nghiệm sẽ đối mặt với hai vấn đề phổ biến.
Hy vọng những lời khuyên của tôi sẽ giúp bạn tránh được áp lực mà hai vấn đề này gây ra cho người học.
Thứ nhất: Bạn không yêu thích việc lập trình
Rất nhiều lập trình viên luôn nói rằng lập trình không dành cho họ và tôi không đồng ý điều đó.
Bởi vì, bạn không nhất thiết phải yêu thích lập trình để trở thành một lập trình viên. Trong thực tế, hơn 50% các nhà phát triển chuyên nghiệp rất ghét lập trình.
Hãy xem, thật tuyệt khi bạn giải quyết vấn đề một cách nhanh chóng. Khách hàng sẽ cảm thấy tốt khi code của bạn gọn gàng, sạch, và giải quyết vấn đề đặt ra ban đầu.
Nhưng đó không chiếm hết thời gian, hầu hết ngày làm việc của các lập trình viên không như họ nghĩ:
“Làm thế nào tôi áp dụng design pattern để tách các class và để duy trì codebase dễ dàng hơn trong tương lai.”
Nó vẫn hoàn toàn không có vấn đề gì nếu bạn đôi khi ghét lập trình.
“Lập trình không dành cho tôi” là một câu nói phổ biến khiến bạn choáng ngợp và thất vọng. Tuy nhiên, lập trình thật sự là dành cho bạn vì nếu bạn đang đọc đến đây, có nghĩa là bạn quan tâm đến lập trình và yêu thích nó.
Vấn đề thứ 2: Có quá nhiều thứ phải học
Đây là một tư tưởng rất phổ biến vì đã có nhiều độc giả nói về điều này và tôi đã hoàn toàn nhìn thấu lý do đằng sau nó.
Chúng ta đang ở trong một lĩnh vực rộng đến mức khi bạn đào sâu hơn, bạn càng nhận ra rằng bạn không biết gì cả. Ngay cả việc suy nghĩ về điều này sẽ khiến con người cảm thấy tệ và dễ dàng để bị choáng ngợp.
Chúng ta sẽ hiểu điều này với một ví dụ.
Nếu bạn đang làm việc với CSS, bạn phải biết cách để áp dụng style cho HTML element. Bạn có thể tạo một button có đường viền, màu, shadow hoặc animation. Bạn không thể hiểu điều gì sẽ xảy ra khi bạn nhấp vào nút (bạn cần JavaScript để làm điều đó).
Vì vậy, nếu bạn cần animate một hình ảnh:
Trước tiên, bạn phải có hình ảnh và các button element (HTML)
Sau đó, bạn có thể thiết lập animation cho một class cụ thể (CSS)
Và bạn có thể thêm class vào hình ảnh khi button được nhấp (JavaScript)
Giả sử bạn đã đọc nội dung này trong hướng dẫn. Một tuần sau, bạn phải thêm shadow vào hình ảnh khi một form được gửi. Bạn sẽ biết ngay mình phải tìm gì. Bạn có hiểu biết tổng thể về HTML, CSS và JavaScript và phần nào họ chịu trách nhiệm về chức năng này.
Tiếp theo là tra Google với đúng từ khóa. Trong trường hợp này sẽ là “css add shadow” và “javascript callback form submit”.
Học lập trình đúng cách
Học lập trình là một quá trình mất rất nhiều thời gian – đôi khi là nhiều năm.
Khi bắt đầu, quan trọng nhất là phải xây dựng thói quen để học hiệu quả. Hầu hết những ngày đầu bạn dành cho hướng dẫn, tài liệu cả hai cùng một lúc.
Một số người tận dụng tối đa thời gian học tập. Trong khi đó những người khác cảm thấy họ tiến bộ nhưng thực sự chỉ là Copy – paste hay chỉ làm theo hướng dẫn.
Có thói quen tối đa hóa giờ học và nó được gọi là “Học chậm”.
Không bỏ cuộc và hãy học tập hiệu quả – nhưng đôi khi không đủ để bạn có được một công việc lập trình.
Tiếp theo, ta nên tập trung vào những gì nhà tuyển dụng tìm kiếm trong một junior developer và làm thế nào để nổi bật hơn những người khác.
(Techtalk)
Có thể bạn quan tâm:
- Sách hướng dẫn lập trình game trên Android, Beginning Android 4 Games Development
- 10 phần mềm giả lập Android tốt nhất cho Windows
- Notification là gì?
- Mã nguồn website dịch vụ tên miền, hosting, phần mềm kèm theo dữ liệu thực
- Bí mật bộ mặt email marketing
- Hướng dẫn dùng email tên miền riêng và miễn phí với Yandex (Hệ thống tìm kiếm và lưu trữ uy tín nhất tại Nga)
- Cài đặt ứng dụng, game có đuôi .jar(.jad) cho Blackberry
- Android SharedPreference
- Tặng mã nguồn mạng xã hội giống y Facebook
- Toàn văn Luật An ninh mạng năm 2018 của Việt Nam
- Vệ tinh địa tĩnh là gì?
- Mobile 3D Graphics with OpenGL ES and M3G
DVMS chuyên:
- Tư vấn, xây dựng, chuyển giao công nghệ Blockchain, mạng xã hội,...
- Tư vấn ứng dụng cho smartphone và máy tính bảng, tư vấn ứng dụng vận tải thông minh, thực tế ảo, game mobile,...
- Tư vấn các hệ thống theo mô hình kinh tế chia sẻ như Uber, Grab, ứng dụng giúp việc,...
- Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,...
- Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup,...
Vì sao chọn DVMS?
- DVMS nắm vững nhiều công nghệ phần mềm, mạng và viễn thông. Như Payment gateway, SMS gateway, GIS, VOIP, iOS, Android, Blackberry, Windows Phone, cloud computing,…
- DVMS có kinh nghiệm triển khai các hệ thống trên các nền tảng điện toán đám mây nổi tiếng như Google, Amazon, Microsoft,…
- DVMS có kinh nghiệm thực tế tư vấn, xây dựng, triển khai, chuyển giao, gia công các giải pháp phần mềm cho khách hàng Việt Nam, USA, Singapore, Germany, France, các tập đoàn của nước ngoài tại Việt Nam,…
Quý khách xem Hồ sơ năng lực của DVMS tại đây >>
Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>