Có phải tôi đang tự lừa dối mình? Phân tích kinh doanh chuyển sang lập trình viên


11

Công việc hiện tại: Làm nhà phân tích kinh doanh hàng đầu cho một công ty Big 4, lãnh đạo một nhóm các nhà phát triển và thử nghiệm làm việc trong một dự án tái cấu trúc quy mô lớn (4 nhà phát triển trên bờ, 4 nhà phát triển ngoài khơi, một số người thử nghiệm trên bờ / ngoài khơi). Cũng làm việc trong một năng lực tương tự trên các dự án quy mô nhỏ hơn khác.

Vai trò của tôi: Thu thập / viết ra các yêu cầu, tạo ra các đặc tả chức năng, thiết kế giao diện người dùng (về cơ bản vạch ra tất cả các khía cạnh của hệ thống), làm việc chặt chẽ với các nhà phát triển để truyền đạt / làm rõ các yêu cầu và đưa ra giải pháp khi chúng tôi gặp sự cố , viết các trường hợp thử nghiệm (và thực hiện nhiều thử nghiệm), làm việc với quản lý cấp cao và các bên liên quan chính, quản lý người thử nghiệm beta, tạo hướng dẫn sử dụng và các buổi đào tạo hàng đầu, cung cấp hỗ trợ kỹ thuật chính.

Tôi cũng viết khá nhiều macro trong Excel bằng VBA (một số macro của tôi hiện đang được sử dụng trên toàn bộ công ty, vì vậy có khoảng 1000 người sử dụng chúng) và sử dụng SQL trên cơ sở hàng ngày, cả trên các tệp rút gọn SQL của chương trình dựa vào dữ liệu SQL Server của chúng tôi và mọi cơ sở dữ liệu Access mà tôi tạo. Các nhà phát triển cảm thấy rằng tôi khá tốt trong vai trò này vì tôi hiểu rất nhiều về lập trình, các hạn chế hệ thống vốn có, cấu trúc của cơ sở dữ liệu, vì vậy tôi dễ dàng truyền đạt ý tưởng hơn và đưa ra các đề xuất khi chúng tôi gặp vấn đề.

Điều tôi thực sự quan tâm là phát triển phần mềm. Tôi có một số lượng lớn lập trình trong VBA và đã muốn học C # trong một thời gian (nhóm nhà phát triển sử dụng C # - thỉnh thoảng tôi xem lại mã vì lợi ích của mình nhưng chưa có kinh nghiệm thực tế nào khi sử dụng nó). Tôi không chỉ quan tâm đến quy trình kinh doanh mà còn cả khía cạnh kỹ thuật của mọi thứ, vì vậy vai trò BA truyền thống không thực sự làm tôi thèm ăn những thứ tôi muốn làm. Ngay bây giờ tôi có một vài dự án nhỏ mà các nhà quản lý đã giao cho tôi và tôi đang tìm những cách mới để thực hiện chúng (như xây dựng các ứng dụng Access tùy chỉnh), vì vậy có một chút ở đây và ở đó để khiến tôi quan tâm.

Câu hỏi của tôi là: điều tôi muốn làm là tạo các ứng dụng Excel hoặc Access tùy chỉnh cho các doanh nghiệp nhỏ như một doanh nghiệp tự do (làm việc như một cửa hàng một người; có thể có một nhà thầu thỉnh thoảng tùy thuộc vào độ phức tạp của dự án). Điều này rõ ràng sẽ bắt đầu như một công việc bán thời gian trong khi tôi có một công việc ban ngày, nhưng cuối cùng trở thành một công việc toàn thời gian. Tôi có đang tự lừa dối bản thân mình khi nghĩ rằng tôi có thể chuyển từ lập trình viên VBA BA / bán thời gian sang làm việc toàn thời gian cho một doanh nghiệp tự do (nơi tôi sẽ bắt đầu chỉ viết các ứng dụng Excel / Access tùy chỉnh trong VBA)? Hoặc loại điều này thường không được cố gắng cho đến khi ai đó có được nhiều năm kinh nghiệm lập trình toàn thời gian? Và thậm chí có một thị trường cho các loại ứng dụng này giữa các doanh nghiệp nhỏ (và có thể cả doanh nghiệp vừa) không?


