Архив метки: программирование

Как быстро стать программистом без ВУЗа?

Сейчас мир кардинально изменился,  и если еще пару лет назад все гнались за тем, чтобы получить новую профессию и закончить ВУЗ, то сегодня люди дают себе время на раздумья. Многие считают, что освоение профессии занимает много времени, если речь идет о классическом обучении в университете, то это действительно так. Однако есть и другие способы получения престижной и прибыльной профессии. К примеру, если вы мечтаете работать в сфере ИТ, то вы без проблем можете самостоятельно пройти обучение программированию онлайн.

Конечно, поступив в университет или колледж можно стать программистом 1С. Однако там вы сможете получить только устарелую теоретическую базу, которая по факту не совпадает с действительностью. ІТ — это сфера, которая постоянно развивается, поэтому вам необходимо будет самостоятельно учиться.

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

Конечно, в случае с самообразованием временные затраты будут не такими большими, как в случае с ВУЗом, однако они напрямую зависят от желаемого результата. Однако стоит добавить, что учиться нужно всегда, ведь в любой профессии со временем появляется что-то новое, и если вы хотите быть востребованным программистом, нужно следить за всеми новинками. Скорее всего вы слышали утверждение о том, что достаточно потратить всего лишь 10 000 часов для того, чтобы стать профессионалом в любой сфере. Это действительно так, однако для того, чтобы стать начинающим программистом, нужно будет потратить в разы меньше времени.

Тут все полностью индивидуально и зависит от талантов, но в большинстве случаев от 6 до 12 месяцев вполне достаточно для того, чтобы вырасти до уровня Junior в программировании.

С одной стороны, намного проще тем, у кого уже есть техническая база с колледжа или ВУЗа (желательно в математическом направлении), ведь в таком случае можно намного быстрее освоить хотя бы на начальном уровне HTML, CSS, JavaScript, фреймворки. Имея в арсенале только такие навыки вы можете смело брать первые заказы на фрилансе.

 

Работа программистом: модно или прибыльно

Перед тем, как начинать искать курсы программирования онлайн и принимать решение о кардинальной смене своей деятельности, необходимо решить, нужно ли это вам вообще. Многие идут в эту профессию исключительно из-за того, что она востребована и высокооплачиваемая. Безупречно, это так, но если вы не будете любить то, чем занимаетесь, то вряд ли с этого выйдет что-то толковое.

Но если вы все таки твердо решили идти в ИТ и хотите пройти unity 3d обучение, то эта сфера вас точно не разочарует, поскольку профессия программиста востребована на рынке. Огромное преимущество в возможности дистанционной работы.

 

Онлайн курсы программирования — современное обучение у вас дома

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



2021-08-31T21:03:55
Программирование

Условие IF в Ruby

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

В этом руководстве мы сосредоточимся на том, как реализовать операторы условий на языке программирования Ruby. Используя условные выражения Ruby, мы можем проверить наличие определенного условия и выполнить указанное действие в зависимости от результата.

Самый простой способ принять единственное решение в Ruby — реализовать оператор if.

 

Заявления Ruby If

Оператор if принимает условие и оценивает, истинно оно или ложно. Если это правда, он выполняет решение.

Общий синтаксис оператора if в Ruby:

if condition

// do this

end

 

Давайте воспользуемся примером, чтобы показать, как реализовать приведенный выше синтаксис. Например, предположим, что мы продаем билеты в кино только лицам 18 лет и старше, мы можем сделать следующее:

age = 20

if age >= 18

print "Билеты в кино стоят 10 баксов!"

end

 

В нашем примере код возвращает инструкцию:

«Билеты в кино стоят 10 долларов». Начнем с определения переменной, в которой хранится возраст. Затем мы реализуем оператор if, который проверяет, больше ли возраст или равен 18. Если это правда, мы продаем билет в кино; если нет, ничего не делайте.

 

Условные выражения Ruby

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










