How much you progress in life comes down to how much you're willing to feel fear
AND STILL TAKE ACTION ANYWAY.
- Tim Denning
It's not because you're not smart or talented enough,
and it's definitely not because you don't work hard.
No, the real problem is that you're stuck in this stupid mindset that's sabotaging all your efforts.
I'M TALKING ABOUT OVERTHINKING.
- Aphinya Dechalert
Discipline is doing hard stuff WHEN YOU DON'T FEEL LIKE IT.
- Denis Gorbunov
The Obvious Key To Success:
BE PERSISTENT!!!
In the end, it really just comes down to your ability to be disciplined and do the work
EVEN IF YOU DON'T FEEL LIKE IT.
If you are persistent, there is a non-zero chance that you will succeed in whatever it is you choose to do.
To iterate, YOU MUST BEGIN.
- Eve Arnold
DON'T BLINDLY TRUST ANYONE, especially seniors and colleagues.
99% of the time the advice of your colleagues and seniors has a personal agenda.
- Bill Hewlett and Dave Packard
This feeling of believing that you should look for an expert BEFORE STARTING BY YOURSELF because you must be perfect from the beginning stops you from real success.
- Desiree Peralta
We must all suffer from one of two pains:
The PAIN OF DISCIPLINE or the PAIN OF REGRET.
The difference is discipline weights ounces while regret weighs tons.
- Jim Rohn
There will always be discomfort and a little voice in your head telling you to avoid pain.
Instead of running from it,
think about how you'll feel when you look at your fat self in the mirror,
an empty bank account,
or the beautiful girl who walks off because you didn't have the balls to talk to her.
AVOIDING PAIN IN THE PRESENT CREATES MORE OF IT IN THE FUTURE.
SO CHOOSE DISCIPLINE AND DO A LITTLE BIT MORE NOW.
Remember the feeling you had walking through Ron's hospice facility.
Remember the feeling you had walking through Shelia's facility.
The ONLY THING standing between YOU and YOUR GOAL
is the BULLSHIT STORY you keep telling yourself as to why you can't achieve it!
20 Hours Is The Difference Between Where You Are Vs. Where You Want To Be
You can learn the basics of any skill in 20 hours.
Josh Kaufman gave a TED talk about the idea that you only need to learn the basics of most skills to be pretty good at them:
20 hours is long enough to experience dramatic improvements in skill, but not so long that it feels overwhelming to get started in the first place.
- Josh Kaufman
For decades, psychological research has been able to explain PROCRASTINATION as a FUNCTIONING PROBLEM,
not a CONSEQUENCE OF LAZINESS.
Whan a person fails to begin a project or continue work on a project that they care about,
it's typically due to either:
a) anxiety about their attempts not being "good enough"
or
b) confusion about what the first or next steps of the task are.
NOT LAZINESS.
In fact, procrastination is MORE LIKELY when the task is MEANINGFUL and the individual cares about DOING IT WELL.
NOT KNOWING what you are doing IS OKAY.
Having the ability to laugh at your mistakes,
while at the same time being unafraid of jumping into things you don't know how to do,
is an INCREDIBLY POWERFUL QUALITY!
You either build YOUR DREAMS or someone hires you to build THEIRS.
Don't try to figure everything out.
EVERYTHING IS NOT MEANT TO BE FIGURED OUT.
Just accept it as it is.
The hardest reality is,
ACCEPTING THE REALITY.
I take such massive action that all these guys that are 10X smarter then me,
THEY'RE STILL COMING UP WITH STRATEGIES.
All I'm doing is taking massive action and course-correcting along the way.
There Is No Intelligent Design
Stop trying to figure out what is the best way to do it, just start doing it with mistakes.
Humanity has learned everything by trying, experimenting and making mistakes.
Something to keep in mind is that you don't need to be an expert to start teaching.
Everyone is figuring things out as they go.
Alberto Garcia
8 Spooky Signals The Universe Sends You When Your Life Is About To Change
Raphael Yoshiga
As a software engineer, your most important skill is
KNOWING HOW TO GOOGLE THINGS.
Bad: how to interpolate c# string
Good: interpolate c# string
If you have to do it more than twice, AUTOMATE IT.
If you have to write it more than twice, REFACTOR IT.
Validating Input
If you don't check what someone's putting in your system, don't be surprised when it turns out to be something nasty.
Validate data anytime data is coming into your system. Ex: web APIs, business rules, function calls...
Bill Gates
There is NO PERFECT PROGRAMMER.
WE ALL write buggy software.
There is NO PERFECT CODE.
So don't be INTIMIDATED.
Your project will NEVER BE A MASTERPIECE.
In 2 or 3 years it will most likely be outdated anyway.
Bennett Garner
Veteran engineers know that "GOOD ENOUGH" is the STOPPING POINT.
Veteran engineers SHIP simple code that's "GOOD ENOUGH".
The biggest issue with coding BEYOND "GOOD ENOUGH" is that you CAN'T POSSIBLY PREDICT THE FUTURE.
You have NO IDEA how the application will be structured in the future.
Predicting future feature requests IS EVEN HARDER.
chubernetes
Early in my career, the affects of Imposter Syndrome where more pronounced than they are today.
Even with 20+ years of experience in the tech industry, the feeling never really goes away entirely.
When I encounter a technology that may have only been released a few months prior,
I have a tendency to discard my existing knowledge and feel like an imposter for not knowing that new topic.
Use Cognitive Reframing to ease this feeling:
I have to cook now... vs I get to cook now...
This is hard... vs This is working...
Why do I have such bad luck vs What can I learn from this
SINCE THE LIBRARY IS INTEGRATED INTO OTHER PRODUCTS,
IT NEEDS TO BE HIGHLY OPTIMIZED NOT TO CAUSE ANY NEGATIVE PROFORMANCE IMPACT DURING RUNTIME.
THIS MEANS THAT POLYMORPHISM AND HIGH LEVELS OF ABSTRACTIONS ARE AVOIDED AND EFFICIENCY AND PERFORMANCE ARE A TOP PRIORITY
Clean Code Is Slow, But You Need It Anyway...
POLYMORPHISM AND EXCESSIVE SINGLE RESPONSIBILTY PRINCIPLE ARE SLOW!
Quote from the wise Robert C. Martin, aka Uncle Bob
If you are trying to squeez every nanosecond from a battery of graphic processing units,
then clean code may not be for you;
at least in the most taxing of your deepest inner loops.
On the other hand,
if you are trying to squeeze every man-hour of productivity from a software developement team,
then clean code can be an effective strategy towards that end.
When in doubt: DUPLICATE CODE
The cost of a bad abstraction is much, much higher than the cost of dealing with duplicate code.
There's even seemingly conflicting advice,
like 'don't repeat yourself' (aka DRY),
where you're encouraged to add an abstraction, such as a function, instead of writing duplicate code.
The ideal lies somewhere in the middle, between the two.
It's TOTALLY OK to repeat yourself!
In fact, we take the stance that you should repeat yourself by default.
Abstract it away once it's very clear that the code you wrote,
in fact needs, to be used multiple times and that any variations you need to support aren't significant.
Over abstraction can create unmaintainable, untestable monstrosities.
Under abstraction may mean duplicate code,
but duplicate code is almost always better than unmaintainable code.
That is until it becomes unmaintainable itself.
Duplicate code can be fixed via factoring; Over-abstracted code may not be fixable.
1. Rule Of Three
The principle behind the rule is that it's easier to make a good abstraction from duplicated code than to refactor the wrong abstraction. When reusing code, copy it once and only abstract the third time.
If something is used once, IGNORE ANY ABSTRACTIONS.
If it's used twice, COPY IT, it's better.
If it's used three or more times, look at writing an abstraction that suits us TODAY, NOT FOR THE FUTURE
2. Focus on making it easy to delete instead of making it easy to change.
If you create a prototype, violating DRY and duplicating your code is okay. It is okay to write long functions if you are developing an application for yourself or internal teams. Take all the design patterns such as DRY, YAGNI, SOLID as suggestions, but not absolutes.
3. Be okay with refactoring your code often
Codebases are not history books.
It is created to be maintained and changed according to customer's and product needs.
THE GREATEST TIME MANAGEMENT TOOL
The key, the secret super power she had was a list,
make a list and keep updating that list,
work from that list and re-arrange that list as priorities change.
But always have that list,
and do what's on that list.
I did this at FTNI with an MS Word document.
Happiness and freedom begin with a clear understanding of one principle:
SOME THINGS WE CAN CONTROL; SOME THINGS WE CAN NOT