Bài viết này đã được cùng viết bởi Gene Linetsky, MS. Gene Linetsky là nhà sáng lập khởi nghiệp và kỹ sư phần mềm tại Khu vực Vịnh San Francisco. Ông đã làm việc trong ngành công nghệ cao hơn 30 năm và hiện là Giám đốc Kỹ thuật tại Poynt, một công ty công nghệ sản xuất các thiết bị Point-of-Sale thông minh cho các doanh nghiệp.
Bài viết này đã được xem 10.284 lần.
Trở thành nhà phát triển phần mềm là một kế hoạch nghề nghiệp sinh lợi. Thường thì đó là những người có kỹ năng thực sự giỏi. Nhưng chính xác thì họ đang làm gì? Vì có nhiều khả năng là bạn không thể vượt qua họ, bạn sẽ phải tham gia cùng họ. Liệu bạn có yêu thích công nghệ, muốn gắn kết với người dùng để phát triển một phần mềm tốt? Chỉ cần động não một chút và bắt đầu với bước 1 dưới đây, bạn hoàn toàn có thể làm được.
Các bước
Nắm vững nguyên tắc cơ bản
-
1Xác định xem bạn có hứng thú với hình thức phát triển phần mềm nào. Có hai hình thức phát triển phần mềm cơ bản là: Phát triển ứng dụng và Phát triển hệ thống. Phát triển ứng dụng tập trung vào việc tạo ra các chương trình đáp ứng nhu cầu của người dùng. Có thể kể đến ứng dụng điện thoại di động, video game được phát triển với mức kinh phí cao hay những phần mềm kế toán mang tầm cỡ doanh nghiệp. Phát triển hệ thống tập trung tạo ra và duy trì hệ điều hành sử dụng quy trình phát triển vòng đời. Phát triển hệ thống thường bao gồm bảo mật dữ liệu và khả năng vận hành mạng.[1]
-
2Tự học một ngôn ngữ lập trình. Bất cứ ai cũng có thể nghĩ ra các ý tưởng thú vị, nhưng chỉ nhà phát triển mới có khả năng hiện thực hóa những ý tưởng đó. Dù bạn chỉ có ý định làm các công việc có liên quan đến thiết kế phần mềm, bạn vẫn nên làm quen với việc viết code (mã lệnh) và có khả năng tạo ra các mẫu thử nghiệm (prototype) cơ bản. Hiện có nhiều ngôn ngữ lập trình mà bạn có thể tự học. Có thể kể tới một số ngôn ngữ lập trình quan trọng và hữu ích hơn cả như:
- C - C là một trong những ngôn ngữ lập trình cũ vẫn còn được sử dụng, đồng thời là nền tảng của hầu hết ngôn ngữ khác trong danh sách này. C được dùng để phát triển các chương trình cấp thấp (low-level) và rất tương thích với phần cứng của máy tính.
- C++ - Đây là phiên bản hướng đối tượng của C và cũng là ngôn ngữ lập trình phổ biến nhất trên thế giới. Một vài chương trình kiểu như Chrome, Firefox, Photoshop và các chương trình khác đều được tạo ra bằng C++. Đây còn là ngôn ngữ hết sức phổ biến được dùng để tạo ra video game. Những nhà phát triển C++ gần như lúc nào cũng được săn tìm.
- Java - Đây là phiên bản phát triển từ ngôn ngữ C++ và trở thành ngôn ngữ quen thuộc nhờ việc dễ dàng chuyển đổi nền tảng. Hầu hết mọi hệ thống đều có thể dùng Java Virtual Machine để chạy phần mềm Java. Ngôn ngữ này được sử dụng rộng rãi trong video game và phần mềm doanh nghiệp. Nhiều người cho rằng đây là ngôn ngữ căn bản.
- C# - C# là ngôn ngữ dựa trên Windows và là một phần của .NET framework từ Microsoft. Ngôn ngữ này có mối liên hệ mật thiết với Java và C++, nên nếu đã học Java thì bạn có thể nhanh chóng chuyển đổi sang C#. Ngôn ngữ này đặc biệt hữu ích với các nhà phát triển đang tạo ra phần mềm Windows hoặc Windows Phone.
- Objective-C - Đây là một phiên bản khác của ngôn ngữ C được thiết kế riêng cho hệ thống Apple. Ngôn ngữ này vô cùng phổ biến trong các ứng dụng iPhone và iPad. Đây cũng là ngôn ngữ tuyệt vời dành cho người làm nghề tự do.
- Python - Đây là ngôn ngữ rất dễ học, có thể được coi là một trong những ngôn ngữ dễ nắm bắt nhất. Python chuyên dùng để phát triển web.
- PHP - Đây không hẳn là ngôn ngữ phát triển phần mềm, nhưng học PHP là cần thiết nếu bạn có hứng thú tìm hiểu về việc phát triển web. Luôn có nhiều việc làm cho các nhà phát triển PHP dù không mang lại nhiều lợi nhuận như phát triển phần mềm.
-
3Tìm kiếm tài liệu giúp bạn học hỏi. Hầu hết hiệu sách đều có các khu dành riêng cho sách lập trình, đương nhiên là còn có rất nhiều sách trên Amazon và những nhà bán lẻ điện tử khác. Một cuốn sách lập trình được trau chuốt cẩn thận có thể trở thành tài liệu tốt nhất dành cho bạn, đồng thời cho phép bạn nhanh chóng tham khảo khi đang thực hiện dự án.
- Ngoài sách, Internet là một kho tài nguyên vô tận bao gồm nhiều sách tham khảo và hướng dẫn chi tiết. Bạn có thể tìm kiếm nội dung tham khảo về ngôn ngữ mà bạn đã lựa chọn trên các trang kiểu như CodeAcademy, Code.org, Bento, Udacity, Udemy, Khan Academy, W3Schools và nhiều trang khác.
-
4Tham gia vài lớp học. Dù không nhất thiết phải lấy bằng chính quy để tiến hành phát triển phần mềm, bạn cũng chẳng mất gì khi học trung tâm hoặc tham gia một số lớp học của trường cao đẳng cộng đồng tại địa phương. Cái lợi là bạn sẽ được hướng dẫn riêng và có cơ hội thử giải quyết những vấn đề mà bạn ít khi gặp phải khi tự học.
- Nếu muốn tham gia lớp học thì cần đóng học phí, thế nên hãy chắc chắn rằng bạn chỉ đăng ký những lớp học giúp bạn học được những điều chưa biết.
- Dù nhiều nhà phát triển có thể dấn thân vào ngành này chỉ với kỹ năng xuất sắc của họ, bạn có thể trở nên nổi bật nếu có tấm bằng Cử nhân về khoa học máy tính sau bốn năm học tập tại trường đại học. Tấm bằng đó giúp bạn có nền kiến thức sâu rộng hơn để có khả năng tham gia vào các lớp học hữu ích khác như toán và logic.
-
5Thực hiện dự án vì sở thích cá nhân. Trước khi tiến hành áp dụng kỹ năng lập trình mới của bản thân vào công việc thực tế, bạn nên thử làm một số dự án vì chính mình. Tự đặt ra thử thách cho bản thân là xử lý vấn đề bằng ngôn ngữ lập trình của bạn. Điều này không chỉ giúp bạn cải thiện kỹ năng mà còn làm đẹp lý lịch nghề nghiệp.
- Ví dụ: Thay vì dùng ứng dụng lịch của máy tính để sắp xếp công việc, thử thiết kế một ứng dụng cho riêng mình!
- Nếu bạn có hứng phát triển video game, thử tạo ra các game đơn giản không chú trọng vào đồ họa hay quy tắc chơi game phức tạp. Thay vào đó, tập trung vào việc khiến game trở nên thú vị và độc đáo. Một bộ sưu tập bao gồm các game nhỏ mà bạn tự tạo sẽ khiến hồ sơ của bạn trông rất đẹp.
-
6Đặt câu hỏi. Sử dụng Internet là một cách tuyệt vời để giao thiệp với các nhà phát triển khác. Nếu gặp khó khăn trong lúc thực hiện một trong những dự án của mình, bạn có thể yêu cầu trợ giúp trên các trang kiểu như StackOverflow. Đảm bảo là bạn hỏi một cách tinh tế và chứng tỏ rằng bạn đã thử nhiều cách có thể.
-
7Luyện tập hàng ngày. Thực hiện dự án vì đam mê hàng ngày, dù cho bạn chỉ làm trong một tiếng đồng hồ. Điều này giúp bạn luôn có tinh thần hăng hái và thường xuyên học được các kỹ năng mới. Nhiều nhà phát triển đã thành công trong việc học một ngôn ngữ bằng cách đảm bảo rằng họ tiếp xúc với nó mỗi ngày.[2]
- Xác định khoảng thời gian bạn có thể dành ra mỗi ngày cho việc viết code, hoặc đặt ra hạn chót mà bạn cần hoàn thành. Cố gắng làm dự án của bạn vào các ngày trong tuần để bạn có thể thư giãn vào cuối tuần.
Quảng cáo
Phát triển một chương trình
-
1Động não để nghĩ ra các ý tưởng. Một chương trình tốt thường sẽ thực hiện tác vụ giúp tạo điều kiện thuận lợi hơn cho người dùng. Quan sát phần mềm hiện có sẵn dành cho tác vụ bạn muốn thực hiện, sau đó nghĩ xem có giải pháp nào giúp tiến trình trở nên dễ dàng hoặc suôn sẻ hơn. Một chương trình thành công là chương trình mang lại nhiều lợi ích cho người dùng.
- Kiểm thử tác vụ thường ngày trên máy tính của bạn. Phải chăng có một số cách giúp bạn tự động hóa một phần của những tác vụ đó bằng một chương trình?
- Viết ra mọi ý tưởng. Dù vào thời điểm viết nghe có vẻ ngớ ngẩn hoặc lạ lùng, ý tưởng đó có thể trở nên hữu ích hoặc thậm chí là đáng giá.
- Tìm hiểu về các chương trình khác. Những chương trình này có tác dụng gì? Làm thế nào để chúng trở nên tốt hơn nữa? Chúng còn thiếu thứ gì? Việc trả lời những câu hỏi này có thể giúp bạn nghĩ ra ý tưởng để tự xử lý vấn đề.
-
2Viết văn bản phác thảo. Văn bản này sẽ chỉ ra các nét chính và mục tiêu mà bạn nỗ lực đạt được khi thực hiện dự án. Tham khảo văn bản phác thảo trong quá trình phát triển sẽ giúp dự án của bạn luôn đi đúng hướng và đạt được sự tập trung cần thiết. Xem bài viết này để biết cách viết văn bản chi tiết.
-
3Tạo ra mẫu thử nghiệm (prototype). Đây là chương trình cơ bản phô diễn tính năng mà bạn đang cố gắng đạt được. Mẫu thử nghiệm là một chương trình nhanh cần được tạo đi tạo lại cho đến khi bạn tìm ra một mẫu chạy được. Ví dụ: Nếu đang tạo một ứng dụng lịch, mẫu thử nghiệm của bạn có thể là lịch cơ bản (có ngày tháng chính xác!) và có thể thêm các sự kiện vào lịch.
- Mẫu thử nghiệm sẽ thường xuyên thay đổi trong suốt vòng đời phát triển vì bạn có thể bất chợt tìm ra các cách mới để giải quyết vấn đề hoặc nghĩ ra một ý tưởng bạn muốn sử dụng về sau này.
- Mẫu thử nghiệm không nhất thiết phải đẹp. Trên thực tế, phong cách thiết kế và đồ họa nên là thứ nằm cuối trong danh sách những thứ mà bạn cần chú trọng. Tiếp tục lấy ứng dụng lịch làm ví dụ, mẫu thử nghiệm của bạn thường chỉ có chữ là đủ rồi.
-
4Chạy thử nhiều lần. Lỗi (bug) là thứ bất kỳ nhà phát triển nào cũng gặp phải. Lỗi trong lúc viết code và cách sử dụng khác thường có thể gây ra đủ mọi vấn đề trong một phần mềm hoàn chỉnh. Khi vẫn còn đang thực hiện dự án của mình, bạn nên cố gắng chạy thử (test) càng nhiều lần càng tốt. Tìm ra mọi trường hợp có thể gây lỗi chương trình và cố gắng không để chương trình gặp lỗi tương tự trong tương lai. Nhờ gia đình và bạn bè chạy thử chương trình và báo lỗi. Bất kỳ cách nào mang lại ý kiến phản hồi đều có thể hỗ trợ cho quá trình phát triển.
- Thử nhập ngày tháng lạ nếu chương trình của bạn có chứa ngày tháng. Ngày tháng trong quá khứ hoặc tương lai xa có thể khiến chương trình chạy khác thường.
- Gõ sai kiểu biến. Ví dụ: Nếu đang tạo ra một mẫu yêu cầu người dùng điền tuổi, thử gõ vào đó một từ xem điều gì sẽ xảy ra với chương trình.
- Thử nhấp vào mọi thứ nếu chương trình của bạn có giao diện đồ họa. Chuyện gì sẽ xảy ra khi bạn trở về màn hình trước đó, hoặc nhấn các nút sai thứ tự?
-
5Trau chuốt dự án của mình. Nếu bạn tạo ra một dự án sơ sài trong giai đoạn tạo mẫu thử nghiệm và phát triển thì cũng không sao cả, nhưng nếu muốn những người khác có ý định sử dụng nó, bạn sẽ cần dành thời gian trau chuốt thêm. Thế nghĩa là bạn cần đảm bảo rằng các trình đơn nằm ở những vị trí hợp lý, giao diện người dùng (UI) trông gọn gàng và dễ nhìn, không có lỗi dễ phát hiện hoặc lỗi nghiêm trọng, và phiên bản hoàn thiện trông phải đẹp mắt một chút.
- Việc thiết kế giao diện người dùng và tính năng có thể rất khó và phức tạp. Có những người dành toàn bộ thời gian trong sự nghiệp của mình chỉ để thiết kế giao diện người dùng. Đảm bảo rằng chương trình của bạn dễ dùng và dễ nhìn. Việc tạo ra một giao diện người dùng chuyên nghiệp khó có thể được thực hiện nếu không có ngân sách và đội ngũ phát triển.
- Nếu có ngân sách, bạn nên biết rằng hiện có nhiều nhà thiết kế đồ họa làm việc tự do có khả năng thiết kế giao diện người dùng khi ký hợp đồng với bạn. Nếu có một dự án lớn mà bạn kỳ vọng rằng sẽ trở thành thứ được nhiều người yêu thích, thử tìm kiếm một nhà thiết kế giao diện người dùng tốt và thuyết phục họ trở thành một thành viên trong đội của bạn.
-
6Đưa dự án của bạn lên GitHub. GitHub là cộng đồng mã nguồn mở cho phép bạn chia sẻ code của mình với những người khác. Nhờ đó, bạn hiểu sâu hơn về code do chính mình viết ra, đồng thời góp phần hỗ trợ những người khác đang vật lộn tìm kiếm giải pháp mà bạn có thể đã tìm ra. GitHub là kho lưu trữ tuyệt vời giúp bạn học hỏi nhiều điều, đồng thời là một cách hay để bạn gây dựng sự nghiệp của mình.
-
7Phân phối phần mềm của bạn. Sau khi tạo ra một phần mềm hoàn chỉnh, bạn có thể lựa chọn giữa hai phương án là phân phối phần mềm hoặc không. Hiện tại, có nhiều cách để bạn thực hiện việc này tùy thuộc vào loại phần mềm đã tạo ra.
- Một trong những cách phân phối phần mềm phổ biến nhất dành cho đội ngũ phát triển có quy mô nhỏ hoặc nhà phát triển độc lập là thông qua một trang web cá nhân. Đảm bảo rằng tất cả các tính năng đều được ghi đầy đủ thông tin, đi kèm với một vài ảnh chụp màn hình và hướng dẫn sử dụng. Nếu đang bán phần mềm, đảm bảo rằng bạn có hệ thống thanh toán qua mạng tốt và một máy chủ (server) để phân phối phần mềm.
- Nếu đang phát triển phần mềm cho hệ điều hành hoặc thiết bị riêng biệt, bạn có thể tận dụng cửa hàng công nghệ số. Ví dụ: Nếu đang phát triển phần mềm cho thiết bị Android, bạn có thể bán phần mềm của mình thông qua Google Play Store, Amazon App Store, hoặc trang web cá nhân của riêng bạn.
Quảng cáo
Kiếm việc làm
-
1Nhận việc thời vụ. Dù công việc này không giúp bạn kiếm nhiều tiền như công việc toàn thời gian và có độ tin cậy thấp hơn, bạn có thể cải thiện hồ sơ của mình một cách đáng kể bằng cách nhận nhiều việc thời vụ. Bạn có thể tham khảo các trang kiểu như Elance hay ODesk (còn được gọi là "Upwork" vào thời điểm hiện tại) để tìm việc. Dù có thể gặp đôi chút khó khăn trong việc được xem xét ký hợp đồng, sau khi có công việc đầu tiên, mọi chuyện sẽ trở nên dễ dàng hơn rất nhiều.
- Hacker News là một nguồn tham khảo tuyệt vời dành cho những ai muốn tìm công việc tự do và công việc ký hợp đồng. Bạn nên chú ý đến phần "Ask".
- Dù đôi khi rất muốn buông xuôi, ra giá thấp để dễ dàng có công việc thời vụ, đừng bán rẻ sức lao động của mình. Không chỉ rơi vào tình cảnh phải làm nhiều hơn mà lại nhận ít hơn mức xứng đáng, bạn còn khiến những người khác làm cùng ngành cảm thấy bực mình, kết quả là bạn sẽ khó gắn kết với cộng đồng hơn.
- Làm tốt công việc thời vụ đôi khi giúp bạn kiếm được công việc toàn thời gian. Vì thế, bạn lúc nào cũng nên thể hiện điểm mạnh nhất của bản thân!
-
2Giao thiệp càng nhiều càng tốt. Tham gia thật nhiều hội nghị và buổi tụ họp lập trình viên. Bạn không chỉ có cơ hội xử lý vấn đề đa dạng và biết nhiều code hơn mà còn gặp được những người đang làm cùng ngành. Bạn có thể đang có suy nghĩ là lập trình viên thường làm việc một mình trong phòng, nhưng thật ra phần lớn các nhà phát triển làm việc toàn thời gian đều là thành viên của một đội và việc giao lưu với nhau cũng quan trọng như bất cứ việc nào khác.
-
3Ứng tuyển vào vị trí làm việc toàn thời gian. Sau khi làm một vài công việc thời vụ để ghi vào hồ sơ của mình, bạn có thể tiến hành gửi lý lịch nghề nghiệp và hồ sơ của mình cho những tổ chức lớn hơn để nhận công việc toàn thời gian. Ngoài Monster và Indeed, hiện có nhiều trang cung cấp việc làm dành riêng cho nhà phát triển mà bạn nên truy cập, trong đó có GitHub Jobs, StackOverflow Job Board, AngelList, CrunchBoard, Hirelite, và Hacker News.[3]
-
4Đa dạng hóa kỹ năng của bạn. Một nhà phát triển phần mềm giỏi thường thông thạo nhiều hơn một ngôn ngữ. Dù phần lớn nội dung học đều sẽ được sử dụng trong công việc, bạn nên dành chút thời gian rảnh để mở mang kiến thức và học những điều cơ bản về một hoặc hai ngôn ngữ khác. Điều này khiến việc chuyển sang làm các dự án mới trở nên dễ dàng hơn rất nhiều và giúp bạn trở thành một ứng viên xuất sắc được nhà tuyển dụng chú ý hơn.
-
5Đừng lo lắng về mức lương. Lúc đầu, không phải công việc phát triển phần mềm nào cũng đều đem lại cho bạn mức lương cao. Trên thực tế, chẳng có công việc nào như thế. Tuy nhiên, ưu điểm của việc phát triển phần mềm là thị trường việc làm đang phát triển mạnh mẽ. Nếu cảm thấy rằng số tiền kiếm được từ công việc hiện tại là không đủ, bạn có thể ứng tuyển vào vị trí mới của một công ty mới tương đối dễ dàng (nếu bạn có kỹ năng). Hãy coi những công việc ban đầu là kinh nghiệm cần thiết thay vì chỉ chăm chăm vào quỹ hưu trí.Quảng cáo