LINUX.ORG.RU

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

 


3

2

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



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

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

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

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

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

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

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

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

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

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

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

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

upcFrost ★★★★★
()
Ответ на: комментарий от 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

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

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

Я был в похожей ситуации: знания лишь академические и кодобаза на 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 ★★★★★
()
Ответ на: комментарий от qanon

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

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

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

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

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

LINUX-ORG-RU ★★★★★
()