Formation – [Blog] du Java et du Freelance https://java-freelance.fr Vis ma vie de freelance java : techno et entreprise Mon, 12 Oct 2015 14:45:01 +0000 fr-FR hourly 1 https://wordpress.org/?v=4.4.4 Devenir un Ninja en Java https://java-freelance.fr/java/devenir-un-ninja-en-java https://java-freelance.fr/java/devenir-un-ninja-en-java#comments Mon, 04 Oct 2010 07:20:53 +0000 https://java-freelance.fr/?p=822

Au début de ma carrière, je me souviens qu’un de mes collègues m’a dit « Tu sais, au final, on se rend compte qu’il n’y a que très peu de différence de productivité entre un bon développeur et un développeur lambda ». Je l’ai cru,  et il m’a fallu quelques années pour me rendre compte qu’il avait complétement tort. Un développeur productif peu produire jusqu’à 10 fois plus (sans diminuer la qualité du code). Sachant que les tarifs vont du simple au double, engager un bon développeur, 2 fois plus cher, peut s’avérer en fait 5 fois plus rentable pour le client. Pensez y au prochain entretien :)

A votre avis, un client préférera prendre un développeur productif mais cher ou un développeur lambda pas cher ?


Apprendre en continu

Le seul moyen de s’améliorer c’est d’apprendre, apprendre, apprendre. N’hésitez pas à poser une journée ou deux par mois, et de préférence en semaine pour vous former au calme, chez vous. Les transports sont aussi une bonne occasion, pour ceux qui ont la chance de les utiliser.

Ce n’est que quand j’ai commencé à m’ennuyer en mission que j’ai décidé de lire. Et c’est en lisant que je me suis rendu compte à quel point j’étais mauvais en Java. Le livre qui m’a fait prendre conscience est « Effective Java » :


Bien, une fois que j’ai pris conscience qu’en fait j’avais rien compris à Java, suis je meilleur développeur ? Non, mais c’est un début. Maintenant il faut apprendre se comporter comme un bon développeur. Que ce soit avec votre code : « Don’t repeat yourself », avec les autres :  « Provide Options, Don’t Make Lame Excuses » ou avec vous même : « Invest Regularly in Your Knowledge Portfolio »

« The pragmatic programmer » est LE livre à lire et se présente sous la forme d’une liste d’astuces :


Dans le même style, les astuces sont plutôt orientées Business mais certaines peuvent s’appliquer à nos développements. Et puis, quel freelance ne rêve pas de monter sa petite entreprise ? Rework est le genre de livre qui peut révolutionner une vie :



Et après ?

Voici une liste d’astuces, issue de ma propre expérience.

– Maîtriser vos outils : Apprenez les raccourcis clavier de votre IDE et utilisez les. Regarder comment les autres développeur utilisent vos outils, c’est très instructif !

– Choisissez vos missions : Débrouiller vous pour toujours travailler avec des gens meilleurs que vous. Faites en sortes de toujours apprendre quelque chose de nouveau (technos, architecture, langage, métier, méthodologie).

– Reposez vous : Inutile de se fatiguer au travail, cela ne fera que baisser votre productivité. Fatigue = erreurs. Un besoin incompris, c’est une productivité nulle.

– Changez vous les idées, consacrez du temps à vos loisirs et à votre famille. Cela boostera votre créativité et vous aidera à résoudre les problèmes complexes.

– Limitez les sources de perturbations. Coupez Twitter, votre e-mail (même le pro) ainsi que Facebook. Profitez de votre téléphone 3G dernier cris pour traiter tous ça dans les transports le matin et le soir.

– Travaillez vos forces et laissez tomber vos faiblesses : Est ce bien utile de s’obstiner à maîtriser CSS et photoshop alors que l’on n’est pas artiste pour un sou ? Cela va vous prendre énormément de temps. Temps qui serait mieux utilisé à augmenter votre expertise dans votre domaine de compétence. Ne soyez pas dupes et ne soyez pas jaloux des « rockstar », vous êtes sans doute meilleur qu’eux dans un autre domaine !



Livres Bonus

Pour ceux qui vont vite et aussi parceque cet article est l’occasion de tester les liens sponsorisés Amazon ;), voici 3 livres qui m’ont également aidé à progresser et que je vous conseil pour compléter votre read list:

YapluKa !

]]>
https://java-freelance.fr/java/devenir-un-ninja-en-java/feed 11
Bilan https://java-freelance.fr/freelance/bilan https://java-freelance.fr/freelance/bilan#comments Tue, 06 Jul 2010 06:17:26 +0000 https://java-freelance.fr/?p=479 Il y a un an, je me lançais en tant que freelance. C’est le bon moment pour faire un bilan. Il me semblait que se lancer en tant que freelance n’était finalement pas risqué et ne changeait pas temps de chose.

Pourquoi ?

Malgré une famille, un crédit maison sur 15 ans et un crédit auto sur 6 et une expérience de 2/3 ans, j’avais envie de découvrir autre chose que le monde des SSII.
Mes expériences en SSII ne sont pas négatives, une SSII de taille moyenne grâce à laquelle j’ai pu faire une mission très intéressante mais pas vraiment au point pour entretenir une communauté de développeur en son sein et y favoriser le partage des connaissances. Une tout petite SSII où au final je ne serai restée que quelques semaines mais dont l’obligation de sous-traitance à d’autres SSII plombe le modèle économique et là encore pas assez de matière pour aider en interne à monter en compétence. Au niveau de la plupart des SSII, celles ci apportent effectivement une certaine sécurité au niveau de l’emploi (valeur tellement ancrée dans la société…). Mais tout a un prix.

J’avoue que les traditionnels arguments tels que cités ici ne m’ont pas vraiment touché. L’aspect financier n’est clairement pas le plus important, juste je ne comprends plus bien l’intérêt d’être dans la plupart des SSII. Une grosse majorité de gens me disent spontanément qu’ils vont passer freelance dans X années, mais j’ai vraiment l’impression que très peu de junior (1/2 d’expérience) se lancent.

Comment ?

Pour me lancer, rien de bien difficile et pourtant, c’était en Mai,  autrement dit, dans la période la plus critique vis à vis de la crise.
J’ai crée mon CV sur freelance-info.fr et au bout de 2 heures, un premier commercial m’a contacté pour une mission qui m’avait l’air intéressante et pour laquelle on a vite convenu d’un rendez vous. Une heure après, un deuxième commercial m’appelait. Et ainsi de suite,  ça ressemble un peu à ce qu’on vit quand on met son CV sur Monster …

Les rendez vous avec le commercial puis avec le client se sont effectués dans la foulée.  La mission a commencé deux semaines plus tard.

Ce qui ne change pas

Au bout d’un an, je n’ai pas vu de différence avec mes 3 missions en SSII et ma mission actuelle au niveau du suivi. Je vois mon commercial une fois tous les 36 du mois, on a fait une fois un debrief avec le client, je lui envoie mon CRA à chaque fin de mois.

Je ne suis pas sur qu’il y ait une réelle différence d’état d’esprit entre un salarié de SSII et un freelance. Je pense que l’éthique que l’on a est quasiment la même. Je préviens toujours le plus en avance possible de mes congés, je ne renégocie pas mon tarif journalier tous les quatre matin (d’ailleurs je ne le ferais pas sur cette mission). Il me semble que les indépendants ont tendance à se former un peu plus, mais ce n’est pas une généralité non plus !

La question que l’on me pose souvent : et la paperasse ? Après un an, je l’attends toujours. Une partie des démarches a été faite en ligne. Pour la deuxième partie, j’ai pris un comptable qui me fait tout le reste (déclarations aux différents organismes, bilan) etc. Le seul point noir c’est la saisie des notes de frais, ca prend environ une heure par mois donc non, je ne croule pas sur la paperasse, en revanche, je paye mon comptable !

Les différences

Les avantages

L’aspect financier

Là où je vois la plus grosse différence c’est sur mes revenus. Comme je ne suis pas experte, je suis plutôt sur des missions longues avec peu d’inter-contrat. Mes revenus arrivent sous la forme d’indemnités mensuelles que je lisse  (je me verse autant en inter-contrat / vacances / formation que quand je travaille tout le mois, on ne peut pas en dire autant du chiffre d’affaire de ma société). Ça me permet de ne pas avoir de ‘trou’ dans mon budget personnel. L’autre forme de revenu c’est les dividendes, que je ne toucherais qu’à la fin de l’année et qui seront plus ou moins conséquents en fonction du chiffre d’affaire fait ma société.
Il est vrai que l’on gagne beaucoup plus et qu’il faut prendre des assurances complémentaires (mutuelle, prévoyance par exemple) mais en réintégrant tous ses frais, je suis, hors dividende à un peu plus de 50% d’augmentation. Je ne parle pas des avantages CE ou en nature, je n’en ai jamais vraiment eu. Sur une année de 217 jours facturés, l’augmentation totale comprenant les dividendes atteint quasiment les 100%.  Tout en gardant à l’esprit qu’en cas de tuile, on est vraiment beaucoup moins bien couverts que les salariés (pas d’indemnités journalières par exemple hors assurance prévoyance, pas de chômage dans la plupart des cas).