Символ оператораФункциональность
>Оператор больше проверяет, больше ли значение или выражение слева, чем справа
<Оператор меньше чем проверяет, меньше ли значение или выражение слева, чем одно справа
==Оператор равенства проверяет, равны ли наборы значений
>=Больше или равно
<=Меньше или равно
!=Не равно и проверяет, не равно ли значение слева значению справа.

 

Отрицание условия

В Ruby мы можем отменить условие, добавив восклицательный знак (!) Перед условием. Это изменит результат условия.

Например:

i = 10

if !(i < 3)

print "Привет, я отрицаю!"

end

 

Мы начинаем с определения значения i как 10. Затем мы проверяем, меньше ли 10, чем 3, что дает ложное значение. Однако из-за (!) Условие становится истинным, что приводит к печати строки.

 

Заявление If Else

Чтобы реализовать множественную логику, основанную на разных условиях, мы можем использовать операторы If Else. В этом случае, если условие не выполняется, сделайте это.

Давайте возьмем приведенный выше пример с билетами в кино. Если пользователю не исполнилось 18 лет и мы ничего не делаем, это может запутать конечного пользователя.

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

age = 20

if age >= 18

print "Билеты в кино стоят 10 баксов!"

else

print "Вам должно быть не менее 18 лет!"

end

 

Если мы запустим приведенный выше код, мы должны получить:

> ruby conditionals.rb

"Билеты в кино стоят 10 баксов!"

 

Затем давайте изменим возраст до 18 лет:

age = 17 

if age >= 18 

print "Билеты в кино стоят 10 баксов!" 

else 

print "Вам должно быть не менее 18 лет!" 

end

 

Как только мы запустим код, мы должны получить инструкцию:

> ruby conditionals.rb

"Вам должно быть не менее 18 лет!"

Заявление If…Elsif…Else

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

В этом случае мы можем использовать операторы if..elsif… else. Общий синтаксис для этого:

if (condition)

# do

elsif condition2

# do

elsif condition3

# do

elsif conditionN

# do

else

#do

 

Давайте реализуем вышеуказанную логику в нашем примере билета в кино. В этом примере у нас будет четыре возрастных скобки, как показано в приведенном ниже коде:

Ввод «Введите свой возраст:»

age = gets

age = age.to_i

if age <= 17

puts "Вы не достигли совершеннолетия для покупки билета"

elsif age > 18 && age <= 24

puts "Билеты стоят 10 баксов!"

elsif age > 24 && age < 40

puts "Билеты стоят 15 баксов!"

else

puts "Билеты стоят 20 баксов!"

end

 

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

Наконец, мы создаем возрастные рамки, оценивая возраст и стоимость билетов.

Вот пример вывода:

Введите свой возраст:

20

Билеты стоят 10 баксов!

Введите свой возраст:

5

Вы не достигли совершеннолетия для покупки билета

Введите свой возраст:

50

Билеты стоят 20 баксов!

Ruby If в одну строку

Если нам нужно проверить только одно условие в Ruby, мы можем реализовать однострочный формат следующим образом:

age = 18

puts "Билеты стоят 10 баксов" if age >= 18

 

Мы можем выразить сказанное выше так: «Если возраст больше или равен 18, выведите следующее».

 

Заключение

В этой статье мы обсудили, как реализовать условия if в Ruby.



2021-08-25T11:09:01
Ruby

Как создавать классы и объекты в Ruby

Ruby — это мощный язык программирования, предлагающий современные функции и инструменты. Одной из таких функций является поддержка объектно-ориентированного программирования, включая полиморфизм, инкапсуляции, абстракцию, наследование и многое другое.

В этой статье будет обсуждаться ключевая концепция объектно-ориентированного программирования: объект и классы.

 

Что такое классы Ruby и объекты O?

Начнем с класса.

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

С другой стороны, объект — это единственный экземпляр класса. Возьмем, к примеру, машину. Мы можем создать класс, который описывает чертежи сборки автомобиля. Атрибуты класса могут быть всем, что есть у автомобилей:

  1. Двигатель
  2. Дверь
  3. Модель
  4. Производитель

 

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

