When is precision more important over recall?

When is precision more important over recall? by Alex Garel

Answer by Alex Garel:

Also think of cryptography, searching for prime numbers to make a key. You will prefer to have a prime number for sure than having a number which is maybe a prime

In this video of numberphile, they give two heuristic to find them, only one (the second) is precise.

https://www.youtube.com/watch?v=lEvXcTYqtKU

When is precision more important over recall?

What are some motivational wallpapers?

What are some motivational wallpapers? by @SurajVKhanna

Answer by Suraj Khanna:

Here are some of the best motivational wallpapers I’ve come acrossed the internet:-

  • A ship in port is safe but that is not what ships are built for.
  • Every artist was first an amateur.
  • The future is created by what you do today.
  • Life begins at the end of your comfort zone.
  • Your life does not get better by chance, it gets better by change.
  • To win the game, just remain in the game.
  • Sometimes the questions are complicated and the answers are simple.
  • Your future is created by what you do today, not tomorrow.
  • You’ll miss the best things if you keep your eyes shut.
  • Enjoy your own life without comparing it with that of another.
  • Expect nothing and you will never be disappointed.
  • Shoot for the moon. Even if you miss, you’ll land among the stars.
  • Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid.
  • First they ignore you.
    Then they laugh at you.
    Then they fight you.
    And then you win.

Thanks For Viewing!
Hope you got motivated by these images.

Source:
NOTE: These images are used just for motivating people. I do not take any ownership of this images. This images belong to their respective owners.

What are some motivational wallpapers?

What does a good answer on Quora look like? What does it mean to “be helpful”?

What does a good answer on Quora look like? What does it mean to "be helpful"? by @chimbrew

Answer by Andrei Cimbru:

At the beginning of 2016 I had decided that if there’s one thing that I’m going to stick with from my News Year’s resolution that’s going to be to write great and valuable content.

The first time I ever wrote anything online was May 2015. It was an article about comparing running with entrepreneurship. It got maybe 1000 views and 10 comments in 5 months. But those comments were so encouraging that they propelled me in a journey of reverse engineering and creating content that people value.

Through a process I constantly tweak and improve I managed to get almost 3 million readers in 7 months this year. Got published on different news outlets such as AskMen, Thought Catalog, Huffington Post and also build a newsletter of almost 3000 people. This later encouraged me to create my own blog Rule Your Way.

So let’s see the process of writing valuable content that your readers can connect with.

People always fear they don’t have anything interesting to say. If you are alive, you are all set. You can turn anything into a story, a lesson or a valuable piece of advice for someone. There’s 7 billion people out there. Someone is going through something you already did and you could help them. The fun part in this process is that you don’t need to stress about a “niche” yet. Write about what you care and polish it until it’s the most valuable piece of content related to that topic.

To achieve this you go through the following steps.

You might want to write about your favourite barbecue sauce and how that goes amazingly with vanilla ice-cream (give me a second to recover from that picture in my head).

I’m sure there are at least 100 people in the world who would want to read about that but if you also have the talent to write about social skills that can help people make friends easier you might find 10x times more people who want to read about that.

Set your priorities to help as many people as possible.

Let’s take the example from above: friends and relationships. This is an important aspect in every person’s life. But you know what’s a bigger priority? Having a roof over your head, not starving of hunger, feeling safe from attacks and violence.

Someone who doesn’t know if they will be able to pay rent tomorrow doesn’t really care about “10 yoga stands that make you feel more energetic”. They would be more attracted to something like “How to stand out at your next interview”.

The higher up the pyramid of needs you go the less people you will find.

The Hook: How does your content stand out in the first few lines?

The Reason: Why should I continue reading? Why should I care?

The Shift: How are things now vs how they could be in the future. (this is where you include tips, strategies, tactics, the events of the story, analogies, supporting data)

The Personal Touch: What’s the unexpected element you can bring to this topic?

The High Note: What’s the main take-away for the reader or the “Aha” moment?

The Closure: Wrap up the journey and key learning points.

The Call to Action: Where do we go from here? What’s next?

Checking if your content has these 6 elements gives it a higher chance to spread.

Interesting: “I’m reading more information about something that’s trending today”

Needed: “Is it something I need in my life or something that’s just good to know?”

Actionable: “Nice to know but can I also implement this somehow?”

Has a Twist: “Wow! I read 10 more posts about this topic but this was unexpected!”

Self Interest: “How does it serve me or rise my own value in the world?”

