Считаю, что нет плохих языков программирования и технологий - соотвественно и хейт вокруг них напрасен... Каждый язык и технология были заточены под определенные цели (или даже, может быть, круг целей). Исходя из этого, если вы столкнулись с проблемой, что решать какую-то задачу с использованием вашего инструмента становится достаточно сложно или просто невозможно, то по-моему мнению это не инструмент плохой, а плохое предыдущие планирование и проектирование, которое не подразумевало решения определенных задач выбранным инструментом.
⠀
Пост очень короткий, просто хотел поделиться своим мнением на счет этого!
⠀
Пост очень короткий, просто хотел поделиться своим мнением на счет этого!
Выложил запись прошедшего тренинга по подготовке к собеседованиям. Запись доступна по ссылке: https://taplink.cc/vladimir_balun_programming/p/81352a/
Media is too big
VIEW IN TELEGRAM
Часть записи тренинга по подготовке к собеседованиям, полная запись доступна по ссылке выше...
Как стоит учиться программированию?
⠀
Когда я только начинал учиться программированию - мне было интересно абсолютно все. Исходя из этого, выбирал множество различных плейлистов на YouTube, кучу разнообразных книг и обучалок. В итоге, толком ничего не доводил конца - была огромная расфокусировка, т.е. получалась ситуация, что начинал прокачиваться в чем-то одном, потом будут вдруг мне становилось интересно что-то ещё, потом ещё. В те моменты я бросал предыдущие прокачки не доводя их до конца…
⠀
Сейчас понимаю, что такой подход не очень эффективный, так как кроме основ трудно получить что-то большее в какой-либо сфере прокачки.
⠀
Сейчас я ставлю чёткий план по обучению и не меняю его, пока не доведу все дела в нем до конца. К примеру, на Январь поставил план в прокачке С++, а также problem solving skills. Благодаря этому, я не буду читать что-то другое или покупать курсы / книги по другой теме, даже видео смотреть не буду, не относящиеся к этой теме. Если мне вдруг даже что-то и захочется изучить новое - я выделю новое время для полноценного изучения новой темы (чтобы получить не только основы в этой теме).
⠀
Когда я только начинал учиться программированию - мне было интересно абсолютно все. Исходя из этого, выбирал множество различных плейлистов на YouTube, кучу разнообразных книг и обучалок. В итоге, толком ничего не доводил конца - была огромная расфокусировка, т.е. получалась ситуация, что начинал прокачиваться в чем-то одном, потом будут вдруг мне становилось интересно что-то ещё, потом ещё. В те моменты я бросал предыдущие прокачки не доводя их до конца…
⠀
Сейчас понимаю, что такой подход не очень эффективный, так как кроме основ трудно получить что-то большее в какой-либо сфере прокачки.
⠀
Сейчас я ставлю чёткий план по обучению и не меняю его, пока не доведу все дела в нем до конца. К примеру, на Январь поставил план в прокачке С++, а также problem solving skills. Благодаря этому, я не буду читать что-то другое или покупать курсы / книги по другой теме, даже видео смотреть не буду, не относящиеся к этой теме. Если мне вдруг даже что-то и захочется изучить новое - я выделю новое время для полноценного изучения новой темы (чтобы получить не только основы в этой теме).
Очередные успехи у учеников - запись интенсива по подготовке к собеседованиям все ещё доступна по ссылке: https://taplink.cc/vladimir_balun_programming/p/81352a/
This media is not supported in your browser
VIEW IN TELEGRAM
Премия Алана Тьюринга — самая престижная премия в информатике.
"Бесплатное" VS платное обучение программированию...
⠀
Прежде всего, хочу сказать, что я научился программировать самостоятельно, не тратя на это деньги (только книги постоянно покупал по программированию), поэтому абсолютно реально научиться разработке "бесплатно"!
⠀
В принципе, можно было бы уже заканчивать, но нет... В тот момент, когда я учился, у меня не было лишних денег, которые я мог бы потратить на свое обучение. Исходя из этого, мне приходилось тратить очень много времени на поиск и освоение различной информации (часто приходилось объединять информацию с различных статей, видео и книг, а иногда я вообще не находил ничего).
⠀
Если вы еще учитесь в школе / колледже / институте, то с временем у вас все плюс-минус нормально, поэтому можно учиться самостоятельно и не тратить лишние деньги на это. Но если вы уже где-то работаете, а еще если есть семья, то с временем у вас уже, скорее всего, не все так хорошо и стоит задуматься, что для вас более ценный ресурс - деньги или время...
⠀
Повторюсь, что научился программировать "бесплатно", но сейчас, если я хочу научиться чему-то новому или прокачаться в чем-то, то чаще всего я плачу деньги, потому что время для меня сейчас намного более важный ресурс.
⠀
Все хотят примеры, поэтому вот они:
- изучаю теорию вероятностей и статистику раз в неделю с учителем математики;
- занимаюсь с ментором по олимпиадному программированию два раза в месяц (чтобы прокачивать алгоритмику);
- прохужу курс в SkillBox по Базам Данных (чтобы лучше прокачаться в этой области);
- обучаюсь английскому два раза в неделю с учителем английского.
⠀
В конце хотел бы сказать, что и тот и другой подход рабочие, все только зависит от того, какими ресурсами вы жертвуете больше в процессе обучения. Не слушайте никого, выбирайте тот подход, который подходит именно вам и вперед в мир IT!
⠀
Прежде всего, хочу сказать, что я научился программировать самостоятельно, не тратя на это деньги (только книги постоянно покупал по программированию), поэтому абсолютно реально научиться разработке "бесплатно"!
⠀
В принципе, можно было бы уже заканчивать, но нет... В тот момент, когда я учился, у меня не было лишних денег, которые я мог бы потратить на свое обучение. Исходя из этого, мне приходилось тратить очень много времени на поиск и освоение различной информации (часто приходилось объединять информацию с различных статей, видео и книг, а иногда я вообще не находил ничего).
⠀
Если вы еще учитесь в школе / колледже / институте, то с временем у вас все плюс-минус нормально, поэтому можно учиться самостоятельно и не тратить лишние деньги на это. Но если вы уже где-то работаете, а еще если есть семья, то с временем у вас уже, скорее всего, не все так хорошо и стоит задуматься, что для вас более ценный ресурс - деньги или время...
⠀
Повторюсь, что научился программировать "бесплатно", но сейчас, если я хочу научиться чему-то новому или прокачаться в чем-то, то чаще всего я плачу деньги, потому что время для меня сейчас намного более важный ресурс.
⠀
Все хотят примеры, поэтому вот они:
- изучаю теорию вероятностей и статистику раз в неделю с учителем математики;
- занимаюсь с ментором по олимпиадному программированию два раза в месяц (чтобы прокачивать алгоритмику);
- прохужу курс в SkillBox по Базам Данных (чтобы лучше прокачаться в этой области);
- обучаюсь английскому два раза в неделю с учителем английского.
⠀
В конце хотел бы сказать, что и тот и другой подход рабочие, все только зависит от того, какими ресурсами вы жертвуете больше в процессе обучения. Не слушайте никого, выбирайте тот подход, который подходит именно вам и вперед в мир IT!
Я не знал, что такое выгорание до одного момента...
⠀
В один прекрасный день я решаю переехать в Москву, сменив при этом компанию, а также сферу разработки (с gamedev на backend).
⠀
Устраиваюсь в Тинькофф, после чего приступаю к работе. Затем понимаю, что в backend-е я полный ноль. Не знаю, что такое Docker, Kubernetes, Репликация, Шардирование, Балансировка нагрузки, NoSQL базы данных и дальше по списку. Конечно же, начинаю все эти пробелы в быстром темпе залатывать после работы, а иногда еще и на выходных.
⠀
Помимо этого, решаю уже наконец начать вести свой блог на YouTube о программированию. Но когда? Неделя ведь уже занята полностью, но зато есть свободные выходные... Поэтому на выходных веду блог о программировании!
⠀
Еще, первая задача в Тинькофф у меня была достаточно большая. Я ее выполнял почти месяц и все это время мне казалось, что я какой-то неполноценный разработчик, который никак не может решить задачу и не стоит своих денег (потом оказалось, что мне специально сначала дали обширную задачу, чтобы я подробнее познакомился с проектом).
⠀
И в конце приправляем карантином. В Москву переехал за несколько дней до локдауна - соответственно друзей найти еще там не успел, поэтому привет полное одиночество на несколько месяцев.
⠀
Теперь все смешиваем воедино, ждем один месяц и привет ВЫГОРАНИЕ!
Это трудно описать, но чувство это я запомнил - просто чувствуешь себя овощем, не хочется ничего (хотя нет, мне тогда очень хотелось уже менять работу, пусть даже на кассира в пятерочке).
⠀
Полный процесс восстановления занял примерно пол года, когда ко мне полностью вернулся мой интерес к программированию. Все то время я как работал просто заставляя себя и без какого-либо интереса. Эффективность соответственно была никчемной...
⠀
Резюме этого поста:
- Как лечить выгорание?
- Не знаю, это скорее к психологам. Я лишь хотел рассказать эту историю, что бы вы не совершали тех же ошибок...
⠀
В один прекрасный день я решаю переехать в Москву, сменив при этом компанию, а также сферу разработки (с gamedev на backend).
⠀
Устраиваюсь в Тинькофф, после чего приступаю к работе. Затем понимаю, что в backend-е я полный ноль. Не знаю, что такое Docker, Kubernetes, Репликация, Шардирование, Балансировка нагрузки, NoSQL базы данных и дальше по списку. Конечно же, начинаю все эти пробелы в быстром темпе залатывать после работы, а иногда еще и на выходных.
⠀
Помимо этого, решаю уже наконец начать вести свой блог на YouTube о программированию. Но когда? Неделя ведь уже занята полностью, но зато есть свободные выходные... Поэтому на выходных веду блог о программировании!
⠀
Еще, первая задача в Тинькофф у меня была достаточно большая. Я ее выполнял почти месяц и все это время мне казалось, что я какой-то неполноценный разработчик, который никак не может решить задачу и не стоит своих денег (потом оказалось, что мне специально сначала дали обширную задачу, чтобы я подробнее познакомился с проектом).
⠀
И в конце приправляем карантином. В Москву переехал за несколько дней до локдауна - соответственно друзей найти еще там не успел, поэтому привет полное одиночество на несколько месяцев.
⠀
Теперь все смешиваем воедино, ждем один месяц и привет ВЫГОРАНИЕ!
Это трудно описать, но чувство это я запомнил - просто чувствуешь себя овощем, не хочется ничего (хотя нет, мне тогда очень хотелось уже менять работу, пусть даже на кассира в пятерочке).
⠀
Полный процесс восстановления занял примерно пол года, когда ко мне полностью вернулся мой интерес к программированию. Все то время я как работал просто заставляя себя и без какого-либо интереса. Эффективность соответственно была никчемной...
⠀
Резюме этого поста:
- Как лечить выгорание?
- Не знаю, это скорее к психологам. Я лишь хотел рассказать эту историю, что бы вы не совершали тех же ошибок...
Краткий рассказ С/С++ разработчика о том, зачем именно вам стоит изучить хотя бы основы этих инструментов, пусть даже вы и программируете на другом языке программирования - PHP, JavaScript, Java, Python, в общем абсолютно не важно!
⠀
1. ОСНОВЫ CS
Не получится просто взять С/С++ и начать на них бездумно программировать... Хотя нет, получится, но программы ваши будут постоянно постреливать в различных местах (чаще всего там, где вы этого не будете ожидать), либо они будут такими же медленными, как и программы на каком-нибудь интерпретируемом скриптовом языке программирования (т.е. смысла от использования этих языков не будет никакого). Не стоит отчаиваться, выход есть! Для того, чтобы избежать всех тех проблем, вам придется познакомиться с основами архитектуры компьютера и операционных систем. В итоге, если у вас все никак не доходили руки до изучения основ CS, то С/С++, конечно же, вам в этом помогут!
⠀
2. ПЕРЕХОД НА ДРУГИЕ ЯП
После изучения С/С++ изучение других языков программирования будет вам даваться намного проще, потому что многое, что есть или скрыто в других язык программирования, вам часто приходится использовать или реализовывать самостоятельно! Приведу пример, когда я давно изучал Java, то я прекрасно понимал (без глубокого чтения документации), что происходит в момент выполнения операции "new", за счет чего там происходит передача объектов по ссылке и почему там строки имутабельные. Также совсем недавно решил изучить Go, дойдя до указателей - я понял, что могу смело идти дальше, потому что знаю в этой теме практически все!
⠀
3. УВЛЕЧЕННОСТЬ
Лично мне, иногда, нравится понимать, что я пишу такой софт, который работает бок о бок с операционной системой или использует какие-либо фичи аппаратного обеспечения, чтобы максимально утилизировать ресурсы машины, на которой будет запускаться приложение. Поверьте, это действительно очень сильно завораживает!
⠀
1. ОСНОВЫ CS
Не получится просто взять С/С++ и начать на них бездумно программировать... Хотя нет, получится, но программы ваши будут постоянно постреливать в различных местах (чаще всего там, где вы этого не будете ожидать), либо они будут такими же медленными, как и программы на каком-нибудь интерпретируемом скриптовом языке программирования (т.е. смысла от использования этих языков не будет никакого). Не стоит отчаиваться, выход есть! Для того, чтобы избежать всех тех проблем, вам придется познакомиться с основами архитектуры компьютера и операционных систем. В итоге, если у вас все никак не доходили руки до изучения основ CS, то С/С++, конечно же, вам в этом помогут!
⠀
2. ПЕРЕХОД НА ДРУГИЕ ЯП
После изучения С/С++ изучение других языков программирования будет вам даваться намного проще, потому что многое, что есть или скрыто в других язык программирования, вам часто приходится использовать или реализовывать самостоятельно! Приведу пример, когда я давно изучал Java, то я прекрасно понимал (без глубокого чтения документации), что происходит в момент выполнения операции "new", за счет чего там происходит передача объектов по ссылке и почему там строки имутабельные. Также совсем недавно решил изучить Go, дойдя до указателей - я понял, что могу смело идти дальше, потому что знаю в этой теме практически все!
⠀
3. УВЛЕЧЕННОСТЬ
Лично мне, иногда, нравится понимать, что я пишу такой софт, который работает бок о бок с операционной системой или использует какие-либо фичи аппаратного обеспечения, чтобы максимально утилизировать ресурсы машины, на которой будет запускаться приложение. Поверьте, это действительно очень сильно завораживает!
Инженер или человек-технология?
⠀
Хотел бы рассказать о определенных видах вакансий для разработчиков.
⠀
Обычно я разделяю вакансии на два вида - те где, нужен человек под какую-либо определенную технологию и те, где нужен человек с определенным инженермным бэкграундом. Сейчас поговорим о каждом виде поподробнее:
⠀
ЧЕЛОВЕК ТЕХНОЛОГИЯ
Часто бывает, что компания пишет какой-то большой проект с использованием одного языка или одной технологии. Вот им как раз и требуется такой человек, который будет знать именно эти интрументы, а все остальные знания и навыки ему в принципе необязательны. При устройстве на такую позицию этому человек стоит понимать, что ему постоянно предстоит заниматься одним и тем же. У этого вида работы есть определенные плюсы - очень быстрый рост в глубь определенного языка или технологии, но в тоже время может получиться такая ситуация, что со временем этот язык или технология станет неактуальной, в следствие чего работы связанной с этими инструментами будет меньше, и в конце этому человеку, скорее всего, придется начинать изучать сначала что-то новое...
⠀
ИНЖЕНЕР
Крупные компании, такие как Яндекс, VK, Касперский и так далее хотят видеть в первую очередь инженеров (хотя у них тоже встречаются люди первого типа для определнных задач). Им нужен человек с основами, под основами я подразумеваю то, что этому человеку не составит никакого труда пересесть за несколько недель на другой инструмент или технологию. У них работают такие вот универсальные бойцы, которые из-за основ знают и то и то другое и третье, но если они чего-то и не знаю, то они быстро это учат и также быстро начинают использовать на практике. Конечно, эти люди редко занимаются одним и тем же, очень часто им приходится писать что-то новое для них, благодаря чему они становятся такими вот разносторонними специалистами.
⠀
Хотел бы рассказать о определенных видах вакансий для разработчиков.
⠀
Обычно я разделяю вакансии на два вида - те где, нужен человек под какую-либо определенную технологию и те, где нужен человек с определенным инженермным бэкграундом. Сейчас поговорим о каждом виде поподробнее:
⠀
ЧЕЛОВЕК ТЕХНОЛОГИЯ
Часто бывает, что компания пишет какой-то большой проект с использованием одного языка или одной технологии. Вот им как раз и требуется такой человек, который будет знать именно эти интрументы, а все остальные знания и навыки ему в принципе необязательны. При устройстве на такую позицию этому человек стоит понимать, что ему постоянно предстоит заниматься одним и тем же. У этого вида работы есть определенные плюсы - очень быстрый рост в глубь определенного языка или технологии, но в тоже время может получиться такая ситуация, что со временем этот язык или технология станет неактуальной, в следствие чего работы связанной с этими инструментами будет меньше, и в конце этому человеку, скорее всего, придется начинать изучать сначала что-то новое...
⠀
ИНЖЕНЕР
Крупные компании, такие как Яндекс, VK, Касперский и так далее хотят видеть в первую очередь инженеров (хотя у них тоже встречаются люди первого типа для определнных задач). Им нужен человек с основами, под основами я подразумеваю то, что этому человеку не составит никакого труда пересесть за несколько недель на другой инструмент или технологию. У них работают такие вот универсальные бойцы, которые из-за основ знают и то и то другое и третье, но если они чего-то и не знаю, то они быстро это учат и также быстро начинают использовать на практике. Конечно, эти люди редко занимаются одним и тем же, очень часто им приходится писать что-то новое для них, благодаря чему они становятся такими вот разносторонними специалистами.
Всем привет, хотел предложить вам поучаствовать в консультации по программированию со мной совершенно бесплатно!
Все, что нужно сделать - это заполнить форму на 20 вопросов, после чего написать мне в личку и согласовать время проведения консультации. Помимо консультации подготовил для вас файл с моей подборкой книг, видеоуроков, программ и статей для изучения программирования.
Форма:
https://docs.google.com/forms/d/e/1FAIpQLSemIo9J5ooDWNSbYdpRIbfAPhlSWBoNGUaG1OXbP31SwD_7uw/viewform?usp=sf_link
Все, что нужно сделать - это заполнить форму на 20 вопросов, после чего написать мне в личку и согласовать время проведения консультации. Помимо консультации подготовил для вас файл с моей подборкой книг, видеоуроков, программ и статей для изучения программирования.
Форма:
https://docs.google.com/forms/d/e/1FAIpQLSemIo9J5ooDWNSbYdpRIbfAPhlSWBoNGUaG1OXbP31SwD_7uw/viewform?usp=sf_link
Google Docs
Форма опроса
Опрос
Media is too big
VIEW IN TELEGRAM
Сегодня проходили бесплатные консультации для тех, кто ответил на 20 вопросов в Google форме…
Наверное, будет многим интересно, чем занимается backend разработчик (не тот, который делает примитивный backend для сайтов, а тот, кто пишет сервисы, с которыми взаимодействуют тысячи или миллионы пользователей) на работе, поэтому в этом посте будет краткая информация на эту тему:
Профилирование:
Бывает, что случаются тормоза в приложении с базой данных, диском, сетью, кодом или ещё чем-то другим, из-за чего приходится выявлять такие тормоза в приложении и устранять проблемы с производительностью.
Масштабирование системы:
Возможна ситуация, когда приложение просто не выдерживает нагрузку и в этой ситуации приходится заниматься масштабированием (оценивать нагрузку, добавлять железо, распараллеливать что-то, перепроектировать, профилировать и ещё кучу всего). Масштабирование это такое вот комплексное слово в программировании…
Проектирование:
Когда приходит задача - ее нужно решить с использованием каких-либо инструментов и технологий, по сути это и есть проектирование - мы выбираем несколько инструментов и затем определяем способ для их связи, чтобы выбранное нами решение было как можно проще и эффективнее.
Тушение пожаров:
Иногда случаются аварии, которые приходится быстро нейтрализовать, после чего расследовать причину аварии и придумывать то, что можно сделать, чтобы авария не повторилась в будущем.
Кодирование:
Все просто, останавливаться подробнее здесь не буду.
Тестирование:
Очень часто разработчики сами пишут тесты, будь то это юнит, интеграционные или авто тесты для того, чтобы качество приложения было как можно выше.
Фикс багов:
Думаю тут все понятно - ошибки неизбежны, какую-то часть времени приходится заниматься поиском и исправлением ошибок.
Также в зависимости от процессов и команды разработчик ещё может заниматься деплоем, администрированием, автоматизацией процессов, ручным тестированием тестированием и много чем ещё другим…
Профилирование:
Бывает, что случаются тормоза в приложении с базой данных, диском, сетью, кодом или ещё чем-то другим, из-за чего приходится выявлять такие тормоза в приложении и устранять проблемы с производительностью.
Масштабирование системы:
Возможна ситуация, когда приложение просто не выдерживает нагрузку и в этой ситуации приходится заниматься масштабированием (оценивать нагрузку, добавлять железо, распараллеливать что-то, перепроектировать, профилировать и ещё кучу всего). Масштабирование это такое вот комплексное слово в программировании…
Проектирование:
Когда приходит задача - ее нужно решить с использованием каких-либо инструментов и технологий, по сути это и есть проектирование - мы выбираем несколько инструментов и затем определяем способ для их связи, чтобы выбранное нами решение было как можно проще и эффективнее.
Тушение пожаров:
Иногда случаются аварии, которые приходится быстро нейтрализовать, после чего расследовать причину аварии и придумывать то, что можно сделать, чтобы авария не повторилась в будущем.
Кодирование:
Все просто, останавливаться подробнее здесь не буду.
Тестирование:
Очень часто разработчики сами пишут тесты, будь то это юнит, интеграционные или авто тесты для того, чтобы качество приложения было как можно выше.
Фикс багов:
Думаю тут все понятно - ошибки неизбежны, какую-то часть времени приходится заниматься поиском и исправлением ошибок.
Также в зависимости от процессов и команды разработчик ещё может заниматься деплоем, администрированием, автоматизацией процессов, ручным тестированием тестированием и много чем ещё другим…
Нашел недавно крутой плейлист по компьютерным сетям, где практически все основы того, как компьютеры взаимодействую между собой… Рекомендую ✌🏻
https://www.youtube.com/playlist?list=PLthfp5exSWErPFK_-EAhVtxO3XoY0gsSe
https://www.youtube.com/playlist?list=PLthfp5exSWErPFK_-EAhVtxO3XoY0gsSe
YouTube
Лекции по курсу "Компьютерные сети", Климанов М.М. (Осень 2021)
Share your videos with friends, family, and the world