Классы очень удобны, когда вам нужно создать похожие объекты только с различными аспектами. Вместо объявления блока кода для автомобиля Mercedes, Bugatti, Tesla и т. д. Вы можете создать один класс, на который ссылается каждая модель.

 

Как создать класс и объект в Ruby

Ruby — невероятный язык, который также очень прост в использовании. Он предоставляет простой синтаксис для создания класса.

Общий синтаксис:

class ClassName



# БЛОК

end

Мы начинаем с вызова ключевого слова class, за которым следует имя класса, который мы хотим создать. Имя класса начинается с заглавной буквы и использует CamelCase для следующих имен.

Внутри класса мы определяем все переменные и методы, которые потребуются классу.

Мы закрываем код класса с помощью ключевого слова end.

 

Пример

Давайте посмотрим на примере класса автомобиля.

class Car

def initialize(engine, name, year)

@engine = engine

@name = name

@year = year

end

def ignite

puts "Зажигание!"

end

def stop

puts "Остановка транспортного средства"

end

def accelerate(target_speed)

@target_speed = target_speed

puts "Автомобиль разгоняется до #{target_speed} m/h"

end

end



f = Car.new("a108d", "F A-Class", 2010 )

g = Car.new("00Ca", "Zero G-8", 2011)

h = Car.new("777d", "G Potato", 2022)

В приведенном выше коде мы начинаем с определения класса автомобиля. Внутри класса мы определяем метод инициализации, особый тип метода в Ruby, используемый для создания вызываемого экземпляра класса с необходимыми аргументами. Метод инициализации действует как конструктор для new.

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

Наконец, мы создаем экземпляр класса автомобиля. Мы называем это экземпляром, потому что мы создаем экземпляр класса.

Мы передаем параметры методу инициализации, который создает три уникальных типа автомобилей.

Использование методов класса

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

Синтаксис:

my_object.method

Возьмем предыдущий пример; Чтобы зажечь автомобиль f, мы можем:

// Ссылка на код выше

f = Car.new("a108d", "F A-Class", 2010 )

g = Car.new("00Ca", "Zero G-8", 2011)

h = Car.new("777d", "G Potato", 2022)

f.ignite

Если мы запустим приведенный выше код, мы увидим, что автомобиль успешно загорелся, напечатав строку «Зажигание!»

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

 

Получите исходный класс

Каждый тип в Ruby — это объект класса. Вы можете просмотреть, из какого класса создан объект, с помощью метода класса.

Например:

class Car

def initialize(engine, name, year)

@engine = engine

@name = name

@year = year

end

def ignite

puts "Зажигание!"

end

def stop

puts "Остановка транспортного средства"

end

def accelerate(target_speed)

@target_speed = target_speed

puts "Автомобиль разгоняется до #{target_speed} m/h"

end

end



f = Car.new("a108d", "F A-Class", 2010 )



puts "hello".class

puts 10.class

puts 11.023.class

puts f.class

После выполнения кода мы должны увидеть классы для строки, целого числа, числа с плавающей запятой и автомобиля как:

String

Integer

Float

Car

Заключение

В этой статье мы изучили основы объектно-ориентированного программирования в Ruby с использованием классов и объектов. Приятно отметить, что ООП — обширная тема. Ознакомьтесь с другими ресурсами, чтобы узнать больше.



2021-08-23T23:03:53
Ruby

Полное руководство, как стать веб-разработчиком в 2021 году

Веб-разработка сегодня является одним из самых востребованных отраслевых навыков. Если мы посмотрим на загрузки популярных пакетов, таких как express, react или jquery, то вы увидите, что за последние 5 лет общее между ними состоит в том, что их использование быстро растет с каждым годом.

Фактически, опрос stackoverflow за 2020 год включает «полный стек» и «интерфейс» как две из трех ведущих профессий разработчиков в мире на данный момент.

Таким образом, очевидно, что сегодня веб-разработка — это отличный навык. В этой статье посмотрим, что именно вам нужно сделать, чтобы стать веб-разработчиком в 2021 году и далее на перспективу.

 

Эта проблема