Relatable: “I totally connect with your initial situation and how you overcame it”

It’s easy to start writing a 1000 word story about “How does a productive day in your life look like” where you talk about habits and useful time management hacks.

But if 80% of your article is about how you walk your cat every morning so it can do its cat rituals and 20% actual useful information that you reader can implement, they will not come back a second time when they see your name pop up. (Or maybe they will if your cat walking stories are spectacular and intriguing)

I started a blog only after writing on online platforms months before. If you ever want to start a blog what should your focus be? It can be one category, maybe two but make sure you don’t stretch too much because nobody will have any idea what’s your expertise.

As a conclusion remember these sentences to keep you going.

  • You might follow these rules to the letter. You might put in a lot of work and nobody will care. Answers that took me 10 hours to create barely made 1000 views and articles that I wrote on the commute from my phone got 600k views. There is nothing more crushing that putting so much work in a post and see it gather spiderweb. Focus on the process not the results. Create. Learn. Improve. Repeat.
  • Don’t be afraid to write authentically in your own voice as if you would be talking to your closest friend. When creating anything online people will always judge you. Might as well judge you for who you truly are.
  • Many times you will feel like an imposter. You will be overwhelmed by the attention you get. You will also be overwhelmed by the failed posts and ask yourself if you have any idea what you’re doing. Find your own true fan and focus on writing the best quality piece you can for him.
  • You will face a lot of resistance. You will try to keep yourself “busy” with things that don’t really matter that much for the overall result just so you feel like you’re doing something. This is just delaying the hard work. The hardest thing for a writer is to stare at a blank page and conquer it.
  • You can copy your idol all you want and study his or hers methods to reverse engineer them. To truly stand out you must eventually find the courage to write in your own original way even if it means losing some initial traction. You have a unique mind. Make your writing match it.

I troubleshoot through life and deconstruct the science behind confidence, positive influence and how to create remarkable work.

Grab the PDF version of the full infographic from above on my blog.

What does a good answer on Quora look like? What does it mean to "be helpful"?

What is the best way to feel motivated to keep learning programming?

What is the best way to feel motivated to keep learning programming? by Ken Mazaika

Answer by Ken Mazaika:

Motivation is fickle. There’s another trait that’s more critical to learning programming.

Let me explain through a story.

When I was a teenager, I wanted to learn guitar. My sister was in a Ska band and their guitar player seemed seriously cool. He would perform at concerts in front of all my peers. The music they performed was awesome. And I thought it would be so cool to become the lead guitarist of an awesome band.

I convinced my parents to take me to Guitar Center to buy an electric guitar. I also signed up for guitar lessons from a guy who worked at Guitar Center, too.

At the time, one of my closest friends, James, also decided that he wanted to learn guitar.

His parents got him an acoustic guitar, and he started taking lessons with a really talented teacher name Laurie. He attended Berklee College of Music, and he was also a professional touring Jazz Guitarist. He didn’t need to give guitar lessons. He just did it because he liked teaching.

I jumped right into playing chords, and I could play most of the chords used in popular songs. Given that most pop songs are made up of the same four chords, I was capable of playing some cool stuff with basically zero knowledge of music theory and no understanding of what actually made up a chord.

Meanwhile, my friend James was learning at the same time and was miles behind my pace.

He was doing things like reading sheet music, which I thought was pointless. During this time, he built up a solid foundation in music principles. But it took him over a month before he started playing the chords I was playing.

But a short time later, James surpassed me. And not even by a little bit. He ended up miles ahead of me. When we would talk about music, he would say a bunch of things that I didn’t understand at all. Not only was he capable of playing pop music, but he also could play Jazz, Blues, Folk and more. To make things even more embarrassing for me, James was even composing songs of his own.

I was still playing the same four-chord songs.

I asked James about his instructor Laurie, and shortly after found out guitar lessons with Laurie were more expensive than the lessons from my Guitar Center instructor. But at this point, it was pretty easy to see why, so I convinced my parents to let me switch to Laurie.

I took guitar lessons from Laurie for several months.

He would teach me fundamentals and ask me to practice them. I would go home and play my guitar, but I couldn’t break the habit of practicing the same 4 chords I learned before. Whenever it came time to practice the new type of work that Laurie assigned me, the work that actually made a difference, I’d lose motivation to play and do something else.

Eventually, I stopped taking guitar lessons.

I never got further than the skill level that I reached after a few weeks of lessons. And it wasn’t because I didn’t spend the time playing the guitar. Because I did. I was motivated enough to keep playing those 4 chords. But the motivation was fickle.

