Сохранен 39
https://2ch.hk/pr/res/1013588.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Прививка от говнокодинга

 Аноним 29/06/17 Чтв 17:01:19 #1 №1013588 
PIK.jpg
Анон, нужна твоя помощь. Собрались мы тут с посонами на бордах, решили вкатываться в программирование. Все люди уже солидные, бородатые, адекватные. Быстрых результатов не ждем, сколько лет надо будет учиться - столько и будем. Набрались терпения, мотивируем друг друга, чтобы не дропнуть, пока получается.
Главная наша цель сейчас - избежать поверхностных знаний и ненадежных умений. В общем, уважаемый высококультурный в профессиональном смысле анон-программист, поясни по хардкору, пожалуйста, следующие вещи: (мы занесём всё в нашу базу знаний, систематизируем и расшарим для всех интересующихся)
1. Можно ли написать работающий код, к примеру, на собеседовании, взглянув на который тебя сразу не примут. Несмотря на то, что код формально задачу выполняет. Чем говнокод и говнокодер отличается от грамотного, правильного, красивого, профессионального и т.д. Молим, приведите примеры, чем конкретнее и подробнее, тем лучше. Понятное дело, что в каждом языке программирования и технологии есть свои узкие особенности, но, возможно, есть и что-то общее. Хотя узкие вещи тоже любопытны и интересны.
2. Перечислите ключевые слова, понятия, необходимые для освоения любому начинающему программисту. То, что входит в "золотую середину" теоретической базы, необходимую для осознанной, вдумчивой разработки. То, что отличит тебя от обезьян, сделает обладателем программистского разума. Чтобы ты мог не обосраться на тех же собеседованиях хотя бы в базовых вещах. Золотая середина в плане теории, на наш взгляд, - это и не совсем уж технические дебри, которые даже в долгосрочной перспективе не будут иметь прикладного значения, но и не отсутствие теоретических знаний вовсе. Часто к этому прибавляется убеждение о их бесполезности, занудности и даже немодности.
И да, если у кого-то возникнет желание к нам присоединиться, милости просим, будем любить и боготворить. Контакты сообщим в треде
Аноним 29/06/17 Чтв 17:10:11 #2 №1013595 
>>1013588 (OP)
>1. Можно ли написать работающий код, к примеру, на собеседовании, взглянув на который тебя сразу не примут. Несмотря на то, что код формально задачу выполняет.

Только этим и занимаюсь:

if a = 'true'
puts true
elsif a = 'false'
puts 'false'
else
puts 'undefined'
end
Аноним 29/06/17 Чтв 17:19:47 #3 №1013599 
2) Тут было написано много текста. Сократить можно до получения PhD и пары книжек после этого.
Аноним 29/06/17 Чтв 17:51:18 #4 №1013613 
Все подряд не опишешь. Лучше всего - найти опытного программиста, который вам ревью будет делать.
Аноним 29/06/17 Чтв 17:52:24 #5 №1013614 
> Перечислите ключевые слова, понятия, необходимые для освоения любому начинающему программисту
- Алгоритмы (основы)
- Типы данных
- Переменные и их базовая классификация
- Понятие о подпрограммах (процедурах и функциях), библиотеках
- Структуры данных (основы)
- Общая информация о парадигмах программирования (напр., ООП)
- Паттерны проектирования
- Компиляторы и интерпретаторы

Небрежно накидал то, что пришло в голову навскидку
Аноним 29/06/17 Чтв 17:54:59 #6 №1013615 
>>1013613
Ну если с миру по нитке долго собирать, то можно попробовать. "Всё подряд" можно потом систематизировать
> Лучше всего - найти опытного программиста
Это понятно, но где его найти?
Аноним 29/06/17 Чтв 17:59:48 #7 №1013618 
>>1013615
> Это понятно, но где его найти?
Какой язык у вас?
Аноним 29/06/17 Чтв 18:00:36 #8 №1013619 
>>1013615
Тут? Чего стесняться, если вы и так двачеры?
Аноним 29/06/17 Чтв 18:12:59 #9 №1013623 
>>1013618
в том-то и дело, что языки у всех разные. Нас достаточно много. Если выделить основное, то это
C++ (студенты, которые хотели бы наконец-то разобраться, понять, осознать, что делаешь, чтобы не просиживать в универе штаны)
Java (те, кто хотели бы в светлом будущем заняться Android-разработкой)
Full Stack для веб - тут помимо общих для всех HTML, CSS и JavaScript есть последователи PHP и Python. В мечтах видят себя веб-разработчиками, готовы учиться, страдать и превозмогать
Аноним 29/06/17 Чтв 18:18:23 #10 №1013624 
Кем бы ты ни был, велика вероятность столкнуться с базами данных. Так что всем необходимо получить основы по этой теме и SQL. Это то, что нас объединяет. В том числе познакомиться с NoSQL, хотя бы узнать, что такое существует
Аноним 29/06/17 Чтв 19:13:12 #11 №1013636 
>>1013588 (OP)
>Чем говнокод и говнокодер отличается от грамотного, правильного, красивого, профессионального
говно код:
1. нечитаем. программа это набор абстракций и их взаимоотношений. если ты не понимаешь что делают отдельные части программы и с чем они связаны, то ты имеешь дело с говнокодом. читаемый код обязан быть логичным и настолько простым, насколько это возможно.
2. хрупок. когда для того чтобы добавить новую фичу в программу или изменить уже имеющуюся тебе нужно переписывать дохуя кода, ты имеешь дело с говнокодом. ну или ты долбоеб и не распланировал возможности и цели программы заранее.

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