Проблема с сетью сейчас — это информационная перегрузка и шум. jQuery, Angular, Ember, Vue, React, Next.js, Nuxt.js, TypeScript, Sass, Webpack, NPM, Yarn, ESbuild, snowpack, …! Есть так много вещей, так много инструментов, так многому вы можете научиться — что часто становится обескураживающим даже начинать.

Тогда есть смысл того, что актуально сегодня, что будет актуально через 3 года и т. д. Давайте проясним несколько вещей в этом блоге:

 

Вам не нужно все учить

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

  1. У вас должен быть «полный» технический стек. Полный технический стек — это стек, с помощью которого вы можете создать практически любой проект, который захотите.
  2. Вам нужно знать большинство, если не все популярные инструменты в экосистеме. Обратите внимание, это не означает, что вам нужно знать, как с ними работать. Но вы должны знать, что они существуют.

 

Вам нужно сделать ставку на стек

Angular vs React vs Vue vs Svelte vs xyz. Это обсуждение никогда не закончится. По правде говоря, все популярные фреймворки/библиотеки популярны, потому что люди их используют и хорошо умеют делать то, что делают.

Если хотите, можете попробовать провести время с разными технологиями. Но моя личная рекомендация — не менять основные библиотеки/фреймворки каждые месяц или два.

Конечно, вы можете переключиться с React на Angular, просмотрев Х-часовой курс. Однако помните, что при работе с технологией вам необходимо разработать определенную ментальную модель, и на то, чтобы освоиться с ней, могут потребоваться недели, если не месяцы.

Не переключайтесь на самые передовые технологии на рынке, придерживайтесь технологического стека, с которым вы работаете.

 

Фреймворк для изучения веб-разработки в 2021 году

Хорошо. Теперь большой вопрос. Чему вы на самом деле научились из всего шума в мире? Давайте разделим вопрос на две части — (Что и как), чтобы изучить интерфейс веб-разработки. Оба вопроса одинаково важны, так как в зависимости от принятого решения вы можете сэкономить или потратить впустую много времени. Давайте начнем.

 

Что нужно узнать о веб-разработке?

Это полный список вещей, которые вам следует изучить для веб-разработки. Обратите внимание, что это было бы самоуверенным, потому что у меня большой опыт работы с этими технологиями (платформа, на которой вы это читаете, codedamn, была построена со всеми этими технологиями).

 

Основы Интернета

Для многих это может стать неожиданностью. Большинство сайтов рекомендуют начинать с HTML/CSS, но я чувствую, что даже раньше вы должны понимать, как Интернет и сеть работают на высоком уровне. Что такое HTML-документы, как они отправляются с внутреннего сервера, что такое DNS, что именно происходит, когда вы вводите google.com в браузере и т. д.

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

 

HTML5/CSS3

HTML и CSS — фундаментальные строительные блоки Интернета. Несомненно, это должно быть первое, чему вы должны научиться что бы быть специалистом во фронтенд-разработке.

Некоторые очень важные моменты:

  1. Обязательно изучите современный синтаксис HTML5.
  2. Попробуйте узнать о семантических тегах в HTML5 вместо того, чтобы вставлять все в div.
  3. Узнайте о современных методах макета в CSS (flexbox, grid)
  4. Узнайте о современном синтаксисе CSS и получите ясное представление о селекторах, медиа-запросах, свойствах, значениях и т. д. — основах.
  5. Не придерживайтесь старого и устаревшего синтаксиса ( centerтег marqueeи т. д.)
  6. Не тратьте много времени на изучение старых методов компоновки в CSS с плавающей точкой и т. д.
  7. Не пробуйте каждую передовую функцию CSS3/4. Многие из них могут еще не поддерживаться в браузерах. По большей части придерживайтесь широко поддерживаемых функций CSS3.

 

JavaScript

JavaScript очень важен для интерактивности и всего, что вы делаете, кроме простой статической целевой страницы HTML/CSS. Его можно широко использовать и за пределами внешнего интерфейса (в Node.js/Deno/TypeScript), поэтому важно, чтобы вы правильно понимали свои основы с помощью JavaScript.

