Айдар Храмов
май 2016.
24320

Возможно ли изучить программирование за лето?

Ответить
Ответить
Комментировать
1
Подписаться
33
9 ответов
Поделиться
Ответ партнёра TheQuestion

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

Но нескольких месяцев, например, целого лета точно хватит, чтобы разобраться в основах, если у вас чётко поставлены цели и есть план:

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

— Выбрав цель и сферу, из этого уже следует за какие языки нужно браться. Писать программы для запуска космических кораблей можно на C++, мобильные приложения для iOS — ObjectiveC и Swift, для Android — Java.

Если это веб и вёрстка, то для начала вам стоит освоить язык разметки страниц HTML и стилизации страниц CSS, для фронтенд-разработки (оживления в браузере вёрстки) — JavaScript, для бэкенда сайтов и сервисов можно выбрать: PHP, Node.js или, например, Ruby on Rails.

— Мотивация и интерес к объекту изучения, поможет не сдаться.

— Ещё поможет не сдаться поддержка со стороны и старший товарищ, который уже имеет опыт разработки и тягу к наставничеству.

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

Например, если это веб, то для практики можно придумывать себе проекты, брать готовые макеты в свободном доступе (поиск в Google: free psd website templates). Ещё можно получать по три макета для тренировки каждый месяц, подписавшись на нашу рассылку.

В Академии мы сосредоточены как раз на веб-разработке и практике. Познакомиться с основами в игровой форме можно буквально за пару месяцев, пройдя самостоятельно интерактивные курсы. Сейчас доступно более 1000 заданий, 300 из них — бесплатны.

Так что, если вы хотите изучить вёрстку за лето можно продумать себе такой план:

Июнь:

 Пройти все бесплатные курсы по HTML, CSS и JavaScript у нас. Курсы рассчитаны на новичков и в игровой интерактивной форме помогут на практике освоить основы.

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

— Кстати, вам нужно будет подтянуть английский, так как большое количество материалов на нём.

— Попробовать в любом текстовом редакторе создать простую HTML-страницу, подключить к ней CSS-файл.

Июль:

— Взяться за эпичный курс «Великий Кексби», там вы разберёте реальную вёрстку макета интернет-магазина. Это специальный интерактивный курс, где вас ждёт испытание на разметку.

— Где найти описание всех свойств и тегов? В спецификациях, всё официально: HTML5 и CSS. Не пугайтесь, но там действительно вся информация.

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

— Попробуйте взять простенький макет из рассылки или из свободного доступа и сверстать. Для этого вам понадобится Photoshop. Есть, конечно, альтернативы, например, Avocode, но они тоже не бесплатные и есть нюансы. Если вы собираетесь работать разработчиком, то вам всё равно придётся сталкиваться с Photoshop.

Август:

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

— Практикуйтесь, берите макеты и верстайте. Если что-то не получается — идите на форум, спросите совета у более опытных разработчиков.

Таким образом, к концу лета вы познакомитесь с основами и научитесь верстать простые проекты. Но это только начало пути.

Для тех, кто хочет в сжатые сроки освоить профессию мы проводим интенсивы.

Преподаватели читают лекции и отвечают на вопросы в формате лайв-стримов. А ученики под руководством личного наставника работают над проектом. Изучают систему контроля версий, Photoshop и тонкости качественной работы. В общем, всё необходимое, чтобы стартовать в профессии через пять недель с первым проектом в портфолио.

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

46
-3
Прокомментировать

Смотря что ты хочешь изучить и что имеешь ввиду под программированием.

Если html+css -- да, вполне возможно. Но это верстка а не программирование. SQL -- так же возможно, но и работу с БД я так же не могу назвать настоящим программированием.

Если же брать серьезное программирование -- однозначное нет. Минимум год самообучения по 8-12 часов в день. Минимум --- если у тебя уже есть некая база и неплохо поставленная логика. Значительно больше если нет.
У меня была очень сильная база (я несколько лет работал в IT конторе мирового масштаба(входит в первую десятку по размеру) международной тех.поддержкой высшего уровня[там было 5 таких] а так же QA[тестировщиком], а так же некую базу программирования уже имел), но у меня пошло пол года по 8-12 часов в день что бы достичь некоего более-менее неплохого уровня на C#. По факту недостаточного что бы работать полноценным программистом. Но все же достаточного для автоматизации.

