Emploi actuel: Travailler en tant qu'analyste commercial principal pour une entreprise Big 4, dirigeant une équipe de développeurs et de testeurs travaillant sur un projet de reformatage à grande échelle (4 développeurs onshore, 4 développeurs offshore, plusieurs testeurs onshore / offshore). Travaillez également dans une capacité similaire sur d'autres projets à plus petite échelle.
Étendue de mon rôle: rassembler / rédiger des exigences, créer des spécifications fonctionnelles, concevoir l'interface utilisateur (cartographier essentiellement tous les aspects frontaux du système), travailler en étroite collaboration avec les développeurs pour communiquer / clarifier les exigences et trouver des solutions lorsque nous rencontrons des obstacles. , rédaction de cas de test (et réalisation d'une grande partie des tests), collaboration avec la haute direction et les principales parties prenantes, gestion des bêta-testeurs, création de guides d'utilisation et animation de sessions de formation, fourniture d'un support technique clé.
J'écris également quelques macros dans Excel en utilisant VBA (plusieurs de mes macros sont maintenant utilisées dans toute l'entreprise, donc il y a peut-être environ 1000 personnes qui les utilisent) et j'utilise SQL quotidiennement, à la fois sur les fichiers compacts SQL du programme s'appuie sur nos données SQL Server et toutes les bases de données Access que je crée. Les développeurs estiment que je suis assez bon dans ce rôle parce que je comprends beaucoup de choses sur la programmation, les limitations système inhérentes, la structure des bases de données, etc. il est donc plus facile pour moi de communiquer des idées et de faire des suggestions lorsque nous rencontrons des problèmes.
Ce qui m'intéresse vraiment, c'est le développement de logiciels. Je fais pas mal de programmation en VBA et je veux apprendre le C # depuis un certain temps (l'équipe de développement utilise C # - je passe en revue le code de temps en temps pour moi-même mais je n'ai aucune expérience pratique de son utilisation). Je m'intéresse non seulement au processus commercial, mais aussi au côté technique des choses, donc le rôle traditionnel de BA ne me met pas vraiment en appétit pour le genre de choses que je veux faire. En ce moment, j'ai quelques petits projets que les gestionnaires m'ont donnés et je trouve de nouvelles façons de les faire (comme la création d'applications Access personnalisées), donc il y a un peu ici et là pour me garder intéressé.
Ma question est la suivante: ce que je voudrais faire, c'est créer des applications Excel ou Access personnalisées pour les petites entreprises en tant qu'entreprise indépendante (travailler comme un seul homme; peut-être avoir un entrepreneur occasionnel en fonction de la complexité d'un projet). Cela commencerait évidemment comme une entreprise à temps partiel pendant que j'ai un emploi de jour, mais deviendrait finalement un emploi à temps plein. Suis-je en train de me tromper en pensant que je peux passer d'un programmeur BA / VBA à temps partiel à une entreprise à plein temps (où je commencerais simplement à écrire des applications Excel / Access personnalisées dans VBA)? Ou ce genre de chose n'est-il pas habituellement tenté jusqu'à ce que quelqu'un acquière des années d'expérience en programmation à temps plein? Et existe-t-il même un marché pour ces types d'applications parmi les petites entreprises (et peut-être les moyennes)?
la source
Réponses:
Non, vous ne vous trompez pas, c'est possible ! L'un des gars ici a fait cela, bien que je ne sache pas comment, mais je pense qu'il a commencé en tant que souscripteur, est devenu BA pour la souscription de logiciels internes, puis est passé d'une manière ou d'une autre au développement à temps plein. Je suppose qu'il avait déjà une formation technique, comme vous.
Cela pourrait mieux fonctionner si vous essayez de le faire d'abord avec votre employeur actuel que de le faire en solo. Vous auriez beaucoup plus de soutien et d'aide. Peut-être parlez-en à votre responsable et demandez-vous comment vous pourriez passer à un rôle de développement au sein de l'organisation, probablement dans la même équipe pour commencer. De cette façon, vous connaissez déjà tout le monde et ils vous connaissent et ce dont vous êtes déjà capable et peuvent vous aider à vous former davantage. Si vous êtes vraiment vraiment très chanceux, votre entreprise aura un budget pour vous envoyer des cours pour rattraper son retard encore plus rapidement.
la source
VBA et Access est le bas de l'échelle de programmation. Si j'étais vous, je tirerais plus haut car vous avez des compétences SQL. Pensez à apprendre SQL Server Reporting Services et à créer des rapports ou SSIS et à effectuer le traitement ETL. Ce sont des compétences très demandées en ce moment et vous êtes bien placé pour les faire car elles peuvent être relativement faciles à acquérir dans un environnement d'entreprise, surtout si personne d'autre ne gère actuellement ces rôles pour votre entreprise. Je considère l'expérience des analystes commerciaux comme un énorme avantage pour un rédacteur de rapport.
la source
Ça peut être fait. Ce ne sera pas facile, surtout si vous voulez vous perfectionner, car le développement logiciel est une discipline d'ingénierie avec des problèmes et des pièges non évidents que vous devrez apprendre à reconnaître et à éviter. Cela prendra quelques années d'étude sérieuse et de pratique, mais si vous pouvez vous concentrer sur les concepts, vous pouvez certainement devenir programmeur même si votre expérience est différente.
la source
Que cela prenne des années ou des années dépend en grande partie de vous, de votre emploi du temps, mais surtout, de votre niveau d'intérêt qui a tendance à être lié à l'aptitude. Si vous vivez ou travaillez dans une ville et que vous avez la possibilité de vous déplacer en masse, prenez-le et utilisez ce temps de trajet intégré pour lire des livres techniques. Tout ce qui vous intéresse.
En ce qui concerne l'audace de penser, ne le faites pas transpirer. Décider que vous pourriez probablement gérer cette <insérer un tas inconnu de complexité ici> est ce que font les développeurs. Ce n'est pas de l'arrogance, c'est juste un premier pas.
Arrogant dans le pays des développeurs, vous vous appelez un développeur professionnel lorsque vous avez une solution pour tout et que vous n'avez rien appris de nouveau depuis le collège. C'est le hic avec le développement. Lorsque vous arrêtez d'apprendre, votre carrière commence à décliner, l'intérêt est donc un élément clé. On dirait que vous avez ça.
Alors foncez.
Vous avez votre cible en vue. Le reste divise les gros problèmes effrayants en petits problèmes pas si effrayants. Répétez ad nauseum et vous serez un développeur à plein temps rémunéré qui souhaite qu'il y ait plus de problèmes plus gros / plus effrayants qu'auparavant plus tôt que vous ne le pensez.
la source
Je dirais (si vous voulez démarrer les choses) aller avec SICP - Structure et interprétation des programmes informatiques. Je devrais y faire un lien, mais c'est plus qu'un simple livre; de nos jours, vous pouvez également trouver d'autres personnes pour étudier le cours en ligne. C'est un livre vraiment difficile - terminer 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 à mon humble avis, c'est une version édulcorée de SICP pour la programmation. Python est conçu pour cacher la complexité, plutôt que de vous en faire profiter d'une manière malade (comme le fait SICP).
En outre, vous devez faire la distinction entre la programmation en tant que profession et la programmation en tant que compétence. L'un nécessite de se consacrer à des choses comme un code beau, 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, fait valoir que la programmation sera une compétence essentielle dans les années à venir, mais les compétences en développement de logiciels ne le seront pas, en tout cas. La plupart des non-développeurs écrivent du code pour le jeter (les développeurs le font aussi souvent). Le fait est que la programmation en tant que carrière comprend beaucoup plus de choses que la programmation et il est important de définir vos priorités.
Le plus important: assurez-vous d' aimer la programmation, pas seulement comme ça. C'est plus qu'un travail de 9 à 5, c'est embrasser la philosophie d'apprentissage constant : la plupart des ingénieurs sont formés pendant leur BS ou MSc et ne voient pas de changement significatif dans leur domaine d'expertise. Une carrière à vie dans la programmation vous fera voir au moins 10 changements de paradigme (pas seulement des langues, mais des outils, des bases de données, etc.), donc vous feriez mieux d'être prêt (et disposé) à l'accepter.
la source
Je pense que vous êtes bien placé pour vous en sortir.
La majeure partie de ma carrière, j'ai été profondément ancrée dans le côté technique des choses, cependant, au fil des années d'observation de nombreux projets réussis ou échoués, je suis arrivé à la conclusion: -
Si vous ne comprenez pas vos utilisateurs professionnels et leurs exigences, votre projet échouera.
Je n'ai jamais vu d'exception à cette règle et aucune somme d'argent, de matériel ou de génie de la programmation ne semble faire la moindre différence. De vrais projets avec une bonne compréhension des exigences peuvent échouer en raison de matériel, de logiciels, d'un manque de budget ou de compétences mal choisis - mais pour la plupart, ces projets peuvent ou auraient pu être sauvés.
Ainsi, votre bonne connaissance du BA et de vos exigences vous donnera une perspective sur laquelle certains de vos collèges de techniciens les plus doués pourraient manquer, le reste que vous pouvez apprendre.
la source