When it came to pushing myself to learn the stuff that would unlock my potential, I lacked the discipline I needed.

Guitar remained a big part of James’ life. He went on to play concerts to live audiences. I haven’t touched a guitar in years.

Most people have probably had a similar experience.

Whether playing the guitar, trying a new sport, learning to code, or really attempting to do anything new. You’re motivated enough to reach a certain point in the learning process. But you’re unable to maintain that motivation and do things the right way, and it becomes really easy to just give up.

So, how do you feel motivated enough to not give up?

The answer is this:

You don’t.

Motivation gets you started. But it takes discipline to stick to your path and achieve your goals. Discipline is the mental fortitude of putting in the work that will help the most in the long term, even if there are things that you would prefer to do in the short term.

In your path of learning to program, you need need to develop the discipline to:

  • Practice consistently. This is the only way to make consistent progress.
  • Practice things that are outside your comfort zone. The best developers volunteer for work that makes them nervous.
  • Gain a solid foundation in the fundamentals before moving onto the next thing. Learning things like algorithms, data structures, and how to perform computational transformations is essential to enabling yourself to level up as a programmer. This will also serve you well in the technical interview process.
  • Become adaptable at your craft. Technology is evolving quickly, so you need to set up the framework of teaching yourself new concepts on the go.

Learning to program is hard. And it takes time. So in order to do it, you need to turn that initial boost of motivation into long-lasting discipline.

But now that you know what it takes, you’ve got this.

So what are you waiting for?

If you liked my answer, I’d really appreciate it if you upvoted it by clicking the light blue button below.

What is the best way to feel motivated to keep learning programming?

What are some mind-blowing facts about mathematics?

What are some mind-blowing facts about mathematics? by Soham Bansal

Answer by Soham Bansal:

This hexagon is a special diagram to help you remember some Trigonometric Identities

Sketch the diagram when you are struggling with trig identities … it may help you! Here is how:

Building It: The Quotient Identities

Start with:

tan(x) = sin(x) / cos(x)

To help you remember
think "tsc !"

Then add:

  • cot (which is cotangent) on the opposite
    side of the hexagon to tan
  • cosec or csc (which is cosecant) next, and
  • sec (which is secant) last

To help you remember: the "co" functions are all on the right

OK, we have now built our hexagon, what do we get out of it?

Well, we can now follow "around the clock" (either direction) to get all the "Quotient Identities":

Clockwise

  • tan(x) = sin(x) / cos(x)
  • sin(x) = cos(x) / cot(x)
  • cos(x) = cot(x) / csc(x)
  • cot(x) = csc(x) / sec(x)
  • csc(x) = sec(x) / tan(x)
  • sec(x) = tan(x) / sin(x)

Counterclockwise

  • cos(x) = sin(x) / tan(x)
  • sin(x) = tan(x) / sec(x)
  • tan(x) = sec(x) / csc(x)
  • sec(x) = csc(x) / cot(x)
  • csc(x) = cot(x) / cos(x)
  • cot(x) = cos(x) / sin(x)

Product Identities

The hexagon also shows that a function between any two functions is equal to them multiplied together (if they are opposite each other, then the "1" is between them):

Example: tan(x)cos(x) = sin(x)

Example: tan(x)cot(x) = 1

Some more examples:

  • sin(x)csc(x) = 1
  • tan(x)csc(x) = sec(x)
  • sin(x)sec(x) = tan(x)

But Wait, There is More!

You can also get the "Reciprocal Identities", by going "through the 1"

Here you can see that sin(x) = 1 / csc(x)

Here is the full set:

  • sin(x) = 1 / csc(x)
  • cos(x) = 1 / sec(x)
  • cot(x) = 1 / tan(x)
  • csc(x) = 1 / sin(x)
  • sec(x) = 1 / cos(x)
  • tan(x) = 1 / cot(x)

Bonus!

AND we also get these:

Examples:

  • sin(30°) = cos(60°)
  • tan(80°) = cot(10°)
  • sec(40°) = csc(50°)

Double Bonus: The Pythagorean Identities

The Unit Circle shows us that

sin^2 (x) + cos^2 (x) = 1

The magic hexagon can help us remember that, too, by going clockwise around any of these three triangles:

And we have:

  • sin^2(x) + cos^2(x) = 1
  • 1 + cot^2(x) = csc^2(x)
  • tan^2(x) + 1 = sec^2(x)