Некоторые очень важные моменты:

  1. Обязательно изучите синтаксис ES6 +. Не используйте их varи даже не следуйте инструкциям. В большинстве случаев они не нужны. Один из способов проверить это — попробовать следовать руководствам, созданным после 2017 года.
  2. У JavaScript есть некоторые особенности поведения, которые могут застать вас врасплох. Например, почему 0,1 + 0,2 не равно 0,3 или почему null == undefined верно в JS. Помните, что у такого поведения всегда есть причины. Чтобы понять такие вещи, нужно выполнить поиск в Google.
  3. JavaScript — это, по сути, язык асинхронного и неблокирующего ввода-вывода. Это означает, что вы должны понимать, как некоторые основные части асинхронных вещей, такие как промисы, работают в JavaScript.
  4. Узнайте о DOM API и поймите, что это API, предоставляемый вашим браузером вашему JS-коду для взаимодействия с вашим HTML/CSS.

 

 

Продолжение:



2021-08-13T21:05:43
Программирование

Полное руководство, как стать веб-разработчиком в 2021 году. Часть 2

Инструменты разработчика

В это время вам также следует начать изучение того, как работать с инструментами разработчика в вашем браузере. Мы предпочитаем инструменты разработчика Chrome, потому что они отлично подходят для отладки и работы с JavaScript и DOM. Независимо от вашего выбора, мы бы предпочли создавать проекты и отлаживать любые проблемы, с которыми вы сталкиваетесь, с помощью инструментов разработчика, вместо того, чтобы часами смотреть на ваш код.

Инструменты разработчика Chrome, как и любой другой инструмент в реальной жизни или виртуальный продукт, потребуют небольшого обучения, и вам придется потратить некоторое время, чтобы работать с ним максимально эффективно. Однако время, которое вы потратите на изучение инструмента разработчика для браузера, окупится на порядки по мере того, как ваша жизнь разработчика будет продолжаться.

Некоторые важные моменты:

  1. Мы рекомендуем придерживаться инструментов разработчика Chrome, потому что они очень мощные.
  2. Узнайте о манипуляциях с DOM, отладке сетевых запросов, установке точек останова для событий, переходе по источникам, поиске кода в ресурсах вашего веб-сайта, регулировании скорости сети и многом другом.
  3. Это будет постоянное обучение, как и все другие технологии. Вы не должны стремиться изучать инструменты разработчика сразу, просто изучите небольшие, но важные вещи и двигайтесь дальше. Вы узнаете намного больше, работая с проектами и т. д.

 

Git

Вам нужно изучить систему управления версиями (VCS), и это должно быть git. Git — это широко используемая VCS, используемая командами и компаниями для управления своими кодовыми базами среди сотрудников. Git может быть очень сложным для изучения, но изначально ваш пример использования git будет заключаться в развертывании вашего кода на GitHub или аналогичном сайте.

Это необходимо, потому что, когда вы изучаете git, вы можете нажать на github. Когда вы можете нажать на github, вы можете интегрироваться со многими сервисами, такими как страницы GitHub, Vercel, Netlify и т. д., Чтобы создать предварительный просмотр вашего веб-сайта/проекта в реальном времени. Этим предварительным просмотром в реальном времени можно поделиться с друзьями, семьей и даже добавить в свое резюме.

Когда вы устроитесь на работу или будете работать с командой из 2+ разработчиков, вам все равно понадобятся знания git. Но даже для индивидуального разработчика это имеет первостепенное значение, так как значительно упрощает цикл развертывания на действующем веб-сайте.

Некоторые важные моменты:

  1. Git может очень быстро стать сложным. Не запутайтесь с большим количеством команд git. Как индивидуальный разработчик, вам вряд ли понадобится что-либо, кроме 5-7 часто используемых команд.
  2. Хотя пункт 1 верен, вы все равно должны понимать общую архитектуру того, как работает git, какие есть ветки, что подразумевается под удаленными репозиториями и т. д. Это снова прочная основа понимания, которую вы должны иметь.

 

