Tutor profile: Joshua S.
Subject: Python Programming
Why should I use python and when should I not use python?
Python is easy to read and easy to write. That makes it a good choice for quick scripting and quick software prototypes. It also has a wealth of data science libraries that make it good for building tools for crunching data. However python has two big downsides. It is slow which makes a bad choice for final products that need to handle a lot of data with fast response time. The second downside is Python needs the python runtime which takes up a fair amount of memory making python not the best choice for memory limited environments like embedded software devices.
Subject: Software Engineering
I am learning about coding and it seems like there is so much to learn. How are software applications structured in the real world and what are the terms I need to know to start learning how the pieces fit together?
Subject: Computer Science (General)
I am hearing and learning about so many different search algorithms such as Binary Search, Breadth First Search, Depth First Search etc. How do I know when to use which algorithm, and how can I remember?
Well lets dissect this. Before you decide on a search algorithm, you first need to understand what data structure you are working with. If you are given a sorted array and you need to find a particular value, Binary search would be a good choice. However if you have a graph structure and you need to find a path to a particular node, Breadth First Search, Depth First Search or other Graph Search algorithms would be a good choice. In order to choose a particular Graph Search algorithm, you need to know some more details about the graph such as the edge weights or if the likelihood of finding the goal node in a deep or shallow node. As for how to remember, the best thing to do is practice implementing these algorithms. That way it will reinforce in your brain not only how the algorithm works but also the data structure that they are used on.
needs and Joshua will reply soon.