You can also travel counterclockwise around a triangle, for example:

  • 1 – cos^2(x) = sin^2(x)

Hope this helps you!

Source: Magic Hexagon for Trig Identities

What are some mind-blowing facts about mathematics?

What are some bad programming practices every programmer needs to be aware of in order to avoid them?

What are some bad programming practices every programmer needs to be aware of in order to avoid them? by Ken Mazaika

Answer by Ken Mazaika:

There are 35 common bad programming habits.

Well, there are probably more. But 35 sounded cool and that’s all I could think of.

I put the most important ones at #17 and #35 because I’d like for you to read the full answer. I think you’ll find it valuable.

1. Acting like you have all the answers. Don’t cling onto the insecure feeling that you have to know everything. You don’t. And that’s ok.

2. Attending meetings all day. If you spend most of your day in meetings, you should consider spending your time more productively.

3. Acting defensively when someone critiques your code. The best developers are willing to have an open and straightforward conversation about the code they’ve written and how it can be improved.

4. Giving up too soon. Too many programmers get so close to a solution, only to give up right before they’re about to solve the problem.

5. Refusing to ask for help. By going through the process of articulating your problem to someone else, you’ll often discover the solution. This is what is known at “rubber duck debugging.”

6. Passing blame to others. The most valuable developer is the one who takes ownership and responsibility for the code they write.

7. Writing code that prematurely optimizes other code. In most situations, the performance advantage gained from fully optimizing code to the point that it’s difficult to understand is not worth it.

8. Ignoring the opinions of other developers. One of the best ways to learn and grow as a developer is to pair program with developers who have more experience than you. Go seek out other people’s opinions.

9. Not knowing how to optimize code. There are some situations where performance is a big issue, such as problems with:

  • Algorithmic Complexity
  • Inefficient Database Operations
  • Third party APIs
  • N+1 Queries

When performance issues arise, you need to know how to analyze them, understand what is taking the time, and how to fix the problems.

10. Undervaluing relationships with other members of the team. You are hired to write code. But you need to be able to interact with other members of the team, too.

11. Engaging in office politics. Sometimes, other dev teams will make decisions that you think are incorrect. But as long as you can accomplish your team’s objectives, it’s best to simply work around other teams’ quirks, rather than fighting them too hard.

12. Freezing under pressure. When you operate in a scenario where users cannot use the product, there is a ton of pressure. You need to develop the ability to stay calm and get the job done.

13. Being incapable of writing bad code. In the real world, there are trade-offs based on things like:

  • Deadlines
  • Experiments
  • Urgent bugs that need to be fixed immediately

You need to have the mentality that it’s ok to write bad code to fulfill the demands at hand.

14. Over-engineering simple problems. Don’t create confusing solutions to easy issues.

15. Acting like a boss. Not a leader. Too many developers don’t know how to manage other people. You should be the person who other devs turn to for guidance and direction- not just step-by-step instructions.

16. Using the wrong tool for the job. Stop making decisions based on “it’s what I know.” You need to be open to using different technologies, languages, and frameworks.

17. Refusing to research coding questions. Google is one of the most powerful tools in a programmer’s toolbelt.

18. Not maintaining a good grasp on your tools. Since you’ll spend a large number of hours using things like text editors, the command line, and other tools to write code, it’s essential to master them. Take the time to learn the tips and tricks that make you more efficient.

19. Avoiding error messages. Code errors happen frequently. They also generally include very valuable information about what went wrong, why it happened, and what lines of triggered the problems. You should seek out error messages, rather than try to avoid them.

20. Counting the hours. The best developers enjoy the time they spend writing code and find themselves getting lost in the in it. It’s not like something will change after you code for 10,000 hours.

21. Refusing to learn from mistakes. This is counterproductive. When mistakes happen, just zoom out and understand these 3 things:

  1. What was the ultimate cause of the mistake?
  2. Could processes or behaviors be put in place to prevent this category of mistake from happening in the future?
  3. Could the mistake be detected sooner and had less of an impact.

Refusing to learn from your mistakes will cause you to repeat them.

22. Being afraid of throwing away code. Know that spending three days to write the wrong solution will teach you more falling victim to analysis paralysis.

23. Romanticizing your developer toolkit. Some developers love the text editor known as vim. Others hate it and love the text editor known as emacs. But there will be scenarios where it makes sense to use one over the other

24. Separating yourself from the developer community. There are programming communities all over the place. With organizations like Railsbridge, Girl Develop It and events like RubyConf, RailsConf and much more, there’s so much to discover.

