à la maison, je travaille sur un grand projet personnel écrit en Java. J'ai récemment trouvé un emploi en tant que développeur C #. P>
Après une journée de travail de 8 heures de lecture C # Code, je trouve qu'il est très difficile de revenir à Java à la maison. En fait, mon projet à domicile s'est calmé presque complètement depuis que j'ai été employé. P>
Au début, je pensais que je devrais attendre que des vacances retournent réellement à Java, mais même après une semaine de ne pas avoir C # sur le cerveau, je n'ai pas réussi à entrer à nouveau à Java-Mood. Je ne veux pas admettre que mon projet à domicile est mort, mais je ne peux pas vraiment voir un moyen de surmonter cette question. P>
14 Réponses :
Si c'est si mauvais, pouvez-vous recommencer le projet en C #? Il peut être plus rapide que d'attendre que votre ambiance Java-humeur revienne. Il devrait être plus rapide que de commencer à partir de zéro, car vous avez déjà codé la logique et le domaine déjà, vous pourrez donc être capable de traduire - et de saisir votre chemin à travers ce bit. p>
Possible, mais en plus du temps nécessaire pour porter le code existant, je ne veux pas non plus démissionner i>
@MAFUTRCT: Exactement, "Vous ne changez pas de chevaux en médiane!" (mais sérieusement, pourquoi ne pas penser à cela comme un signe RE (DE) au lieu d'une démission)
Si (java_mood) {workinjava (); } else {if (want_to_continue_project) {commutateur (); } else {admettre (isdead (projet)); }}
Ok, alors les commentaires ne peuvent pas être formatés: - |
Java_Mood semble plus semblable à une énumération qu'un booléen. Ne devrait-il pas être si (in_a_java_mood) ...
Probablement devrait. Peut-être préférable de penser cela comme pseudo-code ...
Il s'avère qu'il ne me fallut que 20 heures pour traduire 90% du code (115 Ko). Je n'aime pas cette solution mais Hey, au moins le projet ne meurt pas. Et je connais mieux C # mieux.
Utilisez un bon (et comparable) IDE dans les deux. Je passe entre C # et Java et trouvez la combinaison de Visual Studio avec Jetbrains Resharper pour C # et Intellij Idea pour Java rend cette simple. P> Li>
Célébrez les différences - je trouve un sort en C # aide ma Java et vice versa. Différences dans, par exemple, les cadres de collecte vous aident simplement à comprendre les implémentations dans chaque langue plus profondément. P> li>
Utilisez les similitudes avec votre avantage. Syntaxiquement, les différences ne sont pas formidables. Vous devriez écrire du code, ne pas écrire C # ou écrire Java. Comme Steve McConnell le mettrait, "Code dans strong> la langue et non dans strong> la langue" (ou quelque chose comme ça - pense que c'est de code complet em> ). P> li>
ol>
En fait, lisez code complet em> si vous n'avez pas déjà - une excellente formation pour passer des langues. strong> p> p>
Je ne suis pas sûr que cela m'empêche d'essayer d'utiliser l'API Java en PHP: P
J'ai vraiment besoin de creuser mon code complet, c'est au bas d'une pile de livres. Je n'ai pas lu le passé comme les premières pages, lol.
@Aiden: Je pense qu'il voulait dire chercher des similitudes de syntaxe. Je me suis retrouvé en utilisant environ 3 à 5 langues dans une semaine d'une semaine. C #, C ++, PHP, etc.
Je suppose que vous pouviez appeler cela le temps habituel Il peut aider à généraliser à: Connaissances de la logique de programmation forte> + Les êtres humains sont des créatures d'habitude et crée des méthodes de travail efficaces, des mémoires et une psychologie basées sur des environnements et des tâches que nous effectuons le plus souvent. C'est une bonne chose. P>
J'ai récemment passé beaucoup de temps de programmation à Python, après avoir été presque 100% c pendant une longue période. J'ai ramassé Python assez facilement et je passe maintenant à C. à ma J'ai conclu que c'est parce que: p>
Je suppose que l'astuce est de Relate de nouvelles compétences aux anciennes compétences fortes> de sorte que lorsque vous effectuez des tâches dans la nouvelle compétence, votre cerveau pense toujours aux anciennes compétences et à la manière dont elles sont liées. De nombreuses théories que l'apprentissage repose sur cette fondation relationnelle dans votre esprit et en sachant que cela peut vous aider à réduire la courbe d'apprentissage et le temps de récupération. P>
pense à cela comme une base de données relationnelle. Lorsque vous faites quelque chose de nouveau, créez une clé forign et normaliser les choses. Ne créez pas une nouvelle table ou une nouvelle base de données. P>
Apprenez une
La commutation entre deux cadres différents est très difficile à faire. C'est encore plus difficile si tu ne les faisais pas très longtemps. p>
La question, je pense, doit vous revenir en ce que vous devriez vous demander ce que vous préférez maintenant. Si vous aimez toujours Java et que vous voulez garder vos compétences en Java, vous devrez probablement passer plus de temps avec elle à une base semestrielle. Travailler avec elle les nuits et les week-ends et s'assurer qu'il n'y a pas de longues pauses entre. P>
Si vous préférez C # maintenant et que vous n'avez vraiment aucun intérêt à persuader Java, je convertirais le projet à la maison en C #, car cela ne peut que vous faire un meilleur programmeur C # et vous rendre meilleur au travail de votre journée. p>
Je me demande si cela est lié aux similitudes entre ces langues particulières. Accordé que je n'ai pas réellement utilisé C #, mais cela semble assez semblable à Java. Les similitudes pourraient rendre difficile à passer du contexte du travail pour passer du passe-temps. Peut-être que vous pourriez apprendre et passer à python , Haskell , Lisp a>, etc. pour votre projet personnel. P>
Je pensais la même chose. Je parie qu'il n'y aurait pas autant de confusion s'ils n'étaient pas à la fois des langues de style C. J'ai trouvé le même problème de descendre avec C ++ à C #.
Vous pouvez essayer de dépenser une programmation de temps dans une langue complètement différente pendant votre temps libre. Par exemple, écrivez quelque chose dans HASKELL , prolog , Mercury a>, oz ou facteur . P>
Quand (si?) Vous revenez à Java, ses similitudes à c # seront beaucoup plus frappantes que ses différences. P>
J'ai une chose similaire au travail. J'écris du code dans JavaScript et C # mais à la maison, je répète le code à Python et JavaScript. p>
Je me suis parfois attrapé en écriture de code de style python en C #, puis à faire échouer mes tests. Je suis d'accord avec NAT qui travaillant dans une langue totalement différente de votre langue de travail vous aidera à voir les similitudes et qu'elles seules les différences seront les mêmes que les bibliothèques existent! P>
Je pense que Java est pour le diligent et .net est pour le paresseux. Peut-être que quelqu'un serait en colère pour ça, mais je veux dire que je suis un .neter. La syntaxe .NET est moins stricte que le fait Java's.in fait dans le code source de .NET, il y a un peu simplifier. Par exemple, nous pouvons utiliser Convert.TodateTime (String) pour convertir une chaîne en DateTime directement. Mais en Java, nous devrions faire la difiition du format de la chaîne telle que "AAAA-DD-MM", puis nous pouvons convertir. P>
.NET vous donne un choix. DateTime.parseexact ("AAA-DD-MM") fait une conversion de format exacte.
Une autre façon de dire que Java est pour le répétitif, .NET est pour l'efficacité :)
En outre, comment se rapporte-t-il à la question initiale? Dites-vous que le gars est paresseux?
Premièrement, si vous avez mis en place une programmation de 8 heures dans n'importe quelle langue, il peut ne pas changer les langues que pour avoir besoin d'une pause de la programmation. Je ne peux parler que pour moi-même et je sais que certains So'ers peuvent se sentir autrement, mais j'ai souvent besoin d'une pause de la programmation après une journée de travail complète de le faire. P>
Actuellement, je préfère programmer en Python, mais mon travail veut que je fasse des scripts Shell, Java, JavaScript, PHP et IDL (c'est une langue de données interactive, pas l'interface Description Language). Donc, j'essaie de faire du python à la maison pour garder ces compétences d'atrophie. Ce que je trouve (en plus de avoir besoin souvent d'une pause mentionnée ci-dessus), c'est que je reçois beaucoup mes langues sont confuses lorsque je passe d'abord d'un à l'autre. Il est facile à ce point d'abandonner, mais je trouve que, comme je me profite mentalement de la programmation avec une langue donnée, je fais moins d'erreurs de la confusion linguistique. Donc, peut-être que si vous pouvez simplement pousser après cette première réticence à utiliser Java, vous aurez du succès. YMMV, bien sûr, et bonne chance! P>
C'est à cause de quelque chose de psychologie appelé l'effet d'interférence ou l'effet de la streopt. Les deux tâches sont étroitement liées (programmation) afin que les connaissances apportées dans votre esprit par une langue interfère avec les connaissances apportées dans votre esprit par l'autre langue. p>
Voici un exemple mignon d'une tâche simple qui est difficile à faire à cause de cet effet: P>
c'est normal. C'est peut-être un problème de flexibilité cognitive et inflexibilité em> strong>. Cela arrive aussi avec le discours humain. P>
Vérifiez-vous. Si vous vous fatiguez trop de travailler à la maison après votre journée de travail habituelle Il y a des exercices pour vous garder cognitif flexible. L'un d'entre eux est de passer un moment (quelques minutes) à Java au lieu de dépenser autant de temps en C #. C'est comme si vous programmez en Java et devez passer à SQL, puis sur HTML. Vous êtes flexible et basculant. P>
bonne chance. P>
Ça a l'air intéressant. Un court interrupteur mental, ne pas être productif, mais pour garder l'esprit agile.
Votre cerveau est plein. P>
cerveau complet http://img146.imageshack.us/img146/2469/bainfull.gif p>
Comme je réponds à cela, je pense que je dois faire des hypothèses ici en fonction de l'expérience personnelle. J'écris du code en C ++ ou C # sur des projets latéraux au travail, je suis obligé de pendre entre PHP et Python Il y avait un temps où j'étais sans emploi d'une journée constante et je suis passé assez occupé sur des projets latéraux. P>
Quand j'ai atterri mon travail de jour, l'enthousiasme que j'ai eu pour mes projets latéraux aient diminué sur la base de deux facteurs majeurs ... comme vous, j'étais à mon travail de 8 à 9 heures par jour. p>
2ndly j'ai eu une source constante accrue de revenus supplémentaires de sorte que la motivation du code juste pour gagner une vie radicalement réduite et je me suis retrouvé de plus en plus optant de ne pas reprendre de nouveaux projets après le travail de Coz Ie Jus n'était plus dans l'ambiance . p>
J'ai aussi découvert que avec cette nouvelle attitude, j'ai commencé à faire des erreurs de recrue lors de la codage de C ++ contrairement auparavant. Après avoir changé mon attitude, les choses ramassées à nouveau. P>
Mon meilleur devin est que vous traversez la même chose que je traversais. Je vous suggère de trouver de nouvelles façons d'être motivée une fois que vous avez quitté le travail et que vous aurez plus facile de poursuivre la programmation en Java. P>
Vous savez quand vous êtes surmené: c'est lorsque vous essayez de trouver la clé F1 dans la cabine d'ascenseur pour le lancer! P>
@Kirtan Comment est-ce non-programmation?
Ceci est définitivement lié à la programmation.
Honnêtement, je ne pense pas que ce soit un problème pour la plupart des gens. J'utilise VB, SQL et XSLT au travail, Java, PHP et C # à la maison. Je n'ai jamais eu de problème de commutation entre eux et je n'ai jamais entendu parler de quiconque ayant des problèmes qui posent des problèmes entre eux jusqu'à présent.
Avez-vous envisagé la possibilité que vous soyez mentalement déficient de manière mentale? :-) Je plaisante, je ne pouvais pas résister à un jab.
Bien que je me soit attrapé au cours des derniers mois, écrivez le code Python au milieu de ma Java. que I> était bizarre - je n'ai pas fait Python pendant plus d'un an.
@Thecodemonk & @balpha: Sa programmation liée à la programmation, a un peu induit en erreur par le titre de la question. Merci de la réparation de l'erreur.
J'ai entendu dire que les programmeurs féminines, étant plus convulsionnés neurologiquement à plusieurs tâches peuvent programmer Python avec une main et Java avec l'autre.
Cela ressemble plus à un désintérêt dans votre propre projet personnel pour être honnête. Cela, ou tout simplement pas vouloir coder dans la soirée après une journée au travail.
De toute évidence, vous avez trouvé le seul véritable langage et vous vous sentez maintenant sale à un niveau subconscient sur l'écriture dans une langue aussi faible. C'est bon. Laissez Java Go. Vous vous sentirez mieux bientôt.
@Erich - Java est sale. Mais donc c #. En outre, ça sent un peu freudien ici!
Toutes les langues sont sales, c'est juste une question de perspective que celle que vous trouvez aussi propre (est) :) - freudien? Vous avez peut-être raison ... Java .. Le père de mafutrct avait l'habitude de boire du café ... Peut-être que mafutrct a une question de chat / berceau avec le Père! Vous avez raison!! Si seulement la mafutrct pouvait résoudre ces problèmes, la mafutrct aimerait à nouveau Java! Tout est si évident maintenant ...
@Jeebee: Je suis d'accord avec cette déclaration. ;) Le premier au moins est vrai pour moi parfois.
Personnellement, je peux faire le commutateur, mais je me suis retrouvé en utilisant davantage
var code> dans C # après codage de lots en JavaScript. Cela m'influette définitivement. Une autre chose curieuse est que je bascule automatiquement à l'aide de '=' au lieu de "==" dans les requêtes LINQ-TO-SQL EventHough, ce dernier est correct en C # mais le premier est utilisé dans SQL. Et je n'écris même pas beaucoup de SQL plus.
En tant que Dev retour sur Web Dev, j'utilise environ 6 langues différentes et plusieurs cadres.
J'ai finalement décidé de reconstruire le tout en C #.