Before we start - I'm working on https://cloudash.dev, a brand new way of monitoring serverless apps 🚀. Check it our if you're tired of switching between 50 CloudWatch tabs when debugging a production incident.
A short while ago I've tweeted a following question:
What’s the best tweet sized lesson you’ve learned in your programming career?23:12 PM - 05 Jan 2020
What’s the best tweet sized lesson you’ve learned in your programming career?
Quite a few of developers from various background decided to share their lessons learned in the Twitter thread and I'd like to share some of them with the dev.to community
1) "Experience comes with time and practice" - Ania
Ania Wsz@aniawsz@tlakomy Experience comes with time and practice and can’t be substituted with memorized concepts and syntax. So relax, learn how to use the docs and search for information, read other people’s code. Enjoy the ride, you’re doing great 👌09:35 AM - 06 Jan 2020
2) "There is no magic happening in the programming world" - Xiaoru Li
@tlakomy There is no magic happening in the programming world
I've come across many tools, libs, concepts that I felt so advanced that they were like magic to me. I therefore fear and procrastinate learning how they actually work
Turns out if I put in effort, any "magic" can be mastered00:19 AM - 06 Jan 2020
3) "When things go wrong, blame the process, not people." - Sophie
@tlakomy When things go wrong, blame processss, not people.07:18 AM - 06 Jan 2020
4) "Manually verify things you’re very sure to be true" - Jamon
@tlakomy When you’re struggling with a particularly stubborn bug, always manually verify things you’re very sure to be true. It often turns out to not be what you expect.
twitter.com/jamonholmgren/…07:47 AM - 06 Jan 2020Jamon Holmgren @jamonholmgrenWhen I pair with one of my devs to help them with a stubborn failing test, the first thing I do is change the test to `expect(true).toBe(true)`. If the test then passes, then we're working in the right file. That's step one. 😅
5) "Software is not the goal, it is the by-product" (I absolutely love this one by the way) - Adri
𝔸𝕕𝕣𝕚 𝔽𝕠𝕟𝕥𝕔𝕦@afontq@tlakomy Software is not the goal, it is the by-product. This is not about writing software, this is about providing value.23:38 PM - 05 Jan 2020
6) How do I set a breakpoint with JavaScript - Tobi
@tlakomy The fact that you can set a breakpoint with the `debugger` keyword in JavaScript.23:38 PM - 05 Jan 2020
7) "Make your worst-case estimation for the time you need to solve the problem, double it, and you'll have a realistic timeline." - Olena
@tlakomy Make your worst-case estimation for the time you need to solve the problem, double it, and you'll have a realistic timeline.12:57 PM - 06 Jan 2020
8) "Always back up your database. Always verify that your backups work." - Harper
Harper Maddox 🧢@harpermaddox@tlakomy Always back up your database. Always verify that your backups work.23:39 PM - 05 Jan 2020
9) "“When you became master in one thing, it’s time to become a student in another”" - Marc
𝙼𝚊𝚛𝚌 𝙱𝚊𝚌𝚔𝚎𝚜 ⚡️@_marcba@tlakomy “When you became master in one thing, it’s time to become a student in another”
(Part of a speech given at my master’s graduation ceremony)05:16 AM - 06 Jan 2020
10) "Solve problems. Learn in public. Be a +10% engineer." - Piotr
@tlakomy Stop caring about best practices and cool patterns. Strive for deeper understanding. Notice trade-offs. Get accustomed with trade-offs in your field. Bring value. Solve problems. Read other ppl’s code (other teams in yr co and OSS). Learn in public. Be a +10% engineer.09:02 AM - 06 Jan 2020
If you're on Twitter, I highly recommend you follow all of those amazing people.
By the way, what are your lessons learned in your career?
Top comments (6)
Hey Tomasz, thanks for the mention. 😃 That was a cool tweet idea of yours that collected a lot of great wisdom! 🙏
I would like to give another few hot tips 🔥:
1. Divide and Conquer
Divide a problem into sub-problems. Reducing the area that affects the problem is oftentimes enough to see the solution. Find the most simple version that proves your assumptions right or wrong. It's a bit like recursion. Make the problem tinier until there is nothing to remove.
These problem-solving skills are crucial as a developer and can be transferred to different domains, like fixing a drain, a printer or your parent's audio equipment that has been so quiet lately.
If that still doesn't help, build a minimal example of what reproduces the problem (MRP). Just imagine doing it for a third-party reviewer on StackOverflow who doesn't know what your project is about #rubberduckdebugging. This should highlight the actual crux of the problem. If no insight is apparent, you have likely a lack of background knowledge. At this point, it is time to read up on related topics. As a last resort, the minimal reproducible example can be used to actually post a StackOverflow question or ask in forums.
2. Searching Is a Skill
Knowing what to search for. Knowing the exact keywords to throw into a search engine is one of the best skills to have. I oftentimes find myself searching a given problem, opening a few tabs, skimming the tabs, realizing they solve a slightly different problem. Therefore, adjusting my search terms, adding new or replacing some of them, opening another few tabs, until I find what I need. You don't have to know everything, but you should know where to find the needed information. Be it Google, StackOverflow, a documentation, a book, colleague or friend.
3. Improve your English
For me as a German, I always have the feeling that resources for learning or documentations in English are much better than German equivalents. Sometimes there isn't even a German documentation (e. g. Vue.js). The choice of resources is also bigger and more varied. Nowadays, I don't use German keywords for searches anymore. This started a positive feedback loop of improving my English which is at a current state of roughly an IELTS band 7 score or a low C1 (CEFR). I was really bad at English during school by the way. I almost did not pass a grade once due to my terrible English.
4. Communication
Mindfully practice clear communication. Which I just did. #learninginpublic
A little late to the party but my fav one, I learned recently
"First 90% of the project is much easier than the other 90%"
Leer, entender,practicar y hacer proyectos.
Read code backwards line-by-line to understand your code better and identify obvious errors 👍
Some comments may only be visible to logged-in visitors. Sign in to view all comments.