> Перечислите ключевые слова, понятия, необходимые для освоения любому начинающему программисту. То, что входит в "золотую середину" теоретической базы, необходимую для осознанной, вдумчивой разработки. То, что отличит тебя от обезьян, сделает обладателем программистского разума.
Ну нахуя тебе это сейчас надо? Думаешь на джунов идут с ахуенными знаниями как строить архитектуры программ? Придумай какую-нибудь идею, посмотри/спроси какие средства нужно для того чтобы ее реализовать, в процессе реализации выучишь все что надо. Потом уже можно посмотреть как свое говно переписать так, чтобы было не совсем говно, а сейчас мозги себе ебать таким не рекомендую.

ежели желаешь уйти в академическую сторону, то есть ахуенная паста на лурке под названием "Высшее образование в IT своими руками v2 Высшее образование в IT своими руками v2". но начать лучше с mit cs 6.001x или с harvard cs50(который полегче).
Аноним 29/06/17 Чтв 19:14:54 #12 №1013637 
>>1013636
эх, разучился на русском писать.
Аноним 29/06/17 Чтв 19:24:37 #13 №1013644 
>>1013588 (OP)
Для начала нужно прочесть СИКП, в обязательном порядке. Там как раз знания, которые не устаревают.
Аноним 29/06/17 Чтв 22:34:45 #14 №1013782 
>>1013588 (OP)
SOLID
O
L
I
D
Аноним 30/06/17 Птн 01:09:27 #15 №1013874 
>>1013588 (OP)
Как вкатиться к вам? Тоже студент с++ "учил" в универе год. Возможно знаю основы синтаксиса, что дальше?
Аноним 30/06/17 Птн 01:51:07 #16 №1013880 
Оп, где контакты? Хочу вкатиться пхп
Аноним 30/06/17 Птн 03:03:01 #17 №1013891 
>>1013588 (OP)
1. Именование. Когда переменные именуются без смысла невозможно понять что человек хотел сделать не вникая в его код, написанный корявым почерком. Короткий пример кода если он хорошо именован достаточно просто трансформируется в рсмысленный набор связанных предложений на английском языке.

2. Слишком много всего.

Вообще когда я вёл курсы в местной шараде по контракту моего работодателя, я давал детям что-то вроде кодерской рулеточки, но просил не самих писать а искать на гитхабе, уметь компилировать и модифицировать найденное. На плюсах это очень хорошо позволяло преодолеть боязнь "большого" кода и инструментов.
Аноним 30/06/17 Птн 05:38:43 #18 №1013908 
>>1013874
>>1013880
Телеграм:
t.me/clubez
Там скинем ссылку на Дискорд
Аноним 30/06/17 Птн 05:40:34 #19 №1013909 
>>1013782
Спасибо за этот вброс
Аноним 30/06/17 Птн 08:28:35 #20 №1013925 
>>1013588 (OP)
Ты это я полгода назад. Перекатился из КИПовца в программисты на с#/c. Мой тебе совет - не заморачивайся на счет теоретических знаний, все равно забудешь без практики их использования. Хватит книжки Совершенный код, постепенно почитывай ссылки на источники из нее. И не забывай решать какие-нибудь практические задачки, тот же калькулятор например накрудошлепь
Аноним 30/06/17 Птн 15:27:34 #21 №1014123 
>>1013925
Что за пол года освоил, что наплел на собеседовании? Что сейчас пишешь?
Аноним 30/06/17 Птн 16:18:13 #22 №1014154 
1. Для начала Совершенный код Макконелла, там полно примеров говнокода. Потом практика.

