LINUX.ORG.RU

Расскажите, как Вы изучаете новые технологии/языки?


1

2

Прошу совета. Я ещё учусь, и опыта - маловато. Но уже столкнулся с такой проблемой - трудно даются новые технологии/языки программирования!

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

Другой пример. Я на C++ в Visual Studio на работе пишу около 2-х лет, но некоторые аспекты плюсов - боюсь! Например, стараюсь обходиться без template-ов и прочей «магии». Т.е., двух лет опыта - явно мало. А, может, подход неправильный.

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

Понимаю, что так в двух словах не расскажешь, но прошу не смеяться, а подсказать и направить.


А я посмеюсь.

Беру книгу, которую многие советуют, иногда официальную документацию, качаю необходимое ПО и изучаю.

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

Я так тоже делаю, но можно более подробно? Я не могу понять, то ли я какой-то неправильный. Не запоминаю я всего с первого раза. Можно книжку, например, месяц читать, но потом половину из неё - не помнить! И подробности без книжки уже воспроизвести бывает невозможно!

Как это оптимизировать, вот это очень интересует.

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

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

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

Читай спецификации и стандарты. Остальное не нужно.

anonymous
()

Расскажите, как Вы изучаете новые технологии/языки?

echo "127.0.0.1    www.linux.org.ru" >> /etc/hosts
anonymous
()

сразу в бой кидаетесь

Я так делаю. Хотя программист из меня никакой, bash да php чуть-чуть. Ставлю задачу и стараюсь ее решить. Пробовал по книжкам - забываю моментально (хотя я и так забываю быстро все). Так что поначалу у меня код на 146% состоит из костылей и быдлокода, потом приглаживаю (хотя считаю это правильным!).

З.Ы. Может в толкс?

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

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

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

Просто читать, без применения полученных знаний — всё равно что писать «в стол». Правильный подход — Learn by doing. Обучение получится по спирали, по циклу теория-практика-опыт.

blexey ★★★★★
()

Скорее последнее.

сразу в бой кидаетесь, а потом только по ходу дела проясняете в документации/справочниках

+ google + lor.

Помимо того что их слишком много, так ещё и многие технологии/языки слишком быстро развиваются/меняются/мутируют. Нет времени вчитываться и изучать что-то досконально.

t1351
()

через полгода уже почти ничего по Java не помню, даже то, что читал!

Раньше люди в блокнотики писали. 2013 на дворе, заведите на рабочем столе файлик, куда пишите записки. Периодически группирую, нумерую и сливаю в vk-доки, чтобы не потерять. Внукам пригодится.

aristocraft
()

Гуглю на стековерфлоу. Там всегда есть всё готовенькое.

anonymous
()

Тебе нужно больше мотивации.

давалось очень трудно

Это не страшно.

через полгода уже почти ничего по Java не помню

А ты думал - всё, на всю жизнь? Без регулярной практики забывается что угодно.

Я на C++ в Visual Studio на работе пишу около 2-х лет, но некоторые аспекты плюсов - боюсь! Например, стараюсь обходиться без template-ов и прочей «магии»

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

Вообще, самая губительная зараза при изучении чего-то нового - подсознательная установка на провал, растущая из страха «у меня не получится». Чтобы ликвидировать его, попробуй обмануть себя, скажи себе, что попробуешь чуть-чуть, не всерьёз, играючи. Ну или накати грамм 100-150 коньяка, это тоже придаёт уверенности в себе :)

fragmentor
()

стараюсь обходиться без template-ов и прочей «магии».

И чего тогда от плюсов остается?

Как Вы изучаете новые технологии/языки?

Берешь и делаешь что-либо с этой технологией/языком. Чего проще?

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

И чего тогда от плюсов остается?

Остаются - полностью Си и классы. Изучал как-то исходники Doom3, обнаружил, что там тоже не особо пользуются шаблонами. Но может и зря не пользуюсь.

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

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

А зубрёжка книжек не даст ничего.

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

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

Хотя, может действительно, это всё второстепенно...

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

Так книжку читать никто не запрещает. Теория важно, но она только одна составляющая. Читай книжку, чтобы ознакомиться с основой, потом занимайся практикой и укрепляй теорию заодно.

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

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

Если под словом «книжка» подразумевается что-то больше чем 50 страниц, то — ненужно. Для понимания в общих чертах, — хватит и пары-тройки толковый статей, не больше.

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

Почему? Я в своё время прочёл Кернигана и Ритчи, а потом Страуструпа, ни разу не пожалел. Больше того, о многом бы не догадался даже, если бы книжки не прочёл. Хотя, Страуструпа надо перечитать, думаю. Непростой он.

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

Почему?

Ну я имел ввиду для тех языков которые не являются приоритетными. Только один язык нужно пытаться выучивать вдаваясь в подробнейшие детали. Только один.

(и это не должны быть кресты :), но это уже уход от темы)

Кернигана и Ритчи

Одобряю. Вещь.

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

и это не должны быть кресты

А почему? :( Их что-то ругают в последнее время, но достойных аналогов для промышленного применения, вроде, и нет пока.

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

А почему?

Трудно сказать. Опыта мало. Но _ИМХО_ лучше вызубривать ц, а для плюсов вполне подойдёт пара статеек.

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

Си мне как раз очень легко дался. Самое сложное, что там было, это «указатели на указатели на указатели на...», ну и ещё вызов функций по указателю. А вообще - всё довольно просто. Но на голом Си уже только системное пишут. И то, gcc последние уже требуют C++ для того, чтоб собраться...

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

с прискорбием поддержу. Единственный совет полностью релевантный поднятой теме.

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

+ google +lor

- lor

В /development тут все довольно грустно. Если, конечно, ты не новичок.

d_Artagnan ★★
()

но некоторые аспекты плюсов - боюсь!

и чо? Раз боишься - значит не дорос и не созрел, и, более того, тебе это еще попросту не нужно.

В общем, расскажите пожалуйста, как стимулировать процесс обучения?

fixed
Работай больше, а не на ЛОР болтайся

d_Artagnan ★★
()

через полгода уже почти ничего

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

некоторые аспекты плюсов - боюсь! Например, стараюсь обходиться без template-ов и прочей «магии». Т.е., двух лет опыта - явно мало. А, может, подход неправильный

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

Как Вы изучаете новые технологии/языки?

Читаю SO, *.SE, иногда hackernews, оттуда можно выйти на интересные идеи и блоги, а оттуда еще и еще. В к-л списках рассылки можно встретить упоминания и анонсы интересных подходов. Большой перебор. Вообще, не засиживаться в лор-толксах (и в целом в рунете) полезно для общего развития. Как тема становится интересной, оставляю поиски и поглощаю большие объемы деталей, тогда уже нет вопроса «что читать». Специально искать «какая моя языка» это тупняк, потому что снаружи все не так, как внутри. Ничо, придет.

Есть основы, о которых никто прямо не пишет, вроде SICP. Но их мало, и ты их уже прочитал.

arturpub ★★
()

Пишу хелловорлд с использованием технологии/языка.

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

Он же мне советовал.

Где? И почему ты уверен, что это тот самый анонимус?

MiniRoboDancer ★☆
()

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

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

Milker
()

В одном окне книга, в другом REPL/IDE.

Debasher ★★★★★
()

Читаю книгу (именно книгу по языку, а не документацию на оф. сайте!) и пишу какую-нибудь очень мелкую, но полезную программку.

yaspol
()

Или вообще, сразу в бой кидаетесь, а потом только по ходу дела проясняете в документации/справочниках?

Да, именно так.

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

Hater ★★
()

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

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