LINUX.ORG.RU

Где брать знания по программированию?

 


3

2

В общем взяли меня junior-программистом на испытательный срок. И возникают такие ситуации, когда я лезу в документацию, иногда это помогает, а иногда нет. Ко мне подходит middle и говорит как надо делать, но я понять не могу. Пару раз он за меня несколько строк кода написал, сказал что я должна сама это делать. Я смотрю на код который он мне написал и понимаю что сама бы не додумалась так написать. Что читать для того чтобы почерпнуть знания по программированию?



Последнее исправление: Golden_Fleece (всего исправлений: 2)

Что читать для того чтобы почерпнуть знания по программированию

ну вот чужой код и читать
проект то, небось, большой?

anonymous_sapiens 🤡
()

Я надеюсь базовое понимание(что такое оператор, условный оператор и т.д.) у тебя есть? Если да, то:

Книгу по языку, на котором пишешь
Книгу по алгоритмам впринципе

Этого для начала ИМХО хватит

Pinkbyte 👍
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Есть у меня понимание базовых конструкции языка. Алгоритмы знаю, только они не спасают, бизнес-логика и все эти алгоритмы которые я в вузе учила тут мимо пролетают(

Golden_Fleece
() автор топика
Ответ на: комментарий от anonymous_sapiens

Пытаюсь читать но мне его трудно разобрать… (

Golden_Fleece
() автор топика
Ответ на: комментарий от Golden_Fleece

Ну, бизнес-логику постигать надо самому, это да.

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

Pinkbyte 👍
()
Последнее исправление: Pinkbyte (всего исправлений: 2)

Что читать для того чтобы почерпнуть знания по программированию?

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

upcFrost
()

понимаю что сама бы не додумалась так написать

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

все что под НДА почикай, оставь суть

и как у тебя с leetcode?

olelookoe ☕☕☕
()

Если тебя взяли, то уволить по статье сложно уже будет. Можешь расслабиться, а код за тебя пускай херка пишет или тот, кто тебя брал

qanon
()
Ответ на: комментарий от olelookoe

Да простое вытягивание из БД ПРАВИЛЬНОЕ, а не костыльное.

НДА, leetcode впервые слышу ( Вот про это почитаю. У меня проблема именно с написанием бизнес-логики… Алгоритмы знаю, синтаксис тоже, иначе бы собеседование не прошло. Гоняли как раз по алгоритмам и синтаксису. А на деле просто бизнес-логика (… В которой все эти алгоритмы мимо пролетают…

Golden_Fleece
() автор топика
Ответ на: комментарий от qanon

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

qanon
()
Ответ на: комментарий от qanon

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

Golden_Fleece
() автор топика
Ответ на: комментарий от Golden_Fleece

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

z0idator
()
Последнее исправление: z0idator (всего исправлений: 1)
Ответ на: комментарий от qanon

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

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

using (контекст БД обьектКонтекстаБд = new контекстБД) { Вытаскивание данных в коллекцию }

Оказывается так вообще не правильно через using к БД обращаться. Надо по-другому. В конструктор «заинжектить» переменную контекста и потом через нее если что вытаскивать.

Golden_Fleece
() автор топика

А какой был опыт программирован до этого? В школе задачки решали? Что-нибудь внешкольное было?

Просто процесс изучения кодинга я бы разделил на две части, сперва ты должна набить руку писать код, решая какие-нибудь алгоритмические задачки (например с leetcode.com). Другая важная часть, ты должна научиться «воровать» идеи из чужого кода, т.е. читать код для поиска интересных и незнакомых «фишек» и использовать их. Уточню, не просто копировать код, а почерпнуть новые знания и подходы к решению проблем. Представить что ты занимаешься технологическим шпионажем.

Я почему спросил про опыт кодинга, все потому что я думаю что нынче курсы очень обманчивые. Я вот фиговый кодер, но я когда-то начал с внешкольного программирования, потом в школе «щелкал» задачки на информатике, потом решил стать настоящим программистом и изучал один язык 4 года, и только потом нашел работу кодером. Получается что я много лет изучал программирование и стал посредственным кодером. А сейчас курсы обещают что за год могут сделать программиста почти из любого человека, лично я считаю это обманом.

Aber 👍👍
()
Последнее исправление: Aber (всего исправлений: 3)
Ответ на: комментарий от Golden_Fleece

new контекстБД()

Ага, за такое подзатыльник давать нужно. И ещё за то, что ты не написала тестов на это.

bo4ok
()
Ответ на: комментарий от Golden_Fleece

Да простое вытягивание из БД ПРАВИЛЬНОЕ, а не костыльное.

И разве в вашем проекте не нашлось аналогичного примера использования БД?

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

Не знаю, как у вас поставлен процесс, но в самом начале мне очень развёрнуто объясняли, что и как написать, а когда я начал решать задачи самостоятельно, то по бизнес-логике начали объяснять те, кто эти задачи создавал (простого текста задачи мне было недостаточно очень часто). Если мне было что-то непонятно, то я бегал и уточнял. Но замечу, что у нас совсем небольшая контора и поэтому такой способ коммуникации не вызывает трудностей.

PhysShell
()

«Дион Хрисостомос. Троянская речь в защиту того, что Илион взят не был.

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

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

Конечно, для неразумных истина горька и тягостна, а ложь сладка и вкрадчива.» (с)

Полный курс по ссылке, записывайсо прям щас

slackwarrior 😊😊😊
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от Golden_Fleece

Ну раз базовые знания есть - правильно сказали: «читай матчасть и документацию».
Я бы добавил «изучай чужой код в проекте».
Вообще, от джуна не требуется писать такой же код, какой пишут опытные вот прямо сразу.
Со временем научишься.

Minona
()

попробуй «идиоматическое программирование на твоем языке программирования», «идиомы твоего языка программирования», «шаблоны проектирвания на твоем языке программирования», ну и да «практика программирования на твоем языке программирования», «100500 задач на твоем языке программирования»:)

slackwarrior 😊😊😊
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от PhysShell

Вот этом коде проблематично разобраться, я такое вообще в первый раз в жизни вижу в глаза. Тут все с помощью паттернов проектирования построено, и очень правильно. Если паттерны в теории я знаю нормально то на практике плыву. У меня в моих задачках никогда не было потребности в них, мидла всегда могу попросить помочь, он на этаже выше сидит, но я его уже боюсь… Говорит что туплб на ровном месте и непонятно как я работать дальше буду… (

Golden_Fleece
() автор топика

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

vbr ☕☕☕☕☕
()
Последнее исправление: vbr (всего исправлений: 2)
Ответ на: комментарий от Golden_Fleece

Обычно 95% задач в проекте — посмотри как уже сделано и сделай наподобиЭ. Особенно это касается задач для джунов.

Тут все с помощью паттернов проектирования построено, и очень правильно.

Сами по себе паттерны — это костыли для людей без воображения :) Многие радостно отколючают моск, как только слышат слово «паттерны». Потому что требование «сделать согласно вон тем паттернам» — это копи-паста на понтах. Остальное «очень правильное» выравнивание скобочек и прочих береговых линий требует не мозгов, а «усидчивости».

slackwarrior 😊😊😊
()

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

slyjoeh
()
Ответ на: комментарий от z0idator

Воистину так, только я ещё забыл кое-что: когда речь идёт не о специфике проекта, наше всё это — Stackoverflow и постижение мастерства составления запросов в поисковых системах… да, это очевидно, и всё-таки: задачи мне бы давались с гораздо большими титаническими усилиями, не будь у меня возможности загуглить, а подспорьем стала некая степень владения английским. Хотя и переводчики сейчас вроде справляются неплохо.

Я этим в общем-то не горжусь, но в глубине души рад, что была (и есть) такая возможность.

PhysShell
()
Ответ на: комментарий от Golden_Fleece

Это С#? Я помню историю, но смутно помню детали, но когда-то тоже так написал, а потом оказалось (внезапно), что по выходу из блока контекст, который глобальный на всю программу, разрушается и все дальнейшие запросы отваливаются.

PhysShell
()
Ответ на: комментарий от Aber

решая какие-нибудь алгоритмические задачки (например с leetcode.com).

Это чтобы в FAANG пройти собеседование. В жизни оно не нужно

потом решил стать настоящим программистом и изучал один язык 4 года, и только потом нашел работу кодером

помог литкод и задачки по программированию?

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

они за 2 года обещаю сделать миддлом.

Ей твой литкод ну никак не поможет. Она банально не знает до конца синтаксис C#, не знакома с либами с которыми работает… А там их «превеликое» множество ASP.MVC и Enttity Framework

qanon
()
Ответ на: комментарий от Golden_Fleece

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

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

Однако если например дают задачу, связанную с БД я делал Ctrl+F по SqlConnection и смотрел, где и как оно используется. На этом уровне всё довольно доступно было.

PhysShell
()
Ответ на: комментарий от slackwarrior

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

qanon
()
Последнее исправление: qanon (всего исправлений: 1)
Ответ на: комментарий от PhysShell

чёрный ящик, нечёткая логика и неполная информация — наше всё Ж)
с баном в гугле решается ооочень тяжело
решать такие задачки самому более чем почётно и понимания на выходе будет напорядок больше, респект

z0idator
()
Ответ на: комментарий от qanon

помог литкод и задачки по программированию?

Я в то время изучал когда всего этого небыло.

Ей твой литкод ну никак не поможет.

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

Она банально не знает до конца синтаксис C#, не знакома с либами с которыми работает… А там их «превеликое» множество ASP.MVC и Enttity Framework

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

Aber 👍👍
()
Последнее исправление: Aber (всего исправлений: 1)

Я смотрю на код который он мне написал и понимаю что сама бы не додумалась так написать

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

slovazap
()

понимаю что сама бы не додумалась так написать

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

Что читать для того чтобы почерпнуть знания по программированию

https://martinfowler.com/architecture

Ещё посоветую книжку «PHP: объекты, шаблоны и методики программирования» Мэт Зандстра. Она хоть и по пыху, но неплохо разжёвывает всякие ынтерпрайз решения.

PS: вообще есть впечатление что тебя просто абъюзят, предлагая делать работу мидла за меньший прайс. Но ты не расстраивайся, это всё равно опыт, многие через это прошли.

no-such-file 👍👍👍👍👍
()
Ответ на: комментарий от z0idator

чёрный ящик, нечёткая логика и неполная информация

Вынужден согласиться и добавить в этот список проклятий такой феномен, как говнокод — у меня тут дремучее легаси и вообще первый проект компании на С#, который делали в сжатые сроки. Самое обидное, что он никогда серьёзно не рефакторился и поддерживался тоже абы как (где-то читал, что теория разбитых окон справделива для программирования).

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

Меня понесло что-то на откровения, не воспринимай серьёзно если что.

PhysShell
()

язык хоть какой? чтобы работать в команде, язык знать надо на хорошо и отлично. тут надо читать типа «лучшие практики программирования на …». потом смотреть "лучшие практики работы с [тут название предметной области] на [тут название языка].

и потом, период вхождения в тему в новой команде - ну пара недель для спеца, и пара месяцев для нуба.

язык надо знать в совершенстве.

alysnix ☕☕☕☕☕
()
Ответ на: комментарий от Golden_Fleece

мидла не боись, он тоже человек. устал небось. терпеливо объяснять это тоже талант, не у всех он есть.

на нервяке косячат абсолютно все , поэтому вспомни что тебя успокаивает и успокойся

твоя работа - учиться. учись. «ищи похожий код в проекте и на stackoverfow» это хороший практический совет.

olelookoe ☕☕☕
()

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

seiken ☕☕☕☕☕
()

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

LINUX-ORG-RU 😊😊😊😊😊
()
Ответ на: комментарий от Golden_Fleece

По хорошему он должен сказать не только как надо, а почему не надо так как делала ты. Что-бы появилось понимание, а не просто «по другому»

LINUX-ORG-RU 😊😊😊😊😊
()

Я бы не отвечал junior’aм на подобные вопросы

serg002 🤡🤡🤡🤡🤡
()
Ответ на: комментарий от qanon

Если тебя взяли, то уволить по статье сложно уже будет.

Испытательный срок? Во время испытательного срока даже самому можно за 3 дня уволиться, а не ждать 2 недели пока работодатель найдёт замену.

grem 👍👍👍👍👍
()
Ответ на: комментарий от Golden_Fleece

Взять то же самого мидла, посадить его на незнакомый проект он так же как и ты «тупить» будет ибо пока кухня не известна хотя бы поверхностно хрен ты чего сделаешь. Для опыта тоже надо время. Ну сиди набивай руку и голову. Вникай/гугли/спрашивай. Ты сказала что проект сам в себе одна бизнес логика для этого нет книг и однозначных советов только условия конкретного случая. Возможно в поставленных задачах тебе и не нужно знать архитектуру проекта и вообще как он работает, ну тогда запоминай/записывай/вникай если есть возможность то дома по вечерам тоже самое делай. Тут не угадаешь. А может наставник у тебя херовый или он тебя проверяет , подуськивает и всё такое, смотрит как ты реагируешь на критику и всякие «я не знаю как ты тут будешь работать» кто знает. Делай то что можешь, учись новому, как робот с холодной головой игнорируй всякие личные особенности тех кто вокруг. В любом случае надо время, тут что-то узнала, там сказали и так далее. Удачи и терпения. Старайся, в начале всегда сложно.

ПС - Я сам не программист просто говорю по опыту разбирательств с разными проектами с гитхабов и репозитория дебиана. Надо вникать, по иному никак. Удачки лавки чмафки хехе

LINUX-ORG-RU 😊😊😊😊😊
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.