NPM/Yarn

NPM и Yarn — два самых популярных менеджера пакетов для JavaScript. Оба они существуют для одной цели — управления зависимостями в вашей кодовой базе. Зависимость — это пакет/программное обеспечение, которое обычно не разрабатывается вами/вашей командой, но вы все равно можете использовать и интегрировать его в свое приложение. Например, система дизайна, такая как бутстрап или попутный CSS, является зависимостью.

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

Некоторые важные моменты:

  1. NPM и пряжа — очень близкие понятия. Когда вы узнаете о npm, вы также узнаете о package.json, о том, зачем они нужны, и многом другом. Все это также можно перенести на yarn v1 в качестве менеджера пакетов.
  2. Поэтому не стоит особо задумываться о том, какой менеджер пакетов вам следует изучить. Изучите любой (например, Yarn), и вы можете автоматически переключиться на другой, если этого требует ваш проект.

 

React

React — библиотека, пользующаяся огромной поддержкой сообщества. Любая проблема/ошибка, с которой вы столкнулись с React — скорее всего, кто-то уже сделал эту ошибку и задал вопрос на 1000 веб-сайтах. Поэтому, если вы хороший гуглер, у вас не должно возникнуть проблем при работе с React.

Некоторые важные моменты:

  1. На первый взгляд React выглядит просто, но для масштабной работы требуется разработка ментальной модели. Речь идет не только о концепциях и хуках, но и о том, как спроектировать ваше приложение, сделать его поддерживаемым, выбрать правильные библиотеки для экосистемы и т. д.
  2. React не применяет никаких стандартных практик для общих задач, таких как сетевые запросы или пользовательский интерфейс. Но мы рекомендуем следующие варианты — react-query для сетевых запросов, попутный CSS или материальный UI для библиотеки UI.
  3. Не изучайте подробно компоненты на основе классов, если вам не нужно работать с устаревшей кодовой базой, которая требует от вас глубокого изучения. Компоненты на основе классов — это не будущее React. Убегайте от руководств, которые учат вас компонентам на основе классов. Вместо этого узнайте о функциональных компонентах и ​​хуках.

 

Сборщики модулей

Webpack — один из самых популярных сборщиков модулей, который React использует прямо сейчас из коробки. Опять же, вам не обязательно глубоко изучать webpack, но вы должны знать, что это за файл webpack.config.js.

ESBuild также является еще одним относительно очень быстрым сборщиком модулей на данный момент, но поддержка плагинов для него пока невелика. Как новичку, вам пока не нужно беспокоиться о ESBuild.

 

Тестирование кода

И последнее, но не менее важное: вам также следует сосредоточиться на тестировании кода. Мы считаем, что люди должны начинать с сквозного тестирования, потому что это кажется более простым и интуитивно понятным в качестве причины для тестирования кода по сравнению с тестированием моментальных снимков или модульным тестированием.

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

 

Упражняться! Упражняться! Упражняться!

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

 

Как научиться фронтенд-разработке?

Приведенный выше список не является исчерпывающим списком тем, но определенно является хорошим руководством для начала. Теперь вопрос в том, как научиться веб-разработке через интерфейс?

 

Вам нужен бесплатный подход к обучению

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

  1. Часто используйте Google для обучения и выяснения сомнений.
  2. Смотрите видео на YouTube, но убедитесь, что они относительно новые, особенно по таким темам, как JavaScript и React.
  3. Практикуйтесь самостоятельно, создавайте проекты и развертывайте их в Интернете, чтобы люди могли их увидеть.
  4. Пройдите бесплатные курсы.

 

Вывод

На самом деле время — деньги, иногда даже более важные, чем деньги. Что вы хотите потратить (или можете потратить), зависит от вас. Но мы бы порекомендовали, даже если это не кодирование, потратить деньги на свое образование, чтобы получить ускорение и ясность в том, чего вы пытаетесь достичь, определенно того стоит.

 

Начало:



2021-08-13T21:00:57
Программирование

Пузырьковая сортировка

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

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

 

