Outils pour utilisateurs

Outils du site


issue117:c_c

Correction: Last month, I wrote about ImageMagick and referred to a process for removing known backgrounds. Unfortunately, the link didn’t end up in the actual article. This is the link: http://www.imagemagick.org/Usage/masking/#known_bgnd

Rectification : le mois dernier, j'ai parlé d'ImageMagik et j'ai fait référence à un processus de suppression des arrières-plans connus. Malheureusement, le lien ne pointait pas sur le bon article. Voici ce lien : http://www.imagemagick.org/Usage/masking/#known_bgnd

A new year has started. As such, it was necessary for me to plan out some things I wanted to achieve this year. That includes making a plan for topics I need to study and learn to stay relevant in my field, and to generally keep my programming sharp and knowledge up-to-date. In this month’s article, I’d like to run through my own plan, and make some suggestions for how to find inspiration for yourselves.

Une nouvelle année commence. Pour cette raison, il m'est nécessaire de planifier certaines choses que je veux réaliser pendant cette année. Ça comprend un plan des sujets que je dois étudier et apprendre pour rester pertinent dans mon domaine et, plus généralement, pour maintenir mes capacités de programmation à la pointe et mes connaissances à jour. Dans cet article, je voudrais parcourir mon propre plan et faire quelques propositions sur comment vous en inspirer.

My Plan I spend most of my work doing web development, and as such, this area is the focus for improvement. My other work tasks are generally repairs, new device setups, automation, or devops. As there were fewer jumps forward in technology in these areas (except devops), my plan has, for the moment, skipped these topics. There are basically three areas I broke my list up into: • Backend (such as administrator areas, or other scripts that do something not immediately visible to every visitor), • Frontend (HTML, CSS, and JS that deal directly with what visitors see), and • Performance (databases, caching, servers, and so on).

Mon plan

Je passe la majeure partie de mon temps de travail à faire du développement Web, et, de ce fait, ce domaine est la cible pour ma progression. Mes autres taches professionnelles sont, en général, de la réparation, du paramétrage de nouveaux appareils, de l'automatisation ou du développement. Comme il y a peu d'avancées technologiques dans ces domaines (sauf pour le développement), mon plan a, pour le moment, sauté ces sujets.

Voici en résumé les trois domaines sur lesquels j'ai établi ma liste : • tâches de fond (telles que le domaine de l'administrateur ou d'autres scripts qui réalisent quelque chose qui n'est pas immédiatement visible pour chaque visiteur), • frontal (HTML, CSS et JS, qui se rapportent directement à ce que voient les visiteurs), et • performance (les bases de données, les techniques de cache (caching), les serveurs et ainsi de suite).

Frontend I’m focusing on expanding on things I already know this year, as opposed to jumping into something completely new, starting with ES6/ES2015. ES6 has brought with it a lot of new options and features for writing JavaScript quickly, and helps automate some of what I would consider hacks (meaning it transpiles into the hacks, but as a programmer, you no longer need to take the time). It’s an official standard as of June 2016, and support is pretty good. Combined with webpack, there’s no reason not to use it. As I do every year, I will also be setting up a test area with the newest versions of Bootstrap and Zurb Foundation, just in case I need to use it for a project. Things don’t tend to change much between versions, but it’s easy enough to spend an hour or two checking it out. Now comes the big one. React. I’ve used it a little here and there, but this year I will put a real focus on it, simply because it’s gaining in popularity, and offers some benefits for things I’m frequently asked to do (I recently created a filterable gallery using very basic React). I’ll be covering React with mobx, Flux and Redux (for small, normal, and data heavy projects, respectively). You can also cover Angular, Ember or Vue, though my main focus is on React, which I will focus on first. I also want to get at least a bit of familiarity with Elm and/or ClojureScript, as they’re new, and (Elm especially) have different approaches.

Frontal

Je me suis focalisé sur l'extension de choses que je connais déjà cette année, par opposition à passer à quelque chose de complètement nouveau, en commençant par ES6/ES2015. ES6 apporte une quantité de nouvelles options et fonctionnalités pour une écriture rapide en Javascript, et aide à automatiser un peu de ce que je considère comme du piratage (signifiant par là qu'il transcode vers du piratage, mais, comme programmeur, vous n'avez plus besoin d'y passer du temps). C'est une norme officielle depuis juin 2016 et le support est assez bon. En combinaison avec webpack, il n'y a pas de raison de ne pas l'utiliser.