2. Основы алгоритмов. Хотя бы на уровне названий и сложности.
Для чего вообще нужны алгоритмы и почему нельзя завалить мощностями.
Большое О.
Бинарный поиск.
Структуры данных. Где какие использовать. Какие оптимизированы на скорость доступа, а какие на добавление элементов.
Парадигмы: процедурное, ООП, функциональное.
Жизненный цикл объектов. Гарбэйдж коллектор.
Что происходит в памяти. Стек и куча. Объекты и ссылки на них.
Почему лучше, когда объекты неизменяемые.

Аноним 30/06/17 Птн 22:56:07 #23 №1014373 
>>1013623
О ЧЁЁМ ТЫ?? КТО ВЫ ТАКИЕ?? СЕКТА, ЧТО ЛИ??
Аноним 30/06/17 Птн 23:20:51 #24 №1014383 
>>1014373
Ну почему сразу секта? Сообщество, комьюнити. Кто-то в инете озвучивает сериалы, кто-то пилит игры, устраивает конкурсы и т.д. А мы вот собираем инфу и пилим образовательную систему с функцией взаимомотивации и взаимопомощи её участников. Как будто что-то плохое...
Аноним 30/06/17 Птн 23:40:52 #25 №1014395 
>>1014383
>А мы вот собираем инфу
КТО МЫ? КТО ВЫ?? Где вы располагаетесь? Ты тут один представитель? Какое комьюнити? Какая ещё образовательная система? Ты уж либо говори конкретно, либо ничего, не понятно нихуя.

Какой ваш лвл? Откуда вы друг друга знаете? Какой профит "учить вместе" (алсо, так нихуя и не выучите)?
Аноним 01/07/17 Суб 01:29:31 #26 №1014430 
>>1013588 (OP)
Завтра ищешь в интернете книжку Dive into python. Похуй если ничего не поймешь. Затем идешь на python.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, сука, вызубриваешь конвенцию по написанию питоньего кода - PEP8, чтобы от зубов отскакивало. Когда напишешь свою первую имиджборду, по пути изучив верстку на html+css, скачиваешь и изучаешь любой питоний асинхронный вебсервер, рекомендую Tornado или Gevent. Как переделаешь имиджборду, чтобы выдавала по крайней мере 5 тысяч запросов в секунду, можешь идти дальше - тебя ждет увлекательный мир хайлоада. Apache Hadoop, сверхбыстрые асинхронные key-value хранилища, MapReduce. Отсос хиккующих выблядков / просто неудачников типа рейфага или сисярп/джава-хуесосов, которые сосут хуй по жизни не заставит себя ждать и уже через пол года ты будешь получать такие суммы, что любая баба будет течь при одном упоминании твоей зарплаты.
Аноним 01/07/17 Суб 07:47:21 #27 №1014449 
>>1014123
За пол года си шарп. Читал Альбахари и попутно говнокодил всякую поебень. Си более менее с института помнил (по образованию радиотехник). Пишу программы для счетчиков на си и типа что то скады на шарпе.
На собеседовании плел про ЛЕГКО ОБУЧАЕМ, ГЛАЗА ГОРЯТ и почую хрень, про программирование меня особо то и не спрашивали.
Аноним 01/07/17 Суб 11:58:42 #28 №1014485 
>>1013908
Самостоятельно осваиваю питон с нуля. Если принимаете таких как я - давай сразу ссылку на дискорд, нет желания ставить телеграм и ебаться с прокси.
Аноним 01/07/17 Суб 16:04:49 #29 №1014639 
>>1014485
Милости просим
хттп://дискорд.гг/KdHXtqN
Расписание конференций будет доступно в ближайшее время
Аноним 02/07/17 Вск 01:09:13 #30 №1014915 
>>1013623
Передайте своим программистам на с++, что бы учили с++. Скажите, что бы забыли, что char* может хранить строки. Они верующие? Тогда передайте им, что если они решат хранить так строки, то после смерти попадут в ад ну или куда там еще. Если нет, скажите, что в 20-том стандарте за такое будут бить deprecated по голове. Только std::string На то есть причины. Скажем оптимизация малых строк, нормальные функции работы с этими строками, и о чудо, можно узнать размер строки за O(1) вместо O(n)!

