- Что такое структуры данных?
- По сути, это способы хранить и организовывать данные, чтобы эффективней решать различные задачи. Данные можно представить по-разному. В зависимости от того, что это за данные и что вы собираетесь с ними делать, в одной какой-то ситуации одно представление подойдёт лучше, чем другие, а в другой ситуации применение данного представления будет очень нецелесообразным.
Чтобы подробнее разобраться в структурах данных, я создал этот видео курс, посвященный именно этому! В качестве начала, мы рассмотрим с вами структуру данных СТЕК, а также напишем ее реализацию с использованием языка программирования С.
https://www.youtube.com/watch?v=8CN2v9xr2nQ
- По сути, это способы хранить и организовывать данные, чтобы эффективней решать различные задачи. Данные можно представить по-разному. В зависимости от того, что это за данные и что вы собираетесь с ними делать, в одной какой-то ситуации одно представление подойдёт лучше, чем другие, а в другой ситуации применение данного представления будет очень нецелесообразным.
Чтобы подробнее разобраться в структурах данных, я создал этот видео курс, посвященный именно этому! В качестве начала, мы рассмотрим с вами структуру данных СТЕК, а также напишем ее реализацию с использованием языка программирования С.
https://www.youtube.com/watch?v=8CN2v9xr2nQ
YouTube
Структуры данных: СТЕК
Курсы по программированию: https://clck.ru/37iG2b
Потренироваться проходить собеседования: https://clck.ru/3C2CY3
Присоединиться к моему сообществу: https://boosty.to/vladimir_balun
Консультации:
https://getmentor.dev/mentor/vladimir-balun-191
https://s…
Потренироваться проходить собеседования: https://clck.ru/3C2CY3
Присоединиться к моему сообществу: https://boosty.to/vladimir_balun
Консультации:
https://getmentor.dev/mentor/vladimir-balun-191
https://s…
💡 Как понять какого уровня программист?
Достаточно спорный и холиварный вопрос, по которому в сети существует множество различной информации. В этой информации кто-то говорит одно, другой убеждает совершенно иное, а третий и вовсе не согласен ни с тем и не с другим... В итоге становится совершенно непонятно, кого считать джуном, а кого сеньором.
Не так давно на просторах сети попалась достаточно интересная матрица: https://sijinjoseph.com/programmer-competency-matrix/, которая полноценно освящает этот вопрос.
Верить ли ей или нет - это остается за вами, но по сравнению со всеми другими источниками, она выглядит наиболее полноценной и правдоподобной!
Достаточно спорный и холиварный вопрос, по которому в сети существует множество различной информации. В этой информации кто-то говорит одно, другой убеждает совершенно иное, а третий и вовсе не согласен ни с тем и не с другим... В итоге становится совершенно непонятно, кого считать джуном, а кого сеньором.
Не так давно на просторах сети попалась достаточно интересная матрица: https://sijinjoseph.com/programmer-competency-matrix/, которая полноценно освящает этот вопрос.
Верить ли ей или нет - это остается за вами, но по сравнению со всеми другими источниками, она выглядит наиболее полноценной и правдоподобной!
Всем привет 👋
В эту субботу ровно в 18:00 пройдет бесплатный вебинар со мной и первоклассным IT преподавателем. На нем мы поговорим о том:
▪️что нужно знать новичку в программировании, чтобы устроиться на свою первую работу;
▪️как можно учиться быстрее и эффективнее;
▪️что необходимо знать, чтобы построить успешную карьеру в IT.
Приходи, будет интересно!
https://safecafe.timepad.ru/event/1589133/
В эту субботу ровно в 18:00 пройдет бесплатный вебинар со мной и первоклассным IT преподавателем. На нем мы поговорим о том:
▪️что нужно знать новичку в программировании, чтобы устроиться на свою первую работу;
▪️как можно учиться быстрее и эффективнее;
▪️что необходимо знать, чтобы построить успешную карьеру в IT.
Приходи, будет интересно!
https://safecafe.timepad.ru/event/1589133/
Уже в эту субботу в Instagram 📢
▪️Владимир Балун: https://instagram.com/vladimir_balun_programming?igshid=nmomk1t2fauo
▪️Андрей Кобец: https://instagram.com/kobezzza.channel?igshid=13aemml4m10ey
▪️Владимир Балун: https://instagram.com/vladimir_balun_programming?igshid=nmomk1t2fauo
▪️Андрей Кобец: https://instagram.com/kobezzza.channel?igshid=13aemml4m10ey
Кто-нибудь задумывался о том, что происходит, когда вы нажимаете кнопку «Run» в своей любимой IDE?
⠀
Практика показывает, что мало кто из новичков интересуется этим вопросом, поэтому я решил осветить немного эту тему и рассказать о компиляторах (об интерпретаторах расскажу в одном из других моих постов).
⠀
Прежде, чем говорить о компиляторах, стоит немного разобраться в основах Computer Science. Процессор — самая важная часть компьютера. Он обрабатывает информацию и выполняет команды пользователя, но процессор может разобрать только машинный код — набор 0 и 1, которые записаны в определённом порядке. Почему именно 0 и 1? В процессор поступают электрические сигналы. Сильный сигнал обозначается цифрой 1, а слабый — 0. Набор таких цифр обозначает какую-то команду. Процессор ее распознает и выполняет.
⠀
Программы для первых компьютеров выглядели как огромные наборы 0 и 1. Писать их было долго и сложно, поэтому инженеры стали создавать языки программирования, обозначая команды словами и знаками. Для того, чтобы процессор понимал, какие команды записаны в программе, программисты создали компилятор — программу, которая преобразует программный код в машинный.
⠀
Преобразование программного кода в машинный называется компиляцией. Компиляция только преобразует код. Она не запускает его на исполнение. В этот момент он “статически” (то есть без запуска) транслируется в машинный код. Это сложный процесс, в котором сначала текст программы разбирается на части и анализируется (чаще всего еще и оптимизируется), а затем генерируется код, понятный процессору.
⠀
В конце подведем итог. Компилятор — переводчик между программистом и процессором. Он преобразует текст программы в машинный код, определяет ряд ошибок в программе и оптимизирует ее работу. Выбирая, где компилировать программу, важно помнить о том, что машинный код для процессоров и операционных систем будет разным, и подобрать правильный компилятор.
⠀
Ну что, стоит писать отдельный пост про интерпретаторы?
⠀
Практика показывает, что мало кто из новичков интересуется этим вопросом, поэтому я решил осветить немного эту тему и рассказать о компиляторах (об интерпретаторах расскажу в одном из других моих постов).
⠀
Прежде, чем говорить о компиляторах, стоит немного разобраться в основах Computer Science. Процессор — самая важная часть компьютера. Он обрабатывает информацию и выполняет команды пользователя, но процессор может разобрать только машинный код — набор 0 и 1, которые записаны в определённом порядке. Почему именно 0 и 1? В процессор поступают электрические сигналы. Сильный сигнал обозначается цифрой 1, а слабый — 0. Набор таких цифр обозначает какую-то команду. Процессор ее распознает и выполняет.
⠀
Программы для первых компьютеров выглядели как огромные наборы 0 и 1. Писать их было долго и сложно, поэтому инженеры стали создавать языки программирования, обозначая команды словами и знаками. Для того, чтобы процессор понимал, какие команды записаны в программе, программисты создали компилятор — программу, которая преобразует программный код в машинный.
⠀
Преобразование программного кода в машинный называется компиляцией. Компиляция только преобразует код. Она не запускает его на исполнение. В этот момент он “статически” (то есть без запуска) транслируется в машинный код. Это сложный процесс, в котором сначала текст программы разбирается на части и анализируется (чаще всего еще и оптимизируется), а затем генерируется код, понятный процессору.
⠀
В конце подведем итог. Компилятор — переводчик между программистом и процессором. Он преобразует текст программы в машинный код, определяет ряд ошибок в программе и оптимизирует ее работу. Выбирая, где компилировать программу, важно помнить о том, что машинный код для процессоров и операционных систем будет разным, и подобрать правильный компилятор.
⠀
Ну что, стоит писать отдельный пост про интерпретаторы?
Нужно ли программисту изучать алгоритмы и структуры данных?
⠀
Очень холиварный вопрос, здесь представлено мое личное мнение и я не призываю никого следовать за ним…
⠀
Чтобы лучше разобраться в этом вопросе, предлагаю узнать что из себя представляет компьютерная программа… Программа – это комбинация компьютерных инструкций и данных, позволяющая аппаратному обеспечению вычислительной системы выполнять вычисления или функции управления. Ключевыми словами в этом термине являются «инструкции» и «данные». Исходя из этого, можем немного преобразовать термин в нечто абстрактное, например, что программа представляет собой набор структур данных и последовательность алгоритмов, которые взаимодействуют с этими данными. Также хотел бы отметить то, что сегодня быстродействие и память аппаратного обеспечения вычислительных систем не являются бесконечно большими.
⠀
Получается, что нам нужно писать программы, которые будут работать на машинах с ограниченными ресурсами, используя различные алгоритмы и структуры данных.
⠀
Многие скорее всего зададутся вопросом, в чем же проблема? В ответ на этот вопрос я приведу выдуманный пример: можно написать программу, которая будет выполнять какое-то определенное действие несколько минут, а можно написать программу, которая выполнит тоже самое также корректно за несколько секунд. Быстрая и медленная программы делают одно и тоже, но у них разная скорость. В итоге напрашивается вывод о том, что эффективность программы зависит от того, насколько хорошо мы подобрали алгоритмы и структуры данных для программы, чтобы она наиболее рационально использовала ресурсы машины.
⠀
Если вы пишите программы, нагрузка на которые мала или у которых очень маленькие данные, то вам знания алгоритмов и структур данных попросту не нужны (нужны лишь основы программирования), но если вы хотите писать что-то большое, то эти знания будут вам просто необходимы.
⠀
Очень холиварный вопрос, здесь представлено мое личное мнение и я не призываю никого следовать за ним…
⠀
Чтобы лучше разобраться в этом вопросе, предлагаю узнать что из себя представляет компьютерная программа… Программа – это комбинация компьютерных инструкций и данных, позволяющая аппаратному обеспечению вычислительной системы выполнять вычисления или функции управления. Ключевыми словами в этом термине являются «инструкции» и «данные». Исходя из этого, можем немного преобразовать термин в нечто абстрактное, например, что программа представляет собой набор структур данных и последовательность алгоритмов, которые взаимодействуют с этими данными. Также хотел бы отметить то, что сегодня быстродействие и память аппаратного обеспечения вычислительных систем не являются бесконечно большими.
⠀
Получается, что нам нужно писать программы, которые будут работать на машинах с ограниченными ресурсами, используя различные алгоритмы и структуры данных.
⠀
Многие скорее всего зададутся вопросом, в чем же проблема? В ответ на этот вопрос я приведу выдуманный пример: можно написать программу, которая будет выполнять какое-то определенное действие несколько минут, а можно написать программу, которая выполнит тоже самое также корректно за несколько секунд. Быстрая и медленная программы делают одно и тоже, но у них разная скорость. В итоге напрашивается вывод о том, что эффективность программы зависит от того, насколько хорошо мы подобрали алгоритмы и структуры данных для программы, чтобы она наиболее рационально использовала ресурсы машины.
⠀
Если вы пишите программы, нагрузка на которые мала или у которых очень маленькие данные, то вам знания алгоритмов и структур данных попросту не нужны (нужны лишь основы программирования), но если вы хотите писать что-то большое, то эти знания будут вам просто необходимы.
У меня есть свой определенный ТОП книг по программированию, которые я советую прочитать абсолютно каждому программисту (независимо от его сферы разработки):
⠀
▪️Стив Макконнелл – «Совершенный код»
▪️Мартин Роберт – «Чистый код»
▪️Дейв Томас и Энди Хант – «Программист прагматик. Путь от
подмастерья к мастеру»
▪️Алан Тьюринг – «Вычислительные машины и разум»
▪️Кормен Томас – «Алгоритмы: построение и анализ»
▪️Эндрю Таненбаум – «Современные операционные системы»
▪️Эндрю Таненбаум – «Архитектура компьютера»
▪️Эндрю Таненбаум – «Компьютерные сети»
⠀
Прочтение этих книг займет довольно много времени, но после их прочтения, вы будете совершенно иначе мыслить и писать намного более качественный код, в этом я вас уверяю!
⠀
А кто из вас еще посоветует какие-нибудь интересные книги по программированию?
⠀
▪️Стив Макконнелл – «Совершенный код»
▪️Мартин Роберт – «Чистый код»
▪️Дейв Томас и Энди Хант – «Программист прагматик. Путь от
подмастерья к мастеру»
▪️Алан Тьюринг – «Вычислительные машины и разум»
▪️Кормен Томас – «Алгоритмы: построение и анализ»
▪️Эндрю Таненбаум – «Современные операционные системы»
▪️Эндрю Таненбаум – «Архитектура компьютера»
▪️Эндрю Таненбаум – «Компьютерные сети»
⠀
Прочтение этих книг займет довольно много времени, но после их прочтения, вы будете совершенно иначе мыслить и писать намного более качественный код, в этом я вас уверяю!
⠀
А кто из вас еще посоветует какие-нибудь интересные книги по программированию?
Меня многие просили рассказать о структурах данных, которые нужно освоить для устройства на работу Junior разработчиком… Вот решил, наконец, написать пост об этом. Предупреждаю сразу, что тема достаточно холиварная, поэтому здесь будет описано только мое личное мнение (никого не призываю следовать за ним).
⠀
Необходимый минимум для Junior разработчика:
- массив
- связный список
- стек / очередь
- бинарное дерево / куча
- хэш таблица
⠀
Опять-таки… Я советую всем реализовывать их самостоятельно (т.е. переписывать, писать велосипеды - называйте как угодно это), а не просто прочитать статью о какой-то структуре данных и подумать о том, что вы разобрались с этим и можно двигаться дальше. Не спорю, может кому-то и удается так учить программирование, но мне кажется таких людей очень мало!
⠀
Программистам постарше желательно знать немного больше:
- графы с различными видами хранения в памяти
- самобалансирующиеся деревья (AVL, красно-черные и так далее)
- структуры для работы с пространственными данными (R деревья, K-d деревья и так далее)
⠀
Конечно же, это не все, еще есть много различных «подвидов» структур данных (например, интервальные хэш-таблицы, XOR связные списки и так далее), но в этом посте их не будет…
⠀
Необходимый минимум для Junior разработчика:
- массив
- связный список
- стек / очередь
- бинарное дерево / куча
- хэш таблица
⠀
Опять-таки… Я советую всем реализовывать их самостоятельно (т.е. переписывать, писать велосипеды - называйте как угодно это), а не просто прочитать статью о какой-то структуре данных и подумать о том, что вы разобрались с этим и можно двигаться дальше. Не спорю, может кому-то и удается так учить программирование, но мне кажется таких людей очень мало!
⠀
Программистам постарше желательно знать немного больше:
- графы с различными видами хранения в памяти
- самобалансирующиеся деревья (AVL, красно-черные и так далее)
- структуры для работы с пространственными данными (R деревья, K-d деревья и так далее)
⠀
Конечно же, это не все, еще есть много различных «подвидов» структур данных (например, интервальные хэш-таблицы, XOR связные списки и так далее), но в этом посте их не будет…
Что такое soft skills и как их развить?
⠀
Soft skills в переводе с английского — «гибкие навыки». Они не связаны с конкретной профессией, но помогают хорошо выполнять свою работу и важны для карьеры. Сейчас почти никто не работает в одиночку. Каждый работник общается с коллегами, а иногда ещё и с клиентами, партнёрами. Он должен уметь договариваться с ними, аргументировать свою позицию и доносить её до других людей.
⠀
Гибких навыков много, условно все soft skills можно разделить на несколько групп:
⃣ КОММУНИКАТИВНЫЕ НАВЫКИ - умение договариваться с другими людьми, работать в команде, аргументировать свою позицию. Сюда же относятся лидерские качества и эмоциональный интеллект — способность понимать чужие чувства и контролировать свои.
⃣ НАВЫКИ САМООРГАНИЗАЦИИ - умение эффективно организовать свою работу и грамотно распоряжаться временем.
⃣ КРЕАТИВНЫЕ НАВЫКИ - способность нестандартно мыслить сейчас нужна не только дизайнерам и представителям прочих творческих профессий.
⃣ УМЕНИЕ РАБОТАТЬ С ИНФОРМАЦИЕЙ - искать её, анализировать, делать выводы.
⃣ СТРЕССОУСТОЙЧИВОСТЬ- серьёзные изменения — это стресс, а когда их много, способность справляться с ними и сохранять работоспособность особенно важна.
⠀
Конечно же, эти навыки, как и любые другие, можно развить. Есть несколько способов:
▪на специальных курсах и тренингах.;
▪с помощью книг, посвящённых гибким навыкам, так как их издано уже довольно много;
▪развивать гибкие навыки, опираясь на обратную связь от других людей, например, ваших коллег по работе, членов семьи.
⠀
Soft skills в переводе с английского — «гибкие навыки». Они не связаны с конкретной профессией, но помогают хорошо выполнять свою работу и важны для карьеры. Сейчас почти никто не работает в одиночку. Каждый работник общается с коллегами, а иногда ещё и с клиентами, партнёрами. Он должен уметь договариваться с ними, аргументировать свою позицию и доносить её до других людей.
⠀
Гибких навыков много, условно все soft skills можно разделить на несколько групп:
⃣ КОММУНИКАТИВНЫЕ НАВЫКИ - умение договариваться с другими людьми, работать в команде, аргументировать свою позицию. Сюда же относятся лидерские качества и эмоциональный интеллект — способность понимать чужие чувства и контролировать свои.
⃣ НАВЫКИ САМООРГАНИЗАЦИИ - умение эффективно организовать свою работу и грамотно распоряжаться временем.
⃣ КРЕАТИВНЫЕ НАВЫКИ - способность нестандартно мыслить сейчас нужна не только дизайнерам и представителям прочих творческих профессий.
⃣ УМЕНИЕ РАБОТАТЬ С ИНФОРМАЦИЕЙ - искать её, анализировать, делать выводы.
⃣ СТРЕССОУСТОЙЧИВОСТЬ- серьёзные изменения — это стресс, а когда их много, способность справляться с ними и сохранять работоспособность особенно важна.
⠀
Конечно же, эти навыки, как и любые другие, можно развить. Есть несколько способов:
▪на специальных курсах и тренингах.;
▪с помощью книг, посвящённых гибким навыкам, так как их издано уже довольно много;
▪развивать гибкие навыки, опираясь на обратную связь от других людей, например, ваших коллег по работе, членов семьи.
Основы CS или как научиться писать сложные программы?
⠀
Я думаю многим новичкам в программировании знакома такая проблема, что, выучив синтаксис какого-либо определенного языка программирования, не получается написать программу сложнее, чем калькулятор…
⠀
В прошлом я также, как и вы не знал ответа на этот вопрос.
⠀
Сейчас кое-что изменилось и теперь я понимаю, что нужно делать - необходимо изучать основы Computer Science! В принципе на этом уже можно было закончить…
⠀
Но постараюсь объяснить это поподробнее на пальцах:
▪️изучив поверхностно компьютерные сети и подробно прикладной уровень TCP/IP, вы сможете писать какие-то простенькие WEB приложения;
▪️изучив основы операционных систем, вы сможете программировать несложные системные программы, например файловый менеджер;
▪️изучив базы данных, вы сможете писать какие-либо интересные приложения для учета каких-либо вещей или предметов;
▪️продолжать можно долго, поэтому ограничимся этими примерами.
⠀
В конце хотел бы добавить, что когда основ становится много и эти основы из различных сфер – то как раз именно в этот момент вы сможете писать какие-либо сложные комплексные программы.
⠀
P.S. я убежден, что только так можно перешагнуть порог невозможности программирования чего-то сложнее, чем калькулятор.
⠀
Я думаю многим новичкам в программировании знакома такая проблема, что, выучив синтаксис какого-либо определенного языка программирования, не получается написать программу сложнее, чем калькулятор…
⠀
В прошлом я также, как и вы не знал ответа на этот вопрос.
⠀
Сейчас кое-что изменилось и теперь я понимаю, что нужно делать - необходимо изучать основы Computer Science! В принципе на этом уже можно было закончить…
⠀
Но постараюсь объяснить это поподробнее на пальцах:
▪️изучив поверхностно компьютерные сети и подробно прикладной уровень TCP/IP, вы сможете писать какие-то простенькие WEB приложения;
▪️изучив основы операционных систем, вы сможете программировать несложные системные программы, например файловый менеджер;
▪️изучив базы данных, вы сможете писать какие-либо интересные приложения для учета каких-либо вещей или предметов;
▪️продолжать можно долго, поэтому ограничимся этими примерами.
⠀
В конце хотел бы добавить, что когда основ становится много и эти основы из различных сфер – то как раз именно в этот момент вы сможете писать какие-либо сложные комплексные программы.
⠀
P.S. я убежден, что только так можно перешагнуть порог невозможности программирования чего-то сложнее, чем калькулятор.
❗Воскресенье 15:00 - Прямой эфир в Instagram
Поговорим о собеседованиях программистов - как они проходят и к чему стоит готовиться. Также обсудим всех интересующий вопрос на тему зарплаты - как о ней стоит говорить и что нужно делать, чтобы продать себя подороже.
Приходи, будет интересно:
https://www.instagram.com/vladimir_balun_programming/
Поговорим о собеседованиях программистов - как они проходят и к чему стоит готовиться. Также обсудим всех интересующий вопрос на тему зарплаты - как о ней стоит говорить и что нужно делать, чтобы продать себя подороже.
Приходи, будет интересно:
https://www.instagram.com/vladimir_balun_programming/
Словарь программистов или как быть с ними на одном языке?
⠀
АПИ — описание способов, которыми одна компьютерная программа может взаимодействовать с другой программой.
АПРУВ — подтверждение, согласие, одобрение чего-либо.
АУТСОРС — передача компанией выполнения определенной работы специалистам вне штата (фрилансерам или работникам других компаний).
БАГ — ошибка в программе, из-за которой результаты выполнения программы неправильные.
БЭКАП — резервное копирование
ДАМП — файл с полной или частичной копией содержимого памяти компьютера или базы данных в момент создания данного файла.
ДЕДЛАЙН — крайний срок выполнения или сдачи проекта/задания/работы.
ДЕМО — демонстрационная версия чего-либо, как правило, с урезанным функционалом или с пробным периодом использования.
ДЕПЛОЙ — это развертывание (перенос) программного обеспечения на сервер или устройство, где оно должно функционировать.
ИНСАЙТ — внезапная догадка, озарение или прозрение.
КЕЙС — реальная ситуация (или случай), которая произошла с автором.
ЛЕГАСИ — устаревший чужой код, написанный очень давно, и с которым сейчас приходится иметь дело.
ЛИБА — библиотека.
МИТАП — встреча специалистов определенной сферы деятельности для обмена опытом.
МИТИНГ — собрание людей.
ОПЕНСОРС — программное обеспечение с открытым исходным кодом.
ОТЛАДКА — этап в разработке программного обеспечения, на котором выполняется поиск и исправление ошибок.
ОФФЕР — предложение о работе. Как правило, в нем указываются должность, должностные обязанности и зарплата.
ПАТЧ — дополнение или обновление, которое исправляет ошибки/баги/глюки. Применение патча к программе называется «пропатчиванием».
РЕПА — репозиторий, хранилище данных.
ТУЛЗА — вспомогательное программное обеспечение, предназначенное для выполнения специфических задач.
⠀
АПИ — описание способов, которыми одна компьютерная программа может взаимодействовать с другой программой.
АПРУВ — подтверждение, согласие, одобрение чего-либо.
АУТСОРС — передача компанией выполнения определенной работы специалистам вне штата (фрилансерам или работникам других компаний).
БАГ — ошибка в программе, из-за которой результаты выполнения программы неправильные.
БЭКАП — резервное копирование
ДАМП — файл с полной или частичной копией содержимого памяти компьютера или базы данных в момент создания данного файла.
ДЕДЛАЙН — крайний срок выполнения или сдачи проекта/задания/работы.
ДЕМО — демонстрационная версия чего-либо, как правило, с урезанным функционалом или с пробным периодом использования.
ДЕПЛОЙ — это развертывание (перенос) программного обеспечения на сервер или устройство, где оно должно функционировать.
ИНСАЙТ — внезапная догадка, озарение или прозрение.
КЕЙС — реальная ситуация (или случай), которая произошла с автором.
ЛЕГАСИ — устаревший чужой код, написанный очень давно, и с которым сейчас приходится иметь дело.
ЛИБА — библиотека.
МИТАП — встреча специалистов определенной сферы деятельности для обмена опытом.
МИТИНГ — собрание людей.
ОПЕНСОРС — программное обеспечение с открытым исходным кодом.
ОТЛАДКА — этап в разработке программного обеспечения, на котором выполняется поиск и исправление ошибок.
ОФФЕР — предложение о работе. Как правило, в нем указываются должность, должностные обязанности и зарплата.
ПАТЧ — дополнение или обновление, которое исправляет ошибки/баги/глюки. Применение патча к программе называется «пропатчиванием».
РЕПА — репозиторий, хранилище данных.
ТУЛЗА — вспомогательное программное обеспечение, предназначенное для выполнения специфических задач.
Так ли необходимо изучать Английский?
⠀
На просторах Рунета до сих пор ведутся споры о необходимости знания английского в сфере программирования. Одни утверждают, что без него неплохо обходятся, другие приводят разумные аргументы в пользу владения английским. Лично я хочу поделиться с вами подборкой того, что дает знание английского языка:
⠀
▪️ВСЯ ФУНДАМЕНТАЛЬНАЯ СПЕЦИАЛИЗИРОВАННАЯ ЛИТЕРАТУРА НАПИСАНА, В ПЕРВУЮ ОЧЕРЕДЬ, НА АНГЛИЙСКОМ
Далеко не все было переведено на русский. Еще меньше материала переведено корректно.
⠀
▪️В РАБОТЕ ЧАСТО ВОЗНИКАЮТ ТРУДНОСТИ
Иногда приходится искать решение проблемы во всемирной паутине, и часто бывает так, что нужной информации в Рунете просто не публиковалось. А вот в англоязычной среде можно найти практически любую необходимую сведения, особенно по теме IT.
⠀
▪️ВСЕ КРУПНЕЙШИЕ IT КОМПАНИИ МИРА БАЗИРУЮТСЯ В США(GOOGLE, APPLE, MICROSOFT ETC.)
Если вы не владеете языком, то построить карьеру в одной из крупнейших мировых IT-корпораций у вас не выйдет.
⠀
▪️ПРОГРАММИСТАМ НЕРЕДКО ПРИХОДИТСЯ РАБОТАТЬ С ЗАРУБЕЖНЫМИ ЗАКАЗЧИКАМИ
Часто коммуникации происходит на английском – и первичные переговоры, и составление технического задания, и его согласование, и взаимодействие во время реализации проекта.
⠀
▪️БОЛЬШИНСТВО МАСТЕР-КЛАССОВ, СЕМИНАРОВ И ВЕБИНАРОВ ОТ ИЗВЕСТНЕЙШИХ ГУРУ В СФЕРЕ IT ПРОХОДЯТ НА АНГЛИЙСКОМ
Не секрет, что посещение таких мероприятий чрезвычайно полезно для профессионального и личностного роста, а также для вдохновения.
⠀
В итоге заключение от меня следующее:
1️⃣ Можно быть просто программистом даже не зная английского языка
2️⃣ Чтобы добиться профессионального роста нужно знать английским
3️⃣ Чтобы стать действительно сильным специалистом необходимо свободное владение английским языком + знание отраслевой лексики
⠀
На просторах Рунета до сих пор ведутся споры о необходимости знания английского в сфере программирования. Одни утверждают, что без него неплохо обходятся, другие приводят разумные аргументы в пользу владения английским. Лично я хочу поделиться с вами подборкой того, что дает знание английского языка:
⠀
▪️ВСЯ ФУНДАМЕНТАЛЬНАЯ СПЕЦИАЛИЗИРОВАННАЯ ЛИТЕРАТУРА НАПИСАНА, В ПЕРВУЮ ОЧЕРЕДЬ, НА АНГЛИЙСКОМ
Далеко не все было переведено на русский. Еще меньше материала переведено корректно.
⠀
▪️В РАБОТЕ ЧАСТО ВОЗНИКАЮТ ТРУДНОСТИ
Иногда приходится искать решение проблемы во всемирной паутине, и часто бывает так, что нужной информации в Рунете просто не публиковалось. А вот в англоязычной среде можно найти практически любую необходимую сведения, особенно по теме IT.
⠀
▪️ВСЕ КРУПНЕЙШИЕ IT КОМПАНИИ МИРА БАЗИРУЮТСЯ В США(GOOGLE, APPLE, MICROSOFT ETC.)
Если вы не владеете языком, то построить карьеру в одной из крупнейших мировых IT-корпораций у вас не выйдет.
⠀
▪️ПРОГРАММИСТАМ НЕРЕДКО ПРИХОДИТСЯ РАБОТАТЬ С ЗАРУБЕЖНЫМИ ЗАКАЗЧИКАМИ
Часто коммуникации происходит на английском – и первичные переговоры, и составление технического задания, и его согласование, и взаимодействие во время реализации проекта.
⠀
▪️БОЛЬШИНСТВО МАСТЕР-КЛАССОВ, СЕМИНАРОВ И ВЕБИНАРОВ ОТ ИЗВЕСТНЕЙШИХ ГУРУ В СФЕРЕ IT ПРОХОДЯТ НА АНГЛИЙСКОМ
Не секрет, что посещение таких мероприятий чрезвычайно полезно для профессионального и личностного роста, а также для вдохновения.
⠀
В итоге заключение от меня следующее:
1️⃣ Можно быть просто программистом даже не зная английского языка
2️⃣ Чтобы добиться профессионального роста нужно знать английским
3️⃣ Чтобы стать действительно сильным специалистом необходимо свободное владение английским языком + знание отраслевой лексики
Какую программу написать?
⠀
Я считаю, что у новичком в программировании существует два наиболее популярных вопроса:
1️⃣ Какой язык программирования выбрать?
2️⃣ Какую программу написать?
⠀
Сейчас поговорим о моих личных проектах, а также о том, что я писал во время обучения и работы программистом. Все нижеперечисленные проекты можно найти у меня на GitHub (VladimirBalun):
⠀
▪️RacingWorld - по праву считается моим самым лучшим проектом, благодаря ему меня приняли на одну из моих прошлых работ даже без тестового задания (хотя всем остальным приходилось его выполнять). Идея этого проекта заключалась в создании гоночный 3D онлайн игры с генерацией мира из карт OpenStreetMap. Писал я этот проект, когда уже работал программистом. При написании этой игры не преследовал цель разбогатеть, а просто хотел в деталях познакомиться с процессом разработки игр. Движки и сторонние библиотеки, конечно же, не использовал, все писал сам руками, начиная от математики, заканчивая рендерором и работой с сетью.
⠀
▪️Trainter - написал этот проект совсем недавно, уже работая в Тинькофф и понимая, как нужно писать WEB приложения. Идея проекта заключалась в написании доски объявлений для тренингов, курсов, семинаров по различным темам (некое подобие Booking или Avito). Написал быстренько прототип на PHP за пару месяцев и запустил проект в тест, чтобы проверить будет ли на него спрос. Но итоги теста показали, что нет достаточного спроса, да и плюс ко всему обнаружился аналог на рынке (существует на рынке более 5 лет), который превосходит мой проект в несколько раз.
⠀
▪️OLSystem – когда только учился программированию, я побывал на олимпиаде по программированию. Там была такая система, которой скидываешь программный код, а она в свою очередь проверяет правильно ли решена задача при помощи тестов, путем подстановки множества различных значений. В итоге решил ее написать самостоятельно, не преследуя при этом никаких целей.
⠀
А писал ли ты какие-нибудь программы?
⠀
Я считаю, что у новичком в программировании существует два наиболее популярных вопроса:
1️⃣ Какой язык программирования выбрать?
2️⃣ Какую программу написать?
⠀
Сейчас поговорим о моих личных проектах, а также о том, что я писал во время обучения и работы программистом. Все нижеперечисленные проекты можно найти у меня на GitHub (VladimirBalun):
⠀
▪️RacingWorld - по праву считается моим самым лучшим проектом, благодаря ему меня приняли на одну из моих прошлых работ даже без тестового задания (хотя всем остальным приходилось его выполнять). Идея этого проекта заключалась в создании гоночный 3D онлайн игры с генерацией мира из карт OpenStreetMap. Писал я этот проект, когда уже работал программистом. При написании этой игры не преследовал цель разбогатеть, а просто хотел в деталях познакомиться с процессом разработки игр. Движки и сторонние библиотеки, конечно же, не использовал, все писал сам руками, начиная от математики, заканчивая рендерором и работой с сетью.
⠀
▪️Trainter - написал этот проект совсем недавно, уже работая в Тинькофф и понимая, как нужно писать WEB приложения. Идея проекта заключалась в написании доски объявлений для тренингов, курсов, семинаров по различным темам (некое подобие Booking или Avito). Написал быстренько прототип на PHP за пару месяцев и запустил проект в тест, чтобы проверить будет ли на него спрос. Но итоги теста показали, что нет достаточного спроса, да и плюс ко всему обнаружился аналог на рынке (существует на рынке более 5 лет), который превосходит мой проект в несколько раз.
⠀
▪️OLSystem – когда только учился программированию, я побывал на олимпиаде по программированию. Там была такая система, которой скидываешь программный код, а она в свою очередь проверяет правильно ли решена задача при помощи тестов, путем подстановки множества различных значений. В итоге решил ее написать самостоятельно, не преследуя при этом никаких целей.
⠀
А писал ли ты какие-нибудь программы?