Search
Write a publication
Pull to refresh
0
@Nlve11read⁠-⁠only

User

Send message

Почему некоторым так сложно учиться программированию?

Reading time15 min
Views112K

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

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

Читать далее

Как освоить иностранный язык без преподавателя. Часть 1. «Мой опыт»

Reading time6 min
Views41K

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


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


таблица-вертушка неправильных глаголов


Курсы я отмёл сразу, т.к. в принципе не верю в такую модель обучения. Она создаёт приятную иллюзию того, что тебя обучают, а тебе только надо 2 раза в неделю приходить на занятие и иногда не забывать делать домашку. Такое своеобразное перекладывание ответственности. Всё это мы и в школе проходили, даже в более интенсивном формате. Но растягивать это дело на долгие годы, чтобы получить сомнительный результат, мне совершенно не хотелось...

Читать дальше →

Атрибуты Хорошего С-кода (Хартия Си Программистов)

Level of difficultyEasy
Reading time11 min
Views30K

Это не академические атрибуты из учебников. Это скорее правила буравчика оформления сорцов из реального prod(а). Некоторые приемы совпали с MISRA, некоторые с CERT-C. А кое-что является результатом множества итераций инспекций программ и перестроек после реальных инцидентов. В общем тут представлен обогащенный концентрат полезных практик программирования на С(ях).

Читать далее

Программирование: теоремы и задачи

Reading time4 min
Views9K

После неудачного (с точки зрения эффективности траты времени) погружения в "Грокаем алгоритмы" по совету Яндекс Практикум и решения нескольких задач в "Бесплатный курс: подготовка к собеседованиям" от того же Яндекса решил поискать литературу на тему разбора задач. Довольно много рекомендаций указывало на книгу "Программирование: теоремы и задачи" от Александра Шень. Предыдущее издание книги можно, кстати, официально скачать с сайта издательства Московского Центра Непрерывного Математического Образования.

Сам автор характеризует книгу как справочник и задачник для преподавателя. Причем во введении и аннотации упоминает школу на порядок чаще университета. Да и формулировки многих задач намекают на школьную аудиторию. На этом стоит остановиться сразу. Речь может идти только об очень очень особой школе и очень очень особых школьниках. Например, таких, которые ходят на математический кружок мехмата МГУ, где математически доказывают выигрышную стратегию при игре в крестики-нолики. 90% материала выходят за рамки школьной программы по информатике. Да и некоторые задачи используют математический аппарат, который тоже в школьный стандарт не входит. Не стоит отметать эту книгу как что-то для маленьких и неразумных.

Читать далее

Немного о строках в Си, или несколько вариантов оптимизировать неоптимизируемое

Reading time9 min
Views204K
Хабра, привет!

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

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

У меня был с собой ноутбук с Linux, на котором присутствовал джентльменский набор утилит для разработки на языке Си (gcc, vim, make, valgrind, gdb). Я уже не помню, какую цель мы тогда перед собой поставили, но через пару минут мой оппонент оказался за этим ноутбуком, полностью готовый решать задачу.

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

char *str = (char *)malloc(sizeof(char) * strlen(buffer));

buffer — стековая переменная, в которую заносились данные с клавиатуры.

Я думаю, определенно найдутся люди, которые спросят: «Разве что-то тут может быть не так?».
Поверьте, может.

А что именно — читайте по катом.
Читать дальше →

Как решить 4 главные проблемы, с которыми сталкивается любой стажёр-тестировщик

Reading time5 min
Views21K

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

Расскажу, с какими сложностями сталкиваются стажёры, и как мы помогаем эти сложности преодолеть и погрузиться в сложный проект.

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

Уверена, что мой опыт пригодится наставникам и тимлидам, которые также вводят новых QA. Делитесь в комментариях и своим опытом.

Читать далее

Формула образования будущего: 4 слагаемых и покемоны

Reading time17 min
Views46K

Пикачу, Венузавр, Бульбазавр, Ивизавр, Сильвеон, Мьюту, Чаризард, Метапод, Бидрилл, Псидак, Пиджи, Пиджит, Пиджеотто, Электабазз, Оманайт… Я честно списала эти названия покемонов с сайта, потому что запомнила только двух: Пикачу и Бульбазавра (одного знала, второй смешной). А в 2017 году 10-летний сын моего соседа по даче бодро перечислил мне несколько десятков покемонов и очень злился, что я не в курсе разницы между всеми ними. Как это видела я: в голове простого мальчишки без всяческих гениальных наклонностей хранится целая база данных — таблицы имён, таблицы видов, таблицы свойств, эволюционные цепочки и т. д. И всё это безотказно воспроизводится. А вот с таблицей умножения у него была беда, несмотря на третий класс без троек. Часть лета я довольно плотно общалась с этим мальчиком (и его покемонами) и уже тогда искала ответ на вопрос: что там такое особенное в голове, как оно устроено? В принципе, ответ лежал на поверхности: постоянная практика (смартфон врос в руку), геймификация процесса и огромная, просто колоссальная мотивация разобраться, запомнить и оперировать данными. Угадайте, какими методами школа и родители впихивали в него ту же таблицу умножения? 

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

