Write 🗒️
This is the first and best way to communicate (persistant and remote-friendly). So write all the things you can:
- meetings: decisions, questions and answers, work in progress and pending subjects...
- problems: hardware failures, bugs and their solution, software weakness, code to refactor...
- conferences: draw or write but keep trace to essential content, references, tools, books ...
- code snippets: CORS, http headers, dark options or regex...
Find a tool you can easily share with your team, accessible everywhere (if needed). This knowledge will be available for a new coworker, even if you are on holiday, even if you leave. This is a valuable practice.
Notions, Wiki, Evernote there are many solutions, I use plain text files (with rsync and git).
Learn efficiently 📗
Know yourself: learn at morning, learn at evening, look schema, listen podcast, write and search that's work the best for you because you'll spend a lot of time to learn it's very important to find your best way to aquire knowledge.
Learn:
- when in the day you can learn efficiently
- if graphics, illustrations helps you
- how long time you can be concentrated on reading articles or any technical book
- how long time you can be concentrated on writing code
Allocate time: one hour once in a while (make a habits) to read blog posts.
Use long period (2 or 3h) to practice and write code
Read documentation before writing code (ideally the day before and a few hours before)
when you'll be stuck you'll know:
- where to search solution to any problem.
- if it's possible to do that you want (and if it's a good practice or not).
- better ... because it helps memory to read twice!
Don't try to learn all (really) ❌
- List ten subjects you want to learn, split up to atomic objectives. Choose objective one by one, all interesting articles or tools should be put in a "later" list.
- Start with basics (HTTP, SQL, security, design patterns, language internal ...) they are evolving more slowly than EcmaScript/JS.
- Learn the possibilities of your tools, starting with OS and IDE because many build-in tools are awesome.
- Stop learning deprecated lib, even if you made something with long time ago. Your mind should be clear and not overloaded (like your resume). Sorry JQuery.
Avoid boring stuff 🤖
- Automate your backup, bills payment, domain names renewal, OS updates, let computer do it alone, test that it's work fine and forget about it.
- Use RSS to get news, less ad, less distractions than in classical websites.
- Newsletters are awesome, you'll lose less time than looking at Twitter and content are very relevant.
- Want to try a new tool or language, look at awesome pages on Github, you'll find a lot of ressources about a lot of stuff.
Refactoring - Unit-test - Debug 🧩
- Refactoring: I'll write about this soon. 📝
- Reading open-source code to get new way to write code.
- Learn about your debug tool and TDD.
When a bug occurs ask you theses questions:
- What: define the probleme with the more details you can find.
- Where: which server, which database, which microservice, which part of the code, are any external lib involved ?
- When: date (day saving time), version (app, software), server status (memory usage), duration of the transaction, it is just after any activity like cron ?
- How : how this state arrived here: what's happend before, are the previous data correct?
Of course subscribe to:
#testing
Learn security 🔒
Security is not a feature, it should be the backbone of your app.
Because of privacy and because it can cost a lot of money:
- Start with Victoria's post then learn OWASP top ten threat.
- Remember threat evolving all the time (homographs attacks, JSON hacking, ransomware, *coin-mining).
- Ask your friend, teammates to hack your app in exchange for a beer or chocolate.
- Learn with vulnerableApp like security shepherd.
Be open-minded 👥
- To all domains because we can learn from processes used everywhere like medical team, restaurant or classical factories. Remember Kanban comes from traditionnal industries (car manufacturer Toyota).
- To people from another country, age, skill level because the way they learn or analyze a problem are very interesting.
- To other tools, OS's, programing languages because we are not ennemy.
Understanding your users will help you to build better apps. Get empathy will help you to be a better human.
Thanks for reading - Have a nice day.
PS: it is obvious that you should also read:
Top comments (5)
I'll stick with the writing part, I think of it often after having to check again why this bug of 2 months ago it's happening again 😅 Btw, in the Debug section you have a small typo (
whichj
), just in case you want to edit it ^ ^Thank you for the post!
very import to be assertive about which technologies or topics study. I suggest keeping the focus on abstract concepts and architectures
Thanks for this. Really helpful and good ideas.
This is great advice! The part about wilfully going to awesome-lists is particularly useful especially when you're trying to learn very hard stuff with scattered information everywhere!
Thanks, I'm glad it could help :)