Потом скажите им, что слова new и delete - табу. Однократное нарушение табу карается мучительной экзекуцией. Десятикратное нарушение табу карается изгнанием Вниз. Повторное нарушение табу после изгнания карается абсолютной Смертью. Просто используйте std::unique_ptr, std::shared_ptr, std::weak_ptr. Когда какой использовать? Ну тут уж сами почитаете, но основная идея в том, что если где-то на что-то ссылаетесь, то у вас в голове рефлекторно должен вставать вопрос: "В каких отношениях находятся ссылающийся и ссылаемый?". Ссылающийся владеет ссылаемым и контролирует его время жизни - unique_ptr. Ссылающийся совладеет ссылаемым - shared_ptr, Ссылающийся не владеет ссылаемым - weak_ptr(Если нет гарантии, что время жизни ссылаемого не меньше чем у ссылающегося)/просто указатель(Если гарантируется, что ссылаемый не умрет за время жизни ссылающегося).
Разумеется C-программисты с вами не согласятся. О, эти ребята любят просто передавать туда-сюда куски памяти, а умных указателей у них нет. Ну что поделать. А еще вы и сами можете столкнуться с тем, что нельзя решить умными указателями. Но случается это редко. Очень. Настолько редко, что если уж случилось, вам сперва следует проверить, нет ли где ошибки. Может неудачный дизайн?

Ну и в конце концов, смотрите cppcon, читайте Александреску и Страуструпа и мойте руки перед едой.
Аноним 02/07/17 Вск 03:11:21 #31 №1014954 
>>1014915
Есть вообще хороший мануал в таком стиле? Ну вот скажем, как если бы кресты зарелизили в 11ом, последователей так мало, что приходится конкурировать с растом и в то же время, не надо кормить ритуальным говном, которым кормят уже лет 30?

Крепкий, новый C++? Иногда возникает необходимость эффективной работы с памятью.

Мимо бывшый крестовик, уже лет 10 не бравший шашечки, а взявши давеча, скопировал код из интернета для одной вычислительной задачи, поменял захордкоженные массивы на вектора и скомпилировал запустил и получил segfault cраные конструкторы копирования Плюнул, вернулся на жабу, пошаманил с jvm/системой и посчитал задачу, требующую 40Г памяти на 16Г машине.
Аноним 02/07/17 Вск 13:55:07 #32 №1015033 
>>1014915
>оптимизация малых строк
Как это реализовано?
Аноним 02/07/17 Вск 14:37:38 #33 №1015052 
>>1013588 (OP)
>Можно ли написать работающий код, к примеру, на собеседовании

Вопрос: а нахуя? Напиши код и закинь его в гитхаб, где твой код уже пройдет рефакторинг и будет обложен тестами. От тестовой задачи как правило от тебя просто ждут решения. Никто не собирается тебе ебсти мозги, а может быть даже положат хуй после того, как ты им покажешь свой рабочий код в гитхабе и вообще не попросят ничего больше (ты ж на джуниора устраиваться будешь, наверняка).


>Чем говнокод и говнокодер отличается от грамотного, правильного, красивого, профессионального и т.д. Молим, приведите примеры, чем конкретнее и подробнее, тем лучше.


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


> Перечислите ключевые слова, понятия, необходимые для освоения любому начинающему программисту. То, что входит в "золотую середину" теоретической базы, необходимую для осознанной, вдумчивой разработки.


Блядь, да их же дохуища. Лучше уж начинать с чего-то более-менее структурного. Поймите, в какую область вы хотите вкатиться, и из этого можно вам конкретный совет привести, что вам изучать, хотя я бы стандарт посоветовал изучить все, что связано со структурами и алгоритмами обработки данных, потому что без этого в любом языке по сути никак.
Аноним 02/07/17 Вск 14:47:22 #34 №1015055 
>>1014915

Поссал на лицо.


Мимо пхп-макака, живу в свое удовольствие
Аноним 02/07/17 Вск 22:06:21 #35 №1015293 
>>1015033
У кого как. Но основная идея в том, что бы вместо выделения памяти под строку в куче(Что не очень быстро), поместить строку в стек(Что быстрее). Однако в стеке места мало, потому туда помещают только небольшие строки. Какая строка считается небольшой? Как именно это реализовано? Это и многое другое читайте в документации к компилятору, которым пользуетесь.
Аноним 02/07/17 Вск 22:36:31 #36 №1015302 
>>1015293
А, я думал, речь о том, что неэффективно, если много маленьких строк, хранить на каждую по 3 указателя. Но это бред, пожалуй.
Аноним 02/07/17 Вск 23:34:21 #37 №1015322 
>>1013636
двачую mit шные курсы, если нет денег на вторую вышку в каком-нибудь физтехе, то эти курсы - твое спасение
Аноним 02/07/17 Вск 23:58:26 #38 №1015330 
>>1015055
Молодец, теперь лицо вымой и дальше живи.
Аноним 05/07/17 Срд 02:14:21 #39 №1016619 
>>1013908
Пхп-макак вкатился к вам - будем чатиться
comments powered by Disqus