Пример:

Пусть исходный массив будет [5, 4, 9, 3, 7, 6].

Первая итерация:

сравните элементы в индексах 1 и 2: 5, 4. Они не отсортированы. Поменяйте их местами. Array = [4, 5, 9, 3, 7, 6].

Сравните элементы в индексе 2 и 3: 5, 9. Они отсортированы. Не меняйте местами. Array = [4, 5, 9, 3, 7, 6].

Сравните элементы в индексе 3 и 4: 9, 3. Они не отсортированы. Поменяйте их местами. Array = [4, 5, 3, 9, 7, 6].

Сравните элементы в индексе 4 и 5: 9, 7. Они не отсортированы. Поменяйте их местами. Array = [4, 5, 3, 7, 9, 6].

Сравните элементы в индексе 5 и 6: 9, 6. Они не отсортированы. Поменяйте их местами. Array = [4, 5, 3, 7, 6, 9]

Массив после первой итерации равен [4, 5, 3, 7, 6, 9].

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

Первая итерация:

[5, 4, 9, 3, 7, 6]

[4, 5, 9, 3, 7, 6]

[4, 5, 3, 9, 7, 6]

[4, 5, 3, 7 , 9, 6]

[4, 5, 3, 7, 6, 9]

Вторая итерация:

[4, 3, 5, 7, 6, 9]

[4, 3, 5, 6, 7, 9]

Третья итерация:

[3, 4, 5, 6, 7, 9]

Исходный код: пузырьковая сортировка

def bubble_sort(arr, n):

for i in range(0, n):

for j in range(0, n-1):

# Если пара не находится в отсортированном порядке

if arr[j] > arr[j+1]:

# Поменяйте местами пары, чтобы сделать их в отсортированном порядке

arr[j], arr[j+1] = arr[j+1], arr[j]

return arr



if __name__ == "__main__":

arr = [5, 4, 9, 7, 3, 6]

n = len(arr)

arr = bubble_sort(arr, n)

print (arr)

Пояснение: Алгоритм состоит из двух циклов. Первый цикл повторяется по массиву n раз, а второй цикл n-1 раз. На каждой итерации первого цикла второй цикл сравнивает все пары соседних элементов. Если они не отсортированы, соседние элементы меняются местами, чтобы упорядочить их. Максимальное количество сравнений, необходимых для присвоения элементу его правой позиции в отсортированном порядке, равно n-1, потому что есть n-1 других элементов. Так как имеется n элементов, и каждый элемент требует максимум n-1 сравнений; массив сортируется за время O (n ^ 2). Следовательно, временная сложность наихудшего случая равна O (n ^ 2). Лучшая временная сложность в этой версии пузырьковой сортировки также составляет O (n ^ 2), потому что алгоритм не знает, что он полностью отсортирован. Следовательно, даже если он отсортирован.

 

Часть 2 (необязательно): оптимизированная пузырьковая сортировка

Вышеупомянутый алгоритм можно оптимизировать, если мы сможем остановить сравнение, когда все элементы будут отсортированы. Это можно сделать с помощью дополнительной переменной-флага, которая сообщает алгоритму, когда следует остановиться.

def optimised_bubble_sort(arr, n):

not_sorted = True

while(not_sorted):

not_sorted = False

for i in range(0, n-1):

# Если пара не находится в отсортированном порядке

if arr[i] > arr[i+1]:

# Поменяйтесь ими местами

arr[i], arr[i+1] = arr[i+1], arr[i]

# Помните, что массив не был отсортирован 

# в начале итерации

not_sorted = True

return arr



if __name__ == "__main__":

arr = [5, 4, 9, 7, 3, 6]

n = len(arr)

arr = optimised_bubble_sort(arr, n)

print (arr)

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

Оптимальная временная сложность этого алгоритма — O (n). Это происходит, когда все элементы входного массива уже находятся в отсортированном порядке, и требуется одна итерация, чтобы проверить, находится ли массив в отсортированном порядке или нет.



2021-07-24T10:37:10
Методология программирования