Comme je le fais chaque année, je paramétrerai une zone de test avec les nouvelles versions de Bootstrap et Zurb Foundation, au cas où j'aurai besoin de l'utiliser pour un projet. Les choses n'ont pas vraiment tendance à changer beaucoup entre les versions, mais il est assez facile de passer une heure ou deux pour les tester.

Le gros morceau arrive maintenant. React. Je l'ai utilisé un peu de temps en temps, mais, cette année, je me focaliserai vraiment dessus, simplement parce qu'il devient plus populaire et offre des avantages pour des choses qu'on me demande de faire souvent (j'ai récemment créé une galerie filtrable en utilisant le React de base). Je traiterai de React avec mobx, Flux et Redux (pour des projets petits, normaux et avec énormément de données, respectivement). Vous pouvez aussi regarder Angular, Ember ou Vue, bien que mon objet principal soit React, sur lequel je me concentrerai en premier.

Je veux aussi apporter au moins une petite familiarisation avec Elm et/ou ClojureScript, parce qu'ils sont nouveaux et ont des approches différentes (particulièrement Elm).

Backend I split this into three sections as well - scripting, functional and high performance. Scripting is focused only on Node.JS, as I’ve previously been using Python and PHP, and want to simply round out my knowledge. My functional language to focus on is Haskell - I started learning it years ago, but haven’t ever really given it enough time to say I’m comfortable with it. And lastly, I want to do more with Go (the language, not the board game), and possible try out Rust as well. These are compiled languages, and, therefore, offer some good performance, and are a different approach and utility to things like Node.JS.

Arrière-plan

Je le découpe aussi en trois sections : scripting, fonctionnel et haute performance.

Scripting est centré uniquement sur Node.JS, car, précédemment, j'ai utilisé Python et PHP, et je veux simplement compléter mes connaissances.

Le langage fonctionnel sur lequel je me concentrerai est Haskell ; j'ai commencé à l'apprendre il y a des années, mais je n'y ai jamais passé assez de temps pour dire que je suis à l'aise avec lui. Enfin, je veux en faire plus avec Go (le langage, pas le jeu de plateau) et, si possible, tester aussi Rust. Ce sont des langages compilés, et, de ce fait, ils offrent une bonne performance ; ils ont aussi une approche des choses et une utilité différentes de celle de Node.JS.

Performance This is a bit of a mishmash of items. My main goal is simply to learn and try them out as needed in my projects. That being said, there are some I want to learn the theories on, but lack the need (or servers) to truly test out and learn. Starting with databases, I want to learn more about Redis and ElasticSearch, as I’ve never used them before, and want to see if there’s any reason to integrate them into my work projects. It also ties into the caching items I want to work on - such as database caching with Redis. Lastly, Devops. This is by far the newest field I’m really getting into, and have spent the last 4 or 5 months familiarising myself with Docker - both locally, on my test server, and on some deployments. To continue on, I want to check into some options for managing docker containers - such as Kubernetes, Docker Swarm, or Rancher. An area for study (but less hands-on testing) is continuous testing and deployment using things like Jenkins or SemaphoreCI. As I work alone, and my projects are relatively small, I haven’t ever had the need for something like this (as I tend to deliver a project once, and stop there). That being said, learning about this is something useful and interesting to add to my CV.

Performance

C'est un peu un méli-mélo de sujets. Mon but principal est simplement de les apprendre et les tester car j'en ai besoin dans mes projets. Cela dit, je veux apprendre la théorie à leur sujet, mais le besoin (ou les serveurs) me manquent pour que je les teste et apprennent vraiment.

Pour ce qui est des bases de données, je veux en apprendre plus sur Redis et ElasticSearch, car je ne les ai jamais utilisées, et je veux voir s'il y a des raisons de les intégrer dans mes projets professionnels.

C'est aussi en lien avec les sujets de « caching » sur lesquels je veux travailler, tel que le caching de base de données avec Redis.

Enfin, le développement opérationnel (Devops). C'est de loin le plus récent domaine dans lequel je pénètre, et j'ai passé les 4 ou 5 derniers mois à me familiariser avec Docker, à la fois localement, sur mon serveur de test, et lors de quelques déploiements. Pour poursuivre, je veux vérifier certaines options de gestion des conteneurs Docker, telles que Kubernetes, Docker Swarm ou Rancher.

