A few weeks ago, I’ve created a repo on Github resuming how I stay up to date: sderosiaux/how-i-stay-updated. I thought it would be nice to write a blog post on that, with more details.
- Why it’s hard ?
- Why it’s useful to learn all that?
- But we can’t learn everything
- Beside staying up-to-date
Where do I come from?
Back and Front
Those days, I’m working as a Java/Scala back-batch-streaming-architecture-ops-bigdata engineer.
Before that, I did a lot of front-end: therefore I also keep my front-end knowledge up to date. It’s still helpful to share and talk with the front-end teams. And it’s especially useful when I want some quick UI to simplify a workflow. I even created a repo where I put everything I know about the Guidelines to create a strong website. Don’t hesitate to PR! I may be a little rusty over some things.
Boring means quitting
In my previous experience, after a while I was bored and wanted to try something new. Reading all those news and stuff about bigdata made me wanting to go there and see what was the deal with that. I’ve challenged myself, decided to resign from my job (5 years there), and found a job in an amazing company in Paris, Powerspace. The boss was kind enough to let me in, despite the fact that I didn’t had a lot of experiences with their current stack. He accepted the challenge, because he knew I was able to learn quickly and that I definitely wanted to learn.
Engineering means learning
An engineer (what most of us are considered today in IT) must be confortable with the ongoing changes and evolutions. I was, and he trusted me.
Anyway, it’s been more than a year now, I have a way better knowledge of the available backend technologies we can use, how to use and link them, understand why they exist. I also like working on the architecture side and play with the bigdata constraints. Finally, I’m caring a lot more about the monitoring and alerting piece, those are truly something to be taken into account to know what’s going on each second in your company heart.
In the IT domain, we know about Continuous Delivery, Continuous Integration, we must be aware of the Continuous Learning too. That’s what this article focuses about.
It’s rare that tech people don’t have a Twitter account. This is often where things happen first. It’s an incredible source of information.
The characters limit is like a continuous TLDR feed, because we don’t have time to read everything. We just want to be aware it exists, and refer to it when we need to.
We don’t know if Twitter is still going to be there in 10 years. I sometimes wonder how we were doing before! Personally, I’m posting a lot of links, everything I find interesting, also baked by another of my repo: every single day I tldr.
My new tab is using tabbie since it was created. I never removed it even if it’s not perfect. It always answered to my needs, so, why change?
- Github: best daily starred repos. I often discover nice repo with this.
- HackerNews: often interesting topics and links. I go to the main website too, to read the best of HN.
- Dribbble: designers are doing cool stuff.
I have a special folder TO READ where I bookmark for later. Months ago, I was able to be stable around 10. Right now, I have more than 100 links in this folder. I always try to read some at evenings.
I admit my raw bookmark system sucks for a lot of reasons:
- No tag system (Chrome), I just named them the best I can to find them again.
- We can’t resize the Add Bookmark popup (Windows).
- There is no search in this popup.
- The whole experience is not great.
The browser bookmark system is just too damn basic.. but it does the job.
I also found a nice platform to
git clone and install ourself, to save the bookmarks and shares them automatically, it’s called Shaarli.
Subscribe and forget.
The emails are the source I got tons of links. I don’t spend the same time on every one of them, it would be too damn time consuming!
- http://highscalability.com/: stuff-the-internet-says-on-scalability, quotes and numbers. A LOT of links to blogs and articles.
- http://www.confluent.io/blog/: top quality articles about confluent platform (kafka, streams, connect..)
- https://scala.libhunt.com: Scala is the best language, framework, with the best libraries ever
- Medium Daily Digest: I think I read 1/3 of the articles, good personal digest, technical and more worldwide news
- Hadoop Weekly: ultra interesting for bigdata stuff, a must
- Pony Foo: the ponyfoo’s articles are a must. the selection of the NL is quite good
- DB Weekly: not reading everything, but interesting when i know the db
- Dev Tips: one topic, one gif, one message. Good to know.
- Docker Weekly: the docker selection is nice, the second selection, depends on the title. But i don’t use it enough yet.
- ES.next news: 5 links, by @rauschma
- Node Weekly: quickly, to not miss any big feature
- Reactjs Weekly: quickly going through
- Risingstack.com: often quite basic and succinct, but well written
- Frontend Focus (previously html5 weekly): quickly, to not miss any big feature
- Graphql Weekly : very quickly, graphql is graphql
- Data Elixir: about… data as you guessed. I stopped this one. Interesting, about ML, and data in general.
Subscribing to some projects to read issues and PR and know where it’s going.
It can be very time consuming, I often archive a lot of them, and just keep the interesting titles. I don’t recommend it except if you are really into open-source.
Watching conferences and courses is a must.
It’s also useful when you don’t want to read something because it’s 3am.
Often watching in 2x.
- MIT OpenCourseWare.
- Compressor Head: (not the robot metal band!) still need to finish this series, very interesting, by Colt McAnlis.
- Facebook Developers: Facebook has very good conferences: Reactjs, F8, @Scale.
- InfoQ: mass amount of talks with slides, can find great stuff from confs and around the world.
- Slideshare: sometimes, you just want to get details from slides because it’s more succinct.
Slack is very useful in a company, but it can be too noisy sometimes.
Having a dedicated channel where people shares links about technology is a good thing: people likes to share. But don’t share too much: it’s useless because nobody will click on all of the links.
Quality over quantity.
Personal training is essential.
- Coursera: Perfect when I want to get into the unknown.
- Hackerrank: Always nice a have some challenges and discover new algorithms, I’m mostly using Scala.
- Pluralsight: Not as good as Coursera but I followed some courses a while ago.
- Egghead: There are nice free videos to watch there (React, Redux, Cycle, RxJS…). Not all are free.
I have a dozen of PDFs on my desktop about interesting stuff (Scala, TDD, Hadoop, elastic, Akka, architecture, some softwares…). I’ve finished some, started some others: endless loop. I barely have time to read them at home.
Reading a physical book is more practical to stay focus, and “hopefully”, I have 2 hours of transit every day, it’s a good opportunity. Right now, I’m reading about DDD, very interesting Domain-Driven Design: Tackling Complexity in the Heart of Software.
Links and tutorials are good, but books are really useful to show us the big picture and often go deeper.
Sometimes, you stumbled upon amazing people sharing a lot of things. You keep a link in case you ran out of things to read or do, you never know.
- Josh Washam: A guy learning everything required to work at Google. He’ll get it.
- Mark Lewis: A lot of data structure explained in short videos.
- Derek Banas: A lot of diverse programming things, truly an amazing guy. I wonder where does he find the time to do all that.
Why it’s hard ?
- Because my memory sucks and I’m sure I forget 90% of what I’m reading
- Because I don’t have a lot of free time to read and learn all that. I’m trying, sleeping is overrated
- Because most of things won’t be useful for me.
- Because I could create stuff and write some code to make money instead
Why it’s useful to learn all that?
In about a year, I learned SO MANY things in a lot of domains and got better overall.
But we can’t learn everything
Despite all that, there are some domains I volontary don’t take a look, because I know it’s just too much or I know it’s just something I will never work with.
- Mobile apps (except React-Native now, from far away).
- Devops softwares (I mean chef, puppet, ansible, this kind): No problem to use them, but I don’t want to learn the internals, I just don’t care. I just love Docker. :-)
- Datascientism: I LOVE to work with datascientists, they are awesome people. They know the data better than anyone else in the company. But the ML and Deep Learning pieces are a huge world. We all should definitely learn a lot in this domain, this is the present, and it’s our future. Even Google wants to be a ML Company First, betting on the right horse.
- Design: I LOVE to work with designers, they are awesome people. Without them, we’ll still be working with green on black screens. I LOVE watching and studying the work they are doing. I LOVE to criticize visuals.
- Networking: I know the basics and how to debug a bit sderosiaux/curated-system-tools but it’s a very complex world. I suck at understanding company’s architectures and acronyms, how it works etc.
- The cloud: I barely played with AWS, I want to know more, but I’m waiting to have some use cases :).
Each job needs specialized people after all.
As you can see, I also maintain this blog. I pick a topic or a framework I want to learn and share my findings. (I’m using a lot of gists too)
It’s useful because we try to not say stupid things and we must verify our affirmations. Why you should write blogs.
I have a tons of drafts and titles, but it’s very hard to find time to write the articles the way you want. I often takes several evenings doing only that to make an article good enough for me. I still must improve on that part.
Beside staying up-to-date
- Don’t forget your wife, your kids, and your family.
- Don’t forget yourself. Go to gym. Don’t try to be too geeky.
Feel free to comment about what YOU are using to stay up-to-date. I’m impatient to know.