Читать далее

Ищем простые числа до триллиона за тридцать минут

Reading time21 min
Views28K
image

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

Сегодня я хотел бы поделиться с вами различными вариантами реализации поиска простых чисел на языке C#, начиная с классических алгоритмов — решета Эратосфена, Сундарама и Аткина, и кончая различными оптимизациями (сегментация, факторизация). Особый упор я делал на простоту: самый быстрый из алгоритмов, который мне удалось получить, содержит 120 строк кода и ищет простые числа до триллиона меньше, чем за 30 минут, а до миллиарда — меньше, чем за секунду (это далеко от производительности лучших из существующих библиотек по поиску простых чисел, но эти библиотеки обычно содержат свыше 4000 строк кода).
В заключение мы применим самую быструю реализацию для поиска максимального расстояния между двумя соседними простыми числами до триллиона. Прежде чем заходить под кат, я предлагаю вам попытаться угадать ответ. Для сравнения, для простых чисел до 100 максимальное растояние равно 8 (между соседними простыми числами 89 и 97), а до тысячи — 20 (между 887 и 907).

Весь исходный код можно найти на гитхабе.
Читать дальше →

Разработка шахматной программы

Reading time10 min
Views77K
Было ли вам когда-либо интересно написать свою шахматную программу? Настраивать и развивать её, проверять её на знакомых любителях шахмат и радоваться её победам. Но как написать такую программу? Об этом я и расскажу в этой статье.
Читать дальше →

Как студент строительного факультета подготовился к устройству на работу в Амазон

Reading time13 min
Views27K

Компания Geekfactor cовместно с Getmentor.dev проводит программу подготовки к трудоустройству в зарубежные стартапы (бесплатно помогаем подготовиться к интервью и показываем резюме классным компаниям) — почитать о ней подробней и зарегистрироваться можно тут. Первый бесплатный вебинар с экспертами программы пройдёт 2-го ноября. Предлагаем вашему вниманию статью о самостоятельном изучении программирования и подготовке к трудоустройству в Amazon.

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

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

Как устроиться в Амазон?

Чтобы решать «нерешаемые» задачи, нужно знать алгоритмы

Reading time7 min
Views28K

Артем Мурадов — Senior Software Development Engineer в Amazon и автор курса «Алгоритмы: roadmap для работы и собеседований». Уже больше 14 лет он использует алгоритмы для решения рабочих задач и прохождения собеседований. С помощью алгоритмов он повышал производительность приложений, побеждал в спорах с коллегами и ускорял исследование ДНК. Даже попасть в Amazon ему помогло знание алгоритмов.

Мы пообщались с Артемом, чтобы узнать о его опыте. Он подробно рассказал, как изучал алгоритмы и как они помогали ему в работе.  

Читать далее

Я решил 500 задач на LeetCode — и они действительно меня чему-то научили

Reading time5 min
Views267K

Много кто знает, что такое Leetcode. Это своего рода решебник — задачи, которые дают на технических собеседованиях в крупных компаниях (в том числе и из FAANG) и их решения.

Такие задания, заточенные на знание структур данных и алгоритмов, все чаще встречаются и на собеседованиях в небольших компаниях. Многим кандидатам это не нравится — они утверждают, что навыки «литкодинга» ничего не говорят о том, как человек справится с реальной работой. Согласен. Если вы не можете слёту решать задачи c LeetCode, это не значит, что вы плохой разработчик. Возможно, вам в реальной работе вообще никогда не понадобится, скажем, инвертировать бинарное дерево. Однако глупо отрицать, что на LeetCode можно изучить массу подходов и инструментов, которые окажутся полезными. В этой статье я расскажу о том, что вынес для себя из работы с платформой.

Уроки Литкода

Как начать писать программный код Си в ОС Linux (Руководство для совсем начинающих)

Reading time5 min
Views87K

Этот материал рассчитан на людей, будущих программистов, которые только начинают разбираться в программировании под ОС Linux, или может быть долго были пользователями ОС Windows. Я попробую здесь показать прямое руководство к действию на примере ОС Ubuntu и тех простых инструментов, которые использовал некогда сам при изучении Си в процессе знакомства с Linux.

Читать далее

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

Reading time2 min
Views65K

Это будет моя самая короткая статья.

Когда-то я был молод и зелен и решал проблемы именно так, как их решают джуны. Алгоритм такой:

1. Узнать о проблеме
2. Локализовать проблему
3. Загуглить проблему и решение
4. Пофиксить проблему

Например: эксель-файл содержит ошибку, и поэтому не может быть обработан. Я открывал файл, редактировал проблемную строчку, закрывал файл. Проблема решена.

Или другой пример: не отработал скрипт из-за ошибки в коде. Чиню ошибку, скрипт начинает работать.

Прошло 10 лет...

Читать далее

Information

Rating
Does not participate
Registered
Activity