Outils pour utilisateurs

Outils du site


issue117:c_c

Ceci est une ancienne révision du document !


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-plan 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. Comme telle, 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 de maintenir mes capacités de programmation à la pointe et mes connaissances à jour. Dans l'article de ce mois, 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 : • taches de fond (tels que le domaine de l'administrateur, ou d'autres scripts qui réalisent quelque chose qui n'est a immédiatement visible pour chaque visiteur), • affichage (HTML, CSS et JS qui se rapportent directement à ce que voient les visiteurs), et • performance (les bases de données, les techniques de cache, 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.

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.

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.

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.

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.

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/

issue117/c_c.1486107842.txt.gz · Dernière modification : 2017/02/03 08:44 (modification externe)