3
Bây giờ bạn có thể đang trên đỉnh cao của sự nghiệp của bạn. Bạn có thể làm cùng một công việc với cùng một kỹ năng trong 5 năm mà không cần đọc sách. Nếu bạn là một lập trình viên, bạn sẽ bắt đầu từ dưới cùng của thang và trong 5 năm, thậm chí có thể không có thang !!! Đừng kết hợp sở thích với sự nghiệp. Tất nhiên bạn có thể là một lập trình viên nhưng hầu hết các lập trình viên trung bình làm gì sau 10 năm? Sống sót như một lập trình viên trong thị trường ngày nay và tiến lên là rất khó đối với người bình thường do sự cạnh tranh cao và những thách thức công nghệ liên tục.
NoChance

Tôi đồng ý rằng là một nhà phân tích kinh doanh và doanh nhân, tôi có khả năng tiếp tục tiến lên một vị trí cao hơn. Vấn đề là bạn càng đi cao, nói chung là càng xa công nghệ và triển khai bạn đang có. Tôi đã phỏng vấn một số công ty tư vấn cho các vị trí tư vấn quản lý trong lĩnh vực công nghệ, nhưng những loại vai trò này không thực sự khiến tôi quan tâm. Mục tiêu của tôi không phải là một lập trình viên thuần túy; thực tế tôi không có hứng thú làm việc như một dev để được thuê làm nhân viên, mà có một cửa hàng tư vấn nhỏ nơi tôi có thể giải quyết cả công việc kinh doanh và nhà phát triển.
Ryan

"Cửa hàng tư vấn nhỏ nơi tôi có thể giải quyết cả công việc kinh doanh và nhà phát triển" nghe có vẻ như quá nhiều rủi ro đối với tôi. Bạn thấy đấy, thị trường có đầy đủ các giải pháp sẵn có và rất nhiều công ty và nhà thầu sẵn sàng xây dựng các hệ thống với mức giá thấp nhất là 200 đô la trở xuống. Tôi không nghĩ rằng 'nhỏ' có thể tồn tại trong một thời gian dài với nền kinh tế và tốc độ thay đổi nhanh chóng trong công nghệ trừ khi bạn có chiến lược thu hút khách hàng và tập trung vào một công nghệ thay đổi chậm.
NoChance

7
@EmmadKareem, "không trộn lẫn sở thích với sự nghiệp" ... ý bạn là: đảm bảo rằng hầu hết cuộc đời thức giấc của bạn được dành để làm điều gì đó bạn không thích và khoảng 5% làm những gì bạn thích ... nghe có vẻ như kế hoạch tuyệt vời cho hạnh phúc (nhưng phải thừa nhận một kế hoạch chung)
JoelFan

4
@EmmadKareem, tôi nghĩ rằng có rất nhiều lập trình viên đã làm việc 10, 20 năm trở lên và hài lòng với sự nghiệp của họ
JoelFan

Câu trả lời:


15

Không, bạn không ảo tưởng về bản thân, nó có thể được thực hiện! Một trong những người ở đây đã làm điều đó, mặc dù tôi không biết chi tiết về cách thức nhưng tôi nghĩ anh ta bắt đầu với tư cách là người bảo lãnh, trở thành một BA để bảo lãnh phát triển phần mềm liên ngành, sau đó bằng cách nào đó chuyển sang phát triển toàn thời gian. Tôi đoán rằng anh ta đã có một nền tảng kỹ thuật, giống như bạn.

Nó có thể hoạt động tốt hơn nếu bạn cố gắng làm điều đó trước với chủ nhân hiện tại của bạn hơn là đi một mình. Bạn sẽ có nhiều sự hỗ trợ và giúp đỡ hơn. Có thể nói chuyện với người quản lý của bạn và hỏi làm thế nào bạn có thể chuyển sang vai trò phát triển trong tổ chức, có thể trong cùng một nhóm để bắt đầu. Bằng cách đó bạn đã biết tất cả mọi người và họ biết bạn và những gì bạn đã có khả năng và có thể giúp đào tạo bạn hơn nữa. Nếu bạn thực sự thực sự may mắn, công ty của bạn sẽ có ngân sách để gửi cho bạn các khóa học để bắt kịp nhanh hơn nữa.


2
Tôi chỉ lặp lại rằng nó chắc chắn có thể được thực hiện - ở vị trí trước đó, tôi đã làm việc với một nhà thầu đã làm chính xác điều đó. Anh bắt đầu tạo các ứng dụng Access cho một công ty từ vai trò không phải là nhà phát triển, sau đó trở thành một nhà tư vấn bên ngoài cho họ, và cuối cùng đã chuyển nó sang công việc kinh doanh của riêng mình và dường như đang hoạt động khá tốt.
bunglestink

