Notes ๐
Here are some things I wish I knew before I started... well, anything! ^_^ These range from unspoken knowledge around programming paradigms to self-behavioral management. (Plus whatever else comes to mind.)
These are not maxims; they're things I remind myself of. I'm presenting them here in case they help other people as much as they help me. You may not agree, and that's totally valid! I am not an Oracle. Or Lucent. Nor do I have 9 plans. I'm just me, and I'm still figuring out what that means.
Also, these are in no particular order. Eventually, they will be tagged and categorized. Everything is a work in progress. Oh! That reminds me!
Let's go! ๐๐
Clarity matters more than cleverness.
- Code golf in prod is an anti-pattern.
- Speed of code matters more than compactness of code.
- Expeditiously written, yet elegant code is a good goal.
TDD, REPLs, and short dev cycles are dope. ๐ฅ๐ฅ๐ฅ
You aren't gonna need it. Refactor when necessary. Don't prematurely over-optimize.
Everything is a work in progress. It's okay if something isn't done; few things truly are, so... why stress so much? Be kinder to yourself.
Perfection isn't real. Get as close as you want, but don't do so to your detriment.
C# is discount Java. Kidding ๐. They're pretty similar, though.
Try that thing you don't think you like. You might learn something, or perhaps fall in love.
Code explains the comments to the computer, rather than comments explaining code to the human.
- Comment-driven development is not a myth, but a real thing that's quite powerful.
There's really no perfect paradigm โ just the right tool at the right moment.
- There can be more than one 'right tool.'
Functional programming is largely pipelining and ETL on a small scale.
Avoid returning nulls and voids if you can. Be clear about errors. Or, "Handle your errors, Lilith!""
You do not need to be completely brilliant to code. But you do need to be persistent! And voraciously, continually learning.
- You may need to be a little stubborn. It's a labor of love. ๐
Object-oriented programming is really about sending messages around.
- Object methods are things you request, not functions you apply. ๐คฏ
You know those square brace things in C#? Those are attributes. And they're kinda neat. Investigate them!
Impostor syndrome lessens over time; it also gets easier to deal with the more you learn and grow.
Whatever it is, it can probably wait. Take some notes, save your place, and go do the other, more important thing.
Stay mindful of the cost of context-switching.
- We are single-threaded, context-switching animals. We're great at throwing all of our brainpower at one thing at a time โ but we're not so great at juggling multiple things.
Always become a better asset to everyone around you.