7 Tips to get better at playing support in DOTA 2

A few things I’ve learnt from playing as a Support:

1. Don’t feed by showing in lane and greedily farming multiple waves of creeps

(unless you’re creating space worth your death). If it feels like you’re “pushing the lane” you actually could just be a just a greedy pig.

2.If you find an enemy sentry on a high-ground ward spot, don’t kill it: place an observer ward there and beg your team to leave the enemy sentry alone.

3. Full mana during laning stage = major pussy alert.

4. Buy sentries as starting items especially if invis heroes on map.

5. Use observer vision in mid lane to scout out mid lane obs wards.

6. After dying, TP back to lane for XP, but also bear in mind that TP may be needed to save your mid / other lane from GANK.

7. My own: as a support in the offlane, if the enemy messes up their lane and a big push comes down early, it can be a good time to leave the lane and GANK mid. This helps win mid and also gives your offlane core some high XP while the enemy is trying to pull their lane and recover balance.

What you should know about making Thumbnails for YouTube

Thumbnails are the very first thing a potential viewer sees when they’re scrolling through YouTube — and making a good first impression is crucial, or else your video will get scrolled right past.

Why am I saying this?

Because someone asked me to review THIS thumbnail today:

I mean, sure… Content must always be king. It doesn’t matter how good your titles and thumbnails are if your videos suck.

But thumbnails must be perfect. Otherwise, your awesome content won’t be seen.

Let’s take a deep dive into thumbnails:

BAD THUMBNAIL linked above is horrid because it just simply doesn’t work.

  • It uses too much text to describe the video
  • Doesn’t have image assets
  • Black text on a colored background doesn’t create enough contrast to stand out

On the other hand, you have the IM-A-PRO-YOUTUBER-AND-I-THINK-I-KNOW-HOW-TO-MAKE-A-GOOD-THUMBNAIL thumbnail, but guess what? he/she actually doesn’t.

I’m talking about these kind of thumbnails (I just jumped into this one):

Why is it terrible?

First of all, this kind of “thumbnail style” is all over the F**KING FEED. These thumbnails just happened to be “the new meta” or “the new industry standard” that they just don’t stand out anymore.

Take a quick look at it. And I mean like a REALLY QUICK LOOK (as if you were scrolling through the feed).

What happens is that this kind of thumbnail style uses too many visual elements that picture gets lost.

I mean, I had to look at it like 8 secs to understand that there are 4 people but they are the same 2 persons in different positions; I still don’t know where they are becuase of the white clothes and the white background; it’s good to have an emoji accompanying the picture, but it’s completely unnecesary when having already too many visual saturation and when you already have like 3 faces making expressions.

Ok… hope you get the point: sometimes less is more.

Try to keep it simple (but not TOO simple as the first example I showed you). It’s all about finding balance.

So, what is a good thumbnail then?

Well, take this one for example:

It just does a lot of things right:

  • it uses faces that show emotions
  • it asks a leading question
  • it uses bright colors to add contrast
  • it has an harmonic background

If you are one of those who prefer to go more like the IM-A-PRO-YOUTUBER-AND-I-THINK-I-KNOW-HOW-TO-MAKE-A-GOOD-THUMBNAIL kind of style… it’s ok, but remember to find the perfect balance.

You can walk that path and have a perfect thumbnail. Just look at this example:

To sum up:

  1. Make sure your thumbnail reflects accurately what’s actually in your video
  2. Grab attention. Remember that anyone browsing on YouTube has an almost endless amount of content options.
  3. Focus on faces. Close up shots, especially if the faces you are using convey emotion.
  4. Keep text to the minimum so it’s easy to read at a glance.

Source:  https://www.reddit.com/r/SmallYTChannel/comments/emilf5/something_you_dont_get_about_thumbnails/ 

Will coding endlessly actually make you better and better at Python?

Question

By now I know pretty much all the basics and things like generators, list comps, object oriented programming, magic methods and etc. But I see people on GitHub writing extremely complicated code and stuff that just goes right over my head, and I wonder how they got so good. Most of the people just say code, code, code. I completely agree that helps in the beginning stages when you try to grasp the basics of python, it helped me a lot too. But I don’t see how you can continue to improve by only coding. Cause coding only reinforces and implements what you already know. Is just coding the projects you want to do, gonna get you up to the level that the professionals are at? How did they get so good? I kinda feel like I’ve hit a dead end and don’t even know what to do anymore. I’d like to know people’s opinion on this, and what it really takes to become a professional python developer, or even a good programmer as a whole whether it be python or not.

Response

This is a classic problem with people who self learn coding.

I’m a software engineer and Python is one of the languages I use. I’m not self taught but to get beyond where you are you need to start looking at computer science as a whole. You need to start looking into algorithms and data structures and also take a look at computational complexity (why your algorithm isn’t as fast as the other guys).