Les formations

L’un des autres avantages d’être indépendant, c’est de pouvoir au final payer un peu moins cher certaines formations (achat hors taxes et hors charges sociales) et de faire acheter par la société une partie de son matériel pro, ce n’est pas la panacée (c’est toujours à nous de remplir les caisses de l’entreprise) mais c’est toujours ça de gagner. J’ai une bibliothèque de plus en plus grande, je suis allée et je retournerai en 2010 à Devoxx, j’ai achetée un eee pc pour pouvoir rester connecter.

L’autonomie

Je trouve que les avantages que l’on a à être freelance, plus grande autonomie pour choisir ses missions, une meilleure gestion de l’intercontrat, pas de jours de congés à poser impérativement avant le 31 mai ou autre sympathie et la meilleure paye permette de compenser largement les quelques inconvénients.

Les inconvénients

Un inconvénient, et il est avéré, est que certains grands groupes ne veulent plus travailler avec des sous-traitants qui passent pars des SSII. Exit donc les indépendants de certaines missions ou alors passage obligé par un cabinet de broker. Les cabinets de broker sont spécialisés dans le placement des indépendants et en général, se font une marge entre 20% et 30% mais à ce que j’ai vu autour de moi, il y a un réel suivi et quelques services en plus. Enfin ça reste cher le service.

En cas de coup dur, effectivement, on est beaucoup moins protégés. Pas de chômage, pas d’indemnité journalière de base, la mutuelle est plus chère.  Ce ne sont pas de réels inconvénients dans la mesure où comme on le sait avant, il suffit de mettre un peu de côté, on se fait soit même ses assurances. Pour la retraite, elle est en % plus faible mais comme on gagne plus, cela se vaut à peu près.  Il me semble que l’on a pas non plus droit au congé parental  (par contre des indemnités conséquentes pour le congé maternité et il existe également un congé paternité de 11 jours).

Les SSII où il fait bon de travailler

Un autre inconvénient est à prendre en considération quand on est mécontent de sa SSII. Certaines SSII n’apporteront rien de plus qu’une relation client-fournisseur. Mais ce n’est pas le cas de toute, il est possible d’intégrer des SSII qui font monter les compétences des collaborateurs de manière assez poussée. Avoir par exemple une journée de formation par mois ou envoyer ses collaborateurs à des formations, animer une communauté de développeur sont des points très appréciables de certaines SSII. En tant qu’indépendant, on est pas mal isolé, d’où l’importance de se réseauter et de participer à des évènements extérieurs (les Java User Group, les conférences diverses et variées…).

Les aspects commerciaux et contractuels.

Un autre inconvénient, c’est le fait de devoir se vendre. La négociation n’est pas une chose aisée et ce n’est pas naturel  pour tous, c’est donc souvent délicat. En devenant indépendant, il faut donc apprendre à se vendre.

Il y a un point que j’ai négligé et sur lequel j’aurais pu me mordre les doigts c’est le contrat. Il faut vraiment que le contrat soit à 50/50. Il est possible de se faire accompagner par des juristes lors de la signature du contrat.

Je parle là d’une expérience de freelance en Java. Ce n’est pas la même chose sur d’autres langages. Il faut toujours se demander si son profil est facilement ‘vendable’ en fonction du marché avant de se lancer !

Sur un an, un bilan plus que positif. Ma situation n’a pas énormément changé quand je regarde mon travail quotidien chez mon client. En revanche, tout ce qui est extérieur ( ‘salaire’, formations, livres, … ) c’est amélioré.

]]>
https://java-freelance.fr/freelance/bilan/feed 5
Bouchon (stub) ou Simulacre (mock) ? https://java-freelance.fr/java/bouchon-stub-ou-simulacre-mock https://java-freelance.fr/java/bouchon-stub-ou-simulacre-mock#comments Fri, 02 Jul 2010 05:04:37 +0000 https://java-freelance.fr/?p=795 Le test unitaire est un test qui provoque l’exécution d’une partie du code et qui l’analyse.  Il permet de garantir que le code exécuté fonctionne correctement. Il se doit donc d’être automatisé et répétable. Pour cela, cela nécessite fréquemment le besoin d’isoler le test unitaire des systèmes extérieurs (base de données, appels web-service distants).

