Вы когда-нибудь застряли на проблеме или вам трудно найти решения проблем, с которыми вы сталкиваетесь ежедневно?

Что такое аналитическое мышление?

определение из Википедии:

Аналитическое мышление — это способность разбивать информацию на более мелкие категории, чтобы делать выводы. Аналитическое мышление состоит из категорий, которые включают логическое мышление, критическое мышление, общение, исследования, анализ данных и творчество.

Зачем вам это нужно как программисту?

Как программист, вы либо находите решение уже существующей проблемы, либо создаете ее.

Наилучший подход, используемый многими успешными программистами, — это логические рассуждения, за которыми следуют исследования и реализация.

Реализация в основном состоит из части критического мышления, где проблемы разбиваются на более мелкие части.

Хватит теоретических определений, давайте перейдем к советам.

Мы будем использовать здесь простую задачу в качестве примера.

Задача: создать функцию, которая разделяет имена студентов с длиной строки менее шести символов и выводит список рассматриваемых студентов.

Подождите, что первое пришло вам в голову?

ну, я могу сказать, что вы, вероятно, думали об открытии вашего редактора кода. Это может быть просто, но в реальной ситуации вам нужно понять проблему, разбить ее на более мелкие части и задать себе вопросы о своем решении.

Совет 1:
Псевдокод — лучший и самый простой способ разбить вашу проблему на более мелкие части — это использовать псевдокод.

В статье ниже я рассказал о том, что такое псевдокод и как его можно реализовать.



как я подойду к этой проблеме?

first we are looking for students with names lesser than six characters.
students in this case will be an array.
students = array();
if our students array contains students with six characters name we will add 
them to a new array that will only contain students with six character names.
what if there is no student in the students list with six character? 
in that case we will print a message of not found and exit the code.

Since we will be working with lists of students from array A to array B 
we will have to loop through the list of students for students with 
six charaters.

example : foreach(students as student)
if(string length of student is less than 6)
add the student to this sixCharacterNames array() = student

print the sixCharacterNames array()
or if there is no name with six Characters print not found and end the code.

now with this pseudo code we can write our main code which will save
us lot's of  debugging time and hours of repeating irregular lines of code.

Совет 2:

Вопрос — теперь задайте себе вопросы о псевдокоде и попробуйте дать ответы, основанные на решении, к которому может привести ваш псевдокод после преобразования в реальный код.

Два приведенных выше совета объединяют логическое рассуждение и критическое мышление в один, а как насчет исследований?

Это то, что вы будете делать время от времени в зависимости от проблемы, для этого простого примера исследование было проведено внутри компании,

например, понимание типа данных, которые будут назначены студентам, и алгоритм для итерации между списком студентов и проверки имен студентов в списке и определения того, меньше ли символ имени студента, чем шесть.

Давайте посмотрим, как теперь будет выглядеть наш код:

  
function findStudentWithShortName(array $students)
{
  $sixCharacterNames = array();
  
  foreach($students as $student) 
  {
    if(strlen($student) < 6) 
    {
     $sixCharacterNames[] = $student;
    }else
    {
      
      return "not found";
  
    }
    
    return $sixCharacterNames;
  }
}

$students = ["Burak", "Aaron", "Prince", "Steven", "Jessica","Emre"];

$students2 = ["Mehmet Demir", "Omo junior", "Prince", "Steven", "Jessica","Amelia"];

// Result returning students not found
$result1 = findStudentWithShortName($students2);

// Result returning students with shorter name
$result2 = findStudentWithShortName($students);
echo "Result returning students not found:\n";
print_r($result1);
echo "\n";
echo "Result returning students with shorter name:\n";
print_r($result2);

Это результат псевдокода.

Что мы сделали?

мы проанализировали проблему и написали псевдокод, объясняющий, на чем будет основываться основная логика нашего кода, и с помощью псевдокода мы смогли успешно реализовать наши решения в работающем коде.

Заключение

Существуют тысячи программных подходов к поиску решений проблемы. Выберите тот, который лучше всего соответствует вашим навыкам решения проблем, и научитесь превращать его в ремесло.

Счастливых выходных по отладке!