25. Not having a Twitter account. The creators of massive open source projects, like ruby, rails, JavaScript, and other tools, are present on Twitter. Spending time here can give you a glimpse into the minds of the people who design the software that you use.

26. Not giving back to the community. You should embrace the programming community as early as possible. If you do so, you will realize how helpful and friendly it is.

27. Struggling for hours to solve something, solving it, and not documenting it. Every so often, you’ll encounter a strange, really specific problem that someone on the Internet hasn’t solved yet. After spending hours cracking the code on your own, it’s your duty to write the post so that you can help the next person who encounters the problem.

28. Writing too many or not enough comments in code. Comments are essential notes to developers. But like anything, they should be done in moderation.

29. Lazily refusing to update issues for product managers. It’s important for PM’s to get timely updates and know the status of the product (within reason). If you don’t update the issues in a timely manner, it can cause a lot of headaches.

30. Frequently bundling unrelated features into the same initiative. It can be easy to get into the habit of grouping two unrelated things into the same initiative. And if the two different things are both large in scale, untangling the issues can be super complicated.

31. Carefully coming up with a smart plan with other members of the team, only to completely abandon it and change course entirely when one unexpected thing happens. This is pretty much the worst thing you can do.

32. Sticking to a thought-out plan that clearly isn’t working. The only thing worse than abandoning a plan at the last minute is refusing to stop executing a bad idea.

33. Consistently apologizing for the bad code you’re writing. If you find that you’re apologizing for bad code on a consistent base, it could mean that you need to reevaluate your deadlines.

34. Not spending the energy you should performing code reviews. The dev team is in it together and it is every team member’s responsibility to make sure the code that every other member is contributing lives up to the high standards of the team.

35. Not spending enough time mentoring other devs on your team. It’s your job to ensure that your team is learning, growing, and becoming better at programming on a regular basis.

I strongly believe that every developer is a work-in-progress. So it’s totally normal and ok to have these bad habits. In fact, the key to improving as a developer or as any other type of professional is to follow 3 steps:

  1. Recognize that you have bad habits
  2. Find the motivation to change them
  3. Turn that motivation into practice by eliminating the bad habits and developing good ones

If you read this answer, you just finished step one. Now it’s time to go after the next two.

I wrote about telling a senior developer at Microsoft that he was wrong, and how it changed my career. Click here to read the story.

If you liked my answer, I’d really appreciate it if you upvoted it by clicking the light blue button below.

What are some bad programming practices every programmer needs to be aware of in order to avoid them?

What are the most mind-blowing tricks used during any war?

What are the most mind-blowing tricks used during any war? by Richard Muller

Answer by Richard Muller:

In the first year of the “Battle of Britain”, the British had achieved an unbelievable technological breakthrough: they had developed magnetrons, devices that could produce such intense microwaves that they made radar possible. For many months the Germans were unaware of this. Had they invaded England, they very likely would have succeeded, but because of successful British deception, they greatly overestimated the number of British fighter airplanes. The reason was that every time the Germans sent a squadron over the channel, they were met by British fighters. They thought that the British had thousands of planes deployed all along the coast. In fact, the number was quite small, but the Brits could see the Germans coming, so they could alway meet them. Some people say that radar was the invention that saved Britain.

Even more remarkable was the cover story that the British spread to hide the radar technology. There was a known medical connection between an illness called “night blindness” and a deficiency of vitamin A. So the British spread the story that they were able to counter the Germans by feeding their pilots lots of carrots, which have abundance of vitamin A. This story did indeed leak and the Germans believed it and they started feeding their pilots carrots too. In fact, carrots do not improve your eyesight; they just cure a rare vitamin deficiency disease.

The amusing part of this is that the British families also heard that carrots improve eyesight, and told their children to finish their carrots for stronger eyes. The mistaken information spread rapidly around the world. When I was a child, that is what my mom told me! Many people today still believe that false story that eating carrots is good for your eyes.

I had heard this story from Luis Alvarez, who had been in Britain helping fighter pilots with the “Ground Controlled Approach” that he had developed (and which had saves hundreds of lives of the pilots). Many years later, I had the honor to meet R.V. Jones, the man in Britain who was in charge of deception. He wrote a book about British use of deception in WWII called Most Secret War and I talked to him about his experiences. He verified to me that he had been the person responsible for the carrot deception.

What are the most mind-blowing tricks used during any war?