Un domaine d'étude (mais avec moins de test en réel) est le test et le déploiement en continu en utilisant des choses comme Jenkins ou SemaphoreCI. Puisque je travaille seul, et que mes projets sont relativement petits, je n'ai jamais eu le besoin de quelque chose comme ça (car j'ai tendance à livrer un projet en une seule fois, et m'arrêter de suite). Cela étant dit, l'apprentissage de tels sujets est utile et intéressant à ajouter sur mon CV.

Non-Work All the above applies directly to my work. As for personal languages, I want to work more deeply with machine learning and Python 3, as I often use it, but in small applications. This year, I want to work on at least one larger project using Python, and hopefully implement some machine learning. I realize this can sound like a lot, especially considering what you need to know in order to feel proficient in a language or topic. However, some of the items mesh well together, and as such may overlap in areas. I’ve set aside some time every weekend to work through the list, and will hopefully have made some decent progress by March. If I need to rethink the list, I’m not going to shy away from doing it.

Hors du champ professionnel

Tout ce qui précède s'applique directement à mon travail. Pour ce qui est des langages personnels, je veux approfondir plus le « machine learning » (apprentissage automatique, en intelligence artificielle) et Python 3, car je l'utilise souvent, mais dans de petites applications. Cette année, je veux travailler sur au moins un grand projet en Python, et j'espère implémenter du « machine learning ».

Je m'aperçois que ça peut sembler beaucoup, particulièrement en regardant ce que vous devez savoir pour paraître compétent dans un langage ou sur un sujet. Cependant, certains de ces sujets se marient bien ensemble et peuvent ainsi permettre des chevauchements de domaines. Je me suis gardé du temps chaque week-end pour traiter les choses sur cette liste et j'espère avoir fait quelques progrès en mars. Si j'ai besoin de repenser cette liste, je le ferai sans hésitation.

Organisation I tend to use a mixture of Google Calendar goals, Wunderlist, and Google Inbox reminders to keep track of what I need to do. If, however, you prefer handwritten notes, or physical journals, I would recommend looking into the Bullet Journaling approach (see the links at the end). I used this approach for a few months, and quite liked the way they were laid out. I just, unfortunately, couldn’t get into the habit of checking my journal regularly enough. I highly recommend getting any sort of dotted notebook (or, if you want, just order a journal off the site - though it’s not required). The ideas can be applied in a multitude of ways. I hope this has inspired some people to continue learning. Do you have any recommendations for me? Or just want to share some of your own goals? Then feel free to email me at lswest34+fcm@gmail.com. The same goes if you have any unrelated questions or article ideas.

Organisation

J'ai tendance à utiliser un mélange d'objectifs dans Google Calendar, Wunderlist et des mémos dans la messagerie Google pour garder la trace de ce que je dois faire. Si, cependant, vous préférez les notes manuscrites ou un carnet, je vous recommanderais d'examiner l'approche de Bullet Journal (voir les liens en fin d'article). J'ai utilisé cette approche pendant quelques mois, et la façon dont elle organise les choses me plaît assez. Malheureusement, je n'ai pas pris l'habitude de consulter mon carnet fréquemment. Je recommande fortement de se munir de n'importe quel calepin avec des pointillés ( ou ,si vous voulez, commander un carnet directement sur le site, bien que ce ne soit pas nécessaire). Ces idées peuvent s'appliquer de multiples façons.

J'espère que ceci a motivé certains d'entre vous de continuer à apprendre. Avez-vous quelques recommandations à me faire ? Ou voulez-vous simplement partager certains de vos objectifs personnels ? N'hésitez pas à m'envoyer un mail à lswest34+fcm@gmail.com. Idem si vous avez d'autres questions ou des idées d'articles.

Further Reading This entire list and plan was inspired by the following videos and mindmaps: https://youtu.be/sBzRwzY7G-k https://coggle.it/diagram/Vz9LvW8byvN0I38x Bullet journal: http://bulletjournal.com/get-started/

Pour approfondir

Tout ce plan et cette liste ont été inspirés par les vidéos et cartes cognitives suivantes :

https://youtu.be/sBzRwzY7G-k https://coggle.it/diagram/Vz9LvW8byvN0I38x

Bullet journal: http://bulletjournal.com/get-started/

issue117/c_c.txt · Dernière modification : 2017/02/06 12:39 de auntiee