Pour ce faire, il existe plusieurs méthodes, l’utilisation de bouchon (‘stub’) ou de simulacre (‘mock’). L’article de référence est un article de Martin Fowler « Les simulacres ne sont pas des bouchons« . Pour résumer, une méthode bouchonnée est appelée sur un objet bouchon réel, centré sur le système testé. Il ne peut jamais faire échouer le test. On regarde l’état de l’objet final à la fin du test et non les étapes qui ont permis d’obtenir cet état. C’est un test basé sur des états.

En ce qui concerne les simulacres, les assertions ne portent pas sur l’objet final mais sur la manière dont ce dernier a été obtenu. C’est un test basé sur le comportement de la méthode. On peut contrôler le nombre de fois qu’une méthode a été invoquée, vérifier que ses paramètres correspondent bien entre ce qui est défini et ce qui est exécuté et faire échouer le test si l’enchaînement de méthodes ne correspond pas à l’enchaînement attendu par exemple.

Easymock utilise dans son fonctionnement le plus basique des simulacres, qui permettent de construire un test de manière très simple : l’ordre des méthodes invoquées, le nombre d’appel à une méthode peut engendrer un échec du test. Potentiellement, les tests sont plus fragiles et plus difficile à maintenir.
Mais EasyMock permet également la création de bouchons qui peuvent être réutilisé. Il est ainsi possible de maintenir des bouchons partagés entre différents tests unitaires, ce qui permet une meilleure maintenabilité. Dans ce cas, nous ne nous intéressons pas au comportement, uniquement au résultat.

La création de bouchon à l’aide de andStubReturn()

public Service getServiceMock() {
   Service serviceMock =  createMock(Service.class);

   expect(serviceMock.appel1()).andStubReturn(Integer.valueOf(5));
   expect(serviceMock.appel2(anyObject())).andStubReturn(BigDecimal.TEN);

   replay(serviceMock);

}

La méthode andStubReturn signifie que cette méthode peut être appelée sans condition de nombre (0,1 …n) ni d’ordre. Il est simplement défini que si cette méthode est appelée, elle renverra un paramètre tel que défini via le andStubReturn. Il n’y a pas de verify(serviceMock) car les contrôles sur le comportement du mock ne nous intéressent pas.

La création de bouchon à l’aide des ‘niceMock’

Une autre possibilité lorsque l’on souhaite utiliser les bouchons (stub) est de créer un ‘nice mock’, qui est par défaut, renvoie 0, null ou false selon le paramètre de retour des méthodes :

myNiceMock  = createNiceMock(Service.class);

Toujours sans utiliser de verify.

Les avantages du stub sont nombreux : les tests sont plus faciles à maintenir, il est possible de réutiliser les stubs au sein de plusieurs classes de tests… Néanmoins,  il y a des situations où le test d’un comportement est plus adéquat que l’utilisation de bouchon comme par exemple, vérifier que certains paramètres sont bien calculés avant d’être envoyé à des services externes, ce qui est fréquemment mon cas.

]]>
https://java-freelance.fr/java/bouchon-stub-ou-simulacre-mock/feed 6
Les 2 ans du Paris Jug https://java-freelance.fr/java/les-2-ans-du-paris-jug https://java-freelance.fr/java/les-2-ans-du-paris-jug#comments Wed, 10 Feb 2010 13:15:52 +0000 https://java-freelance.fr/?p=383 juggyanniversaireHier soir avait lieu les 2 ans du Paris JUG.  Le Paris JUG est le premier Java User Group crée en France, beaucoup d’autres régions ont désormais le leur. L’association a été crée en février 2008 et réunit une fois par mois pas loin de 200 personnes dans les locaux de l’ISEP pour des sujets plutôt techniques (Performance, Qualité de code, EE6 …).  Niveau formation continue, retour d’expérience et construction de réseaux, c’est un des lieux où il faut être, chaque 2ème mardi du mois.