4

VBA và Access là đáy của thang lập trình. Nếu tôi là bạn, tôi sẽ bắn cao hơn vì bạn có kỹ năng SQL. Xem xét việc học Dịch vụ báo cáo SQL Server và tạo báo cáo hoặc SSIS và thực hiện xử lý ETL. Đó là những kỹ năng có nhu cầu khá cao ngay bây giờ và bạn hoàn toàn có thể thực hiện chúng vì chúng có thể tương đối dễ dàng khi ở trong môi trường công ty, đặc biệt nếu bạn không có ai khác đảm nhiệm các vai trò đó cho công ty của bạn. Tôi sẽ thấy kinh nghiệm phân tích kinh doanh là một điểm cộng rất lớn cho một người viết báo cáo.


2

Nó có thể được thực hiện. Sẽ không dễ dàng gì, đặc biệt nếu bạn muốn giỏi về nó, vì phát triển phần mềm là một ngành kỹ thuật với những vấn đề không rõ ràng và những cạm bẫy bạn sẽ cần học cách nhận ra và tránh. Điều đó sẽ mất một vài năm nghiên cứu và thực hành nghiêm túc, nhưng nếu bạn có thể xoay quanh các khái niệm, bạn chắc chắn có thể trở thành một lập trình viên ngay cả khi nền tảng của bạn có gì đó khác biệt.


Bất kỳ khóa học khuyến nghị? Tôi là người tự học hơn, vì vậy hiện tại tôi đang đăng ký một số phần mềm học tập của MIT (Giới thiệu về Comp Sci) sử dụng Python làm ngôn ngữ giảng dạy, chủ yếu để tôi có thể tìm hiểu một số lý thuyết lập trình vững chắc và suy nghĩ nhiều hơn về dòng của một lập trình viên. Đồng thời tiếp tục mở rộng kiến ​​thức Excel / Access / VBA của tôi thông qua các dự án thực tế tại nơi làm việc.
Ryan

@Ryan Bạn đang ảo tưởng về một điều: không có lý thuyết lập trình vững chắc. Lập trình là một nghề rất non nớt (craft là từ thích hợp!) - nó thực sự quá trẻ. Các lập trình viên đọc rất nhiều sách, nhưng các cuộc cách mạng trong lĩnh vực này xảy ra quá nhiều tháng. Điều đó có nghĩa là thái độ học tập là điều kiện tiên quyết duy nhất :)
K.Steff

1
@Ryan: Tôi chủ yếu là tự học. "Khóa học" của tôi là "chương trình này thật tệ. Tôi có thể làm điều này và làm nó tốt hơn tác giả đã làm. Vậy hãy xem, tôi đã có một trình biên dịch, bây giờ tôi phải bắt đầu triển khai các tính năng như thế nào?"
Mason Wheeler

2

Cho dù sẽ mất nhiều năm hay nhiều năm tùy thuộc vào bạn, lịch trình của bạn, nhưng quan trọng nhất là mức độ quan tâm của bạn có xu hướng gắn liền với năng khiếu. Nếu bạn tình cờ sống hoặc làm việc trong thành phố và có tùy chọn đi lại hàng loạt, hãy lấy nó và sử dụng thời gian đi lại tích hợp đó để đọc sách công nghệ. Bất cứ điều gì mà bạn quan tâm.

Theo như sự táo bạo trong suy nghĩ bạn có thể, đừng đổ mồ hôi. Quyết định rằng bạn có thể có thể xử lý <chèn đống phức tạp không thể biết được ở đây> là những gì các nhà phát triển làm. Đó không phải là sự kiêu ngạo, đó chỉ là bước đầu tiên.

Kiêu ngạo trong đất phát triển đang tự gọi mình là một nhà phát triển chuyên nghiệp khi bạn có một giải pháp cho mọi thứ và bạn chưa học được điều gì mới kể từ khi học đại học. Đó là sự cọ xát với sự phát triển. Khi bạn ngừng học hỏi, sự nghiệp của bạn bắt đầu xuống dốc, vì vậy sự quan tâm là loại chìa khóa. Âm thanh như bạn có đó.

Vì vậy, đi cho nó.

Bạn đã có mục tiêu trong tầm nhìn của bạn. Phần còn lại đang phá vỡ những vấn đề đáng sợ lớn thành những vấn đề không đáng sợ. Lặp lại quảng cáo và bạn sẽ là nhà phát triển toàn thời gian có trả tiền, mong muốn có nhiều vấn đề lớn hơn / đáng sợ hơn trước đây thường xảy ra sớm hơn bạn nghĩ.