Реальное программирование -- это не просто синтаксис языка. Программирование -- это умение решать задачи. Как математические так и логические. Логические -- в первую очередь! А так же знание ряда алгоритмов. А так же знание инструментов которыми пользуешься(например нужно понимать как внутри устроен List/LinkedList и Array для того,что бы их правильно оптимально использовать, просто знать что длинна аррея не меняется -- НЕ ДОСТАТОЧНО). Синтаксиса языка НЕ ДОСТАТОЧНО кто бы тебе не говорил обратного.

Что бы не быть баснословным, я наведу простой пример использования алгоритмов:

Алгоритм среднего между 2мя целыми числами нормального человека:
(a+b)/2
алгоритм среднего из 2х целых чисел программиста(умного, а не в кавычках):
a/2+b/2+(a%2+b%2)/2
где % -- вычисление остачи от деления.

потому как первый алгоритм даст ровно в половине из возможных случаев неправильный ответет из-за переполнения памяти + еще в четверти случаях просто на одиницу меньше нужного. Заметьте! Не ошибку! А неправильный ответ в трех случаях из 4х! А "программист"(именно в кавычках) еще и не будет в курсе почему так :)

Для нецелочисленного типа данных(double, float) проще:
a/2+b/2

Как видишь, проблема не в синтаксисе как таковом :) Выучить синтаксис -- как раз наименьшая из проблем. Хотя, замечу, что, даже, это для многих будет непосильной задачей.

С другой стороны -- я за то что бы не грузить человека "паттернами" и излишними алгоритмами. На новичков это подействует, скорее всего, негативно, чем позитивно. Типа.... "я слышал про паттерн ____________, вот задача на которую КАЖЕТСЯ подойдет он." А потом решение задачи усложняется в разы. Ну или затягивается. Паттерны нужно не только знать, но и применять с умом. К алгоритмам так же нужны знания как и когда их лучше применять. Поэтому -- БЕЗ ФАНАТИЗМА.

PS: человек снизу, который меня активно критикует(Jone Done), даже путает среду разработки и язык... Delphi -- это не язык, а IDE, а язык там это Object Pascal.
Так же там в коментариях у нее я проверил ее "нормальные знания джавы"... Желающие посмотреть на "номально выучившую язык за 2,5 месяца" смотреть туда. И это при том что Я ДЖАВУ НЕ ЗНАЮ, а, так, посмотрел инфу не более чем 3 дня где-то пол года назад просто для общего развития и что бы лично сложить свое собственное мнение по языку.

60
-11

Какой-то странный у вас алгоритм. Если взять числа 3 и 5, то по алгоритму обычного человека ср. арифм. получится (3+5)/2 = 4

А по вашему компьютер выдаст 3/2 + 5/2 + (3%2 + 5%2)/2 = 1,5 + 2,5 + (1+1)/2 = 4 + 1 = 5. Не совсем то, что мы ищем 

+3
Ответить

Потому что я писал алгоритм на примере интов. На примере чисел с плавающей точкой будет (a/2) + (b/2)

-1
Ответить

Но в целом ты прав, нужно уточнить в тексте. Спасибо большое)

-1
Ответить
Ещё 16 комментариев

А почему на числах с плавающей точкой нельзя решить по стандартной формуле (a+b)/2? Зачем делать на действие больше?

0
Ответить

Если ты не программист, лови детали почему с интами так нужно: если числа являютце целочисленным типом данных то результат деления будет
3/2 = 1
5/2 = 2
а дробная часть будет тупо игнорируется.

0
Ответить

Я программист, и я прекрасно это понимаю. Но вы не уточнили что это для интов, в этом вся проблема. Любой программист, каким бы он не был, может на даблах спокойно посчитать среднее арифметическое по стандартной формуле