But I cannot stress how important algorithms and data structures are to breaking down that wall you’ve hit. Let’s say for example you have a sorted list of 1 million integers and you want to check if a number, lets say 1203, is in that list. You could start at the beginning of the list and work your way through the list. This is probably how you’d go about it now but this is really slow and bad. What you should do is use binary search. In computational complexity terms, the slow way runs in O(n) time while binary search runs in O(log(n)) time. Obviously the log of n is smaller than n so it must run faster. Knowing things like this is where you’ll get the edge over others.

I’ve seen questions like this being asked before and I’ve come up with a roadmap to follow to get you to a professional level, so I’ll leave it below again!Road-map

Here’s a Python road-map to take you from complete beginner to advanced with machine learning. I don’t know what area of computer science you’re interested in (AI, web dev, etc.) but I’d say do everything up to intermediate and then branch off. You’ll need everything up to AND INCLUDING intermediate to have any chance of passing a tech interview if you want to do this as a career. Hopefully, this provides some framework for you to get started on:Beginner

  • Data Types – Lists, Strings, Tuples, Sets, Floats, Ints, Booleans, Dictionaries
  • Control Flow/Looping – for loops, while loops, if/elif/else
  • Arithmetic and expressions
  • I/O (Input/Output) – Sys module, Standard input/output, reading/writing files  
  • Functions
  • Exceptions and Error Handling
  • Basics of object oriented programming (OOP) (Simple classes).

Intermediate

  • Recursion
  • More advanced OOP – Inheritance, Polymorphism, Encapsulation, Method overloading.
  • Data Structures – Linked lists, Stacks, Queues, Binary Search Trees, AVL Trees, Graphs, Minimum Spanning Trees, Hash Maps
  • Algorithms – Linear Search, Binary Search, Hashing, Quicksort, Insertion/Selection Sort, Merge Sort, Radix Sort, Depth First Search, Breathe First Search, Prim’s Algorithm, Dijkstra’s Algorithm.
  • Algorithmic Complexity

Advanced – A.I. / Machine Learning/ Data science

  • Statistics
  • Probability
  • Brute Force search
  • Heuristic search (Manhattan Distance, Admissible and Informed Heuristics)
  • Hill Climbing
  • Simulated Annealing
  • A* search
  • Adversarial Search (Minimax & Alpha-Beta pruning)
  • Greedy Algorithms
  • Dynamic Programming
  • Genetic Algorithms
  • Artificial Neural Networks
  • Backpropagation
  • Natural Language Processing
  • Convolutional Neural Networks
  • Recurrent Neural Networks
  • Generative Adversarial Networks

Advanced – Full stack web development

  • Computer networks (Don’t need to go into heavy detail but an understanding is necessary)
  • Backend web dev tools (flask, django) (This is for app logic, interfacing with databases etc).
  • Front end framework (This is for communicating with the backend) (Angular 6+, React/Redux)
  • With frontend you’ll also need – HTML, CSS, Javascript (also good to learn typescript which is using in angular. It makes writing javascript nicer).
  • Relational database (MySQL, PostgreSQL)
  • Non-relational (MongoDB)
  • Cloud computing knowledge is good, (AWS, Google Cloud, Azure)

ResourcesBooks

  • Automate the boring stuff
  • Algorithms and Data structures in Python by Goldwasser (This should be the next thing you look at)
  • Python Programming: An Introduction to Computer Science
  • Slither into Python: An Introduction to the Python programming language
  • Fluent Python – Clear, Concise, and Effective Programming

Here’s some ones for other related and important topics:

  • Clean Code by Robert Martin (How to write good code)
  • The Pragmatic Programmer by Andrew Hunt (General software engineering / best practices)
  • Computer Networking: A Top-Down Approach (Networks, useful depending on the field you’re entering, anything internet based this stuff will be important)
  • The Linux Command Line, 2nd Edition (Install the Linux operating system and get used to using the command line, it’ll be your best friend).
  • Artificial Intelligence: A Modern Approach

Online courses:

I am not a fan of youtube for learning as you’re just being hand-fed code and not being given any exercises to practice with so I won’t be linking youtube video series here. In fact I’m not a fan of video courses in general but these two are good.

  • Udemy – Complete Python Masterclass (This is for beginners stage).
  • Coursera – Deep Learning Specialization by Andrew Ng (Advanced – A.I.)

Most importantly, practice, practice, practice. You won’t get anywhere just watching videos of others programming. Try dedicate an hour a day or 2 hours a day on the weekend if you can.

Source:  https://www.reddit.com/r/learnpython/comments/eim1x4/will_coding_endlessly_actually_make_you_better/