Emploi actuel: travail comme analyste d'affaires principal pour un Big 4 cabinet, dirige une équipe de développeurs et testeurs travaillent sur un grand projet de restructuration à l'échelle de plate-forme (4 dev onshore, 4 devs en mer, plusieurs testeurs onshore/offshore). également à une capacité similaire sur d'autres petits projets.
Étendue de mon rôle: Collecte/écriture des exigences, la création de spécifications fonctionnelles, la conception de l'interface utilisateur (essentiellement la cartographie de tous les aspects frontaux du système), travaillant en étroite collaboration avec les développeurs de communiquer/clarifier les exigences et trouver des solutions quand nous avons atteint des barrages routiers , l'écriture des cas de test (et faire beaucoup de tests), en collaboration avec la haute direction et les principaux intervenants, la gestion des bêta-testeurs, la création de guides de l'utilisateur et menant des séances de formation, soutien technique clé.
Je vous écris également quelques macros dans Excel à l'aide VBA (plusieurs de mes macros sont maintenant utilisées dans l'entreprise dans son ensemble, donc il y a peut-être environ 1000 personnes qui les utilisent) et l'utilisation de SQL sur une base quotidienne, à la fois sur les fichiers compacts SQL le programme repose sur, nos données SQL Server et les bases de données Access que je crée. Les développeurs pensent que je suis assez bon dans ce rôle parce que je comprends beaucoup sur la programmation, les limites inhérentes au système, la structure des bases de données, etc donc il est plus facile pour moi de communiquer des idées et faire des suggestions quand nous sommes confrontés à des problèmes.
Ce qui intéresse vraiment moi le développement de logiciels. Je fais un montant juste de la programmation en VBA et ont eu envie d'apprendre C # pendant un certain temps (l'équipe de développement utilise C # - I Code d'examen de temps en temps pour moi-même, mais n'a pas eu une expérience pratique de l'utiliser). Je suis intéressé non seulement le processus d'affaires, mais aussi du côté technique des choses, de sorte que le rôle traditionnel de BA n'a pas vraiment mon appétit pour aiguiser le genre de choses que je veux faire. En ce moment j'ai quelques petits projets que les gestionnaires me ont donné et je trouve de nouvelles façons de les faire (comme la construction d'applications d'accès personnalisé), donc il y a un peu ici et là pour me garder intéressé.
Ma question est la suivante: ce que je voudrais faire est de créer des applications personnalisées Excel ou Access pour les petites entreprises en tant qu'entreprise indépendante (travaillant comme un guichet homme, peut-être avoir un entrepreneur de temps en temps en fonction de la complexité d'un projet). Ce serait évidemment au départ comme une entreprise à temps partiel alors que j'ai un travail de jour, mais finalement devenir un emploi à temps plein. Suis-je me leurrer à penser que je peux aller de BA/à temps partiel programmeur VBA pour faire un aller à temps plein d'une entreprise indépendante (où je partirai sur Excel/seulement l'accès à l'écriture d'applications personnalisées en VBA)? Ou est-ce genre de chose généralement pas retenté jusqu'à gains quelqu'un années d'expérience en programmation à temps plein? Et il est même un marché pour ces types d'applications parmi les petites entreprises (et peut-être moyennes entreprises)?
Non, vous ne vous trompez pas, ça peut être fait! L'un des gars ici a fait que, bien que je ne connaisse pas les détails de la façon dont mais je pense qu'il a commencé comme un souscripteur, est devenu un BA pour le développement de logiciels interal de la souscription, puis est passé en quelque sorte dans le développement à temps plein. Je devinerais qu'il avait déjà eu un historique technique, comme vous le faites.
Cela pourrait fonctionner mieux si vous essayez de le faire d'abord avec votre employeur actuel que le faire en solo. Vous auriez beaucoup plus de soutien et d'aide. Parlez peut-être à votre responsable et demandez comment vous pouvez passer à un rôle de développement au sein de l'organisation, probablement sur la même équipe pour commencer. De cette façon, vous connaissez déjà tout le monde et ils vous connaissent et ce que vous êtes déjà capable de vous aider à vous entraîner davantage. Si vous êtes vraiment vraiment vraiment Lucky, votre entreprise disposera d'un budget de vous envoyer sur des cours pour rattraper encore plus vite .
VBA et Access sont le bas de l'échelle de programmation. Si j'étais vous, je tirais plus haut depuis que vous avez des compétences SQL. Envisagez d'apprendre des services de rapports SQL Server et de créer des rapports ou des SSI et faire le traitement de l'ETL. Ce sont des compétences à une demande assez élevée en ce moment et vous êtes bien placé pour les faire car ils peuvent être relativement faciles à entrer dans un environnement d'entreprise, surtout si vous n'avez personne d'autre qui gère actuellement ces rôles pour votre entreprise. Je verrais une expérience d'analyste des affaires comme un énorme Plus pour un écrivain de rapport.
Ça peut être fait. Ce ne sera pas facile, surtout si vous voulez bien y avoir du bien, car le développement logiciel est une discipline d'ingénierie avec des problèmes et des pièges non évidents, vous devez apprendre à reconnaître et à éviter. Cela prendra quelques années d'études et de pratiques sérieuses, mais si vous pouvez envelopper votre tête autour des concepts, vous pouvez certainement devenir un programmeur même si votre arrière-plan est dans quelque chose de différent.
Qu'il faudra des années ou une année en grande partie à vous, votre emploi du temps, mais surtout votre niveau d'intérêt qui a tendance à être liée à des aptitudes. Si vous vivez ou travaillez dans une ville et que vous avez la possibilité de traduire en masse, prenez-la et utilisez ce temps de trajet intégré pour lire des livres technologiques. Tout ce qui vous intéresse.
En ce qui concerne l'audace de penser que vous pouvez, ne le transpirez pas. Décidez que vous puissiez probablement gérer cela <insérer un tas de complexité inconnu ici> est ce que font les Devs. Ce n'est pas une arrogance, il suffit de prendre la première étape.
Arrogant in Developer Land vous appelle un développement professionnel lorsque vous avez une solution pour tout et vous n'avez rien appris de nouveau depuis le collège. C'est le frottement avec le développement. Lorsque vous arrêtez d'apprendre votre carrière commence à descendre, de sorte que l'intérêt est une sorte de clé. On dirait que tu as ça.
Alors allez-y.
Vous avez votre cible en vue. Le reste enfreint les gros problèmes effrayants en peu de choses non aussi effrayantes. Répétez l'annonce Nauseum et vous serez un développeur à temps plein payé qui souhaite qu'il y avait des problèmes plus gros/plus effrayants qu'il n'y avait plus tôt que vous pourriez penser.
Je dirais (si vous voulez lancer des choses) aller avec SICP - structure et interprétation des programmes informatiques. Je devrais me lier, mais c'est plus qu'un livre; De nos jours, vous trouverez également d'autres personnes pour étudier le cours avec en ligne. C'est un livre vraiment difficile - complétant tous les exercices est quelque chose que la plupart des développeurs ne peuvent pas faire (malheureusement), mais c'est le meilleur livre disponible. MIT OCW est également bon, mais IMHO c'est une version arrosée de SICP pour la programmation. Python est conçu pour cacher la complexité, plutôt que de vous faire profiter de manière malade (comme le fait SICP).
De plus, vous devez faire la distinction entre la programmation en tant que profession et programmer comme compétence. On exige de dévouement à des choses comme un code magnifique, propre et extensible, tandis que l'autre ne nécessite que des compétences algorithmiques (ce qui est beaucoup, en fait). Le "dictateur bienveillant" de Python, Guido Van Rossum, affirme que la programmation sera une compétence essentielle dans les années à venir, mais les compétences de développement de logiciels ne seront en aucun cas. La plupart des non-développeurs écrivent du code pour le jeter (les développeurs font cela souvent aussi). La chose est la programmation en tant que carrière inclut beaucoup plus de choses que la programmation et il est important de respecter vos priorités.
le plus important: assurez-vous de Love Programmation, pas tout simplement comme ça. C'est plus d'un travail de 9 à 5, il faut embrasser la constante -Learning philosophie: La plupart des ingénieurs sont formés lors de leur BS ou MSC et ne voient pas de changement significatif dans leur domaine d'expertise. Une carrière tout au long de la vie dans la programmation vous fera voir au moins 10 changements de paradigme (pas seulement des langues, mais des outils, des DBS, etc.), vous feriez donc mieux d'être prêt (et bien) d'accepter cela.
Je pense que vous êtes dans une bonne position pour y aller.
La majeure partie de ma carrière, je suis profondément intégrée du côté technique des choses, cependant, sur des années d'observation de nombreux projets réussir ou d'échouer à la conclusion: -
Si vous ne comprenez pas vos utilisateurs de votre entreprise et vos exigences de votre projet échouera.
Je n'ai jamais vu une exception à cette règle et aucune somme d'argent, de matériel ou de programmation génie semble faire de la différence. Les vrais projets avec une bonne compréhension des exigences peuvent échouer en raison du matériel, des logiciels, du manque de budget ou du manque de compétences mal choisies - mais pour la plupart de ces projets peuvent être sauvés ou auraient pu être sauvés.
Donc, votre bonne mise à la terre en BA et vos exigences vous donneront une perspective Certains de vos collèges techniques plus doués pourraient manquer, le reste que vous pouvez apprendre.