+1
Ответить

>>А почему на числах с плавающей точкой нельзя решить по стандартной формуле (a+b)/2? Зачем делать на действие больше?
^^ потому что каждый тип данных имеет свой максимальный размер. Если представить себе целочисленные данные с рамками -100 +100 (такого нет, но это для простоты понимания)
то добавив 51+51 ты получишь -98.
Это называется переполнение масива данных.

-4
Ответить

ну тогда странно, что ты задаешь вопрос:
>> А почему на числах с плавающей точкой нельзя решить по стандартной формуле (a+b)/2

-2
Ответить

>>Любой программист, каким бы он не был, может на даблах спокойно посчитать среднее арифметическое по стандартной формуле
^^ И это будет неоптимальное решение. Таким будут страдать недопрограммисты которым наплевать сколько ресурсов будет жрать программа. На мелких программах это решение, на больших проэктах это лютый быдлокод.

-1
Ответить

Какой язык программирования лучше первым учить ? Python ? Java ? Или может сразу C ? 

0
Ответить

Начинать в любом случае нужно с верстки. Хтмл + цсс просто что б натренировать логику хоть немного :)

Лично я выбрал C# и не жалею.
C# мне очень понравился. Очень похож на по синтаксису на джаву с некоторыми улучшениями и нету заморочек с так званой джава-машиной.
Мой плюс в сторону шарпа и камень в огород джавы. Но если решишь сидеть за джавой -- используй IDE Idea, а не Еклипс.

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

Очень крутой язык Swift. Но это для маков и пока что он очень молодой так что на нем проэктов не много. Но язык перспективный и крутяцкий. Сейчас за него не садись, но в будущем советую смотреть еще в его сторону :) Мне ну оооочень понравился.

-3
Ответить

я еще дополню, что обычно программист также должен иметь понимание технологического стека, используемого в той области, в которой он работает. Если это веб-разработка, то нужно понимать, как работает веб-сервер, иметь (как правило) навык работы с базами данных и т.д.  Если это разработка для микроконтроллеров, то нужно знание архитектуры конкретного железа, умение писать и читать ассемблер. Если разработка для десктопа, то нужно иметь представление об особенностях той или иной операционной системы, знать GUI-фреймворки. И т.п. Во всех случаях нужно уметь пользоваться инструментами для сборки и отладки кода, характерными для выбранного языка и ОС. Как правило, нужно уметь пользоваться системой контроля версий (git наиболее используемая сегодня).

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

+8
Ответить

Не понимаю почему меня заминусили выше :)

Господа-минусометчики, если вы резервируете память под какие-то данные с неоправдано большим запасом -- это и называется быдлокодить :) (одно из проявлений)

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

Если вам нужно среднее между интами -- не нужно обьявлять дабл что бы по привычной формуле все решить а потом округлить до инта :) Этим вы резервируете излишнюю память и до больших проэктов вас просто не допустят :) Хотя не только по этой причине ;)

Более того, если вам будет нужно по какой-то причине реализовать нахождение среднего числа с масива даблов (например перед вами поставят задачу писать код под какой-нить микроконтроллер язык которого не предусматривает метод Avg()/Average() ) то правильно решить все простым циклом
double avg = 0.0;
foreach(var dou in doubleArray)
{
   avg += dou/doubleArray.Length;
}

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

PS: или того типа данных который хранится в аррею
PS2: Хотя, по факту, даже 2х больших чисел хватит. Чего уж там целый масив данных.

-1
Ответить

Нагляднее всего переполнение можно показать в двоичной системе. Допустим есть два беззнаковых 8-битовых  числа: a = b = 128 (в двоичной системе 1000 0000). Если их сложить, то получим следующее:

  1000 0000

+

  1000 0000

   ----------

1 0000 0000

старшая единица не умещается в 8-битов и будет отброшена. И в результате сложения получится 0, а не 256 как ожидалось. Таким образом, вычисление среднего по формуле (a + b) / 2 в результате даст ноль.

+2
Ответить