Quan sát bên: sự kiêu ngạo là hữu ích trong giai đoạn đầu. Nếu tôi biết lập trình thực sự là gì khi tôi bắt đầu, có lẽ tôi đã bỏ cuộc hai giờ sau 'thế giới xin chào'.
K.Steff

1

Tôi muốn nói (nếu bạn muốn khởi động mọi thứ) hãy đi với SICP - Cấu trúc và diễn giải các chương trình máy tính. Tôi nên liên kết với nó, nhưng nó không chỉ là một cuốn sách; ngày nay bạn cũng có thể tìm thấy những người khác để học khóa học trực tuyến. Đó là một cuốn sách thực sự khó khăn - hoàn thành tất cả các bài tập là điều mà hầu hết các nhà phát triển không thể làm (thật không may), nhưng đó là cuốn sách tốt nhất hiện có. MIT OCW cũng tốt, nhưng IMHO là phiên bản rút gọn của SICP để lập trình. Python được thiết kế để che giấu sự phức tạp, thay vì khiến bạn thích nó theo cách bệnh hoạn (như SICP làm).

Ngoài ra, bạn cần phân biệt giữa lập trình như một nghề, và lập trình là một kỹ năng. Một yêu cầu sự cống hiến cho những thứ như mã đẹp, sạch và có thể mở rộng, trong khi cái còn lại không đòi hỏi gì ngoài kỹ năng thuật toán (thực tế là khá nhiều). 'Nhà độc tài nhân từ' của Python, Guido van Rossum, lập luận rằng lập trình sẽ là một kỹ năng thiết yếu trong những năm tới, nhưng trong mọi trường hợp, kỹ năng phát triển phần mềm sẽ không còn nữa. Hầu hết những người không phải là nhà phát triển viết mã để vứt nó đi (nhà phát triển cũng thường xuyên làm điều này). Vấn đề là lập trình như một nghề nghiệp bao gồm nhiều thứ hơn là lập trình và điều quan trọng là phải làm rõ các ưu tiên của bạn.

Quan trọng nhất: Hãy chắc chắn yêu thích lập trình, không chỉ thích nó. Đó là hơn 9 đến 5 công việc, đó là để nắm lấy triết lý không ngừng học hỏi : hầu hết các kỹ sư được đào tạo trong thời gian BS hoặc MSc của họ và không thấy sự thay đổi đáng kể trong lĩnh vực chuyên môn của họ. Sự nghiệp lập trình trọn đời sẽ khiến bạn thấy ít nhất 10 sự thay đổi mô hình (không chỉ ngôn ngữ, mà cả công cụ, DB, v.v.), vì vậy bạn tốt hơn nên sẵn sàng (và sẵn sàng) chấp nhận điều này.


+1 cho "triết lý không ngừng học hỏi". Lập trình phần lớn là học tập và cải thiện mỗi ngày. Nếu bạn thích làm 2 việc đó thì có lẽ bạn sẽ có trải nghiệm tốt và thành công.
B Bảy

1

Tôi nghĩ rằng bạn đang ở một vị trí tốt để thực hiện điều này.

Hầu hết sự nghiệp của tôi, tôi đã gắn bó sâu sắc trong khía cạnh kỹ thuật của mọi thứ, tuy nhiên, qua nhiều năm quan sát nhiều dự án thành công hay thất bại tôi đã đi đến kết luận: -

Nếu bạn không hiểu người dùng doanh nghiệp của mình và yêu cầu cao hơn, dự án của bạn sẽ thất bại.

Tôi chưa bao giờ thấy một ngoại lệ cho quy tắc này và không có số tiền, phần cứng hay thiên tài lập trình dường như tạo ra bất kỳ sự khác biệt nào. Các dự án thực sự với sự hiểu biết tốt về các yêu cầu có thể thất bại do phần cứng, phần mềm được chọn kém, thiếu ngân sách hoặc thiếu kỹ năng - nhưng đối với hầu hết các dự án này có thể hoặc đã được giải cứu.

Vì vậy, nền tảng tốt của bạn trong BA và các yêu cầu sẽ cho bạn một viễn cảnh mà một số trường cao đẳng công nghệ tài năng hơn của bạn có thể thiếu, phần còn lại bạn có thể học.

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.