Le Paris JUG c’est aussi une ‘troisième mi-temps’ dans un bar-resto après la soirée. Me retrouver après les confs pour discuter avec des passionnés sur des sujets variés (mise en place de pair programming, Groovy, se lancer en freelance …) est vraiment une composante importante de mon intérêt pour le Paris JUG !

Pour la soirée d’hier, les choses avaient été faites en grand : amphi de 500 places, bien rempli, goodies, présence de stands, buffet, énormément de gens venus de partout dont pas mal rencontrés à Devoxx. Au niveau des sujets, la keynote d’ouverture de Sacha Labourey abordait le thème ‘la révolution open-source a t elle eu lieu ?’. Se sont suivis ensuite quelques questions/réponses à Sacha et Marc Fleury, invité surprise de la soirée et fondateur de Jboss.  La notion de ‘passion’ a pour la première fois été abordée et il faut reconnaître, et tous les intervenants l’ont fait lors de la soirée, que s’investir dans l’open-source est chronophage et avant tout, une affaire de passion.

Quelques business models de projets Open Source (Acceleo, XWiki, eXo Platform) ont  été présentés sur la forme de quickies par les différents acteurs de ces projets, permettant de donner des exemples concrets à la keynote plus générale de Sacha. Des  outils open-source (jCaptcha, jax-doclets, Play!) ont eu également le droit à leurs quickies, plus techniques.

Jean-Michel Doudoux, architecte Sfeir Benelux , a également parlé de son travail de rédaction et du choix de la license autour de Développons en Java, quelques 1888 pages en français, le tout sur 10 ans, mis à jour désormais 3 à 4 fois par ans et qui correspond à une véritable bible, en français sur le langage Java : http://www.jmdoudoux.fr/accueil_java.htm#dej . Les prochaines évolutions seront sur JEE, Android ! Un travail titanesque pour lequel il a choisit la license GNU FDL, bien conscient des problèmes pour faire valoir ses droits dès que l’on publie sur le net.

La présentation sur le framework Play!  était vraiment bien mené et a éveillé pas mal les curiosités ! Ce framework web, fait par des développeurs web constitue une alternative pour développer sur une architecture REST. Ce framework permet entre autre un rechargement à chaud (la démo est faite via un simple éditeur de texte), le code modifié impactant immédiatement l’appli web, un système de gestion des exceptions à l’écran, un système de templating, avec la possibilité de créer ses propres tags ou d’utiliser le système d’expression langage de groovy et beaucoup d’autres choses encore.

Pour avoir plus d’infos : http://www.playframework.org/

Pour avoir le détail des conférences, Olivier Croisier a très bien retranscrit tout le détail dans son blog http://thecodersbreakfast.net/index.php?post/2010/02/05/Suivez-le-Paris-JUG-anniversaire-en-live !

La troisième mi-temps s’est déroulé au Dome dans le 17ème avec petits fours.  J’ai eu l’occasion de discuter avec Nicolas Leroux (contributeur) et Guillaume Bort (lead developper) autour de Play! , principalement sur l’utilisation en industrie et des questions plus techniques.  On en a également profité pour parler d’un projet de réseautage de la communauté féminine de Java, j’en parlerai plus en détail quand cela sera avancé mais c’était agréable de voir du monde réunis autour de la table !



]]>
https://java-freelance.fr/java/les-2-ans-du-paris-jug/feed 2
Université du SI https://java-freelance.fr/java/universite-du-si https://java-freelance.fr/java/universite-du-si#respond Wed, 22 Jul 2009 19:55:37 +0000 https://java-freelance.fr/?p=93 Webcast

Comme nous le rappel dans un style plutôt décalé jeunerebeumillionnaire dans son manifeste de l’équation sécrète, le meilleur investissement qu’une personne – et donc un indépendant – puisse faire, c’est dans sa formation.

Internet est un outil formidable pour se former, on l’a vu avec les castcodeurs et javablackbelt (dans d’autres domaines, il existe également de nombreux sites, je pense notamment à l’apprentissage de l’anglais).

Aujourd’hui, l’ on vient de faire un pas de géant au niveau des ressources francophones avec Octo et son Université du SI. Un grand nombre de conférences de très bonnes qualités, viennent d’être mise en ligne. Bon visionnage !

]]>
https://java-freelance.fr/java/universite-du-si/feed 0