Думаю, что самым простым для понимания примером будет простое двуциферное механическое табло:
https://prv1.lori-images.net/mehanicheskoe-tablo-s-nomerami-0003568913-preview.jpg

когда доходит до 99, то после 99 стает 00. Если идти в обратную сторону -- после 01 будет 00, а потом будет 99.

Так и программировании когда ты доходишь до одной черты(максимального или минимального значения даного числового типа данных) -- ты начинаешь отщет с другой. :)

Все как я и написал выше:
Если представить себе целочисленные данные с рамками -100 +100 (такого нет, но это для простоты понимания), то добавив 51+51 ты получишь -98.

0
Ответить

Так извращаться с интами стоит лишь тогда, когда значения могут иметь значения, при которых будет переполнение. Вполне возможно, что в данной задаче всё будет в пределах +-1000, а это позволяет спокойно считать нормальным образом.
А если писать на Python, то вообще нет никакой разницы, кроме того, что (a+b)/2 будет быстрее (но это и не важно, иначе бы не писали на Python).

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

foreach(var dou in doubleArray)

avg += dou/doubleArray.Length;

Так что выбор способа зависит от конкретной задачи, зря Вы тут так безапелляционно говорите.

>>Delphi -- это не язык, а IDE, а язык там это Object Pascal.
Вообще-то, с Delphi 7 язык тоже стал называться Delphi. А это весьма древняя версия уже.

С остальным, в целом, согласен.

0
Ответить
Какой язык программирования лучше первым учить ?

Только не C++!

Либо C, либо C#. Моё, ИМХО, C полезнее, так как учит работать с памятью, но C# или Python интереснее (просто помню восторг от первой формочки, которую в седьмом классе вывел. На C до такого далеко).

0
Ответить

ет вы еще на js не писали, посоны

// var a = [1,2,3];
// var b = [1,2,3];
// var c = "1,2,3";

// console.log(a==c); // true
// console.log(b==c); // true
// console.log(a==b); // fucking js

0
Ответить

ъть, фронтов зеквесчена убить хочется! Ни отредактировать камент, ни удалить и написать заново…

0
Ответить
Прокомментировать

Прекрасные ответы – запутывают ещё больше.
Так вот, если вы очень хотите и готовы тратить большинство времени именно на программирование, то да, реально. Лично я научился программировать до уровня, с которым устроился уже на работу за 2 месяца, поэтому всё возможно.

Теперь про подводные камни – во-первых, если это совсем первый опыт программирования, то может быть очень сложно втянуться; также есть шанс, что учебник/курс, по которому вы будете заниматься, окажется очень сложным/слишком общим/для продвинутых/etc, в результате чего вы можете осознать, что многое прошло мимо уже постфактум.

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

Всеволод Зайковотвечает на ваши вопросы в своейПрямой линии
14
-2
Прокомментировать

Да, вопрос слишком уж не конкретный. Типовое "Hello world!" можно за пару минут на любом языке написать, подсмотрев в интернете синтаксис и примеры, а вот дальше начинаются тонкости.

Научиться программировать - это примерно как научиться готовить. Яичницу можно быстро освоить, но и то есть разные варианты и нюансы. А чтобы приготовить какое-то сложное блюдо - придётся учиться, разбираться, пробовать. По большому счёту программировать - это как готовить сложное блюдо без готового рецепта. Примерно понимаешь, что мясо надо резать так-то и готовить столько-то, но как весь процесс приготовления будет выглядеть в случае сложного незнакомого блюда - сказать заранее и точно нельзя. Тут уже опыт, интуиция и смекалка.

9
-2

Вот! Самая правильная аналогия. Поверьте программисту с 25-летним стажем - про яичницу оооочень похоже. Я этих знатоков яичницы жуть сколько повидала :-( Да еще которые говорят "Да ладно! Чё там! Я и котлетки ща нафигачу! Чё их там фигачить? Я ж яичницу умею уже"

+2
Ответить
Прокомментировать

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

4
-1
Прокомментировать
Читать ещё 4 ответа
Ответить