Lập trình viên đang là một ngành học được ưu ái và thu hút nhiều sự chú ý hiện nay. Vậy Lập trình viên có thực sự lương cao và đáng mong đợi như nhiều người đã nói và theo đuổi? Có nên trở thành một lập trình viên hay không?
Lập trình viên đang là một nghề hot hiện nay hi nhu cầu nhân sự rất nhiều cùng với số lượng lương thu nhập cao. Nhưng liệu như vậy đã đủ trở thành lí do để bạn theo đuổi nghề lập trình viên? Liệu ban có nên thật sự trở thành một lập trình viên hay không?
I. Lập trình viên cần học những gì?
1. Kỹ năng mềm
Bạn phải hiểu rằng lập trình là một từ để chỉ việc “giải quyết vấn đề bằng máy tính” chứ không phải là “lập trình để viết code” như nhiều trung tâm hay trường đại học giảng dạy. Đối tượng khách hàng của bạn gặp khó khăn trong việc quản lý nhân viên và tìm đến bạn, lập trình viên là bạn sẽ tạo nên một chương trình để họ có thể quản lý được điều đó. Hay khách hàng của bạn muốn một trang tính cho những gì họ nhập vào và xuất ra, bạn cũng sẽ dùng code để tạo ra một chương trình thỏa mãn những điều đó.
Lập trình viên cần học những gì?
1.1. Teamwork
Bạn phải biết cách làm việc nhóm và phối hợp với những người khác trong một nhóm. Không ai có thể viết code của một mình cả mà sẽ phải phối hợp với nhiều người khác để đưa ra được một chương trình hoàn chỉnh và trơn tru nhất. Vậy nên hãy chú ý học cách xây dựng các mối quan hệ trong khi còn đi học, tiếp nhận và thông cảm cho điểm mạnh điểm yếu mỗi người và học tập lẫn nhau sẽ giúp ích cho cả bạn và nhóm của bạn rất nhiều.
1.2. Tiếng Anh
Học để trở thành lập trình viên mà không biết tiếng Anh là hỏng hẳn. Nhiều tài liệu lập trình và kết quả liên quan đều sẽ chỉ hiện ra nối bạn Google nó bằng tiếng Anh. Nói nghe nghiêm trọng vậy chứ bạn chỉ cần bồi dưỡng một chút tiếng Anh hằng ngày để có thể đọc được những tài liệu gốc cho để có khái niệm đúng nhất, sử dụng được những phần mềm có thể fix được cho tốt. Không cần nhiều nhưng buộc phải đủ, nhưng dù sao bạn vẫn có thể bồi dưỡng hàng ngày.
1.3. Kỹ năng tự học
Xã hội luôn thay đổi và phát triển, nhất là trong một môi trường hiện nay, khi công nghệ đã và đang phát triển nhanh chóng và luôn chuyển mình từng giây từng phút, không học là chết. Bởi vì bạn cần phải tự học lập trình để có thể theo kịp với những tiến độ trên thế gới để không bị tụt lại và có thể nhận được những job với những kĩ năng bạn vừa học được. Nói chung, học được càng nhiều thì càng tốt, nhưng cần phải bảo đảm được cả chất lượng nữa.
1.4. Vấn đề sức khỏe
Làm lập trình viên sẽ khiến bạn ngồi một chố rất lâu và gây ra nhiều vấn đề như đau lưng, mỏi vai, hoa mắt,..Nhiều người còn bị chứng biếng ăn, mất ngủ và bắt đầu tập sử dụng những chất kích thích để có thể làm mình tập trung hơn cho công việc. LÀm một lập trình viên thì bạn nên sắp xếp thời gian thông minh hợp lý, tập thêm vài môn thể thao thì mới tốt được.
2. Chuyên môn về kỹ thuật.
Một lập trình viên không thể thiếu kiến thức về kỹ thuật. Nhưng cụ thể thì để trở thành một lập trình viên thì cần những kiến thức kỹ thuật liên quan nào?
2.1. Mảng mobile
Lập trình viên sẽ được trả tiền để viết những phần mềm chạy trên những nền tảng phổ thông như lập trình iOS hay Android. Mảng này đang có nhiều vị trí việc làm bởi bạn thấy đấy, những chiếc điện thoại thông minh hay những thiết bị di động đang trở thành một phần không thể thiếu trong đời sống.
Lập trình viên luôn là một nghề khó nhằn bởi độ chính xác và tỉ mỉ cao
Có một số công nghệ như Multi-Platform sẽ cho phép lập trình viên viết code một lần nhưng sẽ chạy trên được cả hai nền tảng Androi và iOS.
2.2. Mảng Embedded
Được nhiều lập trình viên gọi là lập trình nhúng. Công việc của lập trình viên trong mảng này là thiết kế chương trình cho các thiết bị điện tử như tivi, máy giặt, tủ lạnh,...nói chung là điều khiển những điều sờ được, nắm được.
Để làm lập trình viên mảng này khá là khó nhằn khi nó yêu cầu trình độ cao cũng như kiến thức về điện tử. Nhưng làm lập trình mảng này sẽ có lương tương đương với độ khó của nó.
2.3. Mảng web
Lập trình viên mảng này hay còn được gọi là Web Designer, họ sẽ chịu trách nhiệm thành lập những trang web và bảo đảm nó vận hành tốt.Làm mảng này yêu cầu khá nhiều kiến thức thêm và có cả nhiều dạng khác nhau của mảng này nữa.
2.4. Mảng Destop App
Tức là những phần mềm chạy được trên các PC. Các lập trình viên có thể sử dụng nhiều ngôn ngữ lập trình khác nhau nhưng nhiều người recommend rằng mấy bác nên học .NET Win form vì nó phổ thông và dễ học, lương cũng khá ổn.
II. Lập trình viên học ngành nào? Lập trình viên phần mềm học ngành gì?
1. Ngành khoa học máy tính là gì?
Ngành khoa học máy tính hay còn gọi là Computer Science là ngành học, nghiên cứu về các phương thức, cách thức hoạt động của máy tính. Học ngành này bạn sẽ chủ yếu quan tâm về cách nó hoạt động như thế nào, chủ yếu về lý thuyết và toán học. Những người học lập trình thông qua yêu cầu của ngành.
Học ngành này giúp bạn tiếp xúc nhiều với các công nghệ như trí tuệ nhân tạo, học máy, an ninh hay thiết kế đồ họa.
2. Ngành công nghệ phần mềm
Công nghệ phần mềm hay kỹ thuật phần mềm thật sự là cái nôi của nhiều lập trình viên khi người sẽ được học lập trình về các quy trình phát triển phần mềm, kỹ năng vận dụng những phần mềm để có thể hình thành một phần mềm khác, cùng với các hiểu biết về việc thu nhận yêu cầu, thiết kế, lập trình, chạy thử, vận hành và bảo trì phần mềm. Rõ ràng đây là ngành học thiết thực nhất nếu bạn muốn theo đuổi ngành lập trình viên.
3. Ngành kỹ thuật máy tính.
Nhiều lập trình viên xuất phát từ mảng này sẽ có cả kiến thức về điện tử lẫn công nghệ thông tin. Học ngành kỹ thuật máy tính các lập trình viên sẽ được học thiết kế, phát triển cả phần cứng lẫn phần mềm để có thể hỗ trợ cho sự vận hành của phần cứng như chip máy tính, công nghệ Robotic,.. Nói nôm na thì mặc dù những lập trình viên xuất phát từ mảng này cũng học các ngôn ngữ lập trình nhưng phục vụ phần cứng nhiều hơn.
4. Hệ thống thông tin
Hệ thống thông tin là một ngành học nghiên cứu về con người, thiết bị và những quá trình thu thập thông tin, phân tích, đánh giá, thiết kế hệ thống thông tin, quản trị, vận hành và phân tích thông tin đã được con người đưa ra và quyết định. Sở dĩ lập trình viên cũng có thể học ngành này là vì họ cũng sẽ được học các ngôn ngữ lập trình nhưng sẽ nghiêng về xử lý thông tin và các cơ sở dữ liệu nhiều hơn.
5. Ngành truyền thông và mạng máy tính.
Đây là một ngành học phổ biến cho các lập trình viên khi học về những công nghệ phổ biến như thư tín điện tử, truyên tải thông tin hay công nghệ điện toán đám mây, xây dựng và vận hành những Data Centre,...Các bạn sẽ được học lập trình cơ bản cũng như những lập trình nâng cao
III. Đường sự nghiệp của một lập trình viên bạn nên biết
1. Fresher
Thường những lập trình viên ở trình độ này là những người mới ra trường hay những beginner người mới bắt đầu học để thành lập trình viên. Fresher là những lập trình viên chưa có nhiều kinh nghiệm nhưng đã có đầy đủ những kiến thức căn bản cần có và họ đang cần tìm một nơi để có thể triển khai, học hỏi và thu lượm thêm kinh nghiệm.
2. Junior Developer
Đây thường là những lập trình viên đã có một đến hai năm kinh nghiệm, qua được giai đoạn Intern và Fresher, đã bước đầu có kinh nghiệm và khá vững tay trong việc lập trình thực tế. Hiểu được sơ bộ về một vòng đời của ứng dụng, thanh thạo ngôn ngữ lập trình hay Framework. Hiểu biết được những cơ sở dữ liệu, lưu truc và xuất dữ liệu nhưng vẫn chưa có nhiều kinh nghiệm nên sễ khiến những chương trình bị chồng chéo lên nhau.
Lập trình viên cần liên tuc học hỏi và cập nhật bản thân
Có thể hơi nản bởi lập trình viên là một ngành khá khó khăn và phức tạp, nhưng nếu kiên trì thì sẽ ổn hơn nhiều.
3. Senior Developer
Là lập trình viên đã có từ 3 đến 8 năm kinh nghiệm, họ đủ khả năng để xử lý những vấn đề phức tạp hay viết nên một ứng dụng lớn, có khả năng thiết kế và quảng lý những cấu trúc cơ sở dữ liệu lớn và các tính năng phức tạp của ứng dụng, hiểu biết sâu sắc.
Những lập trình viên ở trình độ này là người khá quan trọng trong việc xây dựng toàn bộ các ứng dụng có quy mô lớn. Khi đến được trình độ này, bạn sẽ có hai hướng đi. Khi bạn đã hiểu công nghệ để trở thành một lập trình viên Seniot, bạn đã đủ để thành mọt Technical Leader hoặc CTO của Startup,..
Nhưng nếu bạn muốn tìm hiểu thêm thì bạn có thể tiếp tục học thôi..
4. Techlead
với kinh nghiệm từ 5-10 năm kinh nghiệm, lập trình viên này có các kỹ năng của một Senior, hiểu đủ sâu và rộng về cấn đề, chọn tram và có tẻ giải quyết được các vấn đề lớn. Đến đây, bạn có nhiều quyết định sẽ khiến team làm theo như việc chọn ngôn ngữ gì, Script nào, tools nào, thiết kế và vân hành ra sao
Lúc này đôi khi bạn sẽ có những code định nghĩa, những quy luật thay đổi nhưng công việc sẽ thường là thiết kế hệ thống và bảo đảm nó có thể scale và tích hợp được nhiều công trình.
5. Quản lý cấp trung
Sau khi bạn đã có được hàng đống kinh nghiệm và lăn lộn đủ với nghề lập trình viên, bạn sẽ trở thành một quản lý cấp trung hay một Product Manager (PM). Người này cso những quyết định lớn về những chức năng của một chương trình. Ở chức vụ này bạn sẽ không phải còng lưng chạy code hay tìm lòi mắt để thấy một lỗi saii trong chương trình nữa nhưng đổi lại bạn sẽ có nhiều trách nhiệm hơn đồng thời nhiều việc hơn.
6. Quản lý cấp cao
Lập trình viên này sẽ trở thành một CTO hoặc một CEO, bạn có khả năng truyền cảm hứng và dẫn dắt các leader khác đi theo một xu hướng nào đó. Bạn đã ở vị trí cao nhất cho một lập trình viên, nhưng bạn sẽ ít tiếp xúc với lập trình hơn và kỹ năng cần của bạn lúc này là kỹ năng quản lý nhân sự. Họ phải đưa ra những vấn đề như tìm nhân lực, truyền cảm hứng, lãnh đạo và đưa ra được chiến lược.
IV. Lương lập trình viên mới ra trường, sự thật và ảo tưởng
Lương lập trình viên cao á? Mới ra trường thì lương lập trình viên cũng cao á? Làm gì được như mấy lời đồn đại như thế đâu. Những lập trình viên lương cao đều là những con người có kinh nghiệm và kỹ năng cả, người ta cũng lăn lộn nhiều mới có thể có được lương tương đương với trình độ như thế. Chứ thực chất lương lập trình viên không cao như mấy bạn nghĩ đâu. Lương lập trình viên sẽ xứng với trình độ của bạn.
1. Trước hết là cái tư tưởng
Lúc học, lập trình nó là đam mê, nhưng khi đi làm, nó chỉ là một nghề, tham gia sản xuất và kiếm tiền từ cái chương trình cỏn con mình phải cày đêm suốt sáng để hoàn thành hay kiểm tra từng dấu chấm dấu phẩy. Thôi thì có việc để mà làm là ngon lắm rồi, cố mà làm thôi.
Nhất là mấy sinh viên mới ra trường, cứ nghĩ trình độ mình cao lắm, cứ che mấy văn phòng làm việc nhỏ lẻ, đòi làm việc phòng máy lạnh này nọ và còn đòi lương cao ngất mới chịu làm. Nhưng mấy bạn lập trình viên mới ra trường là những người chưa có nhiều kinh nghiệm, dễ mắc lỗi và cũng không có danh tiếng, nên bạn không thể nào mà đòi làm một công việc trong mơ như thế được mà bạn cũng không có quyền để đòi lương cao luôn.
2. Ra trường rồi, thì xông ra đời mà kiếm tiền đi.
Nhiều bạn bảo Việt Nam đào tạo ngành lập trình viên còn yếu kém và thiếu nhiều thứ nhưng cơ bản thì Việt Nam vẫn sẽ cung cấp được cho các bạn những kiến thức nền tảng, và nếu ra được trường rồi thì đừng có than thở không có trình độ này kia nên khó tìm việc. Nói thật, đừng có kén chọn, có công việc liên quan đến chuyên ngành để làm thì cứ làm thôi, điều này rất quan trọng. Nó không chỉ giúp bạn có thu nhập nuôi cơm bản thân mà nó còn có thể giúp bạn thu thập kinh nghiệ và bồi dưỡng kỹ năng. Đừng có than thở nữa, làm ciecj cho đàng hoàng vào.
3. Hãy vứt sĩ diện và làm cái gì đó mang lại giá trị
Lập trình viên gà mờ ei, mấy bạn mới ra trường eiiiii, vứt hết mấy cái sĩ diện với ảo tưởng sức mạnh về trình độ của bản thân đi và lo mà tập trung vào một mảng nào đó để còn có cái mà hơn người ta. Xã hội phát triển như này thì việc bạn lập trình được .NET ra phải làm PHP hay Nodejs là chuyện bình thường.
Ra trường rồi thì cố mà làm việc mấy bạn ạ
Bạn cần có ý thức xây dựng bản thân, cũng như danh tiếng và trình độ thì mới có thể đòi hỏi lương cao hoặc chỗ làm ngon nghẻ được. Nhớ lấy.
4. Phải lỳ một tý.
Thật, không lỳ không sống được. Khi bạn là một lập trình viên mới vào nghề, bạn sẽ dễ bị la mắng hay sai vặt bởi vì bạn chưa có nhiều kinh nghiệm nên người ta cũng không tin tưởng lắm. Đấy, chính cái thời gian đầu này này, bạn sẽ dễ nản và tự ái, đâm ra chán và muốn nghỉ việc. Nhưng phải cố gắng hơn tí nữa, lỳ hơn một tý, cứ cố gắng mà làm cho người ta thấy rồi cũng sẽ được đền đáp xứng đáng với cái sự lỳ đòn của mình thôi.
5. Dù sao thì, IT vẫn là một nghề có tiềm năng.
Nhưng nếu bạn có tiềm năng, có ý thức, giỏi và năng động ham học hỏi thì IT là một nghề rất đáng quan tâm và bảo đảm lương của bạn rất cao luôn. Nhưng thực ra thì ngành nào cũng thế cả, bạn cứ làm tốt, trau dồi kỹ năng bản thân và chứng minh được giá trị của mình thì lương cũng sẽ cao và đủ sức dư dả để có thể gọi là thành công.
V. 12 sự thật chỉ có người trong nghề lập trình viên mới biết
1. Các developer thường yêu cầu sự trợ giúp khi họ gặp vấn đề khá chậm.
Điều này có ảnh hưởng từ cách mọi người học lập trình, một hoặc hai bài tập cơ bản, một chút lý thuyết. Mọi người sẽ cố để giải nhưng nếu không được thì họ sẵn sàng hỏi mọi người xung quanh và cầu cứu sự giúp đỡ. Nó không xấu mà đôi khi còn giúp mọi người hiểu về vấn đề hơn nữa.
2. Lập trình viên có xu hướng báo cáo vấn đề của họ không đầy đủ.
Nhiều nhà tâm lý học đã chỉ ra rằng những lập trình viên thường sẽ không báo cáo đầy đủ vấn đề của họ, nhất là khi họ chịu trách nhiệm cho cấn đề đất veif họ nghĩ như vậy sẽ thể hiện sự yếu kém và thiếu kinh nghiệm. Thường những người thiếu kinh nghiệm sẽ mắc lỗi này.
3. Các Developer thường tìm kiếm các hình thức trợ giúp khác trước khi nói chuyện với đồng nghiệp
Thường những lập trình viên sẽ phải loay hoay rất lâu rồi tìm đủ mọi cách để giải quyết vấn đề trước khi nhờ đến ai đó. Họ sợ họ sẽ bị đánh giá, nhưng thực ra cũng không có gì cả. Vì đằng nào thì bạn cũng đã cố gắng hêt sức rồi, có gì chưa có thì mình học hỏi thêm thôi.
4. Quá trình lập trình trải qua 4 giai đoạn.
Phân loại tiến trình công việc cũng rất cần thiết cho các lập trìnhviên để họ có thể đánh giá được tiến trình và chất lượng công việc. Họ có thể yêu cầu giúp đỡ kịp thời nếu có khó khăn nào đấy.
- Bước 1: Complex Programming (lập trình phức tạp)
- Bước 2: Making Progress (tiến triển)
- Bước 3: Slow Progress (Gặp khó khăn, sự cố)
- Bước 4: Stuck (ngõ cụt)
5. Lập trình viên dành khoảng 30% thời gian để đọc source code (mã nguồn)
Hầu hết lập trình viên đều hiểu đât là một bước quan trọng để có thể bảo đảm chương trình chạy đúng và không bị sai. Nhưng cách phân chia thời gian thì vẫn chưa rõ được, và theo nhiều nghiên cứu, thì khoảng 30% thời gian các lập trình viên sẽ cố gắng chỉnh sửa Source Code.
6. Các thông báo lỗi chính, thời gian phát hiện lỗi và thời gian trung bình để giải quyết lỗi
Thông báo lỗi sẽ rất cụ thể cho từng vấn đề về ngôn ngữ lập trình hay lỗi chương trình. Để có thể tìm hiểu sâu hơn về vấn đề này, có một luận án đã cho thấy rằng những lỗi này đều được chỉ ra rất chính xác và cụ thể khi nghiên cứu trên các lập trình viên.
7. Năng suất lập trình viên làm việc từ xa thấp hơn so với lập trình viên làm việc tại văn phòng
Điều này đang gây tranh cãi khá nhiều, đặc biệt là đối với những lập trình viên nhận dự án làm tại gia phát triển các phần mềm ngày càng tăng. Nhưng đã có nhiều nghiên cứu cụ thể chứng minh rằng việc làm từ xa sẽ kém năng suất hơn so với làm việc tại văn phòng. Nhưng thực ra việc này cũng chịu nhiều tác động bởi nhiều thứ.
8. Bảo trì phần mềm tiêu tốn hơn 50% khối lượng công việc
Nhiều nghiên cứu đã chỉ rõ ra những lập trình viên sẽ tốn hơn 50% khối lượng chỉ để bảo trì được phần mềm. Điều này cho thấy sự phân bố không đều thời gian giữa các công việc khác nhau.
9. Hầu hết các lập trình viên đều là người da trắng, trẻ và có giới tính nam
Tuyên bố này không phải là một tuyên bố vô căn cứ mà được đưa ra bởi nhà sáng lập trang tuyển dụng lớn Skillcrush. Nhưng bạn sẽ thấy được sự thật rằng rất ít lập trình viên là nữ giới.
10. Việc bảo trì phần mềm tiêu tốn từ 40 đến 90% chi phí.
Đây rõ là một sự thật đã được chứng minh bơi rất nhiều các nghiên cứu khi nói rằng việc bảo trì tốn rất nhiều chi phí. Dù có nhiều yếu tố tác động đến vấn đề này nhưng nó cũng đã khiến cho mọi người bắt đầu quan tâm và chú ý hơn đến bảo trì phần mềm.
VI. Kết luận
Trên đây là những thông tin mà 123Job đã thu thập và đưa vào bài viết. Hi vọng nó sẽ giúp bạn hiểu rõ hơn phần nào về nghề nghiệp lập trình viên.